Hiparco

Recetas y trucos de GNU/Linux e informática en general

Alojado en http://guimi.net

DNIe en Debian GNU/Linux Stretch (9)

Este artículo muestra cómo instalar el DNIe en Debian GNU/Linux Stretch (9) aunque puede aplicar total o parcialmente a otras versiones de GNU/Linux.
Otras versiones: DNIe en GNU/Linux.

Introducción al DNIe

Puedes pasar directamente a la instalación si lo prefieres.

Una vez instalado un lector de DNI-e, también nos sirve para utilizar tarjetas criptográficas CardOs M4 como las que utiliza por ejemplo la Comunidad Valenciana a través de la ACCV.

El DNI electónico o DNIe se puede hacer funcionar en GNU/Linux, tanto para identificarse en webs como para firmar documentos todo con plena validez legal. El problema es que a la hora de hacer los drivers hubo varias chapuzas, problemas con las licencias libres, utilización de librerías incorrectas… Pero el proceso es sencillo una vez lo conoces.

DNIe DNIe

No hay que olvidar que el DNIe tiene sus limitaciones y pegas de seguridad. (Para los “paranoicos” se recomienda utilizar el DNIe únicamente desde sistemas de solo lectura como un CD con Knoppix).
Tampoco hay que olvidar que una firma “normal” es mucho más facil de falsificar que una firma electrónica, pese a que ninguna sea totalmente segura.

Lo primero que hay que saber es que en el DNIe tenemos a nuestra disposición dos certificados, uno para identificarnos (certificado de autenticación) y otro para firmar (certificado de firma), lo que son los dos principales usos del DNIe.

También es importante saber que cada aplicación que utiliza el DNIe establece una “sesión” con el lector de tarjetas y que no puede haber dos sesiones abiertas a la vez. Es decir no podemos usar el DNIe en dos aplicaciones a la vez. Sin embargo muchas aplicaciones no indican adecuadamente esta circunstancia y simplemente parece que no funcionan.
Así por ejemplo si iniciamos sesión en iceweasel/firefox para acceder a una web, no podemos firmar un archivo pdf con sinadura hasta cerrar sesión. Y al revés, tras firmar un fichero con sinadura no nos deja validarnos con iceweasel.
Ante la duda basta con extraer y volver a introducir el DNIe en el lector para asegurarse que está disponible el acceso.

Un último recordatorio, si se introduce el PIN del DNIe erróneamente tres veces seguidas, éste se bloquea. Así que al hacer pruebas con los programas y sus configuraciones hay que tener cuidado. A mí se me bloqueó haciendo pruebas con Sinadura (para desbloquearlo hay que pasar 5 minutos por una comisaria), así que después cada vez que hacía una prueba con un programa si no funcionaba perfectamente iniciaba sesión en iceweasel/firefox.

INSTALACIÓN DEL LECTOR Y LA VERSIÓN DE OPENSC PARA EL DNIe


Como administradores instalamos los paquetes del repositorio:

# aptitude install pcscd pcsc-tools pinentry-gtk2 opensc

generamos un enlace que se queda perdido:

# ln -s /usr/lib/x86_64-linux-gnu/libpcsclite.so.1 /usr/lib/

descargamos e instalamos el paquete de DNI-e:

# wget https://www.dnielectronico.es/descargas/distribuciones_linux/libpkcs11-dnie_1.5.0_amd64.deb
# dpkg -i /home/guimi/xxxxx/libpkcs11-dnie_1.5.0_amd64.deb

¡Ya está instalado! Ahora hagamos unas comprobaciones y veamos como configurarlo y usarlo…

Comprobaciones

Podemos comprobar si el sistema reconoce correctamente el lector con el comando “pcsc_scan” y probando a introducir y sacar el DNIe (u otras tarjetas similares):

$ pcsc_scan
PC/SC device scanner
[...]
Reader 0: ACS ACR 38U-CCID 00 00
  Card state: Card inserted, 
[...]
Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
	DNI electronico (Spanish electronic ID card)
	http://www.dnielectronico.es

 Reader 0: ACS ACR 38U-CCID 00 00
  Card state: Card removed, 

 
