“AES-256” xuất hiện trên các trang về bảo mật giống như dòng chữ “đã được chứng minh lâm sàng” xuất hiện trên các lọ kem dưỡng da: một huy hiệu nhiều hơn là một lời giải thích. Hầu hết những người đọc nó chưa bao giờ hỏi xem nó thực sự làm gì với một tệp, hoặc tại sao con số 256 lại là phần đảm nhận công việc. Đáng để hiểu rõ điều này, bởi vì sự khác biệt giữa một két mã hóa thực sự và một thư mục có biểu tượng ổ khóa ở trên thường nằm chính xác ở điểm này.

Thực chất AES-256 là gì

AES là viết tắt của Advanced Encryption Standard (Tiêu chuẩn Mã hóa Nâng cao), một thuật toán cụ thể dùng để biến dữ liệu có thể đọc được thành dữ liệu không thể đọc được và ngược lại, bằng cách sử dụng một khóa bí mật. Nó được Viện Tiêu chuẩn và Công nghệ Quốc gia Hoa Kỳ chọn vào năm 2001 sau một cuộc thi công khai, và hiện nó là thuật toán mã hóa mặc định đằng sau các trình quản lý mật khẩu, ứng dụng nhắn tin, VPN và két tệp trên toàn thế giới, bao gồm cả Vaultine.

Con số “256” là độ dài của khóa, được tính bằng bit. AES cũng có các phiên bản 128 bit và 192 bit; cả ba đều sử dụng cùng một thuật toán cơ bản, chỉ khác nhau về kích thước khóa và số vòng xử lý bên trong một chút. Một tệp được mã hóa bằng AES-256 sẽ đi qua các vòng đó bằng một khóa 256 bit, và đầu ra là văn bản mã hóa (ciphertext): một chuỗi các byte không tiết lộ bất cứ điều gì về nội dung của tệp gốc, ngoại trừ các mẫu liên quan đến kích thước, nếu không có chính khóa đó để đảo ngược quá trình.

Tại sao 256 bit là con số quan trọng

Một khóa 256 bit có 2^256 giá trị có thể xảy ra. Con số đó rất khó để hình dung theo bản năng vì nó vượt quá xa bất kỳ đại lượng hàng ngày nào, nhưng có một phép so sánh phổ biến rất đúng: nó gần bằng số lượng nguyên tử trong một phần lớn của vũ trụ có thể quan sát được. Việc đoán một khóa cụ thể bằng phương pháp brute force (vét cạn), tức là thử nghiệm từng tổ hợp cho đến khi có một tổ hợp hoạt động, không phải là vấn đề về một chiếc máy tính nhanh hơn hay ngân sách lớn hơn. Kể cả mọi máy tính từng tồn tại, chạy liên tục kể từ khi vũ trụ bắt đầu, cũng không tiến gần một cách có ý nghĩa đến việc thử hết tất cả chúng.

Đó là lý do tại sao các nhà nghiên cứu bảo mật không nói về việc “bẻ khóa” (cracking) AES-256 thông qua brute force; điều đó là không thể. Khi dữ liệu được mã hóa bị lộ, nguyên nhân hầu như luôn là một thứ khác chứ không phải bản thân thuật toán: một mật khẩu yếu hoặc được sử dụng lại được dùng để tạo ra khóa, một khóa được lưu trữ ở nơi nó có thể bị đánh cắp, hoặc một lỗi triển khai trong phần mềm xung quanh. Bản thân ổ khóa không phải là điểm yếu. Những thứ bảo vệ chiếc chìa khóa thường mới là điểm yếu.

Được mã hóa không giống như bị ẩn

Đây là sự khác biệt quan trọng nhất đối với bất kỳ ai đang tìm mua một ứng dụng “thư mục an toàn”. Việc ẩn một tệp có nghĩa là thay đổi việc nó có hiển thị hay không, chứ không phải bản chất của nó là gì: một thư mục ẩn, một dotfile, một ứng dụng chỉ đơn thuần di chuyển ảnh của bạn đến một nơi nào đó khó thấy hơn. Bản thân các byte thực tế của tệp không hề bị đụng chạm tới. Cắm thiết bị vào máy tính, bật “hiển thị tệp ẩn” (show hidden files) và bức ảnh mở ra chính xác giống như bất kỳ bức ảnh nào khác, bởi vì chưa bao giờ có một chìa khóa nào tham gia vào quá trình này.

