jueves, 25 de noviembre de 2010

Comprobando en Windows si los certificados del DNIe estan revocados...

Cuando nos roban o perdemos una tarjeta bancaria, llamamos a la entidad emisora para anularla y su número es incluido en una lista negra para indicar que ya no es válida. En este caso confiamos en que las empresas que realizan cobros con tarjeta comprueben siempre dicha lista para evitar que puedan ser utilizadas esas tarjetas anuladas.

Con los certificados digitales es similar, la validación de certificados (es decir, comprobar su estado de revocación) es una función crítica en aquellas operaciones relacionadas con la tecnología PKI. Toda aplicación que utilice los certificados digitales para funciones de autenticación, firma o cifrado debería bien validar todos los certificados que utiliza o bien asumir el riesgo asociado a su no validación.

Las listas negras, se llaman en este caso Listas de Revocación de Certificados (o CRL por sus siglas en inglés) y a menudo se hacen accesibles de forma publica a través de Internet para que cualquier aplicación pueda consultarlas. Las listas contienen los número de serie de los certificados vigentes que han sido revocados y la fecha de su revocación, y son firmadas por la AC emisora de los certificados como prueba de su origen e integridad (nadie puede añadir ni quitar elementos de la lista).


El método de acceso a la lista puede ser diverso, bien se publican en un servidor web y son accesibles mediante protocolo HTTP, bien se publican en un directorio con protocolo de acceso LDAP o bien se implementa un protocolo de consulta online denominado OCSP (Online Certificate Status Protocol). Este último método OCSP resulta el más ventajoso, ya que evita la descarga de las listas y solo realiza una transacción de pregunta y recibe una respuesta firmada con el estado del certificado. Esta tarea se puede delegar en un tercero denominado Autoridad de Validación.

Algunas AC habiltan varios métodos de validación como HTTP, LDAP u OCSP, pero en el caso del DNIe se ha delegado la función de validación en la FNMT y el Ministerio de la Presidencia a través de la plataforma @firma. De forma pública solo se dispone del método OCSP para la validación de los certificados del DNIe (ocsp.dnie.es).

El protocolo OCSP está definido en el RFC 2560 del IETF y se implementa en la mayoría de plataformas de PKI para su uso. Debido a su Existe también una variante de este protocolo llamada Lightweight OCSP (RFC 5019) y definida en Septiembre de 2007 para aquellos entornos donde se gestiona una alto volumen de tráfico que ayuda a reducir el consumo de ancho de banda y minimizar el consumo de recursos en el cliente.


La validación de los certificados puede ser implementada directamente en las aplicaciones mediante el uso de librerías comerciales o de software libre o bien a través de los servicios que proporcionan de base algunos sistemas operativos, descargando a la aplicación de esta tarea.

En los sistemas operativos Windows, estas operaciones de validación están incluidos en los servicios criptográficos que incopora la plataforma denominada CryptoAPI y las aplicaciones comerciales y especialmente las desarrolladas por Microsoft como Internet Explorer, Microsoft Outlook, Microsoft Office en el cliente o Microsoft IIS, Microsoft Exchange Server o Microsoft SharePoint en el servidor, hacen uso de estos servicios de la plataforma.


Lamentablemente, el protocolo OCSP no se incluyó hasta la aparición de Windows Vista y Windows Server 2008. Por tanto, para poder utilizar este protocolo en aplicaciones que se ejecutan en Windows 2000, XP o Server 2003, bien se implementa directamente en la aplicación o bien se instala un plug-in que habilita esta función en CryptoAPI (SmartAccess ha desarrollado TrustID OCSP Client) y permite que aplicaciones como Microsoft Outlook puedan validar los certificados, por ejempo cuando recibimos un correo firmado digitalmente usando el DNIe.


En el caso de Windows Vista, Windows 7 y Windows Server 2008 (R2), ya incorporan el protocolo OCSP de serie en CryptoAPI y debería poder utilizarse para validar los certificados sin necesidad de instalar plug-ins. Sin embargo, el protocolo implementado es el Lightweight OCSP (basado en el RFC 5019) pensado para altas volumenes de transacciones pero el respondedor (servidor) público que gestiona la FNMT solo admite peticiones según el protocolo OCSP (RFC 2560). Esto nos coloca en la misma situación que con versiones antiguas de Windows para validar los certificados del DNIe a través de CryptoAPI.

