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ì [You must be registered and logged in to see this link.] 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 [You must be registered and logged in to see this link.] 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à [You must be registered and logged in to see this link.].
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 [You must be registered and logged in to see this link.] (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ả [You must be registered and logged in to see this link.] và [You must be registered and logged in to see this link.] đều là file hệ thống được mã hoá chạy trên đầu [You must be registered and logged in to see this link.],
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à [You must be registered and logged in to see this link.].
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ố [You must be registered and logged in to see this link.]
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 [You must be registered and logged in to see this link.].
Một đề xuất thú vị mới được đưa ra gần đây là [You must be registered and logged in to see this link.].
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à: [You must be registered and logged in to see this link.].
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 [You must be registered and logged in to see this link.], bạn có thể thử với CryptoFS và EncFS qua Fuse4BSD. Bạn cũng nên để mắt tới [You must be registered and logged in to see this link.] (NetBSD) và [You must be registered and logged in to see this link.]. Để biết thêm thông tin về steganography và che giấu dữ liệu, bạn có thể tham khảo [You must be registered and logged in to see this link.].
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ư [You must be registered and logged in to see this link.].
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ì [You must be registered and logged in to see this link.] 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 [You must be registered and logged in to see this link.] 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à [You must be registered and logged in to see this link.].
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 [You must be registered and logged in to see this link.] (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ả [You must be registered and logged in to see this link.] và [You must be registered and logged in to see this link.] đều là file hệ thống được mã hoá chạy trên đầu [You must be registered and logged in to see this link.],
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à [You must be registered and logged in to see this link.].
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ố [You must be registered and logged in to see this link.]
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 [You must be registered and logged in to see this link.].
Một đề xuất thú vị mới được đưa ra gần đây là [You must be registered and logged in to see this link.].
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à: [You must be registered and logged in to see this link.].
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 [You must be registered and logged in to see this link.], bạn có thể thử với CryptoFS và EncFS qua Fuse4BSD. Bạn cũng nên để mắt tới [You must be registered and logged in to see this link.] (NetBSD) và [You must be registered and logged in to see this link.]. Để biết thêm thông tin về steganography và che giấu dữ liệu, bạn có thể tham khảo [You must be registered and logged in to see this link.].
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ư [You must be registered and logged in to see this link.].