Ghi chép về bảo mật Gmail (và các webmail khác)

Ghi chép về bảo mật cho Gmail (và các webmail khác).

( Tiếp theo bài Ghi chép về mã hóa, một số khái niệm về mã hóa cần xem trước trong bài đó)

Gửi, nhận email hoặc dùng webmail (Gmail, Yahoo Mail, …) hoặc dùng một phần mềm email client (KMail, Evolution, Thunderbird, Outlook, Outlook Express, …). Bảo mật cho chúng về cơ bản vẫn là mã hóa và chữ ký số với các công cụ như đã nói ở bài trước.

1. Bảo mật cho webmail

a- Bảo mật cho mật khẩu

Nếu người khác biết hoặc lấy được mật khẩu hộp thư của bạn, họ sẽ dễ dàng xem trộm thư, gửi thư mang tên bạn. Vì vậy mật khẩu là cái cần bảo vệ đầu tiên.

Gmail, Yahoo Mail và Hotmail đều có chế độ đăng nhập https://, tức là mã hóa, bảo mật được mật khẩu truyền từ trình duyệt lên máy chủ mail. Nếu mật khẩu truyền đi không mã hóa (http://), nó dễ dàng bị xem trộm dọc đường truyền.

Mật khẩu có thể bị xem trộm ngay trên máy của bạn. Mật khẩu khi lưu trong settings của trình duyệt (nếu chọn chế độ nhớ mật khẩu) có thể bị đọc trộm bởi người (dùng các cách đã nói ở đây) hoặc bởi spyware nếu không chọn chế độ lưu dùng master password. Khi gõ mật khẩu, phần mềm trojan lẩn trong máy trạm có thể ghi lại được và gửi về cho hacker. Vì vậy tốt nhất là không chọn chế độ lưu mật khẩu và tránh các phần mềm có thể bị cài trojan như đã nói ở đây.

b- Bảo mật cho thư trên đường truyền từ máy trạm đến máy chủ thư.

Gmail có thể thiết lập trong settings để luôn làm việc với https, kể cả khi nhận và gửi thư, tức là thư gửi từ trình duyệt lên máy chủ Gmail và nhận từ máy chủ về đều được mã hóa trên đường truyền giữa trình duyệt và máy chủ. Yahoo Mail và Hotmail khi đăng nhập dùng https, khi vào đến màn hình thư lại chuyển sang chế độ http. Như vậy, thư gửi/nhận giữa trình duyệt và máy chủ không được mã hóa (?).

c- Bảo mật cho thư tại máy chủ thư và truyền đi nơi khác.

Không ai biết thư gửi từ máy chủ các dịch vụ mail đó đến máy chủ nơi nhận có được mã hóa hay không. Nếu không, tức là thư có thể bị xem trộm trên đường truyền giữa các máy chủ mail gửi và nhận.

Thư lưu trên máy chủ của Gmail chắc chắn là dưới dạng không mã hóa vì Gmail dùng phần mềm scan nội dung thư của khách hàng, tìm ra các từ khóa để có thể cho hiện các nội dung quảng cáo phù hợp ở bên phải màn hình thư. Yahoo Mail và Hotmail chắc cũng thế. Đây là cái giá bạn trả cho các dịch vụ miễn phí: cho phép phần mềm đọc thư của bạn. Nhưng như vậy, về nguyên tắc, nhân viên của Gmail cũng có thể đọc thư của bạn.

Vì thư lưu không mã hóa, nếu hacker xâm nhập được vào máy chủ thư (như đã xẩy ra với Gmail và với hệ thống thư của bộ Quốc phòng Mỹ gần đây), chúng sẽ dễ dàng sao chép và đọc thư. Không có máy chủ nào, ngay cả của bộ Quốc phòng Mỹ, có thể đảm bảo là không bị hack.

d- Thư mạo danh hoặc bị thay đổi nội dung

