Gerar um par SSH com AES-256-CBC

5

Ok, é fácil criar um par ssh com ssh-keygen , mas como eu gero com ssh-keygen a um par ssh que me permite usar AES-256-CBC?

O padrão é sempre AES-128-CBC, eu já tentei parâmetros diferentes, mas eles não funcionam como:

ssh-keygen -b 4096 -t rsa -Z aes-256-cbc

Mas eles não funcionaram, alguma ideia de como fazer isso?

    
por Neoon 22.10.2015 / 18:33

1 resposta

5

Você não gera a chave usada por aes quando você usa ssh-keygen . Como aes é um código simétrico , suas chaves não não vem em pares. Ambas as extremidades da comunicação usam a mesma chave.

A chave gerada pelo ssh-keygen usa criptografia de chave pública para autenticação. Do manual ssh-keygen :

 ssh-keygen generates, manages and converts authentication keys for
 ssh(1).  ssh-keygen can create RSA keys for use by SSH protocol version 1
 and DSA, ECDSA, Ed25519 or RSA keys for use by SSH protocol version 2.

Do manual ssh :

 Public key authentication works as follows: The scheme is based on
 public-key cryptography, using cryptosystems where encryption and
 decryption are done using separate keys, and it is unfeasible to derive
 the decryption key from the encryption key.  The idea is that each user
 creates a public/private key pair for authentication purposes.  The
 server knows the public key, and only the user knows the private key.
 ssh implements public key authentication protocol automatically, using
 one of the DSA, ECDSA, Ed25519 or RSA algorithms.

O problema com a criptografia de chave pública é que ela é bastante lenta. A criptografia de chave simétrica é muito mais rápida e é usada por ssh para a transferência de dados real. A chave usada para a criptografia simétrica é gerada rapidamente após a conexão ter sido estabelecida (citando o manual sshd ):

 For protocol 2, forward security is provided through a Diffie-Hellman key
 agreement.  This key agreement results in a shared session key.  The rest
 of the session is encrypted using a symmetric cipher, currently 128-bit
 AES, Blowfish, 3DES, CAST128, Arcfour, 192-bit AES, or 256-bit AES.  The
 client selects the encryption algorithm to use from those offered by the
 server.  Additionally, session integrity is provided through a
 cryptographic message authentication code (hmac-md5, hmac-sha1, umac-64,
 umac-128, hmac-ripemd160, hmac-sha2-256 or hmac-sha2-512).

Se você deseja usar aes256-cbc , você precisa especificá-lo na linha de comando usando a opção -c, em sua forma mais básica, seria assim:

$ ssh -c aes256-cbc user@host

Você também pode especificar sua seleção preferida de cifras em ssh_config , usando uma lista separada por vírgula. Mexer com os padrões, no entanto, não é recomendado, pois é melhor deixar isso para os especialistas. Há muitas considerações e anos de experiência na escolha dos padrões pelos desenvolvedores do OpenSSH.

    
por 22.10.2015 / 19:19