O equivalente do Porta-Chaves do OS X?
Existe um equivalente do chaveiro OS X, usado para armazenar senhas de utilizador, no Windows? Eu iria usá-lo para salvar a senha do Usuário para um serviço web que o meu software (desktop) usa.
das respostas a esta pergunta relacionada (proteger as senhas do utilizador em aplicações de ambiente de trabalho (Rev 2) ) e a multidão de ferramentas de armazenamento de senhas de terceiros disponíveis, assumo que tal coisa não existe-- estou preso a pedir a senha de cada vez que eu aceder ao serviço web, ou apenas armazená-lo ofuscado?
4 answers
O equivalente "tradicional" do Windows seria o subsistema de armazenamento protegido, usado por IE (pre IE 7), Outlook Express, e alguns outros programas. Acredito que está encriptado com a sua senha de login, o que evita alguns ataques offline, mas assim que estiver ligado, qualquer programa que queira lê-lo. (See, for example, Nirsoft's Protected Storage PassView.)
O Windows também fornece a CryptoAPI e a API de protecção de dados que podem ajudar. Mais uma vez, acho que não. que o Windows Faz qualquer coisa para impedir que os processos que correm sob a mesma conta vejam as senhas um do outro.
Parece o livro. mecânica da identificação e autenticação do utilizador fornece mais detalhes sobre todos estes.Eclipse (via o seu seguro armazenamento recurso) implementa algo assim, se você estiver interessado em ver como outro software faz isso.
Na verdade, olhando através do MSDN, as funções que recomendam usar (em vez de armazenamento protegido) são:
CryptProtectData e Cryptuntrotectdata
A ligação para CryptProtectData está em:
Http://msdn.microsoft.com/en-us/library/aa380261 (V = VS.85).aspx
O Windows 8 tem a noção de um chaveiro chamado Cofre de senhas. Aplicativos de Runtime do Windows (Moderno / Metro), bem como aplicativos de desktop gerenciados podem fazer uso dele. De acordo com a documentação:
Os aplicativos e serviços não têm acesso a credenciais associadas a outros aplicativos ou serviços.
Ver Como conservar as credenciais do utilizador {[[9]} em MSDN.
Pré-Windows 8, a API de protecção de Dados (DPAPI) é o equivalente mais próximo a um chaveiro. Dados arbitrários podem ser criptografado usando esta API, embora armazenar os dados criptografados é até o desenvolvedor. Os dados são finalmente criptografados usando a senha do usuário atual, no entanto o usuário ou desenvolvedor fornecido "entropia opcional" pode ser incluído para proteger os dados de outros softwares ou usuários. Os dados também podem ser decifrados em diferentes computadores em um domínio.
O DPAPI pode ser acedido através de chamadas nativas para Crypt32.funções de Crypt Superprotectdata e Cryptuntrotectdata or through. NET Framework ProtectedData class, which is a limited feature wrapper for the former functions.
Mais informação do que alguma vez precisaste de saber sobre o DPAPI está disponível no artigo do Passcape sobre os segredos do DPAPI. Análise de segurança e recuperação de dados em DPAPI .