L'autenticazione del client TLS 1.2 è molto diversa da quella precedente di TLS

2

Da link wikipedia (impossibile pubblicare a causa di vincoli di stackexchange). " link " e anche da RFC link , Non vedo alcuna differenza importante nell'autenticazione del client tra TLS 1.2 e versione precedente. Tuttavia, allo stesso tempo, non esiste una dichiarazione specifica che dica che sono simili. Devo fare un controllo per capire questo prima di iniziare a lavorare con TLS 1.2. Mi chiedo se a causa delle altre modifiche (ad esempio modifiche come questa

-Ci è stata una pulizia sostanziale della capacità del client e del server di specificare quali algoritmi di hash e firma accetteranno.

- Aggiunta del supporto per la crittografia autenticata con modalità dati aggiuntive. "

potrebbe essere implicito che TLS 1.2 abbia differenze notevoli. Gli input sono ben accetti.

    
posta Ramana 26.03.2013 - 10:34
fonte

1 risposta

1

L'autenticazione client in TLS normalmente utilizza un certificato del client e il metodo con cui il client è autenticato non è sostanzialmente cambiato da SSL 3.0: durante l'iniziale handshake, il server richiede l'autenticazione del client (a CertificateRequest messaggio), e il client risponde inviando il suo certificato e quindi una firma calcolata con la sua chiave privata sulla concatenazione di tutti i precedenti messaggi di handshake (che include i due "valori casuali" inviati dal client e server, e anche le suite di crittografia negoziate, il certificato del server ...).

Tuttavia, ci sono dei dettagli. un algoritmo di firma utilizza una funzione di hash e il valore di hash viene quindi utilizzato con la chiave privata. Fino a TLS 1.1, il client utilizzava necessariamente la concatenazione di MD5 e SHA-1 come "funzione hash". Con TLS 1.2, client e server inviano reciprocamente l'elenco delle funzioni hash e dei tipi di firma supportati, in modo che il client possa scegliere una funzione di hash "appropriata" e anche un certificato appropriato nel caso in cui il client ne possieda diversi.

Il metodo pre-1.2 impiega un "riempimento speciale" con RSA: in PKCS # 1 , il valore hash viene prima memorizzato in una struttura che identifica la funzione hash (in pratica, un'intestazione fissa è collegata al valore hash), e quella struttura codificata viene quindi riempita con alcuni byte (la maggior parte di essi è uguale a 0xFF ) fino alla lunghezza della chiave. Nelle firme utilizzate da SSL 3.0 a TLS 1.1, il valore hash ha lunghezza 36 byte (16 byte per MD5, 20 byte per SHA-1) e non c'è intestazione : i 36 byte sono direttamente usato in "padding tipo 1". Con TLS 1.2, viene utilizzata una sola funzione di hash (negoziata tra client e server) e l'intestazione ritorna.

Pertanto, TLS 1.2 si allinea con lo standard PKCS # 1 e supporta molte funzioni di hash, che dovrebbero migliorare l'interoperabilità. Tuttavia, è concepibile che un token hardware specifico per la chiave privata del client (ad esempio una smart card) possa essere incompatibile con TLS 1.2 (se supporta solo il 36-byte-hash-con-no- modalità intestazione di precedenti SSL / TLS). In tal senso, TLS 1.2 potrebbe interrompere la compatibilità con i token distribuiti (questo è piuttosto improbabile, ma garantisce comunque alcuni test). Per le implementazioni software, questo non dovrebbe essere un problema.

    
risposta data 26.03.2013 - 12:31
fonte

Leggi altre domande sui tag