18 junio 2012

Evidencias digitales con WebSellada 1.0


Después de lanzar 'Mail Sellado', nuestra herramienta para certificar el envío de un correo electrónico, el siguiente paso del proyecto debía ser el proporcionar una herramienta que permita obtener evidencias digitales empleando firma digital y sellos de tiempo.

La web, por su naturaleza, es esencialmente un entorno volátil: lo que veas hoy, no necesariamente va a estar mañana y eso, para ciertas cosas, supone un enorme problema.

Supongamos varios casos reales: Alguien, empleando Twitter, te amenaza o se pone a hacer apología del maltrato animal o (ponga usted aquí cualquier cosa punible) y tu, decides emprender algún tipo de acción legal contra esa persona. Es obvio que un Tweet es fácilmente borrable y eso, es 'la prueba de cargo'

Lo que permite WebSellada es solicitar que un tercero ajeno a ti (en este caso, SbD) navegue a la URL que tu digas (en este caso el tweet en cuestión), haga una copia de como está en ese momento la URL, le aplique una firma digital y adicionalmente le añada un sello de tiempo empleando una autoridad de sellado reconocida oficialmente.

Luego, te enviamos un correo electrónico que contiene un PDF con un screenshot de la web, la firma digital a ese PDF y un sello de tiempo sobre la firma digital.

De esa forma, tu puedes tener un elemento verificable de que eso estaba así en un determinado momento temporal (definido en el sello de tiempo).

¿Más aplicaciones? A mi me ha pasado eso de ver una oferta en una web, la típica oferta que dices ¡¡ no puede ser !! y cuando te decides a ir por ella ... resulta que no era exactamente así, que se trataba de 'un error' y claro ya no está en la web.

También sirve para tweets bochornosos

En definitiva, existen muchas aplicaciones para esta herramienta.

¿Cómo se usa WebSellada?

Es muy fácil, simplemente debes enviar un correo electrónico a websellada@securitybydefault.com y en el subject poner la URL de la que quieres obtener la evidencia. Nada más.



Y cuando se procese tu petición, recibirás un correo electrónico con tres ficheros: Uno en formato PDF con un screenshot de la web, otro con extensión .asc con nuestra firma digital de ese pdf, y finalmente otro con extensión .tsr que es el sello de tiempo.


Con esos ficheros puedes, empleando gpg y openssl, verificar tanto la firma digital como el sello de tiempo.

Primero descargamos la clave pública de Web Sellada:

$ wget www.security-projects.com/websellada.key

Luego el certificado de la CA raiz de accv:

$ wget http://www.accv.es/fileadmin/Archivos/certificados/rootca.crt

Importamos la clave pública:

$ gpg --import websellada.key

Verificamos la firma digital sobre el pdf:

$ gpg --verify 2390495814521.39.pdf.asc 2390495814521.39.pdf

Y finalmente verificamos el sello de tiempo:

$ openssl ts -verify -data 2390495814521.39.pdf.asc -in 2390495814521.39.tsr -CAfile rootca.crt

El servicio está en fase 'ultra-beta', probablemente de errores, no procese bien todas las URLs o tenga demoras de tiempo en las respuestas.

Si encontráis fallos, podéis contactar conmigo en yjesus@security-projects.com donde, en la medida de lo posible, intentaré solucionarlos

24 comments :

Alex Millà dijo...

Genial, como siempre. :)

Marcos Agüero dijo...

Vaya, parece que escribes en chino. Al menos eso dice Gmail :)


Un par de cosas ná más. ¿Que utilizas para pasar el html a pdf? (me dicen que wkhtmltopdf).
Y... ¿que medidas usas para que no utilice este servicio para lanzar ataques a webs de terceros?

Pedro Sánchez dijo...

Muy útil. Se me ocurre también utilizarlo para sitios web con phising y/o malware para la posterior denuncia y aportación de evidencia del sitio que lo contiene.


Me ha gustado mucho la idea.


Un abrazo Yago!!

Victoria dijo...

Muy buena e interesante la idea!

Yago Jesus dijo...

Hola, gracias por el feedback :)

Respecto a la continuidad, la idea es que sí, pero claro depende un poco de como vaya evolucionando, la carga del sistema y lo cívica que sea la gente.

Si quieres implementar un servicio, lo mejor es que me pongas un correo y lo veamos conjuntamente

Yago Jesus dijo...

Efectivamente, estoy empleando ese software, anteriormente empleaba khtml2png, pero nunca terminó de convencerme.

Respecto a las medidas, hombre, existen comprobaciones de seguridad sobre los enlaces que se envían. Pero claro, nada es seguro al 100%

Respecto a lo de chino ... tiene que ser un bug -supongo- si tienes mas info y la quieres compartir por correo, lo podemos ver juntos

Yago Jesus dijo...

Pura vagancia ! tomé los ejemplos de MailSellado :)

Yago Jesus dijo...

¡¡ Gracias !!

Yago Jesus dijo...

Muchas gracias Pedro, viniendo de ti, todo un honor

Artur dijo...

