<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Hiparco &#187; seguridad</title>
	<atom:link href="http://guimi.net/blogs/hiparco/category/seguridad/feed/" rel="self" type="application/rss+xml" />
	<link>http://guimi.net/blogs/hiparco</link>
	<description>Recetas y trucos de Linux e informática en general</description>
	<lastBuildDate>Mon, 23 Jan 2012 13:42:20 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Copias de seguridad en PostgreSQL</title>
		<link>http://guimi.net/blogs/hiparco/copias-de-seguridad-en-postgresql/</link>
		<comments>http://guimi.net/blogs/hiparco/copias-de-seguridad-en-postgresql/#comments</comments>
		<pubDate>Thu, 19 Jan 2012 08:21:41 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[BBDD]]></category>
		<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=837</guid>
		<description><![CDATA[Si tenemos una base de datos con información importante, es imprescindible hacer copias de seguridad.
Para ello, con postgres, podemos utilizar el siguiente script:
#!/bin/bash
#
# pg_copia.sh
# Por Guimi 2008/11 - http://www.guimi.net
# Basado en un script de http://www.cyberciti.biz/tips/howto-backup-postgresql-databases.html
#

##########################
# PARAMETROS
DIR="/var/lib/postgresql/copias"
LOG="pg_copia.log"

# Vamos al directorio de copias
cd $DIR

# Marcamos el inicio del script en el registro
echo "["`date +%C%y/%m/%d-%X`"] --- Iniciando pg_copia [...]]]></description>
			<content:encoded><![CDATA[<p>Si tenemos una base de datos con información importante, es imprescindible hacer copias de seguridad.</p>
<p>Para ello, con postgres, podemos utilizar el siguiente script:</p>
<pre class="codigo">#!/bin/bash
#
# pg_copia.sh
# Por Guimi 2008/11 - http://www.guimi.net
# Basado en un script de http://www.cyberciti.biz/tips/howto-backup-postgresql-databases.html
#

##########################
# PARAMETROS
DIR="/var/lib/postgresql/copias"
LOG="pg_copia.log"

# Vamos al directorio de copias
cd $DIR

# Marcamos el inicio del script en el registro
echo "["`date +%C%y/%m/%d-%X`"] --- Iniciando pg_copia ---" >> $LOG

# Obtenemos la lista de BBDD, excluyendo template0 y template1
LISTA_BBDD=$(psql -l | awk '{ print $1}' | grep -vE '^-|^:|^List|^Name|^Nombre|^\(|template[0|1]')
# Para cada BBDD hacemos un volcado
for BBDD in $LISTA_BBDD
do
  FICHERO_COPIA="$BBDD.sql.gz"
  # Rotamos copias anteriores
  mv $FICHERO_COPIA".004" $FICHERO_COPIA".005" > /dev/null 2>&#038;1
  mv $FICHERO_COPIA".003" $FICHERO_COPIA".004" > /dev/null 2>&#038;1
  mv $FICHERO_COPIA".002" $FICHERO_COPIA".003" > /dev/null 2>&#038;1
  mv $FICHERO_COPIA".001" $FICHERO_COPIA".002" > /dev/null 2>&#038;1
  mv $FICHERO_COPIA $FICHERO_COPIA".001" > /dev/null 2>&#038;1
  # Hacemos la copia
  pg_dump $BBDD | gzip -c > $FICHERO_COPIA
  # Marcamos en el registro la copia
  if [ "$?" -eq 0 ]
  then
    echo "[OK] $BBDD copiada" >> $LOG
  else
    echo "[ERROR $?] $BBDD NO copiada" >> $LOG
  fi
done

#Para restaurar una copia use:
# gunzip $FICHERO_COPIA
# psql -d $BBDD -f $FICHERO_COPIA > dump_$BBDD.log
</pre>
<p>
&nbsp;<br />
Podemos programar el sistema para que realice copias automáticamente de forma regular mediante <font class="comando">crontab -e</font>.</p>
<p>Para restaurar una copia usamos:<br />
<font class="comando">$ gunzip miBD.sql.gz<br />
$ psql -d miBD -f miBD.sql.gz > dump_miBD.log</font></p>
<p>De esta manera también podemos &#8220;llevarnos&#8221; una BDD de un servidor a otro. Primero hacemos la copia de seguridad en el servidor &#8216;origen&#8217;, y después en el servidor &#8216;destino&#8217; creamos la BD y restauramos la copia:<br />
<font class="comando">$ createdb -O mi_usuario miBD<br />
$ gunzip miBD.sql.gz<br />
$ psql -d miBD -f miBD.sql.gz > dump_miBD.log</font></p>
<div class="keywords"><b>postgres, copia de seguridad, backup postgres</b></div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/copias-de-seguridad-en-postgresql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilizando el navegador para decodificar base64</title>
		<link>http://guimi.net/blogs/hiparco/utilizando-el-navegador-para-decodificar-base64/</link>
		<comments>http://guimi.net/blogs/hiparco/utilizando-el-navegador-para-decodificar-base64/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 11:57:03 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=705</guid>
		<description><![CDATA[Esta nota procede de &#8220;Use your browser to decode base64 encoded data&#8221; de Cristian Radulescu.
Los navegadores puede decodificar base64, por eso se usa este sistema para &#8220;ofuscar&#8221; partes de código.
Para &#8220;desofuscarlo&#8221; basta con preguntarle al propio navegador introduciendo una cadena URI normal.
Así, por ejemplo, podemos poner en la barra del navegador:
data:text/plain;base64,bWVzc2FnZSBlbmNvZGVkIGluIGJhc2U2NA==
Y el navegador nos mostrará:
message [...]]]></description>
			<content:encoded><![CDATA[<p>Esta nota procede de &#8220;<a href="http://cristian-radulescu.ro/article/use-your-browser-to-decode-base64-encoded-data.html">Use your browser to decode base64 encoded data</a>&#8221; de Cristian Radulescu.</p>
<p>Los navegadores puede decodificar base64, por eso se usa este sistema para &#8220;ofuscar&#8221; partes de código.<br />
Para &#8220;desofuscarlo&#8221; basta con preguntarle al propio navegador introduciendo una cadena URI normal.<br />
Así, por ejemplo, podemos poner en la barra del navegador:</p>
<div class="comando">data:text/plain;base64,bWVzc2FnZSBlbmNvZGVkIGluIGJhc2U2NA==</div>
<p>Y el navegador nos mostrará:</p>
<div class="codigo">message encoded in base64</div>
<div class="keywords">base64</div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/utilizando-el-navegador-para-decodificar-base64/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configuración de ssh</title>
		<link>http://guimi.net/blogs/hiparco/configuracion-de-ssh/</link>
		<comments>http://guimi.net/blogs/hiparco/configuracion-de-ssh/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 12:19:01 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[Redes]]></category>
		<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=625</guid>
		<description><![CDATA[Configuración segura
Para mayor seguridad cambiamos el puerto, reducimos el tiempo de login y no permitimos conexiones de root
# vi /etc/ssh/sshd_config

Port xxxx
LoginGraceTime 45
PermitRootLogin no

Solo permitimos acceder por ssh a los usuarios indicados en el fichero /etc/loginusers
# vi /etc/pam.d/sshd

#auth       required     pam_env.so # [1]
auth     [...]]]></description>
			<content:encoded><![CDATA[<h3>Configuración segura</h3>
<p>Para mayor seguridad cambiamos el puerto, reducimos el tiempo de login y no permitimos conexiones de root<br />
<font class="comando"># vi /etc/ssh/sshd_config</font></p>
<pre class="codigo">
Port xxxx
LoginGraceTime 45
PermitRootLogin no
</pre>
<p>Solo permitimos acceder por ssh a los usuarios indicados en el fichero /etc/loginusers<br />
<font class="comando"># vi /etc/pam.d/sshd</font></p>
<pre class="codigo">
#auth       required     pam_env.so # [1]
auth       required     pam_listfile.so sense=allow onerr=fail item=user file=/etc/loginusers
</pre>
<p>Creamos el fichero /etc/loginusers con los usuarios autorizados:<br />
<font class="comando"># vi /etc/loginusers</font></p>
<pre class="codigo">
guimi
</pre>
<p>Como usuario (&#8217;guimi&#8217; en el ejemplo) generamos las claves dsa y asignamos una <i>passphrase</i><br />
<font class="comando">$ ssh-keygen -t dsa</font></p>
<p>Para cambiar (o des/asignar) una <i>passphrase</i><br />
<font class="comando">$ ssh-keygen -p -f .ssh/id_dsa</font><br />
Se recomienda cambiar la <i>passphrase</i> regularmente.</p>
<p>Autorizamos la clave publica<br />
<font class="comando">$ cat .ssh/id_dsa.pub &gt; .ssh/authorized_keys</font><br />
Ajustamos los permisos:<br />
<font class="comando">$ chmod 700 ~/.ssh</font><br />
<font class="comando">$ chmod 600 ~/.ssh/*</font><br />
<font class="comando">$ chmod g-w ~/</font></p>
<p>La clave privada (id_dsa) se tiene que copiar en los clientes de ssh a trav&eacute;s de alg&uacute;n medio seguro. Por ejemplo en un lapiz USB, pero NO a trav&eacute;s de correo-e normal.</p>
<p>En este momento es posible conectarse desde otra maquina utilizando login y contrase&ntilde;a como siempre (<font class="comando">$ ssh usuario@maquina -p xxxx</font>) o usando el fichero de clave privada y conociendo la <i>passphrase</i> (<font class="comando">$ ssh usuario@maquina -p xxxx -i id_dsa_copiada</font>).</p>
<p>Para permitir solo el uso de certificados reconfiguramos sshd desautorizando las autentificaciones por contrase&ntilde;a<br />
<font class="comando"># vi /etc/ssh/sshd_config</font></p>
<pre class="codigo">
PasswordAuthentication no
</pre>
<p>Reiniciamos el servicio<br />
<font class="comando"># /etc/init.d/ssh restart</font></p>
<h3>Uso de scp</h3>
<p>Recordemos que también se puede usar ssh para copiar ficheros de forma segura, tanto para copiar un fichero remoto al cliente:<br />
<font class="comando">$ scp -P xxxx -i id_dsa_copiada usuario@maquina:/ruta/fichero .</font><br />
Como para copiar un fichero local al equipo remoto:<br />
<font class="comando">$ scp -P xxxx -i id_dsa_copiada /ruta/fichero usuario@maquina:/ruta/</font></p>
<h3>Túneles SSH</h3>
<p>Recordemos que podemos usar SSH para generar túneles seguros. Por ejemplo si queremos conectar a un servicio del equipo en el puerto 5432 (el puerto habitual de PostgreSQL) podemos hacer:<br />
<font class="comando">$ ssh usuario@servidor -p xxxx -i id_dsa_copiada -L 5432:localhost:5555</font><br />
Esto indica que en la máquina cliente, desde la que ejecutamos ssh, el puerto 5555 se dirige al puerto 5432 de la máquina que el servidor de SSH conoce como &#8220;localhost&#8221;, es decir la máquina servidor.<br />
Así también podríamos hacer un túnel ssh a una máquina vecinas del servidor (-L 5432:vecina:555).<br />
Una vez conectado el túnel, en la máquina cliente (la que lanza el ssh) puedo utilizar un cliente de postgres y decirle que se conecte al puerto local 5555 y en realidad estaré conectando al servidor Postgres remoto de forma segura.</p>
<h3>Cliente PuTTY para Windows</h3>
<p>Para usar la clave en <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html" class="externo">PuTTY</a> (Windows):</p>
<ol>
<li>Copiamos la clave al equipo</p>
<li>Usamos PuTTYGen para importar la clave y guardarla como .ppk
<ul>
<li>Conversions-&gt;Import key</p>
<li>Introducir la passphrase
<li>Pulsar &#8220;Save private key&#8221; y guardarla con extensi&oacute;n .ppk
</ul>
<li>Al hacer la conexi&oacute;n, en el men&uacute; SSH-&gt;Auth seleccionamos nuestro fichero .ppk
<li>Si al conectar muestra el error &#8220;<font class="comentario">Key is of wrong type (PuTTY SSH2 private key)</font>&#8220;, seleccionar en PuTTY Connections-&gt;SSH el protocolo &#8220;2&#8243;.
</ol>
<div class="keywords"><b>SSH, SSL, túnel SSH, openssh-server</b></div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/configuracion-de-ssh/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Clave de root MySQL</title>
		<link>http://guimi.net/blogs/hiparco/clave-de-root-mysql/</link>
		<comments>http://guimi.net/blogs/hiparco/clave-de-root-mysql/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 08:56:08 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[BBDD]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=611</guid>
		<description><![CDATA[Para poner o cambiar la clave de root de MySQL basta con:
# mysql -u root -D mysql

mysql> update user set password=password('mi_clave') where user='root';
mysql> quit

# /etc/init.d/mysql stop
# /etc/init.d/mysql start
Alternativamente:
# mysqladmin -u root password &#8216;new-password&#8217;
# /etc/init.d/mysql stop
# /etc/init.d/mysql start
Opcional:
# vi /root/.my.cnf

[mysqladmin]
user            = root
password    [...]]]></description>
			<content:encoded><![CDATA[<p>Para poner o cambiar la clave de root de MySQL basta con:<br />
<font class="comando"># mysql -u root -D mysql<br /></font></p>
<pre class="codigo">
mysql> update user set password=password('mi_clave') where user='root';
mysql> quit
</pre>
<p><font class="comando"># /etc/init.d/mysql stop<br />
# /etc/init.d/mysql start<br /></font></p>
<p>Alternativamente:<br />
<font class="comando"># mysqladmin -u root password &#8216;new-password&#8217;<br />
# /etc/init.d/mysql stop<br />
# /etc/init.d/mysql start<br /></font></p>
<p>Opcional:<br />
<font class="comando"># vi /root/.my.cnf<br /></font></p>
<pre class="codigo">
[mysqladmin]
user            = root
password        = mi_clave
</pre>
<p><font class="comando"># chmod 0600 /root/.my.cnf<br /></font></p>
<p><span class="keywords"><b>clave, root, MySQL</b></span></p>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/clave-de-root-mysql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DNIe en Debian GNU/Linux Squeeze</title>
		<link>http://guimi.net/blogs/hiparco/dnie-en-debian-gnulinux-squeeze/</link>
		<comments>http://guimi.net/blogs/hiparco/dnie-en-debian-gnulinux-squeeze/#comments</comments>
		<pubDate>Tue, 14 Jun 2011 10:36:07 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Software Libre]]></category>
		<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=585</guid>
		<description><![CDATA[Este artículo muestra cómo instalar el DNIe en Debian GNU/Linux Squeeze.
Para instalar el DNIe en Debian Lenny y en Ubuntu Karmic Koala visitar el siguiente artículo: DNIe en GNU/Linux.
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 [...]]]></description>
			<content:encoded><![CDATA[<p>Este artículo muestra cómo instalar el DNIe en <a href="http://www.debian.org" class="externo">Debian GNU/Linux Squeeze</a>.</p>
<p>Para instalar el DNIe en <a href="http://www.debian.org" class="externo">Debian Lenny</a> y en <a href="http://www.ubuntu.com" class="externo">Ubuntu Karmic Koala</a> visitar el siguiente artículo: <a href="http://guimi.net/blogs/hiparco/dnie-en-gnulinux/">DNIe en GNU/Linux</a>.</p>
<p>Una vez instalado un lector de DNI-e, también nos sirve para <a href="http://guimi.net/blogs/hiparco/tarjeta-cardos-m4-en-gnulinux/">utilizar tarjetas criptográficas CardOs M4</a> como las que utiliza por ejemplo la Comunidad Valenciana a través de la <a href="http://www.accv.es/" class="externo">ACCV</a>.</p>
<p>El DNI electónico o DNIe se puede hacer funcionar en GNU/Linux, tanto <b>para identificarse</b> en webs como <strong>para firmar documentos</strong> todo con <b>plena validez legal</b>. 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&#8230; Así que para instalarlo en Debian Squeeze hace falta utilizar un poco de magia ;-) Que es un modo más bonito de decir que hay que parchear la instalación para que funcionen los paquetes.</p>
<p><center><img src="/imgs/blog/dnie/logo-dni-electronico.jpg" alt="DNIe" /> <img src="/imgs/blog/dnie/DNIe_75.png" alt="DNIe" /></center><br />
No hay que olvidar que el DNIe tiene sus limitaciones y pegas de seguridad. (Para los &#8220;paranoicos&#8221; se recomienda utilizar el DNIe únicamente desde sistemas de solo lectura como un CD con <a href="http://www.knoppix.net" class="externo">Knoppix</a>).<br />
Tampoco hay que olvidar que una firma &#8220;normal&#8221; es mucho más facil de falsificar que una firma electrónica, pese a que ninguna sea totalmente segura.<br />
&nbsp;<br />
Las siguientes instrucciones se han probado en <a href="http://www.debian.org" class="externo">Debian Squeeze</a> con un lector <a href="http://c3po.es/ltc31.html" class="externo">C3PO LTC31</a> (de venta en las oficinas de correos por 19,90 &euro;), con un &#8220;<a href="http://www.bit4id.com/" class="externo">miniLector Bit4id</a>&#8221; del <a href="http://www.planavanza.es/" class="externo">plan avanza2</a> (es un <a href="http://www.acs.com.hk/index.php?pid=product&#038;id=ACR38" class="externo">Advanced Card Systems ACR38-U</a> pero con una caja blanca) y con un lector <a href="http://www.hidglobal.com/prod_detail.php?prod_id=186">Omnikey 3021</a>.<br />
<center><img src="/imgs/blog/dnie/C3PO_LTC31.jpg" alt="C3PO_LTC31" /> <img src="/imgs/blog/dnie/ACS_ACR38-U.jpg" alt="ACS_ACR38-U" /> <img src="/imgs/blog/dnie/omnikey_3021.jpg" alt="Omnikey 3021" /></center><br />
&nbsp;</p>
<h2>INSTALACIÓN DEL LECTOR</h2>
<p>Básicamente <b>vamos a instalar los paquetes de Debian Lenny en nuestro Squeeze</b>.</p>
<pre class="codigo">$ wget http://www.dnielectronico.es/descargas/PKCS11_para_Sistemas_Unix/1.4.6.Debian_Lenny_32/Debian_Lenny_opensc-dnie_1.4.6-2_i386.deb.tar</pre>
<p>Para hacerlos funcionar necesitaremos un par de librerías del repositorio de Lenny:</p>
<pre class="codigo">$ wget http://ftp.es.debian.org/debian/pool/main/libt/libtool/libltdl3_1.5.26-4+lenny1_i386.deb
$ wget http://ftp.es.debian.org/debian/pool/main/o/openct/libopenct1_0.6.14-3_i386.deb</pre>
<p>Instalamos los paquetes:</p>
<pre class="codigo">$ tar xvf Debian_Lenny_opensc-dnie_1.4.6-2_i386.deb.tar
libopensc2_0.11.7-7_i386.deb
opensc-dnie_1.4.6-2_i386.deb
opensc_0.11.7-7_i386.deb
# dpkg -i libltdl3_1.5.26-4+lenny1_i386.deb
# dpkg -i libopenct1_0.6.14-3_i386.deb
# dpkg -i libopensc2_0.11.7-7_i386.deb
# dpkg -i opensc_0.11.7-7_i386.deb
# aptitude install pinentry-gtk2
# dpkg -i opensc-dnie_1.4.6-2_i386.deb
<font class="comentario"># Bloqueamos los paquetes
#+ para que no se actualicen, ya que los de la distribución son
#+ más modernos pero el DNIe no funciona con ellos</font>
# aptitude hold libltdl3 libopenct1 libopensc2 opensc opensc-dnie
</pre>
<p>&nbsp;<br />
Nos indica que hemos de registrar el módulo PKCS#11 en iceweasel/firefox utilizando el enlace que nos crea en el menú principal del escritorio en &#8220;<i>Oficina-> Registrar módulo DNIe PKCS#11</i>&#8220;.<br />
Indicamos que confiamos en la nueva Autoridad Certificadora (CA) para las tres posibilidades.<br />
&nbsp;<br />
Podemos comprobar si el sistema reconoce correctamente el lector con el comando &#8220;pcsc_scan&#8221; y probando a introducir y sacar el DNIe (u otras tarjetas similares):</p>
<pre class="codigo"># aptitude install pcscd pcsc-tools
$ pcsc_scan
PC/SC device scanner
[...]
Reader 0: ACS ACR 38U-CCID 00 00
  Card state: <b>Card inserted</b>,
[...]
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
	<b>DNI electronico (Spanish electronic ID card)</b>
	http://www.dnielectronico.es

 Reader 0: ACS ACR 38U-CCID 00 00
  Card state: <b>Card removed</b>,
</pre>
<p>&nbsp;<br />
Otras pruebas que podemos hacer son (estas con una tarjeta CardOs M4):</p>
<pre class="codigo">$ 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
3b:f2:98:00:ff:c1:10:31:fe:55:c8:04:12
$ opensc-tool -n
Using reader with a card: C3PO LTC31 (00426664) 00 00
CardOS M4
</pre>
<p>&nbsp;<br />
Para que funcione bien iceweasel/firefox y detecte el módulo sin problemas es necesario reiniciar el navegador.<br />
&nbsp;<br />
&nbsp;</p>
<h2>USO Y DISFRUTE</h2>
<p>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.</p>
<p>También es importante saber que cada aplicación que utiliza el DNIe establece una &#8220;sesión&#8221; con el lector de tarjetas y que no puede haber dos sesiones abiertas a la vez. Es decir <b>no podemos usar el DNIe en dos aplicaciones a la vez</b>. Sin embargo muchas aplicaciones no indican adecuadamente esta circunstancia y simplemente parece que no funcionan.<br />
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.<br />
Ante la duda <u>basta con extraer y volver a introducir el DNIe en el lector para asegurarse que está disponible el acceso</u>.<br />
&nbsp;<br />
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.<br />
&nbsp;</p>
<h3>Identificarse en sitios web con iceweasel/firefox</h3>
<p>El DNIe se puede utilizar al navegar para identificarse en un sitio web. Así por ejemplo si nos identificamos en la web de la <a href="http://www.seg-social.es" class="externo">seguridad social</a> podremos descargarnos al instante nuestra vida laboral.</p>
<p>Primero debemos asegurarnos que hemos registrado en iceweasel/firefox el módulo de DNIe PKCS#11 (usando el menú principal del escritorio en &#8220;<i>Oficina-> Registrar módulo DNIe PKCS#11</i>&#8220;).<br />
En caso contrario podemos registrarlo a mano desde &#8220;<i>Editar -> Preferencias -> Avanzado -> Cifrado -> Dispositivos de seguridad</i>&#8220;. Seleccionamos &#8220;Cargar&#8221;, indicamos un nombre, por ejemplo &#8220;DNIe &#8211; OpenSC PKCS#11&#8243;, y la ruta del módulo &#8220;/usr/lib/opensc-pkcs11.so&#8221;.<br />
<img src="/imgs/blog/dnie/Dispositivos_Seguridad.png" alt="DNIe" /><br />
&nbsp;<br />
Si la instalación ha sido correcta y tenemos el lector conectado con un DNIe introducido, nos habilitará la opción &#8220;Iniciar sesión&#8221; (¡bien!). 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 (<a href="http://www.policia.es/" class="externo">Dirección General de la Policia</a>).<br />
&nbsp;<br />
<b>Comprobaciones</b><br />
Podemos probar nuestro DNIe en el navegador en la <a href="http://www.dnielectronico.es/como_utilizar_el_dnie/verificar.html" class="externo">página de verificación del portal oficial</a> (el enlace para la verificación está al final de esa página).</p>
<p>Si todo ha ido bien el navegador nos pide nuestro PIN para iniciar sesión (si no lo hemos introducido antes):<br />
<img src="/imgs/blog/dnie/DNIe-PIN.png" alt="PIN DNIe" /></p>
<p>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.<br />
<img src="/imgs/blog/dnie/certificado.png" alt="Certificado DNIe" /></p>
<p>Si el navegador nos indica:</p>
<blockquote><p>El otro extremo de la conexión SSL no puede verificar su certificado.<br />
(Código de error: ssl_error_bad_cert_alert)</p></blockquote>
<p>Es porque no hemos iniciado sesión correctamente (hemos fallado el PIN 3 veces, no lo hemos puesto, no está bien instalado el lector&#8230;).<br />
&nbsp;<br />
Lo recomendado es &#8220;Iniciar sesión&#8221; en el navegador solo cuando se necesita y &#8220;Terminar sesión&#8221; 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 &#8220;a mano&#8221; a la opción &#8220;<i>Dispositivos de seguridad</i>&#8221; del menú.<br />
&nbsp;</p>
<h3>Firmar archivos PDF con Sinadura</h3>
<p>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 <a href="http://es.openoffice.org/" class="externo">OpenOffice Writer</a>) y después firmarlo con nuestro DNIe.<br />
Hay que insistir en que tiene <b>plena validez legal</b>. Sirve para hacer contratos, compra ventas, reclamaciones&#8230;</p>
<p>Primero <a href="http://www.sinadura.net/downloads?p_p_id=20&#038;p_p_lifecycle=0&#038;p_p_state=maximized&#038;p_p_mode=view&#038;_20_struts_action=%2Fdocument_library%2Fview&#038;_20_folderId=70681" class="externo">descargamos Sinadura</a>, en mi caso he descargado la versión 2.0.0 para GNU/Linux de 32 bits.</p>
<p>Su instalación es muy sencilla, basta con hacer:</p>
<pre class="codigo">$ java -jar  sinadura-2.0.0-unix32-installer.jar</pre>
<p>y seguir el típico asistente de &#8220;siguiente&#8221;, &#8220;siguiente&#8221;, &#8220;siguiente&#8221;&#8230;</p>
<p>Para configurarlo vamos a &#8220;<i>Sinadura -> Preferencias -> Certificados</i>&#8220;, y elegir &#8220;<i>Tarjeta Criptográfica</i>&#8220;.<br />
También recomiendo ir a &#8220;<i>Sinadura -> Preferencias -> Firma</i>&#8221; y seleccionar otra imagen ya que la que viene por omisión (el logo de Sinadura) apenas permite leer el texto insertado. Yo me he creado una <a href="/imgs/blog/dnie/DNIe-150.png">imagen muy clarita del DNIe en grises</a>.<br />
&nbsp;</p>
<p>Utilizamos el botón &#8220;<i>Añadir documentos</i>&#8221; para seleccionar el documento pdf a firmar, en mi caso &#8220;prueba.pdf&#8221; y pulsamos &#8220;<i>Firmar</i>&#8220;.<br />
<img src="/imgs/blog/dnie/Sinadura-principal.png" alt="DNIe" /></p>
<p>El programa carga el certificado (la primera vez tarda un poco, si se cuelga probablemente sea por el problema de las sesiones que comentabamos al principio) y después nos pide el PIN del DNIe.<br />
<img src="/imgs/blog/dnie/Sinadura-Clave.png" alt="DNIe" /></p>
<p>Después elegimos el certificado a utilizar, en este caso el certificado de firma:<br />
<img src="/imgs/blog/dnie/Sinadura-Certificado.png" alt="DNIe" /></p>
<p>Nos solicita una confirmación:<br />
<img src="/imgs/blog/dnie/Sinadura-firma.png" alt="DNIe" /></p>
<p>Y ya está. Podemos verificar cualquier documento firmado también desde Sinadura. Primero lo seleccionamos y después utilizamos el botón &#8220;<i>Validar</i>&#8221;<br />
<img src="/imgs/blog/dnie/Sinadura-principal.png" alt="DNIe" /><br />
&nbsp;</p>
<h3>Más posibilidades</h3>
<p>Una de las posibilidades que la gente busca es firmar y/o cifrar correos electrónicos con el DNIe.<br />
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 &#8220;normal&#8221; con un pdf firmado como adjunto, por ejemplo un contrato.</p>
<p>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 &#8220;certificará&#8221;. 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.<br />
Lo más recomendado es firmar y cifrar con claves <a href="http://www.gnupg.org/" class="externo">GPG</a>, u obtener firmas de la <a href="http://www.fnmt.es/" class="externo">FNMT</a>, que sí están preparadas para este propósito.<br />
En todo caso hay buenas y sencillas guías en internet sobre cómo conseguir, técnicamente, firmar correos-e con el DNIe (<a href="http://www.securitybydefault.com/2008/07/gmail-dni-e.html" class="externo">GMail+DNIe</a>; <a href="http://www.securitybydefault.com/2008/12/thunderbird-dni-e.html" class="externo">Thunderbird+DNIe</a>).</p>
<p>Para consultar otras posibilidades tenemos <a href="http://www.google.es" class="externo">el oráculo</a>, la página de <a href="http://www.dnielectronico.es/servicios_disponibles/index.html" class="externo">Servicios Disponibles</a> o la web <a href="http://www.kriptopolis.org/autenticacion-login-con-el-dni-electronico-en-debian-etch-gnu-linux" class="externo">Kriptopolis</a>.<br />
&nbsp;<br />
&nbsp;<br />
<!-- wget http://v5.guadalinex.org/guadalinex-lobo/pool/main/o/opensc-dnie/opensc-dnie_1.4.0-5_i386.deb --></p>
<div class="keywords"><b>dnie, dni electrónico, linux, debian, squeeze, C3PO LTC31, miniLector Bit4id, ACS ACR38-U</b></div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/dnie-en-debian-gnulinux-squeeze/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Recuperar fotos borradas</title>
		<link>http://guimi.net/blogs/hiparco/recuperar-fotos-borradas/</link>
		<comments>http://guimi.net/blogs/hiparco/recuperar-fotos-borradas/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 14:46:28 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=547</guid>
		<description><![CDATA[Me ha ocurrido ya un par de veces que algún amigo me llama diciendo &#8220;he borrado sin querer las fotos de mi cámara ¿puedes hacer algo?&#8221;.
Y como la respuesta es sí, aquí dejo los pasos básicos.
Lo primero es no tocar más la tarjeta donde se han borrado las fotos. No probar a hacer nuevas fotos, [...]]]></description>
			<content:encoded><![CDATA[<p>Me ha ocurrido ya un par de veces que algún amigo me llama diciendo &#8220;he borrado sin querer las fotos de mi cámara ¿puedes hacer algo?&#8221;.<br />
Y como la respuesta es sí, aquí dejo los pasos básicos.</p>
<p>Lo primero es no tocar más la tarjeta donde se han borrado las fotos. No probar a hacer nuevas fotos, por ejemplo.<br />
Después introducimos la tarjeta en nuestro lector. Si tenemos en marcha un sistema gráfico lo normal es que automáticamente monte la tarjeta y nos ofrezca ver/importar fotos o algo así.<br />
Averiguamos el dispositivo asignado a la tarjeta:<br />
<font class="comando">$ mount</font></p>
<pre class="codigo">[...]
/dev/sdb1 on /media/KODAK type vfat (rw,nosuid,nodev,uhelper=hal,shortname=lower,uid=1000)</pre>
<p>Otra opción es:<br />
<font class="comando">$ dmesg | tail</font></p>
<p>Instalamos <a href="http://www.cgsecurity.org/wiki/TestDisk">testdisk</a>, una magnífica herramienta de recuperación de datos:<br />
<font class="comando"># aptitude install testdisk</font><br />
y lanzamos &#8216;photorec&#8217; como superusuario:<br />
<font class="comando"># photorec</font><br />
Este programa nos lleva paso a paso a recuperar fotos, vídeos y demás.<br />
- primero pregunta por el dispositivo desde el que recuperar fotos, en el ejemplo /dev/sdb.<br />
- después pregunta el tipo de tabla de particiones: para las tarjetas de memoria o lápices USB normales &#8220;Intel&#8221;<br />
- después elegimos la partición (generalmente solo hay una) en el ejemplo &#8220;1&#8243;<br />
- después pregunta por el tipo de partición que había cuando borramos: generalmente &#8220;Other&#8221;<br />
- después pregunta si deseamos buscar por toda la partición o solo por el espacio libre: yo recomiendo &#8220;Whole&#8221;<br />
- por último pregunta en qué directorio queremos recuperar las fotos (NO debe estar en el mismo dispositivo del que estamos recuperando archivos)<br />
con eso photorec empieza a recuperar archivos.</p>
<p>Dependiendo de la capacidad de la tarjeta y de los archivos a recuperar puede invertir más o menos tiempo, pero lo bueno es que va indicando el progreso de trabajo para poder ir viendo cómo va y cuánto le queda.</p>
<p><span class="keywords"><b>undelete, recuperar archivos borrados, photorec, testdisk</b></span></p>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/recuperar-fotos-borradas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wireshark como usuario</title>
		<link>http://guimi.net/blogs/hiparco/wireshark-como-usuario/</link>
		<comments>http://guimi.net/blogs/hiparco/wireshark-como-usuario/#comments</comments>
		<pubDate>Wed, 24 Mar 2010 14:11:19 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[Redes]]></category>
		<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=519</guid>
		<description><![CDATA[Una herramienta muy potente de análisis de redes es Wireshark (antes conocido como Ethereal).
Sin embargo para poder funcionar necesita acceso de super-usuario (root) a la tarjeta de red.
Esto hace que habitalmente se use haciendo:
$ gksu wireshark
Sin embargo, en realidad, como indican en el blog de wireshark, quien realmente necesita ese acceso es una -en comparación- [...]]]></description>
			<content:encoded><![CDATA[<p>Una herramienta muy potente de análisis de redes es <a href="http://www.wireshark.org/">Wireshark</a> (antes conocido como Ethereal).<br />
Sin embargo para poder funcionar necesita acceso de super-usuario (root) a la tarjeta de red.<br />
Esto hace que habitalmente se use haciendo:<br />
<font class="comando">$ gksu wireshark</font></p>
<p>Sin embargo, en realidad, <a href="https://blog.wireshark.org/2010/02/running-wireshark-as-you/">como indican en el blog de wireshark</a>, quien realmente necesita ese acceso es una -en comparación- pequeña libreria: dumpcap.</p>
<p>Así pues para poder utilizar wireshark como usuario normal, basta dar acceso a la libreria dumpcap, como sigue:</p>
<pre class="codigo"><font class="comentario">## Añadimos el grupo wireshark</font>
# groupadd wireshark
<font class="comentario">## Hacemos al grupo propietario de dumpcap y le damos permiso</font>
# chgrp wireshark /usr/bin/dumpcap
# chmod 4750 /usr/bin/dumpcap
<font class="comentario">## Incluimos a nuestro usuario en el grupo</font>
# usermod -a -G wireshark guimi
</pre>
<p><span class="keywords"><b>Wireshark, ethereal</b></span></p>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/wireshark-como-usuario/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tarjeta CardOS M4 en GNU/Linux</title>
		<link>http://guimi.net/blogs/hiparco/tarjeta-cardos-m4-en-gnulinux/</link>
		<comments>http://guimi.net/blogs/hiparco/tarjeta-cardos-m4-en-gnulinux/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 20:34:12 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=508</guid>
		<description><![CDATA[Las tarjetas CardOS M4 son tarjetas criptográficas fabricadas por Siemens y emitidas, entre otros, por la Comunidad Valenciana (a través de la ACCV) y la Junta de Andalucía.
Para utilizarlas hace falta tener un lector de tarjetas instalado, por ejemplo el lector del DNI-e.
Además hace falta tener instalado el controlador de la tarjeta para que el [...]]]></description>
			<content:encoded><![CDATA[<p>Las tarjetas CardOS M4 son tarjetas criptográficas fabricadas por Siemens y emitidas, entre otros, por la Comunidad Valenciana (a través de la <a href="http://www.accv.es/">ACCV</a>) y la Junta de Andalucía.</p>
<p>Para utilizarlas hace falta tener un lector de tarjetas instalado, por ejemplo <a href="http://guimi.net/blogs/hiparco/dnie-en-gnulinux/">el lector del DNI-e</a>.</p>
<p>Además hace falta tener instalado el controlador de la tarjeta para que el lector sepa trabajar con ella. Y aquí viene el problema, porque el driver que hay tiene restricciones de distribución, además de ser viejo y estar desactualizado.<br />
Al final se puede hacer funcionar con unos pocos pasos&#8230; el problema es averiguarlos. Tras mucho buscar, un <a href="http://andalinux.wordpress.com/2009/12/01/instalar-tarjeta-siemens-cardos-m4-01a-sle66cx322p-en-firefox-linux/">post de Andalinux</a> me dió las pistas correctas. Este post se debe a aquel (y copia descaradamente algunas partes).</p>
<p><strong>¿Dónde obtener los drivers (sólo binarios) para la tarjeta?</strong><br />
Pues aunque cuesta encontrarlos en Internet (por las restricciones de distribución impuestas por Siemens) hay varias formas de conseguirlos:</p>
<ol>
<li>En el cdrom de los lectores Omnikey 3121 y 3021.</li>
<li>En la web de la <a href="http://www.accv.es/cd/CD-Siemens.rar">Autoritat de Certificatió</a> de la Comunitat Valenciana.</li>
<li>En el paquete <a href="http://ftp.cica.es/Guadalinex/guadalinex_edu/pool/main/g/guadalinex-hipath-sicurity-card-api/">HiPath SIcurity CardOS smart cards API</a> que aparece en los repositorios de Guadalinex.</li>
</ol>
<p><strong>¿Cómo instalar los drivers?</strong><br />
Yo he utilizado el paquete de Guadalinex, por lo que basta un:</p>
<div class="codigo">sudo dpkg -i guadalinex-hipath-sicurity-card-api_3.1-2_i386.deb</div>
<p>En teoría ahora bastaría con cargar el módulo en Firefox, pero no os molestéis, no va a funcionar.</p>
<p>¿Y qué tripa se le ha roto al módulo? Preguntemos:</p>
<div class="codigo">ldd /usr/local/lib/libsiecap11.so</div>
<pre class="codigo">	linux-gate.so.1 =>  (0xb7794000)
	libz.so.1 => /lib/libz.so.1 (0xb76f1000)
	libsiecap15.so => /usr/local/lib/libsiecap15.so (0xb76c8000)
	[...]
	<strong>libpcsclite.so.0 => not found</strong>
	[...]
</pre>
<p>¡Ahí está!</p>
<p>Sin embargo tampoco nos basta con instalar esa librería (igual incluso ya está instalada):</p>
<div class="codigo">sudo aptitude install libpcsclite1</div>
<p>Porque el problema es que el paquete no instala la librería dónde la busca el módulo.<br />
¡Marchando un enlace simbólico!</p>
<div class="codigo">sudo ln -s /lib/libpcsclite.so.1.0.0 /usr/lib/libpcsclite.so.0</div>
<p>Y ahora sí podemos cargar en Firefox el módulo &#8220;/usr/local/lib/libsiecap11.so&#8221; que nos leerá la tarjeta.</p>
<p>Para más detalles sobre cómo instalar el módulo en Firefox se puede consultar la <a href="http://guimi.net/blogs/hiparco/dnie-en-gnulinux/">instalación del DNI-e</a>.</p>
<p><span class="keywords"><b>CardOS M4, Siemens, DNIe</b></span></p>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/tarjeta-cardos-m4-en-gnulinux/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>DNIe en GNU/Linux</title>
		<link>http://guimi.net/blogs/hiparco/dnie-en-gnulinux/</link>
		<comments>http://guimi.net/blogs/hiparco/dnie-en-gnulinux/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 11:54:50 +0000</pubDate>
		<dc:creator>Güimi</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[seguridad]]></category>

		<guid isPermaLink="false">http://guimi.net/blogs/hiparco/?p=293</guid>
		<description><![CDATA[ARTÍCULO OBSOLETO: Para una versión más actual puedes leer como instalar el DNIe en Debian GNU/Linux Squeeze.
Actualizado a Febrero de 2010
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.
Actualizado a 30 de Noviembre de [...]]]></description>
			<content:encoded><![CDATA[<p><strong>ARTÍCULO OBSOLETO</strong>: Para una versión más actual puedes leer como instalar el <a href="http://guimi.net/blogs/hiparco/dnie-en-debian-gnulinux-squeeze/">DNIe en Debian GNU/Linux Squeeze</a>.</p>
<p><b>Actualizado a Febrero de 2010</b><br />
Una vez instalado un lector de DNI-e, también nos sirve para <a href="http://guimi.net/blogs/hiparco/tarjeta-cardos-m4-en-gnulinux/">utilizar tarjetas criptográficas CardOs M4</a> como las que utiliza por ejemplo la Comunidad Valenciana a través de la <a href="http://www.accv.es/">ACCV</a>.</p>
<p><b>Actualizado a 30 de Noviembre de 2009</b><br />
Ya está aquí el DNI electónico o DNIe. Y por supuesto se puede hacer funcionar en GNU/Linux, tanto <b>para identificarse</b> en webs como <strong>para firmar documentos</strong> todo con <b>plena validez legal</b>.<br />
<center><img src="/imgs/blog/dnie/logo-dni-electronico.jpg" alt="DNIe" /> <img src="/imgs/blog/dnie/DNIe_75.png" alt="DNIe" /></center><br />
No hay que olvidar que el DNIe tiene sus limitaciones y pegas de seguridad. (Para los &#8220;paranoicos&#8221; se recomienda utilizar el DNIe únicamente desde sistemas de solo lectura como un CD con <a href="http://www.knoppix.net" class="externo">Knoppix</a>).<br />
Tampoco hay que olvidar que una firma &#8220;normal&#8221; es mucho más facil de falsificar que una firma electrónica, pese a que ninguna sea totalmente segura.<br />
&nbsp;<br />
Las siguientes instrucciones se han probado en <a href="http://www.debian.org" class="externo">Debian Lenny</a> y en <a href="http://www.ubuntu.com" class="externo">Ubuntu Karmic Koala</a> con un lector <a href="http://c3po.es/ltc31.html" class="externo">C3PO LTC31</a> (de venta en las oficinas de correos por 19,90 &euro;), con un &#8220;<a href="http://www.bit4id.com/" class="externo">miniLector Bit4id</a>&#8221; del <a href="http://www.planavanza.es/" class="externo">plan avanza2</a> (es un <a href="http://www.acs.com.hk/index.php?pid=product&#038;id=ACR38" class="externo">Advanced Card Systems ACR38-U</a> pero con una caja blanca) y con un lector <a href="http://www.hidglobal.com/prod_detail.php?prod_id=186">Omnikey 3021</a>.<br />
<center><img src="/imgs/blog/dnie/C3PO_LTC31.jpg" alt="C3PO_LTC31" /> <img src="/imgs/blog/dnie/ACS_ACR38-U.jpg" alt="ACS_ACR38-U" /> <img src="/imgs/blog/dnie/omnikey_3021.jpg" alt="Omnikey 3021" /></center><br />
&nbsp;</p>
<h2>INSTALACIÓN DEL LECTOR</h2>
<p>Descargamos los <a href="http://www.dnielectronico.es/descargas/PKCS11_para_Sistemas_Unix/distribuciones_linux.html" class="externo">paquetes oficiales del DNIE</a> y los instalamos junto con los paquetes de la distribución necesarios.</p>
<pre class="codigo">$ sudo aptitude install libccid libopenct1 pcscd pcsc-tools mozilla-opensc
<font class="comentario"># En el caso de Debian Lenny</font>
$ tar xvf Debian_Lenny_opensc-dnie_1.4.6-2_i386.deb.tar
<font class="comentario"># En el caso de Ubuntu Karmic Koala usamos los paquetes de Jaunty Jakalop</font>
$ tar xvf Ubuntu_Jaunty_opensc-dnie_1.4.6-2_i386.deb.tar
libopensc2_0.11.7-7_i386.deb
opensc-dnie_1.4.6-2_i386.deb
opensc_0.11.7-7_i386.deb
$ sudo dpkg -i libopensc2_0.11.7-7_i386.deb
$ sudo dpkg -i opensc_0.11.7-7_i386.deb
$ sudo dpkg -i opensc-dnie_1.4.6-2_i386.deb
<font class="comentario"># En el caso de Ubuntu Karmic Koala bloqueamos los paquetes
#+ para que no se actualicen, ya que los de la distribución son
#+ más modernos pero el DNIe no funciona con ellos</font>
$ sudo aptitude hold opensc libopensc2</pre>
<p>&nbsp;<br />
Nos indica que hemos de registrar el módulo PKCS#11 en iceweasel/firefox utilizando el enlace que nos crea en el menú principal del escritorio en &#8220;<i>Oficina-> Registrar módulo DNIe PKCS#11</i>&#8220;.<br />
Indicamos que confiamos en la nueva Autoridad Certificadora (CA) para las tres posibilidades.<br />
&nbsp;<br />
Podemos comprobar si el sistema reconoce correctamente el lector con el comando &#8220;pcsc_scan&#8221; y probando a introducir y sacar el DNIe (u otras tarjetas similares):</p>
<pre class="codigo">$ pcsc_scan
PC/SC device scanner
[...]
Reader 0: ACS ACR 38U-CCID 00 00
  Card state: <b>Card inserted</b>,
[...]
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
	<b>DNI electronico (Spanish electronic ID card)</b>
	http://www.dnielectronico.es

 Reader 0: ACS ACR 38U-CCID 00 00
  Card state: <b>Card removed</b>,
</pre>
<p>&nbsp;<br />
Otras pruebas que podemos hacer son (estas con una tarjeta CardOs M4):</p>
<pre class="codigo">$ 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
3b:f2:98:00:ff:c1:10:31:fe:55:c8:04:12
$ opensc-tool -n
Using reader with a card: C3PO LTC31 (00426664) 00 00
CardOS M4
</pre>
<p>&nbsp;<br />
Para que funcione bien iceweasel/firefox y detecte el módulo sin problemas se recomienda reiniciar la sesión gráfica (no hace falta reiniciar el equipo).<br />
&nbsp;<br />
&nbsp;</p>
<h2>USO Y DISFRUTE</h2>
<p>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.</p>
<p>También es importante saber que cada aplicación que utiliza el DNIe establece una &#8220;sesión&#8221; con el lector de tarjetas y que no puede haber dos sesiones abiertas a la vez. Es decir <b>no podemos usar el DNIe en dos aplicaciones a la vez</b>. Sin embargo muchas aplicaciones no indican adecuadamente esta circunstancia y simplemente parece que no funcionan.<br />
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.<br />
Ante la duda <u>basta con extraer y volver a introducir el DNIe en el lector para asegurarse que está disponible el acceso</u>.<br />
&nbsp;<br />
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.<br />
&nbsp;</p>
<h3>Identificarse en sitios web con iceweasel/firefox</h3>
<p>El DNIe se puede utilizar al navegar para identificarse en un sitio web. Así por ejemplo si nos identificamos en la web de la <a href="http://www.seg-social.es" class="externo">seguridad social</a> podremos descargarnos al instante nuestra vida laboral.</p>
<p>Primero debemos asegurarnos que hemos registrado en iceweasel/firefox el módulo de DNIe PKCS#11 (usando el menú principal del escritorio en &#8220;<i>Oficina-> Registrar módulo DNIe PKCS#11</i>&#8220;).<br />
En caso contrario podemos registrarlo a mano desde &#8220;<i>Editar -> Preferencias -> Avanzado -> Cifrado -> Dispositivos de seguridad</i>&#8220;. Seleccionamos &#8220;Cargar&#8221;, indicamos un nombre, por ejemplo &#8220;DNIe &#8211; OpenSC PKCS#11&#8243;, y la ruta del módulo &#8220;/usr/lib/opensc-pkcs11.so&#8221;.<br />
<img src="/imgs/blog/dnie/Dispositivos_Seguridad.png" alt="DNIe" /><br />
&nbsp;<br />
Si la instalación ha sido correcta y tenemos el lector conectado con un DNIe introducido, nos habilitará la opción &#8220;Iniciar sesión&#8221; (¡bien!). 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 (<a href="http://www.policia.es/" class="externo">Dirección General de la Policia</a>).<br />
&nbsp;<br />
<b>Comprobaciones</b><br />
Podemos probar nuestro DNIe en el navegador en la <a href="http://www.dnielectronico.es/como_utilizar_el_dnie/verificar.html" class="externo">página de verificación del portal oficial</a> (el enlace para la verificación está al final de esa página).</p>
<p>Si todo ha ido bien el navegador nos pide nuestro PIN para iniciar sesión (si no lo hemos introducido antes):<br />
<img src="/imgs/blog/dnie/DNIe-PIN.png" alt="PIN DNIe" /></p>
<p>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.<br />
<img src="/imgs/blog/dnie/certificado.png" alt="Certificado DNIe" /></p>
<p>Si el navegador nos indica:</p>
<blockquote><p>El otro extremo de la conexión SSL no puede verificar su certificado.<br />
(Código de error: ssl_error_bad_cert_alert)</p></blockquote>
<p>Es porque no hemos iniciado sesión correctamente (hemos fallado el PIN 3 veces, no lo hemos puesto, no está bien instalado el lector&#8230;).<br />
&nbsp;<br />
Lo recomendado es &#8220;Iniciar sesión&#8221; en el navegador solo cuando se necesita y &#8220;Terminar sesión&#8221; 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 &#8220;a mano&#8221; a la opción &#8220;<i>Dispositivos de seguridad</i>&#8221; del menú.<br />
&nbsp;</p>
<h3>Firmar archivos PDF con Sinadura</h3>
<p>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 <a href="http://es.openoffice.org/" class="externo">OpenOffice Writer</a>) y después firmarlo con nuestro DNIe.<br />
Hay que insistir en que tiene <b>plena validez legal</b>. Sirve para hacer contratos, compra ventas, reclamaciones&#8230;</p>
<p>Primero <a href="http://www.sinadura.net/downloads?p_p_id=20&#038;p_p_lifecycle=0&#038;p_p_state=maximized&#038;p_p_mode=view&#038;_20_struts_action=%2Fdocument_library%2Fview&#038;_20_folderId=70681" class="externo">descargamos Sinadura</a>, en mi caso he descargado la versión 2.0.0 para GNU/Linux de 32 bits.</p>
<p>Su instalación es muy sencilla, basta con hacer:</p>
<pre class="codigo">$ java -jar  sinadura-2.0.0-unix32-installer.jar</pre>
<p>y seguir el típico asistente de &#8220;siguiente&#8221;, &#8220;siguiente&#8221;, &#8220;siguiente&#8221;&#8230;</p>
<p>Para configurarlo vamos a &#8220;<i>Sinadura -> Preferencias -> Certificados</i>&#8220;, y elegir &#8220;<i>Tarjeta Criptográfica</i>&#8220;.<br />
También recomiendo ir a &#8220;<i>Sinadura -> Preferencias -> Firma</i>&#8221; y seleccionar otra imagen ya que la que viene por omisión (el logo de Sinadura) apenas permite leer el texto insertado. Yo me he creado una <a href="/imgs/blog/dnie/DNIe-150.png">imagen muy clarita del DNIe en grises</a>.<br />
&nbsp;</p>
<p>Utilizamos el botón &#8220;<i>Añadir documentos</i>&#8221; para seleccionar el documento pdf a firmar, en mi caso &#8220;prueba.pdf&#8221; y pulsamos &#8220;<i>Firmar</i>&#8220;.<br />
<img src="/imgs/blog/dnie/Sinadura-principal.png" alt="DNIe" /></p>
<p>El programa carga el certificado (la primera vez tarda un poco, si se cuelga probablemente sea por el problema de las sesiones que comentabamos al principio) y después nos pide el PIN del DNIe.<br />
<img src="/imgs/blog/dnie/Sinadura-Clave.png" alt="DNIe" /></p>
<p>Después elegimos el certificado a utilizar, en este caso el certificado de firma:<br />
<img src="/imgs/blog/dnie/Sinadura-Certificado.png" alt="DNIe" /></p>
<p>Nos solicita una confirmación:<br />
<img src="/imgs/blog/dnie/Sinadura-firma.png" alt="DNIe" /></p>
<p>Y ya está. Podemos verificar cualquier documento firmado también desde Sinadura. Primero lo seleccionamos y después utilizamos el botón &#8220;<i>Validar</i>&#8221;<br />
<img src="/imgs/blog/dnie/Sinadura-principal.png" alt="DNIe" /><br />
&nbsp;</p>
<h3>Más posibilidades</h3>
<p>Una de las posibilidades que la gente busca es firmar y/o cifrar correos electrónicos con el DNIe.<br />
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 &#8220;normal&#8221; con un pdf firmado como adjunto, por ejemplo un contrato.</p>
<p>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 &#8220;certificará&#8221;. 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.<br />
Lo más recomendado es firmar y cifrar con claves <a href="http://www.gnupg.org/" class="externo">GPG</a>, u obtener firmas de la <a href="http://www.fnmt.es/" class="externo">FNMT</a>, que sí están preparadas para este propósito.<br />
En todo caso hay buenas y sencillas guías en internet sobre cómo conseguir, técnicamente, firmar correos-e con el DNIe (<a href="http://www.securitybydefault.com/2008/07/gmail-dni-e.html" class="externo">GMail+DNIe</a>; <a href="http://www.securitybydefault.com/2008/12/thunderbird-dni-e.html" class="externo">Thunderbird+DNIe</a>).</p>
<p>Para consultar otras posibilidades tenemos <a href="http://www.google.es" class="externo">el oráculo</a>, la página de <a href="http://www.dnielectronico.es/servicios_disponibles/index.html" class="externo">Servicios Disponibles</a> o la web <a href="http://www.kriptopolis.org/autenticacion-login-con-el-dni-electronico-en-debian-etch-gnu-linux" class="externo">Kriptopolis</a>.<br />
&nbsp;<br />
&nbsp;<br />
<!-- wget http://v5.guadalinex.org/guadalinex-lobo/pool/main/o/opensc-dnie/opensc-dnie_1.4.0-5_i386.deb --></p>
<h2>Sobre este tutorial</h2>
<p>Hay bastantes guías en internet, pero en Julio de 2009 ninguna me daba buen resultado en Debian Lenny. Básicamente parecía que todo iba bien, excepto por el navegador (Iceweasel/Firefox) que &#8220;petaba&#8221; al introducir un DNIe en el lector. Al final encontré la solución en <a href="http://www.guadalinex.org/" class="externo">Guadalinex</a> gracias a una pista de <a href="http://universo.emergya.info/espacios/fontanon/dnie-y-lector-acr38-bajo-linux" class="externo">fontanon en univero emergya</a>.<br />
Tras publicar la primera versión de este tutorial con todos los pasos para que el lector funcione en Debian Lenny e indicando los problemas encontrados, se pusieron en contacto conmigo los fabricantes del lector C3PO LTC31 (ver los primeros comentarios a esta entrada) y descubrimos que el problema estaba en el empaquetado de las librerías de la DGT, cosa que a día de hoy (Septiembre de 2009) ya está solucionada.<br />
Después he obtenido otro lector, he tenido problemas para firmar PDFs&#8230; y así he ido modificando y haciendo crecer este tutorial hasta llegar a esta versión (Noviembre 2009).</p>
<p>Así pues gracias a la gente de C3PO, de sinadura y a todos los que han puesto información en internet sobre como usar y configurar el DNIe.<br />
&nbsp;</p>
<div class="keywords"><b>dnie, dni electrónico, linux, debian, lenny, C3PO LTC31, miniLector Bit4id, ACS ACR38-U</b></div>
]]></content:encoded>
			<wfw:commentRss>http://guimi.net/blogs/hiparco/dnie-en-gnulinux/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

