2.2 Mô hình và cơ chế hoạt động của EFS2.2.1 Mô hình EFS Mô hình được EFS sử dụng là mã hóa các tệp và thư mục bằng cách sử dụng mã hóa đối xứng một khóa được sử dụng để mã hóa và giải m
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA AN TOÀN THÔNG TIN
BÁO CÁO MÔN HỌC
AN TOÀN HỆ ĐIỀU HÀNH
Đề tài: Trình bày cơ chế mã hóa của EFS trong hệ điều
hành Windows
Nhóm sinh viên thực hiện:
TRẦN TUẤN LÂM AT150530
PHẠM VĂN THÁI
ĐẶNG TRỌNG ĐẠT NGUYỄN TÀI DƯƠNG
NGUYỄN ĐỨC
VŨ HOÀNG LONG
Trang 2Giảng viên hướng dẫn: Trần Sỹ Nam
Hà Nội, 11-2021
LỜI NÓI ĐẦU 1
Chương 1 Tổng Quan Về Mã Hóa Dữ Liệu 2
1.1 Khái niệm Mã hóa 2
1.2 Thuật toán Mã hóa 2
1.3 Phân loại các phương pháp Mã hóa 2
1.3.1 Mã hóa cổ điển 3
1.3.2 Mã hóa một chiều 3
1.3.3 Mã hóa đối xứng 4
1.3.4 Mã hóa bất đối xứng 5
CHƯƠNG 2 GIỚI THIỆU EFS TRONG WINDOWS 6
2.1 EFS là gì 6
2.2 Mô hình và cơ chế hoạt động của EFS 8
2.2.1 Mô hình EFS 8
2.2.2 Cơ chế hoạt động của EFS 8
2.3 Một số điểm cần lưu ý khi sử dụng EFS trên Windows 12
2.4 So sánh Bitlocker với EFS 13
CHƯƠNG 3 QUÁ TRÌNH HOẠT ĐỘNG CỦA EFS 16
3.1 Mã hóa tệp lần đầu 16
3.2 Mã hóa dữ liệu tệp 18
3.3 Quá trình giải mã 19
Trang 33.4 Sao lưu các tệp được mã hóa 19
3.5 Sao chép các tệp mã hóa 21
CHƯƠNG 4: ƯU VÀ NHƯỢC CỦA EFS 22
4.1 Ưu điểm 22
4.2 Nhược điểm 22
4.3 Làm thế nào một người có thể mất quyền truy cập vào dữ liệu được mã hóa bằng EFS? 23
4.4 EFS Recovery Agent là gì ? 24
4.5 Cần làm gì khi gặp lỗi hệ thống ? 25
CHƯƠNG 5: HƯỚNG DẪN SỬ DỤNG EFS TRONG WINDOWS 28
5.1 Mã hóa một thư mục sử dụng EFS 28
5.2 Khởi tạo và sao lưu khóa giải mã dữ liệu cho tệp đã được mã hóa EFS 32
5.3 Giải mã tệp mã hóa EFS 35
5.4 Bật hoặc tắt tính năng EFS trong Windows 38
TÀI LIỆU THAM KHẢO 44
Trang 4LỜI NÓI ĐẦU
Sự phát triển và bùng nổ công nghệ thông tin hiện nay thực sự đã tạo nên một cuộc cách mạng trong việc học tập, nghiên cứu và làm việc và giải trí của hàng triệu người Trước đây khi chưa có máy tính, máy in thì việc làm việc với bàn giấy đơn thuần, điện thoại đường dây cố định, máy điện tín là phổ biến hơn hết Nhưng với sự phát triển thần kỳ của ngành công nghệ thông tin và máy tính điện tử đã giúp cho hiệu quả công việc, trải nghiệm ngừơi dùng và công nghiệp giải trí số phát triển hơn bao giờ hết
Lợi ích của ngành đem lại là không thể chối cãi, chúng ta có thể lướt web xem tin tức nghe nhạc xem phim, đồng thời cũng có thể gửi mail hay soạn thảo văn bản… Máy tính văn phòng, laptop cá nhân xuất hiện ở khắp mọi nơi Phục vụ từ mục đích của tổ chức, cá nhân, làm việc cho đến giải trí Tuy nhiên, ngành công nghệ thông tin cũng không chỉ toàn những điều tốt đẹp Ngày nay, mọi người đều nói về bảo mật thông tin bởi vì nó thực sự ảnh hưởng đến bất kỳ ai sử dụng (tương đối) các thiết bị điện tử hiện đại Trong số rất nhiều ý tưởng để tăng cường bảo mật thông tin, mã hóa là một biện pháp được khuyến nghị theo bất kỳ chuyêngia bảo mật nào
Mã hóa là một biện pháp bảo vệ quyền riêng tư thông tin mạnh mẽ, hỗ trợ tính toàn vẹn của thông tin và thậm chí có thể giúp bạn tránh bị phạt theo quy định nếu bạn làm việc trong ngành được quản lý chặt chẽ Windows đã bắt kịp xu hướng này và cung cấp cho người dùng một vài tùy chọn khác nhau để mã hóa thông tin Trong số các tùy chọn này là Hệ thống tệp được mã hóa (EFS)
1
Trang 5CHƯƠNG 1 TỔNG QUAN VỀ MÃ HÓA DỮ LIỆU
1.1 Khái niệm Mã hóa
Mã hóa là một phương pháp bảo vệ thông tin, bằng cách chuyển đổi thông tin từ dạng rõsang dạng mã Nó có thể giúp bảo vệ thông tin khỏi những kẻ đánh cắp thông tin, dù có được thông tin cũng không thể hiểu được nội dung của nó
1.2 Thuật toán Mã hóa
Thuật toán mã hóa là một thuật toán nhằm mã hóa thông tin, biến đổi thông tin từ dạng
rõ sang dạng mờ, để ngăn cản việc đọc trộm nội dung của thông tin
Thông thường các thuật toán sử dụng một hoặc nhiều khóa để mã hóa và giải mã (Ngoạitrừ những thuật toán cổ điển) Có thể coi khóa này như một mật khẩu để có thể đọc được nội dung mã hóa Người gửi sẽ dùng khóa mã hóa để mã hóa thông tin sang dạng mờ, và người nhận sẽ sử dụng khóa giải mã để giải mã thông tin sang dạng rõ Chỉ những người nào có khóa giải mã mới có thể đọc được nội dung
Nhưng đôi khi "kẻ thứ ba" (Hacker) không có khóa giải mã vẫn có thể đọc được thông tin, bằng cách phá vỡ thuật toán Và có một nguyên tắc là bất kì thuật toán mã hóa nào cũng đều có thể bị phá vỡ Do đó không có bất kì thuật toán mã hóa nào được coi là an toàn mãi mãi Độ an toàn của thuật toán được dựa vào nguyên tắc:
Nếu chi phí để giải mã một khối lượng thông tin lớn hơn giá trị của khối lượng thông tin đó thì thuật toán đó được tạm coi là an toàn
Nếu thời gian để phá vỡ một thuật toán là quá lớn thì thuật toán được tạm coi là an toàn
2
Trang 61.3 Phân loại các phương pháp Mã hóa
Có rất nhiều loại phương pháp mã hóa khác nhau đã ra đời Mỗi loại có những ưu và nhược điểm riêng Có thể phân chia các phương pháp mã hóa thành 4 loại chính:
mà không dùng đến bất kì khóa nào Do đó, độ an toàn của thuật toán sẽ chỉ dựa vào độ bí mật của thuật toán, vì chỉ cần ta biết được thuật toán mã hóa, ta sẽ có thể giải mã được thông tin
1.3.2 Mã hóa một chiều
Đôi khi ta chỉ cần mã hóa thông tin chứ không cần giải mã thông tin, khi đó ta sẽ dùng đến phương pháp mã hóa một chiều (Chỉ có thể mã hóa chứ không thể giải mã) Thông thường phương pháp mã hóa một chiều sử dụng một hàm băm (hash function) để biến một chuỗi thông tin thành một chuỗi hash có độ dài nhất định Ta không có bất kì cách nào để khôi phục (hay giải mã) chuỗi hash về lại chuỗi thông tin ban đầu
Đặc điểm của hash function là khi thực hiên băm hai chuỗi dữ liệu như nhau, dù trong hoàn cảnh nào thì nó cũng cùng cho ra một chuỗi hash duy nhất có độ dài nhất định và
thường nhỏ hơn rất nhiều so với chuỗi gốc, và hai chuỗi thông tin bất kì dù khác nhau rất ít cũng sẽ cho ra chuỗi hash khác nhau rất nhiều Do đó hash function thường được sử dụng để kiểm tra tính toàn vẹn của dữ liệu
3
Trang 7Ngoài ra có một ứng dụng mà có thể thường gặp, đó là để lưu giữ mật khẩu Vì mật khẩu là một thứ cực kì quan trọng, do đó không nên lưu mật khẩu của người dùng dưới dạng
rõ, vì như vậy nếu bị kẻ thứ ba tấn công, lấy được CSDL thì có thể biết được mật khẩu của người dùng Do đó, mật khẩu của người dùng nên được lưu dưới dạng chuỗi hash, và đối với máy chủ thì chuỗi hash đó chỉnh là “mật khẩu” đăng nhập Dù kẻ đó có lấy được CSDL thì cũng không tài nào có thể giải mã được chuỗi hash để tìm ra mật khẩu của người dùng
Thuật toán mã hóa một chiều (hàm băm) thường gặp nhất là MD5 và SHA
1.3.3 Mã hóa đối xứng
Mã hóa đối xứng (Hay còn gọi là mã hóa khóa bí mật) là phương pháp mã hóa mà khóa
mã hóa và khóa giải mã là như nhau (Sử dụng cùng một khóa bí mật để mã hóa và giải mã) Đây là phương pháp thông dụng nhất hiện nay dùng để mã hóa dữ liệu truyền nhận giữa hai bên Vì chỉ cần có khóa bí mật là có thể giải mã được, nên bên gửi và bên nhận cần làm một cách nào đó để cùng thống nhất về khóa bí mật
Để thực hiện mã hóa thông tin giữa hai bên thì:
Đầu tiên bên gửi và bên nhận bằng cách nào đó sẽ phải thóa thuận khóa bí mật được dùng để mã hóa và giải mã Vì chỉ cần biết được khóa bí mật này thì bên thứ ba có thể giải
mã được thông tin, nên thông tin này cần được bí mật truyền đi
Sau đó bên gửi sẽ dùng một thuật toán mã hóa với khóa bí mật tương ứng để mã hóa
dữ liệu sắp được truyền đi Khi bên nhận nhận được sẽ dùng chính khóa bí mật đó để giải mã
dữ liệu
Vấn đề lớn nhất của phương pháp mã hóa đối xứng là làm sao để “thỏa thuận” khóa bí mật giữa bên gửi và bên nhận, vì nếu truyền khóa bí mật từ bên gửi sang bên nhận mà không dùng một phương pháp bảo vệ nào thì bên thứ ba cũng có thể dễ dàng lấy được khóa bí mật này
4
Trang 8Các thuật toán mã hóa đối xứng thường gặp: DES, AES…
1.3.4 Mã hóa bất đối xứng
Mã hóa bất đối xứng (Hay còn gọi là mã hóa khóa công khai) là phương pháp mã hóa
mà khóa mã hóa (public key – khóa công khai) và khóa giải mã (private key – khóa bí mật) khác nhau Nghĩa là khóa sử dụng để mã hóa dữ liệu sẽ khác với khóa dùng để giải mã dữ liệu Tất cả mọi người đều có thể biết được khóa công khai (kể cả hacker), và có thể dùng khóa công khai này để mã hóa thông tin Nhưng chỉ có người nhận mới nắm giữ khóa bí mật, nên chỉ có người nhận mới có thể giải mã được thông tin
Để thực hiện mã hóa bất đối xứng:
Bên nhận sẽ tạo ra một gặp khóa (khóa công khai và khóa bí mật) Bên nhận sẽ dữ lại khóa bí mật và truyền cho bên gửi khóa công khai Vì khóa này là công khai nên có thể truyền tự do mà không cần bảo mật
Bên gửi trước khi gửi dữ liệu sẽ mã hóa dữ liệu bằng thuật toán mã hóa bất đối xứng với khóa là khóa công khai từ bên nhận
Bên nhận sẽ giải mã dữ liệu nhận được bằng thuật toán được sử dụng ở bên gửi, với khóa giải mã là khóa bí mật
Điểm yếu lớn nhất của mã hóa bất đối xứng là tốc độ mã hóa và giải mã rất chậm so với
mã hóa đối xứng, nếu dùng mã hóa bất đối xứng để mã hóa dữ liệu truyền – nhận giữa hai bên thì sẽ tốn rất nhiều chi phí
Do đó, ứng dụng chỉnh của mã hóa bất đối xứng là dùng để bảo mật khóa bí mật cho mã hóa đối xứng: Ta sẽ dùng phương pháp mã hóa bất đối xứng để truyền khóa bí mật của bên gửi cho bên nhận Và hai bên sẽ dùng khóa bí mật này để trao đổi thông tin bằng phương pháp mã hóa đối xứng
Thuật toán mã hóa bất đối xứng thường thấy: RSA
5
Trang 9CHƯƠNG 2 GIỚI THIỆU EFS TRONG WINDOWS.
EFS có cách tiếp cận gia tăng đối với mã hóa Điều này có nghĩa là nó có khảnăng mã hóa các tệp và thư mục riêng lẻ và không được thực hiện ở cấp độ ổ đĩa Điềunày mang lại sự lựa chọn của người dùng nhiều hơn so với các phương pháp mã hóakhác
Đây là một phương pháp nhanh và đáng tin cậy để mã hóa dữ liệu trên hệ thốngWindows Mặc dù vậy, nó không phải là không có nhược điểm bảo mật Khóa mã hóatệp được lưu trữ cục bộ hoặc trên ổ đĩa flash, có thể rất dễ bị dòm ngó bởi những ngườidùng khác Thông tin cũng có thể bị rò rỉ vào các tệp tạm thời của hệ thống vì các tệpnày không được mã hóa
EFS cho phép chúng ta mã hóa các tệp và thư mục bằng khóa mã hóa công khaigắn với một người dùng cụ thể Sau đó, chỉ có thể sử dụng các tệp được mã hóa nàybằng cách sử dụng khóa riêng tư mà người dùng đã mã hóa tệp có quyền truy cập Quátrình này được gọi là mã hóa khóa công khai (PKI - Public Key Infrastructure) TrongPKI, người dùng có hai khóa Một là khóa công khai được lưu trong chứng chỉ và khóariêng tư Người dùng có thể sử dụng khóa công khai để mã hóa dữ liệu và khóa riêng
tư để đọc dữ liệu đã mã hóa Khóa cá nhân được lưu giữ trong kho lưu trữ chứng chỉriêng tư của người dùng Vì vậy, bất cứ thứ gì mà chúng ta mã hóa bằng khóa côngkhai chỉ có thể được giải mã bằng khóa riêng tư
Hệ thống tệp mã hóa (EFS) là một chức năng của Hệ thống tệp công nghệ mới(NTFS – New Technology File System) được tìm thấy trên các phiên bản khác nhau
Trang 10của Microsoft Windows EFS tạo điều kiện thuận lợi cho việc mã hóa và giải mã cáctệp trong suốt bằng cách sử dụng các thuật toán mật mã tiêu chuẩn, phức tạp.
Các thuật toán mật mã được sử dụng trong EFS để cung cấp các biện pháp đốiphó bảo mật hữu ích, theo đó chỉ người nhận theo chủ đích mới có thể giải mã mật
mã EFS sử dụng các khóa đối xứng và không đối xứng trong quá trình mã hóa, nhưng
nó không bảo vệ việc truyền dữ liệu Nói đúng hơn, nó bảo vệ các tệp dữ liệu trong hệthống Ngay cả khi ai đó có quyền truy cập vào một máy tính nhất định, cho dù đượcphép hay không, họ vẫn không thể mở khóa mật mã EFS mà không có khóa bí mật
EFS thực sự là một công nghệ mã hóa khóa công khai minh bạch hoạt động vớiquyền NTFS để cho phép hoặc từ chối quyền truy cập của người dùng vào các tệp vàthư mục trong các hệ điều hành Windows (OS) khác nhau, bao gồm NT (không baogồm NT4), 2000 và XP (không bao gồm XP Home Edition)
Các tính năng chính của EFS như sau:
Quá trình mã hóa rất dễ dàng Chọn check box trong thuộc tính của tệphoặc thư mục để bật mã hóa
EFS cung cấp quyền kiểm soát ai có thể đọc tệp
Các tệp được chọn để mã hóa sẽ được mã hóa sau khi đóng nhưng sẽ tựđộng sẵn sàng để sử dụng sau khi mở
Tính năng mã hóa của tệp có thể bị xóa bằng cách xóa check box trongthuộc tính tệp
Mặc dù được nhiều tổ chức sử dụng, EFS phải được thực hiện một cách thậntrọng, để tránh việc mã hóa nội dung đáng ra là phải minh bạch, thay vì an toàn Điềunày khá phức tạp bởi thực tế là có thể gặp khó khăn khi giải mã nội dung dữ liệukhông được mã hóa ngay từ đầu
Cần lưu ý rằng khi một thư mục được đánh dấu là mã hóa, tất cả các tệp chứatrong thư mục đó cũng được mã hóa, bao gồm cả các tệp trong tương lai được chuyểnđến thư mục cụ thể đó Tuy nhiên, chúng ta có thể tùy chỉnh lại cài đặt này
Mật khẩu mã hóa là đặc điểm nhận dạng, vì vậy điều quan trọng là nhân viênphải tránh chia sẻ mật khẩu và điều quan trọng không kém là người dùng phải nhớ mậtkhẩu của họ
Trang 112.2 Mô hình và cơ chế hoạt động của EFS
2.2.1 Mô hình EFS
Mô hình được EFS sử dụng là mã hóa các tệp và thư mục bằng cách sử dụng
mã hóa đối xứng (một khóa được sử dụng để mã hóa và giải mã tệp) Sau đó, khóa mãhóa đối xứng được mã hóa bằng cách sử dụng mã hóa không đối xứng (một khóa để
mã hóa — thường được gọi là khóa công khai — và một khóa khác để giải mã —thường được gọi là khóa “riêng tư”) cho mỗi người dùng được cấp quyền truy cập vàotệp
EFS sử dụng mã hóa khóa đối xứng với thuật toán đối xứng gọi là DESX Mãhóa đối xứng Mã hóa khóa đối xứng này được tạo thành từ hai thành phần - khóa mãhóa tệp (FEK) và công nghệ khóa công khai
Khi một tệp hoặc thư mục được mã hóa, FEK được lưu trữ trong header (tiêuđề) của tệp được mã hóa và người dùng sẽ tự lưu trữ khóa công khai Mã hóa đối xứngnày mang lại cho EFS một lợi thế về thời gian so với bản sao bất đối xứng của nó bởicách mã hóa tệp này nhanh hơn hàng nghìn lần Việc sao lưu khóa được coi là nên làm
vì khóa đó thậm chí có thể cung cấp cho bạn quyền truy cập vào các tệp được mã hóanếu bạn mất quyền truy cập vào tài khoản người dùng
2.2.2 Cơ chế hoạt động của EFS
EFS sử dụng một thuộc tính mã hoá để đưa vào các file bảo vệ EFS Khi thuộctính này được kích hoạt, EFS lưu trữ các file dưới dạng file được mã hoá bằng mật mã.Khi một người dùng được cho phép mở File mã hoá này trong một ứng dụng thì EFS
sẽ tiến hành giải mã file và cung cấp một bản có thể đọc cho ứng dụng đó Người dùngnày có thể xem hoặc chỉnh sửa file mã hoá này và EFS sẽ lưu trữ các chỉnh sửa này lạidưới dạng đã được mã hoá Những người dùng khác sẽ không thể mở hoặc chỉnh sửafile mã hoá này
Những File được bảo vệ bởi EFS có độ tin cậy và an toàn ngay cả trong trườnghợp những người truy nhập trái phép muốn dùng các công cụ đọc nội dung đĩa cứngcấp thấp để đọc các file này Khi sử dụng EFS để mã hoá File hay thư mục, EFS sẽsinh ra một File Encryption Key (FEK) chứa một con số ngẫu nhiên Số ngẫu nhiênnày được hệ thống sử dụng trong giải thuật DESX để tạo ra File mã hoá và ghi nó vào
Trang 12ổ cứng Hệ thống cũng tiến hành mã hoá FEK bằng Public key của người dùng và lưutrữ nó với file mã hoá Khi truy nhập vào file mã hoá này hệ thống sữ dùng Private keycủa người dùng để giải mã FEK và dùng FEK vừa được giải mã này để giải mã File đã
mã hoá Khi sử dụng EFS lần đầu, hệ thống sẽ sinh ra một cặp khoá Private/PublicKey nếu nó chưa có (Trong môi trường AD cặp khoá này được lưu trữ trên Domaincontroller còn trong môi trường không có AD nó được lưu trên máy tính mà bạn tiếnhành mã hoá file)
EFS là hệ thống mã hoá dựa trên hạ tầng khoá công (Public key Cryptography),
sử dụng FEK được sinh ngẫu nhiên để mã hoá dữ liệu Hệ thống cơ sở mã hoá khoácông sử dụng một cặp khoá Public/Private key để tiến hành quá trình mã hoá và giải
mã Khoá công (Public key) sẵn có cho tất cả người dùng sử dụng để mã hoá FEK vàkhoá riêng (Private key – phần bí mật của người dùng) để giải mã FEK Hệ thống địnhdạng tập tin NTFS lưu trữ một danh mục các FEK cùng với các file mã hoá bằng cácthuộc tính đặc biệt của EFS là Data Decryption Fields (DDFs) và Data RecoveryFields (DRFs)
Quá trình mã hoá EFS thực hiện như sau:
1 Sinh ra một a bulk symmetric encryption key
2 Mã hoá file bằng bulk symmetric encryption key đã sinh ra
3 Mã hoá bulk encryption key bằng EFS public key của người dùng
4 Lưu trữ encrypted bulk key trong data decryption field (DDF) và đưa nó vàoEFS file
EFS có thể dùng private key của người dùng để giải mã bulk encryption key và giải
mã luôn file đã mã hoá
Kỹ thuật lưu trữ khoá của EFS dựa trên kiến trúc mã hoá Win2k CryptoAPI.Kiến trúc mã hoá này lưu trữ khoá công (public key) và khoá riêng (private key) củangười dùng độc lập với nhau từ FEK được sinh ngẫu nhiên Điều này cho việc lưu trữPublic/private key của người dùng có thể thực hiện trên nhiều thiết bị lưu trữ khácnhau như NTFS Folder, Smart card,…phục vụ cho các hệ thống chứng thực khác nhau
EFS hoạt động với API Windows Cryptography Next Generation (CNG) và do
đó có thể được định cấu hình để sử dụng bất kỳ thuật toán nào được hỗ trợ bởi (hoặcđược thêm vào) CNG Theo mặc định, EFS sẽ sử dụng Advanced Encryption Standard
Trang 13(AES) cho mã hóa đối xứng (khóa 256 bit) và Rivest-Shamir-Adleman (RSA) thuậttoán khóa công khai cho mã hóa không đối xứng (khóa 2.048 bit).
Người dùng có thể mã hóa tệp qua Windows Explorer bằng cách mở hộp thoạiProperties của tệp, nhấp vào Advanced, rồi chọn tùy chọn Encrypt contents to securedât, như trong Hình 1.1
(Một tệp có thể được mã hóa hoặc nén, nhưng thực hiện cả 2 thì không thể.)Người dùng cũng có thể mã hóa tệp thông qua tiện ích command-line có tên Cipher (%SystemRoot% \ System32 \ Cipher.exe) hoặc lập trình bằng Windows API nhưEncryptFile và AddUsersToEncryptedFile
Hình 1.1: Mã hóa tệp bằng cách sử dụng hộp thoại Advanced Attributes
Windows tự động mã hóa các tệp nằm trong các thư mục được chỉ định, là cácthư mục được mã hóa Khi một tệp được mã hóa, EFS tạo một số ngẫu nhiên cho tệp
mà EFS gọi là File Encryption Key (FEK) EFS sử dụng FEK để mã hóa nội dung của
Trang 14tệp bằng mã hóa đối xứng Sau đó, EFS mã hóa FEK bằng khóa công khai không đốixứng của người dùng và lưu trữ FEK được mã hóa trong luồng dữ liệu thay thế $EFScho tệp Nguồn của khóa công khai có thể được chỉ định bằng quyền hạn đến từ chứngchỉ X.509 hoặc thẻ thông minh hoặc được tạo ngẫu nhiên (sau đó sẽ được thêm vàokho lưu trữ chứng chỉ của người dùng, có thể xem bằng cách sử dụng CertificateManager - Trình quản lý chứng chỉ (% SystemRoot% \ System32 \ Certmgr.msc) Saukhi EFS hoàn thành các bước này, tệp được bảo mật: người dùng khác không thể giải
mã dữ liệu mà không có FEK giải mã của tệp và họ không thể giải mã FEK mà không
có chìa khóa cá nhân
Các thuật toán mã hóa đối xứng thường rất nhanh, điều này làm cho chúng phùhợp để mã hóa những dữ liệu có dung lượng lớn, chẳng hạn như dữ liệu tệp Tuynhiên, các thuật toán mã hóa đối xứng có một điểm yếu: bạn có thể vượt qua bảo mậtcủa chúng nếu bạn lấy được khóa Nếu nhiều người dùng muốn chia sẻ một tệp được
mã hóa chỉ được bảo vệ bằng cách sử dụng mã hóa đối xứng, mỗi người dùng sẽ yêucầu quyền truy cập vào FEK của tệp Việc để cho FEK không được mã hóa rõ ràng sẽ
là một vấn đề bảo mật, nhưng đã từng mã hóa FEK một lần sẽ yêu cầu tất cả ngườidùng chia sẻ cùng một khóa giải mã FEK — một vấn đề bảo mật tiềm ẩn khác
Giữ an toàn cho FEK là một vấn đề khó khăn khi mà EFS giải quyết bằng khóacông khai dựa trên một nửa kiến trúc mã hóa của nó Việc mã hóa FEK của tệp cho cácngười dùng cá nhân truy cập tệp cho phép nhiều người dùng chia sẻ một tệp được mãhóa EFS có thể mã hóa FEK của tệp bằng khóa công khai của mỗi người dùng và cóthể lưu trữ FEK đã được mã hóa của mỗi người dùng trong luồng dữ liệu $EFS củatệp Bất kỳ ai cũng có thể truy cập vào khóa công khai của người dùng, nhưng khôngmột ai có thể sử dụng khóa công khai để giải mã dữ liệu mà khóa công khai đã mã hóa.Cách duy nhất người dùng có thể giải mã một tập tin là sử dụng khóa cá nhân của họ.Khóa riêng tư của một người dùng để giải mã bản sao được mã hóa của người dùngtrong FEK của tệp Các thuật toán dựa trên khóa công khai thường khá chậm, nhưngEFS chỉ sử dụng các thuật toán này để mã hóa FEK Phân tách sự quản lý khóa giữamột khóa công khai khả dụng và khóa riêng tư giúp cho việc quản lý khóa dễ dàng hơnmột chút so với các thuật toán mã hóa đối xứng và giải quyết vấn đề nan giải trongviệc giữ an toàn cho FEK
Trang 15Một số thành phần cần phải hoạt động cùng nhau để EFS hoạt động, như sơ đồcủa kiến trúc EFS ở hình dưới EFS được hợp nhất vào trình điều khiển NTFS Bất cứkhi nào NTFS gặp phải tệp được mã hóa, NTFS thực thi các chức năng EFS mà nóchứa đựng Các chức năng EFS mã hóa và giải mã dữ liệu tệp như ứng dụng truy cậpcác tệp được mã hóa Mặc dù EFS lưu trữ FEK với dữ liệu của tệp, nhưng khóa côngkhai của người dùng mã hóa FEK Để mã hóa hoặc giải mã dữ liệu tệp, EFS phải giải
mã FEK của tệp với sự hỗ trợ của dịch vụ quản lý khóa CNG nằm trong chế độ ngườidùng
Hình 1.2: Kiến trúc EFS
Local Security Authority Subsystem (LSASS;% SystemRoot% \ System32 \Lsass.exe) quản lý các phiên đăng nhập và lưu trữ dịch vụ EFS Ví dụ: khi EFS cần
Trang 16giải mã FEK để giải mã dữ liệu tệp mà người dùng muốn truy cập, NTFS sẽ gửi yêucầu đến dịch vụ EFS bên trong LSASS.
2.3 Một số điểm cần lưu ý khi sử dụng EFS trên Windows
EFS chỉ làm việc trên hệ thống định dạng tập tin NTFS
EFS không làm việc nếu hệ thống không có Recovery Agent (nếu bạn khôngthực hiện hệ thống sẽ tự động gán một user để làm việc này)
EFS có thể dùng để mã hoá và giải mã đối với tập tin và thư mục trên một máytính khác
EFS không thực hiện mã hoá tập tin hay thư mục hệ thống được
EFS không thực hiện được trên các tập tin và thư mục đã được Compress(NTFS compress)
Khi copy tập tin hay thư mục vào một thư mục đã mã hoá nó cũng bị mã hoátheo
Khi di chuyển một tập tin hay một thư mục từ một thư mục mã hoá đến một thưmục khác hãy để ý đến thuộc tính mã hoá vẫn còn thực thi đối với nó sau khi dichuyển
Khi di chuyển một tập tin hay thư mục được mã hoá sang thư mục nằm trênphân vùng có định dạng tập tin là FAT thì thuộc tính mã hoá sẽ không còn
EFS chỉ tiến hành mã hoá nội dung của các file Nó chỉ ngăn cấm các truy xuất
để đọc dữ liệu trái phép, không ngăn cấm các thao tác như sao chép, xoá, dichuyển, đổi tên,… Các thao tác này được thực hiện bằng NTFS permission
2.4 So sánh Bitlocker với EFS
BitLocker là giải pháp mã hóa toàn bộ ổ đĩa của bạn
Khi thiết lập BitLocker, bạn sẽ mã hóa toàn bộ một phân vùng - như phân vùng
hệ thống Windows, một phân vùng trên một ổ đĩa nội bộ, hoặc ngay cả một phân vùngtrên ổ đĩa USB flash Bạn có thể mã hóa một số file với BitLocker bằng cách tạo ramột file có chứa mã hóa Về cơ bản file có chứa mã hóa này là một ổ cứng ảo (virtualdisk hay disk image) BitLocker sẽ hoạt động bằng cách làm việc với ổ cứng ảo và mãhóa toàn bộ những gì có trong ổ cứng ảo đó Nếu bạn muốn mã hóa ổ cứng để bảo vệ
dữ liệu nhạy cảm không bị rơi vào tay kẻ xấu, đặc biệt là trong trường hợp Laptop củabạn bị trộm thì BitLocker là lựa chọn hàng đầu BitLocker sẽ mã hóa toàn bộ ổ đĩa do
Trang 17đó bạn không cần phải lo lắng file nào đã được mã hóa và file nào chưa được mã hóa.Toàn bộ hệ thống của bạn sẽ được mã hóa Việc mã hóa cũng không phụ thuộc vào tàikhoản người dùng Khi một Admin kích hoạt BitLocker, các file trên các tài khoảnngười dùng khác trên máy tính sẽ được mã hóa Trên Windows 10 và 8.1, mã hóa ổ đĩa(drive encryption) có phần hạn chế hơn, bởi vì nó chỉ mã hóa toàn bộ ổ đĩa mà không
mã hóa các file cá nhân trên đó
Hình 1.5: Bitlocker trong Windows
EFS mã hóa các file cá nhân
Thay vì mã hóa toàn bộ ổ đĩa của bạn, bạn có thể sử dụng EFS để mã hóa riêngcác tập tin và thư mục Trong khi tính năng của bitlocker là "thiết lập và quên nóđi" thì EFS yêu cầu bạn lựa chọn các tập tin mà bạn muốn mã hóa và thay đổi thiếtlập Để lựa chọn các tập tin mà bạn muốn mã hóa, trên cửa sổ File Explorer, chọnmột thư mục hoặc tập tin cá nhân, sau đó mở cửa sổ Properties Ở tùy chọnAttributes, bạn chọn Advanced, sau đó kích hoạt tùy chọn "Encrypt contents tosecure data" Việc mã hóa này dựa trên cơ sở mỗi người sử dụng Bạn chỉ có thế
Trang 18truy cập các tập tin mã hóa bằng tài khoản người dùng cụ thể đã mã hóa các tập tin
đó Khi bạn đăng nhập tài khoản người dùng đã mã hóa các tập tin, bạn có thể truycập các tập tin mà không cần phải xác nhận bất kỳ thông tin bổ sung nào Nếu bạnđăng nhập bằng một tài khoản khác, bạn không thể truy cập được các tập tin.Cáckey mã hóa được lưu trữ trong hệ điều hành của nó và hầu như không sử dụng đếnphần cứng TPM trên máy tính của bạn Tuy nhiên các key này có thể bị hacker tấncông
EFS không mã hóa toàn bộ ổ đĩa mà chỉ mã hóa các tập tin cá nhân, do đó cáctập tin trên một hệ thống cụ thể sẽ không được bảo vệ Ngoài ra các tập tin được
mã hóa có thể bị "rò rỉ" ra các khu vực không được mã hóa Ví dụ, nếu một chươngtrình tạo ra một file cache tạm thời sau khi bạn mở một tài liệu được mã hóa bằngEFS, các thông tin nhạy cảm, tập tin bộ nhớ cache và dữ liệu nhạy cảm của tài liệu
đó sẽ được lưu trữ trong thư mục khác không được mã hóa.Về cơ bản BitLocker làmột tính năng của Windows có thể mã hóa toàn bộ ổ đĩa thì EFS mất điểm trongviệc bảo vệ các file hệ thống NTFS
Hình 1.6: EFS trong Windows
Trang 19CHƯƠNG 3 QUÁ TRÌNH HOẠT ĐỘNG CỦA EFS
3.1 Mã hóa tệp lần đầu
Trình điều khiển NTFS gọi các chức năng hỗ trợ EFS khi nó gặp một tệp mã hóa Các thuộc tính của tệp lưu lại thông tin tệp mã hóa theo cùng một cách mà tệp lưulại thông tin khi nó được nén NTFS có các giao diện cụ thể để chuyển đổi tệp từ dạngkhông mã hóa sang dạng mã hóa, nhưng các thành phần chế độ người dùng chủ yếu là
để thúc đẩy quá trình Như đã mô tả trước đó, Windows cho phép chúng ta mã hóa tệp theo hai cách: bằng cách sử dụng tiện ích command-line cipher hoặc bằng cách chọn Encrypt Contents To Secure Data trong hộp thoại Advanced Attributes cho tệp trong Windows Explorer Cả Windows Explorer và lệnh cipher đều dựa vào API Windows EncryptFile mà file Advapi32.dll ((Advanced Windows APIs DLL) xuất ra
EFS chỉ lưu trữ một khối thông tin trong một tệp được mã hóa và khối đó chứa
một mục nhập cho mỗi người dùng chia sẻ tệp Các mục nhập này được gọi là key
entry và EFS lưu trữ chúng trong phần trường giải mã dữ liệu (DDF) của dữ liệu EFS
của tệp Tập hợp nhiều key entry được gọi là key ring bởi vì, như đã đề cập trước đó,
EFS cho phép nhiều người dùng chia sẻ các tệp được mã hóa
Hình 1.3 bên dưới cho thấy định dạng thông tin EFS và định dạng key entry của tệp EFS lưu trữ đủ thông tin trong phần đầu tiên của key entry để mô tả chính xác khóa công khai của người dùng Dữ liệu này bao gồm ID bảo mật của người dùng (SID) (lưu ý rằng SID không cần thiết phải có xuất hiện), tên vùng chứa mà ở đó khóa được lưu trữ, tên nhà cung cấp mật mã và hàm băm chứng chỉ cặp khóa bất đối xứng Quy trình giải mã chỉ sử dụng hàm băm chứng chỉ cặp khóa bất đối xứng Phần thứ haicủa key entry có chứa phiên bản được mã hóa của FEK EFS sử dụng CNG để mã hóa FEK với thuật toán mã hóa bất đối xứng đã chọn và khóa công khai của người dùng
Trang 20Hình 1.3: Định dạng thông tin EFS và các key entry
EFS lưu trữ thông tin về các key entry khôi phục trong trường khôi phục dữ liệucủa tệp (DRF) Định dạng của các mục DRF giống với định dạng của các mục DDF Mục đích của DRF là cho phép các tài khoản được chỉ định, hoặc các Recovery Agent,giải mã tệp của người dùng khi quản trị viên có quyền truy cập vào dữ liệu Ví dụ: giả
sử một nhân viên của công ty quên mật khẩu đăng nhập của mình Một quản trị viên
có thể đặt lại mật khẩu cho người dùng, nhưng khi không có Recovery Agent, không ai
có thể khôi phục dữ liệu đã được mã hóa của người dùng
Recovery Agent được định nghĩa với chính sách bảo mật Encrypted Data Recovery Agents trong máy tính cục bộ hoặc miền Chính sách này có sẵn từ phần đính kèm Local Security Policy MMC, như được hiển thị trong Hình 1.4 Khi bạn sử dụng Add Recovery Agent Wizard (bằng cách nhấp chuột phải vào Encrypting File System và sau đó nhấp vào Add Data Recovery Agent), bạn có thể thêm Recovery Agent và chỉ định riêng các cặp khóa công khai hoặc riêng tư (được chỉ định bởi chứng chỉ của chúng) mà các Recovery Agent sử dụng để khôi phục EFS Lsasrv (Lsasrv.dll là một tập tin DLL (Thư Viện Liên Kết Thông Minh) , phát triển bởi
Microsoft, một thành phần thiết yếu, đảm bảo cho các chương trình Windows hoạt động bình thường) thông dịch chính sách khôi phục khi nó khởi tạo và khi nó nhận được thông báo rằng việc khôi phục chính sách đã thay đổi EFS tạo một key entry DRF cho mỗi Recovery Agent bằng cách sử dụng mật mã mà nhà cung cấp đã đăng kýcho việc khôi phục EFS
Trang 21Hình 1.4: Nhóm chính sách Encrypted Data Recovery Agents
Bước cuối cùng trong việc tạo thông tin EFS cho một tệp, Lsasrv tính toán checksum cho DDF và DRF bằng cách sử dụng cơ sở hàm băm MD5 của Base
Cryptographic Provider 1.0 Lsasrv lưu trữ kết quả checksum trong header thông tin EFS EFS tham chiếu đến checksum này trong quá trình giải mã để đảm bảo rằng nội dung của thông tin EFS của tệp không bị hỏng hoặc bị giả mạo
3.2 Mã hóa dữ liệu tệp
Khi người dùng mã hóa một tệp hiện có, quá trình sau sẽ xảy ra:
1 Dịch vụ EFS mở tệp để truy cập một cách độc quyền
2 Tất cả các luồng dữ liệu trong tệp được sao chép sang tệp plaintext (bản rõ) tạmthời trong thư mục tạm thời của hệ thống
3 Một FEK được tạo ngẫu nhiên và được sử dụng để mã hóa tệp bằng cách sử dụng DESX hoặc 3DES, tùy thuộc vào chính sách bảo mật an toàn
4 Một DDF được tạo để chứa FEK được mã hóa bằng cách sử dụng khóa công khai của người dùng EFS tự động lấy khóa công khai của người dùng từ chứngchỉ mã hóa tệp X.509 version 3 của người dùng
5 Nếu một Recovery Agent đã được chỉ định thông qua Group Policy (Chính sáchNhóm), một DRF sẽ được tạo để chứa FEK được mã hóa bằng cách sử dụng RSA và khóa công khai của Recovery Agent EFS tự động lấy khóa công khai của Recovery Agent để khôi phục tệp từ chứng chỉ X.509 version 3 của
Recovery Agent, được lưu trữ trong chính sách khôi phục EFS Nếu có nhiều Recovery Agent, một bản sao của FEK được mã hóa bằng cách sử dụng khóa công khai của từng agent và DRF được tạo để lưu trữ mỗi FEK được mã hóa
Trang 226 EFS ghi dữ liệu được mã hóa cùng với DDF và DRF trở lại tệp Tại vì mã hóa đối xứng không thêm dữ liệu bổ sung, thước tệp tang rất ít sau khi được mã hóa Siêu dữ liệu, chủ yếu bao gồm các FEK được mã hóa, thường nhỏ hơn 1
KB Kích thước tệp trong byte trước và sau khi mã hóa thường được cho là giống nhau
7 “ Tệp bản rõ tạm thời” (temporary plaintext) bị xóa
Khi người dùng lưu tệp vào một thư mục đã được định cấu hình để mã hóa, quátrình này cũng tương tự xảy ra ngoại trừ việc không có tệp tạm thời nào được tạo ra
2 Trình điều khiển EFS truy xuất DDF và chuyển nó đến dịch vụ EFS
3 Dịch vụ EFS truy xuất khóa riêng tư của người dùng từ hồ sơ của người dùng
và sử dụng khóa đó để giải mã DDF và lấy FEK
4 Dịch vụ EFS chuyển FEK trở lại trình điều khiển EFS
5 Trình điều khiển EFS sử dụng FEK để giải mã các phần của tệp khi cần thiết cho ứng dụng
6 Trình điều khiển EFS trả về dữ liệu đã giải mã cho NTFS, sau đó sẽ gửi dữ liệu đến ứng dụng đang yêu cầu
3.4 Sao lưu các tệp được mã hóa
Một khía cạnh quan trọng trong việc thiết kế bất kỳ phương tiện mã hóa tệp nào
là dữ liệu tệp không bao giờ có sẵn ở dạng không được mã hóa ngoại trừ các ứng dụng truy cập tệp qua các phương tiện mã hóa Hạn chế này đặc biệt ảnh hưởng đến các tiện ích sao lưu, nơi mà phương tiện lưu trữ lưu giữ tệp ở đó EFS giải quyết vấn đề này bằng cách cung cấp điều kiện cho các tiện ích sao lưu để chúng
có thể sao lưu và khôi phục các tệp đang trong trạng thái được mã hóa Do đó, các tiện ích sao lưu không cần phải giải mã dữ liệu tệp, cũng như không cần mã hóa dữliệu tệp trong các thủ tục sao lưu của chúng
Trang 23Tiện ích sao lưu sử dụng các hàm API EFS OpenEncryptedFileRaw,
ReadEncryptedFileRaw, WriteEncryptedFileRaw và CloseEncryptedFileRaw trongWindows để truy cập nội dung được mã hóa của tệp Sau khi tiện ích sao lưu mở một tệp để truy cập thô trong quá trình sao lưu, tiện ích này gọi
ReadEncryptedFileRaw để lấy dữ liệu tệp
EFS có một số hàm API khác mà các ứng dụng có thể sử dụng để thao tác với các tệp được mã hóa
Ví dụ: các ứng dụng sử dụng hàm API AddUsersToEncryptedFile để cung cấp quyền truy cập người dùng bổ sung vào một tệp được mã hóa và dùng
RemoveUsersFromEncryptedFile để thu hồi quyền truy cập của người dùng tới một tệp được mã hóa Các ứng dụng sử dụng hàm QueryUsersOnEncryptedFile để lấy thông tin về các trường khóa DDF và DRF được liên kết của tệp API
QueryUsersOnEncryptedFile trả về SID, giá trị hàm băm chứng chỉ và hiển thị thông tin mà mỗi trường khóa DDF và DRF chứa Các output sau đây là từ tiện ích EFSDump, từ Sysinternals, khi một tệp được mã hóa được chỉ định làm đối số dòng lệnh:
C:\>efsdump test.txt
EFS Information Dumper v1.02
Copyright (C) 1999 Mark Russinovich
Systems Internals – http://www.sysinternals.com
EFS Data Recovery
Ta có thể thấy rằng tệp test.txt có một mục nhập DDF cho Mark người dùng và một mục nhập DRF cho agent phục hồi dữ liệu EFS, là Recovery Agent duy nhất hiện được đăng ký trên hệ thống
Trang 243.5 Sao chép các tệp mã hóa
Khi một tệp mã hóa được sao chép, hệ thống không giải mã và mã hóa lại tệp
đó tại đích đến của nó; nó chỉ sao chép dữ liệu được mã hóa và các luồng dữ liệu thay thế EFS đến đích được chỉ định Tuy nhiên, nếu điểm đích không hỗ trợ các luồng dữ liệu thay thế — nếu đó không phải là ổ đĩa NTFS (chẳng hạn như ổ đĩa FAT) hoặc là chia sẻ mạng (ngay cả khi chia sẻ mạng là ổ đĩa NTFS) — bản sao không thể tiến hành một cách bình thường vì các luồng dữ liệu thay thế sẽ bị mất Nếu bản sao được thực hiện với Explorer, một hộp thoại thông báo cho người dùngrằng ổ đĩa đích không hỗ trợ mã hóa và hỏi người dùng xem tệp có nên được sao chép đến điểm đích không được mã hóa hay không Nếu người dùng đồng ý, tập tin
sẽ được giải mã và sao chép đến đích được chỉ định Nếu sao chép được thực hiện
từ command promp, lệnh sao chép sẽ không thành công và trả về thông báo lỗi
"Tệp được chỉ định không thể được được mã hóa ”
CHƯƠNG 4: ƯU VÀ NHƯỢC CỦA EFS
4.1 Ưu điểm
Công nghệ EFS giúp người dùng khác không thể mở các tệp được mã hóa bởimột người dùng nếu người đến sau không có quyền thích hợp Sau khi mã hóa đượckích hoạt, tệp vẫn được mã hóa ở bất kỳ vị trí lưu trữ nào trên đĩa, bất kể nó được dichuyển ở đâu Mã hóa có thể được sử dụng trên bất kỳ tệp nào, bao gồm cả tệp thựcthi Người dùng có quyền giải mã tệp có thể làm việc với tệp như với bất kỳ tệp nào