Consiglio di comunicazione del server client protetto

0

Spero di ottenere una migliore comprensione di SSL / TLS configurando due dispositivi, eseguendo due diverse applicazioni, consentendo alle comunicazioni di andare oltre SSL / TLS.

Con OpenSSL ho creato un certificato e chiave che ho installato su entrambi, il server e il client. Dal lato del cliente, posso anche scegliere tra tre pacchetti di crittografia (sul server non ho questa opzione tra cui scegliere).

  • TLS_RSA_WITH_NULL_SHA
  • TLS_RSA_WITH_3DES_EDE_CBC_SHA
  • TLS_RSA_WITH_AES_128_CBC_SHA

Uso Wireshark per vedere cosa succede durante la comunicazione che fallisce sempre, indipendentemente da ciò che seleziono da sopra. Vedo una comunicazione TCP normale: SYN, SYN ACK, ACK e quindi FIN dal client. È molto ovvio, sto facendo qualcosa di sbagliato, ma sinceramente non ho idea di cosa fare. Sembra che non arrivi nemmeno al punto di usare il protocollo SSL.

Qualcuno può per favore chiarire le cose per me, cosa sto facendo male e consegnarmi una possibile soluzione? Ciò richiede più capacità di sicurezza professionale. Grazie in anticipo ! John

P.S .: Voglio utilizzare i certificati autofirmati poiché è usato solo per i test.

    
posta John 28.10.2013 - 21:06
fonte

1 risposta

1

Se vedi solo i pacchetti ACK, SYN + ACK, ACK e FIN, allora stai vedendo la shell di una connessione TCP, ma nessun dato. Se la FIN viene dal client, allora il client apparentemente decide che non ha nulla da dire. Quindi questo fa riferimento a un problema di configurazione sul client: quando il client deve iniziare la conversazione SSL / TLS (inviando il messaggio ClientHello ), si arrende. In ogni caso, a quel punto, il ruolo del server è aspettare il ClientHello , quindi la sua configurazione a livello SSL non è stata ancora esercitata.

Ora alcuni commenti generali:

  • In SSL / TLS, il server deve disporre di una coppia di chiavi privata / pubblica, la chiave pubblica viene racchiusa in un certificato . Il client può avere anche una coppia di chiavi privata / pubblica - ma non la stessa! L'intero punto della crittografia asimmetrica è di evitare di dover condividere elementi privati tra diverse entità. Infatti, dovresti cercare mai di lasciare che le chiavi private viaggino tra i sistemi: più un viaggio chiave diventa più esposto, quindi meno privato diventa.

  • Suite di crittografia seleziona il set di algoritmi crittografici che verranno utilizzati. Nelle tre suite che parli, RSA verrà utilizzato per lo scambio di chiavi iniziale (quindi la chiave pubblica del server dovrebbe essere di tipo RSA) e SHA-1 per la protezione dell'integrità. La crittografia simmetrica utilizzerà, rispettivamente, nulla, 3DES o AES. Se non sei sicuro, usa AES. Se stai pensando di utilizzare la crittografia "NULL", ripensaci.

  • Se vuoi usare SSL / TLS e, ancora di più, se vuoi eseguire il debug di alcuni problemi relativi a SSL e hai iniziato a lanciare Wireshark (questa è una buona cosa), allora dovrai capire come SSL lavori. Potresti fare peggio di leggere questa risposta per alcune spiegazioni al riguardo.

risposta data 28.10.2013 - 21:47
fonte

Leggi altre domande sui tag