Como definir uma frase secreta para uma chave privada do AWS X.509?

2

Eu estava rotando meu certificado AWS X.509 e a chave privada (não confunda com o par de chaves privadas / públicas do ssh) hoje e decidi que queria definir uma frase-senha na minha chave privada para protegê-la melhor. Então fiz um pouco de pesquisa e corri:

openssl rsa -in awsprivatekey.pem -des3 -out awsprivatekey.pem.new

e digitou uma frase secreta para a chave privada. Depois que tentei usar as ferramentas ec2 api, recebi um erro:

java.io.IOException: DER length more than 4 bytes

Isso ficou óbvio quando pesquisei o tópico e descobri este link as ferramentas ec2 api não suportam chave privada com uma senha

Estou preocupado com a falta de informações sobre isso e com o status quo de ter chaves privadas não protegidas com algo tão crucial quanto o Amazon EC2.

Alguma sugestão sobre como proteger melhor minha chave privada?

    
por Hilton D 01.07.2011 / 14:00

2 respostas

3

Eu tenho feito a mesma diligência e também estou preocupado com o fato de que todas as ferramentas e documentação do cliente parecem promover boas práticas de segurança ruins. Eu respondo à pergunta "você realmente quer reentrar uma frase secreta para cada comando que você digita?" - sim, ou pelo menos estou feliz por ter uma ferramenta como o ssh-agent para mim. Eu não quero nunca encontrar nenhuma das minhas chaves privadas ou frases secretas sentadas em texto plano no meu sistema de arquivos. Estou surpreso que a resposta padrão é apenas "criptografar todo o seu sistema de arquivos".

Mesmo se eu montar e criptografar apenas um diretório .ec2 e armazenar tudo lá, ainda preciso ter cuidado para não seguir a documentação que sugere configurar minha chave secreta como uma variável de ambiente no meu script bash_profile. Então, talvez eu apenas coloquei em um script no meu diretório .ec2 e passei na linha de comando - oh wait, agora minha senha está no meu histórico (eu ainda não consigo acreditar que o os x não é bom o suficiente para pule o armazenamento de linhas que prefixo um espaço). Então, realmente preciso criptografar todo o meu diretório de usuários apenas para estar seguro. E por que exatamente é que o processo assimétrico de usar x.509 certs está sendo substituído e substituído pelo processo de autenticação de "chave secreta"? Pelo menos, o primeiro permite-me armazenar a chave privada em um arquivo - o segundo requer que eu o transmita como um argumento (cujo valor fica estampado em toda a minha história e scripts).

O problema é que existem todos esses ótimos protocolos de segurança, mas ninguém quer gastar tempo para entendê-los. Em vez disso, eles só querem que as coisas funcionem - como resultado, eles seguem cegamente algumas documentações passo a passo que foram escritas por alguém que seguiu cegamente a documentação passo a passo de outra pessoa. Ninguém questiona nada disso porque eles não entendem e querem apenas que funcione. O resultado é a proliferação de práticas de segurança realmente ruins.

    
por 19.11.2012 / 22:10
1

Mantenha-os no disco criptografado TrueCrypt. Eles serão armazenados em segurança enquanto você não precisar deles, e você os montará somente quando realmente precisar usá-los. O TrueCrypt cria um arquivo, que é montado como disco virtual.

Editar: Se você precisar protegê-lo em um código que não seja interativo, você pode obviamente criptografar a chave privada e descriptografá-la no código do aplicativo. Existem muitas amostras como descriptografar arquivo com Java .

    
por 01.07.2011 / 14:47