Otras pruebas que podemos hacer son:

$ opensc-tool -l
Readers known about:
Nr.    Driver     Name
0      pcsc       C3PO LTC31 (00426664) 00 00
$ opensc-tool -a
Using reader with a card: C3PO LTC31 (00426664) 00 00
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
$ opensc-tool -n
Using reader with a card: C3PO LTC31 (00426664) 00 00
dnie

 

USO Y DISFRUTE

Identificarse en sitios web con Firefox

El DNIe se puede utilizar al navegar para identificarse en un sitio web. Así por ejemplo si nos identificamos en la web de la seguridad social podremos descargarnos al instante nuestra vida laboral y en la pagina de la agencia tributaria podremos hacer todos los trámites de nuestra declaración de la renta.

Primero debemos registrar en Iceweasel/Firefox el módulo de DNIe PKCS#11.
Abrimos el programa, navegamos a “about:preferences#privacy” y pulsamos sobre “Dispositivos de seguridad…“. Seleccionamos “Cargar”, indicamos un nombre, por ejemplo “DNIe OpenSC PKCS#11”, y la ruta del módulo “/usr/lib/libpkcs11-dnietif.so”.
DNIe
 
Si la instalación ha sido correcta y tenemos el lector conectado con un DNIe introducido, nos habilitará la opción “Iniciar sesión” (¡bien!). Puede ser necesario reiniciar el programa.
Si iniciamos sesión nos pedirá el PIN/Clave.
De nuevo desde “about:preferences#privacy” pulsamos sobre “Ver certificados… -> Importar…” e importamos los certificados del DNI-e:

/usr/share/libpkcs11-dnietif/ac_raiz_dnie.crt
/usr/share/libpkcs11-dnietif/FNMTClase2CA.crt

confiando en ellos para todo.
 

 

Comprobaciones
Podemos probar nuestro DNIe en el navegador en la página de verificación de la FNMT.

Si todo ha ido bien el navegador nos pide nuestro PIN para iniciar sesión (si no lo hemos introducido antes):
PIN DNIe

Cuando conectamos con una web en la que debemos identificarnos nos pregunta cuál de los dos certificados (el de firma o el de autenticación) queremos utilizar. Para identificarnos usamos el de autenticación.
Certificado DNIe

Si el navegador nos indica:

El otro extremo de la conexión SSL no puede verificar su certificado.
(Código de error: ssl_error_bad_cert_alert)

Es porque no hemos iniciado sesión correctamente (hemos fallado el PIN 3 veces, no lo hemos puesto, no está bien instalado el lector…).
 
Lo recomendado es “Iniciar sesión” en el navegador solo cuando se necesita y “Terminar sesión” lo antes posible. Si visitamos una página que requiere certificado sin haber iniciado sesión, el navegador nos solicitará el PIN automáticamente, pero para cerrar sesión hay que ir “a mano” a la opción “Dispositivos de seguridad” del menú o sacar el DNIe del lector.
 

Firmar archivos PDF con Sinadura

Otro uso interesante del DNIe es firmar un archivo PDF. Esta firma tiene plena validez legal. Es decir, hasta ahora había que hacer un documento, imprimirlo y después firmarlo a mano. Ahora podemos hacer un documento, guardarlo como PDF (por ejemplo con OpenOffice Writer) y después firmarlo con nuestro DNIe.
Hay que insistir en que tiene plena validez legal. Sirve para hacer contratos, compra ventas, reclamaciones…
Firma digital con Debian GNU/Linux y Sinadura
 

Más posibilidades

Una de las posibilidades que la gente busca es firmar y/o cifrar correos electrónicos con el DNIe.
Hay que decir que técnicamente se puede pero que su validez legal es cuanto menos dudosa, y como lo que se busca con el DNIe es tener validez legal no es muy práctico. Siempre se puede enviar un correo-e “normal” con un pdf firmado como adjunto, por ejemplo un contrato.

