2008-09-29 19 views
19

Estoy experimentando con OpenSSL en mi aplicación de red y quiero probar si los datos enviados están encriptados y no pueden ser vistos por eavesdropper.¿Cómo probarías una conexión SSL?

¿Qué herramientas puedes usar para verificar? ¿Podría hacerse esto programáticamente para que pueda ser colocado en una prueba unitaria?

Respuesta

7

la salida de tiburón alambre http://www.wireshark.org/

y TCP volcado http://en.wikipedia.org/wiki/Tcpdump

No estoy seguro sobre la integración de éstos en las pruebas unitarias. Le permitirán ver a un nivel muy bajo lo que sucede a nivel de red.

Tal vez para la prueba de la unidad a determinar lo que la corriente se ve como sin cifrar y asegúrese de que el flujo encriptado no es similar

+2

Para probar si está cifrada la corriente, calcular la distribución de los valores de bytes. Una secuencia correctamente encriptada tendrá una distribución uniforme, ya que se ve como un ruido aleatorio, mientras que una transmisión no encriptada no lo hará. Esto funciona sorprendentemente bien con un stddev de> = 3 en mi experiencia. – freespace

+0

idea interesante debe probarlo en algún momento –

0

Para un rápido chequeo puede utilizar Wireshark (anteriormente conocido como Ethereal) para ver si se transmite sus datos en texto plano o no.

1

Sí - Wire Shark (http://www.wireshark.org/) es bastante genial (filtros, informes, estadísticas).

En cuanto a las pruebas que podría hacerlo como parte de las pruebas de integración (hay algunas opciones de línea de comandos en el wireshark)

16

openssl has an s_client, que es un cliente genérico rápida y sucia que se puede utilizar para probar la conexión con el servidor . Mostrará el certificado del servidor y el esquema de cifrado negociado.

7

Encontré this guide muy útil. Estas son algunas de las herramientas que utilizó:

$ openssl s_client -connect mail.prefetch.net:443 -state -nbio 2>&1 | grep "^SSL"

$ ssldump -a -A -H -i en0

$ ssldump -a -A -H -k rsa.key -i en0

$ ssldump -a -A -H -k rsa.key -i en0 host fred and port 443

Cuestiones relacionadas