Instalación do DNIe en Linux: Diferenzas entre revisións
Sen resumo de edición |
|||
(Non se amosan 24 revisións do historial feitas polo mesmo usuario.) | |||
Liña 1: | Liña 1: | ||
= Instalación e configuración do DNIe en Debian = |
= Instalación e configuración do DNIe en Debian = |
||
== Introdución == |
== Introdución == |
||
⚫ | |||
Queremos empregar o noso DNIe baixo Debian para poder autentificarnos pola rede ou firmar documentos. |
Queremos empregar o noso DNIe baixo Debian para poder autentificarnos pola rede ou firmar documentos. |
||
Liña 7: | Liña 8: | ||
* Debian testing jessie con kernel 3.2.0-4-amd64 |
* Debian testing jessie con kernel 3.2.0-4-amd64 |
||
* Lector de tarxetas C3PO LTC31v2 <br/> |
* Lector de tarxetas C3PO LTC31v2 <br/> |
||
<center>[[Image:product-693979.jpg]] </center><br/> |
|||
'''''Comprobamos o funcionamento do lector''''' |
'''''Comprobamos o funcionamento do lector''''' |
||
Liña 15: | Liña 14: | ||
'''Examinando se detecta o lector de tarxetas''' |
'''Examinando se detecta o lector de tarxetas''' |
||
root@Port-Profes4:/home/usuario# lsusb -t |
root@Port-Profes4:/home/usuario# lsusb -t |
||
Liña 33: | Liña 31: | ||
bcdDevice 0.38 |
bcdDevice 0.38 |
||
iManufacturer 1 C3PO |
iManufacturer 1 C3PO |
||
iProduct 2 USB SMART CARD READER |
iProduct 2 USB SMART CARD READER |
||
== Instalación das ferramentas para traballar co lector de tarxetas == |
== Instalación das ferramentas para traballar co lector de tarxetas == |
||
Necesitamos ter instaladas as seguintes ferramentas: |
Necesitamos ter instaladas as seguintes ferramentas: |
||
* '''pcscd''' |
* '''pcscd'''(''Personal Computer/Smart Card'')''' - É un''' '''Middleware,''' é dicir, proporciona unha API que permite a outras ferramentas interactuar cos lectores de tarxetas intelixentes. |
||
* '''pscd-tools''': Ferramentas para interactuar cos lectores de tarxetas intelixentes |
* '''pscd-tools''': Ferramentas para interactuar cos lectores de tarxetas intelixentes. |
||
* '''pinentry-gtk2''': Para que nos pida o pin do DNIe en modo gráfico. |
* '''pinentry-gtk2''': Para que nos pida o pin do DNIe en modo gráfico. |
||
<source lang='text'> |
|||
apt-get install pcscd pcsc-tools pinentry-gtk2 |
apt-get install pcscd pcsc-tools pinentry-gtk2 |
||
</source> |
|||
Unha vez instalado pscd o sistema xa recoñece o lector de tarxetas e lle asigna un módulo para xestionalo. |
Unha vez instalado pscd o sistema xa recoñece o lector de tarxetas e lle asigna un módulo para xestionalo. |
||
Liña 53: | Liña 52: | ||
|__ Port 2: Dev 2, If 0, Class=Chip/SmartCard, '''Driver=usbfs,''' 12M |
|__ Port 2: Dev 2, If 0, Class=Chip/SmartCard, '''Driver=usbfs,''' 12M |
||
'''Comprobamos |
'''Comprobamos que funciona correctamente''' |
||
Empregamos unha das ferramentas proporcionadas por pcsc-tools para comunicarnos co lector de tarxetas intelixentes e obter información da tarxteta intelixente inserida. |
Empregamos unha das ferramentas proporcionadas por pcsc-tools para comunicarnos co lector de tarxetas intelixentes e obter información da tarxteta intelixente inserida. |
||
root@Port-Profes4:/home/usuario/DNIE# pcsc_scan |
root@Port-Profes4:/home/usuario/DNIE# pcsc_scan |
||
Liña 79: | Liña 76: | ||
Podemos probar cunha tarxeta de crédito, pero seguramente non a recoñecerá, xa que non estará na lista de tarxetas coñecidas. |
Podemos probar cunha tarxeta de crédito, pero seguramente non a recoñecerá, xa que non estará na lista de tarxetas coñecidas. |
||
== Instalación do “driver” específico para o DNIe == |
== Instalación do “driver” específico para o DNIe == |
||
O lector de smartcard funciona correctamente, permite ler a información da tarxeta. Pero para que os programas entendan a información almacenada no DNIe é preciso instalar '''OpenSC-OpenDNIe'''. |
O lector de smartcard funciona correctamente, permite ler a información da tarxeta. Pero para que os programas entendan a información almacenada no DNIe é preciso instalar '''OpenSC-OpenDNIe'''. |
||
É dicir, OpenSC con soporte para el DNI electrónico Español. Este é un driver de código aberto para traballar cos lectores de DNIe. É |
É dicir, OpenSC con soporte para el DNI electrónico Español. Este é un driver de código aberto para traballar cos lectores de DNIe. É unha versión específica para soportar o DNIe de [https://www.opensc-project.org/ OpenSC]:''', que é un standard de manexo de smartcards ou tarxetas criptográficas pkcs#15. |
||
O proxecto OpenSC aceptou os parches propostos para o DNIe no seu árbore de desenvolvemento, polo que nun futuro bastará coa instalación do paquete estándar ''OpenSC'', e este documento carecerá de validez. |
|||
* [https://www.opensc-project.org/ OpenSC]:''' é o standard de manexo de smartcards ou tarxetas criptográficas pkcs#15. |
|||
* '''OpenDNIe''': Incorpora o necesario para comunicarse co DNIe Español. |
|||
O paquete proporcionado na [http://www.dnielectronico.es/ páxina oficial] está discontinuado así que empregaremos este. A última versión desenrolada foi para '''Debian Squeeze'''. |
O paquete proporcionado na [http://www.dnielectronico.es/ páxina oficial] está discontinuado así que empregaremos este. A última versión desenrolada foi para '''Debian Squeeze'''. |
||
Liña 97: | Liña 92: | ||
Como o código do noso driver está aloxado en GitHub podemos descargar o código e compilalo para a nosa versión de Debian para crearnos o .deb. Para elo seguimos as instruccións da páxina |
Como o código do noso driver está aloxado en GitHub podemos descargar o código e compilalo para a nosa versión de Debian para crearnos o .deb. Para elo seguimos as instruccións da páxina |
||
* '''Instalamos dependencias''' |
* '''Instalamos dependencias''' |
||
<source lang='text'> |
|||
apt-get install build-essential devscripts dh-autoreconf git-buildpackage |
|||
apt-get build-dep opensc |
|||
</source> |
|||
Este último comando instala as dependencias necesarias para compilar o paquete opensc, para elo''' temos que ter engadida no sources.lst unha liña do tipo deb-src'''. |
Este último comando instala as dependencias necesarias para compilar o paquete opensc, para elo''' temos que ter engadida no sources.lst unha liña do tipo deb-src'''.Por exemplo |
||
<source lang='text'> |
|||
deb-src http://ftp.es.debian.org/debian/ jessie main contrib non-free |
deb-src http://ftp.es.debian.org/debian/ jessie main contrib non-free |
||
</source> |
|||
* '''Clonar repositorio con gbp |
* '''Clonar repositorio con gbp''': É dicir descargamos o código fonte do repositorio github para compilalo. Procedemos sen necesidade de ser '''root''': |
||
<source lang='text'> |
|||
mkdir DNIE |
|||
cd DNIE |
|||
gbp-clone https://github.com/clopez/OpenSC-OpenDNIe-Debian |
|||
</source> |
|||
Esto creará unha carpeta chamada OpenSC-OpenDNIe-Debian co código fonte. Procederemos á compilación de ''OpenSC-OpenDNIe'' |
|||
<source lang='text'> |
|||
* '''Compilamos o paquete''' |
|||
cd OpenSC-OpenDNIe-Debian <br/> |
|||
⚫ | |||
</source> |
|||
⚫ | |||
⚫ | |||
⚫ | |||
git-buildpackage –git-ignore-new |
|||
O proceso finaliza coa seguinte mensaxe de erro. Pero é normal |
O proceso finaliza coa seguinte mensaxe de erro. Pero é normal |
||
Now signing changes and any dsc files... |
Now signing changes and any dsc files... |
||
Liña 131: | Liña 136: | ||
gbp:error: Couldn't run 'debuild -i -I': debuild -i -I returned 29 |
gbp:error: Couldn't run 'debuild -i -I': debuild -i -I returned 29 |
||
É normal que falle, está tratando de firmar o paquete empregando gpg, pero é imposible que o firmemos nos, xa que non somos o autor do mesmo e non temos a súa clave privada. Poderíamos modificar a configuración para firmalo coa nosa propia chave gpg si quixeramos, pero non é necesario. |
|||
Se todo vai ben obteremos no directorio DNIE o paquete .deb para instalar |
Se todo vai ben obteremos no directorio DNIE o paquete .deb para instalar |
||
Liña 138: | Liña 143: | ||
Como root |
Como root |
||
<source lang='text'> |
|||
⚫ | |||
</source> |
|||
Debemos asegurarnos de que o navegador pode solicitarnos o PIN nun diálogo. O ficheiro ''/etc/opensc/opensc.conf'' debe especificar '''enable_pinpad = false;''' na sección ''reader_driver pcsc''. |
|||
⚫ | |||
<source lang='text'> |
|||
⚫ | |||
. |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
</source> |
|||
== Configurar o navegador para autentificarnos co DNIe == |
== Configurar o navegador para autentificarnos co DNIe == |
||
Imos a configurar o iceweasel. Temos que facer dúas cousas |
Imos a configurar o iceweasel. Temos que facer dúas cousas |
||
⚫ | * '''Importar certificado da FNMT''': É necesario importar no navegador o certificado raíz da DGP. Podemos obtelo no [http://www.dnielectronico.es/seccion_integradores/certs.html área de descargas] de certificados da páxina do DNIe. Descargamos [http://www.dnielectronico.es/ZIP/ACRAIZ-SHA2.zip Certificado pkcs1-sha256WithRSAEncryption]. Descomprimimos o arquivo e importamos o certificado no navegador. |
||
* '''Importar certificado da FNMT''' |
|||
⚫ | |||
⚫ | |||
[[Image:certraiz.png|center|700px|Instalación do Certificado Raíz]] |
|||
* '''Engadir dipositivo de seguridade''' |
* '''Engadir dipositivo de seguridade''' |
||
[[Image:]] |
|||
[[Image:dnicert.png|center|700px|Novo Dispositivo de Seguridade]] |
|||
⚫ | |||
== [[Image:]] == |
|||
⚫ | |||
⚫ | |||
⚫ | |||
[[Image:]] |
|||
⚫ | |||
Pode que todo pareza ir ben pero non abre a ventá para introducir o pin. Para solucionalo en |
|||
⚫ | Podemos comprobar o funcionamento na [https://av-dnie.cert.fnmt.es/compruebacert/compruebacert Páxina de Comprobación], ou ir a unha páxina onde podamos empregar o DNIe, por exempo a [https://aplcr.dgt.es/WEB_COPACI/certificado/irAntecedentes.faces páxina de tráfico] para comprobar o noso saldo de puntos. Escollemos “Saldo de puntos con certificado” |
||
/etc/opensc/opensc.conf. Temos que descomentar enable_pinpad = false; |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
Agora o acceder á páxina xa debería solicitar o PIN |
Revisión actual feita o 4 de marzo de 2014 ás 19:46
Instalación e configuración do DNIe en Debian
Introdución
Queremos empregar o noso DNIe baixo Debian para poder autentificarnos pola rede ou firmar documentos.
Situación de partida:
- Debian testing jessie con kernel 3.2.0-4-amd64
- Lector de tarxetas C3PO LTC31v2
Comprobamos o funcionamento do lector
Enchufamos o lector de tarxetas
Examinando se detecta o lector de tarxetas
root@Port-Profes4:/home/usuario# lsusb -t /: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M |__ Port 2: Dev 2, If 0, Class=Chip/SmartCard, Driver=, 12M
Amósamos información detallada sobre o dispositivo e comprobamos que non ten un driver asociado.
root@Profes1:/home/usuario# lsusb -s 6:2 -v Bus 006 Device 002: ID 0783:0006 C3PO LTC31v2 Device Descriptor: ...... idVendor 0x0783 C3PO idProduct 0x0006 LTC31v2 bcdDevice 0.38 iManufacturer 1 C3PO iProduct 2 USB SMART CARD READER
Instalación das ferramentas para traballar co lector de tarxetas
Necesitamos ter instaladas as seguintes ferramentas:
- pcscd(Personal Computer/Smart Card) - É un Middleware, é dicir, proporciona unha API que permite a outras ferramentas interactuar cos lectores de tarxetas intelixentes.
- pscd-tools: Ferramentas para interactuar cos lectores de tarxetas intelixentes.
- pinentry-gtk2: Para que nos pida o pin do DNIe en modo gráfico.
apt-get install pcscd pcsc-tools pinentry-gtk2
Unha vez instalado pscd o sistema xa recoñece o lector de tarxetas e lle asigna un módulo para xestionalo.
root@Port-Profes4:/home/usuario# lsusb -t /: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M /: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M |__ Port 2: Dev 2, If 0, Class=Chip/SmartCard, Driver=usbfs, 12M
Comprobamos que funciona correctamente
Empregamos unha das ferramentas proporcionadas por pcsc-tools para comunicarnos co lector de tarxetas intelixentes e obter información da tarxteta intelixente inserida.
root@Port-Profes4:/home/usuario/DNIE# pcsc_scan PC/SC device scanner V 1.4.21 (c) 2001-2011, Ludovic Rousseau <ludovic.rousseau@free.fr> Compiled with PC/SC lite version: 1.8.7 Using reader plug'n play mechanism Scanning present readers... 0: C3PO LTC31 v2 (00416036) 00 00 Fri May 31 14:57:44 2013 Reader 0: C3PO LTC31 v2 (00416036) 00 00 Card state: Card inserted, ATR: 3B 7F 38 00 00 00 6A 44 4E 49 65 10 02 4C 34 01 13 03 90 00 ...... ..... Possibly identified card (using /usr/share/pcsc/smartcard_list.txt): 3B 7F 38 00 00 00 6A 44 4E 49 65 10 02 4C 34 01 13 03 90 00 3B 7F 38 00 00 00 6A 44 4E 49 65 [1,2]0 02 4C 34 01 13 03 90 00 DNI electronico (Spanish electronic ID card) http://www.dnielectronico.es
Podemos probar cunha tarxeta de crédito, pero seguramente non a recoñecerá, xa que non estará na lista de tarxetas coñecidas.
Instalación do “driver” específico para o DNIe
O lector de smartcard funciona correctamente, permite ler a información da tarxeta. Pero para que os programas entendan a información almacenada no DNIe é preciso instalar OpenSC-OpenDNIe.
É dicir, OpenSC con soporte para el DNI electrónico Español. Este é un driver de código aberto para traballar cos lectores de DNIe. É unha versión específica para soportar o DNIe de OpenSC:, que é un standard de manexo de smartcards ou tarxetas criptográficas pkcs#15.
O proxecto OpenSC aceptou os parches propostos para o DNIe no seu árbore de desenvolvemento, polo que nun futuro bastará coa instalación do paquete estándar OpenSC, e este documento carecerá de validez.
O paquete proporcionado na páxina oficial está discontinuado así que empregaremos este. A última versión desenrolada foi para Debian Squeeze.
Obteremos a versión actualizada do driver dende https://github.com/clopez/OpenSC-OpenDNIe-Debian
Git é un dos sistemas de control de versións máis populares entre os desenroladores. Parte culpa da súa popularidade tena GitHub, un excelente servizo de aloxamento de repositorios de software con este sistema
Como o código do noso driver está aloxado en GitHub podemos descargar o código e compilalo para a nosa versión de Debian para crearnos o .deb. Para elo seguimos as instruccións da páxina
- Instalamos dependencias
apt-get install build-essential devscripts dh-autoreconf git-buildpackage
apt-get build-dep opensc
Este último comando instala as dependencias necesarias para compilar o paquete opensc, para elo temos que ter engadida no sources.lst unha liña do tipo deb-src.Por exemplo
deb-src http://ftp.es.debian.org/debian/ jessie main contrib non-free
- Clonar repositorio con gbp: É dicir descargamos o código fonte do repositorio github para compilalo. Procedemos sen necesidade de ser root:
mkdir DNIE
cd DNIE
gbp-clone https://github.com/clopez/OpenSC-OpenDNIe-Debian
Esto creará unha carpeta chamada OpenSC-OpenDNIe-Debian co código fonte. Procederemos á compilación de OpenSC-OpenDNIe
cd OpenSC-OpenDNIe-Debian <br/>
git-buildpackage
Se se produce algún erro e non crea o .deb podemos executalo como git-buildpackage –git-ignore-new.
O proceso finaliza coa seguinte mensaxe de erro. Pero é normal
Now signing changes and any dsc files... signfile opensc_0.12.2-OpenDNIe.dsc Carlos Alberto Lopez Perez <clopez@igalia.com> gpg: directory `/home/usuario/.gnupg' created gpg: creouse un novo ficheiro de configuración `/home/usuario/.gnupg/gpg.conf' gpg: AVISO: as opcións de `/home/usuario/.gnupg/gpg.conf' aínda non están activas nesta execución gpg: chaveiro `/home/usuario/.gnupg/secring.gpg' creado gpg: chaveiro `/home/usuario/.gnupg/pubring.gpg' creado gpg: skipped "Carlos Alberto Lopez Perez <clopez@igalia.com>": a chave secreta non está dispoñible gpg: /tmp/debsign.ZUVJifRs/opensc_0.12.2-OpenDNIe.dsc: clearsign failed: a chave secreta non está dispoñible debsign: gpg error occurred! Aborting.... debuild: fatal error at line 1278: running debsign failed gbp:error: Couldn't run 'debuild -i -I': debuild -i -I returned 29
É normal que falle, está tratando de firmar o paquete empregando gpg, pero é imposible que o firmemos nos, xa que non somos o autor do mesmo e non temos a súa clave privada. Poderíamos modificar a configuración para firmalo coa nosa propia chave gpg si quixeramos, pero non é necesario.
Se todo vai ben obteremos no directorio DNIE o paquete .deb para instalar
- Instalamos o paquete
Como root
dpkg -i opensc_0.12.2-OpenDNIe_amd64.deb
Debemos asegurarnos de que o navegador pode solicitarnos o PIN nun diálogo. O ficheiro /etc/opensc/opensc.conf debe especificar enable_pinpad = false; na sección reader_driver pcsc.
reader_driver pcsc {
......
#
# Enable pinpad if detected (PC/SC v2.0.2 Part 10) </nowiki>
# Default: true
enable_pinpad = false;
#
Imos a configurar o iceweasel. Temos que facer dúas cousas
- Importar certificado da FNMT: É necesario importar no navegador o certificado raíz da DGP. Podemos obtelo no área de descargas de certificados da páxina do DNIe. Descargamos Certificado pkcs1-sha256WithRSAEncryption. Descomprimimos o arquivo e importamos o certificado no navegador.
- Engadir dipositivo de seguridade
Engadimos /usr/lib/x86_64-linux-gnu/opensc-pkcs11.so
Comprobando o seu funcionamento
Podemos comprobar o funcionamento na Páxina de Comprobación, ou ir a unha páxina onde podamos empregar o DNIe, por exempo a páxina de tráfico para comprobar o noso saldo de puntos. Escollemos “Saldo de puntos con certificado”