Esto es porque técnicamente para firmar y/o cifrar basta con tener un par de claves pública/privada, pero el estándar internacional PKI requiere, para firmar un correo-e, que el certificado de la clave indique una dirección de correo-e, que será la única que se “certificará”. Sin embargo en el DNIe no se indica ninguna dirección de correo-e, por lo que no se puede utilizar las firmas del DNIe para este fin.

Lo más recomendado es firmar y cifrar con claves GPG, u obtener firmas de la FNMT, que sí están preparadas para este propósito.
 

dnie, dni electrónico, linux, debian, stretch

Resizing LVMs

I was deploying a VM and I needed more space for /.
So first I turned off the machine and modified the machine.ovf file to increase de size of the hard disk:
From

<Disk ovf:capacity="8589934592" ovf:diskId="vmdisk2" ovf:fileRef="file1"…

To

<Disk ovf:capacity="28589934592" ovf:diskId="vmdisk2" ovf:fileRef="file1"…

Then I started the VM to expand the fs
Initial situation (take a look at /)

root@machine:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/dm-0       7.2G  5.7G  1.2G  84% /
udev             10M     0   10M   0% /dev
tmpfs           403M  5.5M  397M   2% /run
tmpfs          1006M     0 1006M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs          1006M     0 1006M   0% /sys/fs/cgroup
/dev/sda1       236M   33M  191M  15% /boot

Physical Volumes

root@machine:~# pvs
  PV         VG               Fmt  Attr PSize  PFree
  /dev/sda5  debian-jessie-vg lvm2 a--  26.38g 18.62g

Virtual Groups

root@machine:~# vgs
  VG               #PV #LV #SN Attr   VSize  VFree
  debian-jessie-vg   1   2   0 wz--n- 26.38g 18.62g

Logical Volumes

root@machine:~# lvs
  LV     VG               Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root   debian-jessie-vg -wi-ao----   7.39g
  swap_1 debian-jessie-vg -wi-ao---- 376.00m

So I have one PV with 18 free GB (that’s thanks to the machine.ovf modification), one VG and two LVS. The one I want to increase is “root”.
Just a last check:

root@machine:~# pvscan
  PV /dev/sda5   VG debian-jessie-vg   lvm2 [26.38 GiB / 18.62 GiB free]
  Total: 1 [26.38 GiB] / in use: 1 [26.38 GiB] / in no VG: 0 [0   ]
root@machine:~# lvdisplay
  --- Logical volume ---
  LV Path                /dev/debian-jessie-vg/root
  LV Name                root
  VG Name                debian-jessie-vg
  LV UUID                OdIAov-a7qm-ThOR-58YP-D7FG-zq5n-r73dUq
  LV Write Access        read/write
  LV Creation host, time debian-jessie, 2015-04-27 10:42:28 +0200
  LV Status              available
  # open                 1
  LV Size                7.39 GiB
  Current LE             1892
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0

  --- Logical volume ---
  LV Path                /dev/debian-jessie-vg/swap_1
  LV Name                swap_1
  VG Name                debian-jessie-vg
  LV UUID                dS5vEu-w8LQ-uoZd-IGk8-cmaK-8tBQ-ZtSyvO
  LV Write Access        read/write
  LV Creation host, time debian-jessie, 2015-04-27 10:42:28 +0200
  LV Status              available
  # open                 2
  LV Size                376.00 MiB
  Current LE             94
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:1

So the path for my LV is /dev/debian-jessie-vg/root

And…

root@machine:~# vgdisplay
  --- Volume group ---
  VG Name               debian-jessie-vg
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               26.38 GiB
  PE Size               4.00 MiB
  Total PE              6754
  Alloc PE / Size       1986 / 7.76 GiB
  Free  PE / Size       4768 / 18.62 GiB
  VG UUID               V2oYD9-uoYy-sFLY-QSLG-FPyx-Ejce-QANYo4

…I have 4768 Free PE for it! :-)

So, let’s use them. I extend first the LV:

root@machine:~# lvextend -l +4768 /dev/debian-jessie-vg/root
  Size of logical volume debian-jessie-vg/root changed from 7.39 GiB (1892 extents) to 26.02 GiB (6660 extents).
  Logical volume root successfully resized

