source: libros/maquetacion/capitulo6/capitulo6.tex @ 91e4ba3

Last change on this file since 91e4ba3 was 91e4ba3, checked in by aaraujo <aaraujo@…>, 10 years ago

Agregado resumen de artículo capítulo 6 en español.

  • Property mode set to 100644
File size: 37.9 KB
Line 
1%\chapter{Firmas Electr\'onicas}
2\chapter{Propuesta de acoplamiento de la firma electr\'onica avanzada en procesos de negocio}
3
4
5\chapterauthors{Víctor Bravo y Antonio Araujo
6\chapteraffil{Fundación Centro Nacional de Desarrollo e Investigación en Tecnologías Libres}
7}
8\label{capitulo6}
9
10% Se crea un ambiente bibunit para el cual se creará la bibliografía
11\begin{bibunit}[unsrt]
12 
13
14
15
16%A continuación el contenido del artículo de componente de firmas electrónicas
17
18%\begin{abstract}
19%Automation is use the information technologies as a direct method for improvement. However, there %are elements such as handwritten signature that
20%have been taken of all the digital area, but which, when recurrent events in organizational %processes
21%stand as a critical factor in the flow of operations.
22%In response to this situation have developed numerous standards and technologies grouped by
23%Electronic Signature concepts and PKI, but that in turn have discovered new questions in this %field, among them,
24%those that have to do with the integration processes.
25%In this paper we propose a software component and a method for connecting
26%computer systems as essential technology using the Advanced Electronic Signature. In this sense
27%addresses the document formats, validation infrastructure,
28%and safety conditions that ensure legal support. The work has
29%center, the details and problems of integration, and that have been grouped under ``coupling %joint`` concept.
30%\end{abstract}
31%\begin{keywords} Advanced Electronic Signatures, Component, XAdES, PKI, workflow.
32%\end{keywords}
33
34
35La automatización es el uso de tecnologías de información como un
36mecanismo directo para el mejoramiento. Sin embargo, existen elementos
37como la firma autógrafa que ha sido tomada en el área digital, y que en
38eventos recurrentes de procesos organizacionales son considerados como
39factor crítico en el flujo de operaciones. Como respuesta a esta
40situación, se han desarrollado numerosos estándares y tecnologías
41agrupadas por los conceptos de firmas electrónicas y PKI que han
42generado nuevas preguntas en este campo, entre ellas aquellas que tienen
43que ver con los procesos de integración.
44
45En este artículo proponemos un componente de software y un método para
46conectar sistemas computacionales con la tecnología de firma electrónica
47avanzada. En este sentido se abordan formatos de documentos,
48infraestructura de validación y condiciones de seguridad que aseguran su
49soporte legal. El trabajo describe los problemas de integración bajo el
50concepto de acoplamiento.
51
52
53
54
55
56\section{Introducción}
57\label{sec:intro}
58La adopción de la tecnología de firma electrónica aún no está suficientemente extendida. Ésta
59se utiliza en distintas áreas y en muchas  instituciones o empresas alrededor del mundo pero no ha llegado a ser
60equivalente a la firma autógrafa en un sentido amplio. Vinculado a este hecho, surge la pregunta ¿Pueden converger
61estas dos tecnologías en un futuro próximo? Con la finalidad de responder esta interrogante,
62se puede decir que la firma electrónica  debe tener  por lo menos tres  características comunes
63a la autógrafa: identificar a la persona que la realiza; declarar la asunción u obligatoriedad de cumplimiento (contrato)
64del contenido de lo que se firma y por último, servir  como prueba de autenticidad o no repudio del firmante.
65El modelo de firma electrónica basado en una infraestructura de clave pública (PKI por sus siglas en inglés), ha sido jurídicamente aceptado en muchos países,
66lo que equivale a decir que en estos casos se cumple con las características antes mencionadas.
67
68
69La firma manuscrita se percibe como un elemento tecnológico desacoplado, esto es, no dependiente de otra tecnología o factor (solo
70se necesita papel y lápiz)  que
71puede usarse casi en cualquier lugar y con aceptación universal. En cambio la firma electrónica requiere de elementos de software
72(manejadores de dispositivos, clientes de firma, etc.) y hardware (lector de
73tarjetas, tarjeta inteligente, computador, tableta o móvil),
74adicionalmente  y por lo general se debe contar con una conexión a la Internet para la validación. Otra ventaja importante
75de la firma manuscrita es la permanencia de factores biométricos que son fundamentales en la realización
76de auditorías confiables. A pesar de todas  estas ventajas, en los últimos años ha crecido el uso de la firma electrónica,
77gobiernos nacionales y locales de España \cite{IEEEhowto:espana}, Alemania
78\cite{IEEEhowto:eID} y Estonia \cite{IEEEhowto:estonia} tienen disponibles
79plataformas para sus ciudadanos, y la popularización de la tarjeta
80inteligente (smartcard) como elemento de identificación personal ha apoyado este crecimiento.
81
82En este punto se plantean nuevos  problemas vinculados al hecho de introducir o  sustituir el elemento físico o autógrafo
83por el elemento electrónico,
84entre estos podemos señalar:  elección del formato
85o formatos de archivo de los documentos firmados; ubicuidad y ergonomía de la acción de firma; verificación de los documentos
86firmados; histórico o archivo de documentos firmados y finalmente la  integración de la firma con sistemas de base de datos relacionales, mapeos
87objetos-relacionales, servicios web, entre otros elementos utilizados en sistemas informáticos actuales.
88
89En este sentido, este trabajo  plantea un método para integrar un componente \cite{IEEEhowto:software}  de Firma Electrónica Avanzada   denominado
90ComponenteFEA a procesos de negocio, teniendo presente parámetros de seguridad, rapidez y auditabilidad.
91
92
93
94\section{El modelo actual de firma electrónica}
95\label{sec:modelo}
96
97Una de las acciones  para dar soporte jurídico a la firma electrónica y lograr su equivalencia con la firma manuscrita es
98fijar unas condiciones iniciales que garanticen integridad y auditabilidad de los documentos firmados, y que
99puedan ser validadados a través de un estándar. Bajo este enfoque, se ha creado el concepto de firma electrónica avanzada,
100que por definición debe contar con las siguientes propiedades:  a) estar
101vinculada al firmante de  manera única; b) permitir la identificación del
102firmante;
103c) haber sido creada
104utilizando medios que el firmante puede mantener bajo su exclusivo control y d) estar vinculada a los datos a que se refiere
105de modo que cualquier cambio ulterior de los mismos sea detectable.  La
106formalización de esta idea ha sido llevada a cabo principalmente
107por el Parlamento Europeo,
108y se describe en la directiva  1999/93/EC \cite{IEEEhowto:directiva}.
109
110Existen dos grandes dominios tecnológicos para el uso de la Firma Electrónica Avanzada:  uno es el que tiene que ver con los procesos de
111identificación, registro, emisión  y validación de certificados electrónicos. De este dominio se ocupan 
112las organizaciones que están bajo el esquema PKI, que funcionan como terceros de confianza. Cada certificado brinda identidad
113a una persona o empresa en la Internet, y se le otorga al ente bajo la aceptación de un contrato que especifica condiciones de uso. El certificado
114es un documento -un archivo-
115que autentifica la clave vinculada al ente. La clave secreta/privada se distribuye en una tarjeta inteligente
116o token criptográfico que funciona como un elemento de control de
117acceso de nivel 2. Los certificados electrónicos contienen información especificada  bajo el formato X.509 versión 3 \cite{IEEEhowto:x509}, el cual
118incluye campos como  fecha de expedición y vencimiento del certificado, Nombre único del propietario (conocido como Nombre Común),
119datos del Proveedor del certificado, datos criptográficos del certificado y datos del servidor de validación
120que utiliza el protocolo de estado de certificados en línea (OCSP por sus siglas en inglés).
121
122
123El segundo dominio corresponde a las  aplicaciones que usa el propietario del certificado para aplicar
124la firma electrónica, y que generan valor agregado. Las aplicaciones de este tipo más utilizadas  cuentan con
125una interfaz basada en bibliotecas dinámicas (.dll o .so) para este fin, así como también tienen un archivo de certificados
126de autoridades de certificación para validar la vigencia y correcta conformación del certificado del firmante. Esta interfaz
127es básica, solo permite generar un archivo de firma en formato PKCS\#7 \cite{IEEEhowto:pkcs7} separado del documento firmado, lo que conlleva
128a que las tareas de almacenamiento, validación y auditoría  deben ser provistas  adicionalmente a través de un programa
129o complemento de software. Las aplicaciones de este tipo más utilizadas son navegadores web y clientes de correo electrónico.
130
131Por otro lado, se han especificado diferentes formatos estándares de archivo con firma autocontenida. Por ejemplo el formato PDF
132dada sus características de solo lectura y visualización en pantalla como documento impreso es uno de los más utilizados
133para este fin. El estándar PADES \cite{IEEEhowto:pades} basado en PDF es un ejemplo de ello, también existe el formato PDF nativo, y que es
134verificable por los visores más populares como el de \textit{Adobe Reader}\copyright.
135
136También existen estándares para archivos con firma electrónica basados en XML. La ventaja de estos
137formatos es que pueden integrar  metadatos como la fecha y lugar de la(s) firma(s), y permiten
138incluir diferentes tipos de archivos  como fotos, videos, documentos de texto u ofimáticos. Entre los estándares XML más conocidos está el
139XMLDsig \cite{IEEEhowto:xmldsig}.
140Este estándar cuenta con diferentes implementaciones y extensiones, entre ellas el formato creado por las repúblicas bálticas
141llamado BDOC \cite{IEEEhowto:bdoc}, que sigue a su vez el popular estándar OpenDocument, utilizado por el paquete ofimático OpenOffice como formato
142principal para sus archivos.
143
144
145
146
147
148\section{Antecedentes}
149
150La inclusión de la firma electrónica en un proceso de negocio tiene varios aspectos asociados. Se
151pueden señalar como los más relevantes la ergonomía
152de la firma (facilidad de uso), los formatos y visualización de documentos, la integración con plataformas de software y la arquitectura de la solución.
153
154
155En relación con el tema de la ergonomía Xyzmo SIGNificant\footnote{Para ver información completa
156sobre Xyzmo Significant visitar la dirección web: http://www.xyzmo.com} es una novedosa propuesta. Xyzmo es una aplicación comercial
157de código fuente propietario, que introduce elementos innovadores en el área de ergonomía y adaptación al cambio:
158no obliga a aprender una nueva técnica de firma sino que ofrece a los usuarios
159de esta tecnología el uso de la firma
160manuscrita a través de una tableta electrónica o teléfono con interfaz multitoque (multitouch) bajo sistemas operativos
161Android\copyright \hspace{0.2cm}y iOS\copyright, esto sin desvincularse del esquema PKI. Este modelo proporciona al usuario la metáfora de
162la firma manuscrita mostrando el documento tal cual como si fuese impreso, habilitando la firma electrónica avanzada  a través del
163uso  de los  dedos o de un lápiz para pantalla táctiles. Para el proceso de validación se utilizan parámetros biométricos tales
164como ritmo, velocidad o características del trazo, y  también técnicas criptográficas estandarizas vinculadas
165al esquema PKI.
166
167Existen diferentes implementaciones  de software para las  gestión y visualización de los
168dos tipos de formatos  principales: PDF y XML. Para el caso del formato  PDF la visualización está automáticamente disponible ya que existen numerosos lectores
169para este tipo de archivo, por ejemplo, el Adobe Reader\copyright \hspace{0.2cm}
170que visualiza la firma electrónica o digital como un sello (imagen) dentro del
171documento,
172 y muestra también su contenido con características de  forma (encabezado, líneas, tablas, logos, etc.) que pueden ser parte o no del documento firmado,
173pero que en muchos casos son necesarias para la elaboración de documentos formales o legales.
174En el caso de los formatos XML la visualización no es automática, por lo tanto si se requiere visualizar
175el contenido con elementos de forma se debe disponer de un software visualizador que formatee el contenido. En \cite{IEEEhowto:neubauer} se muestra una propuesta
176para documentos XML que necesitan por disposiciones legales o formales de gobierno aplicar forma a documentos
177firmados electrónicamente.
178
179Una de las potencialidades de la firma electrónica es su integración con sistemas informáticos para la
180mejora de procesos mediante la eliminación de puntos lentos. Es por ello que los temas
181de integración y arquitectura juegan un papel preponderante. En esta tendencia se inscribe el proyecto \textit{@firma}:
182una solución desarrollada por el Ministerio de Hacienda y Administraciones Públicas de España,
183 que se plantea como una plataforma de firma electrónica orientada a brindar servicios de gobierno electrónico, y que está integrada
184con el sistema de identificación Español. Cuenta con
185una aplicación de escritorio que puede usarse en diversos sistemas operativos, y un \textit{applet} \cite{IEEEhowto:java}  para usar la firma
186a través de la web. Estas características habilitan a \textit{@firma} para el desarrollo de aplicaciones de gobierno
187electrónico, así como también para la integración con sistemas empresariales.
188
189
190
191\section{Acoplamiento de la firma electrónica avanzada}
192
193
194
195La conexión entre un  componente (software) y el sistema informático se denomina acoplamiento. Este procedimiento debe cumplir con un
196conjunto de requisitos que tienen que ver con  características
197tales como reutilización, cohesión y la exportación de una interfaz definida.
198A continuación se describen los elementos desarrollados en este trabajo.
199
200
201\subsection{Componente de firma electrónica avanzada}
202
203Se desarrolló un componente que permite realizar diferentes operaciones
204asociadas con la firma electrónica: subir un documento desde el computador cliente;
205realizar la firma utilizando una tarjeta inteligente con PIN (contraseña) desde el computador cliente y
206entregar un archivo firmado en formato XAdES\cite{IEEEhowto:xades}  al programa servidor. El componente se ha denominado
207de firma electrónica avanzada (ComponenteFEA), ya que cumple con las condiciones citadas  en la sección \ref{sec:modelo}  sobre este tipo
208de firma.
209
210
211Las funcionalidades que implementa el ComponenteFEA son las siguientes:
212\begin{enumerate}
213 \item Firmar electrónicamente (para este caso se asume que lo electrónico está
214asociado a un dispositivo en hardware como una tarjeta inteligente, y
215 en relación a ello debe connotar vinculación jurídica, lo digital sólo a una clave en software) un documento de tipo de archivo definido por especificación MIME \cite{IEEEhowto:mime}.
216\item Firmar digitalmente 
217(usando un archivo PKCS\#12 \cite{IEEEhowto:pkcs12}) un documento de tipo de
218archivo definido por especificación MIME .
219\item Verificar un archivo firmado electrónicamente  usando o no validación OCSP.
220\item  Verificar un archivo firmado digitalmente  usando o no validación OCSP.
221\item Mostrar propiedades como algoritmos utilizados, fecha y lugar de la firma de un archivo firmado
222 \item Firmar electrónicamente utilizando un componente para el navegador  un documento de tipo de archivo definido por
223especificación MIME.
224\end{enumerate}
225 
226
227\begin{verbatim}
228
229class BDocDocument : QObject {
230// *** Métodos para firma electrónica
231    BDocDocument();
232    void init();
233    void create( const QString file );
234    bool openBDocContainer(const QString path);
235    void saveBDocContainer(const QString path);     
236    bool signWithP12(const QString  profile,...);
237    void addDocument(const QString path);
238
239// ** Mètodos de firma por navegador web
240    bool presignWeb(const QString  profile, ...);
241    bool postsignWeb(const QString  profile, ...);
242
243
244// ** Métodos para validación
245    QString signatureAlgorithm(int index );
246    bool validateOffline() const ;
247
248// ** Métodos para Gestión de archivos
249    QString signatureFormat(int index );
250    QString signatureDateTime(int index );
251    QStringList signatureLocation(int index );
252    QString signatureRol(int index );
253    QString signatureDigestMethod(index )
254    QString subjectCertificateCommonName(int i);
255    QString documentName(int docId);
256    int documentCount();
257    int signatureCount();
258    void saveDocument(int docId...);
259
260
261}
262\end{verbatim}
263\begin{center} \textbf{Listado 1.} API del ComponenteFEA en C++ accesible desde \textit{Python}
264\end{center}
265
266Bajo esta perspectiva  se propone tratar las funcionalidades
267asociadas a la firma electrónica avanzada, es decir, empaquetar las funcionalidades exportando una interfaz de programación de aplicaciones (API por su siglas en inglés)
268que puede ser utilizada de forma  encapsulada y separada por una aplicación anfitrión,
269escrita teóricamente en cualquier lenguaje de programación.
270Una de las aplicaciones que trabaja bajo este esquema de complementos o
271componentes es el navegador web, este  diseño ha permitido
272contar con grandes repositorios que extienden las funcionalidades del navegador casi para cualquier uso.
273
274\begin{figure}[htb]
275\centering
276%\includegraphics[width=8cm]{imagenes/uml.png}
277\includegraphics[scale=1]{imagenes/uml.jpeg}
278\caption{Diagrama UML de acoplamiento}
279\label{fig:uml}
280\end{figure}
281
282La figura \ref{fig:uml} muestra un diagrama en lenguaje UML del componente y su conexión con un sistema
283informático. Existen tres tipos de funcionalidades que exporta el ComponenteFEA:
284``Firmar'', interfaces para firma electrónica y digital;
285``Validar'', interfaces para validación fuera de línea y en línea de
286certificados electrónicos; y ``Gestionar'', interfaces para el almacenamiento
287y búsqueda de archivos firmados.
288
289
290A nivel de lenguaje de programación se provee un paquete o \textit{package} para \textit{Python} que está construido envolviendo
291 una librería de firma electrónica avanzada escrita en lenguaje \textit{C/C++}.
292El listado \textbf{1}  muestra los métodos que son accesibles desde \textit{Python}.
293
294
295
296\subsection{Método de conexíón}
297
298
299El diagrama de flujo de la figura \ref{fig:acoplamiento} muestra los pasos a seguir para incorporar el ComponenteFEA
300 dentro de un proceso de una organización.  Los primeros dos pasos de este diagrama  corresponden a la 
301identificación de  los puntos de firma y validación dentro del proceso de negocio,
302para luego conectar los métodos (mensajes)  correspondientes del ComponenteFEA  en dichos puntos.
303
304
305
306\begin{figure}[htb]
307\centering
308%\includegraphics[width=8cm]{imagenes/flujoComponenteFE.jpg}
309\includegraphics[scale=1]{imagenes/flujoComponente.jpeg}
310\caption{Diagrama de flujo para el acoplamiento del ComponenteFEA}
311\label{fig:acoplamiento}
312\end{figure}
313
314
315En un siguiente paso y dependiendo del tipo de proceso a automatizar se adoptará un esquema de conexión para el
316servidor.  En esta fase se establecen algunos aspectos importantes relativos al sistema
317informático a colocar en funcionamiento, entre estos están la existencia de un sistema automatizado,
318el tipo de lenguaje de programación y sistemas operativos a utilizar, el soporte de la PKI, la asignación de las tarjetas inteligentes, entre otros.
319
320
321En este punto el desarrollador tiene la libertad
322de utilizar el componente de firma
323según su criterio, sin embargo, puede seguir algunas pautas  relacionadas con el  proceso a automatizar.  Si el proceso no se encuentra automatizado se recomienda
324seleccionar para el desarrollo de software el lenguaje
325\textit{Python}.  Para el caso anterior o si el sistema se implementó utilizando
326este lenguaje se sigue el paso 7.1 de la figura \ref{fig:acoplamiento} que
327corresponde
328con la instalación del componente ''servidor`` para la firma electrónica avanzada.
329
330
331En el caso de que los procesos de negocio se encuentren automatizados bajo un lenguaje
332diferente a \textit{Python}, se utiliza la interfaz de  servicios
333web\footnote{La interfaz de servicios web
334está disponible en:
335http://bazaar.launchpad.net/\~esignature/esignature/bdoc/files/head:/server/}
336que provee el ComponenteFEA (Paso 8.1 de la figura \ref{fig:acoplamiento}).
337
338
339
340Un tema a tomar en cuenta es el relativo al tipo de repositorio donde se almacenan los archivos firmados. El ComponenteFEA genera archivos tipo XAdES con extensión
341\textit{.bdoc}. Para este fin puede utilizarse un directorio en el sistema de archivos o un gestor de  base de datos relacional. En este
342punto también hay que trabajar sobre el esquema de nombres, es decir la forma como se  identifican unívocamente los archivos para que puedan ser encontrados. Para ello  se puede utilizar la vinculación de
343metadatos en los registros de las tablas de la base de datos relacional, o simplemente
344asignar un nombre como clave única a los archivos firmados.
345
346
347
348
349Como último paso se debe habilitar un módulo para gestionar los archivos firmados (paso 9 de la figura \ref{fig:acoplamiento}), es decir,
350proveer una interfaz de usuario para las acciones
351 de visualización de propiedades de  archivos, validación
352de firmas electrónica, búsqueda, entre otras. Estas funcionalidades las provee el ComponenteFEA
353mediante los métodos que se nombran en la sección
354''Métodos para Gestión de archivos`` del Listado \textbf{1},
355y pueden ser extendidas utilizando algunas de las funcionalidades del gestor de datos que se utilice.
356
357
358\section{Casos de estudio}
359
360A continuación se muestran tres casos de integración utilizando un mismo proceso con diversos sistemas informáticos.
361El proceso tratado es el conocido como ''Orden de compra``, el cual está presente en muchas organizaciones.
362Consiste en realizar un proceso de negocio con la finalidad de  obtener un conjunto de productos o servicios necesarios para la organización a través de una búsqueda y evaluación de
363un cierto número de cotizaciones y que siguen una serie de criterios, como por ejemplo, las características de calidad y precio. El proceso en pasos
364se puede describir así:
365\begin{enumerate}
366 \item Generar una requisición o documento de solicitud para el conjunto de productos o servicios
367\begin{itemize}
368 \item Firma del solicitante
369\end{itemize}
370 \item Obtener por los menos n  $(n\geq2)$  cotizaciones para el conjunto de productos o servicios
371\item Seleccionar una cotización y generar un acta
372\begin{itemize}
373 \item Firma del analista de compras
374\end{itemize}
375\item Generar una orden de compra
376\begin{itemize}
377 \item Firma del gerente del departamento
378\end{itemize}
379\end{enumerate}
380
381Generalmente este proceso se lleva a cabo utilizando firmas manuscritas en coordinación con un sistema informático:
382se imprime desde el sistema el documento (requisición, acta u  orden de compra), se firma, y luego se actualiza la información en el sistema informático.
383
384Para el caso de estudio planteado se  puede sustituir  la primera, la segunda  o las tres  firmas manuscritas por sus respectivas firmas electrónicas.
385También es posible agregar firmas electrónicas en puntos donde no existen firmas manuscritas.
386
387La segunda funcionalidad a conectar del ComponenteFEA es la validación de los documentos firmados electrónicamente.
388 Para ello se identifican los puntos donde se actualiza la información
389sobre la firma manuscrita. Una tercera funcionalidad es la que tiene que ver con la visualización de  los atributos  de los documentos firmados electrónicamente.
390
391Después del proceso de identificación, para  cada punto que se determinó en la fase anterior,  se incorporan  los métodos
392del ComponenteFEA con llamadas locales o remotas  según sea el caso. A
393continuación se presentas tres implementaciones del proceso
394''Orden de compra`` para tres sistemas informáticos diferentes.
395
396
397\subsection{Caso OpenERP }
398
399OpenERP\footnote{Ver la dirección web: http://www.openerp.com} es un software de Planificación de Recursos Empresariales (ERP, por sus siglas en inglés), software libre,
400que tiene un gran número de instalaciones. En su base incluye el proceso de  ''Orden de compra``. Para realizar el acoplamiento se creó
401un nuevo módulo
402de OpenERP. Se identificaron los puntos de firma y validación y se sustituyeron por las llamadas
403respectivas al ComponenteFEA. Como elemento agregado se creó un nuevo módulo
404basado en bandejas de documentos -archivos generados por OpenERP-
405(similar a las usadas en los clientes de correo electrónico)
406asociadas a los documentos a ser firmados electrónicamente.
407
408
409La figura \ref{fig:openerp} muestra la interfaz de usuario para gestionar los archivos firmados electrónicamente. Los usuarios autorizados pueden utilizar una
410tarjeta inteligente para firmar los documentos correspondientes al proceso de
411``Orden de compra'', teniendo la misma validez legal (especificado por
412las políticas de la PKI y la legislación del país) que la firma manuscrita.
413 Primero el solicitante firma  la requisición, y este documento se envía a  la bandeja del analista de compra, quién busca las cotizaciones correspondientes y
414  selecciona el conjunto de productos a comprar. Se generan los documentos ``Acta'' y ``Orden de compra'', este último es enviado a la bandeja del gerente quién
415lo firma  para aprobar la compra del conjunto de productos o servicios seleccionados.
416
417
418OpenERP provee al desarrollador patrones Modelo-Vista-Controlador (MVC) y un motor de flujo de trabajos o \textit{Workflow} para implementar nuevas funcionalidades.
419Usando estas herramientas los documentos firmados se vinculan al modelo de datos y las validaciones de firma electrónica se realizan
420extendiendo el flujo de trabajo relacionado con el proceso ``Orden de compra'' base de OpenERP.
421
422
423\begin{figure}[htb]
424\centering
425\includegraphics[scale=1]{imagenes/openerp.jpeg}
426\caption{Interfaz de usuario OpenERP para el ComponenteFEA}
427\label{fig:openerp}
428\end{figure}
429
430
431La última captura de pantalla de la figura \ref{fig:openerp} muestra un cuadro  de diálogo que pide un PIN o contraseña  al usuario. Esta interfaz forma
432parte del complemento Web que debe ser instalado en el cliente (navegador) y que tiene interacción con el certificado firmante contenido en una
433tarjeta inteligente.
434
435
436
437\subsection{Caso SAID}
438
439
440SAID\footnote{Ver la dirección web: http://said.cenditel.gob.ve/wiki } es un sistema administrativo que incluye procesos contables
441y administrativos para instituciones que operen en el sector público venezolano.
442Entre los procesos que implementa SAID está el de ``Orden de compra'', que incluye entre sus capacidades la posibilidad de utilizar firmas electrónicas basadas en el formato  PKCS\#7.
443
444El sistema fue escrito en PHP Versión 4.X, y
445es de código libre. Los puntos de firma y validación están claramente identificados, ya que son los indicados por las firmas electrónicas,
446en este caso solo se sustituyen las llamadas a la API del motor criptográfico local, por llamados a los servicios web del ComponenteFEA. El listado
447 \textbf{2} muestra
448las llamadas que se insertaron en el código fuente para extender el sistema de tal manera que funcione con firmas electrónicas avanzadas.
449 El repositorio de archivos firmados a utilizar es
450PostgreSQL Version 8.4 (El mismo que utiliza SAID). El listado \textbf{2} muestra el código en PHP para validar una firma electrónica y mostrar los firmantes de un
451documento del proceso de Orden de compra: requisición, acta u orden.  Después de realizar la conexión al servidor \textit{localhost} por el puerto 4242, se procede
452a abrir un archivo firmado con el método ``openBDocContaine'' a través de una llamada remota, luego se utiliza el método ``validateSignature'' para validar
453la firma, y finalmente se listan todos los firmantes  utilizando el método  ``subjectCertificateCommonName''.
454
455\begin{verbatim}
456 <?php
457
458include('xmlrpc.php');
459
460$connec = new XMLRPCClient('localhost:4242');
461$identificador = 'prueba1';
462$connec->__call('init', array($identificador));
463$connec->__call('openBDocContainer',
464array($identificador,
465'detalle_curso.odt.bdoc'));
466$resp = $connec->__call('signatureCount',
467array($identificador));
468$firmantes = Array();
469for($pos=0; $pos<$resp; $pos++)
470{       
471        $datos = Array();
472        $valida = 'No válido';
473        if($connec->__call('validateSignature',
474array($identificador,$pos)))
475        {
476           $valida = 'Válido';
477           $nombre = 
478 $connec->
479   __call('subjectCertificateCommonName',
480array($identificador,$pos));
481           $firmantes[] = array('nombre'=> $nombre,
482'valida'=>$valida);
483        }
484}
485
486for($i=0;$i<count($firmantes);$i++)
487{
488        echo "{$firmantes[$i]['nombre']}
489{$firmantes[$i]['valida']}\n";
490}
491?>
492\end{verbatim} \begin{center} \textbf{Listado 2.} Conexión mediante servicios web-rpc desde SAID al ComponenteFEA
493\end{center}
494
495
496De forma similar al caso OpenERP, se provee un complemento para el navegador de tal manera que los usuarios puedan
497realizar la firma de forma remota, utilizando una tarjeta inteligente desde su estación de trabajo. Luego el documento
498se procesa por el sistema SAID, y se almacena en la base de datos del servidor.
499
500\subsection{Caso Flujos de Trabajo}
501
502El proceso especificado en esta sección puede modelarse  usando un motor de flujo de trabajo. Los flujos de trabajo son ampliamente utilizados para modelar procesos
503a través de un lenguaje descriptivo como BPM o BPEL \cite{IEEEhowto:bpel}.  Para implementar el proceso de ``Orden de compra'' se utilizó el motor
504SAFET \cite{IEEEhowto:safet}, ya que incorpora
505el ComponenteFEA nativamente, solo se necesitan especificar los puntos en el proceso donde se requiere la firma electrónica. La validación la realiza el motor de forma
506automática. Para este caso los pasos 1 y 2 del Diagrama de flujo para el acoplamiento del ComponenteFEA, se realizan sin  la necesidad de agregar o modificar
507código fuente, solo se especifica en el archivo de definición de flujo.
508
509El listado \textbf{3} muestra la definición de la acción de firma electrónica  en un flujo de trabajo (SAFET).  El usuario definido por
510el \textit{NombreComunUsuario} debe firmar electrónicamente el documento de requisición para pasar a la siguiente actividad
511que en este caso se denominada \textit{Cotización}.
512La sentencia \textit{vRequisicion \textbf{SIGN} NombreComunUsuario} indica al motor de flujo de trabajo lo descrito anteriormente.
513
514
515\begin{verbatim}
516<task id="Requisicion"
517 title="Acción de solicitud de bien o servicio" >
518<port side="forward" type="split" >
519<connection source="Cotización"
520query="vRequisicion SIGN NombreComunUsuario"
521options="" >
522</connection>
523</port>
524<variable id="vRequisicion" scope="task"
525tokenlink=""
526documentsource="select  id,
527nombre,descripcion,
528fechageneracion
529from requisiciones" >
530</variable>
531</task>
532\end{verbatim}  \begin{center} \textbf{Listado 3.} Tarea de firma de requisición usando SAFET (XML)
533\end{center}
534
535
536
537
538\section{Conclusiones}
539
540En un mediano plazo la firma electrónica avanzada  puede consolidarse como una tecnología fundamental en los procesos
541de negocio ya que propone la digitalización de un elemento  imprescindible en este contexto como lo es la firma manuscrita.
542Los retos de la digitalización son diversos y complejos, y tienen que ver con aspectos disímiles como lo son por ejemplo los formatos
543de archivo de firma electrónica y la ergonomía para el uso de esta tecnología.
544
545En este trabajo se detalla un método para la integración de un componente de software con sistemas informáticos
546que automatizan procesos de negocio. En la fase de  acoplamiento se define la identificación
547de puntos de firma electrónica, se especifica la  validación de los certificados firmantes por una PKI,
548se muestra la habilitación del navegador web para la firma electrónica (basada en tarjetas inteligentes) 
549a través de un complemento y se discute sobre los parámetros de seguridad de los formatos de firma electrónica.
550Las tareas como la construcción de un gestor de archivos firmados se proponen como una actividad  complementaria.
551
552
553Con la finalidad de mostrar la aplicación del método  propuesto en sistemas en situaciones reales se mostraron tres casos de estudio,
554cada uno con sus particularidades.
555 El acoplamiento del ComponenteFEA con los sistemas
556informáticos OpenERP, SAID y SAFET siguen el método descrito en el trabajo, evaluando para todos los casos especialmente el tipo de conexión
557a utilizar  (local o remota), el tipo de almacenamiento y el procedimiento para la conexión en los puntos de firma electrónica y validación.
558
559
560El análisis de vulnerabilidades  es un tema omnipresente en el área
561de seguridad informática, y está relacionado con este trabajo a través del análisis de los formatos, protocolos y
562tecnologías utilizados en el proceso de integración.
563
564Existen otros aspectos que no se discuten en este trabajo pero que se consideran importantes para la  aprehensión de la
565tecnología de firma electrónica. Entre ellos se pueden señalar la mejora de  la experiencia del usuario 
566y la visualización de  los archivos de formato XML firmados electrónicamente.
567
568En el tema específico de integración, en \cite{IEEEhowto:eID} se discute sobre la necesidad de
569abrir el compás de aplicaciones
570compatibles con la tecnología de Firma Electrónica Avanzada, y en general, sobre la asunción de un nuevo paradigma en el despliegue
571de procesos de negocio.
572
573
574
575
576
577
578% el siguiente comando establece la ubicación de las referencias
579\putbib[bibliografia]
580
581% el siguiente comando cierra el ambiente bibunit para la cual se generan las
582% referencias.
583\end{bibunit}
584
585
586
587 
588
589
590% \begin{thebibliography}{1}
591%
592% \bibitem{IEEEhowto:espana}
593% Portal del DNI Electrónico Español. Disponible en: http://www.dnielectronico.es/. Febrero 2013.
594%
595% \bibitem{IEEEhowto:eID}
596% Andreas Poller, Ulrich Waldmann, Sven Vowe, Sven Turpe, Electronic Identity Cards for User Authentication
597% Promise and Practice, IEEE Security \& Privacy10, vol. 10, no. 1, pp. 46-54, January/February, 2012
598%
599%
600% \bibitem{IEEEhowto:estonia}
601% Oficial Gateway to Estonia. Disponible en: http://estonia.eu/about-estonia/economy-a-it/e-estonia.html. Febrero 2013.
602%
603%
604% \bibitem{IEEEhowto:software}
605% Campderrich Falgueras, Benet. Ingeniería del Software. Editorial UOC. Barcelona, España. 2003.
606%
607%
608% \bibitem{IEEEhowto:directiva}
609% DIRECTIVA 1999/93/CE DEL PARLAMENTO EUROPEO Y DEL CONSEJO. Diciembre 1999. Disponible en: http://www.cert.fnmt.es/legsoporte/D\_1999\_93\_CE.pdf
610%
611% \bibitem{IEEEhowto:x509}
612% Cooper D.,  Santesson S., y otros. Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile. Request for Comments (RFC) 5280. May 2008.
613% Disponible en: http://www.ietf.org/rfc/rfc5280.txt. Febrero 2013.
614%
615% \bibitem{IEEEhowto:pkcs7}
616% PKCS\#7.Cryptographic Message Syntax. Disponible en: https://tools.ietf.org/html/rfc2315. Febrero 2013.
617%
618% \bibitem{IEEEhowto:pades}
619% PAdES. PDF Advance Electronic Signatures. Disponible en: http://www.etsi.org/deliver/etsi\_ts/
620% 102700\_102799/10277801/01.01.01\_60/ts\_10277801v010101p.pdf. Febrero 2013.
621%
622% \bibitem{IEEEhowto:xmldsig}
623% Bartel M., Boyer J., y otros. XML Signature Syntax and Processing (Second Edition). W3C Recommendation 10 June 2008.
624% Disponible en: http://www.w3.org/TR/xmldsig-core/. Febrero 2013.
625%
626% \bibitem{IEEEhowto:bdoc}
627% Formato para firmas electrónicas. Disponible en: http://www.signature.it/-TOOLS/Bdoc-1.0.pdf. Febrero 2013.
628%
629% \bibitem{IEEEhowto:neubauer}
630% Neubauer, T.; Weippl, E.; Biffl, S., "Digital signatures with familiar appearance for e-government documents: authentic PDF," Availability,
631% Reliability and Security, 2006. ARES 2006. The First International Conference on , vol., no., pp.8 pp.,, 20-22 April 2006
632%
633% \bibitem{IEEEhowto:java}
634% Richardson Clay, Avondolio Donald, others. Professional Java, JDK. 5th Edition. Wrox. February. 2005.
635%
636% \bibitem{IEEEhowto:xades}
637% Cruellas, J. Karlinger G., y otros. XML Advanced Electronic Signatures (XAdES). W3C Note 20 February 2003.
638%
639% \bibitem{IEEEhowto:mime}
640% Security Multiparts for MIME. Multipart/Signed and Multipart/Encrypted. Disponible en: http://tools.ietf.org/html/rfc1847. Febrero 2013.
641%
642% \bibitem{IEEEhowto:pkcs12}
643% PKCS\#12.Personal Information Exchange Syntax Standard. RSA Laboratories. Disponible en: https://www.rsa.com/rsalabs/node.asp?id=2138. Febrero 2013.
644%
645% \bibitem{IEEEhowto:bpel}
646% Matjaz Juric, Mathew Benny. Business Process Execution for Web Services BPEL and BPEL4WS. 2 Ed. Packt Publishing. 2006.
647%
648% \bibitem{IEEEhowto:safet}
649% Bravo, V. Araujo A., SAFET: Sistema para la generación de aplicaciones de firma electrónica. Revista Puente. Vol 6. Número 1. Bucaramanga, Colombia. 2011.
650%
651%
652% % el siguiente item no se está utilizando
653% \bibitem{IEEEhowto:pki}
654% Duane. N. Brink, J. PKI: Infraestructura de Clave Pública. McGrawHill 2002.
655%
656% \end{thebibliography}
657
658%\begin{IEEEbiography}[{\includegraphics[width=1in,height=1.25in,clip,keepaspectratio]{victor.png}}]{Víctor Bravo}
659% Víctor Bravo nació en Maracaibo, Venezuela. Es Ingeniero de Sistemas y tiene una maestría en Computación de la Universidad de los Andes (ULA),Venezuela.
660% Ha trabajado como director en importantes
661% proyectos vinculados a procesos de Certificación Electrónica masiva tal como ''Software de Gestión Autoridad Raíz de la
662% PKI Pública Nacional``. Ha dictado conferencias sobre temas de certificación electrónica en varios países. Actualmente está
663% adscrito como Investigador a la Fundación CENDITEL, y ha sido profesor desde el año 2005 de la cátedra de Matemáticas Discretas del
664% Departamento de Computación de la ULA.
665%\end{IEEEbiography}
666
667
668%\begin{IEEEbiography}[{\includegraphics[width=1in,height=1.25in,clip,keepaspectratio]{antonioaraujo.jpg}}]{Antonio Gregorio Araujo Brett}
669% Antonio Araujo es Ingeniero de Sistemas, egresado de la Universidad de Los Andes, en
670% Mérida, Venezuela. Actualmente
671% cursa estudios de Maestría en Computación de la Facultad de Ingeniería
672% de la Universidad de Los
673% Andes. Ha asesorado
674% proyectos de certificación
675% electrónica y participado como ponente en varias jornadas y congresos de
676% certificación electrónica y
677% firmas electrónicas en el país.
678% Se desempeña desde el año 2007 como Analista de la gestión de
679% desarrollado en Tecnologías Libres de
680% la Fundación Centro Nacional de Desarrollo e Investigación en
681% Tecnologías Libres – CENDITEL Nodo
682% Mérida.
683%\end{IEEEbiography}
684
685%\begin{IEEEbiography}[{\includegraphics[width=1in,height=1.25in,clip,keepaspectratio]{jogerquintero.jpg}}]{Joger André Quintero Escalante}
686
687% Joger Quintero es Técnico Superior en Informática, egresado del Instituto Universitario Tecnológico de Ejido, en
688% Ejido, Venezuela.  Se desempeña como Analista Desarrollador en CENDITEL(Nodo Mérida) desde el año 2011.
689%\end{IEEEbiography}
690
Note: See TracBrowser for help on using the repository browser.