[pyar] Semi O.T. - Firmar texto con GnuPG para guardar en la DB con Python

Julian Agustin Cardonnet jcardonnet en gmail.com
Lun Abr 22 10:45:10 ART 2013


Si, funcionalmente hablando me parece mejor "hacer todo junto", ya sea todo
dentro del browser (via una extension de Chrome/FF) o todo en una
aplicacion de escritorio aparte. Si tuvieras por un lado una webapp y por
otro una app de escritorio que genera la firma, tendrias que hacer mas o
menos todo esto:

1 - Copiar la cadena de la pagina web a la desktop app
2-  Generar la firma
3-  Pegar la firma en el browser
4- Mandar la cadena y la firma a tu servidor

En los pasos 1 y 3 es donde podes tener problemas (diferentes encodings
entre el browser y tu aplicacion, cosas raras con caracteres invisibles, el
usuario no copia EXACTAMENTE lo que deberia, y mil cosas por el estilo...).
Ni hablar ademas de que es un garron para el usuario tener que hacer todo
ese malabar.

Con el tema de la seguridad no te puedo aconsejar gran cosa porque soy
principiante en el asunto, asi que solo te tiro unos tips:
- Nunca jamas mandar la clave privada por la red (y ni hablar de guardarla
en el servidor).
- El almacenamiento de la clave es un tema delicado (particularmente con
cifrado de clave publica) asi que colgate de algo que ya lo tenga resuelto,
por ej la extension de Chrome WebPG se integra con GnuPG para gestionar las
claves.

Por ultimo, no se que tan seguro tiene que ser tu sistema pero si hay algo
interesante en juego (guita, informacion, etc) te recomiendo que consigan
un experto en desarrollo seguro (y auditar la infraestructura tambien)
porque cualquier detalle que pasen por alto les puede pinchar el globo.

Saludos
Julian


El 22 de abril de 2013 00:38, Juan Rodríguez Monti <
juanrodriguezmonti en gmail.com> escribió:

> Hola Julian. Buena data. A que te referis con hacer todo en el browser?.
> Vos decis tener una app web localque genere el string y se lo mande ya
> encriptado al server de la db y lo guarde alli?.
> No entendí bien cual seria la mejor opcion.
> Te agradezco mucho.
> Slds. Juan
> El 21/04/2013 19:27, "Julian Agustin Cardonnet" <jcardonnet en gmail.com>
> escribió:
>
>  Hola Juan,
>> +1 a hacerlo todo junto en algún lado (por ej dentro del browser).
>> Hacerlo desde una aplicacion externa y después pegar el resultado se me
>> hace muy propenso a errores, porque si llega a haber la menor diferencia
>> entre el texto cifrado y el plano (pueden pasar cosas imprevistas durante
>> el copy/paste entre aplicaciones) te va a hacer fallar la verificacion.
>> La idea de un plugin para el navegador o usar una biblioteca de JS como
>> la Stanford Javascript Crypto Library [1] me parece piola, pero no se que
>> tan seguro sera eso ante ataques XSS o similares que te puedan afanar la
>> clave. En ese sentido habria que ver que opinan los expertos en seguridad
>> que hay en la lista.
>> Hace poco hubo un thread sobre un proyecto de Roberto Alsina para servir
>> paginas cifradas y decodificarlas en el browser. Podes pegarle una mirada a
>> ese asunto también.
>>
>> Saludos
>> Julian
>>
>> [1] http://crypto.stanford.edu/sjcl/
>>
>>
>> El 20 de abril de 2013 20:02, Juan Rodríguez Monti <
>> juanrodriguezmonti en gmail.com> escribió:
>>
>>> Si Joac. Hice un kilombo tremendo en la explicacion. Voa entendiste. Lo
>>> que vos propones me sirve.
>>>
>>> Voy a evaluar esa opcion. Juan
>>> El 20/04/2013 19:33, "Joaquín Sorianello" <listas en joac.com.ar> escribió:
>>>
>>>>  2013/4/20 Juan Rodríguez Monti <juanrodriguezmonti en gmail.com>
>>>>
>>>>> Buenas gente. Cómo va?.
>>>>>
>>>>> Una consulta sobre esta situación para ver qué harían ustedes. Se
>>>>> trata de lo siguiente.
>>>>>
>>>>> Debo encontrar una forma de firmar y almacenar de forma segura un
>>>>> texto en una base de datos con GnuPG. Hay un sistema web desarrollado
>>>>> en Django, y hay que guardar un texto cifrado en una tabla. Esto lo
>>>>> van a hacer todos los usuarios del sistema cada cierto tiempo.
>>>>>
>>>>> Obviamente que si yo le pidiera al usuario que "cargue" su llave
>>>>> privada a través de internet/red seria inseguro. Por lo tanto descarto
>>>>> eso.
>>>>>
>>>>> Almacenar las llaves privadas en el servidor, algo que también me
>>>>> permitiría firmar el texto, también es inseguro porque dejo las llaves
>>>>> de cada usuario en el server en algún lado.
>>>>>
>>>>> Lo que necesito es que, obviamente, cada usuario tenga en su laptop/pc
>>>>> su llave privada. Las llaves públicas sí las puedo tener en el server.
>>>>>
>>>>> Entonces, algo que pensé seria - complementar la aplicación web con
>>>>> una aplicación de escritorio hecha en Python que genere el string
>>>>> firmado con la clave privada que sólo está en la laptop/pc de cada
>>>>> usuario y después o bien que se envíe la información ya
>>>>> encriptada/firmada a través de la red al servidor, o bien que el
>>>>> usuario "pegue" la data en un formulario de alta.
>>>>>
>>>>> De ese modo, evito enviar una llave privada por internet/red y también
>>>>> almacenar las llaves privadas en el servidor.
>>>>>
>>>>> Pero sigue sin cerrarme del todo todavía. En la empresa es a lo mejor
>>>>> que llegamos.
>>>>>
>>>>> Sugerencias, muy bienvenidas.
>>>>>
>>>>>
>>>> Y hacerlo con un complemento en el browser?
>>>> http://www.getfiregpg.org/s/home
>>>>  (...)
>>>> FireGPG is a Firefox extension under MPL that provides an integrated
>>>> interface to apply GnuPG operations to the text of any web page, including
>>>> encryption, decryption, signing, and signature verification.
>>>> (...)
>>>>
>>>> O para chrome:
>>>>
>>>>
>>>> https://chrome.google.com/webstore/detail/webpg/hhaopbphlojhnmbomffjcbnllcenbnih?hl=en
>>>>
>>>> --
>>>> Joaquín Sorianello
>>>> A.K.A. Joac
>>>> @_joac
>>>>
>>>> _______________________________________________
>>>> pyar mailing list pyar en python.org.ar
>>>> http://listas.python.org.ar/listinfo/pyar
>>>>
>>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>>
>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>>> Argentina - http://www.usla.org.ar
>>>>
>>>
>>> _______________________________________________
>>> pyar mailing list pyar en python.org.ar
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>>
>>
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20130422/50b3dd90/attachment.html>


More information about the pyar mailing list