Then I resize the fs

root@machine:~# resize2fs /dev/debian-jessie-vg/root
resize2fs ... (it does it all automatically)

And that’s all!
Let’s check:

root@machine:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/dm-0        26G  5.7G   19G  24% /
udev             10M     0   10M   0% /dev
tmpfs           403M  5.5M  397M   2% /run
tmpfs          1006M     0 1006M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs          1006M     0 1006M   0% /sys/fs/cgroup
/dev/sda1       236M   33M  191M  15% /boot
root@machine:~# lvdisplay
  --- Logical volume ---
  LV Path                /dev/debian-jessie-vg/root
  LV Name                root
  VG Name                debian-jessie-vg
  LV UUID                OdIAov-a7qm-ThOR-58YP-D7FG-zq5n-r73dUq
  LV Write Access        read/write
  LV Creation host, time debian-jessie, 2015-04-27 10:42:28 +0200
  LV Status              available
  # open                 1
  LV Size                26.02 GiB
  Current LE             6660
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:0

  --- Logical volume ---
  LV Path                /dev/debian-jessie-vg/swap_1
  LV Name                swap_1
  VG Name                debian-jessie-vg
  LV UUID                dS5vEu-w8LQ-uoZd-IGk8-cmaK-8tBQ-ZtSyvO
  LV Write Access        read/write
  LV Creation host, time debian-jessie, 2015-04-27 10:42:28 +0200
  LV Status              available
  # open                 2
  LV Size                376.00 MiB
  Current LE             94
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           254:1

Grabar el escritorio GNU/Linux

Para grabar el escritorio en GNU/Linux podemos utiliza ffmpeg. Vamos a ver un par de ejemplos.

Grabar el escritorio completo (1680×1050):
ffmpeg -f x11grab -s 1680×1050 -r 25 -i :0.0 -sameq output.mkv
Grabar una parte del escritorio (tamaño 1000×500, offset 100,100):
ffmpeg -f x11grab -s 1000×500 -r 25 -i :0.0+100,100 -sameq output.mkv

También se puede indicar a ffmpeg que grabe una zona que siga al ratón y varios parámetros más. Como siempre:
man ffmpeg

Otros programas que se pueden usar para capturar el escritorio son VLC, gtk-recordmydesktop, recordmydesktop.

Relacionado: Retocar videos
También recomiendo OpenShot para editar videos de forma gráfica.

Añadir framebuffer con Grub 2

Me sucedió con un equipo con tarjeta gráfica integrada de Intel, que al arrancar el entorno gráfico se perdía el acceso a las tty [1-6] y además se colgaba el apagado / reinicio. Sin embargo si arrancaba sin entorno gráfico no había problema.
El problema era que las X usaban directamente la tarjeta, sin usar framebuffer.

$ grep EE /var/log/Xorg.0.log
...
(EE) open /dev/fb0: No such file or directory
...

1. Comprobar los modos disponibles:

# hwinfo --framebuffer
...
  Hardware Class: framebuffer
  Model: ""
  Vendor: ""
  Device: ""
  SubVendor: "Intel(R) HSW Mobile/Desktop Graphics Chipset Accelerated VGA BIOS"
  SubDevice: 
  Revision: ""
  Memory Size: 31 MB + 960 kB
  Memory Range: 0xe0000000-0xe1feffff (rw)
  Mode 0x0307: 1280x1024 (+1280), 8 bits
  Mode 0x031a: 1280x1024 (+2560), 16 bits
  Mode 0x031b: 1280x1024 (+5120), 24 bits
  Mode 0x0305: 1024x768 (+1024), 8 bits
  Mode 0x0317: 1024x768 (+2048), 16 bits
  Mode 0x0318: 1024x768 (+4096), 24 bits
  Mode 0x0312: 640x480 (+2560), 24 bits
  Mode 0x0314: 800x600 (+1600), 16 bits
  Mode 0x0315: 800x600 (+3200), 24 bits
  Mode 0x0301: 640x480 (+640), 8 bits
  Mode 0x0303: 800x600 (+832), 8 bits
  Mode 0x0311: 640x480 (+1280), 16 bits
  Mode 0x037d: 1680x1050 (+1728), 8 bits
  Mode 0x037e: 1680x1050 (+3392), 16 bits
  Mode 0x037f: 1680x1050 (+6720), 24 bits
  Config Status: cfg=new, avail=yes, need=no, active=unknown

