Mã hóa không kiến thức là gì? Hướng dẫn đơn giản
Mã hóa không kiến thức có nghĩa là nhà cung cấp không thể truy cập dữ liệu của bạn.
Mã hóa không kiến thức là kiến trúc giới hạn bởi nhà cung cấp, trong đó dịch vụ không giữ khóa cần thiết để giải mã nội dung người dùng được lưu trữ. Không giống như mã hóa đám mây tiêu chuẩn trong đó nhà cung cấp kiểm soát khóa nội dung, mã hóa phía máy khách có thể duy trì khả năng đó trên thiết bị người dùng. Yêu cầu pháp lý, vi phạm hoặc nội bộ vẫn có thể làm lộ bản mã, hồ sơ tài khoản, dữ liệu lưu lượng truy cập hoặc siêu dữ liệu khác mà nhà cung cấp giữ lại. Hướng dẫn quản lý khóa của NIST đặt quyền lưu ký khóa làm trung tâm để truy cập, nhưng ứng dụng khách, hệ điều hành và thiết bị đã mở khóa vẫn là một phần của ranh giới tin cậy.
Cách mã hóa không kiến thức hoạt động
Ví dụ đơn giản nhất: một két an toàn khách sạn nơi chỉ bạn đặt mã, và khách sạn không bao giờ biết mã đó. Nếu bạn quên mã, khách sạn không thể mở két cho bạn. Đó không phải là lỗi trong thiết kế. Đó chính là thiết kế.
Về mặt kỹ thuật, mã hóa không kiến thức hoạt động qua ba bước:
Dẫn xuất khóa trên thiết bị. Người dùng cung cấp thông tin xác thực như mật khẩu, cụm mật khẩu hoặc mẫu. Hàm phái sinh khóa dựa trên mật khẩu kết hợp nó với muối để tạo khóa trên thiết bị của người dùng. Một thiết kế được phân tách rõ ràng có thể sử dụng khóa đó để mở khóa mã hóa nội dung ngẫu nhiên thay vì mã hóa trực tiếp mọi tệp bằng thông tin xác thực của con người.
Mã hóa trước khi truyền. Tất cả dữ liệu được mã hóa trên thiết bị bằng khóa đã dẫn xuất trước khi rời khỏi thiết bị để lưu trữ đám mây hoặc sao lưu. Đầu ra đã mã hóa (bản mã) là thứ được tải lên.
Nhà cung cấp không nhận được khóa nội dung văn bản gốc. Khóa nội dung nhất thiết phải tồn tại trong bộ nhớ máy khách trong quá trình sử dụng và cũng có thể được lưu trữ cục bộ hoặc từ xa bên trong các phong bì được mã hóa đã xác thực. Nhà cung cấp có thể lưu trữ văn bản mã hóa và khóa được bọc mà không cần giữ bí mật người dùng cần thiết để mở chúng. Siêu dữ liệu về tài khoản, lưu lượng truy cập, kích thước bản ghi và thời gian có thể vẫn hiển thị.
Ràng buộc quan trọng: nếu người dùng mất mọi đường dẫn khôi phục và thông tin xác thực hợp lệ thì nội dung được mã hóa sẽ không thể truy cập được. Việc thu hồi vẫn có thể tồn tại nhưng quyền giám hộ chính của nó phải được giải thích. Nếu chỉ đặt lại email sẽ khôi phục nội dung có thể đọc được mà không cần phê duyệt của thiết bị cũ, cụm từ khôi phục, khóa khôi phục hoặc bí mật tương đương do người dùng nắm giữ, thì nhà cung cấp đã giữ lại một lộ trình hiệu quả quay lại văn bản gốc.
Mã hóa không kiến thức so với các loại mã hóa khác
Thuật ngữ "mã hóa" xuất hiện trong tài liệu tiếp thị của hầu hết mọi dịch vụ đám mây. Sự khác biệt giữa các loại là đáng kể.
| Loại | Ai giữ khóa | Nhà cung cấp có thể đọc dữ liệu | Tồn tại sau vi phạm nhà cung cấp | Ví dụ |
|---|---|---|---|---|
| Không mã hóa | Không áp dụng | Có | Không | Dropbox (gói tiêu chuẩn) |
| Mã hóa khi truyền (TLS) | Nhà cung cấp | Có (khi lưu trữ trên máy chủ của họ) | Không | Google Photos |
| Mã hóa phía máy chủ khi lưu trữ | Nhà cung cấp | Có (họ giữ khóa giải mã) | Một phần (tùy thuộc phạm vi vi phạm) | iCloud (tiêu chuẩn) |
| Mã hóa đầu cuối nền tảng | Thiết bị khách và hệ thống khôi phục tài khoản | Không thông qua đường dẫn dịch vụ thông thường | Phụ thuộc vào ứng dụng khách, khả năng phục hồi và khả năng hiển thị siêu dữ liệu | iCloud với tính năng Bảo vệ dữ liệu nâng cao |
| Mã hóa phía máy khách mù nhà cung cấp | Đường dẫn khôi phục do khách hàng và người dùng kiểm soát | Không có khóa nội dung văn bản gốc do nhà cung cấp nắm giữ | Nội dung có thể vẫn được mã hóa; siêu dữ liệu và bản mã vẫn có thể bị rò rỉ | Kho tiền được mã hóa và hệ thống sao lưu |
Sự khác biệt giữa "mã hóa khi lưu trữ" và "mã hóa không kiến thức" là điều bị nhầm lẫn phổ biến nhất. Với mã hóa khi lưu trữ, nhà cung cấp mã hóa dữ liệu của bạn trên máy chủ của họ bằng các khóa họ kiểm soát. Điều này bảo vệ chống lại việc trộm cắp vật lý phần cứng máy chủ. Nó không bảo vệ chống lại nhà cung cấp đọc dữ liệu của bạn, trát tòa án về dữ liệu và khóa, hoặc mối đe dọa từ nội bộ. Nhà cung cấp có khả năng giải mã.
Với mã hóa phía máy khách mù của nhà cung cấp, dịch vụ không được cấp khóa nội dung văn bản gốc thông qua giao thức được ghi lại. Văn bản mã hóa được lưu trữ có thể không rõ ràng đối với nhà cung cấp đó, trong khi phần mềm máy khách, đường dẫn khôi phục, siêu dữ liệu tài khoản và kênh phân phối phần mềm vẫn cần có sự tin cậy và xem xét.
Tại sao mã hóa không kiến thức quan trọng
Vi phạm dữ liệu ảnh hưởng hàng tỷ bản ghi mỗi năm
Trung tâm tài nguyên chống trộm danh tính đã báo cáo 3.205 vụ xâm phạm dữ liệu ở Hoa Kỳ vào năm 2023, ảnh hưởng đến khoảng 353 triệu cá nhân. Khi nhà cung cấp giữ khóa nội dung, một hành vi vi phạm có thể làm lộ cả dữ liệu được lưu trữ và đường dẫn để giải mã dữ liệu đó. Mã hóa mù của nhà cung cấp phân tách các nội dung đó: vi phạm máy chủ vẫn có thể làm lộ bản mã và siêu dữ liệu, nhưng không làm lộ khóa nội dung văn bản gốc do nhà cung cấp nắm giữ. Việc đoán thông tin xác thực và sự xâm phạm của khách hàng vẫn là những rủi ro riêng biệt.
Cưỡng bức pháp lý là mối đe dọa thực sự
Các nhà cung cấp có thể được yêu cầu tiết lộ dữ liệu họ lưu giữ. Thiết kế mù của nhà cung cấp có thể giới hạn phản hồi đó đối với văn bản mã hóa và siêu dữ liệu tài khoản, lưu lượng truy cập, thanh toán hoặc dịch vụ có sẵn vì nhà cung cấp không giữ khóa nội dung văn bản gốc. Liệu một bên khác có thể lấy được thông tin xác thực của người dùng, khai thác khách hàng hay buộc tiết lộ hay không là một câu hỏi riêng. Apple đã giới thiệu Bảo vệ dữ liệu nâng cao trong iOS 16.2 dưới dạng mở rộng tùy chọn mã hóa đầu cuối cho iCloud dữ liệu.
"Hãy tin chúng tôi" không phải là kiến trúc bảo mật
Mã hóa phía máy chủ dựa vào chính sách và khóa do nhà cung cấp kiểm soát. Mã hóa mù của nhà cung cấp thay đổi quyền giám sát khóa để đường dẫn dịch vụ được ghi lại thiếu khóa nội dung văn bản gốc. Đó là ranh giới kiến trúc mạnh mẽ hơn, nhưng sức mạnh của nó vẫn phụ thuộc vào mã máy khách chính xác, việc phân phối phần mềm được xác thực, khôi phục âm thanh, thiết bị an toàn và cách triển khai phù hợp với đặc điểm kỹ thuật.
Tiêu chuẩn NIST đằng sau mật mã học
AES-GCM được Viện Tiêu chuẩn và Công nghệ Quốc gia tiêu chuẩn hóa vào năm SP 800-38D (2007). Bản thân AES đã được NIST lựa chọn thông qua một cuộc thi công khai vào năm 2001. Số "256" trong AES-256 đề cập đến khóa 256-bit. Việc tìm kiếm toàn diện trên một khóa ngẫu nhiên thống nhất là không khả thi về mặt tính toán, nhưng mật khẩu hoặc mẫu của con người có thể cung cấp ít entropy hơn nhiều ngay cả khi hàm phái sinh khóa xuất ra 256 bit.
GCM (Galois/Counter Mode) thêm mã hóa xác thực, có nghĩa là quá trình giải mã phát hiện bất kỳ sự can thiệp nào với bản mã. Nếu một bit dữ liệu đã mã hóa bị thay đổi, giải mã thất bại thay vì tạo ra đầu ra bị hỏng. Điều này ngăn chặn kẻ tấn công thao túng dữ liệu đã mã hóa mà không bị phát hiện.
PBKDF2 (Hàm phái sinh khóa dựa trên mật khẩu 2), được chỉ định trong RFC 8018, chuyển đổi thông tin xác thực do con người cung cấp thành tài liệu khóa có độ dài cố định thông qua các lệnh gọi hàm giả ngẫu nhiên lặp đi lặp lại. Nhiều lần lặp lại sẽ làm tăng chi phí cho mỗi lần đoán. Họ không thêm entropy vào mẫu hoặc mật khẩu có thể dự đoán được, vì vậy việc lựa chọn thông tin xác thực và xác minh ngoại tuyến vẫn quan trọng.
Cách Vaultaire triển khai việc tách khóa nhà cung cấp
Kho tiền là một kho lưu trữ được mã hóa phía máy khách dành cho iPhone. Theo nghĩa sản phẩm thường được tiếp thị là "không có kiến thức", tuyên bố được ghi lại trong tài liệu hẹp hơn của nó là Wraxle không nhận được nội dung vault văn bản gốc hoặc các khóa cần thiết để giải mã nó. Đây là cách triển khai và các ranh giới tin cậy còn lại hoạt động ở mỗi lớp.
Dẫn xuất chính. Người dùng vẽ một mẫu trên lưới 5x5 gồm 25 điểm. PBKDF2-HMAC-SHA512 kết hợp trình tự đó với một thiết bị trên toàn Keychain salt trong 600.000 lần lặp để lấy được khóa vault 256 bit. Khóa vault xác thực chỉ mục được mã hóa và bao bọc một khóa chính 256-bit ngẫu nhiên riêng biệt. Thông tin khôi phục, bao gồm cả mẫu, được lưu trữ trong một AES-GCM được mã hóa Keychain cơ sở dữ liệu thay vì các tệp văn bản gốc hoặc tài khoản Vaultaire.
Mã hóa tập tin. Mỗi tệp đã nhập được mã hóa bằng AES-256-GCM dưới khóa chính ngẫu nhiên. CryptoKit tạo ra các hộp kín đã được xác thực với các số mới và định dạng phát trực tuyến sẽ tạo ra một số mới riêng biệt cho từng đoạn được sắp xếp.
Mã hóa siêu dữ liệu. Tên tập tin, MIME loại, ngày tháng, bản ghi chỉ mục và dữ liệu hình thu nhỏ cũng được bảo vệ bằng AES-256-GCM. Vaultaire không sử dụng ChaCha20 cho siêu dữ liệu vault.
Quản lý chìa khóa. Vaultaire lưu trữ cơ sở dữ liệu khôi phục được mã hóa và muối thiết bị của mình như bình thường iOS Keychain các mục mật khẩu chung được bảo vệ bằng WhenUnlockedThisDeviceOnly lớp khả năng tiếp cận. Khóa vault có nguồn gốc từ mẫu và khóa chính ngẫu nhiên được xử lý trong bộ nhớ ứng dụng thông qua CryptoKit. Khóa giảm trạng thái khóa hoạt động, nhưng Swift và iOS không hỗ trợ đảm bảo rằng mọi bản sao tạm thời đều bị ghi đè.
Khám phá kho tiền. Giao diện bình thường không hiển thị danh sách vault. Định dạng cục bộ lưu trữ chính xác 1 tệp chỉ mục được mã hóa cho mỗi kho lưu trữ và mã bảo trì có thể liệt kê các tệp đó. Do đó, người nào đó có quyền truy cập vùng chứa ứng dụng có thể đếm các chỉ mục được mã hóa, mặc dù tên tệp không tiết lộ mẫu, tên hoặc nội dung văn bản gốc. Xem đầy đủ kiến trúc an ninh và giải thích mã hóa mẫu.
Cách nhận biết nếu ứng dụng sử dụng mã hóa không kiến thức thực sự
Bắt đầu với ba bài kiểm tra nhanh, sau đó xác minh kiến trúc đã xuất bản:
Kiểm tra quên mật khẩu. Nếu chỉ đặt lại email khôi phục dữ liệu có thể đọc được, hãy hỏi cơ chế nào do nhà cung cấp nắm giữ đã khôi phục khóa nội dung hiệu quả. Các cụm từ khôi phục do người dùng nắm giữ, phê duyệt thiết bị cũ và đặt lại do nhà cung cấp kiểm soát là các thiết kế khác nhau.
Cuộc thử nghiệm thiết bị mới. Nếu một thiết bị mới khôi phục nội dung có thể đọc được, hãy xác định thiết bị bí mật hoặc đáng tin cậy đã ủy quyền cho nội dung đó. Chỉ đăng nhập tài khoản sẽ gợi ý đường dẫn khôi phục do nhà cung cấp kiểm soát; cụm từ khôi phục cộng với các bản ghi sao lưu được mã hóa có thể duy trì sự phân tách khóa-nhà cung cấp.
Bài kiểm tra tài khoản. Địa chỉ email hoặc số điện thoại liên kết danh tính với siêu dữ liệu dịch vụ nhưng bản thân nó không chứng minh được nhà cung cấp có thể giải mã nội dung. Kiểm tra hệ thống phân cấp khóa, thiết kế khôi phục, mã máy khách hoặc kiểm tra, chính sách siêu dữ liệu và liệu văn bản mật mã được xác thực có cho phép kiểm tra thông tin xác thực ngoại tuyến hay không.
Những thử nghiệm này là bộ lọc, không phải là bằng chứng bảo mật. Thông số kỹ thuật mạch lạc phải đặt tên cho khóa nội dung, khóa mở khóa, muối, tham số phái sinh, định dạng mã hóa xác thực, quy tắc nonce, phong bì khôi phục, lưu trữ bí mật cục bộ, siêu dữ liệu đám mây và điểm tồn tại khóa văn bản gốc. Đánh giá độc lập là bằng chứng mạnh mẽ hơn nhãn sản phẩm.
Câu hỏi thường gặp
Mã hóa không kiến thức có giống mã hóa đầu cuối không?
Hai khái niệm này có điểm chung nhưng không giống nhau. Mã hóa đầu cuối (E2EE) có nghĩa là dữ liệu được mã hóa trên thiết bị người gửi và chỉ được giải mã trên thiết bị người nhận. Mã hóa không kiến thức có nghĩa là nhà cung cấp không thể truy cập dữ liệu. Một dịch vụ có thể mã hóa đầu cuối mà không có kiến thức bằng không nếu nhà cung cấp đã tạo hoặc từng có quyền truy cập khóa. Mã hóa không kiến thức là tiêu chuẩn chặt chẽ hơn.
Điều gì xảy ra nếu tôi mất mật khẩu khi sử dụng mã hóa không kiến thức?
Dữ liệu của bạn sẽ vĩnh viễn không thể truy cập được nếu mọi phong bì thông tin xác thực và khôi phục hợp lệ bị mất. Khóa chính hoặc khóa đặt lại do nhà cung cấp kiểm soát sẽ làm suy yếu ranh giới của nhà cung cấp, do đó việc khôi phục phải được thiết kế riêng. Kho tiền tạo một tùy chỉnh chứa 9 cụm từ riêng biệt có khóa khôi phục dẫn xuất sẽ mở một phong bì khóa vault được mã hóa. Cụm từ không tạo lại hoặc mã hóa khóa và khôi phục thiết bị mới cũng yêu cầu mã hóa phù hợp CloudKit hồ sơ.
Cơ quan thực thi pháp luật có thể truy cập dữ liệu mã hóa không kiến thức không?
Nhà cung cấp có thể phải tiết lộ văn bản mã hóa được lưu trữ và siêu dữ liệu tài khoản, lưu lượng truy cập, thanh toán hoặc dịch vụ mà họ lưu giữ. Nếu không có khóa nội dung văn bản gốc do nhà cung cấp nắm giữ, nhà cung cấp đó không thể sử dụng đường dẫn dịch vụ thông thường của mình để giải mã nội dung. Khai thác thiết bị, khám phá thông tin xác thực, sao chép khôi phục và tiết lộ bắt buộc là những con đường riêng biệt có tính hợp pháp và hiệu quả khác nhau tùy theo khu vực pháp lý và thực tế.
Mã hóa không kiến thức có chậm hơn mã hóa thông thường không?
AES-256-GCM hiệu suất không phụ thuộc vào người giữ chìa khóa. Tính năng phái sinh dựa trên mật khẩu sẽ bổ sung thêm công việc trong quá trình mở khóa và thời lượng của nó phụ thuộc vào thuật toán, số lần lặp, thiết bị và cách triển khai. Ứng dụng nên đo lường chi phí đó trên phần cứng được hỗ trợ và cân bằng khả năng đáp ứng với chi phí áp dụng cho mỗi lần đoán ngoại tuyến.
Không kiến thức có nghĩa là ứng dụng không thu thập dữ liệu nào không?
Không nhất thiết phải như vậy. Thuật ngữ này đề cập đến ranh giới khóa nội dung của nhà cung cấp chứ không phải mọi luồng dữ liệu. Ứng dụng vẫn có thể xử lý dữ liệu tài khoản, phân tích, báo cáo sự cố, địa chỉ IP, kích thước bản ghi, thời gian hoặc siêu dữ liệu dịch vụ khác. Vaultaire không yêu cầu tài khoản nhận dạng và cho biết các phân tích dựa trên sự đồng ý của nó loại trừ nội dung, mẫu, cụm từ và khóa giải mã của vault; nó chính sách bảo mật mô tả các quy tắc thu thập và lưu giữ hiện hành.
Mã hóa không kiến thức so sánh với Bảo vệ Dữ liệu Nâng cao của Apple như thế nào?
Bảo vệ dữ liệu nâng cao (ADP) của Apple, được giới thiệu trong iOS 16.2, mở rộng mã hóa đầu cuối sang các tính năng bổ sung iCloud danh mục và sử dụng mô hình khôi phục Tài khoản Apple. Vaultaire giữ nội dung vault cục bộ theo mặc định và không yêu cầu tài khoản nhận dạng Vaultaire; sao lưu, đồng bộ hóa và chia sẻ tùy chọn sử dụng tính năng mã hóa phía máy khách CloudKit hồ sơ trong tài khoản Apple của người dùng. Vaultaire cũng cung cấp quyền truy cập vault được phân tách theo mẫu và chế độ cưỡng bức, với các giới hạn lưu trữ và phục hồi được mô tả trong tài liệu có thể phủ nhận hợp lý.
Tóm tắt
Mã hóa không có kiến thức được xử lý tốt nhất dưới dạng yêu cầu phân tách khóa-nhà cung cấp: dịch vụ không giữ khóa văn bản gốc cần thiết để giải mã nội dung được lưu trữ. Điều đó mạnh hơn mã hóa phía máy chủ theo các khóa do nhà cung cấp kiểm soát, nhưng không khẳng định rằng các khóa chỉ tồn tại trong bộ nhớ, siêu dữ liệu đó biến mất hoặc mọi thỏa hiệp giữa máy khách và thiết bị đều bị đánh bại. Đánh giá sản phẩm theo hệ thống phân cấp chính, thiết kế khôi phục, triển khai và đánh giá độc lập.