Mã hoá bảo vệ dữ liệu bằng TrueCrypt

Mã hoá bảo vệ dữ liệu bằng TrueCrypt.

Trong thời buổi mà phần mềm gián điệp (spyware) tung hoành khắp nơi, chả có gì đảm bảo là những file dữ liệu quý báu của bạn không bị nó sao ra một bản gửi về đâu chẳng biết.

Vì vậy cũng giống như sắm một cái két sắt để trong nhà, trên máy tính của bạn cũng nên có một cái két như thế. Khác với két sắt, két dữ liệu có hai lớp bảo vệ: phải mở két bằng mật khẩu mới truy cập được các file ở bên trong, nội dung các file đó lại được mã hoá bằng mật khẩu, phải qua quá trình giải mã mới đọc được.

I. Giới thiệu chung TrueCrypt

Một trong những phần mềm tốt nhất để tạo một két dữ liệu như thế là TrueCrypt với các tính năng chính:

1- Tạo một vùng ổ cứng mã hoá tự động. Có mấy cách tạo:

  • Tạo một ổ cứng ảo bên trong một file rồi mount nó như một ổ cứng thật.

  • Tạo ổ mã hoá trên toàn bộ một partition hoặc trên toàn bộ một ổ cứng trong, ổ cứng ngoài, ổ USB,….

  • Tạo ổ mã hoá trên partition hoặc ổ cứng có cài một hệ điều hành (hiện tại mới hỗ trợ Windows). Trước khi khởi động vào hệ điều hành phải nhập mật khẩu hoặc khoá mã. Tức là mã hóa toàn bộ một hệ điều hành.

2- Dữ liệu được mã/giải mã tự động: được mã hoá rồi mới ghi vào ổ, được giải mã khi đọc từ ổ ra ngoài, hoàn toàn tự động không cần user làm gì. Các quá trình mã/giải mã được thực hiện trong RAM, không một dữ liệu chưa mã hoá nào được ghi vào ổ. Tốc độ mã/giải mã rất nhanh không ảnh hưởng đến hoạt động trên máy. Cách mã/giải mã là cần đến đâu làm đến đấy trong RAM (on-the-fly) nên nhanh và không cần nhiều RAM.

3- Vùng ổ này xuất hiện trong Windows như một ổ D, E, F, …., còn trong Linux được mount vào thư mục /media/truecrypt như các partition khác. Để bảo vệ một file chỉ cần move/copy nó vào ổ hoặc thư mục nói trên, file sẽ tự động được mã hóa trước khi ghi. Khi mở file, nó sẽ được tự động giải mã để đọc được. Trong ổ hoặc thư mục mã hóa đó, có thể làm các thao tác bình thường như với các thư mục thông thường: xóa, tạo thư mục/file mới, đổi tên,…

4- Dữ liệu đã lưu chỉ có thể giải mã nếu có password và/hoặc file khoá mã đúng. Nếu không sẽ không đọc được nội dung file dù có dùng quyền root (toàn các ký tự loằng ngoằng không có nghĩa). Toàn bộ hệ thống file đã lưu vào ổ mã hoá đều được mã hoá (tên file, tên thư mục, nội dung file, các metadata của file và cả các vùng trống, chưa có dữ liệu cũng được mã hoá).

5- Đặc biệt, trong trường hợp bị lộ hoặc bị ép phải khai một mật khẩu, vẫn có thể dấu được dữ liệu bằng nhiều cách: ổ mã hoá bí mật, hệ điều hành bí mật, …(xem chi tiết ở dưới).

6- Chạy được trên Windows 7, Mac OS 10.6 và Linux. Dùng các thuật toán mã hoá mạnh nhất hiện nay AES-256, Serpent, và Twofish. Kiểu hoạt động: XTS.

II. Cài đặt:

Trong các kho phần mềm của PCLinuxOS có sẵn TrueCrypt, Ubuntu và Mandriva thì không có vì cho rằng TrueCrypt không phải PMNM. Bản mới nhất tải về từ đây.(có bản cài cho Windows XP/Vista/7, Mac OS, OpenSUSE, Ubuntu).

