Chaves

Repositório de chaves

Configuração

A maior parte dos procedimentos a seguir depende do aplicativo keyringer, da Hydra Suite e de uma configuração do tipo

Proceda então com a configuração do ambiente de trabalho administrativo.

Inicializando um repositório

# Inicializando
keyringer $HYDRA init $FOLDER/conf/keyring

Gerando chaves https

Gerar chaves e certificados SSL auto-assinados é simples:

# Gerando chaves para https
keyringer $HYDRA genpair ssl-self ssl/$DOMAIN $DOMAIN

Caso você queira gerar apenas a chave e a requisição de certificação (CSR), use

keyringer $HYDRA genpair ssl ssl/$DOMAIN $DOMAIN

Para a chaves e requisições CaCert, use

keyringer $HYDRA genpair ssl-cacert ssl/$DOMAIN $DOMAIN

Gerando chaves para novos nodos

# Gerando chaves ssh e gpg para novos nodos
# A importacao das chaves gpg nos nodos deve ser feita manualmente
hydra $HYDRA newkeys

Submetendo mudanças

# Submetendo
keyringer $HYDRA git remote add origin giolite@admin.$DOMAIN:keyring.git
keyringer $HYDRA git push origin master

Importação de chaves GPG

Importando chaves nos seus respectivos nodos:

hydra $HYDRA import-key

Chaves SSH

Para gerar uma chave SSH pessoal, use um comando do tipo

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa     -C "seu@email"
ssh-keygen -t ed25519     -f ~/.ssh/id_ed25519 -C "seu@email"

Esse tipo de comando irá gerar uma chave privada em ~/.ssh/id_rsa e uma respectiva chave pública em ~/.ssh/id_rsa.pub. Se você já possui uma chave em ~/.ssh/id_rsa e quiser mantê-la, escolha outro nome para a nova chave, como por exemplo ~/.ssh/id_rsa_aplicacao.

Senhas

Exemplo de geração de senhas usando o pwgen:

pwgen -s -y 25

Atenção: muitos programas e configurações podem não funcionar por conta do uso de caracteres especiais nas senhas. Assim, recomenda-se evitar alguns caracteres especiais -- por exemplo delimitadores de campo -- quando for o caso e/ou testar a senha após a sua escolha.

Impressões digitais

Chaves SSL

Chaves SSL podem ter seu fingerprint determinado através usando o OpenSSL em linha de comando, com linhas do tipo

openssl x509 -noout -in /etc/ssl/certs/cert.crt -fingerprint
openssl x509 -noout -in /etc/ssl/certs/cert.crt -fingerprint -md5

Chaves públicas SSH

O seguinte comando retorna todas as fingerprints dos arquivos de chave pública ssh terminados em .pub no diretório /etc/ssh/:

hydractl ssh-finger

Para obter um fingerprint salvo no seu ~/.ssh/known_hosts pessoal, use

ssh-keygen -l -F  servidor.exemplo.org        -f ~/.ssh/known_hosts
ssh-keygen -l -F [servidor.exemplo.org]:porta -f ~/.ssh/known_hosts

Monkeysphere

O monkeysphere é um programa que permite a verificação de hosts SSH e usuários/as através da Teia de Confiabilidade do OpenPGP. Com ele, o gerenciamento de fingerprints fica mais fácil e evita que páginas como esta centralizem informações que possam se desatualizar.

Além dos usos já documentados, o monkeysphere pode ser utilizado também para autenticação em sistemas que não possuem tal suporte:

monkeysphere gen-subkey -l 4096                      # caso voce ainda nao tenha uma chave
mkdir -m 700 ~/.monkeysphere
echo "SEU-ID" >> ~/.monkeysphere/authorized_user_ids # exemplo: "Seu Nome <seu-email@example.org>"
touch ~/.ssh/id_rsa_monkeysphere.pub
chmod 600 ~/.ssh/id_rsa_monkeysphere.pub
MONKEYSPHERE_AUTHORIZED_KEYS=$HOME/.ssh/id_rsa_monkeysphere.pub monkeysphere update-authorized_keys

Agora, basta fornecer a chave localizada em ~/.ssh/id_rsa_monkeysphere.pub para autenticação :)

Hashes

Hashes são úteis para o armazenamento de senhas de usuário. São usados por exemplo no shadow(5). Para gerar um hash compatível com o shadow (por exemplo para gestão via puppet-user), utilize o seguinte comando disponível no pacote whois do Debian:

mkpasswd -m sha-512

Hashes para htpasswd são descritos aqui.

Exportação de assinaturas locais

gpg --armor --export-options export-local-sigs --export KEYID

Forçando entrada de senhas via console no GnuPG

DISPLAY="" gpg <opcoes>

Mudando senhas de chaves

ssh-keygen -p -f ~/.ssh/id_rsa
gpg --edit-key <ID> edit-key passwd

Chave OpenPGP de Coletivo

Vide Chave OpenPGP de Coletivo.

Referências