Ignore:
Timestamp:
Apr 24, 2014, 11:09:53 AM (10 years ago)
Author:
Antonio Araujo Brett <aaraujo@…>
Branches:
master, revisionfinal
Children:
dcee5d3, ed97591
Parents:
22341eb
Message:

Corrección de acentos en texto del capítulo 5.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • maquetacion/capitulo5/capitulo5.tex

    r147fb25 r5a86311  
    99
    1010%\begin{abstract}
    11 Una Autoridad de Certificaci'on Ra'iz   (AC Ra'iz)   es un componente que tiene el rol de ser el punto m'as alto de confianza en  una estructura  jer'arquica denominada Infraestructura de Clave P'ublica (ICP). Una ICP  provee de certificados digitales bajo est'andar X.509 a personas, direcciones IP y direcciones en la Web;  proporcionando seguridad l'ogica, y vinculaci'on legal a las transacciones  que realiza el propietario  del certificado  en la Internet. La confianza reside en la protecci'on a trav'es de esquemas fuertes de seguridad f'isica y l'ogica de la clave privada que permite la emisi'on de estos certificados. Este trabajo muestra el proceso de desarrollo de una aplicaci'on para gestionar el componente mencionado utilizando  bibliotecas, herramientas, compiladores, sistemas operativos y licencias compatibles con los principios del  software libre. En primer lugar, se determinan los requisitos a ser satisfechos en funci'on de una descripci'on general de las funciones y caracter'isticas de una
    12 Autoridad de Certificaci'on;  posteriormente, se dise~nan  funcionalidades y  se especifican  requisitos, con el objetivo de producir  una visi'on formal de los procesos a automatizar. Se dedica una secci'on a la implementaci'on que  consiste, en la codificaci'on en un lenguaje de programaci'on,   de los procesos previstos  en las etapas anteriores, como tambi'en, de la incorporaci'on de mecanismos fuertes de validaci'on de identidad de usuarios, registro de eventos, firma de acciones por parte de los administradores de la aplicaci'on, y especificaci'on de conexiones con hardware especializado, como tarjetas inteligentes.  Finalmente, se muestra el despliegue y configuraci'on de la aplicaci'on, que involucra la instalaci'on en un ambiente seguro (b'oveda o centro de datos) y el enlace de la AC Ra'iz con los dem'as componentes de la infraestructura. 
     11Una Autoridad de Certificación Raíz   (AC Raíz)   es un componente que tiene el rol de ser el
     12punto más alto de confianza en  una estructura  jerárquica denominada Infraestructura de Clave
     13Pública (ICP). Una ICP  provee de certificados digitales bajo estándar X.509 a personas,
     14direcciones IP y direcciones en la Web;  proporcionando seguridad lógica, y vinculación
     15legal a las transacciones  que realiza el propietario  del certificado  en
     16la Internet. La confianza reside en la protección a través de esquemas fuertes de
     17seguridad física y lógica de la clave privada que permite la emisión de estos certificados. Este trabajo muestra el proceso de desarrollo de una aplicación para gestionar el componente mencionado utilizando  bibliotecas, herramientas, compiladores, sistemas operativos y licencias compatibles con los principios del  software libre. En primer lugar, se determinan los requisitos a ser satisfechos en función de una descripción general de las funciones y características de una
     18Autoridad de Certificación;  posteriormente, se dise~nan  funcionalidades y  se especifican  requisitos, con el objetivo de producir  una visión formal de los procesos a automatizar. Se dedica una sección a la implementación que  consiste, en la codificación en un lenguaje de programación,   de los procesos previstos  en las etapas anteriores, como también, de la incorporación de mecanismos fuertes de validación de identidad de usuarios, registro de eventos, firma de acciones por parte de los administradores de la aplicación, y especificación de conexiones con hardware especializado, como tarjetas inteligentes.  Finalmente, se muestra el despliegue y configuración de la aplicación, que involucra la instalación en un ambiente seguro (bóveda o centro de datos) y el enlace de la AC Raíz con los demás componentes de la infraestructura. 
    1319
    1420
     
    2026%\end{abstract}
    2127
    22 %\begin{keywords} Infraestructura de Clave P'ublica, Est'andar X.509, Certificado Digital, Firma Electr'onica, Autoridad de Certificaci'on Ra'iz.
     28%\begin{keywords} Infraestructura de Clave Pública, Estándar X.509, Certificado Digital, Firma Electrónica, Autoridad de Certificación Raíz.
    2329%\end{keywords}
    2430
    2531
    26 \section{Introducci\'on}
    27 
    28 \label{sec:intro}La disponibilidad de Internet como medio digital seguro permite que cualquier persona, empresa, instituci'on, o administraci\'on realice transacciones gubernamentales, comerciales o personales en la mayor'ia de los casos, tal cual, como se realizar'ian en una oficina o espacio f'isico de forma presencial. Dado este hecho,  al utilizar Internet para establecer relaciones humanas, se est\'a de acuerdo que es necesario trasladar el concepto de ``identidad'' al medio digital\cite{NIC:03}. La criptograf\'ia provee algoritmos y mecanismos para construir este concepto en la red, ya que es  posible utilizar herramientas  que aporten elementos para definir  la identidad de un usuario, entidad  o instituci'on, de la misma forma de la que se est\'a familiarizado en el mundo real.
    29 
    30 En muchas ocasiones para realizar actividades cotidianas personales o de trabajo, se debe establecer contacto con un individuo u organizaci'on que no se conoce o del cu'al no se tiene ninguna referencia. Mediante un contacto personal o directo, los sentidos humanos permiten percibir un gran n'umero de detalles que le caracterizan, y cuya combinaci\'on muy probablemente le hace irrepetible. Esta combinaci'on  permite identificar al individuo  de forma 'unica y certera.  Dicho esto, la identidad se define como el reconocimiento que se hace de las credenciales f\'isicas o informativas, que ese individuo  ofrece para que se le acepte como poseedor de una determinada individualidad \cite{STAL:03}. Las credenciales f'isicas pueden ser documentos como la C'edula de Identidad, el Pasaporte, la Licencia de Conducir, entre otros. Todos los documentos citados  generalmente incluyen una fotograf'ia que permite la comparaci'on con la apariencia del interlocutor; tambi'en usualmente se agrega otra característica
    31 informativa que puede ser un nombre, una  firma manuscrita y posiblemente  un n'umero de referencia.
    32 
    33 Cuando se traslada el concepto de identidad al medio inform'atico, se habla de identidad digital, y se hace necesario contar credenciales traducibles a informaci'on binaria. Por otro lado, la criptograf'ia, por s'i misma no proporciona este concepto: es el uso de una infraestructura computacional que utiliza algoritmos criptogr'aficos  para representar credenciales digitales,  como por ejemplo el certificado digital,  y que son otorgados por terceros de confianza, denominados Autoridades de Certificaci'on (AC), y que se describen como Ra'iz cuando son el punto inicial de una jerarqu'ia, las que proveen a usuarios y organizaciones de identidad digital, y que cuenta con las mismas connotaciones que tiene este concepto en el 'ambito personal y jur'idico.
     32\section{Introducción}
     33
     34\label{sec:intro}La disponibilidad de Internet como medio digital seguro permite que cualquier persona, empresa, institución, o administración realice transacciones gubernamentales, comerciales o personales en la mayoría de los casos, tal cual, como se realizarían en una oficina o espacio físico de forma presencial. Dado este hecho,  al utilizar Internet para establecer relaciones humanas, se está de acuerdo que es necesario trasladar el concepto de ``identidad'' al medio digital\cite{NIC:03}. La criptografía provee algoritmos y mecanismos para construir este concepto en la red, ya que es  posible utilizar herramientas  que aporten elementos para definir  la identidad de un usuario, entidad  o institución, de la misma forma de la que se está familiarizado en el mundo real.
     35
     36En muchas ocasiones para realizar actividades cotidianas personales o de trabajo, se debe establecer contacto con un individuo u organización que no se conoce o del cuál no se tiene ninguna referencia. Mediante un contacto personal o directo, los sentidos humanos permiten percibir un gran número de detalles que le caracterizan, y cuya combinación muy probablemente le hace irrepetible. Esta combinación  permite identificar al individuo  de forma única y certera.  Dicho esto, la identidad se define como el reconocimiento que se hace de las credenciales físicas o informativas, que ese individuo  ofrece para que se le acepte como poseedor de una determinada individualidad \cite{STAL:03}. Las credenciales físicas pueden ser documentos como la Cédula de Identidad, el Pasaporte, la Licencia de Conducir, entre otros. Todos los documentos citados  generalmente incluyen una fotografía que permite la comparación con la apariencia del interlocutor; también usualmente se agrega otra característica
     37informativa que puede ser un nombre, una  firma manuscrita y posiblemente  un número de referencia.
     38
     39Cuando se traslada el concepto de identidad al medio informático, se habla de identidad digital, y se hace necesario contar credenciales traducibles a información binaria. Por otro lado, la criptografía, por sí misma no proporciona este concepto: es el uso de una infraestructura computacional que utiliza algoritmos criptográficos  para representar credenciales digitales,  como por ejemplo el certificado digital,  y que son otorgados por terceros de confianza, denominados Autoridades de Certificación (AC), y que se describen como Raíz cuando son el punto inicial de una jerarquía, las que proveen a usuarios y organizaciones de identidad digital, y que cuenta con las mismas connotaciones que tiene este concepto en el ámbito personal y jurídico.
    3440\\
    35 Uno de los problemas que aparece en este punto, en la disponibilidad de la infraestructura mencionada anteriormente, la cu'al debe contar como un elemento obligatorio una aplicaci'on que gestione, bajo un est'andar aceptado, como lo es el est'andar X.509\cite{NASH:02}, los certificados digitales que emite la AC. La discusi'on de importantes aspectos que surgen en las diferentes etapas del proceso desarrollo de la aplicaci'on de gesti'on, y que est'an vinculados con los principios del software libre y los requisitos muy particulares del ambiente de despliegue, subrayan los objetivos de este trabajo.
    36 
    37 \section{Marco Te'orico}
    38 
    39  Con el objetivo de contextualizar los t'erminos   ``identidad'', ``confianza'', o ``transacci'on segura'' y``AC Ra'iz'' en el medio digital, y espec'ificamente en relaci'on con internet; es imprescindible en una primera aproximaci'on,  discutir sobre  determinados temas y conceptos vinculados con la seguridad inform'atica. En los p'arrafos siguientes se abordan brevemente algunos de los puntos m'as importantes relacionados con el tema.
    40  
    41 \subsection{Seguridad Inform\'atica}
    42 
    43  Se ha llegado a un consenso sobre lo que significa seguridad inform'atica\cite{STAL:03}. En general, se dice que un activo de informaci'on, (informaci'on digital con un valor real para una empresa o persona) est'a asegurado si cumple con niveles  aceptables relativos a su valor potencial en los siguientes aspectos:
     41Uno de los problemas que aparece en este punto, en la disponibilidad de la infraestructura mencionada anteriormente, la cuál debe contar como un elemento obligatorio una aplicación que gestione, bajo un estándar aceptado, como lo es el estándar X.509\cite{NASH:02}, los certificados digitales que emite la AC. La discusión de importantes aspectos que surgen en las diferentes etapas del proceso desarrollo de la aplicación de gestión, y que están vinculados con los principios del software libre y los requisitos muy particulares del ambiente de despliegue, subrayan los objetivos de este trabajo.
     42
     43\section{Marco Teórico}
     44
     45 Con el objetivo de contextualizar los términos   ``identidad'', ``confianza'', o ``transacción segura'' y``AC Raíz'' en el medio digital, y específicamente en relación con internet; es imprescindible en una primera aproximación,  discutir sobre  determinados temas y conceptos vinculados con la seguridad informática. En los párrafos siguientes se abordan brevemente algunos de los puntos más importantes relacionados con el tema.
     46 
     47\subsection{Seguridad Informática}
     48
     49 Se ha llegado a un consenso sobre lo que significa seguridad informática\cite{STAL:03}. En general, se dice que un activo de información, (información digital con un valor real para una empresa o persona) está asegurado si cumple con niveles  aceptables relativos a su valor potencial en los siguientes aspectos:
    4450\\ \\
    45 \textbf{Disponibilidad:} es el grado en que un dato est\'a en el lugar, momento y forma en que es requerido por uno o un conjunto de usuarios autorizados. Como premisa, un sistema seguro debe mantener la informaci\'on disponible para los usuarios autorizados. Disponibilidad tambi'en significa que el sistema, debe mantenerse funcionando eficientemente y es capaz de recuperarse r\'apidamente en caso de fallo.
     51\textbf{Disponibilidad:} es el grado en que un dato está en el lugar, momento y forma en que es requerido por uno o un conjunto de usuarios autorizados. Como premisa, un sistema seguro debe mantener la información disponible para los usuarios autorizados. Disponibilidad también significa que el sistema, debe mantenerse funcionando eficientemente y es capaz de recuperarse rápidamente en caso de fallo.
    4652\\ \\
    47 \textbf{Confidencialidad:} es el aspecto de la seguridad que permite mantener en secreto la informaci\'on y solo los usuarios autorizados pueden manipularla. Igual que para la disponiblidad, los usuarios pueden ser personas, procesos o programas. Para evitar que nadie no autorizado pueda tener acceso a la informaci\'on transferida y que recorre la Red se utilizan t\'ecnicas de cifrado o codificaci\'on de datos. Hay que mantener una cierta coherencia para determinar cu\'al es el grado de confidencialidad de la informaci\'on que se est\'a manejando, para as\'i evitar un esfuerzo suplementario a la hora de decodificar una informaci\'on previamente codificada.
     53\textbf{Confidencialidad:} es el aspecto de la seguridad que permite mantener en secreto la información y solo los usuarios autorizados pueden manipularla. Igual que para la disponiblidad, los usuarios pueden ser personas, procesos o programas. Para evitar que nadie no autorizado pueda tener acceso a la información transferida y que recorre la Red se utilizan técnicas de cifrado o codificación de datos. Hay que mantener una cierta coherencia para determinar cuál es el grado de confidencialidad de la información que se está manejando, para así evitar un esfuerzo suplementario a la hora de decodificar una información previamente codificada.
    4854\\ \\
    49 \textbf{Integridad:} corresponde a garantizar que la informaci\'on transmitida entre dos entidades autorizadas no sea modificada por un tercero no autorizado.  Un mecanismo para lograrlo es la utilizaci\'on de firmas digitales.
    50 Mediante una firma digital se codifican los mensajes a transferir, de forma que una funci\'on, denominada hash \cite{ACE:03}, calcula un resumen de dicho mensaje y se le a~nade. La validaci\'on de la integridad del mensaje se realiza aplic'andole al original la misma funci\'on y comparando el resultado con el resumen que se a~nadi\'o al final cuando se calculo por primera vez antes de enviarlo.
    51 Mantener la integridad es importante para verificar que en el tiempo de viaje por la Red de la informaci\'on entre el sitio emisor y receptor ning\'un agente externo o extra\~no ha modificado el mensaje.
    52 
    53 \subsection{Criptograf\'ia}
    54 La criptograf'ia  es la ciencia o arte  informaci'on utilizando t'ecnicas matem'aticas que hagan posible el intercambio de mensajes de manera que s'olo puedan ser le'idos por las personas o usuarios autorizados \cite{STAL:03}. La criptograf'ia ha tomado gran importancia en los 'ultimos a~nos, ya que es posible transformar las ``t'ecnicas matem'aticas'' en algoritmos que pueden ser comprendidos por una computadora.  Se puede clasificar la criptograf'ia en dos tipos, seg\'un el tipo de clave que se utilice:
    55 
    56 \textbf{Criptograf\'ia Sim\'etrica:} los sistemas de criptograf\'ia sim\'etrica son aquellos que utilizan una 'unica clave para cifrar y descifrar un texto claro. Este tipo de sistema conlleva una desventaja, que consiste en el conocimiento de las partes (emisor y receptor) de la  clave 'unica que les permite intercambiar información por un canal seguro. Como respuesta a ello, se hace necesario formalizar un procedimiento que muestre a las partes autorizadas la informaci'on sobre la clave, sin que sea develada a un tercero no autorizado.
    57 
    58 \textbf{Criptograf\'ia Asim\'etrica:} tambi'en se conoce como  Sistema de Cifrado de Clave P\'ublica\cite{STAL:03}. Usa dos claves diferentes, una de ellas es la Clave P'ublica que puede ser enviada a cualquier persona y otra, que se denomina Clave Privada que es secreta, y no debe ser revelada. A diferencia del sistema de cifrado sim'etrico donde las partes deben concertar un procedimiento para conocer la clave 'unica, en este tipo de sistema el remitente usa la clave p\'ublica del dest inatario para cifrar el documento. Una vez que el documento o mensaje ha sido cifrado, solamente con la clave privada del destinatario el mensaje puede ser descifrado.
     55\textbf{Integridad:} corresponde a garantizar que la información transmitida entre dos entidades autorizadas no sea modificada por un tercero no autorizado.  Un mecanismo para lograrlo es la utilización de firmas digitales.
     56Mediante una firma digital se codifican los mensajes a transferir, de forma que una función, denominada hash \cite{ACE:03}, calcula un resumen de dicho mensaje y se le a~nade. La validación de la integridad del mensaje se realiza aplicándole al original la misma función y comparando el resultado con el resumen que se a~nadió al final cuando se calculo por primera vez antes de enviarlo.
     57Mantener la integridad es importante para verificar que en el tiempo de viaje por la Red de la información entre el sitio emisor y receptor ningún agente externo o extra\~no ha modificado el mensaje.
     58
     59\subsection{Criptografía}
     60La criptografía  es la ciencia o arte  información utilizando técnicas matemáticas que hagan posible el intercambio de mensajes de manera que sólo puedan ser leídos por las personas o usuarios autorizados \cite{STAL:03}. La criptografía ha tomado gran importancia en los últimos a~nos, ya que es posible transformar las ``técnicas matemáticas'' en algoritmos que pueden ser comprendidos por una computadora.  Se puede clasificar la criptografía en dos tipos, según el tipo de clave que se utilice:
     61
     62\textbf{Criptografía Simétrica:} los sistemas de criptografía simétrica son aquellos que utilizan una única clave para cifrar y descifrar un texto claro. Este tipo de sistema conlleva una desventaja, que consiste en el conocimiento de las partes (emisor y receptor) de la  clave única que les permite intercambiar información por un canal seguro. Como respuesta a ello, se hace necesario formalizar un procedimiento que muestre a las partes autorizadas la información sobre la clave, sin que sea develada a un tercero no autorizado.
     63
     64\textbf{Criptografía Asimétrica:} también se conoce como  Sistema de Cifrado de Clave Pública\cite{STAL:03}. Usa dos claves diferentes, una de ellas es la Clave Pública que puede ser enviada a cualquier persona y otra, que se denomina Clave Privada que es secreta, y no debe ser revelada. A diferencia del sistema de cifrado simétrico donde las partes deben concertar un procedimiento para conocer la clave única, en este tipo de sistema el remitente usa la clave pública del dest inatario para cifrar el documento. Una vez que el documento o mensaje ha sido cifrado, solamente con la clave privada del destinatario el mensaje puede ser descifrado.
    5965
    6066\subsection{Certificados digitales}
    6167
    62 Un certificado digital es un documento de acreditaci\'on que permite a las partes tener confianza en las transacciones que realicen en internet. Por tanto, garantiza la identidad de su poseedor mediante un sistema de claves administrado por una tercera parte de confianza. Para validar un certificado basta con conocer la clave p\'ublica de la tercera parte conocida como la Autoridad de Confianza (AC). Para cuidarnos de que piratas inform\'aticos cambien su clave p\'ublica por la de la autoridad de confianza, la AC debe crear un certificado con su propia informaci\'on de identidad y a la vez su clave p\'ublica y firmar el certificado, este certificado se le conoce como certificado autofirmado.
    63 Dado que los certificados son informaci\'on p\'ublica y lo que se desea es que todos tengan acceso a ellos, pueden hacerse copias del certificado de acuerdo sea necesario. Los certificados digitales permiten varias cosas, entre ellas se pueden citar  que los usuarios pueden a~nadir firmas electr\'onicas a los formularios en l\'inea; que los destinatarios pueden comprobar la autenticidad del correo electr\'onico confidencial; que los compradores pueden estar seguros de que un website es leg\'itimo;  y por 'ultimo,  controla el acceso a bancos y comercios online, as\'i como los intranets y extranets.
    64 
    65 \subsection{Est\'andar X.509}
    66 
    67 
    68 X.509 y X.500 fueron originalmente dise\~nados a mediados de los a\~nos 80, antes del enorme crecimiento de usuarios en Internet. Es por esto por lo que se dise\~naron para operar en un ambiente donde s\'olo los computadores se interconectaban intermitentemente entre ellos. En las versiones  1 y 2 de X.509 se utiliza una lista estandarizada denominada ``CRL'' (Certificate Revocation List) que contiene la informaci'on referente a  clientes o certificados que han sido revocados.
    69 
    70 La versi\'on 3 introduce cambios significativos en el est\'andar. El cambio fundamental es el hacer el formato de los certificados y los CRLs extensible. Ahora los que implementen X.509 pueden definir el contenido de los certificados como crean conveniente. Adem\'as se han definido extensiones est\'andares para proveer una funcionalidad mejorada.
    71 
    72 
    73 Con la utilizaci\'on de la tecnolog\'ia de certificados digitales se provee a los clientes  (personas o programas) de un nivel m'as alto en los procesos  de autenticaci\'on y autorizaci\'on, ya que se le otorga al cliente algo que puede poseer, incluso incluir dentro de elemento f'isico, como una tarjeta inteligente. Los certificados en el formato X.509 v3 contienen datos del sujeto, como su nombre, direcci\'on, correo electr\'onico, etc.  (Ver Fig. \ref{fig:estandarx509})
    74 
    75 En la versi\'on 3 de X.509, no hace falta aplicar restricciones sobre la estructura del certificado, gracias a la definici\'on de las extensiones de certificados. Se permite que una organizaci\'on pueda definir sus propias extensiones para contener informaci\'on espec\'ifica dentro de su entorno de operaci\'on. Este tipo de certificados es el que usa el protocolo de comercio electr\'onico SET (del ingl'es Secure Electronic Transaction, Transacci'on Electr'onica Segura) \cite{IBM:98}.
     68Un certificado digital es un documento de acreditación que permite a las partes tener confianza en las transacciones que realicen en internet. Por tanto, garantiza la identidad de su poseedor mediante un sistema de claves administrado por una tercera parte de confianza. Para validar un certificado basta con conocer la clave pública de la tercera parte conocida como la Autoridad de Confianza (AC). Para cuidarnos de que piratas informáticos cambien su clave pública por la de la autoridad de confianza, la AC debe crear un certificado con su propia información de identidad y a la vez su clave pública y firmar el certificado, este certificado se le conoce como certificado autofirmado.
     69Dado que los certificados son información pública y lo que se desea es que todos tengan acceso a ellos, pueden hacerse copias del certificado de acuerdo sea necesario. Los certificados digitales permiten varias cosas, entre ellas se pueden citar  que los usuarios pueden a~nadir firmas electrónicas a los formularios en línea; que los destinatarios pueden comprobar la autenticidad del correo electrónico confidencial; que los compradores pueden estar seguros de que un website es legítimo;  y por último,  controla el acceso a bancos y comercios online, así como los intranets y extranets.
     70
     71\subsection{Estándar X.509}
     72
     73
     74X.509 y X.500 fueron originalmente dise\~nados a mediados de los a\~nos 80, antes del enorme crecimiento de usuarios en Internet. Es por esto por lo que se dise\~naron para operar en un ambiente donde sólo los computadores se interconectaban intermitentemente entre ellos. En las versiones  1 y 2 de X.509 se utiliza una lista estandarizada denominada ``CRL'' (Certificate Revocation List) que contiene la información referente a  clientes o certificados que han sido revocados.
     75
     76La versión 3 introduce cambios significativos en el estándar. El cambio fundamental es el hacer el formato de los certificados y los CRLs extensible. Ahora los que implementen X.509 pueden definir el contenido de los certificados como crean conveniente. Además se han definido extensiones estándares para proveer una funcionalidad mejorada.
     77
     78
     79Con la utilización de la tecnología de certificados digitales se provee a los clientes  (personas o programas) de un nivel más alto en los procesos  de autenticación y autorización, ya que se le otorga al cliente algo que puede poseer, incluso incluir dentro de elemento físico, como una tarjeta inteligente. Los certificados en el formato X.509 v3 contienen datos del sujeto, como su nombre, dirección, correo electrónico, etc.  (Ver Fig. \ref{fig:estandarx509})
     80
     81En la versión 3 de X.509, no hace falta aplicar restricciones sobre la estructura del certificado, gracias a la definición de las extensiones de certificados. Se permite que una organización pueda definir sus propias extensiones para contener información específica dentro de su entorno de operación. Este tipo de certificados es el que usa el protocolo de comercio electrónico SET (del inglés Secure Electronic Transaction, Transacción Electrónica Segura) \cite{IBM:98}.
    7682
    7783\begin{figure}[htb]
    7884\centering
    7985\includegraphics[width=8cm]{imagenes/estandarX509.png}
    80 \caption{Especificaci'on del estandar X.509}
     86\caption{Especificación del estandar X.509}
    8187\label{fig:estandarx509}
    8288\end{figure}
    8389
    8490
    85 Los certificados digitales tienen multitud de usos, entre los tipos de certificados m'as utilizados est'an:
     91Los certificados digitales tienen multitud de usos, entre los tipos de certificados más utilizados están:
    8692
    8793\begin{itemize}
    88  \item \textbf{Certificado de Servidor SSL (del ingl'es Socket Secure Layer, Nivel de Conexi'on Segura):} Permite incorporar el protocolo SSL a un servidor web con el objetivo que toda la comunicaci\'on entre el cliente y el servidor permanezca segura, cifrando la informaci'on que env'ia cada parte. El certificado del servidor posibilita la autenticaci'on fuerte, es decir, que el servidor puede exigir certificados personales de navegaci\'on a los usuarios para acceder a determinadas carpetas, lo que repercute en la seguridad y en la comodidad por la ausencia de cuentas y contrase\~nas para la identificaci\'on de los usuarios.
    89 
    90  \item \textbf{Certificados personales (Correo y navegaci\'on):} Un certificado digital personal es la herramienta necesaria para navegar, comprar y enviar/recibir correo a trav'es de Internet, de una manera segura. Con el uso de este certificado se puede firmar o cifrar los mensajes  de correo para tener la seguridad que el receptor ser\'a el \'unico lector de nuestro mensaje. Se puede aumentar la seguridad y confianza entre el cliente y el servidor web, al autenticarse tambi\'en al usuario, esto tambi\'en va a permitir a las empresas la posibilidad de personalizar los contenidos a un usuario concreto, con la certeza que otros usuarios no podr\'an ver dicho contenido, tales como informaci\'on confidencial, ofertas especiales, entre otros.
    91 
    92  \item \textbf{Certificado para firma de c\'odigo:} El certificado para la firma de c\'odigo  permite a un administrador, desarrollador o empresa de software firmar su software y macros, y distribuirlo de una forma segura. Esta soluci\'on de Seguridad es el requisito m\'inimo que necesitan nuestros clientes o lista de correo, para confiar y tener la seguridad de que el fichero que reciben o se descargan, proviene exclusivamente de una empresa determinada. Con ello se evitan los problemas causados por la suplantaci\'on de personalidad y la distribuci\'on de objetos da\~ninos o perjudiciales bajo esta supuesta identidad. Cualquier modificaci\'on (por ejemplo: inclusi\'on de un troyano o infecci\'on de un virus) sobre el software original lo invalidar\'a, con lo que el usuario tendr\'a la confirmaci\'on para rechazarlo al comprobar que la firma electr\'onica no corresponde con la del software modificado.   
     94 \item \textbf{Certificado de Servidor SSL (del inglés Socket Secure Layer, Nivel de Conexión Segura):} Permite incorporar el protocolo SSL a un servidor web con el objetivo que toda la comunicación entre el cliente y el servidor permanezca segura, cifrando la información que envía cada parte. El certificado del servidor posibilita la autenticación fuerte, es decir, que el servidor puede exigir certificados personales de navegación a los usuarios para acceder a determinadas carpetas, lo que repercute en la seguridad y en la comodidad por la ausencia de cuentas y contrase\~nas para la identificación de los usuarios.
     95
     96 \item \textbf{Certificados personales (Correo y navegación):} Un certificado digital personal es la herramienta necesaria para navegar, comprar y enviar/recibir correo a través de Internet, de una manera segura. Con el uso de este certificado se puede firmar o cifrar los mensajes  de correo para tener la seguridad que el receptor será el único lector de nuestro mensaje. Se puede aumentar la seguridad y confianza entre el cliente y el servidor web, al autenticarse también al usuario, esto también va a permitir a las empresas la posibilidad de personalizar los contenidos a un usuario concreto, con la certeza que otros usuarios no podrán ver dicho contenido, tales como información confidencial, ofertas especiales, entre otros.
     97
     98 \item \textbf{Certificado para firma de código:} El certificado para la firma de código  permite a un administrador, desarrollador o empresa de software firmar su software y macros, y distribuirlo de una forma segura. Esta solución de Seguridad es el requisito mínimo que necesitan nuestros clientes o lista de correo, para confiar y tener la seguridad de que el fichero que reciben o se descargan, proviene exclusivamente de una empresa determinada. Con ello se evitan los problemas causados por la suplantación de personalidad y la distribución de objetos da\~ninos o perjudiciales bajo esta supuesta identidad. Cualquier modificación (por ejemplo: inclusión de un troyano o infección de un virus) sobre el software original lo invalidará, con lo que el usuario tendrá la confirmación para rechazarlo al comprobar que la firma electrónica no corresponde con la del software modificado.   
    9399\end{itemize}
    94100\subsection{Lenguaje Unificado de Modelado}
    95101
    96  UML ( del ingl'es Unified Modeling Language,  Lenguaje de Modelado Unificado) es un lenguaje que permite diseñar sistemas a trav'es de  modelos, que se componen de un conjunto de s'imbolos y diagramas en donde se plasma las ideas de funcionalidad. El UML fue creado por Grady Booch, James Rumbaugh e Ivar Jacobson en el a~no 1997\cite{SCHM:03},\cite{BOOC:99} y \cite{MULL:97}. Cada diagrama tiene fines distintos dentro del proceso de desarrollo, su finalidad es presentar diversas perspectivas de un sistema. La clave está en organizar el proceso de dise~no de tal forma que los analistas, clientes, desarrolladores y otras personas involucradas en el desarrollo del modelo  lo comprendan y convengan con 'el. Los diagramas que componen el lenguaje son:
     102 UML ( del inglés Unified Modeling Language,  Lenguaje de Modelado Unificado) es un lenguaje que permite diseñar sistemas a través de  modelos, que se componen de un conjunto de símbolos y diagramas en donde se plasma las ideas de funcionalidad. El UML fue creado por Grady Booch, James Rumbaugh e Ivar Jacobson en el a~no 1997\cite{SCHM:03},\cite{BOOC:99} y \cite{MULL:97}. Cada diagrama tiene fines distintos dentro del proceso de desarrollo, su finalidad es presentar diversas perspectivas de un sistema. La clave está en organizar el proceso de dise~no de tal forma que los analistas, clientes, desarrolladores y otras personas involucradas en el desarrollo del modelo  lo comprendan y convengan con él. Los diagramas que componen el lenguaje son:
    97103
    98104\begin{itemize}
     
    101107\item Diagramas de secuencias
    102108\item Diagramas de colaboraciones
    103 \item Diagramas de distribuci'on
     109\item Diagramas de distribución
    104110\item Diagramas de actividades
    105111\item Diagramas de componentes
     
    107113\end{itemize}
    108114
    109 En este trabajo se utilizaron esencialmente los diagramas de clases, los diagramas de casos de uso y los diagramas de actividades, que se describen brevemente a continuaci'on:
    110 
    111 \textbf{Diagramas de clases:}  son  representaciones gr'aficas de las categor'ias  en que pueden clasificarse los objetos del mundo real. En general, se hace una descripci'on de las categor'ias que se utilizan en la aplicaci'on a desarrollar. Los clases se dise~nan  en funcion de sus atributos y relaciones con otras clases.
     115En este trabajo se utilizaron esencialmente los diagramas de clases, los diagramas de casos de uso y los diagramas de actividades, que se describen brevemente a continuación:
     116
     117\textbf{Diagramas de clases:}  son  representaciones gráficas de las categorías  en que pueden clasificarse los objetos del mundo real. En general, se hace una descripción de las categorías que se utilizan en la aplicación a desarrollar. Los clases se dise~nan  en funcion de sus atributos y relaciones con otras clases.
    112118
    113119\textbf{Diagramas de casos de uso:}   son descripciones de las acciones que debe realizar el usuario en el sistema \cite{SCHM:03}. Por ejemplo: Usuario que tiene la necesidad de expedir un certificado digital a una AC de confianza.
     
    118124\subsection{Software Libre}
    119125
    120 \label{sec:softlibre}El software libre \cite{FSF:07} es un asunto de libertad, no de precio. Para que un programa, aplicaci\'on o conjunto concreto se considere ``software libre'' debe cumplir con las siguientes libertades: 1) Libertad de ejecutar el programa en cualquier sitio, cualquier prop\'osito, por siempre; 2) Libertad de estudiarlo y adaptarlo a nuestras necesidades; 3) Libertad de redistribuirlo a cualquiera, logrando ayudar a un amigo o vecino; y por \'ultimo 4)la  Libertad de mejorar el programa y publicar las mejoras.
    121 
    122 Las libertades antes expuestas, proveen  muchos beneficios  a los usuarios finales. En particular, en el \'area de seguridad inform\'atica. Se pueden nombrar  entre los beneficios m\'as importantes: la no dependencia  de un \'unico fabricante, y la posibilidad de realizar auditor\'ias y pruebas exhaustivas por parte de terceros, que pueden ser personas, empresas o instituciones diferentes responsables del proyecto  de software. Los procesos de adaptaci\'on, mantenimiento, integraci\'on y auditor\'ias son m\'as transparentes y colaborativos.
    123 
    124 
    125 \section{Infraestructura de Clave P\'ublica}
    126 
    127 Uno de los problemas del despliegue de la tecnolog\'ias basada en certificados y firmas digitales, es contar con un elemento que proporcione una relaci\'on fuerte de confianza entre dos o m\'as sujetos que desean realizar una operaci\'on o transacci\'on utilizando como medio Internet. Es por ello,  que se recurre a establecer un tercero de confianza, que se define, como un actor encargado de brindar confianza basada en la disponibilidad de una infraestructura robusta que incluya el uso tecnolog\'ias basadas en algoritmos criptogr\'aficos estandarizados, y la aplicaci\'on estricta de pol\'iticas para los procesos de registro, publicaci\'on, firma, renovaci\'on y revocaci\'on de certificados.
    128 El tercero de confianza se denomina Infraestructura de Clave P\'ublica (ICP)\cite{NASH:02}, y consiste en la combinaci\'on de hardware y software, pol\'iticas y procedimientos que permiten asegurar la identidad de los participantes en un intercambio de datos usando criptograf\'ia p\'ublica. Una ICP debe proporcionar los tres conceptos de seguridad mencionados anteriormente.
    129 
    130 \subsection{Componentes de la Infraestructura de Claves P\'ublica (ICP)}
     126\label{sec:softlibre}El software libre \cite{FSF:07} es un asunto de libertad, no de precio. Para que un programa, aplicación o conjunto concreto se considere ``software libre'' debe cumplir con las siguientes libertades: 1) Libertad de ejecutar el programa en cualquier sitio, cualquier propósito, por siempre; 2) Libertad de estudiarlo y adaptarlo a nuestras necesidades; 3) Libertad de redistribuirlo a cualquiera, logrando ayudar a un amigo o vecino; y por último 4)la  Libertad de mejorar el programa y publicar las mejoras.
     127
     128Las libertades antes expuestas, proveen  muchos beneficios  a los usuarios finales. En particular, en el área de seguridad informática. Se pueden nombrar  entre los beneficios más importantes: la no dependencia  de un único fabricante, y la posibilidad de realizar auditorías y pruebas exhaustivas por parte de terceros, que pueden ser personas, empresas o instituciones diferentes responsables del proyecto  de software. Los procesos de adaptación, mantenimiento, integración y auditorías son más transparentes y colaborativos.
     129
     130
     131\section{Infraestructura de Clave Pública}
     132
     133Uno de los problemas del despliegue de la tecnologías basada en certificados y firmas digitales, es contar con un elemento que proporcione una relación fuerte de confianza entre dos o más sujetos que desean realizar una operación o transacción utilizando como medio Internet. Es por ello,  que se recurre a establecer un tercero de confianza, que se define, como un actor encargado de brindar confianza basada en la disponibilidad de una infraestructura robusta que incluya el uso tecnologías basadas en algoritmos criptográficos estandarizados, y la aplicación estricta de políticas para los procesos de registro, publicación, firma, renovación y revocación de certificados.
     134El tercero de confianza se denomina Infraestructura de Clave Pública (ICP)\cite{NASH:02}, y consiste en la combinación de hardware y software, políticas y procedimientos que permiten asegurar la identidad de los participantes en un intercambio de datos usando criptografía pública. Una ICP debe proporcionar los tres conceptos de seguridad mencionados anteriormente.
     135
     136\subsection{Componentes de la Infraestructura de Claves Pública (ICP)}
    131137Los componentes habituales que conforman la infraestructura  son los siguientes (Ver Fig. \ref{fig:arquitecturapsc}):
    132138\begin{itemize}
    133 \item Autoridad de Registro (AR): es el nodo o conjunto de nodos responsables del registro y la autenticaci\'on inicial de los usuarios a qui\'enes se les expide un certificado, despu\'es de  aprobada una solicitud de registro.
    134 \item  Autoridad de Certificaci\'on (AC): es el nodo central de la infraestructura, se encarga de los procedimientos  de firma, renovaci\'on  y revocaci\'on de certificados digitales. El procedimiento de firma  de certificados utiliza la clave privada de la AC.
    135 \item Interfaz con los clientes (PUB): es el nodo  que brinda toda la informaci\'on a las entidades finales (usuarios) sobre el estado de su certificado, adem\'as de ofrecer una informaci'on general al p\'ublico en general sobre los aspectos y servicios relevantes de la ICP.
     139\item Autoridad de Registro (AR): es el nodo o conjunto de nodos responsables del registro y la autenticación inicial de los usuarios a quiénes se les expide un certificado, después de  aprobada una solicitud de registro.
     140\item  Autoridad de Certificación (AC): es el nodo central de la infraestructura, se encarga de los procedimientos  de firma, renovación  y revocación de certificados digitales. El procedimiento de firma  de certificados utiliza la clave privada de la AC.
     141\item Interfaz con los clientes (PUB): es el nodo  que brinda toda la información a las entidades finales (usuarios) sobre el estado de su certificado, además de ofrecer una información general al público en general sobre los aspectos y servicios relevantes de la ICP.
    136142\end{itemize}
    137143
    138144
    139 Los nodos de una ICP pueden ordenarse seg'un diversos modelos.  El m'as utilizado es el modelo jer'arquico, que presenta una ra'iz y nodos hijos que distribuyen los certificados a los clientes o entidades finales (Ver Fig. \ref{fig:jerarquia}). Se muestra un ejemplo de modelo de jerarqu'ia de una ICP de cuatro niveles, que se encuentra en el tercer nivel del modelo, que certifica a los usuarios.
     145Los nodos de una ICP pueden ordenarse según diversos modelos.  El más utilizado es el modelo jerárquico, que presenta una raíz y nodos hijos que distribuyen los certificados a los clientes o entidades finales (Ver Fig. \ref{fig:jerarquia}). Se muestra un ejemplo de modelo de jerarquía de una ICP de cuatro niveles, que se encuentra en el tercer nivel del modelo, que certifica a los usuarios.
    140146
    141147\begin{figure}[htb]
    142148\centering
    143149\includegraphics[width=8cm]{imagenes/jerarquia.png}
    144 \caption{Modelo jer'arquico de una ICP}
     150\caption{Modelo jerárquico de una ICP}
    145151\label{fig:jerarquia}
    146152\end{figure}
    147153
    148 Este modelo de establecimiento de relaciones de confianza, es necesaria entre m'ultiples autoridades de certificaci'on para garantizar que los usuarios (entidades finales) no tengan que depender y confiar en una sola AC, algo que har'ia imposible el manejo de estabilidad, administraci'on y protecci'on. El objetivo es que las entidades finales que utilizan identidades creadas por una AC puedan confiar en ellas, aunque dichas partes tenga una autoridad expedidora diferente.   
    149 
    150 
    151 
    152 \section{Desarrollo de la aplicaci\'on}
    153 
    154 En los p\'arrafos siguientes se discute  los aspectos, procesos y  t\'ecnicas principales, que se siguen a lo largo del desarrollo de la aplicaci\'on (software) de gesti\'on del componente Autoridad Certificadora Ra\'iz.
    155 
    156 
    157 \subsection{Conceptualizaci\'on}
    158 
    159 
    160 Uno de los objetivos de esta etapa es determinar el rol  del componente AC Ra\'iz en la ICP, con la finalidad de obtener los requisitos, procesos y funciones que deben ser implementados por el software. Este rol tiene que ver con la definici\'on de la AC Ra\'iz como elemento central y de m\'aximo resguardo de la infraestructura, ya que este nodo inicial o ``Ra\'iz'' contiene la clave privada que valida todos los certificados de los otros nodos de la jerarqu\'ia.
    161 
    162 Se considera como punto importante en esta etapa, distinguir las diferencias entre una AC Ra\'iz y una AC de un Proveedor de Servicios de Certificaci\'on (PSC). La diferencia principal entre estos dos tipos de AC, es la cantidad de certificados que deben gestionar (firmar, renovar, revocar, etc) , en un determinado periodo cada uno de ellos. Esto es, una AC Ra\'iz solo gestiona un n\'umero m\'inimo de certificados,  los cu\'ales sirven para dar inicio a la  jerarqu\'ia (certificados otorgados a los PSC), por el contrario, una AC de un PSC debe gestionar un n\'umero mucho mayor de certificados, ya que la funci\'on de este  nodo es entregar certificados  peri\'odicamente a usuarios, tambi\'en llamados entidades finales.
    163 
    164 La diferencia de  escala de los dos tipos de AC conlleva a que la AC Ra\'iz tenga caracter\'isticas particulares, que tienen que ver los niveles y elementos de seguridad  tanto f\'isicos como l\'ogicos que deben considerarse en la gesti\'on del componente. Por ejemplo,  la desconexi\'on de red del equipo  donde se ejecuta la aplicaci\'on de gesti\'on hace que la recepci\'on y entrega de certificados se realice a trav\'es de unidades de memoria externas y port\'atiles, debidamente validadas, con las cu\'ales el software debe mantener una comunicaci\'on segura.
    165 
    166 La conexi'on  de la aplicaci\'on con  hardware especializado, como el almacenador y generador de claves p\'ublicas/privadas (Hardware Security Module: HSM) o las  tarjetas inteligentes, es un factor que debe considerarse en el momento de enumerar las funciones iniciales del software de gesti\'on.   
    167 
    168 La selecci'on del sistema operativo Linux\cite{SARW:03}  para desplegar la aplicaci'on, ya que cumple con los principios del software libre, y cuenta con gran n'umero de herramientas en el 'area de programaci'on \cite{KURT:01}, es un requisito no funcional que se establece en esta etapa.
    169 
    170 Considerando los aspectos nombrados anteriormente, en este punto se elabora una lista inicial de requisitos, con la cual debe cumplir la aplicaci\'on.  Como t\'ecnicas utilizadas en \'esta etapa  est\'an la realizaci\'on de entrevistas a clientes, a posibles administradores y operadores; la elaboraci\'on de tablas comparativas entre diferentes aplicaciones que existen en las bibliotecas o portales de software libre, con la finalidad de evaluar las herramientas a utilizar en la elaboraci'on de la aplicaci'on.
     154Este modelo de establecimiento de relaciones de confianza, es necesaria entre múltiples autoridades de certificación para garantizar que los usuarios (entidades finales) no tengan que depender y confiar en una sola AC, algo que haría imposible el manejo de estabilidad, administración y protección. El objetivo es que las entidades finales que utilizan identidades creadas por una AC puedan confiar en ellas, aunque dichas partes tenga una autoridad expedidora diferente.   
     155
     156
     157
     158\section{Desarrollo de la aplicación}
     159
     160En los párrafos siguientes se discute  los aspectos, procesos y  técnicas principales, que se siguen a lo largo del desarrollo de la aplicación (software) de gestión del componente Autoridad Certificadora Raíz.
     161
     162
     163\subsection{Conceptualización}
     164
     165
     166Uno de los objetivos de esta etapa es determinar el rol  del componente AC Raíz en la ICP, con la finalidad de obtener los requisitos, procesos y funciones que deben ser implementados por el software. Este rol tiene que ver con la definición de la AC Raíz como elemento central y de máximo resguardo de la infraestructura, ya que este nodo inicial o ``Raíz'' contiene la clave privada que valida todos los certificados de los otros nodos de la jerarquía.
     167
     168Se considera como punto importante en esta etapa, distinguir las diferencias entre una AC Raíz y una AC de un Proveedor de Servicios de Certificación (PSC). La diferencia principal entre estos dos tipos de AC, es la cantidad de certificados que deben gestionar (firmar, renovar, revocar, etc) , en un determinado periodo cada uno de ellos. Esto es, una AC Raíz solo gestiona un número mínimo de certificados,  los cuáles sirven para dar inicio a la  jerarquía (certificados otorgados a los PSC), por el contrario, una AC de un PSC debe gestionar un número mucho mayor de certificados, ya que la función de este  nodo es entregar certificados  periódicamente a usuarios, también llamados entidades finales.
     169
     170La diferencia de  escala de los dos tipos de AC conlleva a que la AC Raíz tenga características particulares, que tienen que ver los niveles y elementos de seguridad  tanto físicos como lógicos que deben considerarse en la gestión del componente. Por ejemplo,  la desconexión de red del equipo  donde se ejecuta la aplicación de gestión hace que la recepción y entrega de certificados se realice a través de unidades de memoria externas y portátiles, debidamente validadas, con las cuáles el software debe mantener una comunicación segura.
     171
     172La conexión  de la aplicación con  hardware especializado, como el almacenador y generador de claves públicas/privadas (Hardware Security Module: HSM) o las  tarjetas inteligentes, es un factor que debe considerarse en el momento de enumerar las funciones iniciales del software de gestión.   
     173
     174La selección del sistema operativo Linux\cite{SARW:03}  para desplegar la aplicación, ya que cumple con los principios del software libre, y cuenta con gran número de herramientas en el área de programación \cite{KURT:01}, es un requisito no funcional que se establece en esta etapa.
     175
     176Considerando los aspectos nombrados anteriormente, en este punto se elabora una lista inicial de requisitos, con la cual debe cumplir la aplicación.  Como técnicas utilizadas en ésta etapa  están la realización de entrevistas a clientes, a posibles administradores y operadores; la elaboración de tablas comparativas entre diferentes aplicaciones que existen en las bibliotecas o portales de software libre, con la finalidad de evaluar las herramientas a utilizar en la elaboración de la aplicación.
    171177
    172178
    173179\subsection{Dise\~no}
    174180
    175 La etapa de dise\~no consiste en elaborar diagramas formales que permitan en la etapa de implementaci\'on representar requisitos y procesos de la gesti\'on del componente AC Ra\'iz en un lenguaje de programaci'on.  Para el dise\~no de requisitos se utilizan los diagramas de casos de uso del lenguaje UML, que muestran una primera aproximaci\'on las operaciones que se deben realizar en relaci'on con las entradas dadas por los usuarios. Los actores (usuarios) del caso de uso principal que se muestra en la Fig. \ref{fig:casodeusoprincipal} son: el Administrador del componente AC, el Administrador del Componente AR, el Administrador del componente PUB, y el actor PSC, qui'enes son los que interact\'uan con la aplicaci\'on.
     181La etapa de dise\~no consiste en elaborar diagramas formales que permitan en la etapa de implementación representar requisitos y procesos de la gestión del componente AC Raíz en un lenguaje de programación.  Para el dise\~no de requisitos se utilizan los diagramas de casos de uso del lenguaje UML, que muestran una primera aproximación las operaciones que se deben realizar en relación con las entradas dadas por los usuarios. Los actores (usuarios) del caso de uso principal que se muestra en la Fig. \ref{fig:casodeusoprincipal} son: el Administrador del componente AC, el Administrador del Componente AR, el Administrador del componente PUB, y el actor PSC, quiénes son los que interactúan con la aplicación.
    176182
    177183\begin{figure}[htb]
     
    182188\end{figure}
    183189
    184 Para el resto de la especificaci\'on de requisitos se elaboran casos de uso que modelan las funcionalidades con que debe contar la aplicaci'on. Para cada actor, se especifican el correspondiente diagrama de caso de uso. En la Fig. \ref{fig:casodeusoac} se muestra el caso de uso para el actor del componente AC. Las acciones que realiza este actor son emisi'on, renovaci'on y revocaci'on de certificados, que conlleva procesos de firma con la clave privada, modificaci'on de los periodos de vigencia del certificado y elaboraci'on de listas de certificados revocados respectivamente para casa caso de uso.
     190Para el resto de la especificación de requisitos se elaboran casos de uso que modelan las funcionalidades con que debe contar la aplicación. Para cada actor, se especifican el correspondiente diagrama de caso de uso. En la Fig. \ref{fig:casodeusoac} se muestra el caso de uso para el actor del componente AC. Las acciones que realiza este actor son emisión, renovación y revocación de certificados, que conlleva procesos de firma con la clave privada, modificación de los periodos de vigencia del certificado y elaboración de listas de certificados revocados respectivamente para casa caso de uso.
    185191
    186192\begin{figure}[htb]
    187193\centering
    188194\includegraphics[width=8cm]{imagenes/casodeusoac.png}
    189 \caption{Caso de uso para el actor Administrador Autoridad de Certificaci'on}
     195\caption{Caso de uso para el actor Administrador Autoridad de Certificación}
    190196\label{fig:casodeusoac}
    191197\end{figure}
    192198
    193199
    194 Tambi\'en en esta etapa se construye  el modelo de datos de la aplicaci\'on. La Fig. \ref{fig:diagramadeclases} muestra de forma parcial, ya que no se incluyen los atributos,  el diagrama de clases que explica el modelo de datos. Se consideran como objetos persistentes del sistema a elementos como usuarios, clientes, certificados, autoridades o proveedores de certificaci\'on, solicitudes de autoridad de certificaci'on, solicitudes de entidad finales, y sus respectivas relaciones.
     200También en esta etapa se construye  el modelo de datos de la aplicación. La Fig. \ref{fig:diagramadeclases} muestra de forma parcial, ya que no se incluyen los atributos,  el diagrama de clases que explica el modelo de datos. Se consideran como objetos persistentes del sistema a elementos como usuarios, clientes, certificados, autoridades o proveedores de certificación, solicitudes de autoridad de certificación, solicitudes de entidad finales, y sus respectivas relaciones.
    195201
    196202\begin{figure}[htb]
     
    202208
    203209
    204 Para modelar la secuencia de acciones que se realizan para cada caso de uso  se utilizan los diagramas de actividades. La Fig. \ref{fig:diagramaactividades} muestra el diagrama de actividades general para el caso de uso  ``Emisi'on de certificados''' del actor Administrador del componente AC. Para este conjunto de actividades participan cuatro (4) actores: Administrador del PSC, qui'en entrega los recaudos necesarios para que se le firme su solicitud, el Administrador de la AR, qui'en es el encargado de chequear los recaudos entregados por el PSC, el Administrador de la AC Ra'iz  y el Administrador PUB, este 'ultimo encargado de de publicar en los diferentes repositorios los certificados (claves p'ublicas) para que sean visibles por el mayor n'umero de usuarios interesados. 
     210Para modelar la secuencia de acciones que se realizan para cada caso de uso  se utilizan los diagramas de actividades. La Fig. \ref{fig:diagramaactividades} muestra el diagrama de actividades general para el caso de uso  ``Emisión de certificados''' del actor Administrador del componente AC. Para este conjunto de actividades participan cuatro (4) actores: Administrador del PSC, quién entrega los recaudos necesarios para que se le firme su solicitud, el Administrador de la AR, quién es el encargado de chequear los recaudos entregados por el PSC, el Administrador de la AC Raíz  y el Administrador PUB, este último encargado de de publicar en los diferentes repositorios los certificados (claves públicas) para que sean visibles por el mayor número de usuarios interesados. 
    205211
    206212
     
    213219 
    214220
    215 \subsection{Implementaci\'on}
    216 
    217 
    218 En esta etapa se utiliza como insumo  los diagramas de casos de uso, diagrama de clases y actividades,  generados en la etapa de  dise~no. Se traduce  el diagrama de clases al que se hace referencia en la Fig. \ref{fig:diagramaactividades} en un modelo de datos relacional, y se genera un script SQL que genera el mapa de tablas relacional, donde las tablas representan relaciones tales como usuarios, clientes, certificados, y las dem'as entidades que conforman el modelo de datos.
    219 
    220 Se  utilizan y validan los diagramas de casos de uso mediante la elaboraci'on de interfaces gr'aficas de usuarios y funcionalidades de interacci'on con el usuario.  Los diagramas de actividades ayudan en el planteamiento de  algoritmos que proveen funcionalidades o caracter'isticas con las cu'ales debe contar la aplicaci'on y  que deben estar en coordinaci'on con los respuestas y valores esperados.
    221 
    222 
    223 Haciendo uso de las ventajas que trae el uso de software libre (Secci'on \ref{sec:softlibre}), se implementa la aplicaci'on utilizando la mayor cantidad de l'ineas de c'odigos disponibles en los repositorios y proyectos de la comunidad, de tal manera que  satisfagan los requisitos y funcionalidades planteadas en la etapa de dise~no. En este sentido, se utiliza el c'odigo fuente del  proyecto XCA \cite{XCA:03},  desarrollado por Christian Hohnst\"{a}dt,  que tiene como objetivo proveer  una aplicaci'on escrita  en el lenguaje de programaci'on C++\cite{STRO:02} y la biblioteca Trolltech Qt\cite{BLAN:06}, que cumpla con el est'andar X.509. La aplicaci'on satisface los requisitos b'asicos para la gesti'on del componente de gesti'on de AC Ra'iz, esto es, los diagramas UML de la etapa de dise~no calzan con un gran conjunto de requisitos satisfechos en el proyecto XCA, esto ocurre debido a que este trabajo comparte objetivos con dicho proyecto; por ejemplo, para el caso de uso de la Fig. \ref{fig:casodeusoac},
    224 donde el actor debe ejecutar tres acciones: emitir, renovar y revocar certificados, la aplicaci'on XCA incorpora estas tres actividades, pero se hace necesario adaptar la interfaz de usuario y agregar caracter'isticas en funci'on de los requisitos capturados.
    225 
    226 Es importante recalcar, que XCA no sastiface todos los requisitos documentados en la etapa de dise~no. En respuesta a este hecho, se realiza un proceso de completaci'on de  funcionalidades. En este sentido, se incorporan caracter'isticas a la aplicaci'on acorde con la especificaciones de dise~no,  entre las cu'ales se enumeran:
     221\subsection{Implementación}
     222
     223
     224En esta etapa se utiliza como insumo  los diagramas de casos de uso, diagrama de clases y actividades,  generados en la etapa de  dise~no. Se traduce  el diagrama de clases al que se hace referencia en la Fig. \ref{fig:diagramaactividades} en un modelo de datos relacional, y se genera un script SQL que genera el mapa de tablas relacional, donde las tablas representan relaciones tales como usuarios, clientes, certificados, y las demás entidades que conforman el modelo de datos.
     225
     226Se  utilizan y validan los diagramas de casos de uso mediante la elaboración de interfaces gráficas de usuarios y funcionalidades de interacción con el usuario.  Los diagramas de actividades ayudan en el planteamiento de  algoritmos que proveen funcionalidades o características con las cuáles debe contar la aplicación y  que deben estar en coordinación con los respuestas y valores esperados.
     227
     228
     229Haciendo uso de las ventajas que trae el uso de software libre (Sección \ref{sec:softlibre}), se implementa la aplicación utilizando la mayor cantidad de líneas de códigos disponibles en los repositorios y proyectos de la comunidad, de tal manera que  satisfagan los requisitos y funcionalidades planteadas en la etapa de dise~no. En este sentido, se utiliza el código fuente del  proyecto XCA \cite{XCA:03},  desarrollado por Christian Hohnst\"{a}dt,  que tiene como objetivo proveer  una aplicación escrita  en el lenguaje de programación C++\cite{STRO:02} y la biblioteca Trolltech Qt\cite{BLAN:06}, que cumpla con el estándar X.509. La aplicación satisface los requisitos básicos para la gestión del componente de gestión de AC Raíz, esto es, los diagramas UML de la etapa de dise~no calzan con un gran conjunto de requisitos satisfechos en el proyecto XCA, esto ocurre debido a que este trabajo comparte objetivos con dicho proyecto; por ejemplo, para el caso de uso de la Fig. \ref{fig:casodeusoac},
     230donde el actor debe ejecutar tres acciones: emitir, renovar y revocar certificados, la aplicación XCA incorpora estas tres actividades, pero se hace necesario adaptar la interfaz de usuario y agregar características en función de los requisitos capturados.
     231
     232Es importante recalcar, que XCA no sastiface todos los requisitos documentados en la etapa de dise~no. En respuesta a este hecho, se realiza un proceso de completación de  funcionalidades. En este sentido, se incorporan características a la aplicación acorde con la especificaciones de dise~no,  entre las cuáles se enumeran:
    227233\begin{itemize}
    228  \item La incorporaci'on de un sub-sistema de seguridad para acceso a los activos de informaci'on que gestiona la aplicaci'on,  que incluya aspectos de autenticaci'on y autorizaci'on de usuarios,  como lo es  la validaci'on de credenciales a trav'es del uso de tarjetas inteligentes, el registro y firma digital  de las acciones realizadas por los usuarios dentro de la aplicaci'on.
    229 En La fig \ref{fig:registro} se muestra la caracter'istica de registro de acciones. La ventana a la derecha muestra los detalles de la acci'on seleccionada en la lista, se incluyen datos importantes como nombre de la cuenta de usuario, fecha, hora, y otros datos particulares relacionadas con la acci'on realizada por el correspondiente usuario.
     234 \item La incorporación de un sub-sistema de seguridad para acceso a los activos de información que gestiona la aplicación,  que incluya aspectos de autenticación y autorización de usuarios,  como lo es  la validación de credenciales a través del uso de tarjetas inteligentes, el registro y firma digital  de las acciones realizadas por los usuarios dentro de la aplicación.
     235En La fig \ref{fig:registro} se muestra la característica de registro de acciones. La ventana a la derecha muestra los detalles de la acción seleccionada en la lista, se incluyen datos importantes como nombre de la cuenta de usuario, fecha, hora, y otros datos particulares relacionadas con la acción realizada por el correspondiente usuario.
    230236
    231237\begin{figure}[htb]
     
    236242\end{figure}
    237243
    238 \item  Estandarizaci'on del sistema de gesti'on de documentos  como solicitudes, plantillas de certificados y certificados.
    239 
    240 \item Conexi'on a trav'es de una interfaz propia con el hardware donde se resguardan las claves privadas (HSM).
     244\item  Estandarización del sistema de gestión de documentos  como solicitudes, plantillas de certificados y certificados.
     245
     246\item Conexión a través de una interfaz propia con el hardware donde se resguardan las claves privadas (HSM).
    241247
    242248\end{itemize}
    243249
    244 Tambi'en en esta etapa se seleccionan e integran las tecnolog'ias a utilizar para la codificaci'on y creaci'on de la aplicaci'on de gesti'on del componente AC Ra'iz.  Los tipos de tecnolog'ias que deben seleccionarse son: bibliotecas para construir la interfaz hombre-m'aquina (HMI), motor criptogr'afico,  conexiones con hardware, interfaces con repositorio de datos y algoritmos de c'alculo criptogr'afico m'as utilizados.
    245 
    246 
    247 Como criptosistema se utiliza OpenSSL version 0.9.8 \cite{VIEG:2002}, que provee de un conjunto de  funciones criptogr'aficas apegadas al est'andar X.509. . Para la construcci'on de interfaces hombre-m'aquina y  uso de algoritmos generales se selecciona la biblioteca Trolltech Qt. Como  interfaz para el uso de tarjetas inteligentes se utilizo el est'andar PKCS11, tambi'en conocido como Cryptoki, que especifica una forma para interactuar con este hardware criptogr'afico\cite{NIC:03}.
     250También en esta etapa se seleccionan e integran las tecnologías a utilizar para la codificación y creación de la aplicación de gestión del componente AC Raíz.  Los tipos de tecnologías que deben seleccionarse son: bibliotecas para construir la interfaz hombre-máquina (HMI), motor criptográfico,  conexiones con hardware, interfaces con repositorio de datos y algoritmos de cálculo criptográfico más utilizados.
     251
     252
     253Como criptosistema se utiliza OpenSSL version 0.9.8 \cite{VIEG:2002}, que provee de un conjunto de  funciones criptográficas apegadas al estándar X.509. . Para la construcción de interfaces hombre-máquina y  uso de algoritmos generales se selecciona la biblioteca Trolltech Qt. Como  interfaz para el uso de tarjetas inteligentes se utilizo el estándar PKCS11, también conocido como Cryptoki, que especifica una forma para interactuar con este hardware criptográfico\cite{NIC:03}.
    248254
    249255
     
    251257\subsection{Pruebas}
    252258
    253 Esta etapa tiene dos objetivos.  El  primero de consiste en asegurar que la aplicaci'on funcione correctamente, es decir, que se generen la menor cantidad de salidas inesperadas o fallas a entradas dadas. En relaci'on al logro de  este objetivo  se utilizan un conjunto de t'ecnicas aplicadas  a lo largo del proceso de desarrollo, entre las cu'ales se pueden citar la revisi'on en parejas\cite{PRESS:05}, que consiste que la programaci'on se realice en equipo de dos programadores por computador, uno de ellos se encarga de escribir los algoritmos en un lenguaje de programaci'on, y el segundo de ellos de revisarlo inmediatamente, despu'es de periodo de unas horas, que debe ser definido con anticipaci'on, se intercambian los roles. Otra de las t'ecnicas utilizadas que es importante nombrar son las pruebas unitarias\cite{PRESS:05}, las cu'ales consisten en aplicar un n'umero  casos de pruebas a m'etodos o m'odulos peque~nos   de la aplicaci'on (unidades), de tal manera que se asegura que funcionan correctamente de
    254 forma independiente. Seguidamente, se realizan pruebas de integraci'on, que consisten en probar m'odulos m'as complejos formados por las unidades revisadas en las pruebas unitarias. Las pruebas unitarias y de integraci'on  presentan la ventajas que son automatizables, y por lo tanto, se cuenta como herramientas de software para llevarlas a cabo.
    255 
    256 
    257 El segundo objetivo, es que se satisfagan los requisitos  plasmados en la etapa de dise~no, y que se extraen  de los diagramas UML , es decir, la aplicaci'on debe cumplir con las caracter'isticas necesarias para resolver el problema de gesti'on de una AC Ra'iz. En este sentido, se toma una estrategia basada en prototipos con liberaciones peri'odicas, que permite a los usuarios y desarrolladores de la comunidad  chequear el progreso en el proyecto.  Los prototipos son chequeados por los usuarios y  la modificaci'on de requisitos y notificaci'on de errores son notificados en un sistema web de chequeo y seguimiento \cite{TRAC:07}.
    258 
    259 Tambi'en se habilita un sistema de control de versiones de licencia libre llamado subversion \cite{PILA:04}, que permite a los programadores involucrados en el proyecto obtener en todo momento y de forma local o remota la 'ultima versi'on de los programas fuentes.
    260 
    261 Debido a que la aplicaci'on de gesti'on de AC Raiz debe ser parte de una infraestructura, es necesario realizar pruebas en condiciones similares a la configuraci'on final de 'esta; por ello se simula la configuraci'on de producci'on que conlleva pruebas con el sistema operativo y el donde se instala la aplicaci'on, conexi'on con tarjetas inteligentes y el m'odulo de seguridad en hardware,  controles de acceso f'isico  y l'ogico, y desconexi'on de red, ya que la autoridad debe operar fuera de l'inea.
    262  
    263 
    264 \subsection{Despliegue y configuraci\'on}
    265 El despliegue consiste en la instalaci'on en condiciones reales de la aplicaci'on de gesti'on de AC Ra'iz dentro de la infraestructura. La figura \ref{fig:arquitecturapsc} muestra una propuesta para el despliegue de la infraestructura. La aplicaci'on se instala en un computador desconectado de red  que debe estar ubicado dentro de un lugar f'isico seguro,  lo que significa que el acceso a personas deber estar restringuido por llaves y controles biom'etricos, y el flujo de informaci'on digital hacia adentro y afuera de la b'oveda debe ser realizado a trav'es de dispositivos de memoria secundaria con seguridad incorporada, tal como un lapiz usb (pendrive) con bloqueo por contrase~na, como se muestra en la figura.  Tambi'en es necesario la habilitaci'on de servidores para la validaci'on de los periodos de vigencia de los certificados (OSCP), y para la generaci'on de solicitudes de firma de certificados, donde las entidades finales o usuarios consignan los recaudos.
     259Esta etapa tiene dos objetivos.  El  primero de consiste en asegurar que la aplicación funcione correctamente, es decir, que se generen la menor cantidad de salidas inesperadas o fallas a entradas dadas. En relación al logro de  este objetivo  se utilizan un conjunto de técnicas aplicadas  a lo largo del proceso de desarrollo, entre las cuáles se pueden citar la revisión en parejas\cite{PRESS:05}, que consiste que la programación se realice en equipo de dos programadores por computador, uno de ellos se encarga de escribir los algoritmos en un lenguaje de programación, y el segundo de ellos de revisarlo inmediatamente, después de periodo de unas horas, que debe ser definido con anticipación, se intercambian los roles. Otra de las técnicas utilizadas que es importante nombrar son las pruebas unitarias\cite{PRESS:05}, las cuáles consisten en aplicar un número  casos de pruebas a métodos o módulos peque~nos   de la aplicación (unidades), de tal manera que se asegura que funcionan correctamente de
     260forma independiente. Seguidamente, se realizan pruebas de integración, que consisten en probar módulos más complejos formados por las unidades revisadas en las pruebas unitarias. Las pruebas unitarias y de integración  presentan la ventajas que son automatizables, y por lo tanto, se cuenta como herramientas de software para llevarlas a cabo.
     261
     262
     263El segundo objetivo, es que se satisfagan los requisitos  plasmados en la etapa de dise~no, y que se extraen  de los diagramas UML , es decir, la aplicación debe cumplir con las características necesarias para resolver el problema de gestión de una AC Raíz. En este sentido, se toma una estrategia basada en prototipos con liberaciones periódicas, que permite a los usuarios y desarrolladores de la comunidad  chequear el progreso en el proyecto.  Los prototipos son chequeados por los usuarios y  la modificación de requisitos y notificación de errores son notificados en un sistema web de chequeo y seguimiento \cite{TRAC:07}.
     264
     265También se habilita un sistema de control de versiones de licencia libre llamado subversion \cite{PILA:04}, que permite a los programadores involucrados en el proyecto obtener en todo momento y de forma local o remota la última versión de los programas fuentes.
     266
     267Debido a que la aplicación de gestión de AC Raiz debe ser parte de una infraestructura, es necesario realizar pruebas en condiciones similares a la configuración final de ésta; por ello se simula la configuración de producción que conlleva pruebas con el sistema operativo y el donde se instala la aplicación, conexión con tarjetas inteligentes y el módulo de seguridad en hardware,  controles de acceso físico  y lógico, y desconexión de red, ya que la autoridad debe operar fuera de línea.
     268 
     269
     270\subsection{Despliegue y configuración}
     271El despliegue consiste en la instalación en condiciones reales de la aplicación de gestión de AC Raíz dentro de la infraestructura. La figura \ref{fig:arquitecturapsc} muestra una propuesta para el despliegue de la infraestructura. La aplicación se instala en un computador desconectado de red  que debe estar ubicado dentro de un lugar físico seguro,  lo que significa que el acceso a personas deber estar restringuido por llaves y controles biométricos, y el flujo de información digital hacia adentro y afuera de la bóveda debe ser realizado a través de dispositivos de memoria secundaria con seguridad incorporada, tal como un lapiz usb (pendrive) con bloqueo por contrase~na, como se muestra en la figura.  También es necesario la habilitación de servidores para la validación de los periodos de vigencia de los certificados (OSCP), y para la generación de solicitudes de firma de certificados, donde las entidades finales o usuarios consignan los recaudos.
    266272
    267273\begin{figure}[htb]
    268274\centering
    269275\includegraphics[width=8cm]{imagenes/arquitecturapsc.png}
    270 \caption{Configuraci'on de los componentes del nodo ra'iz de una ICP}
     276\caption{Configuración de los componentes del nodo raíz de una ICP}
    271277\label{fig:arquitecturapsc}
    272278\end{figure}
    273279
    274 Por otro lado, la configuraci'on  conlleva el establecimiento de par'ametros para el funcionamiento la aplicaci'on, tales como m'etodos de control y restricci'on de acceso,  ubicaci'on de archivos y directorios, rutas para importaci'on e exportaci'on de datos, perfiles de usuario, generaci'on y nombres de claves, inicializaci'on de tarjetas inteligentes, inicializaci'on  de HSM, y copias de seguridad.
     280Por otro lado, la configuración  conlleva el establecimiento de parámetros para el funcionamiento la aplicación, tales como métodos de control y restricción de acceso,  ubicación de archivos y directorios, rutas para importación e exportación de datos, perfiles de usuario, generación y nombres de claves, inicialización de tarjetas inteligentes, inicialización  de HSM, y copias de seguridad.
    275281
    276282\section{Conclusiones}
    277283
    278 La puesta en marcha de una AC Ra'iz supone obligatoriamente contar con una aplicaci'on  que gestione este componente de la infraestructura. En este sentido, 'este trabajo mostr'o el proceso de desarrollo de una aplicaci'on que respondiera a los requisitos particulares de gesti'on, determinados por el rol de  confianza ra'iz y 'ultima que debe representar la Autoridad.  En funci'on de ello, la  aplicaci'on tiene  un alto grado de especializaci'on, ya que   cuenta con un  mercado relativo de pocos usuarios, si se compara con el mercado de los sistemas de informaci'on o aplicaciones de ofim'atica, y su operaci'on se realiza en condiciones estand'andares y espec'ificas.  A pesar de este hecho, para la construcci'on de la aplicaci'on se integraron varios proyectos disponibles en los repositorios de software libre, que permiti'o disponer de un criptosistema est'andar y suficientemente completo para cumplir con los requisitos descritos en la etapa de dise~no.  La criptograf'ia se utiliza como herramienta para
    279 otorgar las tres propiedades (Confidencialidad, Integridad y Disponibilidad) de la seguridad inform'atica a los datos que gestiona la aplicaci'on, y en virtud de ello el hardware criptogr'afico utilizado como las  tarjetas inteligentes y el m'odulo de seguridad en hardware configuran un ``mundo seguro'' que cumple con los est'andares aceptados a nivel mundial. 
    280 
    281 En la etapa de dise~no, los diagramas de casos de uso y actividades sirvieron para obtener una visi'on formal de los requisitos y de los procesos con los que cumplir la aplicaci'on. Estos documentos de dise~no  en el lenguaje UML, permitieron alcanzar de manera m'as r'apida y certera los objetivos que son coincidentes  con la gesti'on real de una AC Ra'iz.
    282 
    283 Al seguir el est'andar X.509 se asegura que los certificados, solicitudes y claves gestionados por la aplicaci'on sean compatibles con el esquema de seguridad basado en un tercero de confianza, y aceptado por gran cantidad de aplicaciones y sitios de comercio y transacciones seguras en internet.
    284 
    285 Para la tarea de  eliminaci'on de fallas las t'ecnicas como la colaboraci'on utilizando herramientas web, la programaci'on en equipos y  las pruebas unitarias y de integraci'on  sirvieron  para los procesos de prevenci'on, notificaci'on, b'usqueda y arreglo de errores, permitiendo adem'as guardar una bit'acora del progreso a la soluci'on a problemas. La implementaci'on de caracter'isticas espec'ificas en funci'on de los requisitos cada vez m'as refinados y particulares que surgieron  en las iteraciones de prototipos probados con usuarios y condiciones reales.
    286 
    287 La combinaci'on de diversos elementos como software, hardware y la configuraci'on de un espacio f'isico adecuado, esto es, que cumpla determinadas reglas para el control de acceso, conforma la infraestructura necesaria para la operaci'on de una AC, incluso que 'esta no sea Ra'iz,  y sea parte de otro nodo de la jerarqu'ia. Las condiciones de seguridad l'ogica y f'isica pueden reproducirse exactamente para los nodos intermedios y los nodos Proveedores de Servicios de Certificaci'on de la ICP, tomando en cuenta el escalamiento.   
     284La puesta en marcha de una AC Raíz supone obligatoriamente contar con una aplicación  que gestione este componente de la infraestructura. En este sentido, éste trabajo mostró el proceso de desarrollo de una aplicación que respondiera a los requisitos particulares de gestión, determinados por el rol de  confianza raíz y última que debe representar la Autoridad.  En función de ello, la  aplicación tiene  un alto grado de especialización, ya que   cuenta con un  mercado relativo de pocos usuarios, si se compara con el mercado de los sistemas de información o aplicaciones de ofimática, y su operación se realiza en condiciones estandándares y específicas.  A pesar de este hecho, para la construcción de la aplicación se integraron varios proyectos disponibles en los repositorios de software libre, que permitió disponer de un criptosistema estándar y suficientemente completo para cumplir con los requisitos descritos en la etapa de dise~no.  La criptografía se utiliza como herramienta para
     285otorgar las tres propiedades (Confidencialidad, Integridad y Disponibilidad) de la seguridad informática a los datos que gestiona la aplicación, y en virtud de ello el hardware criptográfico utilizado como las  tarjetas inteligentes y el módulo de seguridad en hardware configuran un ``mundo seguro'' que cumple con los estándares aceptados a nivel mundial. 
     286
     287En la etapa de dise~no, los diagramas de casos de uso y actividades sirvieron para obtener una visión formal de los requisitos y de los procesos con los que cumplir la aplicación. Estos documentos de dise~no  en el lenguaje UML, permitieron alcanzar de manera más rápida y certera los objetivos que son coincidentes  con la gestión real de una AC Raíz.
     288
     289Al seguir el estándar X.509 se asegura que los certificados, solicitudes y claves gestionados por la aplicación sean compatibles con el esquema de seguridad basado en un tercero de confianza, y aceptado por gran cantidad de aplicaciones y sitios de comercio y transacciones seguras en internet.
     290
     291Para la tarea de  eliminación de fallas las técnicas como la colaboración utilizando herramientas web, la programación en equipos y  las pruebas unitarias y de integración  sirvieron  para los procesos de prevención, notificación, búsqueda y arreglo de errores, permitiendo además guardar una bitácora del progreso a la solución a problemas. La implementación de características específicas en función de los requisitos cada vez más refinados y particulares que surgieron  en las iteraciones de prototipos probados con usuarios y condiciones reales.
     292
     293La combinación de diversos elementos como software, hardware y la configuración de un espacio físico adecuado, esto es, que cumpla determinadas reglas para el control de acceso, conforma la infraestructura necesaria para la operación de una AC, incluso que ésta no sea Raíz,  y sea parte de otro nodo de la jerarquía. Las condiciones de seguridad lógica y física pueden reproducirse exactamente para los nodos intermedios y los nodos Proveedores de Servicios de Certificación de la ICP, tomando en cuenta el escalamiento.   
    288294 
    289295%\appendices
     
    292298
    293299
    294 \emph{AC}: Autoridad de Certificaci\'on; componente de la PKI encargada de guardar de firmar, renovar, revocar las claves de los usuarios o entidades finales.
     300\emph{AC}: Autoridad de Certificación; componente de la PKI encargada de guardar de firmar, renovar, revocar las claves de los usuarios o entidades finales.
    295301
    296302\emph{AR}: Autoridad de Registro; componente de la PKI encargada de validar los recaudos de un PSC o Entidad Final, es decir, su identidad, y generar la solicitud para una firma de Certificados.
    297303
    298 \emph{Entidad Final}: Persona natural o jur'idica  a la que un PSC le expide un certificado digital.
    299 
    300 \emph{PSC}:  Proveedor de Servicios de Certificaci'on Digital; Organizaci'on que mantiene la infraestructura de  nodo de una ICP, y est'a autorizada a expedir certificados a las personas naturales y jur'idicas que soliciten y reunan los recaudos necesarios para obtener un certificado digital.
     304\emph{Entidad Final}: Persona natural o jurídica  a la que un PSC le expide un certificado digital.
     305
     306\emph{PSC}:  Proveedor de Servicios de Certificación Digital; Organización que mantiene la infraestructura de  nodo de una ICP, y está autorizada a expedir certificados a las personas naturales y jurídicas que soliciten y reunan los recaudos necesarios para obtener un certificado digital.
    301307
    302308\emph{PUB}: Publicador; componente de la PKI encargada de mantener accesibles los certificados digitales emitidos por la PKI en medios como portales Web o directorios.
    303309 
    304 \emph{PKI}: Public Key Infrastructure, Infraestructura de clave p\'ublica; es el conjunto formado por software, hardware, y pol\'iticas que asegura en la internet la propiedad de la claves p\'ublicas de los usuarios.
    305 
    306 \emph{HSM}: Hardware Security Module; m\'odulo de seguridad en hardware, equipo f\'isico computacional que contiene funciones criptogr\'aficas, en espec\'ifico funciona para almacenar con un alto nivel de seguridad claves privadas.
     310\emph{PKI}: Public Key Infrastructure, Infraestructura de clave pública; es el conjunto formado por software, hardware, y políticas que asegura en la internet la propiedad de la claves públicas de los usuarios.
     311
     312\emph{HSM}: Hardware Security Module; módulo de seguridad en hardware, equipo físico computacional que contiene funciones criptográficas, en específico funciona para almacenar con un alto nivel de seguridad claves privadas.
    307313
    308314%\bibliography{BibACRaizArticulo}
Note: See TracChangeset for help on using the changeset viewer.