Với Ubuntu và Linux Mint, sau khi tải về file truecrypt-6.3a-ubuntu-x86.tar.gz, giải nén thành file truecrypt-6.3a-ubuntu-x86. Mở terminal tại thư mục chứa file đã giải nén rồi chạy lệnh sau để cài:

sudo ./truecrypt-6.3a-ubuntu-x86

Update 5/2/2011: Mandriva và PCLinuxOS hiện cũng cài được như Ubuntu nói trên. Không cần convert phức tạp như dưới đây nữa.

Với Mandriva và PCLinuxOS: phức tạp hơn.

 

Tìm cài từ kho phần mềm các gói sudo, alien, rpm-build .

Cũng tải về file cài đặt dành cho Ubuntu truecrypt-6.3a-ubuntu-x86.tar.gz, giải nén thành file script truecrypt-6.3a-ubuntu-x86. Mở terminal tại thư mục có file giải nén, chạy lần lượt các lệnh:

su

./truecrypt-6.3a-ubuntu-x86

Khi chạy lệnh thứ hai, màn hình cho chọn 2 Installation options, nhập số 2 rồi Enter để giải nén tiếp file script thành file /root/tmp/truecrypt-6.3a-0_i386.deb.

Chạy tiếp lệnh alien -r /root/tmp/truecrypt-6.3a-0_i386.deb

để convert thành file /root/tmp/truecrypt-6.3a-0_i386.rpm

 

Nhấn vào file đó để cài TrueCrypt.

Nhấn menu Install and Remove software, nếu gói sudo chưa cài thì cài.

Nhấn Alt+F2 rồi chạy lệnh kdesu kwrite /etc/sudoers (hoặc gksu gedit /etc/sudoers nếu dùng Gnome)

Khi màn hình kwrite mở file sudoers, tìm đến dòng root ALL=(ALL) ALL thêm vào bên dưới một dòng username ALL=(ALL) ALL, trong đó username là username đang dùng để đăng nhập vào Mandriva.

Đồng thời đánh thêm dấu # ở đầu dòng Default  requiretty để disable nó đi.

Save file rồi đóng kwrite lại.

III. Các bước thiết lập ổ mã hoá:

1- Chạy TrueCrypt (với các bản GNOME từ System → Preferences → TrueCrypt, với Ubuntu chạy từ Applications → Accessories → TrueCrypt, với Mandriva chạy từ Tools → TrueCrypt).

Màn hình chính xuất hiện:


2- Nhấn vào nút Create Volume. Màn hình sau xuất hiện:

3- Trong màn hình trên có hai phương án tạo ổ cứng mã hoá tuỳ chọn:

  • Tạo ổ cứng ảo bên trong một file. File đó sẽ có kích thước tuỳ chọn. Phương án này đơn giản dễ làm dành cho các user bình thường.

  • Tạo ổ cứng mã hoá trên toàn bộ một partition, một ổ cứng thứ hai không cài hệ điều hành, một ổ USB, ….

Giả sử ta chọn phương án 1 rồi nhấn nút Next . Màn hình sau xuất hiện.


4- Màn hình trên cho hai phương án tạo ổ mã hoá trong một file: Ổ mã hoá tiêu chuẩn (Standard) và ổ mã hoá bí mật (Hidden). Ổ bí mật là ổ mã hoá nằm bên trong một ổ mã hoá tiêu chuẩn và có password khác. Nếu buộc phải tiết lộ mật khẩu của ổ mã hoá tiêu chuẩn thì khi mở ổ đó ra cũng không thể phát hiện được ổ bí mật . Dưới đây ta gọi ổ tiêu chuẩn là ổ mã hóa ngoài.

Giả sử ta chọn phương án tạo ổ bí mật rồi nhấn nút Next .


5- Màn hình trên yêu cầu chọn thư mục và file chứa ổ mã hoá. File này có thể nằm trên ổ cứng trong máy, trên ổ cứng ngoài, trên USB,…tùy ý.Nhấn vào nút Select File .