Mã hóa AES-256 là một hoạt động hoàn toàn khác. Nó không di chuyển tệp hoặc thay đổi khả năng hiển thị của nó; nó ghi đè lại nội dung của tệp thành văn bản mã hóa bằng cách sử dụng khóa. Có một cách nhanh chóng để nhận biết một ứng dụng thực sự đang làm điều gì: bật hiển thị các tệp ẩn hoặc cắm thiết bị vào một máy tính khác. Nếu tệp được “bảo vệ” mở ra bình thường, thì nó đã bị ẩn chứ không phải được mã hóa. Nếu nó là một dải nhiễu không thể đọc được nếu không có ứng dụng và mã PIN của bạn, thì nó đã được mã hóa. (Xem Tại sao thư mục “bị ẩn” không thực sự bị ẩn để biết thêm về mức độ thường xuyên trường hợp thứ nhất được tiếp thị như trường hợp thứ hai).

Phần mà các trang tiếp thị bỏ sót: Ai giữ chìa khóa

Cụm từ “Mã hóa AES-256” là đúng về mặt kỹ thuật đối với rất nhiều sản phẩm vốn vẫn không thể bảo vệ bạn khỏi chính công ty đã tạo ra chúng. Thuật toán chỉ cho biết quá trình xáo trộn diễn ra như thế nào; nó không nói gì về việc chiếc chìa khóa nằm ở đâu. Một nhà cung cấp lưu trữ đám mây có thể mã hóa các tệp của bạn bằng AES-256 trên máy chủ của họ và đồng thời chính họ vẫn giữ khóa, điều đó có nghĩa là việc mã hóa giúp ngăn chặn kẻ tấn công bên ngoài nhưng không có tác dụng gì chống lại một vụ rò rỉ dữ liệu của nhà cung cấp đó, một nhân viên có quyền truy cập, hoặc một yêu cầu pháp lý nhắm vào máy chủ của họ thay vì nhắm vào bạn.

Đây là toàn bộ lý do tại sao “zero-knowledge” là một tuyên bố tách biệt với “mã hóa AES-256”, và tại sao đáng để kiểm tra cả hai trước khi tin tưởng vào một trong hai. Mã hóa mà không biết ai giữ khóa thì hầu như không cho bạn biết bất cứ điều gì về việc ai thực sự bị khóa bên ngoài.

Cách Vaultine triển khai nó

Vaultine mã hóa từng tệp bằng một khóa AES-256 riêng, được tạo ra và sử dụng hoàn toàn trên thiết bị của bạn. Khóa chính (master key) bảo vệ két của bạn được tạo ra từ mẫu vẽ hoặc mã PIN của bạn, ở trên thiết bị và nó không bao giờ được truyền đi đâu cả. Không có thứ gì được giải mã vào một máy chủ, một bản sao đám mây hoặc bất kỳ nơi nào khác không phải là thiết bị trước mặt bạn, đó là điều làm cho thiết kế mang tính zero-knowledge trong thực tế chứ không chỉ trong chính sách quyền riêng tư (xem Tại sao một ứng dụng két không có tài khoản lại thực sự an toàn hơn cho phần còn lại của kiến trúc đó).

Nó cũng giải thích cho một sự đánh đổi đáng để biết trước: nếu bạn mất mã PIN và cụm từ khôi phục 12 từ của mình, Vaultine thực sự không thể lấy lại các tệp của bạn cho bạn. Đó không phải là một hạn chế hỗ trợ, đó là cùng một thuộc tính giúp ngăn chặn một vụ vi phạm dữ liệu hoặc trát đòi hầu tòa tiếp cận các tệp của bạn. Khóa để mở ổ khóa chỉ từng tồn tại trên thiết bị của bạn.

Phiên bản ngắn gọn

AES-256 là một phương pháp cụ thể, được kiểm tra kỹ lưỡng để biến một tệp thành một dải nhiễu không thể đọc được bằng cách sử dụng một khóa đủ lớn để việc bẻ khóa kiểu brute-force không phải là một mối đe dọa thực tế. Nó không phải là một từ ma thuật; nó là một phần của một hệ thống, và bộ phận quyết định xem nó có thực sự bảo vệ bạn hay không là ai giữ chiếc chìa khóa sau đó. Ẩn một tệp không phải là mã hóa nó, và mã hóa một tệp cho một công ty giữ khóa thì không giống với việc mã hóa nó để chỉ có bạn mới có thể mở được nó.

Vaultine mã hóa mọi tệp bằng AES-256, trên thiết bị của bạn, bằng khóa bắt nguồn từ mã PIN của riêng bạn và không bao giờ được gửi đi bất cứ đâu. Miễn phí 10 tệp đầu tiên tại vaultine.app.