Home My Page Projects Code Snippets Project Openings OpenDNIe
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files Mediawiki

Forum: open-discussion

Monitor Forum | Start New Thread Start New Thread
RE: Instalación de DNIe en Debian [ reply ]
By: Javier Serrano Polo on 2014-01-21 01:13
[forum:651233]
La petición de integración en el proyecto oficial está aquí:
https://github.com/OpenSC/OpenSC/pull/209

RE: Instalación de DNIe en Debian [ reply ]
By: Javier Serrano Polo on 2014-01-21 01:11
[forum:651231]
He añadido el soporte para chromium en add-dnie-support. Aparece como "user PKI", ya que también sirve para otras aplicaciones.

Esto no implica que el DNIe funcione en chromium para conectar con servidores.

RE: Instalación de DNIe en Debian [ reply ]
By: Miguel CV on 2014-01-15 20:56
[forum:651223]
Desconozco la terminología debian, o sea que a lo mejor me equivoco en algo, pero por si sirve de algo, pongo un esbozo de lo que estaba probando yo para añadir soporte del dni en el postinst para chromium/chrome , que es un poco distinto:

if ( (which chromium-browser &>/dev/null) || (which google-chrome &>/dev/null) )
then
echo "Configurando Chrome/Chromium...."
for nssdb in $(find /home/*/.pki/ -name "nssdb")
do
echo "Instalando certificados y dispositivo en ${nssdb}";
if ! modutil -list DNIE -dbdir sql:${nssdb} &> /dev/null
then modutil -force -dbdir sql:${nssdb} -add "DNIE" -mechanisms FRIENDLY -libfile /usr/lib/opensc-pkcs11.so(ubicación librería)
fi
certutil -A -n "RAIZDNIE" -t loquequieras -i rutaalACRAIZDNIE -d sql:${nssdb} 2>/dev/null
done
fi

Esto está hecho con la idea de configurar todos los usuarios del equipo que hubieran iniciado alguna vez chrome/chromium, pero parece que lo normal en debian/ubuntu es configurar sólo el usuario actual y me imagino que si es necesario hacer un dpkg-reconfigure opensc desde otro usuario y no configurarlos todos a la vez....
Falta comprobación de errores y demás, pero como chrome/chromium es un poco distinto, y tuve que mirarlo, aquí lo dejo para la posteridad XD...

Saludos, buen trabajo....

RE: Instalación de DNIe en Debian [ reply ]
By: Dionisio Martínez Soler on 2014-01-15 18:10
[forum:651220]
Sí, ahora sí funciona, gracias. Excelente trabajo!

RE: Instalación de DNIe en Debian [ reply ]
By: Javier Serrano Polo on 2014-01-14 22:51
[forum:651213]
He actualizado las versiones de sid. Si enable_pinpad no está explícitamente activado en la configuración, está desactivado en este escenario (Dell con tarjeta sin PIN padding). ¿Podrías comprobar si funciona?

RE: Instalación de DNIe en Debian [ reply ]
By: Dionisio Martínez Soler on 2014-01-14 17:43
[forum:651212]
0xa28feb40 10:40:58.558 [opensc-pkcs11] reader-pcsc.c:283:refresh_attributes: Dell Dell Smart Card Reader Keyboard 00 00 check

RE: Instalación de DNIe en Debian [ reply ]
By: Javier Serrano Polo on 2014-01-14 02:04
[forum:651210]
Necesitaría confirmar el nombre del lector Dell. La orden es:
OPENSC_DEBUG=9 iceweasel 2>&1 | grep " check"

RE: Instalación de DNIe en Debian [ reply ]
By: Javier Serrano Polo on 2014-01-10 04:47
[forum:651202]
Según las notas,
"Seems to support SPE only if the VERIFY command has a fixed length."
SPE es Secure PIN Entry. El problema se describe en este hilo:
http://comments.gmane.org/gmane.comp.encryption.opensc.devel/12773

Es un problema si el PIN de la tarjeta no utiliza padding. Según veo en mi implementación, basada en la de la Policía, el DNIe no utiliza padding. El SPE funcionaría forzando el PIN a una longitud fija. Pero el PIN puede tener de 8 a 16 caracteres.

El problema debería solucionarse arreglando el firmware, pero dudo que pueda convencer a Dell. Intentaré hablar con OpenSC.

RE: Instalación de DNIe en Debian [ reply ]
By: Dionisio Martínez Soler on 2014-01-09 19:06
[forum:651201]

output.txt (38) downloads
Pues me he encontrado otro lector que falla con el mismo problema (no aparece el diálogo del pinentry), no es sólo el LTC31: se trata de un teclado Dell con lector de DNI integrado que existe en muchos centros educativos gallegos (y supongo que en otros organismos de la administración):

Bus 007 Device 003: ID 413c:2101 Dell Computer Corp. SmartCard Reader Keyboard

En este caso, lo que muestra bPINSupport es:

bPINSupport 1 verification

Es este: http://pcsclite.alioth.debian.org/ccid/readers/DellSCRK.txt

Como en el caso del LTC31, puede que necesite actualización de firmware, pues en ese archivo aparece bcdDevice 2.00, y a mí me sale bcdDevice 1.00 . Buscaré el firmware cuando pueda y lo comento. De todas formas, en el archivo de alioth con firmware 2.00 aparece:

bPINSupport: 0x03

Con lo cual, igual el problema persiste, no lo sé... Este lector tiene un teclado (está integrado en un teclado, de hecho), pero en ningún momento pide la introducción del PIN del DNIe, con lo cual se plantea un pequeño problema de usabilidad sin enable_pinpad=false.

Adjunto el output.txt



RE: Instalación de DNIe en Debian [ reply ]
By: Dionisio Martínez Soler on 2014-01-03 01:25
[forum:651193]
Hola de nuevo.

Encontré quien me prestara un portátil con Windows, actualicé el firmware del lector, y efectivamente era ese el problema. Tras la actualización, tengo:

$ lsusb -v | grep bPINSupport

bPINSupport 0

La versión que indica ahora el lector es la 0.50:

bcdDevice 0.50

Y tras volver a comentar en /etc/opensc/opensc.conf la línea "enable_pinpad = false", he podido usar el DNI electrónico sin problemas, pues aparece el diálogo del pinentry.

Así que la que indica incorrectamente lo del pinpad es la versión 0.36 del firmware del LTC31v2.

Cuando tenga un rato, iré poniendo comentarios con esa información en las webs que refieren lo del enable_pinpad.

Mil gracias por tu magnífico trabajo para encontrar el problema!

RE: Instalación de DNIe en Debian [ reply ]
By: Dionisio Martínez Soler on 2014-01-03 00:34
[forum:651192]

output.txt (34) downloads
Después de seguir los pasos (te adjunto el output.txt), yo diría que tal vez el problema sea la versión del firmware del lector: el diff entre mi output.txt y el de http://pcsclite.alioth.debian.org/ccid/readers/LTC31v2.txt me da lo siguiente:
-------------------------------------------------------------
5c5
< bcdDevice: 0.36 (firmware release?)
---
> bcdDevice: 0.50 (firmware release?)
16c16
< Can't get iInterface string
---
> iInterface: ?
30c30
< IFD does not support GET CLOCK FREQUENCIES request: Resource temporarily unavailable
---
> IFD does not support GET CLOCK FREQUENCIES request: Success
34c34
< IFD does not support GET_DATA_RATES request: Resource temporarily unavailable
---
> IFD does not support GET_DATA_RATES request: Success
53,55c53
< bPINSupport: 0x03
< PIN Verification supported
< PIN Modification supported
---
> bPINSupport: 0x00
56a55
>
dioni1:/tmp/ccid-1.4.14# diff output.txt /tmp/1.txt
1c1
< idVendor: 0x0783
---
> idVendor: 0x0783
5c5
< bcdDevice: 0.36 (firmware release?)
---
> bcdDevice: 0.50 (firmware release?)
16c16
< Can't get iInterface string
---
> iInterface: ?
30c30
< IFD does not support GET CLOCK FREQUENCIES request: Resource temporarily unavailable
---
> IFD does not support GET CLOCK FREQUENCIES request: Success
34c34
< IFD does not support GET_DATA_RATES request: Resource temporarily unavailable
---
> IFD does not support GET_DATA_RATES request: Success
53,55c53
< bPINSupport: 0x03
< PIN Verification supported
< PIN Modification supported
---
> bPINSupport: 0x00
56a55
>
-------------------------------------------------------------

Así que mi lector informa de una versión 0.36, y no la 0.50 que aparece en los archivos de libccid. Estoy seguro de que nunca he actualizado el firmware del lector, y lo compré hace muchos años, cuando apareció el DNI electrónico, así que lo más probable es que la versión de firmware esté obsoleta (como le debe de pasar a todos los que han ido poniendo en diversas webs lo del enable_pinpad).

Por lo que he podido ver, el firmware más reciente está aquí: https://www.c3po.es/wp-content/uploads/2013/03/actualizador_firmware.zip . No sé qué versión es, porque claro, el actualizador es para Window$, "of course". Ahora mismo estoy de viaje, y sólo tengo un portátil con Debian. En unos días, intentaré actualizar el firmware del lector y te cuento.

RE: Instalación de DNIe en Debian [ reply ]
By: Javier Serrano Polo on 2014-01-02 17:24
[forum:651191]
A ver, la solución está aquí
https://github.com/OpenSC/OpenSC/issues/201

Pero la gracia es que se acepte en los proyectos oficiales. Por lo tanto, son necesarias unas cuantas comprobaciones. Se trata de seguir los pasos en
http://pcsclite.alioth.debian.org/ccid.html#CCID_compliant

Si tienes problemas para ejecutar src/parse, prueba
cd src/.libs
LD_LIBRARY_PATH="$PWD" ./parse

Si quieres que trate con Ludovic Rousseau, ningún problema, adjunta el fichero de salida.

RE: Instalación de DNIe en Debian [ reply ]
By: Dionisio Martínez Soler on 2014-01-01 22:00
[forum:651190]
bPINSupport 3 verification modification

RE: Instalación de DNIe en Debian [ reply ]
By: Javier Serrano Polo on 2014-01-01 18:01
[forum:651189]
¿Qué te devuelve este comando?
lsusb -v | grep bPINSupport

RE: Instalación de DNIe en Debian [ reply ]
By: Dionisio Martínez Soler on 2013-12-31 16:34
[forum:651187]
Ahí va lo que me sale a mí:
----------------------------------------
0xb7424700 16:31:59.759 [opensc-pkcs11] reader-pcsc.c:283:refresh_attributes: C3PO LTC31 v2 (17070129) 00 00 check
----------------------------------------

RE: Instalación de DNIe en Debian [ reply ]
By: Javier Serrano Polo on 2013-12-31 02:12
[forum:651186]
Entiendo que es imposible que el LTC31 tenga un pinpad. Lo suyo es añadirlo a la lista de lectores que ignoran el pinpad.

Necesitaría saber el nombre del lector. Esto se puede ver ejecutando:
OPENSC_DEBUG=9 iceweasel 2>&1 | grep " check"

Han de aparecer líneas como ésta:
0x7fb5f18bb740 00:58:57.528 [opensc-pkcs11] reader-pcsc.c:283:refresh_attributes: Dectel CI692 [Smart Card Reader Interface] (20070818000000000) 00 00 check

RE: Instalación de DNIe en Debian [ reply ]
By: Dionisio Martínez Soler on 2013-12-30 15:58
[forum:651185]
Mi lector es el LTC31v2. lsusb muestra:

Bus 004 Device 002: ID 0783:0006 C3PO LTC31v2

Lo del enable_pinpad aparece referido en diversas webs (también por ejemplo aquí: http://www.juanluperez.com/index.php/2012/01/instalar-y-configurar-dnie-en-gentoo/ ). Seguro que tiene que ver con el lector (o con libccid): opensc detecta que el lector tiene un "pinpad" propio para introducir el pin. Por lo que he podido averiguar, en versiones anteriores de opensc (no sé hasta cuál) el comportamiento por defecto era el inverso, es decir, en opensc.conf teníamos:

-----------------------------------
# Enable pinpad if detected (PC/SC v2.0.2 Part 10)
# Default: false
# enable_pinpad = true;
------------------------------------

Pero en la versión 0.13 tenemos:

------------------------------------
# Enable pinpad if detected (PC/SC v2.0.2 Part 10)
# Default: true
# enable_pinpad = false;
-------------------------------------

Y como el LTC31 se detecta como teniendo "pinpad", cuando se usa el DNIe, en vez de aparecer el diálogo del "pinentry", aparece el mensaje de error " Protected Token Authentication / Please authenticate to the token. Authentication method depends on the type of your token. / Token: DNI electrónico (PIN 1)" tal como se ve en los pantallazos de http://fpkanarias.blogspot.com.es/2013/03/kubuntu-instalar-dni-electronico.html

Por si ayuda para saber dónde se detecta incorrectamente que el lector tiene "pinpad", detallo también las versiones que hay en mi sistema de algunos presuntos implicados:

libccid 1.4.14-1
pcscd 1.8.10-1

RE: Instalación de DNIe en Debian [ reply ]
By: Javier Serrano Polo on 2013-12-30 03:20
[forum:651184]
Gracias por la corrección de multiarch. Ya he subido los paquetes de i386 para wheezy y sid.

En cuanto a enable_pinpad, a mí no me produce ningún efecto. Tal vez dependa del lector. El de la guía es el LTC31. ¿Es éste tu lector? Miguel Ángel, puede que lo del enable_pinpad te funcione.

RE: Instalación de DNIe en Debian [ reply ]
By: Dionisio Martínez Soler on 2013-12-29 00:30
[forum:651183]
Hola.

He compilado e instalado los paquetes fuente del repositorio en una Debian inestable arquitectura i386 sin problemas y funcionan. Dejo aquí el procedimiento y algún problemilla que me he encontrado por si a alguien le resulta útil y/o por si ayuda a mejorar algo:

a) Tras añadir el repositorio a las fuentes de apt (con una línea deb-src) basta hacer:
apt-get -b source opensc
apt-get -b source dnie-support
Para que compile opensc hay que instalar el paquete flex.

b) El script add-dnie-support falla porque busca bajo el directorio /usr/lib/i486-linux-gnu (en mi sistema sólo existe /usr/lib/i386-linux-gnu). Si no me equivoco, ello se debe a que en las versiones recientes de Debian se usa Multiarch. En add-pkcs11-support se averigua la arquitectura con:
dpkg-architecture -qDEB_HOST_GNU_TYPE
que en mi sistema devuelve "i486-linux-gnu". Para que me funcione necesito:
dpkg-architecture -qDEB_HOST_MULTIARCH
que ya devuelve "i386-linux-gnu".

c) Para que funcione con Iceweasel, hay que seguir las instrucciones que aparecen al final de la página:
http://fpkanarias.blogspot.com.es/2013/03/kubuntu-instalar-dni-electronico.html
Es decir, editar /etc/opensc/opensc.conf y descomentar la línea:
enable_pinpad = false;

Si os interesan los paquetes compilados para i386 para añadirlos al repositorio, basta decir dónde los subo o a qué correo los envío.

Un saludo,

Dionisio Martínez Soler

RE: Instalación de DNIe en Debian [ reply ]
By: Javier Serrano Polo on 2013-12-14 03:23
[forum:651177]
opensc realmente es una stable proposed update y dnie-support es un nuevo paquete. Me temo que ya hemos hecho todo lo que se podía hacer en Debian.

El bug #731235 ya está abierto y, si ni siquiera eso se acepta, el resto mucho menos. Hay al menos 56 desarrolladores que dicen ser de España. Probablemente no me equivoco cuando digo que ninguno usa su DNIe. Hace casi un mes envié un mensaje a una desarrolladora, sin éxito. También me he movido por la lista catalana, donde hay un par de desarrolladores, y nada.

Gracias por probarlo. Yo seguiré con el repositorio en marcha. Si conoces a alguien que necesite la versión i386 o powerpc en vez de la amd64, avísame y en cuanto pueda la preparo.

RE: Instalación de DNIe en Debian [ reply ]
By: Miguel Ángel Ordóñez Moya on 2013-12-13 20:48
[forum:651176]
Buenas Javier.

Hoy me he llegado por la policía y he restablecido las contraseñas.

En Debian virtualizado, no consigo que ande. Estoy mayor...

He probado en mi Debian, borrando el directorio .mozilla, e instalando el paquete dnie-support y probado con un par de lectores de dnie. Con un smc scr3310, funciona bien.
Con el otro, ltc31 de c3po, me da problemas, creo que este lector está jodido.

Se podría hablar con algún mantenedor para subir el paquete a bakcports de Debian, ¿no?

Un saludo.
Miguel Ángel.

RE: Instalación de DNIe en Debian [ reply ]
By: Javier Serrano Polo on 2013-12-11 01:52
[forum:651164]
¿Diferencias? Para identificación básica, ninguna. El programador tiene que obtener los datos de diferente forma.
Hay aplicaciones que necesitan DNIe: por ejemplo, firmar contratos. El DNIe lleva la fecha de nacimiento, así es como yo compruebo la mayoría de edad.
La comprobación de validez de los certificados del DNIe es gratuita.
En cuanto a las condiciones de uso, el certificado FNMT está restringido a la comunidad FNMT.

Por otro lado, hay 37 de millones de personas con DNIe que no saben usarlo y 3 millones con certificado FNMT que sí saben usarlo. Pero el DNIe es un dispositivo seguro de firma y eso le da reconocimiento legal, aunque a las administraciones ya les va bien el certificado FNMT. Y realmente el certificado FNMT no es menos seguro desde el punto de vista del usuario.

En cuanto a mezclar GPG y PKI, no es tontería, pero yo no sabría decirte cómo.

RE: Instalación de DNIe en Debian [ reply ]
By: Miguel Ángel Ordóñez Moya on 2013-12-11 00:40
[forum:651163]
Hola Javier. Que rapidez. Que "monstruo".

A ver si puedo salir mañana o pasado a rescatar mi clave del DNIe,
pruebo de nuevo y te cuento.

Por cierto, una duda. ¿Que diferencias hay realmente entre el DNIe y el
certificado de la FMNT? Al margen de la seguridad porque el certificado
del DNIe no queda guardado en el navegador.

Y no se si es una tontería lo que voy a decir, pero ¿se podría usar el
DNIe para poder certificar las claves gpg?. He visto que hay quedadas
presenciales de desarrolladores para intercambiar claves.

Un saludo y gracias.
-- Miguel Ángel

RE: Instalación de DNIe en Debian [ reply ]
By: Javier Serrano Polo on 2013-12-11 00:22
[forum:651162]
Ya me funciona en wheezy, con mi lector. Miguel Ángel, ¿te atreves a probarlo o prefieres que le pida el lector a mi conocido?

Los certificados que instala han de salir en Autoridades:
DIRECCION GENERAL DE LA POLICIA
- AC RAIZ DNIE
FNMT
- FNMT Clase 2 CA - FNMT

RE: Instalación de DNIe en Debian [ reply ]
By: Javier Serrano Polo on 2013-12-09 20:17
[forum:651148]
Vale, /usr/lib, multiarquitectura... lo mejor es que me deje de tonterías y me instale wheezy en una chroot. Usabas wheezy, ¿no? Me llevará un tiempo. Hasta que no me funcione no tendrás que ir más veces a comisaría.

Recuerda que solo una aplicación puede acceder al lector, el resto se bloquean. Es mejor que inicies el navegador desde terminal; incluso sin debug salen mensajes.

¿Tu lector es ese enano con leds verde y rojo? Éste me bloqueó el DNI una vez. Es lento. Conozco a una persona que lo tiene, igual me lo deja.

Respecto a las máquinas, en la comisaría central de aquí han puesto una en denuncias, que cierran más tarde. Ponerlas en el exterior, sin vigilancia, es un tema delicado. Piensa que es más fácil robar el DNI que una tarjeta de crédito. Con tu dedo, sin PIN, ya tienen tu identidad y poco podrás denunciar si la comisaría está cerrada. Igual alguien lo ve en las videocámaras, igual no.

Older Messages