[pyar] Auth entre servidor / cliente usando https y evitar robo de info en el medio ...

Andrés Gattinoni andresgattinoni en gmail.com
Lun Ene 17 11:46:27 ART 2011


2011/1/17 Emiliano Dalla Verde Marcozzi <edvm en airtrack.com.ar>

> 2011/1/17 Daniel Moisset <dmoisset en machinalis.com>
>
> https esta bastante bien hecho, y no se te pueden meter transparentemente
>> al medio si haces las cosas bien. Es decir, armar un certificado de una CA,
>> firmar con ese el certificado que usas en el server, y poner la clave
>> publica de la CA en los clientes. Si no sabes quienes vas a ser los
>> clientes, podes pedir una firma de una CA conocida, pero te la van a cobrar.
>>
> Antes que nada, gracias por tu respuesta Daniel ... estoy leyendo sobre el
> protocolo https y voy a ver como es este maneje de que los clientes utilicen
> la cllave publica ...
>
>
>> Si no, estas reinventando la rueda de oido, cosa que en seguridad suele
>> ser mala idea :)
>>
>> En particular, el esquema que propones es la misma idea que SSL, y lo
>> estas haciendo sin firmas o sea que estas expuesto a exactamente el mismo
>> tipo de ataque de man in the middle que estabas queriendo evitar
>> inicialmente.
>>
> Aca entro en duda ... si estoy encriptando la info con openpgp, por mas que
> logren realizar un MITM, no podrian acceder a la data, correcto ? Por otro
> lado, cifrando con https como me aclaras arriba, y ademas encriptando la
> data que va por este canal seguro, es absurdo ? yo lo veo como un doble
> chaleco antibalas :P ...
>
> Es que si te hacen MITM pueden ver lo que vos trafiques por HTTPS,
incluyendo los certificados para openpgp, con lo cual también podrían
descifrar esa data.

SSL justamente evita (o intenta evitar) el MITM con las CA (Certificate
Authorities) [0]. Cuando vos entrás a un sitio por HTTPS te bajás un
certificado que puede o no estar firmado por una CA. Si no está firmado por
una CA (puede ser self-signed), cualquier browser moderno te avisa (y en
todo caso cualquier app puede verificarlo facilmente).

¿De qué sirve esto? Si yo trato de hacer un MITM no voy a tener la clave
privada (firmada por una CA) del servidor, solamente voy a ver la pública
para hablar con él. Entonces al cliente le voy a tener que re-enviar la
información encriptada con otro certificado (mío) que no va a estar firmado
por una CA. Entonces cuando el tipo se quiera comunicar con el sitio
objetivo de mi ataque, el browser se va a descargar mi certificado (no el
del servidor), y como el mío no va a estar firmado por una CA (porque no voy
a pagar ni registrar mis datos personales para hacer un ataque... e incluso
si lo hiciera, no podría hacerlo a nombre del sitio que quiero atacar), al
tipo le va a saltar un aviso del browser de que el sitio puede ser
peligroso.

[0] http://en.wikipedia.org/wiki/Certificate_authority
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20110117/40f29c86/attachment.html>


More information about the pyar mailing list