Điểm yếu cuối cùng là các thư của các dịch vụ nói trên đều không có chữ ký số. Vì vậy không có gì để xác định thư gửi từ zxc232@Gmail.com có đúng là từ đó gửi đi không và còn nguyên bản không. Thư không có chữ ký số rất có thể là một thư mạo danh hoặc đã bị thay đổi nội dung trên đường truyền.

2. FireGPG

Hai extension của Firefox: FireGPGgWebs MailCloak cho phép ký và mã hóa các webmail. FireGPG tích hợp vào Gmail nhưng cũng có thể dùng cho các webmail khác, chạy được trên Windows, Linux và MacOS. MailCloak dùng được cho cả Gmail, Yahoo Mail và Hotmail, không có bản cho Linux và vẫn còn trong giai đoạn thử nghiệm.

Khi đã ký và mã hóa được thư thì các nhược điểm nói ở trên của webmail sẽ được khắc phục hoàn toàn.

FireGPG dựa trên phần mềm nguồn mở GPG (xem giải thích tại đây) để: mã hóa, giải mã, ký và kiểm tra chữ ký đối với thư Gmail.

Để cài, mở trang này (bản trong kho của Firefox có lỗi), nhấn vào nút Download FireGPG. Khi xuất hiện cảnh báo ở đầu trang “ Firefox prevented this site …” nhấn vào nút Allow để cho phép cài.

CHÚ Ý: FireGPG cập nhật không kịp với Firefox. Bản trên trang chủ là FireGPG 0.7.10 (thời điểm viết bài này) tôi thử làm việc tốt với OpenSUSE 11.2, Firefox 3.5.9 và Linux Mint 8, Firefox 3.5.8. Các bản Linux mới hơn với Firefox 3.6 đều bị báo lỗi, nhưng vẫn có cách sử dụng được.

a- Tạo bộ khóa mã mới.

Nếu trên máy chưa có bộ khóa mã nào thì cần tạo mới một bộ. Cách tạo dưới đây dùng FireGPG nhưng cũng có thể dùng các phần mềm khác như Seahorse, Kleopatra.

Cài xong FireGPG, khởi động lại Firefox sẽ xuất hiện màn hình hướng dẫn từng bước. Nhấn vào nút Next đi tới màn hình sau:

Màn hình trên cho biết trên máy bạn đã có cài phần mềm GnuPG. Thư mục mặc định để lưu các khóa mã là thư mục Home của bạn. Nếu muốn bảo vệ khóa kín đáo hơn, có thể nhấn vào Set a home dir để quy định một thư mục khác. Nhấn tiếp vào Next.


Hệ thống mã hóa PGP làm việc với một cặp khóa: khóa mã bí mật (private key) và khóa mã công khai (public key). Hình trên thông báo bạn chưa có khóa bí mật nào trong vòng chìa khóa (keyring) và đưa ra hai cách: Tạo một cặp khóa (Generate a private key and a public key) hoặc Nhập một khóa bí mật đã có sẵn dưới dạng một file nằm trong một thư mục trên máy của bạn (Import a private key).

Nhấn vào Generate để tạo mới một cặp khóa, màn hình sau xuất hiện:


Trong màn hình trên, lần lượt nhập tên, địa chỉ email, password. Tuổi thọ của cặp khóa có thể là vô hạn (đánh dấu chọn The key never expires) hoặc hữu hạn (nhập số năm, tháng, ngày vào ô Key expires in …).

Phải biết password đã khai ở trên mới sử dụng được private key sau này.

Nếu chọn mục Advanced options, còn có thể quy định chiều dài khóa Key length (1024, 2048 và 4096 bit, càng dài càng khó phá) và kiểu khóa (thuật toán) Key type: DSA (chữ ký số) và El Gamal (mã hóa dùng hai khóa) hoặc RSA (mã hóa dùng hai khóa). Mặc định khóa dài 2048 bit và dùng cặp thuật toán DSA & El Gamal.