6- Trong màn hình trên, mặc định file nằm ở thư mục Home của user (vdu: /home/zxc). Nếu muốn chuyển sang thư mục khác, nhấn vào hình tam giác nhỏ bên trái chữ Browse for other folders để chọn. Ví dụ nếu trên máy cài nhiều hệ điều hành thì nên để file này vào thư mục trên partition dùng chung.

Nhập tên file (tuỳ ý, muốn bí mật thì đặt một tên file vô nghĩa) chứa ổ mã hoá vào ô Name rồi nhấn nút Save .

(Chú ý: có thể chọn một file có sẵn làm file chứa ổ mã hoá. Nhưng khi đó nội dung file đã có sẽ bị xoá hết.)

Màn hình sẽ quay trở lại màn hình trên với đường dẫn và tên file đã chọn như sau (tên file do ta đặt là TrueCrypt File, thư mục /home/zxc/DATA):


Nhấn tiếp nút Next ta đi tới màn hình sau:

7- Màn hình trên cho chọn thuật toán mã hoá (Encryption Algorithm) và thuật toán băm (Hash Algorithm).

Trong phần mã hóa, nếu muốn có thể chọn các thuật toán mã hóa khác hoặc mã hóa hai, ba lần, mỗi lần bằng một thuật toán (tốc độ mã/giải mã sẽ chậm nhưng độ bảo mật tăng).

Nếu chưa am hiểu nhiều về mã hoá, cứ để nguyên hai thuật toán đã chọn sẵn rồi nhấn nút Next để đi tới màn hình sau:


8- Màn hình trên yêu cầu nhập vào dung lượng ổ mã hoá ngoài (Outer Volume size). Ví dụ nhập 500 MB như trong hình rồi nhấn nút Next .


9- Màn hình trên yêu cầu nhập hai lần password cho ổ mã hoá bên ngoài (Outer Volume Password). Chú ý:

  • Password này là password có thể tiết lộ nếu bị bắt buộc.

  • Password cho ổ bên ngoài nên khác hẳn password cho ổ bí mật bên trong.

  • Chiều dài tối đa của password là 64 ký tự. Tối thiểu nên là 20 ký tự, nếu ngắn hơn sẽ có màn hình cảnh báo, nhấn Yes để chấp nhận.

  • Khi nhập, nếu muốn kiểm tra password đã nhập, đánh dấu mục Display password để password hiển thị dưới dạng đọc được không phải dưới dạng dấu *

  • Nếu muốn chắc chắn nữa thì dùng password phối hợp với keyfile. Xem thêm tại đây.

CHÚ Ý: các password của ổ ngoài và ổ trong nên càng dài, càng phức tạp, càng ngẫu nhiên càng tốt để tránh các chương trình dò tìm password.

Sau khi nhập xong, nhấn nút Next đi tới màn hình sau:


Màn hình này cho chọn định dạng ổ. Nếu chỉ dùng trong Windows thì chọn FAT hoặc NTFS. Nếu chỉ dùng trong Linux thì chọn ext3, ext4, … Nếu trên máy có cả Windows và Linux và định dùng chung ổ mã hóa thì nên chọn NTFS. Chọn xong nhấn Next để tới màn hình:

10- Di chuột lung tung trong màn hình một lúc (càng lâu càng tốt để tăng độ mạnh cho khoá mã). Sau đó nhấn nút Format , quá trình tạo ổ mã hoá bắt đầu. Khi format xong màn hình sau xuất hiện:


Nhập password của Linux user vào đây rồi nhấn OK để đi tới màn hình tiếp như dưới đây.


11- Màn hình trên thông báo cho biết ổ mã hóa bên ngoài đã được tạo xong và sẽ được mount vào thư mục /media/truecrypt1. Trong thư mục này nên lưu các file mật nhưng chưa phải tối mật đề phòng trường hợp phải giao mật khẩu.

