Documentos de Académico
Documentos de Profesional
Documentos de Cultura
“DNIE AUTENTICACIÓN”
V 1.0
1 ÍNDICE DEL DOCUMENTO.
El interfaz con contactos permite mantener la compatibilidad hacia atrás, es decir el uso del
DNIe mediante un lector de tarjetas inteligentes, conectado a un puerto del ordenador,
mientras que el interfaz sin contactos (contactless) es el que permite incluir las mismas
funcionalidades, pero para dispositivos con tecnología NFC.
Además, el DNIe tiene una estructura de datos equivalente al pasaporte. Así que puede
realizar funciones de Documento de Viaje, y se permite su uso en los Pasos Rápidos de
Frontera (ABC systems) de forma totalmente equivalente a el pasaporte electrónico actual.
Para información relativa a los certificados X509 incluidos en el DNIe 3.0, véase [1] RFC
2459. Internet X.509 Public Key Infrastructure. Certificate and CRL Profile. En cuanto a
la conexión por radiofrecuencia entre dispositivos, ver [2] ISO 14443 - Tarjetas de
Identificación. Tarjetas sin contacto. Tarjetas de proximidad.
Se ha elegido ese proveedor de servicios pero hay actualmente cientos de posibles usos
que se podrían implementar:
- Seguridad Social
o Informes de vida laboral,
o Situación laboral actual,
o Retenciones e ingresos …
- AEAT,
o Consulta del borrador,
o Validación del borrador de la RENTA,
o Consulta de datos fiscales…
- Dirección general de Tráfico,
o Consulta de puntos del carnet,
o Multas…
- Ministerio de Justicia,
o Certificado de antecedentes penales,
o Certificado de Nacimiento,
o Certificado de Matrimonio…
- Sede Electrónica del Catastro,
o Bienes inmuebles asociados a un titular,
o Consulta de datos catastrales,
o Expedientes…
- Entidades bancarias,
o Autenticación de acceso,
o Firma de transferencias…
- Etc.
También está incluido al final del documento un Anexo con código fuente de ejemplo para la
realización de las operaciones básicas con el DNI electrónico:
- Carga de Certificados,
- Firma de datos,
- Verificación de firma.
La autenticación del usuario para el acceso a servicios del Ayuntamiento se realiza mediante
el uso del DNI electrónico v3.0. Este DNIe funciona mediante NFC, (Near Field
Communication, ver [3] NFC Forum Type Tags - White Paper v1.0. NXP
Semiconductors) lo que permite a cualquier dispositivo que disponga de esta tecnología,
actuar como lector de tarjetas.
Para facilitar el uso del DNI electrónico en plataformas Android se ha adaptado la librería
DNIeDroid, que se incluye como librería externa dentro del proyecto de ejemplo. Este
middleware existía previamente para el uso en Java de las versiones de DNIe con
contactos. Ahora se ha adaptado para su correcto funcionamiento en Android y el interfaz
sin contactos vía NFC.
En el siguiente apartado se incluye una breve descripción del componente. Para más
información puede consultarse el “Manual de Usuario para Apps DNIe 3.0”.
En esta parte del documento describiremos la arquitectura lógica de una aplicación Android
y su utilización del middleware DNIeDroid. Como ejemplo tomaremos la app de ejemplo
DNIe Autenticación, desarrollada para la autenticación en servicios web.
En esta figura podemos ver las partes que integran la aplicación. Dado que nuestro ejemplo
se trata de una aplicación Android, el punto de contacto con el usuario son las Activities. El
componente DNIeHelper está disponible para todas ellas, y gestiona la interacción con el
DNIe y los cuadros de diálogo que se muestran al usuario durante esta interacción.
Por otro lado, aquellas Activities que requieran el uso del DNIe para la firma y la
autenticación en servidores de terceros, se pone a su disposición el componente
DroidHTTPClient, que gestiona esta problemática y que también se apoya en el
componente de interacción con el DNIe.
También sería posible desarrollar la aplicación para trabajar con DNIe y un lector de tarjetas
USB conectado a él mediante un adaptador USB-OTG. En este documento nos centraremos
sólo en la versión para DNIe v3.0 y tecnología NFC.
Para el acceso a los servicios al ciudadano será necesaria la conexión segura mediante
protocolo https con los servidores del proveedor de servicios correspondiente. Esa conexión
requerirá la autenticación con el DNIe del ciudadano mediante el uso de la tecnología NFC.
El ejemplo que detallaremos en este documento consiste en una aplicación que implementa
un portal Web del Ayuntamiento de Madrid. Desde este portal se pueden navegar por las
opciones más destacadas del ayuntamiento y acceder a servicios al ciudadano mediante
DNI electrónico 3.0.
Podría haberse realizado este ejemplo con otro portal cualquiera de acceso a servicios de la
Administración, tal y como se explicó en el apartado ÁMBITO DEL EJEMPLO Y USOS
FUTUROS. (Seguridad Social, Dirección General de Tráfico, Registro Civil, Catastro, etc.).
Tributos,
Gestión de Multas ,
Datos Censales,
Información de Expedientes,
Web Madrid.es,
Ayuda.
.
Una vez seleccionado el servicio de DNIe al que queremos acceder, la aplicación le solicita
el CAN (Card Access Number) del documento con el que queremos hacerlo.
El canal PACE es obligatorio para poder establecer una conexión inalámbrica cifrada con
el documento pero en ningún caso sustituye al código PIN ni da permisos de uso de las
claves de firma y/o autenticación del ciudadano.
Es una medida adicional de seguridad que pretende evitar que alguien pueda realizar
lecturas de datos públicos sin conocimiento del ciudadano.
Si intentásemos leer un DNIe con un CAN incorrecto, fallaría la construcción del canal
PACE, y no sería posible la comunicación entre documento y dispositivo.
Para más información sobre el establecimiento del canal PACE (Password Authenticated
Connection Establishment) ver [5] Technical Guideline TR-03110-2.Advanced Security
Mechanisms for Machine Readable Travel Documents –P2.
Por motivos hardware y de seguridad la distancia máxima soportada por NFC es,
dependiendo del dispositivo, de alrededor de un centímetro. Esta conexión es muy sensible
a la distancia y al movimiento, por lo que para el correcto funcionamiento se requiere la
mayor cercanía y estabilidad posibles.
Una vez realizadas las operaciones básicas de lectura de certificados se solicitará el PIN
(Personal Identification Number) del usuario. La presentación del PIN autentica al usuario
contra el DNIe y le concede permisos de acceso a las claves.
El ciudadano podrá entonces realizar operaciones que requieran el uso de las claves, ya sea
para realizar una firma de documentos, establecer una conexión segura con el servidor del
prestador de servicios, etc.
Una vez autenticado el ciudadano, la aplicación realizará la conexión segura con el servidor
del prestador de servicios (Ayuntamiento de Madrid, en este caso). Se llevarán a cabo las
operaciones criptográficas necesarias para establecer el canal SSL y obtener la información
personal solicitada.
En caso contrario se mostrará una pantalla de error, indicando la razón del problema.
Las distintas operaciones implementadas en este ejemplo App “DNIe Autenticación” son
ejemplos reales ofrecidos por el Ayuntamiento de Madrid.
Los servicios accesibles mediante DNIe son los descritos en los siguientes apartados.
Desde esta opción podemos comprobar los tributos pendientes de pago al Ayuntamiento. Se
incluyen impuestos de circulación, tasas de limpieza, impuesto de bienes inmuebles, etc.
Ofrece información sobre los datos censales en poder del Ayuntamiento, datos personales,
fecha de nacimiento, etc. Desde aquí podríamos solicitar un volante de empadronamiento.
[1] RFC 2459. Internet X.509 Public Key Infrastructure. Certificate and CRL Profile
[2] ISO 14443 - Tarjetas de Identificación. Tarjetas sin contacto. Tarjetas de proximidad
[3] NFC Forum Type Tags - White Paper v1.0. NXP Semiconductors
[4] CWA 14890-1: Application Interface for smart cards used as Secure Signature Creation
Devices
[5] Technical Guideline TR-03110-2.Advanced Security Mechanisms for Machine Readable
Travel Documents –Part 2
[6] ISO/IEC 7816-4. Identification cards – Integrates circuit cards. Part 4: Organization, security
and commands for interchange.
[7] ISO/IEC18092 Information technology — Telecommunications and information exchange
between systems — Near Field Communication — Interface and Protocol
(NFCIP-1)
[8] Android.NFC. http://developer.android.com/reference/android/nfc/package-summary.html
[9] UIT-T X.509 (11/2008) – Open systems interconnection: Public-key and attribute certificate
frameworks