Nhấn vào nút Generate key để bắt đầu tạo cặp khóa. Việc này phải mất một lúc, có thể làm treo Firefox và liệt luôn cả máy tính (tạm thời). Trong lúc đó nên làm một việc gì khác trên máy để tăng tính ngẫu nhiên cho khóa.

Khi khóa được tạo xong, màn hình sau xuất hiện:

Nhấn nút OK, màn hình sau xuất hiện:

Hàng chữ đỏ bên trên cho biết FireGPG chưa kết nối được với máy chủ gửi thư của Gmail (smtp.gmail.com). Trong các phần dưới cho biết kết nối được mã hóa (Use SSL) và dùng cổng 465. Nếu muốn có thể quy định một máy chủ gửi thư khác.

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

Màn hình này cho biết đã kết nối được với máy chủ gửi thư (SMTP server). Có thể chọn sẵn một số option mặc định ở đây.


Màn hình trên chọn sẵn một số option chung của FireGPG. Để nguyên rồi nhấn Next đến màn hình kết thúc.


b-Gửi khóa công khai

Người giao dịch cần có khóa công khai của bạn để:

  • Mã hóa thư gửi cho bạn.

  • Kiểm tra chữ ký của bạn trong thư bạn gửi cho họ.

Vì vậy cần có một cách nào đó gửi khóa công khai cho họ. Trong màn hình Key manager trên:

Export to server: xuất khóa công khai của bạn lên máy chủ khóa (key server) pgp.mit.edu để ai cần mã hóa văn bản gửi cho bạn hoặc kiểm tra chữ ký của bạn cũng có thể lấy được khóa đó.

Export to file: xuất khóa công khai (public key) thành một file rồi gửi kèm file đó theo thư cho người cần đến. Nhấn vào nút này, màn hình sau xuất hiện:

Quy định tên file và thư mục chứa file rồi nhấn nút Save.

c- Viết thư có chữ ký số hoặc mã hóa thư.

Hình dưới đây là màn hình soạn thảo thư của Gmail sau khi đã cài FireGPG.

Nếu FireGPG tích hợp tốt với Gmail không bị báo lỗi thì sẽ xuất hiện các chức năng như trong hình trên: Sign (ký số vào thư), Encrypt (mã hóa thư), Encrypt a file and attach (mã hóa một file đính kèm), With a signature (mã hóa, ký một file đính kèm),..

Nếu bị báo lỗi ở đáy màn hình khi soạn thư “Gmail support seems broken” thì các tính năng trên không xuất hiện nhưng vẫn dùng được bằng cách khác, thủ công hơn. Các webmail khác (Yahoo, Hotmail, …) không được tích hợp FireGPG nên cũng không xuất hiện các chức năng trên nhưng vẫn làm thủ công được.

Ký thư bằng chữ ký số: nhấn vào chữ Sign, biểu tượng bên trái đang từ mờ sẽ được tô màu vàng. Nhấn nút Send để gửi thư đi. Một màn hình xuất hiện cho chọn private key (nếu bạn có nhiều cái), sau khi chọn màn hình thứ hai xuất hiện yêu cầu nhập passphrase, nhập password đã khai ở phần trước rồi OK, thư sẽ được gửi đi.

Nơi nhận sẽ nhận được thư kèm chữ ký số. Cách kiểm tra chữ ký xem phần sau.

Mã hóa thư gửi đi: Để mã hóa thư gửi cho ai đó, trước hết phải có public key của người đó.

Public key đó có thể được người nhận gửi đến cho bạn dưới dạng một file kèm theo email. Download file key đó, ghi nó vào một thư mục nào đó rồi dùng chức năng Import from file của Key Manager nhập khóa vào keyring. Để mở Key Manager: trong Firefox vào menu Tools -> FireGPG -> Key Manager.

