diff --git a/docs/opensc-es.html b/docs/opensc-es.html new file mode 100644 index 00000000..918335c5 --- /dev/null +++ b/docs/opensc-es.html @@ -0,0 +1,2051 @@ + + + + + + Manual de OpenSC + + + + +
+
+
+
+

+ Manual de OpenSC

+
+
+ +
+
+ +
+
+
+
+
+

+ Tabla de contenidos +

+
+
+ + 1. Introducción + +
+
+ + 2. Autores y + Colaboradores + +
+
+
+
+ + + Agradecimientos + +
+
+
+
+ + 3. Licencia. Copyright + +
+
+ + 4. Introducción + +
+
+
+
+ + Estructura de + OpenSC + +
+
+ + El módulo + lector + +
+
+
+
+ + 5. Compilación e + Instalación de libopensc + +
+
+
+
+ + Linux + +
+
+ + Windows + +
+
+ + Windows + con soporte OpenSSL + +
+
+
+
+ + 6. Estado del desarrollo + +
+
+
+
+ + Tarjetas + +
+
+ + Windows + +
+
+ + Módulo PKCS #11 + en Netscape y Mozilla + +
+
+
+
+ + 7. Uso de OpenSC + +
+
+
+
+ + OpenSC y + Netscape + +
+
+ + OpenSC y + Mozilla + +
+
+ + OpenSC y + OpenSSL + +
+
+ + OpenSC y + OpenSSH + +
+
+ + Pluggable + Authentication Module + +
+
+
+
+ + eid based + authentication + +
+
+ + + Autenticación basada en LDAP + +
+
+
+
+
+
+ + 8. The OpenSC PKCS #11 + library + +
+
+
+
+ + Qué es PKCS + #11 + +
+
+ + Slots + Virtuales + +
+
+
+
+ + 9. Seguridad + +
+
+
+
+ + Ordenes desde línea de + Comandos + +
+
+ + Acceso a la card + +
+
+ + Protegiendo tarjetas con + la utilidad pkcs15-init + +
+
+ + Protección de los ficheros + de configuración, profiles, y caché + +
+
+ + Acceso como administrador + (root) + +
+
+
+
+ + 10. Tareas pendientes de + desarrollo + +
+
+
+
+ + General + +
+
+ + Windows + +
+
+
+
+ + 11. Resolución de + problemas + +
+
+ + 12. Recursos y enlaces + +
+
+ + 13. Modulo de firmado + +
+
+
+
+ + Compilando e + instalando el Módulo signer + +
+
+
+
+ + 14. Notas sobre DocBook + +
+
+
+
+
+
+
+

+ Capítulo 1. + Introducción

+
+
+
+

libopensc es una biblioteca de acceso a dispositivos + tipo Tarjeta Inteligente (SmartCards). Cualquier tarjeta + que soporte el estandard ISO 7816-4 deberia poder ser + utilizada para las funcionalidades básicas ( manejo de + ficheros ). Si además la tarjeta es compatible con el + standard PKCS#15, la biblioteca ofrece a estas tarjetas el + soporte de diversas funciones criptográficas

+
+
+
+
+
+

+ Capítulo 2. Autores y + Colaboradores

+
+
+
+
+

+ Tabla de contenidos +

+
+
+ + + Agradecimientos + +
+
+
+

Se adjunta la lista de todos los autores y colaboradores + de OpenSC en orden alfabético

+
+ +
+
+
+
+
+

+ + Agradecimientos

+
+
+
+

Las siguientes personas an aportado ideas, apoyo y/o + información para el desarrollo de OpenSC

+
+ +
+

OpenSC no ha inventado la rueda ni escrito el código + desde cero. Se ha usado código de otros proyectos, + principalmente para desarrollar el interfaz con éstos. + Los autores originales son:

+
+ +
+
+
+
+
+
+
+

+ Capítulo 3. Licencia. + Copyright

+
+
+
+ + + + +
+
+OpenSC smart card library
+Copyright (C) OpenSC developers 
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 
+02111-1307  USA
+
+
+
+
+
+
+
+

+ Capítulo 4. + Introducción

+
+
+
+
+

+ Tabla de contenidos +

+
+
+ + Estructura de + OpenSC + +
+
+ + El módulo + lector + +
+
+
+

OpenSC está basado en diversos componentes. El principal + es la biblioteca OpenSC, a su vez dividida en tres capas, + cada una con diversos drivers Otros componentes son: la + biblioteca PKCS#11, el módulo PAM, diversos plugins para + OpenSSL... Adicionalmente, se incluyen diversas utilidades + y aplicaciones de test que usan estas bibliotecas

+

El objetivo de este capítulo es proporcionar información + sobre el funcionamiento interno de la biblioteca OpenSC, + cómo funciona, y finalmente qué ofrecen las utilidades. + Cada una de éstas, así como las bibliotecas, tienen su + propia pagina de manual, y su sección en este documento

+
+
+
+
+

+ Estructura de + OpenSC

+
+
+
+

La biblioteca básica de OpenSC es libopensc. Ofrece + tanto funcionalidades básicas para la comunicación con + las tarjetas inteligentes, como avanzadas, (eg. generar + claves RSA en una tarjeta)

+

Para ello, libopensc está estructurado en diversas + capas, a su vez implementadas mediante uno o más drivers. + Estas capas son:

