Mã hóa Đầu cuối là Gì? Cách Bảo vệ Ảnh của Bạn
Mã hóa đầu cuối giữ nội dung ảnh đọc được và khóa nội dung bản rõ tránh xa nhà cung cấp lưu trữ.
Mã hóa đầu cuối (E2EE) là mô hình bảo mật trong đó bản rõ được mã hóa trên một thiết bị đầu cuối được ủy quyền và giải mã trên một thiết bị đầu cuối khác. Nhà cung cấp lưu trữ hoặc truyền tải không giữ khóa nội dung bản rõ. Ranh giới đó ngăn phía máy chủ đọc trực tiếp nội dung, nhưng không che mọi siêu dữ liệu, và không bảo vệ trước thiết bị đầu cuối bị xâm nhập, thông tin xác thực khôi phục, người nhận được chia sẻ hay bản cập nhật máy khách độc hại.
Với lưu trữ ảnh, mã hóa đầu cuối nghĩa là điện thoại của bạn mã hóa nội dung ảnh trước khi tải lên, và đám mây chỉ lưu bản mã thay vì ảnh đọc được. Giải mã cần một khóa có được qua thiết bị được ủy quyền hoặc đường khôi phục. Kích thước tệp, thời gian, dữ liệu tài khoản, quan hệ chia sẻ và siêu dữ liệu khác có thể vẫn lộ ra. Hướng dẫn này giải thích ranh giới và so sánh các mô hình dịch vụ phổ biến.
Cách mã hóa đầu cuối hoạt động
Cơ chế cốt lõi liên quan đến ba giai đoạn: tạo khóa, mã hóa và giải mã.
Tạo khóa
Thiết bị của người dùng tạo ra khóa mật mã. Trong mã hóa đối xứng (như AES-256), cùng một khóa mã hóa và giải mã. Trong mã hóa bất đối xứng (như RSA), khóa công khai mã hóa và khóa riêng tư giải mã. Nhiều hệ thống E2EE kết hợp cả hai: mã hóa bất đối xứng trao đổi khóa phiên đối xứng, sau đó xử lý phần lớn mã hóa.
Ứng dụng két ảnh dùng nhiều thiết kế quản lý khóa khác nhau. Một số tạo khóa tệp trực tiếp từ mật khẩu; các thiết kế nhiều lớp mạnh hơn có thể dùng khóa mở khóa tạo từ thông tin xác thực để bọc một khóa tệp ngẫu nhiên. Vaultaire dùng PBKDF2-HMAC-SHA512 để tạo khóa két 256 bit từ mẫu hình 5x5 và muối chung của thiết bị. Khóa két đó xác thực chỉ mục được mã hóa và mở khóa chính ngẫu nhiên riêng biệt được sử dụng để mã hóa tệp.
Mã hóa
Bản rõ (ảnh của bạn) được biến đổi thành bản mã sử dụng khóa mã hóa và thuật toán mã hóa. AES-256-GCM là mật mã đối xứng được sử dụng rộng rãi nhất cho mục đích này. GCM (Galois/Counter Mode) cung cấp mã hóa xác thực -- nó cả mã hóa dữ liệu và tạo ra thẻ xác thực phát hiện bất kỳ sự can thiệp nào. Mỗi tệp nhận được vectơ khởi tạo (IV) duy nhất, đảm bảo các tệp giống nhau tạo ra bản mã khác nhau.
Giải mã
Thiết bị của người nhận sử dụng cùng một khóa (đối xứng) hoặc khóa riêng tư tương ứng (bất đối xứng) để đảo ngược phép biến đổi. Không có khóa đúng, bản mã không thể phân biệt với dữ liệu ngẫu nhiên. Không có lối tắt toán học. AES-256 có 2^256 khóa có thể -- nhiều hơn số nguyên tử ước tính trong vũ trụ quan sát được.
Mã hóa đầu cuối so với các mô hình mã hóa khác
Không phải tất cả mã hóa đều là đầu cuối. Sự khác biệt xác định ai có thể truy cập dữ liệu của bạn.
Mã hóa trong quá trình truyền (TLS/SSL)
Dữ liệu được mã hóa giữa thiết bị của bạn và máy chủ. Máy chủ giải mã nó khi nhận. Điều này bảo vệ chống lại nghe trộm trong quá trình truyền nhưng để dữ liệu có thể đọc trên máy chủ. Mọi dịch vụ đám mây lớn đều sử dụng mã hóa trong quá trình truyền. Đây là nền tảng, không phải tiêu chuẩn.
Mã hóa khi lưu trữ (phía máy chủ)
Máy chủ mã hóa dữ liệu được lưu trữ sử dụng các khóa máy chủ quản lý. Điều này bảo vệ chống lại trộm cắp vật lý phần cứng máy chủ nhưng không bảo vệ chống lại nhà cung cấp dịch vụ, nhân viên của họ hoặc các yêu cầu pháp lý hướng đến nhà cung cấp. iCloud, Google Drive và Dropbox đều sử dụng mã hóa phía máy chủ khi lưu trữ. Nhà cung cấp giữ các khóa.
Mã hóa đầu cuối
Dữ liệu được mã hóa trên thiết bị đầu cuối được ủy quyền trước khi nhà cung cấp lưu trữ nhận được. Thiết kế đúng cách giữ khóa nội dung bản rõ nằm ngoài tầm kiểm soát thông thường ở phía máy chủ của nhà cung cấp, nên khi chỉ bộ nhớ bị xâm nhập hoặc có yêu cầu pháp lý đối với nội dung lưu trữ, thứ thu được là bản mã chứ không phải ảnh đọc được. Nhà cung cấp vẫn có thể cung cấp bản mã và siêu dữ liệu, phân phối phần mềm máy khách, hoặc vận hành hệ thống khôi phục và chia sẻ; những điều này phải được tính vào mô hình mối đe dọa.
| Mô hình mã hóa | Ai giữ khóa | Nhà cung cấp có thể đọc dữ liệu? | Bảo vệ chống lại nhà cung cấp? |
|---|---|---|---|
| Chỉ trong quá trình truyền (TLS) | Máy chủ | Có | Không |
| Khi lưu trữ (phía máy chủ) | Máy chủ | Có | Không |
| Đầu cuối | Thiết bị đầu cuối được ủy quyền hoặc người giữ khôi phục | Không, nếu chỉ có bản mã được lưu trữ | Bảo vệ nội dung trước các khóa lưu trữ do nhà cung cấp giữ |
| Mã hóa phía máy khách, nhà cung cấp không đọc được | Máy khách và các đường khôi phục được công bố | Theo thiết kế, không truy cập được nội dung bản rõ | Bảo vệ nội dung; siêu dữ liệu và việc phải tin phần mềm máy khách vẫn còn |
Cách dịch vụ lưu trữ ảnh xử lý mã hóa
Mô hình mã hóa khác nhau đáng kể giữa các dịch vụ lưu trữ ảnh. Một số quảng cáo "mã hóa" mà không chỉ định mô hình, điều này có thể đánh lừa người dùng tin rằng ảnh của họ là E2EE khi thực tế không phải.
Ảnh iCloud
Apple sử dụng mã hóa trong quá trình truyền và khi lưu trữ. Apple giữ các khóa mã hóa theo mặc định. Với yêu cầu pháp lý hợp lệ, Apple có thể cung cấp dữ liệu Ảnh iCloud. Ngoại lệ: Bảo vệ Dữ liệu Nâng cao (ADP) của Apple, có sẵn từ tháng 12 năm 2022, thêm mã hóa đầu cuối vào Ảnh iCloud. ADP phải được bật rõ ràng trong Cài đặt. Khi được bật, Apple không thể truy cập dữ liệu Ảnh iCloud. Hầu hết người dùng chưa bật ADP.
Google Photos
Google sử dụng mã hóa trong quá trình truyền và khi lưu trữ với khóa phía máy chủ. Google giữ các khóa mã hóa cho tất cả dữ liệu Google Photos, bao gồm nội dung Thư mục Khóa. Google có thể tuân thủ các yêu cầu dữ liệu pháp lý. Google không cung cấp tùy chọn mã hóa đầu cuối cho Google Photos.
Dropbox
Mã hóa trong quá trình truyền (TLS 1.2+) và khi lưu trữ (AES-256 với khóa do Dropbox quản lý). Dropbox giữ các khóa và có thể truy cập tệp của bạn. Dropbox đã bị vi phạm dữ liệu (2012, 68 triệu tài khoản). Dropbox Vault (tính năng trả phí) thêm bảo vệ PIN nhưng không phải mã hóa đầu cuối.
OneDrive
Microsoft sử dụng mã hóa trong quá trình truyền và khi lưu trữ với khóa do Microsoft quản lý. Microsoft giữ các khóa. OneDrive Personal Vault thêm xác minh danh tính (2FA) nhưng không phải mã hóa đầu cuối -- Microsoft vẫn có thể truy cập dữ liệu. Đối với khách hàng doanh nghiệp, khóa do khách hàng quản lý có sẵn.
Vaultaire
Mã hóa phía máy khách loại bỏ khóa do nhà cung cấp giữ. Vaultaire mã hóa ảnh và siêu dữ liệu trên thiết bị bằng AES-256-GCM trước khi tải lên bất kỳ đám mây nào. Một khóa chính ngẫu nhiên mã hóa dữ liệu két. Khóa két cục bộ, tạo từ mẫu hình của người dùng và muối của thiết bị, bọc khóa chính đó, còn một khóa sao lưu riêng tạo từ mẫu hình bảo vệ các bản ghi sao lưu CloudKit riêng tư. Vaultaire không vận hành máy chủ nội dung hay nhận các khóa đó, nên không thể biến bản ghi CloudKit thành bản rõ. Ứng dụng, iOS và thiết bị đã mở khóa vẫn nằm trong ranh giới tin cậy, và yêu cầu pháp lý vẫn có thể lấy được siêu dữ liệu tài khoản hoặc dịch vụ do nhà cung cấp liên quan giữ.
| Dịch vụ | Mã hóa trong quá trình truyền | Mã hóa khi lưu trữ | Mã hóa đầu cuối | Nhà cung cấp có thể truy cập |
|---|---|---|---|---|
| Ảnh iCloud (mặc định) | Có | Có (khóa Apple) | Không | Có |
| Ảnh iCloud (ADP được bật) | Có | Có | Có | Không |
| Google Photos | Có | Có (khóa Google) | Không | Có |
| Dropbox | Có | Có (khóa Dropbox) | Không | Có |
| OneDrive | Có | Có (khóa Microsoft) | Không | Có |
| Vaultaire | Có | Có | Sao lưu mã hóa phía máy khách, bật theo mặc định | Không có khóa nội dung bản rõ; siêu dữ liệu CloudKit vẫn còn |
Tại sao mã hóa đầu cuối quan trọng cho ảnh
Ảnh là dữ liệu nhạy cảm đặc biệt. Chúng chứa khuôn mặt, vị trí (siêu dữ liệu GPS), dấu thời gian và hồ sơ trực quan về các khoảnh khắc riêng tư. Vi phạm thư viện ảnh của bạn phơi bày nhiều thông tin cá nhân hơn hầu hết mọi loại dữ liệu khác.
Vi phạm dữ liệu
Khi nhà cung cấp lưu ảnh bằng khóa phía máy chủ, việc xâm nhập cả bộ nhớ lẫn đường quản lý khóa có thể làm lộ nội dung đọc được. Với E2EE đúng cách, vụ rò rỉ chỉ ở phần lưu trữ chỉ để lộ bản mã và siêu dữ liệu mà dịch vụ còn giữ. Thiết bị đầu cuối bị xâm nhập, thông tin xác thực khôi phục bị đánh cắp, phần mềm máy khách độc hại và lỗi dịch vụ khóa vẫn là những con đường riêng dẫn tới bản rõ.
Truy cập pháp lý và chính phủ
Nhà cung cấp dịch vụ có thể bị buộc cung cấp hồ sơ mà họ đang giữ. Với E2EE, hồ sơ đó có thể gồm bản mã, thông tin tài khoản, nhật ký truy cập, kích thước bản ghi, thời gian và siêu dữ liệu chia sẻ, thay vì nội dung ảnh đọc được. Việc yêu cầu đó có chạm tới thiết bị, phương thức khôi phục, người nhận hay hành vi của máy khách trong tương lai hay không là một câu hỏi kỹ thuật và pháp lý khác.
Truy cập nội bộ
Nhân viên hoặc kẻ tấn công có quyền dùng khóa lưu trữ do nhà cung cấp quản lý có thể truy cập nội dung được mã hóa phía máy chủ. E2EE loại bỏ con đường trực tiếp qua khóa lưu trữ đó khi nhà cung cấp không có khóa nội dung bản rõ. Nó không loại trừ hoàn toàn rủi ro lạm dụng nội bộ, vì nhà cung cấp có thể kiểm soát việc phân phối máy khách, trạng thái tài khoản, siêu dữ liệu, chia sẻ hoặc các thành phần khôi phục.
Bảo vệ siêu dữ liệu
Một số bản triển khai E2EE chỉ mã hóa nội dung tệp mà không bảo vệ siêu dữ liệu như tên tệp và ngày. Vaultaire bảo vệ tên tệp, kiểu MIME, chỉ mục, ảnh thu nhỏ và siêu dữ liệu két khác bằng mã hóa có xác thực AES-256-GCM. Độ dài bản mã được lưu và số thư mục lưu trữ két vẫn có thể lộ thông tin cấu trúc cho người truy cập được vùng chứa ứng dụng.
Những hiểu lầm phổ biến về E2EE
"Lưu trữ đám mây của tôi được mã hóa, vì vậy ảnh của tôi an toàn." Mã hóa phía máy chủ bảo vệ chống lại vi phạm bên ngoài phần cứng máy chủ. Nó không bảo vệ chống lại chính nhà cung cấp, các yêu cầu pháp lý hoặc mối đe dọa nội bộ. Nhà cung cấp giữ các khóa.
"HTTPS có nghĩa là ảnh của tôi được mã hóa đầu cuối." HTTPS (TLS) mã hóa dữ liệu trong quá trình truyền giữa thiết bị và máy chủ. Khi dữ liệu đến máy chủ, nó được giải mã. HTTPS là mã hóa đường ống, không phải mã hóa dữ liệu.
"Mã hóa đầu cuối có nghĩa là không ai có thể xem ảnh của tôi." E2EE có nghĩa là không ai không có khóa có thể xem ảnh của bạn. Nếu ai đó có mật khẩu hoặc khóa của bạn, họ có thể giải mã dữ liệu. Quản lý khóa và mật khẩu mạnh vẫn cần thiết.
"Apple/Google không thể xem ảnh của tôi." Theo mặc định, cả hai công ty đều giữ các khóa mã hóa cho ảnh được lưu trữ trên đám mây của bạn. Apple cung cấp Bảo vệ Dữ liệu Nâng cao như một tùy chọn đăng ký. Google không cung cấp tùy chọn E2EE cho Google Photos.
Cách Vaultaire triển khai mã hóa đầu cuối
Vaultaire sử dụng phương pháp E2EE nhiều lớp:
- AES-256-GCM mã hóa tất cả nội dung tệp. Mỗi tệp nhận được vectơ khởi tạo duy nhất. Mã hóa xác thực phát hiện sự can thiệp.
- PBKDF2 với HMAC-SHA512 tạo khóa két cục bộ từ mẫu hình người dùng vẽ và muối của thiết bị. Hệ số công việc làm tăng chi phí cho mỗi lần đoán ngoại tuyến nhưng không làm tăng entropy của mẫu hình. Khóa két đó xác thực chỉ mục đã mã hóa và mở lớp bọc của khóa chính ngẫu nhiên dùng cho dữ liệu tệp.
- AES-256-GCM cho siêu dữ liệu bảo vệ tên tệp, ngày, kích thước, chỉ mục và ảnh thu nhỏ bằng mã hóa có xác thực.
- Keychain và Bảo vệ dữ liệu của iOS bảo vệ muối của thiết bị và cơ sở dữ liệu khôi phục đã mã hóa. Các thao tác AES-GCM và khóa đối xứng đang dùng vẫn nằm trong tiến trình ứng dụng khi két đang mở.
- Tách biệt khóa với nhà cung cấp nghĩa là Wraxle không nhận khóa bản rõ, khóa chính, khóa sao lưu hay khóa khôi phục. Sao lưu CloudKit (bật theo mặc định), đồng bộ và chia sẻ lưu bản ghi bản mã và phong bì khóa đã mã hóa, còn Apple vẫn có thể thấy siêu dữ liệu dịch vụ. Vaultaire không yêu cầu tài khoản định danh Vaultaire.
Vaultaire giữ thông tin khôi phục, kể cả mẫu hình, trong một cơ sở dữ liệu mã hóa AES-GCM lưu trong Keychain của iOS. Thông tin này không được ghi vào tệp bản rõ hay gửi tới dịch vụ tài khoản Vaultaire nào. Nếu không còn mẫu hình dùng được, cụm từ khôi phục hay thiết bị đã mở khóa, Vaultaire không giữ khóa khôi phục nào ở phía nhà cung cấp để lấy lại quyền truy cập.
Câu hỏi thường gặp
Mã hóa đầu cuối có hợp pháp không?
Cách pháp luật xử lý mã hóa, việc buộc cung cấp quyền truy cập và các dịch vụ mã hóa khác nhau theo từng khu vực pháp lý và có thể thay đổi. Hướng dẫn này mô tả mô hình kỹ thuật, không phải tư vấn pháp lý. Hãy kiểm tra luật hiện hành tại địa phương nếu việc sử dụng của bạn liên quan đến khám xét ở biên giới, lệnh của tòa án, hồ sơ chịu quản lý hoặc bối cảnh rủi ro cao khác.
Cơ quan thực thi pháp luật có thể phá vỡ mã hóa đầu cuối không?
Tấn công hiếm khi cần dò toàn bộ không gian khóa AES-256. Người kiểm tra có thể nhắm vào mật khẩu hoặc mẫu hình yếu, thiết bị đầu cuối đã mở khóa, bộ nhớ, cụm từ khôi phục, người nhận, bản sao lưu hoặc lỗ hổng triển khai. AES-256-GCM được triển khai đúng với khóa ngẫu nhiên có entropy cao được thiết kế để chống dò khóa trực tiếp, nhưng đó chỉ là một phần của hệ thống.
Sự khác biệt giữa E2EE và mã hóa zero-knowledge là gì?
E2EE mô tả nơi diễn ra mã hóa và giải mã bản rõ, và ai giữ các khóa nội dung dùng được. “Zero-knowledge” thường được dùng trong tiếp thị sản phẩm để chỉ mã hóa mà nhà cung cấp không đọc được, nhưng không nên hiểu theo nghĩa đen: một dịch vụ có thể không có khóa bản rõ mà vẫn thấy bản mã, dữ liệu tài khoản, kích thước, thời gian, quan hệ chia sẻ và siêu dữ liệu khác. Hãy đánh giá các đường khôi phục và khóa được công bố, đừng chỉ nhìn nhãn.
Mã hóa đầu cuối có làm chậm điện thoại của tôi không?
Thiết bị hiện đại xử lý AES-256 hiệu quả nhờ tăng tốc phần cứng được cung cấp qua các thư viện mật mã của hệ thống. Trên iPhone, Vaultaire thực hiện AES-GCM trong tiến trình ứng dụng qua CryptoKit. Các API Secure Enclave công khai của Apple không phải là bộ máy AES-GCM tùy ý để mã hóa tệp. Chi phí mã hóa và giải mã phụ thuộc vào kích thước tệp và thiết bị, nhưng được thiết kế để không gây cản trở khi dùng bình thường.
Điều gì xảy ra nếu tôi mất khóa mã hóa?
Mất mọi đường giải mã và khôi phục dùng được sẽ khiến dữ liệu đã mã hóa không thể lấy lại. Vì vậy, nhiều hệ thống E2EE dùng cụm từ khôi phục, thiết bị tin cậy, liên hệ khôi phục, bộ khẩn cấp hoặc phong bì khóa đã mã hóa. Các cơ chế đó giữ được quyền truy cập, nhưng mỗi cơ chế cũng trở thành một phần của mô hình bảo mật.
Kết luận
Mã hóa đầu cuối có thể loại bỏ con đường qua khóa bản rõ của nhà cung cấp lưu trữ khi việc mã hóa diễn ra trên thiết bị đầu cuối được ủy quyền trước khi tải lên. Đó là sự bảo vệ có ý nghĩa, không phải sự bảo đảm cho toàn bộ hệ thống. Hãy kiểm tra ai giữ khóa nội dung, cách khôi phục, siêu dữ liệu, bản cập nhật máy khách, bảo mật thiết bị đầu cuối và việc chia sẻ trước khi giao ảnh riêng tư cho một dịch vụ.
Vaultaire triển khai mã hóa phía máy khách cho iOS. Ảnh và siêu dữ liệu két của bạn được mã hóa trên thiết bị bằng AES-256-GCM trước khi sao lưu (bật theo mặc định) hoặc đồng bộ. Vaultaire không nhận khóa giải mã hay vận hành máy chủ có thể biến các bản ghi đã mã hóa đó thành ảnh của bạn. Ranh giới nhà cung cấp này không làm cho một iPhone bị xâm nhập hoặc đang mở khóa trở nên đáng tin cậy.