Il miglior strumento per testare una connessione SSL nella mia applicazione [chiuso]

8

Ho sviluppato un'applicazione che invia dati binari tra un client .NET e un server Java tramite TCP.

Recentemente ho implementato SSL per questa connessione e vorrei un modo per dimostrare che è effettivamente sicuro per il mio progetto universitario.

Quali strumenti consiglieresti? Ho già usato Cain e Abel, ma non penso che sia davvero adatto a questo?

Grazie.

    
posta jim 28.02.2012 - 21:51
fonte

3 risposte

8

Openssl viene fornito con uno strumento chiamato " s_client " che può essere utilizzato per testare i server SSL. Questo è disponibile per * nix, cygwin e Win32.

Utilizzo del campione

$ openssl s_client -connect servername:port -CAfile /path/to/ca.pem -debug -showcerts

Ci sono una miriade di opzioni come -pause, -state, ecc. che potresti trovare utile per tracciare il protocollo SSL attraverso la sua configurazione e cancellazione.

Sicurezza

Nella tua domanda iniziale, ti sei chiesto se la tua implementazione fosse sicura. Per sicurezza, intendi che lo streaming è crittografato o che hai implementato correttamente tutti gli aspetti della RFC? Se intendi il primo, usa Wireshark come D.W. ha sottolineato.

Se intendi il secondo, consulta la pagina di test SSL OWASP . Ci sono delle cose fantastiche lì, ma non è affatto esauriente. Questi test sono orientati per HTTPS, ma dovrebbero funzionare per qualsiasi implementazione SSL dal momento che sta analizzando il protocollo SSL, non il protocollo a livello di applicazione in cima.

    
risposta data 28.02.2012 - 23:17
fonte
4

Ecco un semplice test che è possibile iniziare: raccogliere il traffico utilizzando Wireshark e verificare che il contenuto dei pacchetti assomigli a un rumore casuale (byte casuali). Questo dovrebbe essere sufficiente per verificare di aver attivato SSL.

Se stai cercando di verificare se il tuo codice SSL funziona correttamente, puoi anche verificare se è possibile interagire con altre implementazioni SSL.

Per quanto riguarda la sicurezza, beh, è un po 'più ampio. Ecco alcuni dei più grandi. Hai usato una libreria SSL ben controllata? (Implementarlo da solo non è una buona idea, è troppo costoso per verificare che non si siano commessi errori). Lo hai seminato con un'adeguata fonte di entropia? (Le buone librerie SSL lo faranno automaticamente per te.) Hai hardcode la chiave pubblica del server correttamente, o controlla correttamente il certificato del server per assicurarti che corrisponda al tuo server e non a qualche impostore? Hai abilitato l'autenticazione del client? Hai impostato l'elenco di cipheresi accettabili in modo ragionevole? Hai usato TLS 1.2? Sei a conoscenza del fatto che TLS protegge solo il canale di comunicazione, ma devi comunque assicurarti che gli endpoint siano sicuri, ad esempio, da vari attacchi dannosi?

Potresti iniziare.

    
risposta data 28.02.2012 - 22:13
fonte
1

Uso socat e (occasionalmente) stunnel.

    
risposta data 05.03.2012 - 21:45
fonte

Leggi altre domande sui tag