SSL / TLS Ciphersuites [chiuso]

1

Esiste un ampio elenco di ciphersuites all'interno di SSL / TLS. Sembra che queste ciphersuites possano essere categorizzate in termini del loro meccanismo sottostante con le seguenti categorie:

  1. Scambio chiavi RSA (ad esempio TLS-RSA-WITH-AES-128-CBC-SHA256 )
  2. RSA con scambio chiave Ephermal Diffie Hellman (DHE-RSA) (ad esempio TLS-DHE-RSA-WITH-AES-128-CCM )
  3. RSA con scambio di chiavi ellittico Ephermal Diffie Hellman (ECDHE-RSA) (ad esempio TLS-ECDHE-RSA-WITH-3DES-EDE-CBC-SHA )
  4. RSA con scambio chiave ellittica Curva Diffie Hellman (ECDH-RSA) (ad esempio TLS-ECDH-RSA-WITH-CAMELLIA-128-CBC-SHA256 )
  5. ECDSA con curva ellittica Ephermal Diffie Hellman (ECDHE-ECDSA) Scambio chiave (ad esempio TLS-ECDHE-ECDSA-WITH-NULL-SHA )
  6. Scambio di chiavi con chiave condivisa (PSK) (ad esempio TLS-PSK-WITH-RC4-128-SHA )
  7. Chiave pre-condivisa con scambio chiave Diffie Hellman (DHE-PSK) ( TLS-DHE-PSK-WITH-AES-256-CBC-SHA384 )
  8. Pre chiave condivisa con la chiave ellittica Ephermal Diffie Hellman (ECDHE-PSK) Scambio chiave (ad esempio TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384 )
  9. Pre chiave condivisa con scambio di chiavi RSA (RSA-PSK) (ad esempio TLS-RSA-PSK-WITH-AES-128-CBC-SHA256 )

Sto cercando una risposta che fornisca un breve riassunto della categoria, che tipo di chiavi pubbliche / private siano utilizzate per lo scambio di chiavi e le firme e dove "trovare" queste chiavi (ad esempio all'interno del certificato del server), che tipo di cifratura viene utilizzato per riservatezza e infine come i dati vengono autenticati. Sarebbe bello se la risposta potesse usare l'esempio di ciphersuite fornito per quella categoria.

    
posta TrinityTonic 22.06.2017 - 13:31
fonte

2 risposte

2

Non ho intenzione di rispondere a tutte le tue domande, specialmente le immersioni nel x509 formato sono probabilmente esaurite qui lo scopo di una risposta, ma esaminiamo gli esempi ciphersuite che hai fornito e interpretato:

TLS-RSA-CON-AES-128-CBC-SHA256

Questo utilizza RSA per lo scambio di chiavi. In altre parole, il client preleva una chiave, la crittografa con la chiave pubblica del server e la invia. Il carico utile effettivo viene crittografato utilizzando AES-128 in modalità CBC e autenticato tramite HMAC-SHA256.

TLS-ECDHE-RSA-CON-3DES-EDE-CBC-SHA

Questo utilizza le chiavi effimere da un accordo di chiave DH della curva ellittica. L'host è autenticato utilizzando una firma RSA. Il carico utile viene crittografato utilizzando 3DES (EDE = encrypt-decrypt-encrypt) in modalità CBC e HMAC-SHA1 per l'autenticazione.

Questa è la lista di ciphersuites con le loro specifiche .

Tutte le suite che menzioni utilizzano RSA o PSK per l'autenticazione. Quindi l'unica chiave che troverai in un certificato è la chiave RSA. Un PSK non può avere un certificato poiché è una chiave simmetrica e ottenerlo certificato significherebbe dare via e mettere la chiave segreta in pubblico certificato. Quindi l'unica chiave che devi cercare nei certificati è una chiave RSA.

Gli accordi DH creano nuove chiavi e non si trovano anche nei certificati.

Modifica: non tentare di analizzare x509 da soli. È notoriamente difficile e ha portato a molti errori sfruttabili in passato.

    
risposta data 22.06.2017 - 13:47
fonte
2

Non penso che le categorie proposte siano il modo migliore per classificare i cifrari. Una classificazione più appropriata consiste nell'usare le diverse parti del codice in modo indipendente e quindi derivare da ciò le caratteristiche di un codice specifico. Queste parti del codice sono il tipo di autenticazione del server (RSA, ECDSA, ...), il tipo di scambio di chiavi (RSA, DH, PSK, ...) e il tipo di cifrario simmetrico e Mac utilizzato per la crittografia con chiave dallo scambio di chiavi.

Non ci sono codici definiti per ogni combinazione di queste diverse parti di cifratura, ma per molti. openssl ciphers -V mostra di quali parti sono costituite le cifre implementate, ad esempio:

 0xC0,0x30 - ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH Au=RSA  Enc=AESGCM(256) Mac=AEAD
 0x00,0x35 - AES256-SHA                    SSLv3 Kx=RSA  Au=RSA  Enc=AES(256)    Mac=SHA1

I'm looking for an answer that gives a short summary of the category, ...

Considerati i molti valori possibili per ciascun tipo e tutte le combinazioni questo sarebbe troppo ampio e quindi non risponderò a questa parte. Ma i diversi tipi sono facilmente visibili dall'output di openssl -V ciphers e se hai bisogno di tipi di dettagli, ti preghiamo di richiederli in una domanda diversa.

Ma per i casi più comuni:

  • L'autenticazione del server (Au) si basa di solito sui certificati, che contengono principalmente chiavi pubbliche RSA o ECDSA.
  • Lo scambio di chiavi (Kx) è in genere ECDH o DH o RSA.
  • Encryption (Enc) è fatto con una varietà di algoritmi come AES-128, AES-256, RC4, 3DES ecc.
  • Mac (Mac) è in genere AEAD, SHA-1, SHA-256 o simile o addirittura MD5.
risposta data 22.06.2017 - 14:24
fonte

Leggi altre domande sui tag