Bài viết này tập trung chủ yếu vào người dùng Windows XP. Với máy tính thuộc
workgroup hoặc domain sử dụng Windows 2000/2003
Tổng quan về EFS
EFS (Encrypting File
System) cho phép người dùng mã hóa dữ liệu, thông tin cá nhân được lưu trữ trên
máy tính nhằm bảo vệ sự riêng tư, tránh người dùng khác khi sử dụng máy tính
truy cập một cách cố ý hoặc vô ý. trường hợp trên đều dễ bị tấn công do những hạn
chế của ACL (Access Control Lists).
Trên một máy tính dùng chung, kẻ tấn
công có thể lấy được quyền truy cập vào hệ thống thông qua việc sử dụng một hệ điều hành khác nếu máy tính được cài đặt nhiều HÐH. Một trường hợp khác với máy
tính bị đánh cắp, bằng cách tháo ổ cứng và gắn vào máy tính khác, kẻ tấn công dễ
dàng truy cập những tập tin lưu trữ. Sử dụng EFS để mã hóa những tập tin, nội
dung hiển thị chỉ là những ký tự vô nghĩa nếu kẻ tấn công không có khóa để giải
mã.
Trong thiết lập mặc định của HÐH Windows XP, EFS được
kích hoạt cho phép người dùng mã hóa những tập tin trong giới hạn tài khoản của
mình, mà không chịu ảnh hưởng bởi
chính sách quản lý của người quản trị. Tài khoản thuộc các nhóm người dùng đều
có thể sử dụng EFS mà không cần đến quyền Administrator, có thể áp dụng trên máy đơn hoặc máy trạm thuộc domain, workgroup. Dưới góc nhìn của người dùng cuối,
việc mã hóa một tập tin rất đơn giản.
Chỉ những người dùng được
phép hoặc được chỉ định mới có quyền giải mã những tập tin này. Những tài khoản
người dùng khác trong hệ thống; thậm chí có thể chiếm quyền kiểm soát tập tin
(Take Ownership Permission) vẫn không thể đọc được nội dung nếu không có khóa
truy cập (access key). Ngay cả tài khoản thuộc nhóm Administrators cũng không
thể mở tập tin này nếu tài khoản đó không được chỉ định quyền giải
mã.
Mã hóa dữ liệu của
EFS
EFS sử dụng kết hợp khóa công khai và khóa mã hóa đối xứng để bảo mật tập tin. Phương pháp mã hóa công khai (public key encryption) sử dụng
một cặp khóa public key/private key (thông tin mã hóa bởi public key có thể đýợc
giải mã bằng private key) và khóa mã hóa FEK (file encryption key) để mã hóa và
giải mã dữ liệu.
Khi người dùng mã hóa một tập tin, EFS tạo ra một FEK để
mã hóa dữ liệu; FEK này sẽ được mã hóa với public key sau khi kết thúc “nhiệm
vụ” của mình và được lưu giữ trong header của dữ liệu đã mã hóa. Khi cần giải
mã, EFS sử dụng private key (ứng với mỗi người dùng) để giải mã FEK và sử dụng
FEK để giải mã dữ liệu.
Việc mã hóa và giải mã trong Windows XP có thể sử
dụng bằng nhiều cách khác nhau: tùy chọn thuộc tính mã hóa trong Advanced
Properties; có thể sao chép tập tin cần mã hóa vào thý mục đã mã hóa hoặc sử
dụng dòng lệnh “Cipher.exe” trong cửa sổ DOS – Prompt...
Ví dụ, để mã hóa
dữ liệu bằng Advanced Properties:
- Mở Windows Explorer, chọn tập tin bạn
muốn mã hóa.
- Nhấn chuột phải lên tập tin và chọn Properties.
-
Chọn Advanced để kích hoạt EFS.
- Ðánh dấu chọn vào mục “Encrypt contents
to secure data” để mã hóa và bỏ chọn nếu không muốn tiếp tục áp dụng EFS cho tập
tin này
Quá trình mã hóa tập tin của
EFS
Khi cần mã hóa tập tin, EFS sẽ thực hiện các bước
sau.
- Mở tập tin cần mã hóa và sao chép tất cả dữ liệu vào một tập tin
tạm thời trong thư mục TEMP của hệ thống.
- Một FEK ngẫu nhiên được tạo
ra để mã hóa dữ liệu bằng thuật toán DESX hoặc 3DES (tùy vào việc áp dụng chính
sách bảo mật) và FEK này được mã hóa với public key và lưu vào DDF (Data
Decrypting Field - vùng dành để giải mã).
- Nếu sử dụng Recovery Agent
(được thiết lập trong Group Policy), DRF (Data Recovery Field - vùng khôi phục
dữ liệu) được tạo ra để chứa FEK mã hóa bằng public key của Data Recovery Agent
(tác nhân phục hồi dữ liệu).
- Kết thúc quá trình mã hóa, EFS sẽ ghi
những dữ liệu đã mã hóa cùng với DDF và DRF vào tập tin và xóa bỏ tập tin
tạm.
Quá trình giải mã tập tin của
EFS
Khi ứng dụng cần truy cập một tập tin mã hóa, quá trình
giải mã được thực hiện như sau:
- NTFS sẽ ghi nhận tập tin cần giải mã và
gửi yêu cầu đến EFS driver.
- EFS driver sẽ khôi phục DDF và gửi nó đến
EFS service.
- Với private key của người dùng, EFS service sử dụng chìa
khóa này để giải mã DDF nhằm có được FEK và gửi FEK này cho EFS driver.
-
EFS driver sử dụng FEK để giải mã nội dung tập tin mà ứng dụng yêu
cầu.
Như vậy public key, private key, file encryption key là các yếu tố
quan trọng của quá trình mã hóa và giải mã. Trong bài viết sau tôi sẽ
giới thiệu việc tạo bản sao dự phòng các khóa này trong trường hợp hệ thống gặp
sự cố và một số phương thức để giải mã, lấy lại quyền truy cập dữ liệu khi bạn
không có bản sao dự phòng.


