2009-01-14 33 views
46

Có tương đương với Keychain X OS, được sử dụng để lưu trữ mật khẩu người dùng, trong Windows không? Tôi sẽ sử dụng nó để lưu mật khẩu của người dùng cho một dịch vụ web mà phần mềm của tôi (máy tính để bàn) sử dụng.Windows tương đương với OS X Keychain?

Từ câu trả lời cho câu hỏi liên quan này (Protecting user passwords in desktop applications (Rev 2)) và multitude of third party password storage tools có sẵn, tôi cho rằng điều đó không tồn tại-- Tôi bị kẹt với yêu cầu mật khẩu mỗi khi tôi truy cập dịch vụ web hoặc chỉ lưu trữ nó obfuscated?

Trả lời

14

Tương đương Windows "truyền thống" sẽ là hệ thống con lưu trữ được bảo vệ, được sử dụng bởi IE (trước IE 7), Outlook Express và một vài chương trình khác. Tôi tin rằng mật khẩu đã được mã hóa bằng mật khẩu đăng nhập của bạn, điều này ngăn một số cuộc tấn công ngoại tuyến, nhưng khi bạn đã đăng nhập, bất kỳ chương trình nào muốn đọc nó đều có thể đọc được. (Xem, ví dụ, NirSoft's Protected Storage PassView.)

Windows cũng cung cấp API bảo mật dữ liệu và CryptoAPI có thể trợ giúp. Một lần nữa, mặc dù, tôi không nghĩ rằng Windows làm bất cứ điều gì để ngăn chặn các quá trình chạy dưới cùng một tài khoản nhìn thấy mật khẩu của nhau.

Có vẻ như cuốn sách Mechanics of User Identification and Authentication cung cấp thêm chi tiết về tất cả những điều này.

Eclipse (thông qua tính năng SecureStorage) thực hiện một cái gì đó như thế này, nếu bạn muốn xem phần mềm khác hoạt động như thế nào.

+1

Bộ nhớ được bảo vệ đã không được chấp nhận sau XP/2k3 và chỉ đọc trong Window Vista và Server 2008: http://msdn.microsoft.com/en-us/library/bb432403%28v=vs. 85% 29.aspx – Spig

+0

Wow, bảo mật có thực sự khó khăn trong Windows không? – Geremia

14

Trên thực tế, nhìn qua MSDN, các chức năng họ khuyên bạn nên sử dụng (thay vì Protected Storage) là:

CryptProtectData và CryptUnprotectData

Liên kết cho CryptProtectData là tại địa chỉ:

http://msdn.microsoft.com/en-us/library/aa380261(v=VS.85).aspx

+0

không * trông * như thế này bảo vệ các ứng dụng riêng biệt đọc dữ liệu của nhau ... – rogerdpack

+0

Truyền 'pOptionalEntropy' có thể cung cấp một số bảo vệ từ các ứng dụng khác đọc dữ liệu ứng dụng của bạn khi chạy trong cùng một ngữ cảnh. – Spig

13

Windows 8 có khái niệm về một keychain gọi là Password Vault. Các ứng dụng Windows Runtime (Modern/Metro) cũng như các ứng dụng dành cho máy tính để bàn được quản lý có thể tận dụng nó. Theo tài liệu:

Ứng dụng và dịch vụ không có quyền truy cập thông tin đăng nhập được liên kết với các ứng dụng hoặc dịch vụ khác.

Xem How to store user credentials trên MSDN.

Pre-Windows 8, Data Protection API (DPAPI) tương đương gần nhất với móc khóa. Dữ liệu tùy ý có thể được mã hóa bằng cách sử dụng API này, mặc dù việc lưu trữ dữ liệu được mã hóa là tùy thuộc vào nhà phát triển. Dữ liệu cuối cùng được mã hóa bằng mật khẩu của người dùng hiện tại, tuy nhiên người dùng hoặc nhà phát triển được cung cấp "entropy tùy chọn" có thể được bao gồm để bảo vệ thêm dữ liệu từ phần mềm hoặc người dùng khác. Dữ liệu cũng có thể được giải mã trên các máy tính khác nhau trong một miền.

DPAPI có thể được truy cập thông qua các cuộc gọi có nguồn gốc từ Crypt32.dll của CryptProtectDataCryptUnprotectData chức năng hoặc thông qua lớp ProtectedData .NET Framework, mà là một wrapper tính năng hạn chế cho các chức năng cũ.

Thông tin khác hơn bao giờ bạn cần biết về DPAPI có sẵn trong bài viết DPAPI Secrets. Security analysis and data recovery in DPAPI của Passcape.

-9

Nhìn vào Roboform (http://www.roboform.com/). Tôi sử dụng tất cả các thời gian. Ngoài ra còn có một chương trình miễn phí tại SourceForge.net.Đây là một trên CNET (http://download.cnet.com/Password-Keychain/3000-2381_4-10072470.html). Chỉ một vài trong số (có thể) hàng trăm chương trình ngoài kia. :-)

+0

Điều này không thực sự trả lời câu hỏi - nó đang tìm kiếm các API có sẵn ở cấp hệ điều hành có thể được sử dụng bởi các ứng dụng, không phải ứng dụng của người dùng cuối như Roboform. – duskwuff

+0

@duskwuff: Tôi có thể hướng sự chú ý của bạn đến https://en.wikipedia.org/wiki/Keychain_%28software%29 và https://en.wikipedia.org/wiki/List_of_password_managers mà nói về những gì, chính xác, hệ điều hành Chương trình X Keychain và cách thức hoạt động của chương trình. Lưu ý rằng họ KHÔNG nói về một API ở bất kỳ đâu trên các trang đó. Chỉ về chương trình được gọi là OS X Keychain. –

+0

Keychain là dịch vụ cấp hệ điều hành được nhiều ứng dụng sử dụng chứ không phải ứng dụng. Bài viết Wikipedia không hoàn toàn rõ ràng về điều này, nhưng không có một chương trình nào có tên là "Keychain" hoặc "OS X Keychain". (Có "Tiện ích Keychain", nhưng, như tên cho thấy, nó chỉ đơn thuần là một tiện ích để quản lý cơ sở dữ liệu Keychain cơ bản, không phải là một đại diện cho toàn bộ dịch vụ.) – duskwuff

Các vấn đề liên quan