+
+
+
+ Lector +
+
OpenSc necesita poder enlazar con los diversos + manejadores de lectores de tarjetas. Dado que cada + uno tiene su propio software (CT-api, PC/SC, etc), + OpenSC provee un módulo específico para cada uno
+
+ Tarjetas +
+
Idealmente, todas las tarjetas inteligentes, de + berían implementar el standard ISO 7816 de la misma + forma, y aceptar y generar los mismos comandos y + respuestas. Desafortunadamente, este no es el caso. + OpenSC ofrece pues un módulo específico por cada + tarjeta (o familia de tarjetas)
+
+ pkcs15init +
+
Las tarjetas inteligentes suelen incorporar un + sistema de ficheros, donde almacenar claves y + certificados. Asímismo incorporan comandos para crear + directorios y ficheros, ajustar permisos y seguridad, + etc. En función de la tarjeta no solo los comandos + son distintos, sino que incluso la estructura de + ficheros y modelo de seguridad difieren. El módulo + pkcs15init esconde estas diferencias al resto de la + aplicación
+
+ La infraestructura PKCS + #15 +
+
+

+ PKCS #15Es el estandard de manejo + y almacenamiento de claves y certificados en un + dispositivo criptográfico. A pesar de ello, muchos + fabricantes de tarjetas implementan sus propios + mecanismos, por ejemplo especificando diferentes + directorios. OpenSC implementa el estandard + PKCS#15, existiendo un módulo de emulación para + aquellas tarjetas que se apartan del estandard

+

De hecho es posible elaborar una infraestructura + nueva para implementar compatibilidad con sistemas + que no cumplan dicho estandard

+
+
+
+
+
+
+
+
+

+ El módulo + lector

+
+
+
+

PC/SC Lite es una aplicación middleware que sirve para + interactuar, por un lado con los drivers para lectores de + tarjetas, y por otro con las aplicaciones que las + manejan. OpenSC puede usar PC/SC Lite mediante el modulo + lector pcsc, aunque soporta otras alternativas

+

PC/SC es un API estandard entre aplicaciones, como + gestor de recursos para lectores de tarjetas + inteligentes. Es muy popular en el entorno operativo + Windows. La documentación está disponible en: + + http://www.pcscworkgroup.com/.

+

PC/SC Lite es la implementación del estandard PCSC + para sistemas Linux, Unix, Windows y MacOS X, realizada + por David Corcoran + . La aplicación está + disponible como software libre y gratuíto. Para descargar + esta aplicación, refierase a la página web del Movimiento + para el Uso de SmartCards en Entornos Linux ( M.U.S.C.L.E + ) + + http://www.linuxnet.com/.

+

Para instalar el soporte de OpenSC para pcsc-lite, es + necesario instalar PCSCLite primero, y seguidamente + configurar OpenSC especificando la ubicación de la + instalación de PCSC

+ + + + +
+
+$ cd opensc-<version>
+$ ./configure --with-pcsclite=/path/to/pcsclite
+                                
+
+
+

+

OpenCT es una nueva aplicación para manejo de tarjetas + inteligentes, lectores y terminales de acceso. OpenCT ha + sido escrito desde cero , constituyendo un entorno muy + ligero, e incluyendo todos los drivers. Está dispobible + para sistemas Linux, pero si se desea su uso en otros + entornos Unix o BSD, por favor consulte en la lista de + correo de opensc-devel

+

OpenCT es software libre. El código fuente está + disponible de manera gratuita. OpenCT es desarrollado + conjuntamente con OpenSC y se recomienda su uso + preferente para entornos Linux. OpenCT está disponible en + la página web de OpenSC + + http://www.opensc.org/. Para dudas y consultas acudan + a la lista de correo +

+

Para compilar OpenSC con soporte OpenCT, es necesario + tener instalado éste primero. La documentación de OpenCT + está incluída en el código fuente, así como disponible en + línea a través del enlace: + + http://www.opensc.org/files/doc/openct.html. Una vez + instalado OpenCT, recompile OpenSC indicando la ubicación + de las bibliotecas OpenCT

+ + + + +
+
+$ cd opensc-<version>
+$ ./configure --with-openct=/path/to/openct
+                                
+
+
+

+

CT-API es un estandard para manejadores de tarjetas + inteligentes. Fué desarrollado en la década de los 80, + para aplicaciones MS-Dos, y quizás no sea muy conocido en + los ambientes multi-usuario y multi-tarea de la + actualidad. Sin embargo, CT-API está muy extendido y + muchos lectores proveen soporte para este estándard + incluso bajo Linux.

+

OpenSC puede usar drivers CT-API directamente. No + obstante su uso se reserva para aplicaciones de + depuración y no se recomienda en instalaciones + multi-usuario o con múltiples aplicaciones que usen el + lector

+

El soporte CT-API en OpenSC no necesita párametros + especiales a la hora de recompilar. Léase el fichero de + configuración + opensc.confpara saber como + configurar el driver CT-API bajo OpenSC

+
+
+
+
+
+
+

+ Capítulo 5. Compilación e + Instalación de libopensc

+
+
+
+
+

+ Tabla de contenidos +

+
+
+ + Linux + +
+
+ + Windows + +
+
+ + Windows + con soporte OpenSSL + +
+
+
+
+
+
+
+

+ Linux

+
+
+
+

