Seguridad en Tractis (1): Seguridad en Procesos

Hoy comenzamos una serie de dos posts dedicada a explicar, con total transparencia, las medidas de seguridad que empleamos actualmente en Tractis.

Nuestros clientes utilizan Tractis para implementar procesos de contratación extremadamente sensibles que suponen el manejo de información confidencial como la identidad de las partes, el contenido de lo acordado y la firma del contrato. En Tractis somos conscientes de semejante responsabilidad y aspiramos continuamente a ofrecer la máxima seguridad posible, tanto en las transacciones llevadas a cabo como en los sistemas sobre los que se corren dichas transacciones.

Este primer post de la serie se centra en la “Seguridad en Procesos”, mientras que el próximo (y último) post de la serie, se centra en la “Seguridad en Sistemas”.

Los procesos de contratación permiten que las partes lleguen a un acuerdo, materializado en el contenido de un contrato y formalizado con la firma del mismo.

Para llevar a cabo estos procesos de contratación ofrecemos un sistema transaccional al que los clientes pueden conectarse mediante su navegador y que les brinda las funcionalidades de creación, negociación y firma de contratos. Los peligros y amenazas sobre dichos procesos son de naturaleza diversa, al igual que las medidas de seguridad utilizadas para contrarrestarlos.

Seguridad en la creación de contratos

Los contratos confeccionados entre las partes deben reflejar los acuerdos a las que éstas llegan de una manera exacta y fidedigna. Sin embargo, en los documentos digitales es relativamente fácil aplicar transformaciones sobre el contenido que hagan que ciertos datos no sean visibles al firmante. Por poner un ejemplo, podrían añadirse transformaciones que hicieran que ciertas cláusulas de un contrato no fuesen mostradas cuando se leyera pero que si estuvieran presentes dentro del contenido para el que se solicita la firma.

Tractis trabaja con XHTML y utiliza un editor de contratos especialmente diseñado para evitar el peligro arriba mencionado. Todos los textos cortados y pegados en nuestro editor así como las importaciones de documentos (desde Word, OpenOffice, etc.) son sometidos a un proceso de “sanitización” previo al guardado de cada versión del contrato. Este sanitizado elimina todos los elementos susceptibles (estilos, fuentes, etc) que puedan afectar a la representación visual del contrato.

Seguridad en las transacciones

Tractis ofrece medidas de seguridad en las transacciones que hacen uso de algoritmos criptográficos que hacen que sea imposible, sin antes romper dichos algoritmos, que terceros maliciosos puedan usurpar la identidad de las partes o interceptar los datos que estas intercambian:

  1. Todas las transacciones (no solo el proceso de inicio de sesión sino todas las transacciones) realizadas en Tractis emplean el protocolo HTTPS sobre un canal seguro. De esta forma, los datos intercambiados entre el navegador del cliente no pueden ser interceptadas por terceras partes mediante técnicas de “snifado” de red.
  2. Tractis permite diferentes métodos de autenticación. Los usuarios pueden autenticarse mediante el uso del tradicional usuario y contraseña o, en caso requerir un nivel de seguridad mayor, mediante mecanismos mas robustos como autenticación de doble factor con certificados electrónicos almacenados en tarjetas inteligentes (p.ej: DNIe). El administrador de cada cuenta business puede decidir que mecanismos de autenticación están disponibles para los usuarios de su cuenta y cuales no.

Seguridad en la firma de contratos

Firmas en cliente

Todas las firmas generadas en Tractis y basadas en dispositivos de creación de firma segura, se realizan en el cliente. Es decir, la aplicación Java de firma debe de interactuar con la tarjeta del cliente y por lo tanto con sus claves. Como esta tarjeta se trata de un dispositivo de creación seguro de firma las claves nunca salen de la misma y no viajan al servidor con lo cual la aplicación de firma es ejecutada siempre en el sistema del cliente.

Con objeto de garantizar que el componente de firma es íntegro y no ha sido alterado por terceros, se realiza la firma del código de dicho componente. De esta forma, el navegador del cliente, antes de emplear el componente de firma, comprueba que este no ha sido alterado. Para ello verifica que el componente está firmado y que la firma es válida. Esta medida garantiza que el código que corre en el cliente es íntegro y confiable y evita alteraciones que pudieran realizar accesos maliciosos a las claves tales como la realización automatizada firmas fuera del control del usuario.

Firmas electrónicas cualificadas

En Europa, la Directiva 1999/93/CE del Parlamento europeo y del Consejo, de 13 de Diciembre de 1999, establece el marco comunitario para firmas electrónicas. La Directiva define firma electrónica como datos en forma electrónica a los cuales se adjunta o se asocia de forma lógica otros datos electrónicos que pueden ser utilizados para identificar al firmante. La directiva distingue entre dos tipos de firmas:

  • Firma electrónica avanzada: aquella que (a) está enlazada de forma única al firmante, (b) es capaz de identificar al firmante, (c) es creada utilizando medios que el firmante puede mantener bajo su control, y (d) está enlazada a los datos de tal forma que cualquier cambio subsiguiente a los datos es detectable.
  • Firma electrónica cualificada: aquella “firma electrónica avanzada” que está basada en un certificado cualificado que ha sido creado por un dispositivo-seguro-de-creación-de-firma tal como define la directiva.

