Ẩn toàn bộ file hệ thống như thế nào
Mã hoá file đơn giản có ích lợi riêng của nó, nhưng đôi khi sẽ còn ích lợi
hơn nếu mã hoá được toàn bộ file hệ thống hoặc mã hoá toàn bộ ổ đĩa.
Như trong trường hợp bạn cần bảo vệ một tập hợp lớn các file, hoặc đôi
khi không chỉ bảo vệ mà bạn còn cần ẩn toàn bộ sự hiện diện của dữ liệu
nhạy cảm trước những con mắt tò mò. Trong những trường hợp như
vậy, giải pháp nào hữu hiệu cho bạn? Bài này sẽ cung cấp một số lựa
chọn giúp bạn bảo vệ an toàn hơn cho hệ thống của mình.
Nếu đã có một phân vùng hay ổ đĩa mã hoá chuyên dụng, cái bạn cần bây giờ
chỉ là một mật khẩu hoặc khoá giải mã để mở tất cả các file được bảo vệ. Một
số giải pháp thậm chí cho phép bạn mã hoá cả phân vùng gốc và phân vùng
trung gian. Song, có một số nhược điểm là đôi khi tốc độ thực thi bị giảm
đáng kể (và đáng tiếc, đây lại là một trong các tiêu chí đánh giá bảo mật). Sự
thật là, nếu một kẻ tấn công nào đó tìm ra khoá giải mã của bạn (hoặc có khi
do chủ nhân sơ ý để lộ) thì bạn có thể nói lời tạm biệt với tất cả các file được
bảo vệ của mình.
Thiết bị lặp vòng và dm-crypt
Hiện nay, phương thức chính được sử dụng trong mã hoá file hệ thống ở nhân
Linux là trình điều khiển thiết bị lặp vòng và hệ thống ánh xạ thiết bị (sử
dụng đích dm-crypt). Nếu bạn có ý định sử dụng thiết bị lặp vòng thì loop-
AES là lựa chọn tốt nhất. Đó là một trong các phương thức mã hoá đĩa cứng
hoàn chỉnh nhất dành cho Linux và file hướng dẫn README thông minh của
nó cung cấp một số ví dụ thực đáng kể trong mã hoá file hệ thống.
Dm-crypt được đóng gói với loạt kernel 2.6 và cung cấp khả năng thực thi tốt
hơn, bảo mật hơn trình điều khiển thiết bị lặp vòng. Thành phần của nó cũng
phong phú hơn.
Dự án sử dụng dm-cryp nhiều triển vọng nhất hiện nay dường như là LUKS.
Mục đích của dự án là cung cấp một kiểu định dạng trên đĩa tiêu chuẩn, giúp
việc chuyển dời dữ liệu được bảo vệ giữa các phân phối dễ dàng hơn. Bên
cạnh đó, nó cung cấp chương trình quản lý đa khoá (một mở rộng lớn) và các
phân vùng mã hoá có thể được truy cập trong Windows qua FreeOTFE (mở
rộng thậm chí còn lớn hơn).
Các phương thức sử dụng FUSE
Hai ứng dụng khác lại có đường lối khác. Cả CryptoFS và EncFS đều là file
hệ thống được mã hoá chạy trên đầu FUSE, tức một gói cho phép người dùng
tạo file hệ thống trong không gian người dùng và thao tác với nó mà không
cần phải có đặc quyền root cùng với nhiều thứ khác. Với các ứng dụng này,
file (và tên của chúng) được mã hoá và chứa trong một thư mục bình thường.
Người dùng phải chọn thư mục khác với vai trò như một điểm đặt cho file hệ
thống được mã hoá: dữ liệu mã hoá sẽ được giải mã ở đó, sử dụng một khoá
giải mã. Nếu không có khoá giải, sẽ không có cách nào mở được thư mục với
các file đã được giải mã.
CryptoFS và EncFS đạt được tỷ lệ cân bằng tốt giữa bảo mật và sự tiện lợi
trong sử dụng cho người dùng. Các file hệ thống được tạo với FUSE có thể
tăng lên bất kỳ độ lớn nào, tương phản với phương thức lặp vòng đòi hỏi phải
tạo phân vùng với kích thước cố định. Tuy nhiên, với đối tượng người dùng
cẩn thận thì họ nhận thấy có một nhược điểm lớn trong sử dụng file hệ thống
FUSE là: nếu nhìn vào bên trong thư mục thông thường, bất kỳ ai cũng sẽ
vẫn thấy tổng số file mã hoá là bao nhiêu, tính toán được kích thước thực của
chúng và kiểm tra quyền hạn có thể có.
Một nghiên cứu mới đây so sánh giữa EncFS và CryptoFS với LUKS chỉ ra
rằng LUKS “cao tay” hơn trong thực thi file.
eCryptfs
Một lựa chọn khác có xu hướng ngược lại trong
nhân Linux là eCryptfs. Bạn sẽ cần đến mô-đun
kernel và các tiện ích không gian người dùng để
cài đặt và sử dụng nó. eCryptfs cung cấp một hệ thống file mã hoá ngăn xếp,
nghĩa là nó làm việc phía trên của một hệ thống file khác đã có trước đó và
ngăn xếp lời gọi của nó (bởi vậy, một số file hệ thống như XFS có thể là
nguyên nhân gây ra nhiều vấn đề).
Một điểm cải tiến khi dùng eCryptfs đủ cho bạn an tâm là: eCryptfs là một
kiểu hệ thống file tự nhiên trong Linux và không cần hoạt động qua các lời
gọi FUSE hay RPC. Như thế có nghĩa là nó có ít phụ thuộc hơn và dễ dàng
phát triển hơn. Siêu dữ liệu mật mã của mỗi file được lưu trữ trong phần tiêu
đề của chúng, giúp việc chuyển dịch dữ liệu và sao lưu dễ dàng hơn. Các
thành phần như quản lý khoá đã được cung cấp. Một số thành phần khác, như
mã hoá tên file đang được lên kế hoạch trong tương lai gần.
Mã hoá có thể từ chối
Trong một số trường hợp, dữ liệu không chỉ cần được bảo vệ mà còn cần
tránh con mắt tò mò của nhiều người khác. Ở một số nước đã từng có luật
quy định công dân có thể sẽ bị bỏ tù nếu từ chối cung cấp khoá giải mã các
file mã hoá cho các nhà chức trách. Do đó, liệu pháp bảo vệ tốt nhất đôi khi
là đừng có hiện dữ liệu mã hoá lên.
Một số công cụ steganographic cho phép người dùng ẩn dữ liệu một cách kín
đáo “sau” các file khác (thông thường là file ảnh hoặc âm thanh). Tuy nhiên,
khi bạn có nhiều file cần ẩn hoặc kích thước của chúng quá lớn để có thể nằm
sau một file .jpg đơn giản, cách tốt nhất là nên sử dụng hệ thống file
steganographic.
Một đề xuất thú vị mới được đưa ra gần đây là hệ thống file MP3
steganographic. Phương thức được sử dụng nhiều nhất là đơn giản chỉ cần tạo
các phân vùng mã hoá ẩn. Nhưng không chỉ dừng ở đó, chúng cũng cho phép
người dùng tạo các tầng bên trong phân vùng, với mật khẩu khác nhau cho
từng phân vùng. Khi bị ép cung cấp mật khẩu cho một phân vùng ẩn, người
dùng có thể đưa cho họ mật khẩu truy cập tới tầng chứa dữ liệu giả. Một tầng
đều độc lập và không biết nhau, vì thế sẽ không thể chỉ ra sự tồn tại của tầng
khác được. Do đó, bạn có khả năng từ chối cung cấp thông tin một cách khéo
léo và hợp lý.
Các file hệ thống steganographic có một số nhược điểm. Do dữ liệu ẩn phải
được phân phối ngẫu nhiên qua toàn bộ ổ đĩa hoặc phân vùng khiến việc theo
dõi không thể thực hiện được. Và chúng có thể bị ghi đè bởi các thao tác file
thông thường trong những phân vùng có thể thấy được. Xung đột dữ liệu
cũng có thể xuất hiện. Tốc độ thực thi file với kiểu file hệ thống này cũng
kém một cách khác thường. Nhưng tệ hại nhất là hầu hết tất cả các dự án mà
tôi biết đều không thể triển khai, hoặc triển khai được nửa chừng. Ví dụ như
Rubberhose, Phonebook, và StegFS, MagikFS, những dự án vốn đầy hứa hẹn
trên lý thuyết. Hy vọng rằng chúng không phải chịu chung số phận như các
dự án khác.
Có một công cụ khá dễ chịu với khả năng bảo trì tốt, sử dụng mã hoá có thể
từ chối là: Truecrypt. Bên cạnh việc cho phép tạo các phân vùng mã hoá đơn
giản, Truecript cũng tạo các ổ đĩa ẩn, nơi một “phân vùng bên ngoài” được
mã hoá để che giấu dữ liệu giả. Và do đó, một “phân vùng bên trong” nhỏ
hơn không thể thấy được tạo. Dữ liệu của nó được giữ trong không gian trống
của phân vùng bên ngoài.
Nếu đọc tài liệu hướng dẫn kèm theo, bạn sẽ thấy Truecrypt tìm ra một số
cách tránh được vấn đề ngắt quãng dữ liệu và thực thi file kết hợp với các file
hệ thống steganographic. Bên cạnh đó, nó dễ cài đặt và sử dụng, lại có cả
phiên bản dành cho Linux với Windows. (Bạn sẽ cần nguồn kernel để cài đặt
nó trên Linux). Đó là một trong các giải pháp mã hoá ổ cứng tốt nhất cho cả
hai hệ điều hành.
Bảo mật - hãy ưu tiên
Ai đó đã từng nói rằng bảo mật là trạng thái của trí tuệ. Bởi vì không ai khác,
chính bạn mới là người giữ cho hệ thống của mình an toàn chứ không phải
phần mềm bạn sử dụng. Luôn luôn có một số lỗ hổng trên tất cả các hệ thống
khi mã hoá file hay thậm chí mã hoá ổ đĩa không với tới được. Mỗi lần truy
cập một file, một bản copy của nó có thể được tạo trong không gian trao đổi
hay trong các thư mục tạm thời. File history trên shell của bạn sẽ hiển thị các
lệnh được sử dụng gần đây nhất. Nhiều ứng dụng giữ lại các bản copy sao
lưu của file mà chúng tạo. Và văn bản bạn vừa in hay xoá từ ổ cứng vẫn có
thể phục hồi lại được từ đường ống máy in. Khoá giải mã của bạn nên được
viết ra giấy hoặc lưu trữ trong một thiết bị di động (thẻ nhớ, đĩa CD) và để ở
một nơi an toàn. Đặt giữa hai sự lựa chọn thì thà hoang tưởng một chút
(chuẩn bị cho các sự cố có thể xảy ra) còn hơn là không cẩn thận.
Và chú ý cuối cùng, nếu bạn đang dùng FreeBSD, bạn có thể thử với
CryptoFS và EncFS qua Fuse4BSD. Bạn cũng nên để mắt tới CGD
(NetBSD) và GBDE. Để biết thêm thông tin về steganography và che giấu dữ
liệu, bạn có thể tham khảo tại đây. Tôi cũng cần chú ý thêm rằng, bạn không
nên chỉ đơn giản loại bỏ cơ chế mã hoá file thông thường sau khi mã hoá file
hệ thống. Thay vào đó hãy xem xét đến giải pháp kết hợp cả hai. Và, nếu bạn
có đủ tài nguyên, hãy nghĩ đến một giải pháp mã hoá phần cứng như Trusted
Platform Module.