Perché il mio handshake TLS v1.2 richiede 2 connessioni tcp / ip?

3

Tutto, ho un client HP VuGen che utilizza 2 connessioni TCP / IP per eseguire l'handshake TLS v1.2 con il mio server quando è abilitata l'autenticazione reciproca.

Secondo Wireshark, la sequenza è approssimativamente questa:

  1. Client SYN
  2. TLS v1.2 client ciao
  3. Il server invia il server ciao, certificato, scambio di chiavi del server, richiesta di certificato, server ciao fatto
  4. Client FIN è la vecchia connessione
  5. Client SYN è una nuova connessione
  6. Errore handshake del server sulla vecchia connessione (pacchetto esaurito)
  7. TLS v1.2 client ciao
  8. Ciao server, certificato, scambio chiavi del server, richiesta di certificato, server ciao fatto
  9. (tutto è ok dopo questo)

Né Openssl né un client java standalone presentano questo stesso comportamento. Quando il server chiede il certificato client per la prima volta, lo invia.

Con VuGen, non riesco a vedere nulla di diverso sul messaggio ciao dei due client, né sulle risposte del server. Ci sono sicuramente due connessioni, però, perché ci sono 2 FIN del client utilizzando 2 diverse porte in uscita.

Perché il client dovrebbe fare questo?

FWIW, non importa se eseguo il bilanciamento del carico o meno. Ho lo stesso comportamento.

Credo che questo abbia qualcosa a che fare con il server che richiede il certificato del client perché lo stesso server ha un'altra porta non MA aperta che è altrimenti configurata allo stesso modo e il client VuGen fa una sola connessione lì.

Grazie

    
posta John Gregg 02.02.2016 - 18:32
fonte

1 risposta

3

Per quanto comprendo l'obiettivo di LoadRunner (ovvero il software di cui VuGen fa parte) è quello di simulare un vero client come un browser. Se un browser si connette prima a un sito Web che richiede un certificato client, il browser deve interagire con l'utente per scoprire quale certificato deve essere utilizzato e ottenere la password per la chiave privata. In questo caso il browser non interromperà l'handshake, ma chiuderà la connessione, chiederà all'utente e ristabilirà una nuova connessione. La mia ipotesi è che LoadRunner cerchi di simulare esattamente questo comportamento.

    
risposta data 02.02.2016 - 18:49
fonte

Leggi altre domande sui tag