La idea de generar una evidencia digital con marca de tiempo haciendo analogia a las evidencias de firmas digitales me parece buena, pero hay un aspecto que no termina de encajarme: efectivamente la marca temporal y la firma dan fe que ese PDF existía en ese momento exacto y permite comprobar que no sido ha modificado posteriormente, pero que ganatía da el propio PDF? Me refiero, en este caso SbD debería ser una entidad de confianza de acceso a contenidos no? Es decir, para que esta evidencia puediese ser usada como ganatía en algún proceso/reclamación, aparte de confiar en la seguridad de las firmas, sellos de tiempo, etc... estos mecanismos protegen y ganatizan que esa URL servía ese determinado contenido, pero que garantiza que SbD accede al contenido exacto que yo visualizo?
Entiendo que esto es una prueba de concepto pero para extrapolarlo a escenarios reales (y pensando a la vez que escribo) se necesitaría otro actor, algo como una autoridad de confianza de acceso no? ("negocio" a la vista ^_^)


Tema aparte, me parece genial buscarle nuevos usos prácticos y reales a la firma electrónica, que a día de hoy me da de comer pero le veo un oscuro futuro ;-)


Saludos!

Artur dijo...

ganatía = garantía
ganatizan = garantizan


(X_x)

Yago Jesus dijo...

Hola, yo creo que el mundo judicial es un mundo paralelo sin reglas fijas (lamentablemente)

Si tu quieres llevar a juicio una evidencia de WebSellada, en teoría los mecanismos empleados y procedimientos están lo suficientemente explicados como para que tu mismo puedas montar tu propia defensa legal.

Ahora bien, siempre puedes contactar con nosotros para ejercer de peritos y explicar in-situ el mecanismo.

Negocio no se, pero podría ser una forma interesante de monetizar la inversión en tiempo y recursos :)

Angel Alvarez Nuñez dijo...

Lo que mas me gusto es la idea en si, quiero decir, son estas cosas que cuando las ves dices que bueno, como no se me ocurrio antes.
Ahora entiendo eso que leí por ahí de "Yago es la ostia, se le ocurrio que ...."
Puede ser muy interesante recibir el resultado mas rapido, mediante web, eso permitiria a la comunidad diseñar software de auditoria con una firma de terceros respetada.
Ya se que es mas complicado, y costoso, pero un proyecto como el de Virus Total para firmar webs, hay un abanico muy amplio de aplicaciones para este proyecto ..... desde luego te felicito Yago, muy bueno!!
Desde luego si diseño algo en concreto me pongo en contacto contigo XD

fer dijo...

Una duda, que requisitos son necesarios para que las evidencias marcadas con timestamp y firmadas sean probatorias frente a un tribunal. ¿Vale cualquier firma? ¿Cualquier tipo de Timestamp? Un saludo y muchas gracias

Yago Jesus dijo...

Hombre, sobre esto no hay nada al 100%, en teoría tal y como está diseñado WebSellada, tiene suficiente respaldo legal como para que sea irrefutable en un juicio.

La firma digital de SbD, garantiza que un tercero lo ha visto y el sello de tiempo viene de una TSA reconocida legalmente con lo que el valor probatorio temporal está asegurado al 100%

Yago Jesus dijo...

Si, el servicio web será el siguiente paso, hacerlo mediante correo electrónico me ha simplificado mucho el poder lanzarlo en modo beta.

En breve, más novedades !

Gracias por tus comentarios, animan mucho más de lo que os imagináis

MRC dijo...

Genial ! Muy, muy útil, sin duda alguna.
Enhorabuena Yago !

Angelucho dijo...

Genial la idea, estupendo el trabajo, combinación persona GRANDE, grupo GRANDE. Gracias

fer dijo...

Muchas gracias, En temas de seguridad y según está la cosa hay que asegurarse de que las pruebas no pueden ser refutadas por un abogado que apenas entiende de que va el tema.

Jan Carreras dijo...

Enhorabuena. Me parece una idea estupenda esto de poder recoger evidencias digitales solo con mandar un mail. Es mas, se me ocurre que puede ser muy útil para tomar evidencias de un gran número de ficheros ya que se podrían aplicar funciones de hash a todos los ficheros y sellar el fichero resultante con todos los hashes (estoy pensando en voz alta).

Anyway. Si por favor podéis revisar los permisos de este fichero[1] ya que el servidor web devuelve un 403. Muchas gracias de antemano y un saludo.

Y a segur así!!

[1] wget www.security-projects.com/websellada.key

Yago Jesus dijo...

Hola, ¡¡ Muchas gracias por el reporte !! ya está solucionado

Diego Rojas Castro dijo...

Hola Yago, gracias y felicidades por la herramienta! Pero... encuentro una limitación al querer generar evidencia digital de un perfil de Facebook (con un mínimo de configuración de seguridad) donde , por ejemplo, una persona esté publicando calumnias en el muro de otra o aun peor, enviando insultos y amenazas por mensaje privado.

Yago Jesus dijo...

Hola Diego, gracias a ti por el interés y tu comentario. Esto que comentas está pensado para una versión posterior, iremos informando :)

Ruben dijo...

Genial idea, y muy útil para mi "gremio" ;-)