Todas las firmas utilizadas en Tractis para la firma de contratos con “Tractis Score 5″ (el nivel de firma más alto que reconocemos) tienen la consideración de firma electrónica cualificadas (o “Reconocidas”) y, por tanto, son equivalentes a firma manuscrita.

Validación de firmas (SVA)

Tractis valida las firmas una vez entran en el sistema y sólo las acepta si éstas son consideradas válidas, tanto por la ley (validez jurídica) como por el cliente (validez semántica). De esta tarea se encarga la “Autoridad de Validación Semántica” (“Semantic Validation Authority” o “SVA”) de Tractis. Este componente garantiza que si el certificado, las claves o la firma generada no son válidas no serán añadidas al contrato. Para ello el sistema valida las firmas teniendo en cuenta los criterios y algoritmos definidos en normativas internacionales al respecto de firmas avanzadas y certificados. En concreto, Tractis realiza todas las comprobaciones detalladas en los procesos de validación de firma descritos en DSS, XMLDSig, XAdES y se adhiere a todos los criterios definidos en los RFCs de Certificate Path Building y Certificate Path Validation, para validación del certificado con el que se realiza la firma.

Con carácter previo a cualquier nueva subida de código al entorno de producción, Tractis realiza baterías de tests para asegurar que cubre la multitud de situaciones descritas y casos particulares que se pueden producir en la validación de certificados. Una de estas baterías, la que la mayoría de los expertos consideran “la batería de tests definitiva en validación de certificados” por su excelente calidad, es la llamada PKITS que pone a disposición pública el NIST. El NIST o “National Institute of Standards and Technology” es la agencia del gobierno estadounidense dedicada a garantizar el cumplimiento de estándares y favorecer la interoperabilidad entre distintos fabricantes. Las pruebas PKITS diseñadas por la “ NIST – Computer Security Division ” y la NSA (Agencia de Seguridad Nacional) son utilizadas por las distintas administraciones del gobierno federal estadounidense como un método fiable para medir la calidad de los distintos despliegues PKI del gobierno. Dentro del PKITS, el caso que nos compete es la parte referente a “Path Validation Testing Program” diseñada para garantizar un cumplimiento exquisito de las especificaciones X.509 y RFC3280. Tractis supera satisfactoriamente el 100% de tests que “PKITS – Path Validation Testing Programs” establece.

Para una explicación en profundidad del proceso de validación de firmas en Tractis, de la conveniencia de validar certificados en el momento de la firma aún cuando la ley no lo exige y de las capacidades de validación semántica de nuestra SVA, recomendamos la lectura de los siguientes posts:

  1. Validación de firmas en Tractis (1): Validación de certificados.
  2. Validación de firmas en Tractis (2): Validación de firmas.
  3. Validación de firams en Tractis (3): Validación a prueba de fallos.

Gestión de evidencias generadas por la validación de firmas

Todo el proceso de validación de firmas descrito en el punto anterior genera una serie de evidencias derivadas de los elementos empleados a la hora de aceptar o no una firma como válida (por ejemplo, certificados o información de revocación -CRL u OCSP-). Dichas evidencias son almacenadas y preservadas en el “Gestor de Evidencias” de Tractis. Este sistema garantiza el almacenamiento y preservación de la integridad en el tiempo de las evidencias generadas, de forma que puedan ser recuperables mediante procesos fuera de línea para su uso en caso de que surjan procesos periciales o disputas.

Seguridad en la preservación de contratos (LTA)

Una vez finalizado el proceso de contratación, Tractis se encarga de conservar los datos críticos generados en la plataforma (contratos, firmas, evidencias) y garantizar su integridad a través del tiempo mediante nuestro “Archivo de Larga Duración” (“Long Term Archive” o “LTA”).

Este sistema de almacenamiento de contenidos se diferencia de otros sistemas de almacenamiento disponibles en varios aspectos. El principal aspecto diferencial es que en un “Archivo de Larga Duración” la integridad de los datos no depende de auditorias que demuestren la imposibilidad de alterar el sistema sino que cada elemento almacenado en el sistema es capaz de demostrar su integridad de manera independiente. Cada uno de los registros del Archivo de Larga Duración se halla protegido mediante una cadena de sellos de tiempo que garantiza que dicho elemento no ha sido alterado desde su introducción en el Archivo.

Próximo (y último) post de la serie: Seguridad en Tractis (2): Seguridad en Sistemas

Por David García
Guardado en: Seguridad, Tecnología, Tractis | Sin comentarios » | 19 de Junio de 2008

Más entradas en Negonation Blog