Nếu người nhận đã gửi public key của mình lên một trong những máy chủ khóa (key server), trong màn hình Key Manager, nhấn vào Import from server ta có màn hình sau:

Gõ vào ô Search tên người nhận rồi nhấn nút Search. Các khóa tìm được sẽ xuất hiện (một người có thể có nhiều khóa), chọn những cái cần rồi nhấn nút Import selected keys để nhập chúng vào keyring trên máy của bạn.

Sau khi viết thư xong: nhấn vào chữ Encrypt, biểu tượng bên trái thành màu vàng. Nhấn nút Send, quá trình lặp lại như trên.

Nếu FireGPG có lỗi không hiển thị được chữ Encrypt trong Gmail, hay trong các webmail khác mà FireGPG không được tích hợp, vẫn mã hóa được mail làm như sau:

Bôi đen nội dung thư cần mã hóa, nhấn phím phải chuột vào vùng bôi đen rồi chọn trong menu con FireGPG → Encrypt. Một màn hình xuất hiện để chọn public key của người nhận. Chọn xong nhấn OK, màn hình sau xuất hiện:

Nhấn nút Copy to clipboard and close rồi quay lại màn hình soạn thư, nhấn phím phải chuột và chọn Paste. Toàn bộ nội dung đã mã hóa ở trên sẽ được dán đè lên nội dung thư đã soạn. Nhấn nút Send để gửi thư đi.

Trên đây chỉ lướt qua cách dùng đơn giản. FireGPG còn nhiều tính năng và cách dùng hay.

Update (9/6/2010): FireGPG vừa ra phiên bản cuối 0.8 và tác giả tuyên bố bỏ tính năng tích hợp với Gmail và ngừng phát triển tiếp vì không có thời gian. Trừ phần tích hợp với Gmail, các tính năng nói trên vẫn sử dụng được kể cả với Gmail nhưng phải làm thủ công hơn như đã nêu.

3. Hushmail

Hushmail là một dịch vụ thư miễn phí khắc phục được phần nào các nhược điểm bảo mật đã nêu ở mục 1 và cách dùng cũng đơn giản hơn FireGPG (kiếm tiền bằng dịch vụ Premium):

  • Hushmail mã hóa thư trên đường truyền giữa máy trạm và máy chủ theo giao thức https.

  • Thư lưu trên ổ cứng máy chủ Hushmail cũng được mã hóa. Do đó không ai đọc được thư đó, kể cả hacker.

  • Thư gửi giữa một địa chỉ Hushmail này cho một địa chỉ Hushmail khác được mã hóa cả nội dung thư và file đính kèm. Như vậy thư trao đổi giữa hai địa chỉ Hushmail thì an toàn, nhưng gửi ra ngoài hoặc nhận từ ngoài Hushmail vào thì không.

  • Thư gửi từ Hushmail có chữ ký số, tránh được thư mạo danh.

Các trường hợp sau thì Hushmail cũng không an toàn:

  • Các thư phạm pháp có lệnh của tòa án Canada buộc Hushmail tiết lộ nội dung cho cơ quan điều tra.

  • Hacker chiếm quyền điều khiển máy chủ Hushmail, dùng phần mềm mã hóa để giải mã thư. (Nếu hacker chỉ xâm nhập máy chủ Hushmail thì không copy hoặc đọc thư được).

  • Máy tính của bạn bị nhiễm virus (key logger) hoặc bị hacker điều khiển.

  • Có lỗ hổng an ninh trong các phần mềm của Hushmail hoặc phần mềm trên máy tính của bạn để hacker lợi dụng.

(còn tiếp về các email client: Kmail, Evolution, Thunderbird,…)

1 thoughts on “Ghi chép về bảo mật Gmail (và các webmail khác)

  1. Pingback: Ghi chép: Các kỹ thuật duyệt web an toàn « ZXC232-Phần mềm nguồn mở – Linux

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