DAPI là một đối xứng dựa kỹ thuật mã hóa, có nghĩa là nó sử dụng cùng một chìa khóa cho cả hai mã hóa và giải mã dữ liệu. Trước khi tìm hiểu một số ví dụ về cách sử dụng DAPI, nó đáng để biết cách DAPI quản lý khóa của nó như thế nào. Đối với hầu hết các phần của quá trình quản lý khóa DAPI là invisble và bạn thường không cần phải lo lắng về nó, đó là lý do chính tại sao DAPI là một cách tiếp cận tốt.
Trong phần giới thiệu, tôi đã viết rằng khóa chính được tạo từ mật khẩu đăng nhập của người dùng. Đây không phải là bức tranh hoàn chỉnh. Điều thực sự xảy ra là Windows sử dụng mật khẩu đăng nhập của người dùng để tạo khóa chính. Khóa chính này được bảo vệ bằng mật khẩu của người dùng và sau đó được lưu trữ cùng với hồ sơ của người dùng. Khóa chính này sau đó được sử dụng để lấy được một số khóa khác và đó là các khóa khác được sử dụng để bảo vệ dữ liệu.
Lý do tại sao Windows thực hiện điều này là nó cho phép ứng dụng thêm thông tin bổ sung, được gọi là entropy, vào quá trình tạo khóa cá nhân. Bạn thấy nếu mọi ứng dụng chạy dưới tài khoản đăng nhập của người dùng sử dụng cùng một khóa thì mọi ứng dụng đều có thể bảo vệ dữ liệu được bảo vệ bởi DAPI. Đôi khi bạn có thể muốn các ứng dụng có thể chia sẻ dữ liệu được bảo vệ DAPI; Tuy nhiên, đôi khi bạn sẽ không. Bằng cách cho phép ứng dụng đóng góp entropy vào việc tạo ra một khóa thì khóa đó sẽ trở thành ứng dụng cụ thể và bất kỳ dữ liệu nào được bảo vệ bởi ứng dụng đó chỉ có thể được bảo vệ một lần nữa nếu chúng biết entropy.
Mặc dù tạo khóa chính, và sau đó sử dụng khóa chính để tạo các khóa khác để thực hiện mã hóa thực, có vẻ giống như một cách tiếp cận dài, nó có một lợi thế lớn. Vì có một mức trừu tượng bổ sung giữa khóa chủ được bảo vệ bằng mật khẩu người dùng và các khóa thực tế được sử dụng để bảo vệ dữ liệu, nghĩa là khi người dùng thay đổi mật khẩu của họ thì chỉ có khóa chính cần được bảo vệ lại; không có dữ liệu được bảo vệ nào cần được bảo vệ lại. Vì khóa chính nhỏ hơn nhiều so với dữ liệu nên việc thực hiện tiết kiệm đáng kể.
Khi mật khẩu của người dùng thay đổi thì khóa học chính mới được tạo. Khóa chính mới này sau đó được sử dụng để tạo các khóa riêng mới. Tuy nhiên, vì tất cả các khóa cá nhân được tạo trước đây đều được lấy từ khóa chính cũ nên Windows cần lưu trữ tất cả các khóa chính trước đó, mà nó thực hiện. Windows không bao giờ quên khóa chính và tất cả dữ liệu được bảo vệ được đánh dấu bằng GUID cho biết khóa chính nào được sử dụng để bảo vệ dữ liệu. Vì vậy, xét về khả năng thích ứng, DAPI có thể đối phó với những thay đổi mật khẩu của người dùng, trong khi đảm bảo a) dữ liệu được bảo vệ không cần phải được bảo vệ lại và b) các khóa đó được sử dụng để bảo vệ dữ liệu trước đó.) nó thực hiện tất cả điều này tự động cho bạn.
Trừ khi máy tính là thành viên của miền DAPI chỉ có thể bảo vệ dữ liệu trên cùng một máy đã được sử dụng để bảo vệ nó.
Cũng như cho phép bảo vệ cấp người dùng, trong các khóa chính dựa trên mật khẩu người dùng và dữ liệu được bảo vệ cho một người dùng không được người dùng khác bảo vệ, DAPI cũng cung cấp mức bảo vệ máy. thông tin cụ thể. Các phím chính cấp máy cho phép các ứng dụng lưu trữ dữ liệu được bảo vệ sao cho nó có thể không được bảo vệ bởi tất cả người dùng của ứng dụng. Sự khác biệt duy nhất trong quá trình đã được mô tả là khóa chính được tạo từ thông tin cụ thể của máy chứ không phải thông tin cụ thể của người dùng.
Nó không nói là an toàn, chỉ * an toàn hơn * –
@Mark Peters: Đó là lý do tại sao tôi nói * an toàn bổ sung *. – sharptooth
bạn có thể hỏi điều này tại crypto.SE - rất chủ đề có –