Hướng dẫn cách làm
Cách mã hóa nội dung nhạy cảm trước khi gửi đi
Gửi email một danh sách mật khẩu, một khóa API, hay một ghi chú bảo mật ngắn dưới dạng văn bản thuần nghĩa là bất kỳ ai chặn được tin nhắn, hoặc bất kỳ ai có quyền truy cập một hộp thư ở khâu sau, đều có thể đọc trực tiếp. Hướng dẫn này tạo một cụm mật khẩu mạnh và mã hóa nội dung cục bộ bằng AES-256-GCM, để thứ thực sự đi qua email hay ứng dụng nhắn tin của bạn là văn bản mã hóa không đọc được, thay vì một tệp nằm trên máy chủ của ai đó chờ bị quét hay sao chép.
Từng bước
- Mở Trình tạo mật khẩu, đặt độ dài ít nhất 20 ký tự với mọi loại ký tự được bật, và tạo một cụm mật khẩu. Sao chép nó vào đâu đó tạm thời; bạn sẽ chia sẻ nó với người nhận qua một kênh khác với kênh mang nội dung đã mã hóa, ví dụ một cuộc gọi điện thoại hoặc một ứng dụng nhắn tin bạn đã dùng cho việc khác.
- Mở công cụ Mã hóa AES, dán văn bản bạn muốn bảo vệ (nội dung một danh sách mật khẩu, một khóa API, một tệp cấu hình, hay bất kỳ ghi chú ngắn nào) vào ô nhập, dán cụm mật khẩu từ bước 1, và bấm Mã hóa. Công cụ dẫn xuất một khóa từ cụm mật khẩu của bạn bằng PBKDF2 và mã hóa bằng AES-256-GCM, cả hai đều chạy trong trình duyệt của bạn, và trả về một khối văn bản mã hóa.
- Dán khối văn bản mã hóa đó thẳng vào nội dung email hay tin nhắn của bạn. Không cần đính kèm gì cả: nội dung nhạy cảm giờ đi dưới dạng văn bản không đọc được. Riêng biệt, báo cho người nhận biết cụm mật khẩu qua kênh khác, và yêu cầu họ dán văn bản mã hóa cùng cụm mật khẩu vào cùng công cụ này rồi bấm Giải mã để khôi phục nội dung gốc.
So sánh với việc tải một tệp lên dịch vụ mã hóa trực tuyến
Nhiều dịch vụ cung cấp mã hóa tệp hoạt động bằng cách nhận tệp của bạn trên máy chủ của họ, mã hóa nó ở đó, rồi cho bạn tải kết quả về: nội dung dạng thuần đi qua một hệ thống bạn không kiểm soát, dù chỉ trong vài giây cần để xử lý. Công cụ Mã hóa AES và Trình tạo mật khẩu ở đây chạy hoàn toàn trong trình duyệt của bạn bằng Web Crypto API: mã hóa dùng AES-256 ở chế độ GCM, và cụm mật khẩu được kéo dài thành một khóa bằng PBKDF2-SHA-256 với 310.000 lượt lặp, cùng một muối và vector khởi tạo ngẫu nhiên mới mỗi lần. Không văn bản thuần, cụm mật khẩu, hay văn bản mã hóa nào được gửi tới bất kỳ máy chủ nào trong suốt quá trình.
Chia sẻ cụm mật khẩu mà không làm mất tác dụng bảo vệ
Mã hóa chỉ bảo vệ một tin nhắn nếu cụm mật khẩu đi riêng với văn bản mã hóa. Gửi cả hai trong cùng một luồng email, hoặc ngay sau nhau trong cùng cuộc trò chuyện, cho bất kỳ ai đọc được luồng đó mọi thứ họ cần. Hãy đọc cụm mật khẩu qua điện thoại, gửi nó qua một ứng dụng nhắn tin không liên quan đến ứng dụng mang văn bản mã hóa, hoặc trao tay trực tiếp với bất cứ điều gì thực sự nhạy cảm. Lưu nó sau đó trong một trình quản lý mật khẩu thay vì để lại trong cuộc trò chuyện.
Phương pháp này không bao phủ những gì
Công cụ Mã hóa AES chấp nhận văn bản, tối đa khoảng 1 MB, thay vì một tệp nhị phân tùy ý thả trực tiếp vào. Nó phù hợp tốt cho một bản xuất mật khẩu, một tệp cấu hình, hay bất kỳ nội dung nào bạn có thể mở và sao chép dưới dạng văn bản. Với một tệp đính kèm nhị phân thực sự như một bức ảnh hay tài liệu nhỏ, công cụ Base64 có thể biến tệp thành một khối văn bản trước; sau đó bạn sẽ mã hóa văn bản đó theo cùng cách, sau khi tự tay bỏ tiền tố data-URI mà bộ mã hóa thêm vào phía trước. Giới hạn kích thước còn giảm thêm một khi Base64 làm phồng dữ liệu lên khoảng một phần ba, nên cách này chỉ phù hợp với tệp nhỏ. Để bảo vệ một PDF cụ thể, thêm một mật khẩu thật vào tệp bằng công cụ Bảo vệ PDF bằng mật khẩu là lựa chọn phù hợp hơn: nó mã hóa chính tài liệu, không có giới hạn kích thước văn bản tương ứng.
Các công cụ dùng trong hướng dẫn này
- Mã hóa / Giải mã AESMã hóa hoặc giải mã văn bản bằng AES-256-GCM. Cụm mật khẩu của bạn không bao giờ rời khỏi trình duyệt.
- Trình tạo mật khẩuTạo mật khẩu ngẫu nhiên mạnh với quy tắc tùy chỉnh. Dùng crypto.getRandomValues. Không tải lên.
- Mã hóa / Giải mã Base64Mã hóa hoặc giải mã Base64, văn bản và tệp. Không tải lên, 100% cục bộ.
- Bảo vệ PDF bằng mật khẩuMã hóa PDF bằng mật khẩu ngay trong trình duyệt. Không tải lên.
Câu hỏi thường gặp
Cụm mật khẩu hay văn bản tôi mã hóa có bao giờ được gửi tới máy chủ không?
Không. Trình tạo mật khẩu và công cụ Mã hóa AES chạy hoàn toàn trong trình duyệt của bạn bằng crypto.getRandomValues và crypto.subtle của Web Crypto API. Không gì bạn gõ vào được truyền đi đâu ở bất kỳ thời điểm nào; bạn có thể tự xác nhận điều này bằng cách mở công cụ dành cho nhà phát triển của trình duyệt, theo dõi bảng Network, và chạy qua toàn bộ quá trình.
Điều gì xảy ra nếu mất cụm mật khẩu?
Văn bản mã hóa không thể khôi phục nếu không có nó. Không có tùy chọn khôi phục và không có cửa hậu: PBKDF2 với 310.000 lượt lặp khiến việc dò tìm vũ lực một cụm mật khẩu 20 ký tự ngẫu nhiên thực sự trở nên bất khả thi. Hãy giữ cụm mật khẩu trong một trình quản lý mật khẩu thay vì chỉ trong cuộc trò chuyện nơi bạn chia sẻ nó, để mất tin nhắn đó không đồng nghĩa với mất luôn nội dung.