Tags: linux

¿Qué drivers necesito para usar el DNIe?

11 Jun 2013

Es muy común, cuando se quiere empezar a sacar partido del DNI electrónico, el encontrarte con miles de problemas, desde el desconocimiento del PIN, hasta la casi desintegración del chip en algunos casos. Sin duda, todos ellos problemas que hacen muy cuestionable la usabilidad del DNIe.

En el caso de no conocer el PIN de nuestro DNIe, tenemos que pasarnos por la comisaría de policía más cercana he introducir una nueva contraseña para nuestro DNIe desde uno de los PAD de acceso público, donde mediante nuestra huella dactilar nos permitirá cambiar nuestra contraseña o renovar los certificados en el caso de que estén caducados.

Para poder hacer uso del DNI electrónico se requiere primeramente que se lleve a cabo la instalación de los controladores que hacen posible la comunicación con el mismo.

En el caso de Windows 7 y Windows 8, el sistema operativo ya dispone de un servicio de actualización de Microsoft Windows Update, dónde se encuentra disponible la nueva versión del driver del DNIe. Este nuevo driver permite al DNIe trabajar como dispositivo plug&play, ya que se instala de forma automática una vez insertado el mismo en un lector compatible.

Este driver, basado en la nueva arquitectura “Smart Card Mini-Driver” (conocida también como “Smart Card Module”) de Microsoft, funciona en Internet Explorer y en Google Chrome. Mozilla Firefox, al utilizar la arquitectura PKCS#11, seguirá necesitando la instalación del módulo criptográfico.

Por lo tanto, en un ordenador con sistema operativo Windows 7 y 8, únicamente habrá que introducir la tarjeta DNIe en el lector y el Sistema Operativo instalará el driver de forma rápida y automática.

En los sistemas operativos basados en UNIX como Ubuntu o OSX, es necesario disponer de en un módulo criptográfico PKCS#11 (Public Key Cryptography Standard Number 11) encargado de interpretar las comunicaciones con la tarjeta. Para lo que necesitamos instalar OpenSC / OpenDNIe en nuestro equipo. Podemos seguir las indicaciones de cómo hacerlo en el siguiente enlace http://www.dnielectronico.es/descargas/PKCS11_para_Sistemas_Unix/index.htm

Por otro lado, si queremos hacer uso del DNI electrónico en un dispositivo móvil, necesitamos de una aplicación nativa que disponga de un módulo criptográfico PKCS#11 (Public Key Cryptography Standard Number 11) encargado de interpretar las comunicaciones con la tarjeta, cómo es el caso de nuestra app viafirma mobile, la cual además, dispone de una API que permite interactuar con el DNIe desde una tercera aplicación nativa o un navegador web.

Por último, recordaros que podéis descargar los SDKs gratuitos para integrar vuestras apps con nuestra plataforma de firmas en nuestro portal para desarrolladores.

Espero que os haya sido útil la información.

Usando lectores de tarjetas inteligentes (DNIe) en Linux [C3PO, GEMPLUS, BIT4ID]

17 Mar 2010

El problema a la hora de utilizar lectores de tarjetas inteligentes en Linux normalmente es la existencia de drivers, ya que en ocasiones los fabricantes sólo se preocupan por la versión Windows, afortunadamente esta situación ha cambiado y actualmente es muchísimo más fácil hacer uso de estos lectores en Linux.

Extraído de las prueba de compatibilidad que en su día realizamos para comprobar el comportamiento de Viafirma con estos lectores , vamos a hacer un pequeño repaso por fabricante sobre cómo instalarlos:

Instalación del driver para un lector  Bit4Id, C3PO y GEMPLUS.
La mayoría de las distribuciones (incluida Ubuntu) ya disponen de los drivers empaquetados, por lo que sólo será necesario la instalación de estos nuevos paquetes (por ejemplo usando synaptic en el caso de Ubuntu). En caso de que no existan paquetes para su versión de Linux, el fabricante proporciona los fuentes de los drivers en formato tar.gz

Los paquetes que deberemos instalar son: libccid (Paquete de driver compatible con la mayoría de los lectores) y libacr38u ( Driver para el miniLector Essential y otros lectores con chip ACR38U) haciendo uso del gestor de Paquetes.