Nhấn Open Outer Volume để mở thư mục /media/truecrypt1 hiện còn trống. Nhấn phím phải chuột trong thư mục đó chọn Create Document → Empty File tạo một file bất kỳ rồi quay lại màn hình trên nhấn nút Next. Màn hình sau xuất hiện:


12- Thông báo trên cho biết chương trình đã tính ra dung lượng lớn nhất có thể của ổ mã hóa bí mật (= dung lượng ổ mã hóa ngoài trừ đi dung lượng các file đã có trong ổ mã hóa ngoài).

Nhấn nút Next để tới màn hình chọn thuật toán mã hóa cho ổ bí mật (tương tự như ở bước 6). Để nguyên các lựa chọn mặc định, nhấn Next tiếp để tới màn hình chọn dung lượng ổ bí mật:


13- Màn hình trên cho biết dung lượng tối đa của ổ bí mật do chương trình tính ra là 496MB (trên 500MB dung lượng ổ mã hóa tiêu chuẩn). Ta có thể gõ vào ô trắng ở trên dung lượng lựa chọn rồi nhấn nút Next.

( Mặc dù trong ổ ngoài ta mới chỉ tạo một file có dung lượng =0, nhưng ở đây dung lượng ổ bí mật chỉ cho phép tối đa là 496MB trong khi đáng lẽ phải là 500MB. Đây là do giới hạn của hệ điều hành, không phải lỗi của TrueCrypt)


14- Màn hình trên cho nhập password của ổ bí mật. Password này phải khác password của ổ mã hóa ngoài. Nhập xong thì nhấn Next. đi tới màn hình chọn định dạng cho ổ bí mật


rồi format ổ đó tương tự bước 9 ở trên. Khi format xong, màn hình sau xuất hiện:

15- Màn hình trên thông báo cho biết đã tạo xong ổ bí mật. Ổ này cần phải được bảo vệ (sẽ nói ở phần sau). Khi nhấn OK sẽ xuất hiện màn hình kết thúc. Nếu muốn tạo một ổ mã hóa nữa thì nhấn Next (có thể tạo tối đa 64 ổ mã hóa), nếu không nhấn Exit.

IV. Sử dụng ổ mã hóa

Nếu dùng trình duyệt file (Nautilus, Dolphin,…) mở thư mục đã chọn ở bước 6, ta sẽ thấy file đã tạo với dung lượng đã chọn ở bước 7. File đó chứa ổ mã hóa ngoài và bên trong ổ mã hóa ngoài là ổ mã hóa bí mật.

Để dùng được ổ ngoài hoặc ổ bí mật, trước tiên ta phải mở ổ ngoài bằng password và gắn nó ( mount) vào thư mục /media/truecrypt1. Cách làm như sau:

Chạy lại chương trình TrueCrypt như đã nói ở bước 1. Màn hình sau xuất hiện:

Nhấn nút Select File. Trong màn hình mới, tìm đến thư mục có file mã hóa đã tạo ở trên, chọn file đó rồi nhấn nút Open. Màn hình trên sẽ như sau:

Trong phần trên màn hình, chọn một slot còn trống (các cột còn trắng) rồi nhấn nút Mount. Màn hình nhập password xuất hiện:


Đến đây có ba tình huống:

A- Nếu định dùng ổ ngoài: nhập mật khẩu của ổ ngoài rồi OK. (ổ bí mật sẽ không được mở)

B- Nếu định dùng ổ bí mật: nhập mật khẩu của ổ bí mật rồi OK. (ổ ngoài không mở)

C- Nếu định dùng ổ ngoài, bảo vệ ổ bí mật: nhấn nút Options để có màn hình sau:


Đánh dấu chọn mục Protect hidden volume … (Bảo vệ ổ bí mật khi mount ổ ngoài) như trong hình trên. Mục đích để khi ghi file vào ổ ngoài nếu hết dung lượng, không ghi đè lên ổ bí mật làm hỏng ổ đó.