2. Configurar framebuffer en Grub2

vi /etc/default/grub
#GRUB_GFXMODE=640x480
GRUB_GFXMODE=800x600
GRUB_GFXPAYLOAD_LINUX=800x600
# Podriamos usar, por ejemplo
#GRUB_GFXMODE=1280x1024
#GRUB_GFXPAYLOAD_LINUX=1280x1024x16

3. Activar la nueva configuración en Grub

# update-grub

4. Reiniciar

grub, grub2, framebuffer, fb
 

Firma digital con Debian GNU/Linux y Sinadura

Uno de los usos interesantes del DNIe es firmar un archivo PDF. Esta firma tiene plena validez legal. Es decir, hasta hace poco había que hacer un documento, imprimirlo y después firmarlo a mano. Ahora podemos hacer un documento, guardarlo como PDF (por ejemplo con OpenOffice Writer) y después firmarlo con nuestro DNIe.
Hay que insistir en que tiene plena validez legal. Sirve para hacer contratos, compra ventas, reclamaciones…

Sinadura permite firmar digitalmente tanto archivos PDF como otro tipo de archivos.

Vamos a instalar Sinadura 3.3.3 en Debian GNU/Linux Wheezy (Debian 7).

Primero descargamos Sinadura, en este caso he descargado la versión 3.3.3 para GNU/Linux de 64 bits:

$ wget http://www.sinadura.net/documents/18043/196213/sinaduraDesktop-3.3.3-unix64-installer.jar

Su instalación es muy sencilla, basta con hacer:

$ java -jar sinaduraDesktop-3.3.3-unix64-installer.jar

y seguir el típico asistente de “siguiente”, “siguiente”, “siguiente”…

…pero no funciona todavía. Hay que modificar un detalle de opensc:

# vi /etc/opensc/opensc.conf