Instalar lector driver bit4id ubuntu

Si no deseamos utilizar el instalador visual, desde el terminal podemos ejecutar:

sudo apt-get install libccid libacr38u

Instalar la libreŕia para tarjetas inteligente (OpenSC)

Al igual que en el apartado anterior, es posible realizar esta instalación desde el instalador visual o desde el terminal ejecutando: sudo apt-get install opensc

Instalar los drivers para el DNIe.

En el caso particular del DNIe, también será necesario la instalación del paquete opensc-dnie, que aunque está disponible para su descarga en http://www.dnielectronico.es/descargas/PKCS11_para_Sistemas_Unix/index.html.

Instalar dnie

Probamos nuestro nuestro lector con Viafirma

Para ello, con el DNIe ya introducido en nuestro lector, accedemos con Safai o Firefox a la demo de Viafirma .

Usando el dnie en MacOS X

Problemas conocidos

Debido a un problema en la librería OpenSC no es posible que dos aplicaciones hagan uso a la vez del lector de tarjetas, por lo que si en Firefox se encuentra configurado como módulo el driver del DNIe no será posible desde el Applet de Viafirma.

http://www.opensc-project.org/opensc/ticket/134

Comandos avanzados

Para comprobar que el lector es reconocido por el sistema podemos instalar las librerías pcsc-tools

sudo apt-get install pcsc-tools

y ejecutar el comando pcsc_scan para detectar los lectores instalados en el sistema.

Curiosidad: Estoy seguro de que nos olvidamos de algo…(Los problemas de la sinceridad)

27 Ene 2010

Que pasaría si al hacer una entrega de software al cliente le decimos:

Estoy seguro de que nos olvidamos de algo, y sé que tenemos algunos conflictos pendientes. Al mismo tiempo, necesitamos la cobertura de una versión real, y en su conjunto tiene muy buen aspecto. Hemos corregido unos cuantos conflictos en los últimos días, y siempre tendremos las versiones 2.6.30.x (parches).