Nhập password của ổ mã hóa ngoài vào ô trên cùng, password của ổ bí mật vào ô Password to hidden volume rồi nhấn OK.

Trong cả ba tình huồng trên, khi mount xong, slot đã chọn sẽ có thông tin như sau:


Trong hình trên, file mã hóa nằm ở thư mục /home/zxc/DATA, thư mục được mount vào ổ mã hóa ngoài là /media/truecrypt1.

Nhấn nút Exit để thoát màn hình chương trình TrueCrypt. Chương trình vẫn chạy ngầm và có một biểu tượng trên panel.

Mở chương trình duyệt file Nautilus, tìm đến thư mục /media sẽ thấy thư mục truecrypt1 như hình dưới đây:


Thư mục truecrypt1:

  • Sử dụng bình thường như mọi thư mục khác

  • Khi ghi các file vào thư mục đó, file sẽ được mã hóa, khi mở các file trong thư mục đó, file sẽ được giải mã trước khi hiển thị.

  • Dung lượng, nội dung của truecrypt1 chính là dung lượng, nội dung ổ mã hóa ngoài hoặc trong.

  • Nếu trước đó, không làm động tác mount như đã nói ở trên, thư mục truecrypt1 không xuất hiện trong /media. Nếu không mount, sẽ không truy cập được các file đã mã hóa, khi đọc nội dung file mã hóa đã tạo ở bước 6, ví dụ bằng mc sẽ thấy như thế này:

Đó là nội dung ổ đã mã hóa. Không có mật khẩu để giải mã thì nội dung đó là vô nghĩa.

Phần trên là động tác mở két để lấy/cất dữ liệu. Khi dùng xong, muốn đóng két lại thì nhấn đúp vào biểu tượng TrueCrypt trên panel để mở màn hình chính ra rồi nhấn nút Dismount hoặc Dismount All

V. Tại sao lại gọi là ổ mã hóa bí mật

Chỉ có người tạo ra nó, biết nó nằm ở đâu và biết mật khẩu để mở, còn thì không có dấu vết nào trên ổ cứng, không có cách nào để chứng minh là có ổ bí mật và đọc được nội dung của nó kể cả khi biết mật khẩu ổ mã hóa ngoài. Vì vậy nếu quên mật khẩu và/hoặc keyfile là mất dữ liệu.

VI. Kết luận

Các bản Linux lớn hiện nay đều có công cụ để mã hóa thư mục hoặc hệ thống file, thậm chí ngay từ khi cài đặt. Tuy nhiên so với TrueCrypt có một số nhược điểm (dùng giao diện dòng lệnh, tốc độ chậm hơn, không có ổ bí mật, không chọn được thuật toán mã hóa, không tạo ổ dùng chung nhiều hệ điều hành được v.v…).

Bài viết này cũng chỉ giới thiệu cách tạo ổ mã hóa đơn giản nhất dùng file. TrueCrypt còn có thể mã hóa cả một partition hoặc ổ cứng ngoài, sau đó mount tự động hoặc có thể mã hóa cả một hệ điều hành.

Hướng dẫn sử dụng chi tiết tại đây.

// // // //

7 thoughts on “Mã hoá bảo vệ dữ liệu bằng TrueCrypt

  1. Bài viết rất chi tiết và hay :). Các hướng dẫn cũng rất rõ ràng và dễ làm theo.

    TrueCrypt này quả thực rất mạnh và đáng giá. Mình cũng đã dùng thử nó, và thấy rất thích.

  2. Pingback: Ghi chép về mã hóa 1 « ZXC232-Phần mềm nguồn mở – Linux

  3. Pingback: Ghi chép về mã hóa (sửa, bổ xung) « ZXC232-Phần mềm nguồn mở – Linux

  4. Pingback: FBI không phá được TrueCrypt | ZXC232-Phần mềm tự do nguồn mở – Free and open source software

  5. Pingback: Tản mạn về phần mềm “sạch” | ZXC232-Phần mềm tự do nguồn mở – Free and open source software

Bình luận về bài viết này