Buscar y descomentar (quitar el ‘#’) la siguiente línea:

# plug_and_play = false;
 plug_and_play = false;

Para configurar Sinadura vamos a “Archivo -> Preferencias -> Firma -> Certificados“, y elegir “Tarjeta Inteligente“.
También recomiendo ir a “Archivo -> Preferencias -> Firma -> PDF” y seleccionar otra imagen ya que la que viene por omisión (el logo de Sinadura) apenas permite leer el texto insertado. De paso cambiamos la razón, la ubicación y la certificación por defecto (No permitir cambios).
Yo me he creado una imagen muy clarita del DNIe en grises y la he copiado en /sinadura/resources/images.
 

Utilizamos el botón “Añadir documentos” para seleccionar el documento pdf a firmar, en mi caso “prueba.pdf” y pulsamos “Firmar“.
DNIe

El programa carga el certificado (la primera vez tarda un poco, si se cuelga probablemente sea por un problema de sesiones: sacar e introducir el DNI) y después nos pide el PIN del DNIe.
DNIe

Después elegimos el certificado a utilizar, en este caso el certificado de firma:
DNIe

Nos solicita una confirmación:
DNIe

Y ya está. Podemos verificar cualquier documento firmado también desde Sinadura. Primero lo seleccionamos y después utilizamos el botón “Validar
DNIe

firma digital, dnie, dni electrónico, linux, debian, wheezy, sinadura

DNIe en Debian GNU/Linux Wheezy

Este artículo muestra cómo instalar el DNIe en Debian GNU/Linux Wheezy aunque puede aplicar total o parcialmente a otras versiones de GNU/Linux.
Otras versiones: DNIe en GNU/Linux.

Introducción al DNIe

Puedes pasar directamente a la instalación si lo prefieres.

Una vez instalado un lector de DNI-e, también nos sirve para utilizar tarjetas criptográficas CardOs M4 como las que utiliza por ejemplo la Comunidad Valenciana a través de la ACCV.

El DNI electónico o DNIe se puede hacer funcionar en GNU/Linux, tanto para identificarse en webs como para firmar documentos todo con plena validez legal. El problema es que a la hora de hacer los drivers hubo varias chapuzas, problemas con las licencias libres, utilización de librerías incorrectas… Pero el proceso es sencillo una vez lo conoces.

DNIe DNIe

No hay que olvidar que el DNIe tiene sus limitaciones y pegas de seguridad. (Para los “paranoicos” se recomienda utilizar el DNIe únicamente desde sistemas de solo lectura como un CD con Knoppix).
Tampoco hay que olvidar que una firma “normal” es mucho más facil de falsificar que una firma electrónica, pese a que ninguna sea totalmente segura.

Lo primero que hay que saber es que en el DNIe tenemos a nuestra disposición dos certificados, uno para identificarnos (certificado de autenticación) y otro para firmar (certificado de firma), lo que son los dos principales usos del DNIe.

También es importante saber que cada aplicación que utiliza el DNIe establece una “sesión” con el lector de tarjetas y que no puede haber dos sesiones abiertas a la vez. Es decir no podemos usar el DNIe en dos aplicaciones a la vez. Sin embargo muchas aplicaciones no indican adecuadamente esta circunstancia y simplemente parece que no funcionan.
Así por ejemplo si iniciamos sesión en iceweasel/firefox para acceder a una web, no podemos firmar un archivo pdf con sinadura hasta cerrar sesión. Y al revés, tras firmar un fichero con sinadura no nos deja validarnos con iceweasel.
Ante la duda basta con extraer y volver a introducir el DNIe en el lector para asegurarse que está disponible el acceso.

Un último recordatorio, si se introduce el PIN del DNIe erróneamente tres veces seguidas, éste se bloquea. Así que al hacer pruebas con los programas y sus configuraciones hay que tener cuidado. A mí se me bloqueó haciendo pruebas con Sinadura (para desbloquearlo hay que pasar 5 minutos por una comisaria), así que después cada vez que hacía una prueba con un programa si no funcionaba perfectamente iniciaba sesión en iceweasel/firefox.

INSTALACIÓN DEL LECTOR Y LA VERSIÓN DE OPENSC PARA EL DNIe


Primero descargamos, como usuario, el paquete opensc de Cenatic (Centro Nacional de Referencia de Aplicación de las TIC). En el ejemplo, para un Debian Wheezy de 64 bits. Otras versiones en la página de Cenatic.

$ wget http://forja.cenatic.es/frs/download.php/file/1303/opensc_0.12.1-1-svn385_amd64.deb

Como administradores instalamos los paquetes del repositorio:

# aptitude install pcscd pcsc-tools pinentry-gtk2

generamos un enlace que se queda perdido:

# ln -s /usr/lib/x86_64-linux-gnu/libpcsclite.so.1 /usr/lib/

e instalamos el paquete de Cenatic:

# dpkg -i /home/guimi/xxxxx/opensc_0.12.1-1-svn385_amd64.deb

Bloqueamos el paquete opensc para que no se actualicen, ya que los de la distribución son más modernos pero el DNIe no funciona con ellos:

# aptitude hold opensc

¡Ya está instalado! Ahora hagamos unas comprobaciones y veamos como configurarlo y usarlo…

Comprobaciones

Podemos comprobar si el sistema reconoce correctamente el lector con el comando “pcsc_scan” y probando a introducir y sacar el DNIe (u otras tarjetas similares):

$ pcsc_scan
PC/SC device scanner
[...]
Reader 0: ACS ACR 38U-CCID 00 00
  Card state: Card inserted, 
[...]
Possibly identified card (using /usr/share/pcsc/smartcard_list.txt):
XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX
	DNI electronico (Spanish electronic ID card)
	http://www.dnielectronico.es

 Reader 0: ACS ACR 38U-CCID 00 00
  Card state: Card removed, 

 
Otras pruebas que podemos hacer son (estas con una tarjeta CardOs M4):

$ opensc-tool -l
Readers known about:
Nr.    Driver     Name
0      pcsc       C3PO LTC31 (00426664) 00 00
$ opensc-tool -a
Using reader with a card: C3PO LTC31 (00426664) 00 00
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
$ opensc-tool -n
Using reader with a card: C3PO LTC31 (00426664) 00 00
CardOS M4

USO Y DISFRUTE

Identificarse en sitios web con Iceweasel/Firefox

El DNIe se puede utilizar al navegar para identificarse en un sitio web. Así por ejemplo si nos identificamos en la web de la seguridad social podremos descargarnos al instante nuestra vida laboral.

Primero debemos registrar en Iceweasel/Firefox el módulo de DNIe PKCS#11. abrimos el programa y vamos a “Editar -> Preferencias -> Avanzado -> Cifrado -> Dispositivos de seguridad“. Seleccionamos “Cargar”, indicamos un nombre, por ejemplo “DNIe – OpenSC PKCS#11”, y la ruta del módulo “/usr/lib/opensc-pkcs11.so”.
DNIe
 
Si la instalación ha sido correcta y tenemos el lector conectado con un DNIe introducido, nos habilitará la opción “Iniciar sesión” (¡bien!). Puede ser necesario reiniciar el programa.
Si iniciamos sesión nos pedirá el PIN, pero antes es mejor reiniciar el navegador para que nos pida instalar el certificado de la DGP (Dirección General de la Policia).

De la página de la DGP descargamos el certificado raíz con el navegador o con el comando:
$ wget http://www.dnielectronico.es/ZIP/ACRAIZ-SHA2.zip
Lo descomprimos haciendo doble-click o con el comando:
$ unzip ACRAIZ-SHA2.zip
Y lo cargamos en Iceweasel desde “Editar -> Preferencias -> Avanzado -> Cifrado -> Ver certificados -> Importar…” confiando en él para todo.

 

Comprobaciones
Podemos probar nuestro DNIe en el navegador en la página de verificación del portal oficial (el enlace para la verificación está al final de esa página).

Si todo ha ido bien el navegador nos pide nuestro PIN para iniciar sesión (si no lo hemos introducido antes):
PIN DNIe

Cuando conectamos con una web en la que debemos identificarnos nos pregunta cuál de los dos certificados (el de firma o el de autenticación) queremos utilizar. Para identificarnos usamos el de autenticación.
Certificado DNIe

Si el navegador nos indica:

El otro extremo de la conexión SSL no puede verificar su certificado.
(Código de error: ssl_error_bad_cert_alert)

Es porque no hemos iniciado sesión correctamente (hemos fallado el PIN 3 veces, no lo hemos puesto, no está bien instalado el lector…).
 
Lo recomendado es “Iniciar sesión” en el navegador solo cuando se necesita y “Terminar sesión” lo antes posible. Si visitamos una página que requiere certificado sin haber iniciado sesión, el navegador nos solicitará el PIN automáticamente, pero para cerrar sesión hay que ir “a mano” a la opción “Dispositivos de seguridad” del menú o sacar el DNIe del lector.
 

Firmar archivos PDF con Sinadura

Otro uso interesante del DNIe es firmar un archivo PDF. Esta firma tiene plena validez legal. Es decir, hasta ahora había que hacer un documento, imprimirlo y después firmarlo a mano. Ahora podemos hacer un documento, guardarlo como PDF (por ejemplo con OpenOffice Writer) y después firmarlo con nuestro DNIe.
Hay que insistir en que tiene plena validez legal. Sirve para hacer contratos, compra ventas, reclamaciones…
Firma digital con Debian GNU/Linux y Sinadura
 

Más posibilidades

Una de las posibilidades que la gente busca es firmar y/o cifrar correos electrónicos con el DNIe.
Hay que decir que técnicamente se puede pero que su validez legal es cuanto menos dudosa, y como lo que se busca con el DNIe es tener validez legal no es muy práctico. Siempre se puede enviar un correo-e “normal” con un pdf firmado como adjunto, por ejemplo un contrato.

Esto es porque técnicamente para firmar y/o cifrar basta con tener un par de claves pública/privada, pero el estándar internacional PKI requiere, para firmar un correo-e, que el certificado de la clave indique una dirección de correo-e, que será la única que se “certificará”. Sin embargo en el DNIe no se indica ninguna dirección de correo-e, por lo que no se puede utilizar las firmas del DNIe para este fin.

Lo más recomendado es firmar y cifrar con claves GPG, u obtener firmas de la FNMT, que sí están preparadas para este propósito.
 

dnie, dni electrónico, linux, debian, wheezy

Recuperar archivos borrados en GNU/Linux (undelete ext3/ext4)

Cuando se borran archivos accidentalmente lo primero que hay que intentar es que nada sobre-escriba el espacio que ocupaban.

A veces al instalar el programa que recupera archivos podemos sobreescribirlos. Por eso recomiendo instalar la aplicación en cualquier sistema, sin esperar a necesitarlo.

SI EL ARCHIVO TODAVÍA ESTÁ ABIERTO
Si hemos borrado un archivo que está abierto, hay una copia de él. No cierres la aplicación que lo tiene abierto.
Comprobamos si es el caso, por ejemplo con

 lsof | grep Hank_Mobley
totem     25655         guimi   21u      REG                8,4  5477902   55689957 /home/guimi/Hank_Mobley-Soul_Station/01-Remember_(Irving_Berlin)-Hank_Mobley.mp3

Nos fijamos en que el proceso que tiene abierto el fichero es el 25655 y le ha asignado el número 21.
Recuperamos el fichero con:

cp /proc/25655/fd/21 otra/ubicacion/01-Remember_(Irving_Berlin)-Hank_Mobley.mp3

INSTALACIÓN DE EXTUNDELETE
En este caso la aplicación que vamos a utilizar es extundelete.
Otra herramienta, solo para ext3, es ext3grep.

Como es habitual basta con:

 aptitude install extundelete

USO
Supongamos que tenemos la partición “/dev/sda4” montada como “/home” y que hemos borrado el archivo “/home/guimi/ejemplo.txt”. Por tanto la ruta relativa del fichero en el dispositivo es guimi/ejemplo.txt.

Primero desmontamos la partición implicada:

 umount /dev/sda4

Considera la opción de copiar toda la partición con dd.

Después recuperamos el archivo con:

 extundelete --restore-file guimi/ejemplo.txt /dev/sda4

Si queremos recuperar el contenido de un directorio entero, por ejemplo “/home/guimi/ejemplo/” ejecutamos:

 extundelete --restore-directory guimi/ejemplo /dev/sda4

Otras opciones interesantes son –before y –after.

OTRAS OPCIONES
También se puede probar a usar photorec.

Instalar una impresora

Instalar una impresora hoy día en Debian y Gnome es una de las cosas más sencillas. Si la conexión es USB simplemente hay que conectarla y el sistema la detecta e instala en un menos de un minuto. Sin preguntas, sin problemas… nada, la instala.

Si se desea una mejor compatibilidad con impresoras HP, ésta compañía facilita el uso de sus impresoras en GNU/Linux mediante el proyecto HP Linux Imaging and Printing (HPLIP) y los drivers HPIJS.
Para ello:

  1. Instalamos los paquetes con
     aptitude install hplip hpijs foomatic-db-hpijs
  2. Conectar la impresora y ¡Ya está! La instala sola sin molestarte con siguiente, siguiente ni nada ¡Así debería ser siempre! :-)
  3. Si por un casual no basta con pinchar la impresora podemos utilizar el comando hp-setup (Intro, intro, intro…)

Otra forma muy sencilla de instalar una impresora es utilizando el sistema CUPS (http://localhost:631). CUPS detecta las impresoras y ayuda a seleccionar el controlador (drivers) necesario.
Si el sistema detecta la impresora pero no encontramos el modelo en la lista, hay que localizar el fichero ppd correspondiente en internet (Google es tu amigo).