Pues este es precisamente el mensaje con el Linus Torvalds dio a conocer la versión 2.6.30 del Kernel de Linux!! (el mensaje original en: http://lkml.org/lkml/2009/6/9/710). Sería impensable que le dijéramos una frase similar a un cliente.

Salvando los posibles problemas con clientes que “entren en pánico” debido a este derroche de sinceridad, y ahora que está tan de moda las políticas de calidad, objetivos, métricas, … Nuestro objetivo es que la calidad de nuestras aplicaciones esté tan demostrada, que en una situación puntual le podamos decir a un cliente una frase tan sincera como ésta, sin que el cliente sienta ningún tipo de angustia.

[minitip] Trabajar con archivos odt de openoffice en modo texto

05 Nov 2009

Hace unos días se planteaba en uno de los equipos de trabajo una duda muy concreta: cómo buscar una cadena de texto en cientos de archivos de OpenOffice de manera eficiente.Un fichero odt no es más que un conjunto de ficheros xml comprimidos en formato zip por lo que, afortunadamente, se pueden utilizar herramientas diseñadas para trabajar con texto plano una vez que se descomprime el fichero binario. Sin embargo, los ficheros xml contenidos no están pensados para ser interpretados por personas, sino por ordenadores, por lo que es necesario un proceso previo del contenido. La utilidad odt2txt (disponible en los repositorios de las principales distribuciones) se encarga de ello y, a partir de un fichero que se pasa como parámetro, escribe por la salida estándar sus contenidos, dándoles un formato más amigable. En Ubuntu se puede instalar mediante un simple

sudo apt-get install odt2txt

Una vez que está instalada, ya se puede integrar en distintos scripts que hagan lo que necesitemos. Por ejemplo, para localizar los ficheros odt que contienen una cadena de texto dentro de una carpeta y sus subdirectorios podemos utilizar el siguiente:

#!/bin/sh
for i in `find . -name *.odt`; do
if [ `odt2txt "$i" | grep -iE "$@" | wc -l` -gt 0 ]; then
echo "Texto encontrado en $i"
fi
done

que se utilizaría de la siguiente manera:


$ ./find_in_odt.sh "cadena de texto a buscar"

El script anterior cuenta con la limitación de que no está preparado para funcionar con carpetas cuyo nombre contiene espacios. Otra opción podría ser la búsqueda de diferencias entre dos ficheros:

#!/bin/sh
odt2txt $1 > tempfile1
odt2txt $2 > tempfile2
diff -u tempfile1 tempfile2
rm tempfile1 tempfile2

ejecutable como (recomiendo instalar colordiff para ser usado en lugar del diff tradicional):

$ ./odtdiff.sh fichero1a.odt fichero1b.odt

Más aún: podemos integrar odt2txt con sistemas de control de versiones como Git (usado por el kernel de Linux, Gnome, Android o Ruby on Rails entre otros) para conseguir integración con ficheros de OpenOffice (útil para ver los cambios entre las diferentes versiones en el repositorio). Para ello, basta con añadir al archivo de configuración .gitconfig (presente en el directorio de usuario en Linux y OSX)

[diff "odf"]
textconv=odt2txt
y luego, dentro del repositorio del proyecto, crear o modificar el archivo .git/info/attributes para que contenga


*.ods diff=odf
*.odt diff=odf
*.odp diff=odf

Espero que alguno de estos consejillos os sirva de utilidad, ¡un saludo!

Con Linux hasta Bogotá

23 Dic 2008

Hacía más de un año que sabía de la decisión que adoptó Airbus para incorporar Linux a sus super A380, pero no sabía que en los pequeñitos, como el A319 también lo podría encontrar.

Con esta y otras sorpresas volé hasta Bogotá; la verdad es que me hubiera gustado contarle a todo el mundo esta historia de otra manera, pero la realidad fue que en un viaje de 2 horas y 15 min. de duración el sistema se cayó en cuatro ocasiones, incluyendo reinicio general del sistema. Obviamente, en un vuelo tan corto no te da tiempo ni a ver una peli, pero si hubiera sido así….ejemm.

La solución adoptada (por lo que pude ver en la consola mientras se reiniciaba 🙂 ) es una adaptación de RedHat.

Por cierto, también me llevé una grata sorpresa al comprobar que cada asiento dispone de una salida USB y, aunque no pude comprobarlo, supongo que estará como salida para cargar dispositivos como el iPod.

RedHat en Airbus 319 y salida USB

Bien por Airbus.

Teclas de acceso directo a comandos en Ubuntu

08 May 2008

Volvemos a la carga con otro hilo práctico para hacer más fácil el día a día. Una de las opciones que más me gusta de Windows es la capacidad de asignar teclas de acceso directo a las aplicaciones y comandos. Esto nos evita el famoso Inicio -> Ejecutar -> [comando], que si se hace muchas veces al día acaba siendo pesado (donde esté abrir la consola con Ctrl+Alt+M). ¿Y en Ubuntu, tenemos esta opción?

Pues sí, y en verdad esto es la segunda incursión (tras el popular hilo de la papelera) en la poderosa herramienta de configuración de gnome, el “gconf-editor”, que bien manejado tiene mucho jugo. Si ejecutamos en una consola “gconf-editor” tenemos como ya sabeís la consola de configuración gnome, donde en esta ocasión definiremos teclas de acceso directo para los comandos y aplicaciones más habituales.

Vamos a apps -> metacity -> keybindings_commands : En esta sección se definen combinaciones de teclas que corresponden a comandos. En otras palabras, qué comandos nos gustaría ejecutar mediante teclas directas. Por ejemplo, cojamos command_1 y le asignamos gnome-screenshot que hará una captura de pantalla.

Vamos ahora a apps -> metacity -> global_keybindings : Aquí definimos la combinación de teclas que dispara cada comando. Por ejemplo vamos a pinchar sobre run_command_1 y le asignamos F12. Con esto hemos dicho que al pulsar F12 ejecutemos el comando 1 (antes definido). Pulsa F12 y comprueba que funciona.

Las teclas especiales van entre signos <>, teniendo así <Alt>, <Ctrl>, <Super>, etc. Asimismo es posible asignar combinaciones de teclas, y si en nuestro ejemplo ponemos <Super>F12 por ejemplo capturaríamos la pantalla pulsando la tecla de Windows y F12 simultáneamente.

Las posibilidades como ves son infinitas.

Matar un proceso externo desde Java (por nombre, no por pid)

26 Mar 2008

Recientemente nos hemos enfrentado a un problema en uno de nuestros proyectos.

Resulta que el servidor OpenOffice que usamos en ese proyecto para determinadas tareas, en algunas circunstancias se queda totalmente “tonto”. El proceso esta ahi, el servidor no hace crash, pero no responde a ninguna llamada.

Decidimos cortar por lo sano, y hacernos un daemon que chequease si el servidor estaba respondiendo. Si no responde, matamos el servidor, y lo rearrancamos.

No tiene mucho misterio el tema.

Pero nos enfrentamos a algo que nunca antes habiamos hecho: Como matar un proceso que no habiamos iniciado nosotros y del que unicamente sabiamos su nombre?

Bueno, buscando un poco en google, y sacando ideas de un foro aqui, y otro foro alli, llegamos a desarrollar esta funcion que quizas le sea de ayuda a alguien que tenga en el futuro un problema similar.

Por supuesto el daemon debe tener privilegios de nivel suficiente para ser capaz de acabar con el proceso a matar, en nuestro caso “soffice”.


private void matarSoffice() {
 String osName = System.getProperty("os.name");
 String cmd =  "";
 if(osName.toUpperCase().contains("WIN")){//S.O. Windows
	cmd+="tskill soffice";
 }else{//Solo ha sido probado en win y linux
	cmd+="killall soffice";
 }
 Process hijo;
 try {
	hijo = Runtime.getRuntime().exec(cmd);
	hijo.waitFor();
	if ( hijo.exitValue()==0){
		System.out.println("soffice matado con exito");
	}else{
		System.out.println("Incapaz de matar soffice. Exit code: " + hijo.exitValue()+"n");
	}
 } catch (IOException e) {
	System.out.println("Incapaz de matar soffice.");
 } catch (InterruptedException e) {
	System.out.println("Incapaz de matar soffice.");
 }
}

Hala pues,

Minimizar Thunderbird a la System Tray

16 Nov 2007

Si usas Thunderbird como cliente de correo una de las funciones qué más se echa de menos respecto al Outlook por ejemplo es la capacidad de minimizarse al System Tray, para no tener siempre ocupando espacio en la barra de tareas.

Esto ya no es problema con un complemento muy útil para Thunderbird, Firefox, Mozilla y Nvu que permite minimizar estos programas en el System Tray, e incluso mandarlos ahí cuando cerramos la aplicación. Para restaurarlo basta un simple doble click.

¿Dónde pillo el artefacto? Aquí:

https://addons.mozilla.org/es-ES/firefox/addon/2110?application=thunderbird&id=2110

Para instalarlo desde Thunderbird vamos a Herramientas -> Complementos -> Instalar e instalamos el .xpi que acabamos de bajar. Reiniciamos Thunderbird y si vamos a Herramientas -> Complementos veremos el nuevo plugin instalado. En sus opciones podemos configurar que se minimice al System Tray.

A mí me parece muy útil el cacharrito.

Opera en Linux

27 Oct 2007

Desde mi punto de vista Opera es el mejor navegador. Si estás habituado a Windows en el paso a Linux verás que pierdes 2 cosas:

– El idioma (en Windows se autoinstala con el idioma de tu S.O.)
– El flash (cuando lo instalas avisa que Opera no está soportado)

¿Qué hago? Pues he encontrado un link muy majo donde te explica cómo arreglar ambas cosas de forma muy sencilla:

Enlace

Ya puedes seguir disfrutando de tu navegador favorito.

Ubuntu: ¿dónde está mi papelera?

18 Oct 2007

Ahora vamos con algo light. Si eres nuevo con esto del Ubuntu y estás acostumbrado al Windows quizás hayas echado de menos en tu escritorio los iconos de “Mi PC”, “Papelera”, etc que todo sea dicho resultan muy prácticos.

En Ubuntu esto también es configurable. Abre una consola y teclea gconf-editor, que como su nombre indica es una aplicación para configurar nuestro escritorio gnome, y entre otras cosas esto incluye los iconos que queremos ver en el escritorio.

¿Dónde ir? apps -> nautilus -> desktop

Y ale, configura a tu gusto.