Lea el fichero + INSTALLpara ver las + instrucciones de compilación. Si se está partiendo de una + versión descargada del CVS, necesitará ejecutar + previamente el script 'bootstrap' antes de ejecutar + 'configure'. Del mismo modo, deberá tener versiones + actualizadas de Autoconf, Automake, y Libtool

+
+
+
+
+
+

+ Windows

+
+
+
+

Ejecute "nmake -f makefile.mak" en el directorio + opensc para compilar

+

Además de nmake, deberá tener perl y flex instalados + para poder realizar la compilación

+

El fichero Makefile.mak no incorpora mecanismos para + "make install", por lo que deberá realizar la instalación + de manera manual

+
+
    +
  1. Copiar opensc.conf al directorio Windows ( + generalmente C:\WINDOWS o C:\WINNT). Esta operación + es opcional
  2. +
  3. Copiar opensc.dll y opensc-pkcs11.dll a una + ubicación dentro del path
  4. +
  5. Si se quiere utilizar el comando pkcs15-init.exe, + asegurese de que los ficheros *.profile residentes en + el directorio src\pkcs15init\ están en el mismo + directorio que pkcs15-init.exe, o en el directorio + Windows
  6. +
+
+
+
+
+
+
+

+ Windows + con soporte OpenSSL

+
+
+
+

