• Thứ Ba, 21/06/2005 16:34 (GMT+7)

    Bảo mật với EFS trong Windows XP

    Bài viết này không đề cập một cách chi tiết phương pháp mã hóa dữ liệu của EFS với những thuật ngữ xa lạ và khó nhớ mà chỉ giúp bạn đọc có một “cái nhìn” rõ hơn về EFS, 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, bạn có thể tự tìm hiểu thêm qua những thông tin có sẵn trên Internet, đặc biệt tại website www.microsoft.com và các tài liệu mà chúng tôi tham khảo.

    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ô ý. Đặc biệt, EFS thường được sử dụng để bảo vệ những dữ liệu quan trọng, “nhạy cảm” trên những máy tính xách tay hoặc máy tính có nhiều người sử dụng. Cả hai 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ã.

    Tính năng EFS được tích hợp chặt chẽ với hệ thống tập tin NTFS. Khi mở một tập tin, EFS sẽ thực hiện quá trình giải mã, dữ liệu được đọc từ nơi lưu trữ sau khi so khớp khóa mã hóa tập tin; khi người dùng lưu những thay đổi của tập tin, EFS sẽ mã hóa dữ liệu và ghi chúng vào nơi lưu trữ cần thiết. Với thuật toán mã hóa đối xứng 3DES, quá trình mã hóa và giải mã diễn ra ngầm bên dưới, thậm chí người dùng cũng không nhận ra sự khác biệt khi làm việc với những tập tin được mã hóa.

    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 (tham khảo thêm thông tin trong bài Sử dụng máy tính với tài khoản thuộc nhóm Users (phần 1) (TGVT A tháng 4/2005, tr.139) 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, tương tự việc thiết lập thuộc tính cho tập tin. Việc mã hóa cũng được áp dụng cho thư mục và tất cả tập tin được tạo hoặc thêm vào thư mục này cũng được tự động mã hóa.

    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ã (hình 1).

    Phương thức 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 (hình 4).

    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. (Hình 5)

    - 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 (hình 6):

    - 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 kỳ tới, chúng 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.

    Đông Quân

    ID: A0506_156