Esta situación, provoca muchas veces comentarios que indican que Windows no es compatible con el OCSP o que las aplicaciones de Microsoft no son compatibles con la validación de certificados del DNIe, lo cual espero haber explicado. La solución pasa por cambiar Windows (algo dificil) o cambiar el respondedor OCSP de la FNMT para que también admita el RFC 5019. Creo que sería una ayuda a los desarrolladores de aplicaciones que utilicen el DNIe para que no necesiten integrar la validación en cada aplicación que desarrollan.

Un saludo
Rames

miércoles, 24 de noviembre de 2010

Recuerda las siglas NFC, te vas a cansar de escucharlas...

La siglas significan a Near Field Communication, es una tecnología que ya lleva unos años pero parece que es ahora cuando se empezará a utilizar masivamente.

NFC es un protocolo de comunicación inalámbrica orientado a establecer comunicaciones peer-to-peer a corta distancia (< 10-20cm) entre 2 dispositivos con una alta velocidad de transmisión. Utiliza la misma banda de frecuencias que el RFID (es decir 13.56 Mhz) y por tanto no se requiere ningún tipo de licencia o permiso especial para su uso. Es además compatible con el estandar ISO 14443 y por tanto con los dispositivos RFID.

¿Pero para que sirve?, aunque su uso no está limitada a los teléfonos móviles, estos son su principal foco y permite conectar al móvil (y su tarjeta SIM) con otros dispositivos para intercambiar información de forma rápida y segura.
Algunos ejemplos de uso de la tecnología NFC son:
  • Imagina que reservas (y pagas claro) por Internet una habitación de hotel para una fecha determinada. Antes de esa fecha te envían la llave de tu habitación mediante un mensajes SMS y cuando llegas al hotel, vas a la habitación sin pasar por recepción, acercas tu movil NFC y la puerta se abre. Ohhhh!!!
  • Imagina ahora que vas en tu coche y entras en un parking, en lugar de recoger el "dichoso" ticket de la maquina simplemente acercas tu teléfono NFC y cuando vas a salir del parking acercas de nuevo el teléfono en una maquina de pago, realizas el pago del parking con tu teléfono, te llevas un recibo electrónico en tu movil para la declaración de gastos y para rematar llegas al coche y abres el coche con tu móvil NFC.
  • Por último, llegas en tu coche al cine a ver esa película que tanto tiempo llevas esperando y cuyas entradas has comprado por Internet. Te han enviado las entradas a tu móvil NFC y no has tenido que pasar por taquilla y por eso has llegado a tiempo. Al finalizar de la película te quieres llevar el trailer de la película para enseñársela a tus colegas. Acercas tu móvil a un cartel NFC colocado en la pared y de descarga el trailer a tu móvil en unos segundos. Antes de irte te encuentras a un antiguo compañero de trabajo que hace tiempo que no veías, os intercambias las tarjetas de visita acercando vuestros móviles NFC y quedáis en llamaros.

Estos son solo algunos de los posibles usos de los teléfonos NFC y estoy serguro que aparecerán muchos más. Con NFC convertimos a nuestro móvil en una cartera electrónica, en un llavero electrónico, en un intercambiador de documentos electrónicos, etc. y todo simplemente acercando tu móvil a dispositivos. Lógicamente algunas transacciones requerirán el uso de un código personal o PIN para asegurar que solo el propietario del teléfono y la linea puede realizarlas.

Recientemente Apple anunció que estaba desarrollando junto con Gemalto un nuevo SIM que permitiría pagos con el móvil, posteriormente Google anunció que su nuevo teléfono Nexus S y la nueva versión de Android incluirán NFC. El último en anunciar este soporte ha sido RIM, fabricante de los teléfonos Blackberry. Es de esperar que veamos pronto un importante despegue de esta tecnología.
NFC es una iniciativa de la industria en la que participan fabricantes de dispositivos móviles, operadores de telefonía, medios de pago, fabricantes de smart cards, empresas de software, etc. Existe una organización sin ánimo de lucro denominada NFC Forum que se está encargando de impulsar su uso.

Os dejo algunos videos ilustrativos:

BBVA NFC medios de pago 
http://www.youtube.com/watch?v=K5apLejFiiU

Nokia NFC demo (año 2007!!)
http://www.intomobile.com/2007/01/19/video-nokia-nfc-demo-absolutley-amazing/

Infográfia: NFC las tarjetas del futuro
http://www.consumer.es/web/es/tecnologia/2009/01/04/182530.php

Un saludo
Rames