Esta opción añade funcionalidad extra (por ejemplo + PKCS#11 hash y mecanismos de firmas pkcs#11 + adicionales

+
+
    +
  1. Descargar y compilar los fuentes de OpenSSL de: + http://www.openssl.org/source/
  2. +
  3. Añadir el directorio \inc32 al include_path, y el + \out32dll al library_path y exec_path + + + + +
    +
    +set include=%include%;.....\inc32
    +set lib=%lib%;.....\out32dll
    +set path=%path%;....\out32dll
    +                                        
    +
    +
  4. +
  5. En el fichero src\tools\Makefile.mak descomentar + "pkcs15-init.exe en la línea "TARGETS", y + (opcionalmente) añadir "libeay32.lib" y "gdi32.lib" + al la línea marcada como "link" (enlace)
  6. +
  7. En el fichero src\libopensc\Makefile.mak, añadir + "libeay32.dll" y "gdi32.dll" a la línea marcada como + "link" (enlace)
  8. +
  9. Realizar la misma inclusión en el fichero + src\pkcs11\Makefile.mak en las entradas "link" de las + secciones "TARGET" y "TARGET3"
  10. +
  11. En el fichero win32\Make.rules.mak, añadir + /DHAVE_OPENSSL a la línea "COPTS"
  12. +
+
+

Para no necesitar las librerías dinámicas: compilar + OpenSSL estáticamente y substituír los ficheros gdi32.dll + y libeay32.dll por los ficheros gdi32.lib t libeay32.lib, + respectivamente, en los tres ficheros Makefile.mak + anteriormente indicados

+
+
+
+
+
+
+

+ Capítulo 6. Estado del + desarrollo

+
+
+
+
+

+ Tabla de contenidos +

+
+
+ + Tarjetas + +
+
+ + Windows + +
+
+ + Módulo PKCS #11 en + Netscape y Mozilla + +
+
+
+
+
+
+
+

+ Tarjetas

+
+
+
+
+
+
+ CryptoFlex +
+
+

Soporta firma/desencriptación e + inicialización

+
+
+ Gemplus PK 4K, 8K, 16K +
+
+

Soporta firma/desencriptación e + inicialización

+

Nota: no le será posible inicializar una tarjeta + GemSafe - estas tarjetas vienen personalizadas por + GemPlus y no se pueden borrar o añadir nuevos + ficheros de claves en ellas

+
+
+ Aladdin eToken PRO +
+
+

Soporta firma/desencriptación e + inicialización

+

Nota: CardOS solo soporta claves para firmado, o + desencriptación, pero no para ambas. Esta + limitación puede ser evitada creando/almacenando + claves con la opción "--split-keys"

+
+
+ Eutron CryptoIdendity + IT-SEC +
+
+

Soporta firma/desencriptación e + inicialización

+

Nota: CardOS solo soporta claves para firmado, o + desencriptación, pero no para ambas. Esta + limitación puede ser evitada creando/almacenando + claves con la opción "--split-keys"

+
+
+ Micardo +
+
+

Soportada ( TODO: incluir detalles )

+
+
+ Miocos +
+
+

Soportada ( TODO: incluir detalles )

+
+
+ Setcos +
+
+

Soportada ( TODO: incluir detalles )

+
+
+ Tcos +
+
+

Soportada ( TODO: incluir detalles )

+
+
+
+
+
+
+
+
+

+ Windows

+
+
+
+

Actualmente, solo han sido portados a Windows: + libopensc.dll, pkcs11-spy.dll, opensc-pkcs11.dll y la + mayor parte de los ejecutables del directorio \tools y + \tests. Estas bibliotecas han sido testeadas en Win98, + WinNT, Win2000 y WinXP

+
+
+
+
+
+

+ Módulo PKCS #11 en + Netscape y Mozilla

+
+
+
+

Netscape parece mostrar más información acerca de sus + módulos de seguridad que Mozilla. No obstante el soporte + no ha sido testeado

+

Notas sobre threads en Linux y MacOS X: Netscape y + Mozilla usan el parámetro CKF_OS_LOCKING_OK en la función + C_Initialize(). Como resultado, el thread del navegador + no termina cuando se cierra éste, y debe ser abortado + manualmente. Esto es debido a que el navegador no invoca + C_Finalize, que liberaría los locks, tal y como + especifica el estandard

+

Por consiguiente OpenSC no utiliza los mecanismos de + bloqueos de threads, incluso aunque sean solicitados. + Esto parece funcionar en Mozilla, pero puede causar + problemas en aplicaciones que utilicen múltiples hilos + que accedan simultáneamente a la librería pkcs11

+

Si se desea utilizar los mecanismos de threading, + recompilar con la opción -DPKCS11_THREAD_LOCKING. En + Windows no se usan hilos, y por consiguiente este + problema no existe, por lo que se usa el mecanismo de + bloqueos del sistema

+
+
+
+
+
+
+

+ Capítulo 7. Uso de + OpenSC

+
+
+
+
+

+ Tabla de contenidos +

+
+
+ + OpenSC y + Netscape + +
+
+ + OpenSC y + Mozilla + +
+
+ + OpenSC y + OpenSSL + +
+
+ + OpenSC y + OpenSSH + +
+
+ + Pluggable + Authentication Module + +
+
+
+
+ + eid based + authentication + +
+
+ + Autenticación + basada en LDAP + +
+
+
+
+
+
+
+
+
+

+ OpenSC y + Netscape

+
+
+
+
+
    +
  1. Seleccionar: Communicator -> Tools -> + Security Info
  2. +
  3. Seleccionar: Cryptographic Modules
  4. +
  5. Pulsar: Add
  6. +
  7. Indicar nombre del módulo: "OpenSC PKCS #11 + Module" Indicar ubicación del fichero: + /path/to/opensc/lib/pkcs11/opensc-pkcs11.so
  8. +
+
+

Para que el módulo funcione adecuadamente, es + necesario activarlo: En el Menú "Cryptographic Modules" + Seleccionar la tarjeta OpenSC, y pulsando en "Config", + activar los botones "Enable this token" y "Publicly + readable Certs"

+

Con esto se garantiza que Netscape utilizará la + tarjeta cuando intente mostrar mensajes encriptados en el + Netscape Messenger. Del mismo modo habilitar "Publicly + readable Certs" evitará que Netscape nos pida el PIN cada + vez que se acceda a una página que requiera autenticación + del Cliente

+

El boton "RSA" NO DEBE ser activado. En caso + contrario, Netscape intentará usar la tarjeta cada vez + que vaya a generar claves públicas, y fallará (no todas + las tarjetas soportan esta funcionalidad)

+

FIXME: Especificar versión de Netscape a la que se + aplican estas instrucciones

+
+
+
+
+
+

+ OpenSC y + Mozilla

+
+
+
+
+
    +
  1. Asegurese que el Personal Security Manager (PSM) + está instalado (paquete mozilla-psm)
  2. +
  3. Seleccionar menú: Edit -> Preferences
  4. +
  5. Seleccionar Categoría: Privacy & Security + -> Certificates
  6. +
  7. Pulsar en: "Manage Security Devices"
  8. +
  9. Seleccionar: Load
  10. +
  11. Indicar nombre del módulo: "OpenSC PKCS #11 + Module" y ubicación del fichero: + /path/to/opensc/lib/pkcs11/opensc-pkcs11.so
  12. +
+
+
+
+
+
+
+

+ OpenSC y + OpenSSL

+
+
+
+

OpenSSL es una potente utilidad que implementa los + protocolos SSL, así como una biblioteca criptográfica de + uso general. Entre sus características, se incluye la + posibilidad de incluir "al vuelo" capacidades + criptográficas adicionales (engines), como pueda ser la + adicción de hardware criptográfico

+

OpenSC incluye dos "engines" para OpenSSL. Esto + permite el uso de OpenSSL y sus diversas utilidades + asociadas en combinación con las capacidades + criptográficas de las tarjetas inteligentes

+

Para utilizar estas habilidades, es preciso cargar el + "engine" dentro de OpenSSL, y luego utilizar de la manera + habitual las aplicaciones. He aquí un ejemplo de + utilización desde el comando + + openssl + :

+

Ejemplo de cómo cargar el "engine" OpenSC

+ + + + +
+
+aj@simulacron:~$ openssl
+OpenSSL> engine dynamic -pre
+SO_PATH:/home/aj/opensc/lib/opensc/engine_opensc.so -pre ID:opensc
+-pre LIST_ADD:1 -pre LOAD
+(dynamic) Dynamic engine loading support
+[Success]: SO_PATH:/home/aj/opensc/lib/opensc/engine_opensc.so
+[Success]: ID:opensc
+[Success]: LIST_ADD:1
+[Success]: LOAD
+Loaded: (opensc) opensc engine
+OpenSSL> 
+                                
+
+
+

+

Un comando OpenSSL típico puede ser la recuperación de + un certificado: + req -engine opensc -new -key + + key + -keyform engine -out req.pem -text. Consulte la + documentación de OpenSSL para detalles adicionales

+

- + + key + Especifica el identificador de una clave en + Hexadecimal. - por ejemplo "45" corresponde al la clave + con ID="0x45"

+

OpenSC incluye dos "engines" para OpenSSL: + engine_opensc.soy + engine_pkcs11.so.

+

El módulo engine_opensc.so sólo funciona bajo OpenSC, + y no funcionará cuando haya múltiples aplicaciones + accediendo concurrentemente a la tarjeta, o existan en la + tarjeta varios certificados. Pero en los casos simples: + (una aplicación, una tarjeta, un certificado) es el + módulo indicado por su simplicidad

+

El módulo engine_pkcs11.so es mucho mas genérico y + flexible. funcionará en todos los casos, incluídos + aquellos en que existan múltiples tarjetas, claves, + certificados, con aplicaciones concurrentes. Además está + basado en el estandard PKCS#11, por lo que no solo puede + usar la biblioteca OpenSC (como hace por defecto), sino + cualquier otra implementación de PKCS#11

+

Para cargar dicho "engine", ejecutar el comando:

+ + + + +
+
+aj@simulacron:~$ openssl
+OpenSSL> engine dynamic -pre
+SO_PATH:/home/aj/opensc/lib/opensc/engine_pkcs11.so -pre ID:pkcs11
+-pre LIST_ADD:1 -pre LOAD -pre
+MODULE_PATH:/home/aj/opensc/lib/pkcs11/opensc-pkcs11.so
+(dynamic) Dynamic engine loading support
+[Success]: SO_PATH:/home/aj/opensc/lib/opensc/engine_pkcs11.so
+[Success]: ID:pkcs11
+[Success]: LIST_ADD:1
+[Success]: LOAD
+[Success]: MODULE_PATH:/home/aj/opensc/pkcs11/opensc-pkcs11.so
+Loaded: (pkcs11) pkcs11 engine
+OpenSSL> 
+                                
+
+
+

Y luego proceda normalmente

+

Un comando típico OpenSSL puede ser la recuperación de + un certificado: + req -engine pkcs11 -new -key + + key + -keyform engine -out req.pem -text. Consulte la + documentación de OpenSSL para más detalles

+

+ + key + tiene el formato + [slot_<slotNr>][-][id_<keyID>], donde

+
+
    +
  • El parámetro (opcional) slotNr indica el slot + PKCS#11 a usar (empezando por cero, que es el valor + por defecto
  • +
  • keyID es el identificador de clave en notación + hexadecimal
  • +
+
+

Ejemplos:

+
+
    +
  • id_45 => clave privada con ID = 0x45 en el + primer slot disponible
  • +
  • slot_2-id_46 => clave privada con ID = 0x46 en + el tercer slot
  • +
+
+

+

En sistemas Windows, solo está portado el módulo + pkcs11. Al cargar dicho engine, utilize el nombre + "engine_pkcs11" en lugar de "engine_pkcs11.so"

+
+
+
+
+
+

+ OpenSC y + OpenSSH

+
+
+
+

La versión 3.6.1p2 de OpenSSH necesita un parche para + compilar con soporte OpenSC. Encontrará dicho parche en + el directorio src/openssh

+

Para compilar OpenSSH, ejecute el comando "configure" + de la siguiente manera: + ./configure + --with-opensc=/path/to/opensc

+

Necesitará tener certificados en su tarjeta: un par de + claves no es suficiente. Descargue el certificado en + formato OpenSSH con el comando: + ssh-keygen -D + + reader + [ + : + + certificate ID + ] > + + file +

+

Reemplace + + reader + con el número del lector que desea ( por defecto 0). + El comando + opensc-tool -lle proporcionará la + lista de lectores disponibles. Añada el identificador del + certificado en caso necesario ( por defecto ID=45 ). El + comando + pkcs11-tool -Ole indica la lista + de certificados y sus identificadores

+

Una vez realizada la extracción del certificado, + copielo al servidor e incluyalo en el fichero + ~/.ssh/authorized_keystal y + como se hace habitualmente

+

Para usar una tarjeta con OpenSSH, ejecute: + ssh -I + + reader + [ + : + + certificate ID + ]

+

Del mismo modo se puede usar la utilidad ssh-agent con + OpenSC. para ello use el comando: + ssh-add -s + + reader +

+
+
+
+
+
+

+ Pluggable + Authentication Module

+
+
+
+

El sistema PAM (Pluggable authentication modules) es + el mecanismo por el que Linux, y otros sistemas Unix + utilizan para los procedimientos de autentificación de + usuarios. OpenSC incluye un módulo que permite añadir la + autentificación mediante tarjetas inteligentes: + "pam_opensc"

+

pam_opensc identifica las siguientes opciones:

+
+
+
+ debug +
+
registra información para depuración
+
+ audit +
+
registra información sobre trazas
+
+ use_first_pass +
+
No solicita contraseñas al usuario, sino que + utiliza los elementos definidos en la configuración + de los módulos PAM
+
+ try_first_pass +
+
No solicita contraseña, a menos que la opción + PAM_(OLD)AUTHOK esté especificada
+
+ use_authtok +
+
Exige la opción PAM_AUTHOK, fallando en caso + contrario
+
+ set_pass +
+
Ajusta las opciones PAM_ con las contraseñas + usadas en éste módulo
+
+ nodelay +
+
Elimina el retardo de un segundo en caso de + autenticación fallida
+
+ auth_method=X +
+
Selecciona entre pkcs15-ldap o pkcs15-eid (opción + por defecto) como modo de funcionamiento del + módulo
+
+
+

+

Opciones Genéricas:

+
+
+
+ -h +
+
muestra ayuda
+
+ -r reader +
+
Nombre del lector (FIXME: not number?)
+
+
+

+
+
+
+
+

+ eid based + authentication

+
+
+
+

Este es el método de autentificación por defecto: + Cree un directorio + .eiden su directorio raíz y + copie su certificado (en formato PEM) en el fichero + + .eid/authorized_certificates.

+

Nota: + pkcs15-tool -cle mostrará los + certificados y sus identificadores. El comando + pkcs15-tool -r ID -o + ~/.eid/authorized_certificatesle permitirá + recuperar y guardar el certificado en el fichero + deseado

+
+
+
+
+
+

+ Autenticación + basada en LDAP

+
+
+
+

Si escogemos la opción auth_metod=pkcs15-ldap, se + activará el soporte LDAP para autenticación a través de + OpenSC. Las siguientes opciones están contempladas:

+
+
+
+ -L ldap.conf +
+
especifica el fichero de configuración a + usar
+
+ -A entry +
+
Añadir nueva entrada
+
+ -E entry +
+
Activar entrada actual
+
+ -H hostname +
+
Nombre del servidor LDAP
+
+ -P port +
+
Puerto en el que el servidor está + escuchando
+
+ -S scope +
+
Ambito (scope) del servidor
+
+ -b binddn +
+
binddn de la conexión
+
+ -p passwd +
+
contraseña del binding LDAP
+
+ -B base +
+
base del binding LDAP
+
+ -a attributes +
+
Atributos a recuperar
+
+ -f filter +
+
filtro de búsqueda
+
+
+

FIXME: incluir un ejemplo de estructura de datos + LDAP: fichero de configuración, etc

+
+
+
+
+
+
+
+

+ Capítulo 8. The OpenSC PKCS + #11 library

+
+
+
+
+

+ Tabla de contenidos +

+
+
+ + Qué es PKCS #11 + +
+
+ + Slots Virtuales + +
+
+
+
+
+
+
+

+ Qué es PKCS + #11

+
+
+
+

+ PKCS #11es el API estandard para el + acceso a dispositivos criptográficos, tales como tarjetas + inteligentes, modulos de seguridad hardware, etc... El + API está definido mediante funciones como: + C_GetSlotList(), C_OpenSession(), C_FindObjects(), + C_Login(), C_Sign(), C_GenerateKeyPair(), ...

+

Algo de terminología básica de PKCS #11

+
+
    +
  • Slot: ubicación en la que se puede insertar una + tarjeta inteligente. Normalmente se corresponde con + un lector de tarjetas ( ver "slots virtual" )
  • +
  • Token: elemento que se sitúa en un slot. + Habitualmente se refiere a una SmartCard (ver slots + virtual)
  • +
  • Objeto (Object) una clave, certificado, datos, + etc. Puede ser un objeto referido a un token (eg. un + certificado residente en la tarjeta) o bien un objeto + referido a la sesion (eg. un dato a firmar/encriptar + )
  • +
  • Sesión: antes de poder operar con un token, es + necesario abrir una sesión y asociarla con él
  • +
  • Operación: una firma, una desencriptación, etc + que puede conllevar una o varias llamadas a la + biblioteca. Solo se puede realizar una operación por + cada sesion, pero pueden ser abiertas múltiples + sesiones sobre el mismo token
  • +
+
+

+
+
+
+
+
+

+ Slots + Virtuales

+
+
+
+

PKCS#11 define que cada token tiene asociado dos PIN's + (Personal Identification Number): el del usuario (User + PIN) y el del administrador (Security Officer PIN). A + pesar de ello muchas tarjetas soportan más de un PIN de + usuario (eg PIN1 y PIN2 en tarjetas de telefonos + móviles). La manera de resolver este problema es la de + proveer de múltiples "slots virtuales" ( definidos en el + apéndice D del + estándard PKCS #11. Por ello cada + lector simula uno o varios slots. Si se inserta una + tarjeta, aparecerán tantos slots como PIN's disponibles. + En cada slot aparecerá un token que contiene los objetos + asociados a cada PIN. Es el equivalente a disponer de + "varias tarjetas en una", cada una con su PIN

+

OpenSC puede trabajar simultáneamente con varias + tarjetas, y no sabe a priori cuantos slots se crean por + cada tarjeta. Por ello se crean por defecto 4 slots + virtuales. Se puede cambiar dicho número en el parámetro + "num_slots" del fichero /etc/opensc.conf

+

Para numerar los slots, OpenSC adopta el siguiente + convenio: por cada PIN, sus claves, y certificados, se le + asigna un slot virtual. Si hay más objetos son asignados + al siguiente slot libre. Si quedan slots libres se crean + en ellos slots adicionales marcados como vacíos donde + pueden ser insertados tanto un nuevo PIN como sus objetos + asociados. Si no se desea añadir nuevos objetos, la + directiva "hide_empty_tokens" del fichero de + configuración esconde los slots libres

+

Ejemplo. Sea un sistema con dos lectores. Sea una + tarjeta con dos PINs. Cada PIN proteje una clave privada + y un certificado. Además existen tres certificados raíz + no asociados a dicho PIN. Si tenemos la configuracion + num_slots=4 , hide_empty_tokens=false, e insertamos la + tarjeta en el segundo lector, obtendremos lo + siguiente:

+
+
    +
  • token en slot 4: PIN 1, key 1, cert 1
  • +
  • token en slot 5: PIN 2, key 2, cert 2
  • +
  • token en slot 6: los 3 certificados raíz
  • +
  • token en slot 7: vacío
  • +
+
+

Si se hubiera especificado "hide_empty_tokens=false", + el slot 7 no contendría ningún token

+

Nota: si en el anterior ejemplo, la cadena de + certificados contuviera algún certificado común, dicho + certificado aparecería duplicado en los slots 4 y 5 (lo + que causaría problemas si se intentara borrar. Este + problema no está aún resuelto en OpenSC )

+

Otra cosa a recordar: OpenSC tiene prefijado el número + máximo de slots virtuales a 8. por ello, si se selecciona + "num_slots = 4" solo se podrán manejar dos lectores. O, + por ejemplo, si se seleciona "num_slots = 3", los dos + primeros lectores verán 3 slots, mientras que el tercero + verá solo 2

+
+
+
+
+
+
+

+ Capítulo 9. Seguridad

+
+
+
+ +
+
+
+
+

+ Ordenes desde línea de + Comandos

+
+
+
+

OpenSC permite especificar el PIN y las claves como + argumentos en la línea de comandos. Esta operación sólo + es recomendable en casos de test o cuando se es el único + usuario del sistema. En sistemas multiusuario, los otros + usuarios pueden ejecutar comandos como "ps" o "top", y + probablemente puedan ver los argumentos asociados al + comando en ejecución. Del mismo modo, dichos comandos + suelen quedar registrados en los archivos "history"

+

La solución pasa por usar un script, o en el caso del + comando pkcs15-init, especificar los PINS y claves en un + fichero, e indicar el nombre de éste con la opción + "--options-file"

+
+
+
+
+
+

+ Acceso a la card

+
+
+
+

Pueden aparecer otros problemas en entornos + multiusuario donde más de un usuario tenga acceso al + lector:

+
+
    +
  • Si el usuario deja la tarjeta insertada con la + sesion abierta, otro usuario podría modificar el pin, + bloquearlo, o incluso anular la tarjeta
  • +
  • Si la sesión realiza caché de PIN's o claves, + otro usuario podría usar nuestra tarjeta y suplantar + nuestra personalidad
  • +
+
+

+

Una solución puede ser crear un usuario/grupo + "scard/scard" bajo el que se ejecuta el servidor pcscd y + al que solo se puede acceder desde xdm. No es una + solución perfecta, pero funciona en estaciones que solo + disponen de un lector

+

En el caso de que las aplicaciones utilicen la + biblioteca PKCS#11, el sistema garantiza acceso exclusivo + una vez que se proporciona el PIN. Esta es la + configuración por defecto. Si se desea que múltiples + aplicaciones puedan trabajar a la vez con dicha + biblioteca, es necesario especificar la opción + "lock_login = false" en el fichero /etc/opensc.conf; pero + en este caso la tarjeta quedará accesible por + terceros

+

Las otras aplicaciones OpenSC no garantizan el acceso + exclusivo

+
+
+
+
+
+

+ Protegiendo tarjetas con + la utilidad pkcs15-init

+
+
+
+

Muchas tarjetas incorporan una clave "de fábrica", que + se usa para crear el sistema de ficheros inicial en la + tarjeta. Una vez creado el sistema de ficheros se protege + mediante PIN, con lo que dicha clave ya no es válida

+

Esto significa que los datos del usuario no son + accesibles para nadie que posea la clave de fábrica, en + el sentido de que no pueden ser accedidos o usados

+

No obstante, con dicha clave, otro usuario podría + destruír el sistema de ficheros, borrando todo su + contenido

+

En si mismo esto es positivo: en el caso de pérdida de + tarjeta, los datos solo pueden ser destruídos, no leídos. + Pero puede darse otro problema: los certificados pueden + ser substituídos por otros falsos. Por consiguiente: sea + muy cuidadoso cuando utilice las tarjetas en entornos + hostiles, y proteja SIEMPRE los certificados con PIN

+
+
+
+
+
+

+ Protección de los ficheros de + configuración, profiles, y caché

+
+
+
+

Aunque por sí mismos, los ficheros opensc.conf y + xxx.profile no contienen información sensible, es muy + importante garantizar que no son modificados

+

Algunos ejemplos de lo que se puede hacer modificando + dichos ficheros:

+
+
    +
  • Ajustar el nivel de depuración a un nivel mayor o + igual a 6, con lo que la información sensible (PINs) + queda registrada
  • +
  • Cambiar los permisos de acceso del sistema de + ficheros, con lo que la tarjeta quedaría + "abierta"
  • +
  • Cambiar los certificados en el directorio + caché
  • +
+
+

+

Por defecto, el fichero de configuración y los + ficheros profiles deberían ser propiedad del + administrador, con permisos 644. Del mismo modo, el caché + de certificados debería residir en el directorio $HOME + del usuario con permisos 600. No obstante, si el + directorio en el que se ejecutan tiene ficheros profile, + estos toman precedencia sobre los del sistema

+
+
+
+
+
+

+ Acceso como administrador + (root)

+
+
+
+

De lo anterior se deduce que no se puede proteger la + tarjeta ante alguien que tenga permisos de root, que + pueda cambiar los profiles, o que pueda modificar los + ejecutables o supervisar las comunicaciones con las + tarjetas

+
+
+
+
+
+
+

+ Capítulo 10. Tareas + pendientes de desarrollo

+
+
+
+
+

+ Tabla de contenidos +

+
+
+ + General + +
+
+ + Windows + +
+
+
+
+
+
+
+

+ General

+
+
+
+ + + + +
+
+
+* Generación de paquetes Debian
+* Aplicaciones gráficas
+* Soporte de tarjetas EMV, GSM y JavaCards ( algún voluntario? )
+                        
+
+
+ + + + +
+
+
+* incluir funciones de (de)codificación PEM en LibOpenSC
+* pkcs11: soporte de desencriptación en aquellas tarjetas que lo
+soportan
+* pkcs11: asegurarse que todas las operaciones de manejo de PIN se
+gestionan a través del API pkcs11
+* pkcs11: gestion de desbloqueo de PIN's mediante PUK
+* general: soporte de operaciones RSA-PSS
+* pkcs15-init: soporte de SOPIN en CryptoFlex
+* pkcs15-init: al generar claves, comprobar que las claves son
+correctas
+* pkcs15-init: al manejar PUK crear la entrada AODF asociada
+ ( alternativamente, ajustar unblockDisabled para aquellos PIN's
+sin PUK )
+* pkcs15: corregir sc_pkcs15_change_reference_data: añadir funcion
+de desbloqueo
+
+                        
+
+
+
+
+
+
+
+

+ Windows

+
+
+
+

Toda la funcionalidad de OpenSC debería ser portada a + Windows. Del mismo modo se debería implementar una + biblioteca para que OpenSC actue como CryptoAPI Provider, + implementar mecanismos de autenticación (login), y + controles ActiveX para que Internet Explorer pueda + realizar signados

+
+
+
+
+
+
+

+ Capítulo 11. Resolución de + problemas

+
+
+
+

Existe una lista de correo para soporte y discusión en + el proyecto OpenSC. Información adicional sobre el proyecto + se puede encontrar en el + sitio + Web.

+

Se pueden seguir los siguientes procedimientos para + comprobar qué es lo que falla:

+
+
    +
  • Comprobar que se encuentra el lector + opensc-tool -l
  • +
  • Comprobar que se reconoce la tarjeta: + opensc-tool -adebería mostrar + el ATR de ésta
  • +
  • Comprobar que la tarjeta soporta el estandard + pkcs15, obteniendo la lista de objetos almacenados: + pkcs15-tool -C -c -k + --list-public-keys
  • +
+
+

+

Ajustando el nivel de depuración a valores superiores a + 5, y especificando los ficheros de error y log en el + fichero de configuración

+
+
+
+
+
+

+ Capítulo 12. Recursos y + enlaces

+
+
+
+

La página web del proyecto OpenSC + + http://www.opensc.org/

+

Información sobre los proyectos Assuan y Ägypten: + + http://www.gnupg.org/aegypten/

+
+
+
+
+
+

+ Capítulo 13. Modulo de + firmado

+
+
+
+
+

+ Tabla de contenidos +

+
+
+ + Compilando e + instalando el Módulo signer + +
+
+
+

OpenSC Signer es un plugin para Netscape/Mozilla, que + puede generar firmas digitales a partir de tarjetas + inteligentes. Se utiliza para el firmado de páginas web ( + mimetype .sgn )

+
+
+
+
+

+ Compilando e + instalando el Módulo signer

+
+
+
+

Especifique el directorio de instalación para el + módulo al ejecutar "configure": + $ configure --with-plugin-dir= + + <directory> +

+

Directorios típicos son /usr/lib/mozilla/plugins y + /usr/lib/netscape/plugins.

+

Consulte el fichero INSTALL para instrucciones + adicionales

+

Nota: este módulo necesita abrir ventanas de diálogo + para introducir el PIN. Dichas ventanas se generan con la + biblioteca libassuan, del proyecto Ägypten. Si no las + tiene instaladas, deberá hacerlo antes de proceder a + compilar OpenSC

+
+
+
+
+
+
+

+ Capítulo 14. Notas sobre + DocBook

+
+
+
+

Este documento está realizado y mantenido con DocBook + XML. A continuación se indican algunos enlaces de + introducción

+

Este documento ha sido escrito como XML, no SGML. Para + convertirlo, utilice una hoja de estilo XSL, no DSSSL. + Rechace el uso de utilidades que manejen SGML o DSSSL. Ya + no son usadas y se consideran obsoletas

+

El enlace + + DocBook Open Repository projecten SourceForge, contiene + las hojas de estilo necesarias para convertir este + documentos a otros formatos

+

El libro + DocBook: + The Definitive Guide (O'Reilly Book)ilustra DocBook, es + muy manejable, y puede ser utilizado como herramienta en + línea de manera gratuita

+

El libro + DocBook XSL: The Complete GuideContiene + una buena introducción sobre como crear y manejar + documentos, dónde obtener el software y las utilidades, y + como procesar los textos. Es un libro muy recomendable

+

Este documento es demasiado engorroso. Si sabe HTML, por + favor ayúdenos a mejorarlo. Algunas partes deberían ser + ajustadas mediante hotas de estilo ( + Reference for the HTML stylesheet + parameters), pero la mayor parte puede ser hecha con + CSS. !Ayúdanos!

+
+
+ +