2052 lines
77 KiB
HTML
2052 lines
77 KiB
HTML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta http-equiv="Content-Type"
|
|
content="text/html; charset=UTF-8" />
|
|
<title>Manual de OpenSC</title>
|
|
<link rel="stylesheet" href="opensc.css" type="text/css" />
|
|
<meta name="generator"
|
|
content="DocBook XSL Stylesheets V1.66.1" />
|
|
</head>
|
|
<body>
|
|
<div class="book" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h1 class="title">
|
|
<a id="opensc"></a>Manual de OpenSC</h1>
|
|
</div>
|
|
<div>
|
|
<div class="author">
|
|
<h3 class="author"></h3>
|
|
<tt class="email"><
|
|
<a href="mailto:opensc-devel@opensc.org">
|
|
opensc-devel@opensc.org</a>></tt>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div class="author">
|
|
<h3 class="author"></h3>
|
|
<tt class="email"><
|
|
<a href="mailto:jonsito@teleline.es">
|
|
jonsito@teleline.es</a>></tt>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<hr />
|
|
</div>
|
|
<div class="toc">
|
|
<p>
|
|
<b>Tabla de contenidos</b>
|
|
</p>
|
|
<dl>
|
|
<dt>
|
|
<span class="chapter">
|
|
<a href="#opensc.intro">1. Introducción</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="chapter">
|
|
<a href="#opensc.authors">2. Autores y
|
|
Colaboradores</a>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.authors.thanks">
|
|
Agradecimientos</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</dd>
|
|
<dt>
|
|
<span class="chapter">
|
|
<a href="#opensc.license">3. Licencia. Copyright</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="chapter">
|
|
<a href="#opensc.overview">4. Introducción</a>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.overview.layers">Estructura de
|
|
OpenSC</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.overview.readers">El módulo
|
|
lector</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</dd>
|
|
<dt>
|
|
<span class="chapter">
|
|
<a href="#opensc.install">5. Compilación e
|
|
Instalación de libopensc</a>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.install.linux">Linux</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.install.windows">Windows</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.install.windowsopenssl">Windows
|
|
con soporte OpenSSL</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</dd>
|
|
<dt>
|
|
<span class="chapter">
|
|
<a href="#opensc.status">6. Estado del desarrollo</a>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.status.cards">Tarjetas</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.status.windows">Windows</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.status.pkcs11">Módulo PKCS #11
|
|
en Netscape y Mozilla</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</dd>
|
|
<dt>
|
|
<span class="chapter">
|
|
<a href="#opensc.using">7. Uso de OpenSC</a>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.using.netscape">OpenSC y
|
|
Netscape</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.using.mozilla">OpenSC y
|
|
Mozilla</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.using.openssl">OpenSC y
|
|
OpenSSL</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.using.openssh">OpenSC y
|
|
OpenSSH</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.using.pam">Pluggable
|
|
Authentication Module</a>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.using.pam.eid">eid based
|
|
authentication</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.using.pam.ldap">
|
|
Autenticación basada en LDAP</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</dd>
|
|
</dl>
|
|
</dd>
|
|
<dt>
|
|
<span class="chapter">
|
|
<a href="#opensc.pkcs11">8. The OpenSC PKCS #11
|
|
library</a>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.pkcs11.whatis">Qué es PKCS
|
|
#11</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.pkcs11.slots">Slots
|
|
Virtuales</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</dd>
|
|
<dt>
|
|
<span class="chapter">
|
|
<a href="#security">9. Seguridad</a>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#sec_cmd_line">Ordenes desde línea de
|
|
Comandos</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#sec_card_access">Acceso a la card</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#sec_p15_init">Protegiendo tarjetas con
|
|
la utilidad pkcs15-init</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#sec_files">Protección de los ficheros
|
|
de configuración, profiles, y caché</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#sec_root">Acceso como administrador
|
|
(root)</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</dd>
|
|
<dt>
|
|
<span class="chapter">
|
|
<a href="#opensc.todo">10. Tareas pendientes de
|
|
desarrollo</a>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.todo.general">General</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.todo.windows">Windows</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</dd>
|
|
<dt>
|
|
<span class="chapter">
|
|
<a href="#opensc.help">11. Resolución de
|
|
problemas</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="chapter">
|
|
<a href="#opensc.links">12. Recursos y enlaces</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="chapter">
|
|
<a href="#opensc.signer">13. Modulo de firmado</a>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.signer.install">Compilando e
|
|
instalando el Módulo signer</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</dd>
|
|
<dt>
|
|
<span class="chapter">
|
|
<a href="#opensc.docbook">14. Notas sobre DocBook</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</div>
|
|
<div class="chapter" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title">
|
|
<a id="opensc.intro"></a>Capítulo 1.
|
|
Introducción</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>libopensc es una biblioteca de acceso a dispositivos
|
|
tipo Tarjeta Inteligente (smart cards). 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</p>
|
|
</div>
|
|
<div class="chapter" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title">
|
|
<a id="opensc.authors"></a>Capítulo 2. Autores y
|
|
Colaboradores</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="toc">
|
|
<p>
|
|
<b>Tabla de contenidos</b>
|
|
</p>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.authors.thanks">
|
|
Agradecimientos</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</div>
|
|
<p>Se adjunta la lista de todos los autores y colaboradores
|
|
de OpenSC en orden alfabético</p>
|
|
<div class="itemizedlist">
|
|
<ul type="disc">
|
|
<li>Robert Bihlmeyer
|
|
<tt class="email"><
|
|
<a href="mailto:robbe@orcus.priv.at">
|
|
robbe@orcus.priv.at</a>></tt></li>
|
|
<li>Stef Hoeben
|
|
<tt class="email"><
|
|
<a href="mailto:Hoeben.S@Zetes.com">
|
|
Hoeben.S@Zetes.com</a>></tt></li>
|
|
<li>Andreas Jellinghaus
|
|
<tt class="email"><
|
|
<a href="mailto:aj@dungeon.inka.de">
|
|
aj@dungeon.inka.de</a>></tt></li>
|
|
<li>Olaf Kirch
|
|
<tt class="email"><
|
|
<a href="mailto:okir@suse.de">
|
|
okir@suse.de</a>></tt></li>
|
|
<li>Nils Larsch
|
|
<tt class="email"><
|
|
<a href="mailto:larsch@trustcenter.de">
|
|
larsch@trustcenter.de</a>></tt></li>
|
|
<li>Juan Antonio Martinez
|
|
<tt class="email"><
|
|
<a href="mailto:jonsito@teleline.es">
|
|
jonsito@teleline.es</a>></tt></li>
|
|
<li>Ville Skyttä</li>
|
|
<li>Kevin Stefanik
|
|
<tt class="email"><
|
|
<a href="mailto:kstef@mtppi.org">
|
|
kstef@mtppi.org</a>></tt></li>
|
|
<li>Antti Tapaninen
|
|
<tt class="email"><
|
|
<a href="mailto:aet@cc.hut.fi">
|
|
aet@cc.hut.fi</a>></tt></li>
|
|
<li>Timo Teräs
|
|
<tt class="email"><
|
|
<a href="mailto:timo.teras@iki.fi">
|
|
timo.teras@iki.fi</a>></tt></li>
|
|
<li>Juha Yrjölä
|
|
<tt class="email"><
|
|
<a href="mailto:juha.yrjola@iki.fi">
|
|
juha.yrjola@iki.fi</a>></tt></li>
|
|
<li>Jörn Zukowski
|
|
<tt class="email"><
|
|
<a href="mailto:zukowski@trustcenter.de">
|
|
zukowski@trustcenter.de</a>></tt></li>
|
|
</ul>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.authors.thanks">
|
|
</a>Agradecimientos</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>Las siguientes personas an aportado ideas, apoyo y/o
|
|
información para el desarrollo de OpenSC</p>
|
|
<div class="itemizedlist">
|
|
<ul type="disc">
|
|
<li>Antti Partanen
|
|
<tt class="email"><
|
|
<a href="mailto:antti.partanen@vrk.intermin.fi">
|
|
antti.partanen@vrk.intermin.fi</a>></tt></li>
|
|
<li>David Corcoran
|
|
<tt class="email"><
|
|
<a href="mailto:corcoran@linuxnet.com">
|
|
corcoran@linuxnet.com</a>></tt></li>
|
|
</ul>
|
|
</div>
|
|
<p>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:</p>
|
|
<div class="itemizedlist">
|
|
<ul type="disc">
|
|
<li>Matthias Brüstle</li>
|
|
<li>Markus Friedl</li>
|
|
<li>Geoff Thrope
|
|
<tt class="email"><
|
|
<a href="mailto:geoff@geoffthorpe.net">
|
|
geoff@geoffthorpe.net</a>></tt></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="chapter" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title">
|
|
<a id="opensc.license"></a>Capítulo 3. Licencia.
|
|
Copyright</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<table border="0" bgcolor="#E0E0E0">
|
|
<tr>
|
|
<td>
|
|
<pre class="screen">
|
|
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
|
|
</pre>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="chapter" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title">
|
|
<a id="opensc.overview"></a>Capítulo 4.
|
|
Introducción</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="toc">
|
|
<p>
|
|
<b>Tabla de contenidos</b>
|
|
</p>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.overview.layers">Estructura de
|
|
OpenSC</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.overview.readers">El módulo
|
|
lector</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</div>
|
|
<p>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</p>
|
|
<p>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</p>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.overview.layers"></a>Estructura de
|
|
OpenSC</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>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)</p>
|
|
<p>Para ello, libopensc está estructurado en diversas
|
|
capas, a su vez implementadas mediante uno o más drivers.
|
|
Estas capas son:</p>
|
|
<div class="variablelist">
|
|
<dl>
|
|
<dt>
|
|
<span class="term">Lector</span>
|
|
</dt>
|
|
<dd>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</dd>
|
|
<dt>
|
|
<span class="term">Tarjetas</span>
|
|
</dt>
|
|
<dd>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)</dd>
|
|
<dt>
|
|
<span class="term">pkcs15init</span>
|
|
</dt>
|
|
<dd>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</dd>
|
|
<dt>
|
|
<span class="term">La infraestructura PKCS
|
|
#15</span>
|
|
</dt>
|
|
<dd>
|
|
<p>
|
|
<a href="http://www.rsasecurity.com/rsalabs/pkcs/pkcs-15/"
|
|
target="_top">PKCS #15</a>Es 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</p>
|
|
<p>De hecho es posible elaborar una infraestructura
|
|
nueva para implementar compatibilidad con sistemas
|
|
que no cumplan dicho estandard</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.overview.readers"></a>El módulo
|
|
lector</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>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</p>
|
|
<p>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:
|
|
<a href="http://www.pcscworkgroup.com/" target="_top">
|
|
http://www.pcscworkgroup.com/</a>.</p>
|
|
<p>PC/SC Lite es la implementación del estandard PCSC
|
|
para sistemas Linux, Unix, Windows y MacOS X, realizada
|
|
por David Corcoran
|
|
<tt class="email"><
|
|
<a href="mailto:corcoran@linuxnet.com">
|
|
corcoran@linuxnet.com</a>></tt>. 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 smart cards en Entornos Linux ( M.U.S.C.L.E
|
|
)
|
|
<a href="http://www.linuxnet.com/" target="_top">
|
|
http://www.linuxnet.com/</a>.</p>
|
|
<p>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</p>
|
|
<table border="0" bgcolor="#E0E0E0">
|
|
<tr>
|
|
<td>
|
|
<pre class="screen">
|
|
$ cd opensc-<version>
|
|
$ ./configure --with-pcsclite=/path/to/pcsclite
|
|
|
|
</pre>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p></p>
|
|
<p>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</p>
|
|
<p>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
|
|
<a href="http://www.opensc.org/" target="_top">
|
|
http://www.opensc.org/</a>. Para dudas y consultas acudan
|
|
a la lista de correo
|
|
<tt class="email"><
|
|
<a href="mailto:opensc-devel@opensc.org">
|
|
opensc-devel@opensc.org</a>></tt></p>
|
|
<p>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:
|
|
<a href="http://www.opensc.org/files/doc/openct.html"
|
|
target="_top">
|
|
http://www.opensc.org/files/doc/openct.html</a>. Una vez
|
|
instalado OpenCT, recompile OpenSC indicando la ubicación
|
|
de las bibliotecas OpenCT</p>
|
|
<table border="0" bgcolor="#E0E0E0">
|
|
<tr>
|
|
<td>
|
|
<pre class="screen">
|
|
$ cd opensc-<version>
|
|
$ ./configure --with-openct=/path/to/openct
|
|
|
|
</pre>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p></p>
|
|
<p>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.</p>
|
|
<p>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</p>
|
|
<p>El soporte CT-API en OpenSC no necesita párametros
|
|
especiales a la hora de recompilar. Léase el fichero de
|
|
configuración
|
|
<tt class="filename">opensc.conf</tt>para saber como
|
|
configurar el driver CT-API bajo OpenSC</p>
|
|
</div>
|
|
</div>
|
|
<div class="chapter" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title">
|
|
<a id="opensc.install"></a>Capítulo 5. Compilación e
|
|
Instalación de libopensc</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="toc">
|
|
<p>
|
|
<b>Tabla de contenidos</b>
|
|
</p>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.install.linux">Linux</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.install.windows">Windows</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.install.windowsopenssl">Windows
|
|
con soporte OpenSSL</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.install.linux"></a>Linux</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>Lea el fichero
|
|
<tt class="filename">INSTALL</tt>para 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</p>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.install.windows"></a>Windows</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>Ejecute "nmake -f makefile.mak" en el directorio
|
|
opensc para compilar</p>
|
|
<p>Además de nmake, deberá tener perl y flex instalados
|
|
para poder realizar la compilación</p>
|
|
<p>El fichero Makefile.mak no incorpora mecanismos para
|
|
"make install", por lo que deberá realizar la instalación
|
|
de manera manual</p>
|
|
<div class="procedure">
|
|
<ol type="1">
|
|
<li>Copiar opensc.conf al directorio Windows (
|
|
generalmente C:\WINDOWS o C:\WINNT). Esta operación
|
|
es opcional</li>
|
|
<li>Copiar opensc.dll y opensc-pkcs11.dll a una
|
|
ubicación dentro del path</li>
|
|
<li>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</li>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.install.windowsopenssl"></a>Windows
|
|
con soporte OpenSSL</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>Esta opción añade funcionalidad extra (por ejemplo
|
|
PKCS#11 hash y mecanismos de firmas pkcs#11
|
|
adicionales</p>
|
|
<div class="procedure">
|
|
<ol type="1">
|
|
<li>Descargar y compilar los fuentes de OpenSSL de:
|
|
<a href="http://www.openssl.org/source/"
|
|
target="_top">http://www.openssl.org/source/</a></li>
|
|
<li>Añadir el directorio \inc32 al include_path, y el
|
|
\out32dll al library_path y exec_path
|
|
<table border="0" bgcolor="#E0E0E0">
|
|
<tr>
|
|
<td>
|
|
<pre class="screen">
|
|
set include=%include%;.....\inc32
|
|
set lib=%lib%;.....\out32dll
|
|
set path=%path%;....\out32dll
|
|
|
|
</pre>
|
|
</td>
|
|
</tr>
|
|
</table></li>
|
|
<li>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)</li>
|
|
<li>En el fichero src\libopensc\Makefile.mak, añadir
|
|
"libeay32.dll" y "gdi32.dll" a la línea marcada como
|
|
"link" (enlace)</li>
|
|
<li>Realizar la misma inclusión en el fichero
|
|
src\pkcs11\Makefile.mak en las entradas "link" de las
|
|
secciones "TARGET" y "TARGET3"</li>
|
|
<li>En el fichero win32\Make.rules.mak, añadir
|
|
/DHAVE_OPENSSL a la línea "COPTS"</li>
|
|
</ol>
|
|
</div>
|
|
<p>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</p>
|
|
</div>
|
|
</div>
|
|
<div class="chapter" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title">
|
|
<a id="opensc.status"></a>Capítulo 6. Estado del
|
|
desarrollo</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="toc">
|
|
<p>
|
|
<b>Tabla de contenidos</b>
|
|
</p>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.status.cards">Tarjetas</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.status.windows">Windows</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.status.pkcs11">Módulo PKCS #11 en
|
|
Netscape y Mozilla</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.status.cards"></a>Tarjetas</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="variablelist">
|
|
<dl>
|
|
<dt>
|
|
<span class="term">CryptoFlex</span>
|
|
</dt>
|
|
<dd>
|
|
<p>Soporta firma/desencriptación e
|
|
inicialización</p>
|
|
</dd>
|
|
<dt>
|
|
<span class="term">Gemplus PK 4K, 8K, 16K</span>
|
|
</dt>
|
|
<dd>
|
|
<p>Soporta firma/desencriptación e
|
|
inicialización</p>
|
|
<p>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</p>
|
|
</dd>
|
|
<dt>
|
|
<span class="term">Aladdin eToken PRO</span>
|
|
</dt>
|
|
<dd>
|
|
<p>Soporta firma/desencriptación e
|
|
inicialización</p>
|
|
<p>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"</p>
|
|
</dd>
|
|
<dt>
|
|
<span class="term">Eutron CryptoIdendity
|
|
IT-SEC</span>
|
|
</dt>
|
|
<dd>
|
|
<p>Soporta firma/desencriptación e
|
|
inicialización</p>
|
|
<p>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"</p>
|
|
</dd>
|
|
<dt>
|
|
<span class="term">Micardo</span>
|
|
</dt>
|
|
<dd>
|
|
<p>Soportada ( TODO: incluir detalles )</p>
|
|
</dd>
|
|
<dt>
|
|
<span class="term">Miocos</span>
|
|
</dt>
|
|
<dd>
|
|
<p>Soportada ( TODO: incluir detalles )</p>
|
|
</dd>
|
|
<dt>
|
|
<span class="term">Setcos</span>
|
|
</dt>
|
|
<dd>
|
|
<p>Soportada ( TODO: incluir detalles )</p>
|
|
</dd>
|
|
<dt>
|
|
<span class="term">Tcos</span>
|
|
</dt>
|
|
<dd>
|
|
<p>Soportada ( TODO: incluir detalles )</p>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.status.windows"></a>Windows</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>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</p>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.status.pkcs11"></a>Módulo PKCS #11 en
|
|
Netscape y Mozilla</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>Netscape parece mostrar más información acerca de sus
|
|
módulos de seguridad que Mozilla. No obstante el soporte
|
|
no ha sido testeado</p>
|
|
<p>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</p>
|
|
<p>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</p>
|
|
<p>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</p>
|
|
</div>
|
|
</div>
|
|
<div class="chapter" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title">
|
|
<a id="opensc.using"></a>Capítulo 7. Uso de
|
|
OpenSC</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="toc">
|
|
<p>
|
|
<b>Tabla de contenidos</b>
|
|
</p>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.using.netscape">OpenSC y
|
|
Netscape</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.using.mozilla">OpenSC y
|
|
Mozilla</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.using.openssl">OpenSC y
|
|
OpenSSL</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.using.openssh">OpenSC y
|
|
OpenSSH</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.using.pam">Pluggable
|
|
Authentication Module</a>
|
|
</span>
|
|
</dt>
|
|
<dd>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.using.pam.eid">eid based
|
|
authentication</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.using.pam.ldap">Autenticación
|
|
basada en LDAP</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</dd>
|
|
</dl>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.using.netscape"></a>OpenSC y
|
|
Netscape</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="procedure">
|
|
<ol type="1">
|
|
<li>Seleccionar: Communicator -> Tools ->
|
|
Security Info</li>
|
|
<li>Seleccionar: Cryptographic Modules</li>
|
|
<li>Pulsar: Add</li>
|
|
<li>Indicar nombre del módulo: "OpenSC PKCS #11
|
|
Module" Indicar ubicación del fichero:
|
|
/path/to/opensc/lib/pkcs11/opensc-pkcs11.so</li>
|
|
</ol>
|
|
</div>
|
|
<p>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"</p>
|
|
<p>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</p>
|
|
<p>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)</p>
|
|
<p>FIXME: Especificar versión de Netscape a la que se
|
|
aplican estas instrucciones</p>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.using.mozilla"></a>OpenSC y
|
|
Mozilla</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="procedure">
|
|
<ol type="1">
|
|
<li>Asegurese que el Personal Security Manager (PSM)
|
|
está instalado (paquete mozilla-psm)</li>
|
|
<li>Seleccionar menú: Edit -> Preferences</li>
|
|
<li>Seleccionar Categoría: Privacy & Security
|
|
-> Certificates</li>
|
|
<li>Pulsar en: "Manage Security Devices"</li>
|
|
<li>Seleccionar: Load</li>
|
|
<li>Indicar nombre del módulo: "OpenSC PKCS #11
|
|
Module" y ubicación del fichero:
|
|
/path/to/opensc/lib/pkcs11/opensc-pkcs11.so</li>
|
|
</ol>
|
|
</div>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.using.openssl"></a>OpenSC y
|
|
OpenSSL</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>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</p>
|
|
<p>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</p>
|
|
<p>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
|
|
<span>
|
|
<b class="command">openssl</b>
|
|
</span>:</p>
|
|
<p>Ejemplo de cómo cargar el "engine" OpenSC</p>
|
|
<table border="0" bgcolor="#E0E0E0">
|
|
<tr>
|
|
<td>
|
|
<pre class="screen">
|
|
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>
|
|
|
|
</pre>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p></p>
|
|
<p>Un comando OpenSSL típico puede ser la recuperación de
|
|
un certificado:
|
|
<tt class="prompt">req -engine opensc -new -key
|
|
<i class="replaceable">
|
|
<tt>key</tt>
|
|
</i>-keyform engine -out req.pem -text</tt>. Consulte la
|
|
documentación de OpenSSL para detalles adicionales</p>
|
|
<p>-
|
|
<i class="replaceable">
|
|
<tt>key</tt>
|
|
</i>Especifica el identificador de una clave en
|
|
Hexadecimal. - por ejemplo "45" corresponde al la clave
|
|
con ID="0x45"</p>
|
|
<p>OpenSC incluye dos "engines" para OpenSSL:
|
|
<tt class="filename">engine_opensc.so</tt>y
|
|
<tt class="filename">engine_pkcs11.so</tt>.</p>
|
|
<p>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</p>
|
|
<p>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</p>
|
|
<p>Para cargar dicho "engine", ejecutar el comando:</p>
|
|
<table border="0" bgcolor="#E0E0E0">
|
|
<tr>
|
|
<td>
|
|
<pre class="screen">
|
|
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>
|
|
|
|
</pre>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p>Y luego proceda normalmente</p>
|
|
<p>Un comando típico OpenSSL puede ser la recuperación de
|
|
un certificado:
|
|
<tt class="prompt">req -engine pkcs11 -new -key
|
|
<i class="replaceable">
|
|
<tt>key</tt>
|
|
</i>-keyform engine -out req.pem -text</tt>. Consulte la
|
|
documentación de OpenSSL para más detalles</p>
|
|
<p>
|
|
<i class="replaceable">
|
|
<tt>key</tt>
|
|
</i>tiene el formato
|
|
[slot_<slotNr>][-][id_<keyID>], donde</p>
|
|
<div class="itemizedlist">
|
|
<ul type="disc">
|
|
<li>El parámetro (opcional) slotNr indica el slot
|
|
PKCS#11 a usar (empezando por cero, que es el valor
|
|
por defecto</li>
|
|
<li>keyID es el identificador de clave en notación
|
|
hexadecimal</li>
|
|
</ul>
|
|
</div>
|
|
<p>Ejemplos:</p>
|
|
<div class="itemizedlist">
|
|
<ul type="disc">
|
|
<li>id_45 => clave privada con ID = 0x45 en el
|
|
primer slot disponible</li>
|
|
<li>slot_2-id_46 => clave privada con ID = 0x46 en
|
|
el tercer slot</li>
|
|
</ul>
|
|
</div>
|
|
<p></p>
|
|
<p>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"</p>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.using.openssh"></a>OpenSC y
|
|
OpenSSH</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>La versión 3.6.1p2 de OpenSSH necesita un parche para
|
|
compilar con soporte OpenSC. Encontrará dicho parche en
|
|
el directorio src/openssh</p>
|
|
<p>Para compilar OpenSSH, ejecute el comando "configure"
|
|
de la siguiente manera:
|
|
<tt class="prompt">./configure
|
|
--with-opensc=/path/to/opensc</tt></p>
|
|
<p>Necesitará tener certificados en su tarjeta: un par de
|
|
claves no es suficiente. Descargue el certificado en
|
|
formato OpenSSH con el comando:
|
|
<tt class="prompt">ssh-keygen -D
|
|
<i class="replaceable">
|
|
<tt>reader</tt>
|
|
</i>[
|
|
<span class="optional">:
|
|
<i class="replaceable">
|
|
<tt>certificate ID</tt>
|
|
</i></span>] >
|
|
<i class="replaceable">
|
|
<tt>file</tt>
|
|
</i></tt></p>
|
|
<p>Reemplace
|
|
<i class="replaceable">
|
|
<tt>reader</tt>
|
|
</i>con el número del lector que desea ( por defecto 0).
|
|
El comando
|
|
<tt class="prompt">opensc-tool -l</tt>le proporcionará la
|
|
lista de lectores disponibles. Añada el identificador del
|
|
certificado en caso necesario ( por defecto ID=45 ). El
|
|
comando
|
|
<tt class="prompt">pkcs11-tool -O</tt>le indica la lista
|
|
de certificados y sus identificadores</p>
|
|
<p>Una vez realizada la extracción del certificado,
|
|
copielo al servidor e incluyalo en el fichero
|
|
<tt class="filename">~/.ssh/authorized_keys</tt>tal y
|
|
como se hace habitualmente</p>
|
|
<p>Para usar una tarjeta con OpenSSH, ejecute:
|
|
<tt class="prompt">ssh -I
|
|
<i class="replaceable">
|
|
<tt>reader</tt>
|
|
</i>[
|
|
<span class="optional">:
|
|
<i class="replaceable">
|
|
<tt>certificate ID</tt>
|
|
</i></span>]</tt></p>
|
|
<p>Del mismo modo se puede usar la utilidad ssh-agent con
|
|
OpenSC. para ello use el comando:
|
|
<tt class="prompt">ssh-add -s
|
|
<i class="replaceable">
|
|
<tt>reader</tt>
|
|
</i></tt></p>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.using.pam"></a>Pluggable
|
|
Authentication Module</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>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"</p>
|
|
<p>pam_opensc identifica las siguientes opciones:</p>
|
|
<div class="variablelist">
|
|
<dl>
|
|
<dt>
|
|
<span class="term">debug</span>
|
|
</dt>
|
|
<dd>registra información para depuración</dd>
|
|
<dt>
|
|
<span class="term">audit</span>
|
|
</dt>
|
|
<dd>registra información sobre trazas</dd>
|
|
<dt>
|
|
<span class="term">use_first_pass</span>
|
|
</dt>
|
|
<dd>No solicita contraseñas al usuario, sino que
|
|
utiliza los elementos definidos en la configuración
|
|
de los módulos PAM</dd>
|
|
<dt>
|
|
<span class="term">try_first_pass</span>
|
|
</dt>
|
|
<dd>No solicita contraseña, a menos que la opción
|
|
PAM_(OLD)AUTHOK esté especificada</dd>
|
|
<dt>
|
|
<span class="term">use_authtok</span>
|
|
</dt>
|
|
<dd>Exige la opción PAM_AUTHOK, fallando en caso
|
|
contrario</dd>
|
|
<dt>
|
|
<span class="term">set_pass</span>
|
|
</dt>
|
|
<dd>Ajusta las opciones PAM_ con las contraseñas
|
|
usadas en éste módulo</dd>
|
|
<dt>
|
|
<span class="term">nodelay</span>
|
|
</dt>
|
|
<dd>Elimina el retardo de un segundo en caso de
|
|
autenticación fallida</dd>
|
|
<dt>
|
|
<span class="term">auth_method=X</span>
|
|
</dt>
|
|
<dd>Selecciona entre pkcs15-ldap o pkcs15-eid (opción
|
|
por defecto) como modo de funcionamiento del
|
|
módulo</dd>
|
|
</dl>
|
|
</div>
|
|
<p></p>
|
|
<p>Opciones Genéricas:</p>
|
|
<div class="variablelist">
|
|
<dl>
|
|
<dt>
|
|
<span class="term">-h</span>
|
|
</dt>
|
|
<dd>muestra ayuda</dd>
|
|
<dt>
|
|
<span class="term">-r reader</span>
|
|
</dt>
|
|
<dd>Nombre del lector (FIXME: not number?)</dd>
|
|
</dl>
|
|
</div>
|
|
<p></p>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h3 class="title">
|
|
<a id="opensc.using.pam.eid"></a>eid based
|
|
authentication</h3>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>Este es el método de autentificación por defecto:
|
|
Cree un directorio
|
|
<tt class="filename">.eid</tt>en su directorio raíz y
|
|
copie su certificado (en formato PEM) en el fichero
|
|
<tt class="filename">
|
|
.eid/authorized_certificates</tt>.</p>
|
|
<p>Nota:
|
|
<tt class="prompt">pkcs15-tool -c</tt>le mostrará los
|
|
certificados y sus identificadores. El comando
|
|
<tt class="prompt">pkcs15-tool -r ID -o
|
|
~/.eid/authorized_certificates</tt>le permitirá
|
|
recuperar y guardar el certificado en el fichero
|
|
deseado</p>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h3 class="title">
|
|
<a id="opensc.using.pam.ldap"></a>Autenticación
|
|
basada en LDAP</h3>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>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:</p>
|
|
<div class="variablelist">
|
|
<dl>
|
|
<dt>
|
|
<span class="term">-L ldap.conf</span>
|
|
</dt>
|
|
<dd>especifica el fichero de configuración a
|
|
usar</dd>
|
|
<dt>
|
|
<span class="term">-A entry</span>
|
|
</dt>
|
|
<dd>Añadir nueva entrada</dd>
|
|
<dt>
|
|
<span class="term">-E entry</span>
|
|
</dt>
|
|
<dd>Activar entrada actual</dd>
|
|
<dt>
|
|
<span class="term">-H hostname</span>
|
|
</dt>
|
|
<dd>Nombre del servidor LDAP</dd>
|
|
<dt>
|
|
<span class="term">-P port</span>
|
|
</dt>
|
|
<dd>Puerto en el que el servidor está
|
|
escuchando</dd>
|
|
<dt>
|
|
<span class="term">-S scope</span>
|
|
</dt>
|
|
<dd>Ambito (scope) del servidor</dd>
|
|
<dt>
|
|
<span class="term">-b binddn</span>
|
|
</dt>
|
|
<dd>binddn de la conexión</dd>
|
|
<dt>
|
|
<span class="term">-p passwd</span>
|
|
</dt>
|
|
<dd>contraseña del binding LDAP</dd>
|
|
<dt>
|
|
<span class="term">-B base</span>
|
|
</dt>
|
|
<dd>base del binding LDAP</dd>
|
|
<dt>
|
|
<span class="term">-a attributes</span>
|
|
</dt>
|
|
<dd>Atributos a recuperar</dd>
|
|
<dt>
|
|
<span class="term">-f filter</span>
|
|
</dt>
|
|
<dd>filtro de búsqueda</dd>
|
|
</dl>
|
|
</div>
|
|
<p>FIXME: incluir un ejemplo de estructura de datos
|
|
LDAP: fichero de configuración, etc</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="chapter" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title">
|
|
<a id="opensc.pkcs11"></a>Capítulo 8. The OpenSC PKCS
|
|
#11 library</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="toc">
|
|
<p>
|
|
<b>Tabla de contenidos</b>
|
|
</p>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.pkcs11.whatis">Qué es PKCS #11</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.pkcs11.slots">Slots Virtuales</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.pkcs11.whatis"></a>Qué es PKCS
|
|
#11</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>
|
|
<a href="http://www.rsasecurity.com/rsalabs/pkcs/pkcs-11/"
|
|
target="_top">PKCS #11</a>es 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(), ...</p>
|
|
<p>Algo de terminología básica de PKCS #11</p>
|
|
<div class="itemizedlist">
|
|
<ul type="disc">
|
|
<li>Slot: ubicación en la que se puede insertar una
|
|
tarjeta inteligente. Normalmente se corresponde con
|
|
un lector de tarjetas ( ver "slots virtual" )</li>
|
|
<li>Token: elemento que se sitúa en un slot.
|
|
Habitualmente se refiere a una smart card (ver slots
|
|
virtual)</li>
|
|
<li>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
|
|
)</li>
|
|
<li>Sesión: antes de poder operar con un token, es
|
|
necesario abrir una sesión y asociarla con él</li>
|
|
<li>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</li>
|
|
</ul>
|
|
</div>
|
|
<p></p>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.pkcs11.slots"></a>Slots
|
|
Virtuales</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>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
|
|
<a href="http://www.rsasecurity.com/rsalabs/pkcs/pkcs-11/"
|
|
target="_top">estándard PKCS #11</a>. 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</p>
|
|
<p>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</p>
|
|
<p>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</p>
|
|
<p>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:</p>
|
|
<div class="itemizedlist">
|
|
<ul type="disc">
|
|
<li>token en slot 4: PIN 1, key 1, cert 1</li>
|
|
<li>token en slot 5: PIN 2, key 2, cert 2</li>
|
|
<li>token en slot 6: los 3 certificados raíz</li>
|
|
<li>token en slot 7: vacío</li>
|
|
</ul>
|
|
</div>
|
|
<p>Si se hubiera especificado "hide_empty_tokens=false",
|
|
el slot 7 no contendría ningún token</p>
|
|
<p>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 )</p>
|
|
<p>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</p>
|
|
</div>
|
|
</div>
|
|
<div class="chapter" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title">
|
|
<a id="security"></a>Capítulo 9. Seguridad</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="toc">
|
|
<p>
|
|
<b>Tabla de contenidos</b>
|
|
</p>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#sec_cmd_line">Ordenes desde línea de
|
|
Comandos</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#sec_card_access">Acceso a la card</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#sec_p15_init">Protegiendo tarjetas con la
|
|
utilidad pkcs15-init</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#sec_files">Protección de los ficheros de
|
|
configuración, profiles, y caché</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#sec_root">Acceso como administrador
|
|
(root)</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="sec_cmd_line"></a>Ordenes desde línea de
|
|
Comandos</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>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"</p>
|
|
<p>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"</p>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="sec_card_access"></a>Acceso a la card</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>Pueden aparecer otros problemas en entornos
|
|
multiusuario donde más de un usuario tenga acceso al
|
|
lector:</p>
|
|
<div class="itemizedlist">
|
|
<ul type="disc">
|
|
<li>Si el usuario deja la tarjeta insertada con la
|
|
sesion abierta, otro usuario podría modificar el pin,
|
|
bloquearlo, o incluso anular la tarjeta</li>
|
|
<li>Si la sesión realiza caché de PIN's o claves,
|
|
otro usuario podría usar nuestra tarjeta y suplantar
|
|
nuestra personalidad</li>
|
|
</ul>
|
|
</div>
|
|
<p></p>
|
|
<p>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</p>
|
|
<p>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</p>
|
|
<p>Las otras aplicaciones OpenSC no garantizan el acceso
|
|
exclusivo</p>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="sec_p15_init"></a>Protegiendo tarjetas con
|
|
la utilidad pkcs15-init</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>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</p>
|
|
<p>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</p>
|
|
<p>No obstante, con dicha clave, otro usuario podría
|
|
destruír el sistema de ficheros, borrando todo su
|
|
contenido</p>
|
|
<p>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</p>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="sec_files"></a>Protección de los ficheros de
|
|
configuración, profiles, y caché</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>Aunque por sí mismos, los ficheros opensc.conf y
|
|
xxx.profile no contienen información sensible, es muy
|
|
importante garantizar que no son modificados</p>
|
|
<p>Algunos ejemplos de lo que se puede hacer modificando
|
|
dichos ficheros:</p>
|
|
<div class="itemizedlist">
|
|
<ul type="disc">
|
|
<li>Ajustar el nivel de depuración a un nivel mayor o
|
|
igual a 6, con lo que la información sensible (PINs)
|
|
queda registrada</li>
|
|
<li>Cambiar los permisos de acceso del sistema de
|
|
ficheros, con lo que la tarjeta quedaría
|
|
"abierta"</li>
|
|
<li>Cambiar los certificados en el directorio
|
|
caché</li>
|
|
</ul>
|
|
</div>
|
|
<p></p>
|
|
<p>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</p>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="sec_root"></a>Acceso como administrador
|
|
(root)</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>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</p>
|
|
</div>
|
|
</div>
|
|
<div class="chapter" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title">
|
|
<a id="opensc.todo"></a>Capítulo 10. Tareas
|
|
pendientes de desarrollo</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="toc">
|
|
<p>
|
|
<b>Tabla de contenidos</b>
|
|
</p>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.todo.general">General</a>
|
|
</span>
|
|
</dt>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.todo.windows">Windows</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.todo.general"></a>General</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<table border="0" bgcolor="#E0E0E0">
|
|
<tr>
|
|
<td>
|
|
<pre class="screen">
|
|
|
|
* Generación de paquetes Debian
|
|
* Aplicaciones gráficas
|
|
* Soporte de tarjetas EMV, GSM y JavaCards ( algún voluntario? )
|
|
|
|
</pre>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<table border="0" bgcolor="#E0E0E0">
|
|
<tr>
|
|
<td>
|
|
<pre class="screen">
|
|
|
|
* 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
|
|
|
|
|
|
</pre>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.todo.windows"></a>Windows</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>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</p>
|
|
</div>
|
|
</div>
|
|
<div class="chapter" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title">
|
|
<a id="opensc.help"></a>Capítulo 11. Resolución de
|
|
problemas</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>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
|
|
<a href="http://www.opensc.org/" target="_top">sitio
|
|
Web</a>.</p>
|
|
<p>Se pueden seguir los siguientes procedimientos para
|
|
comprobar qué es lo que falla:</p>
|
|
<div class="itemizedlist">
|
|
<ul type="disc">
|
|
<li>Comprobar que se encuentra el lector
|
|
<tt class="prompt">opensc-tool -l</tt></li>
|
|
<li>Comprobar que se reconoce la tarjeta:
|
|
<tt class="prompt">opensc-tool -a</tt>debería mostrar
|
|
el ATR de ésta</li>
|
|
<li>Comprobar que la tarjeta soporta el estandard
|
|
pkcs15, obteniendo la lista de objetos almacenados:
|
|
<tt class="prompt">pkcs15-tool -C -c -k
|
|
--list-public-keys</tt></li>
|
|
</ul>
|
|
</div>
|
|
<p></p>
|
|
<p>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</p>
|
|
</div>
|
|
<div class="chapter" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title">
|
|
<a id="opensc.links"></a>Capítulo 12. Recursos y
|
|
enlaces</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>La página web del proyecto OpenSC
|
|
<a href="http://www.opensc.org/" target="_top">
|
|
http://www.opensc.org/</a></p>
|
|
<p>Información sobre los proyectos Assuan y Ägypten:
|
|
<a href="http://www.gnupg.org/aegypten/" target="_top">
|
|
http://www.gnupg.org/aegypten/</a></p>
|
|
</div>
|
|
<div class="chapter" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title">
|
|
<a id="opensc.signer"></a>Capítulo 13. Modulo de
|
|
firmado</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="toc">
|
|
<p>
|
|
<b>Tabla de contenidos</b>
|
|
</p>
|
|
<dl>
|
|
<dt>
|
|
<span class="section">
|
|
<a href="#opensc.signer.install">Compilando e
|
|
instalando el Módulo signer</a>
|
|
</span>
|
|
</dt>
|
|
</dl>
|
|
</div>
|
|
<p>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 )</p>
|
|
<div class="section" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title" style="clear: both">
|
|
<a id="opensc.signer.install"></a>Compilando e
|
|
instalando el Módulo signer</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>Especifique el directorio de instalación para el
|
|
módulo al ejecutar "configure":
|
|
<tt class="prompt">$ configure --with-plugin-dir=
|
|
<i class="replaceable">
|
|
<tt><directory></tt>
|
|
</i></tt></p>
|
|
<p>Directorios típicos son /usr/lib/mozilla/plugins y
|
|
/usr/lib/netscape/plugins.</p>
|
|
<p>Consulte el fichero INSTALL para instrucciones
|
|
adicionales</p>
|
|
<p>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</p>
|
|
</div>
|
|
</div>
|
|
<div class="chapter" lang="es">
|
|
<div class="titlepage">
|
|
<div>
|
|
<div>
|
|
<h2 class="title">
|
|
<a id="opensc.docbook"></a>Capítulo 14. Notas sobre
|
|
DocBook</h2>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<p>Este documento está realizado y mantenido con DocBook
|
|
XML. A continuación se indican algunos enlaces de
|
|
introducción</p>
|
|
<p>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</p>
|
|
<p>El enlace
|
|
<a href="http://docbook.sourceforge.net/" target="_top">
|
|
DocBook Open Repository project</a>en SourceForge, contiene
|
|
las hojas de estilo necesarias para convertir este
|
|
documentos a otros formatos</p>
|
|
<p>El libro
|
|
<a href="http://www.docbook.org/" target="_top">DocBook:
|
|
The Definitive Guide (O'Reilly Book)</a>ilustra DocBook, es
|
|
muy manejable, y puede ser utilizado como herramienta en
|
|
línea de manera gratuita</p>
|
|
<p>El libro
|
|
<a href="http://www.sagehill.net/docbookxsl/"
|
|
target="_top">DocBook XSL: The Complete Guide</a>Contiene
|
|
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</p>
|
|
<p>Este documento es demasiado engorroso. Si sabe HTML, por
|
|
favor ayúdenos a mejorarlo. Algunas partes deberían ser
|
|
ajustadas mediante hotas de estilo (
|
|
<a href="http://docbook.sourceforge.net/release/xsl/current/doc/html/"
|
|
target="_top">Reference for the HTML stylesheet
|
|
parameters</a>), pero la mayor parte puede ser hecha con
|
|
CSS. !Ayúdanos!</p>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|