Como faço para armazenar o par de chaves RSA no Windows?

2

Estou tentando escrever um programa simples de criptografia-descriptografia usando o Openssl-RSA. Quando um dado é criptografado, um par de chaves é gerado. Se eu quiser descriptografar os dados, preciso do par de chaves exato que foi gerado durante a criptografia.

Então, onde e como posso armazenar esse par de chaves para que eu possa descriptografar o conteúdo criptografado sempre que possível?

Estou usando a chave pública para criptografia e a chave privada para descriptografia.

    
por Wasim Thabraze 09.12.2015 / 05:20

1 resposta

1

Você pode armazenar tecnicamente o par de chaves onde quiser, embora haja algumas maneiras comuns de fazer isso.

Se os dados forem particularmente sensíveis e não forem necessários regularmente / constantemente, o método mais seguro de armazenar sua chave privada será em uma unidade flash ou impresso em um pedaço de papel em um cofre ou um cofre de banco. (Note que você pode armazenar a chave pública onde quiser - afinal, é uma informação "pública".

Se você precisar que os dados estejam facilmente acessíveis, geralmente não é prático armazenar a chave privada off-line em um cofre ou cofre, devido ao incômodo de recuperá-la sempre. Um local comum que é frequentemente usado para armazenamento de chaves é uma pasta chamada .ssh dentro do seu diretório pessoal. (Esse é o padrão no OpenSSL no Linux e é frequentemente usado em outros sistemas também.) A prática comum é armazenar a chave como dois arquivos com nomes que os descrevem da seguinte maneira: purpose_type para a chave privada e purpose_type.pub para a chave pública. Por exemplo, se você usar a linha de comando OpenSSL para criar uma chave RSA que identifique você , ela será armazenada por padrão nos arquivos id_rsa e id_rsa.pub no diretório .ssh . No seu caso, você poderia nomear os arquivos de chave como mydatastorage_rsa e mydatastorage_rsa.pub .

IMPORTANTE : Se você armazenar uma chave privada dessa maneira, é altamente recomendável protegê-la com uma frase secreta. Isso impede que qualquer pessoa que acesse seus arquivos possa usar sua chave privada. Você pode ter sido solicitado a fornecer uma frase secreta importante quando criou o par de chaves; se não, você pode adicionar uma frase secreta à chave privada usando as ferramentas de linha de comando OpenSSL.

Se você estiver fazendo muito trabalho de criptografia sensível, poderá comprar um armazenamento de chaves de hardware, chamado de "Hardware Security Module", abreviado como "HSM", que é projetado para armazenamento seguro de chaves privadas. A menos que você esteja realmente trabalhando na indústria de segurança / criptografia, isso é quase definitivamente um exagero. Há também outras soluções de hardware, incluindo "cartões inteligentes" e "USB Crypto Tokens", que são mais baratas que um HSM completo, mas ainda exigem algum investimento em hardware que provavelmente é mais do que você precisa.

Apesar da recomendação de proteger uma chave privada com uma senha, você pode encontrar problemas se precisar fazer essa descriptografia dentro de um serviço, como um servidor da web. Nesse caso, você tem três opções:

  1. Forneça a senha toda vez que o aplicativo do servidor for iniciado.
  2. Forneça a frase secreta em um arquivo de configuração. (Suportado apenas por alguns servidores)
  3. Remova a frase secreta (ou não defina uma em primeiro lugar).

Enquanto o primeiro é mais seguro, ele só pode ser usado se você iniciar o serviço manualmente toda vez. Se você precisar fazer uma das outras opções, certifique-se de proteger corretamente o arquivo de configuração (opção 2) ou a chave privada (opção 3) para impedir o acesso a ele.

    
por 15.12.2015 / 05:12