Come forzare un handshake SSL Client completo e ignorare l'handshake SSL del client abbreviato? È insicuro?

0

Comprendo il flusso di handshake SSL , ma sto affrontando un problema logico con un handshake SSL abbreviato.

Caso di utilizzo : L'utente è autenticato sul sistema per vie comuni, come le password. Ma per alcune azioni all'utente può essere richiesto di presentare un certificato digitale per confermare la tua identità. Questo ha implicazioni legali per alcuni paesi come il Brasile (rif. link ), utilizzare il certificato digitale è necessario per confermare che questo persona (o azienda) è in effetti la persona che detiene tale numero di identità nazionale.

Dopo aver selezionato il certificato client utilizzando l'handshake SSL è necessario convalidarlo con l'applicazione per sapere che è affidabile e corrisponde a qualsiasi utente del sistema usando qualcosa come il numero di identificazione nazionale, che potrebbe essere su Nome comune o altro campo Certificato (ad esempio < a href="https://pt.wikipedia.org/wiki/E-CPF"> link per esempio brasiliano).

Ma, se qualche motivo, l'utente seleziona un certificato errato. È un certificato valido ma, non corrisponde all'utente, viene inviato un messaggio di errore, ma devo consentire un altro processo di selezione del certificato (handshake ssl) per questo utente. Alcuni utenti potrebbero avere più di un certificato sul PC.

Inquestoscenario,perselezionareunaltrocertificato,l'utentedevechiudereilbrowsereaprirlodinuovo,maoffreun'esperienzautentenegativaevogliomigliorarlo.

Lasoluzioneèmoltochiara,hobisognodieseguireunhandshakecompletoperognirichiesta,quindiconsenteall'utentediselezionarneun'altra.

Macomefarlo?

Ladomandapiùpertinentechehotrovatoèstata Evitare l'handshake SSL per ogni chiamata È esattamente l'opposto di quello che voglio fare.

Queste due definizioni sono fondamentali per la comprensione generale:

  • The full handshake is what a client and server do when they don't know each other (they have not talked previously, or that was long ago). In the full handshake, certificates are sent, and asymmetric cryptography (RSA, Diffie-Hellman...) occurs.
  • The abbreviated handshake is what a client and server remember each other; moreaccurately, they remember the algorithms and keys that they established in a previous full handshake, and agree to reuse them (technically, they reuse the "master secret" and derive from it fresh encryption keys for this connection).

Ho postato sul mio forum ufficiale del web server ( link ) ma i loro la mia domanda come non valida ** che dice che è un problema lato client. Ma è così? ** Posso liberare qualsiasi informazione dal browser, chiudere la scheda e disabilitare keep alive, ma una seconda stretta di mano non apre il prompt del certificato finché non chiudo il browser.

La mia immagine qui sotto utilizza Chrome, ad esempio, e non ha un'opzione "ricorda la mia decisione", ha Firefox. Lo stesso accade con Edge, Opera, Edge, ecc. ** È uno standard? **

Suppongo che possa essere controllato dal lato server, richiedendo un nuovo Handshake SSL completo. Ho fatto alcuni interventi per provare a risolverlo da solo, ma non ho avuto successo

  • sul lato client:

    • Cancella tutti i dati, anche la cronologia.
    • Apri in un altro sottodominio senza cucine
  • sul lato server:

    • Invia "Connessione: chiudi" intestazione
    • Disattiva keep-alive

Il browser è l'unico efficace per un nuovo Handshake SSL, ma promuoverà un'esperienza utente negativa.

Dovrebbe avere un modo per rinegoziare questa autenticazione.

    
posta LeonanCarvalho 13.04.2017 - 20:28
fonte

0 risposte