<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Negonation Blog &#187; Tecnología</title>
	<atom:link href="http://blog.negonation.com/es/category/tecnologia/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.negonation.com/es</link>
	<description>Justice is ripe for disruption</description>
	<lastBuildDate>Mon, 06 Feb 2012 17:27:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Cómo instalar tu DNI electrónico en Mac OS X</title>
		<link>http://blog.negonation.com/es/como-instalar-un-lector-de-dni-electronico-en-mac-os-x/</link>
		<comments>http://blog.negonation.com/es/como-instalar-un-lector-de-dni-electronico-en-mac-os-x/#comments</comments>
		<pubDate>Fri, 29 May 2009 12:34:32 +0000</pubDate>
		<dc:creator>David García</dc:creator>
				<category><![CDATA[eID]]></category>
		<category><![CDATA[Firma digital]]></category>
		<category><![CDATA[Tecnología]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/?p=840</guid>
		<description><![CDATA[Hacer uso del nuevo DNI electrónico (el eID español) aún no es todo lo fácil que sería deseable. El proceso de instalación difiere ligeramente según el modelo de lector que tengamos y el sistema operativo donde queramos instalarlo. Por ello, abarcar todas las posibles combinaciones de lector y sistema operativo en un único post se [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://es.wikipedia.org/wiki/Espa%C3%B1a" target="_blank"><img src="http://blog.negonation.com/es/wp-content/uploads/2008/03/es.png" alt="es.png" align="right" /></a>Hacer uso del nuevo <a href="http://www.dnielectronico.es" target="_blank">DNI electrónico</a> (el eID español) aún no es todo lo fácil que sería deseable.</p>
<p>El proceso de instalación difiere ligeramente según el modelo de lector que tengamos y el sistema operativo donde queramos instalarlo. Por ello, abarcar todas las posibles combinaciones de lector y sistema operativo en un único post se antoja complicado.</p>
<p>Una vez dispongamos del lector la cosa no está ni mucho menos solucionada. Todavía queda instalar los controladores del lector y los controladores del propio DNIe. Es probable que podamos librarnos del paso de instalar controladores para nuestro lector si éste viene soportado por defecto en el sistema operativo, pero de instalar los drivers del DNI electrónico, a día de hoy, no hay quien nos salve.</p>
<p>De momento, los usuarios que más dolor nos han proyectado son los Mac-eros. Y es que la instalación en Mac OS X es un poco &#8220;tricky&#8221;. Para arrojar un poco de luz a este tema he confiscado un Mac con OS X y he realizado todo el proceso necesario para tener el DNI electrónico funcionando. Por suerte, es un proceso que <a href="http://www.dnielectronico.es/descargas/PKCS11_para_Sistemas_Unix/recomendaciones_instalacion.html" target="_blank">la gente del DNI electrónico ha documentado bastante bien</a>, así que seguiremos sus indicaciones para intentar llegar a buen puerto.</p>
<h3>Descripción del entorno de trabajo</h3>
<ul>
<li><strong>Sistema Operativo:</strong> Mac OS X 10.5 o OS X10.4.x.</li>
<li><strong>Lector probado:</strong> <a href="http://www.c3po.es/ltc31.html" target="_blank">LTC31 (USB)</a> de <a href="http://www.c3po.es" target="_blank">C3PO</a> (<a href="https://www.tractis.com/help/?p=2592&amp;language=es">el que regalamos en Tractis</a>).</li>
<li><strong>Nivel de dolor:</strong> Medio.</li>
<li><strong>Tiempo de instalación:</strong> unos 30 minutos.</li>
</ul>
<h3><a href="http://inza.wordpress.com/chipetera/" target="_blank"><img class="alignright right size-full wp-image-881" title="Queremos ordenadores con chipetera y drivers pre-instalados" src="http://blog.negonation.com/es/wp-content/uploads/2009/05/campana_chipeteras.png" alt="campana_chipeteras" width="120" height="240" /></a></h3>
<h3>Paso 1: Consigue un lector de tarjetas</h3>
<p>El primer gran problema es hacerse con un lector de tarjetas inteligentes (o &#8220;chipetera&#8221;) donde poder utilizar el DNI electrónico. Afortunadamente, este problema cada vez lo es menos. Poco a poco, van apareciendo más lectores en el mercado y a un precio cada vez más competitivo.</p>
<p>Si aún no tienes un lector, mírate <a title="Dónde conseguir un lector" href="https://www.tractis.com/help/?p=3426&amp;language=es">nuestras recomendaciones sobre donde conseguirlos</a>.</p>
<h3>Paso 2: Instala las librerías de OpenSC y los drivers del DNIe</h3>
<p>Este proceso está basado en lo descrito en la <a title="Instalación dnie" href="http://www.dnielectronico.es/descargas/PKCS11_para_Sistemas_Unix/Manual_de_Instalacion_de_Opensc_DNIe_version3_1.pdf">documentación de instalación</a> disponible en el portal del DNI electrónico, concretamente en el punto 3 &#8220;<em>Instalación y configuración de sistemas Mac OS X</em>&#8220;.</p>
<p>El proceso es <em>simple</em>, debemos bajar las librerías de OpenSC y los drivers de DNI electrónico e instalarlos en ese orden:</p>
<ol>
<li><strong>OpenSC</strong> es un conjunto de librerías para el uso de tarjetas inteligentes en ordenadores. Mac OS X ya lleva por defecto un OpenSC, pero éste no funciona demasiado bien con los drivers del DNI electrónico, así que deberemos actualizarlo. Para instalarlo debemos bajar <a title="OpenSC for 10.5" href="http://www.opensc-project.org/files/sca/experimental/sca-0.2.3pre2.dmg" target="_blank">OpenSC para OS X 10.5</a> o <a title="OpenSC for 10.4" href="http://www.opensc-project.org/files/sca/sca-0.2.2.dmg" target="_blank">OpenSC para OS X 10.4</a>. Esta librería se <a title="Instalar aplicaciones en Mac OSX" href="http://guides.macrumors.com/Installing_Applications_in_Mac_OS_X" target="_blank">instala del mismo modo que una aplicación normal</a>. Ejecutaremos el instalador y seguiremos los pasos que nos vaya planteando hasta que se nos informe de que la librería se ha instalado correctamente.</li>
<li><strong>Drivers DNIe</strong>: El siguiente paso es instalar los controladores del DNI electrónico. Para ello, debemos bajarlos de <a title="Drivers DNIe" href="http://www.dnielectronico.es/descargas/PKCS11_para_Sistemas_Unix/opensc.dnie-1.4.4.4.dmg" target="_blank">aquí</a> y también instalarlos del mismo modo que OpenSC. Cuando la instalación acabe nos pedirá reiniciar la máquina, así que le seguimos el rollo y reiniciamos.</li>
</ol>
<h3>Paso 3: Comprueba que todo está en orden</h3>
<p>Hasta aquí está todo sacado casi de manera literal del manual del DNI electrónico. Ahora viene la parte de comprobar que todo está funcionando correctamente. Un diagnóstico rápido pero no muy fiable, son las luces del lector. Con todo instalado y la tarjeta introducida, la luz del lector LTC31 debería ser verde. Si tu luz es roja o si tu lector solo tiene una luz, conviene realizar un diagnostico mas fiable. Para ello, debes ejecutar desde la consola el comando:</p>
<pre><code>
/Library/OpenSC/bin/pkcs15-tool -D
</code></pre>
<p>pkcs15-tool es una herramienta que proporciona OpenSC y que permite, entre otras cosas, mostrar el estado de los lectores y de las tarjetas inteligentes conectadas en el sistema. La opción -D insta a esta utilidad a volcar toda la información de los dispositivos conectados. Antes de ejecutar el comando asegúrate de que el lector esta conectado, que la tarjeta está insertada y que has instalado las librerías OpenSC y Drivers DNIe que tocan para tu sistema operativo.</p>
<p>El resultado de ejecutar este comando nos dará pistas sobre si todo funciona o hay algún tipo de problema con la instalación. Si todo va bien el resultado debería ser algo parecido a esto:</p>
<pre><code>
my-mac:bin user$ ./pkcs15-tool -D
PKCS#15 Card [DNI electrónico]:
Version        : 1
Serial number  : 063AA3BA682276
Manufacturer ID: DGP-FNMT
Flags          : Login required, PRN generation

PIN [PIN1]
Com. Flags: 0x3
ID        : 01
Flags     : [0x211], case-sensitive, initialized, integrity-protected
Length    : min_len:4, max_len:16, stored_len:16
Pad char  : 0x00
Reference : 1
Type      : ascii-numeric
Path      : 3f00

Private RSA Key [KprivAutenticacion]
Com. Flags  : 3
Usage       : [0xC], sign, signRecover
Access Flags: [0x1D], sensitive, alwaysSensitive, neverExtract, local
ModLength   : 2048
Key ref     : 1
Native      : yes
Path        : 3f003f110101
Auth ID     : 01
ID          : 4130363341413342413638323237363230303830323131313531303536

(...)
</code></pre>
<p>Hemos cortado el mensaje porque es muy largo. Puedes <a href="http://blog.negonation.com/es/wp-content/uploads/2009/05/message.txt">ver el mensaje completo aquí</a>. Verás que una serie de mensajes de error avisando de un <em>Security status not satisfied</em> aparecen numerosas veces. No hay de que preocuparse, éstos mensajes son &#8220;normales&#8221;. Si tu resultado no se parece al mensaje anterior y/o  tienes algún mensaje de error tipo : <em>No Readers found</em> o <em>No cards found</em> entonces es que hay algo que no termina de ir bien en la instalación.</p>
<p>Si todo ha salido según lo descrito en el apartado anterior, <a href="https://www.tractis.com/login#certificates">ya puedes utilizar  tu DNI electrónico en Tractis</a>. Podrás autenticarte en la plataforma usando un mecanismo mucho más robusto que el usuario/contraseña y firmar contratos con las máximas garantías de validez legal. Además, el DNIe te abre la puerta a un número creciente de aplicaciones que hacen uso de él, como <a href="http://www.dnielectronico.es/servicios_disponibles/serv_disp_priv.html" target="_blank">banca segura en línea</a> y  <a href="http://www.dnielectronico.es/servicios_disponibles/index.html" target="_blank">trámites con la administración</a> (consulta de datos fiscales, vida laboral, puntos del carnet de conducir, padrón, declaración de la renta, etc).</p>
<h3>One more thing&#8230; Instalando los certificados en Firefox</h3>
<p>Firefox tiene su propio sistema de gestión de certificados, completamente independiente del que dispone el sistema operativo. Por esta razón, una vez que tu sistema esté preparado para utilizar tu DNI electrónico, también deberás decirle a Firefox que puede hacer uso del DNIe.</p>
<p>Los drivers del DNI electrónico incluyen una página html que &#8220;mágicamente&#8221; (utilizando javascript) añaden los certificados de tu DNIe al repositorio de Firefox. Para acceder a esta página solo tienes que abrir desde tu navegador la ruta local</p>
<pre>/Library/OpenSC/Share/web/instala_modulo.htm</pre>
<p>&#8230;y seguir los pasos que te indiquen hasta recibir la confirmación de que los certificados se añadieron de manera satisfactoria.</p>
<p>Este último paso NO es necesario para utilizar tu DNIe en Tractis pero sí que es recomendable para aquellos usuarios que quieran utilizar Firefox y su DNIe en otros portales.</p>
<h3>Conclusiones</h3>
<p>A día de hoy, instalar un DNI electrónico en Mac OS X no es todo lo fácil que cabría esperar de un dispositivo destinado a ser de uso universal. Aún estamos ante una tecnología nueva (fuera de los cículos más tecnológicos)  y es normal que ciertos pasos aún no sean todo lo fáciles e intuitivos que nos gustaría. Por suerte, la gente del DNI electrónico proporciona buenas guías que arrojan mucha luz en el proceso de instalación.</p>
<p>Este post es nuestro granito de arena para favorecer el uso de esta tecnología tan potente entre los usuarios de Mac. Esperamos que os sea útil.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/como-instalar-un-lector-de-dni-electronico-en-mac-os-x/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Usando maven</title>
		<link>http://blog.negonation.com/es/usando-maven/</link>
		<comments>http://blog.negonation.com/es/usando-maven/#comments</comments>
		<pubDate>Thu, 26 Mar 2009 16:24:54 +0000</pubDate>
		<dc:creator>David García</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tecnología]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/?p=562</guid>
		<description><![CDATA[Normalmente no suelo escribir sobre aspectos tecnológicos que no tengan que ver con la firma digital o con el servicio que Tractis presta. Hoy sin embargo me gustaría centrarme en una herramienta muy presente en mi día a día y que me esta haciendo la vida bastante mas fácil: maven. No daré ningún tutorial de [...]]]></description>
			<content:encoded><![CDATA[<p>Normalmente no suelo escribir sobre aspectos tecnológicos que no tengan que ver con la firma digital o con el servicio que Tractis presta.</p>
<p>Hoy sin embargo me gustaría centrarme en una herramienta muy presente en mi día a día y que me esta haciendo la vida bastante mas fácil: <a title="Maven" href="http://maven.apache.org/">maven</a>.</p>
<p>No daré ningún tutorial de como funciona la cosa, porque para eso ya hay muchísima documentación que lo explica bastante mejor de lo que yo lo haría. Explicaré como nos ayuda maven en la gestión de la configuración en nuestros proyectos.</p>
<h3>Un poco de introducción</h3>
<p>El principal problema con el que me encontraba a la hora de gestionar el gran numero de pequeños subsistemas Java que tenemos en el backend de Tractis es que gestionar el ciclo de vida de éstos requiere de muchas tareas repetitivas que pueden ser automatizadas y la inclusión de muchas librerías de terceros.</p>
<p>Para esta automatización usábamos Ant de Apache que nos ayudaba a la gestión de tareas repetitivas durante el desarrollo de nuestros proyectos.</p>
<p><a title="Apache Ant" href="http://ant.apache.org/">Ant</a> es muy bueno para automatizar tareas repetitivas pero la gestión de librerías externas no es todo lo potente que podría ser. La manera común de usar una librería en uno de nuestros proyectos era bajar la versión adecuada, ponerla en un directorio del proyecto e incluirla mediante el <em>classpath</em> en nuestra aplicación.</p>
<p>Esta manera de gestionar las librerías puede funcionar cuando tienes pocos proyectos o los proyectos tienen muy pocas librerías en común. Por el contrario, si cuando buscas una librería en todos tus proyectos obtienes 10 resultados: tienes un problema con la gestión de librerías; y más aun si te paras a ver las distintas versiones de la librería en cada uno de los proyectos.</p>
<p>Es por esto que Ant, pese a que puede ser una alternativa razonable si tienes pocos proyectos, se queda corto conforme vamos teniendo un número considerable de proyectos para gestionar.</p>
<h3>Maven al rescate</h3>
<p>Maven es una tecnología más que asentada y que se usa en la mayoría de proyectos Open Source Java, pero nunca esta de mas reconocer las enormes ventajas que su aplicación nos aporta.</p>
<p>Esta tecnología ayuda a gestionar el ciclo de vida de los proyectos.Para ello se definen las fases del proyecto (compilación, test, empaquetado, despliegue) en un fichero de meta-información llamado <a title="POM" href="http://maven.apache.org/guides/introduction/introduction-to-the-pom.html">POM</a> donde se recogen detalles de las tareas a realizar en cada fase. También se recogen detalles de la naturaleza del proyecto como por ejemplo sus dependencias respecto a librerías de terceros.</p>
<p>Maven permite la gestión automatizada de estas dependencias de librerías de un modo mas que notable. Simplemente es necesario incluir la referencia a la librería dentro del fichero POM así como la versión requerida y maven la bajará del repositorio por defecto (o de otro que se encuentre configurado dentro del POM) y la incluirá en el repositorio local.</p>
<p>Esto facilita la gestión de la configuración muchísimo ya que los proyectos no van engordando con librerías que se encuentran duplicadas a lo largo de nuestro sistema de control de versiones.</p>
<p>Además la gran mayoría de los proyectos Open Source o bien tienen sus librerías dentro del repositorio por defecto de maven o disponen de un repositorio propio.</p>
<h3>En resumen</h3>
<p>Yo en un principio pensaba que con mi ant ya me iba bien pero despues de probar maven te quedas con la misma sensación que tienes con <a title="rubygems" href="http://rubygems.org/">gem</a> en ruby o <a title="apt-get" href="http://www.debian.org/doc/manuals/apt-howto/">apt-get</a> en debian o ubuntu&#8230;¿Como he vivido tanto tiempo sin esto?!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/usando-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tractis se integra con las tarjetas Advantis Crypto de Sermepa</title>
		<link>http://blog.negonation.com/es/tractis-se-integra-con-las-tarjetas-advantis-crypto/</link>
		<comments>http://blog.negonation.com/es/tractis-se-integra-con-las-tarjetas-advantis-crypto/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 07:10:32 +0000</pubDate>
		<dc:creator>David Blanco</dc:creator>
				<category><![CDATA[Anuncios]]></category>
		<category><![CDATA[Firma digital]]></category>
		<category><![CDATA[Tecnología]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/tractis-se-integra-con-las-tarjetas-advantis-crypto/</guid>
		<description><![CDATA[&#8230;o como firmar en Tractis con tu tarjeta de crédito Ya puedes firmar en Tractis con cualquier tarjeta bancaria Advantis Crypto que incluya uno de los certificados electrónicos admitidos en Tractis. ¿Qué es Advantis Crypto? &#8220;Advantis Crypto&#8221; es un sistema operativo de tarjetas inteligentes multiprocesador desarrollado por Sermepa y que cada vez está y estará [...]]]></description>
			<content:encoded><![CDATA[<h3>&#8230;o como firmar en Tractis con tu tarjeta de crédito</h3>
<p align="left"><a href="http://www.sermepa.es/espanol/familiaadvantis.htm" target="_blank"><img src="http://blog.negonation.com/es/wp-content/uploads/2008/06/visa-advantis-crypto.png" alt="visa-advantis-crypto.png" align="right" /></a></p>
<p><strong>Ya puedes firmar en Tractis con cualquier tarjeta bancaria Advantis Crypto</strong> que incluya uno de los <a href="https://www.tractis.com/contracts/932223534" target="_blank">certificados electrónicos admitidos en Tractis</a>.</p>
<h3>¿Qué es Advantis Crypto?</h3>
<p>&#8220;<a href="http://www.sermepa.es/espanol/familiaadvantis.htm" target="_blank">Advantis Crypto</a>&#8221; es un sistema operativo de <a href="http://blog.negonation.com/es/tarjetas-inteligentes-en-europa-introduccion/" target="_blank">tarjetas inteligentes multiprocesador</a> desarrollado por Sermepa y que cada vez está y estará más y más presente en bancos e instituciones.</p>
<p>Como recordareis de un post anterior, <a href="http://blog.negonation.com/es/tarjetas-inteligentes-en-europa-avalancha-de-emv/">la SEPA obliga a los bancos y cajas a migrar todo su parque de tarjetas bancarias</a> de banda magnética a tarjetas inteligentes EMV con chip antes de 2010. La SEPA tiene enormes repercusiones tecnológicas para los bancos, que necesitan tarjetas inteligentes con sistemas operativos capaces de ejecutar múltiples aplicaciones. Las tarjetas Advantis Crypto permiten precisamente esto: ser usadas como tarjeta EMV o como un Dispositivo Seguro de Creación de Firma (DSCF) donde los bancos pueden incluir sus propios certificados, entre otras aplicaciones.</p>
<h3>¿Quién es Sermepa?</h3>
<p>A aquellos que viven en España puede que<a href="http://www.sermepa.es/" target="_blank"> Sermepa</a> no les suene mucho pero seguro que conocen <a href="http://www.servired.es/espanol/indexx.htm" target="_blank">ServiRed</a>, el principal sistemas medios de pago español con 40 millones de tarjetas y más de 30.000 cajeros. Pues bien, Sermepa es el brazo tecnológico de ServiRed y ofrece sus servicios (soluciones tecnológicas, comunicaciones e I+D) a las cien entidades financieras que forman parte de ServiRed.</p>
<h3>¿Por qué debería importarme?</h3>
<p>Muchos bancos están aprovechando la migración de la SEPA para incluir certificados electrónicos en sus tarjetas con chip y, <a href="http://inza.wordpress.com/2007/04/06/tarjetas-emv-como-dscf-dispositivos-seguros-de-creacion-de-firma/" target="_blank">como anunciaba Julián Inza hace algún tiempo</a>, dar así a sus clientes la posibilidad de firmar electrónicamente con sus tarjetas de crédito y débito. En Tractis hemos querido prepararnos desde el principio para este nuevo &#8220;ecosistema&#8221;. Durante las últimas semanas hemos trabajado hombro con hombro con Sermepa para asegurar que, desde hoy, puedas utilizar tu tarjeta Advantis Crypto para firmar en Tractis.</p>
<p>Para terminar, me gustaría apuntar que este movimiento se encuadra dentro de la estrategia de Tractis de convertirse en una <strong>plataforma abierta, neutral y universal</strong>. Un lugar donde puedas utilizar para firmar electrónicamente todos los sistemas operativos, todos los navegadores, todos los certificados electrónicos cualificados y todos los Dispositivos Seguros de Creación de Firma (tarjetas, USBs, etc) existentes. En definitiva, un lugar donde no tengas que preocuparte si tú, o la otra parte, vais a tener problemas para firmar.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/tractis-se-integra-con-las-tarjetas-advantis-crypto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seguridad en Tractis (2): Seguridad en Sistemas</title>
		<link>http://blog.negonation.com/es/seguridad-en-tractis-2-seguridad-en-sistemas/</link>
		<comments>http://blog.negonation.com/es/seguridad-en-tractis-2-seguridad-en-sistemas/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 07:35:14 +0000</pubDate>
		<dc:creator>David García</dc:creator>
				<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[Tractis]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/seguridad-en-tractis-2-seguridad-en-sistemas/</guid>
		<description><![CDATA[Tan importante es la seguridad en los procesos como la seguridad de los sistemas sobre los que dichos procesos corren. Tractis dispone de una infraestructura con las mejores medidas de seguridad física y lógica disponibles en el mercado actualmente. Seguridad física Disponemos de un cluster de servidores redundante alojado por Acens en su datacenter de [...]]]></description>
			<content:encoded><![CDATA[<p>Tan importante es la <a href="http://blog.negonation.com/es/seguridad-en-tractis-1-seguridad-en-procesos/">seguridad en los procesos</a> como la seguridad de los sistemas sobre los que dichos procesos corren. Tractis dispone de una infraestructura con las mejores medidas de seguridad física y lógica disponibles en el mercado actualmente.</p>
<h3>Seguridad física</h3>
<p>Disponemos de un cluster de servidores redundante alojado por <a href="http://www.acens.com/servidores-housing/configuraciones-avanzadas/">Acens</a> en su datacenter de Barcelona (España). Acens es uno de los proveedores españoles líderes en housing y nos proporciona una infraestructura con los máximos niveles de disponibilidad y seguridad, así como acceso a una red troncal propia, multioperador y  con presencia en los puntos de acceso neutro (NAP) de Espanix y Catnix.</p>
<p>Las medidas de seguridad y control de acceso físico incluyen detectores de presencia, proximidad y circuito cerrado de televisión. Los medios físicos de seguridad incluyen sistemas tele-gestionados de protección contra incendios, detección de fugas de agua y combustible.</p>
<p>Gracias a que el servicio corre en nuestros servidores, tenemos control total sobre el código que se ejecuta en la solución final.</p>
<h3>Seguridad de infraestructuras</h3>
<p>Nuestras máquinas esta conectadas entre sí mediante una red privada de alta velocidad administrada únicamente por personal de Tractis y aislada de forma física, no solo del exterior, sino del resto de sistemas del datacenter.</p>
<p>La conexión desde exterior para la provisión de servicio se realiza a través de sistemas de firewall a nivel de red. Además, cada nodo front-end dispone de firewall lógico corriendo dentro del sistema operativo.</p>
<h3>Seguridad en la administración</h3>
<p>El acceso a nuestros sistema con propósito de administración se realiza mediante comunicaciones seguras basadas en SSH sobre TLS. Para ello nuestros administradores disponen de tokens de autenticación basados en certificados X509 protegidos a su vez por contraseña. Las ventajas de este sistema de acceso son:</p>
<ol>
<li>Acceso mucho mas seguro que la autenticación basada en usuario y contraseña.</li>
<li>Acceso que permite la distinción y vinculación de los individuos y sus actividades en el sistema.</li>
</ol>
<h3>Seguridad de datos</h3>
<p>Los sistemas de Tractis estan organizados mediante jerarquías donde los sistemas de proceso de transacciones forman clusters separados de los sistemas encargados de la gestión de nuestras bases de datos.</p>
<p>La comunicación entre las máquinas que sirven contenidos y estos sistemas de gestión de datos se realiza en un entorno seguro donde el canal se asegura mediante el uso de una red privada a nivel físico y encriptación de los canales de comunicación y autenticación de servidores mediante SSL/TLS .</p>
<p>Nuestras bases de datos corren sobre sistemas replicados y cada uno de ellos dispone de raids de discos , ofreciendo así mayor capacidad de servicio y mayor robustez en el manejo de datos ante posibles desastres físicos o lógicos.</p>
<p>Para garantizar la recuperación frente a desastres hacemos back-up de los datos cada noche y mantenemos copias encriptadas de estos back-up en distintas máquinas.</p>
<h3>Seguridad de la Autoridad de Sello de Tiempo (TSA)</h3>
<p>Tractis requiere aplicar &#8220;sellos de tiempo&#8221; en una variedad de situaciones (p.ej: en el instante de validación de la firma de un contrato con el fin de establecer una cota superior del instante de creación de la firma) y para ello dispone de su propia &#8220;Autoridad de Sellado de Tiempo&#8221; (&#8220;Time Stamping Authority&#8221; o &#8220;TSA&#8221;). Para la provisión segura y a prueba de fallos de dicho servicio, Tractis dispone de:</p>
<ol>
<li><strong>Hardware Security Modules</strong>: Tractis utiliza dispositivos HSM (o &#8220;<a href="http://en.wikipedia.org/wiki/Hardware_Security_Module">Hardware Security Module</a>&#8220;) con un doble fin, tanto como dispositivos de firma segura como con fines de aceleración criptográfica en la generación de firmas electrónicas. En concreto utilizamos <a href="http://www.safenet-inc.com/products/pki/lunaSA.asp">Luna SA de Safenet</a> que cumplen <a href="http://en.wikipedia.org/wiki/Evaluation_Assurance_Level">EAL 4</a> + <a href="http://en.wikipedia.org/wiki/CEN_Workshop_Agreement">CWA 14169</a> y que por tanto ofrecen las máximas garantías en la generación de sellos de tiempo:
<ul>
<li>Para la administración de estos dispositivos HSM requerimos autenticación de doble factor (token + pin code) y, por tanto, presencia física en el datacenter.</li>
<li>Aún contando con presencia física es imposible extraer la clave con la que realizamos la firma dado que se encuentra almacenada en la memoria interna &#8220;<em>tamper proof</em>&#8221; del propio dispositivo. En otras palabras, la clave no puede ser exportada para su uso fraudulento en otros sistemas.</li>
<li>Finalmente, para poder controlar el acceso al HSM empleamos el concepto &#8220;<em>trusted path</em>&#8220;, con lo que sólo las máquinas que han sido dadas de alta mediante procesos de administración presenciales pueden hacer uso del dispositivo.</li>
</ul>
</li>
<li><strong>Fuente segura de tiempo</strong>: Para la obtención del tiempo utilizado en la confección de los sellos de tiempo empleamos fuentes fiables de tiempo. Tractis dispone de un servidor de tiempo NTP (o <a href="http://en.wikipedia.org/wiki/Network_Time_Protocol">Network Time Protocol</a>) de primer nivel (o <a href="http://en.wikipedia.org/wiki/Network_Time_Protocol#Clock_strata">stratum 1</a>) que obtiene su referencia a partir de un receptor GPS (o <a href="http://en.wikipedia.org/wiki/Gps">Global Positioning System</a>). El sistema utiliza un reloj hardware que permite conocer el tiempo UTC (o <a href="http://en.wikipedia.org/wiki/Coordinated_Universal_Time">Coordinated Universal Time</a>) con una precisión dentro del microsegundo. Este reloj se mantiene sincronizado cada segundo con las señales de referencia procedentes de varios satélites de la constelación Navstar, que constituye el alma del sistema GPS, y que son visibles desde la ubicación geográfica del servidor.</li>
</ol>
<p>Con esto termina la serie de dos posts dedicada a la &#8220;Seguridad en Tractis&#8221;. Esperamos que esta información haya resuelto muchas dudas. Si nos hemos dejado algo en el tintero o hay algún tema que te interesa pero no hemos tocado, no dudes en dejarnos un comentario o <a href="mailto:info@tractis.com" target="_blank">enviarnos un email</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/seguridad-en-tractis-2-seguridad-en-sistemas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seguridad en Tractis (1): Seguridad en Procesos</title>
		<link>http://blog.negonation.com/es/seguridad-en-tractis-1-seguridad-en-procesos/</link>
		<comments>http://blog.negonation.com/es/seguridad-en-tractis-1-seguridad-en-procesos/#comments</comments>
		<pubDate>Thu, 19 Jun 2008 08:25:50 +0000</pubDate>
		<dc:creator>David García</dc:creator>
				<category><![CDATA[Seguridad]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[Tractis]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/seguridad-en-tractis-1-seguridad-en-procesos/</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[<blockquote class="especial"><p>Hoy comenzamos una serie de dos posts dedicada a explicar, con total transparencia, las medidas de seguridad que empleamos actualmente en Tractis.</p>
<p>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.</p>
<p>Este primer post de la serie se centra en la &#8220;Seguridad en Procesos&#8221;, mientras que el próximo (y último) post de la serie, se centra en la &#8220;Seguridad en Sistemas&#8221;.</p></blockquote>
<p>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.</p>
<p>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.</p>
<h3>Seguridad en la creación de contratos</h3>
<p>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.</p>
<p>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 <em>&#8220;sanitización&#8221;</em> 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.</p>
<h3>Seguridad en las transacciones</h3>
<p>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:</p>
<ol>
<li>Todas las transacciones (no solo el proceso de inicio de sesión sino <em>todas</em> 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 <em>&#8220;snifado&#8221;</em> de red.</li>
<li>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.</li>
</ol>
<h3>Seguridad en la firma de contratos</h3>
<h4>Firmas en cliente</h4>
<p>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.</p>
<p>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.</p>
<h4>Firmas electrónicas cualificadas</h4>
<p>En Europa, la <a href="http://www.dnielectronico.es/marco_legal/directiva_1999_93_CE.html">Directiva 1999/93/CE</a> 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:</p>
<ul>
<li>         <em>Firma electrónica avanzada</em>: 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.</li>
<li>         <em>Firma electrónica cualificada</em>: aquella &#8220;<em>firma electrónica avanzada</em>&#8221; 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.</li>
</ul>
<p>Todas las firmas utilizadas en Tractis para la firma de contratos con &#8220;Tractis Score 5&#8243; (el nivel de firma más alto que reconocemos) tienen la consideración de firma electrónica cualificadas (o &#8220;Reconocidas&#8221;) y, por tanto, son equivalentes a firma manuscrita.</p>
<h4>Validación de firmas (SVA)</h4>
<p>Tractis valida las firmas una vez entran en el sistema y <em>sólo las acepta si éstas son consideradas válidas</em>, tanto por la ley  (validez jurídica) como por el cliente (validez semántica). De esta tarea se encarga la &#8220;Autoridad de Validación Semántica&#8221; (&#8220;Semantic Validation Authority&#8221; o &#8220;SVA&#8221;) 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 <a href="http://en.wikipedia.org/wiki/Digital_Signature_Services">DSS</a>, <a href="http://en.wikipedia.org/wiki/XML_Signature">XMLDSig</a>, <a href="http://en.wikipedia.org/wiki/XAdES">XAdES</a> 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.</p>
<p>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 “<em>la batería de tests definitiva en validación de certificados</em>” por su excelente calidad, es la llamada <a href="http://csrc.nist.gov/groups/ST/crypto_apps_infra/pki/pkitesting.html">PKITS</a> que pone a disposición pública el <a href="http://csrc.nist.gov/">NIST</a>. El NIST o “<em>National Institute of Standards and Technology</em>” 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 “<a href="http://csrc.nist.gov/">         <em>NIST &#8211; Computer Security Division</em>       </a>” y la <a href="http://www.nsa.gov/">NSA</a> (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 “<a href="http://csrc.nist.gov/groups/ST/crypto_apps_infra/documents/PKITS.pdf">Path Validation Testing Program</a>” diseñada para garantizar un cumplimiento exquisito de las especificaciones <a href="http://en.wikipedia.org/wiki/X.509">X.509</a> y <a href="http://www.ietf.org/rfc/rfc3280.txt">RFC3280</a>. <strong>Tractis supera satisfactoriamente el 100% de tests que “<em>PKITS &#8211; Path Validation Testing Programs</em>” establece.</strong></p>
<p>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:</p>
<ol>
<li>         <a href="http://blog.negonation.com/es/validacion-de-firmas-en-tractis-1-validacion-de-certificados/">Validación de firmas en Tractis (1): Validación de certificados</a>.</li>
<li>         <a href="http://blog.negonation.com/es/validacion-de-firmas-en-tractis-2-validacion-de-firmas/">Validación de firmas en Tractis (2): Validación de firmas</a>.</li>
<li>         <a href="http://blog.negonation.com/es/validacion-de-firmas-en-tractis-3-validacion-a-prueba-de-fallos/">Validación de firams en Tractis (3): Validación a prueba de fallos</a>.</li>
</ol>
<h4>Gestión de evidencias generadas por la validación de firmas</h4>
<p>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 &#8220;Gestor de Evidencias&#8221; 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.</p>
<h3>Seguridad en la preservación de contratos (LTA)</h3>
<p>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 &#8220;Archivo de Larga Duración&#8221; (&#8220;Long Term Archive&#8221; o &#8220;LTA&#8221;).</p>
<p>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 &#8220;Archivo de Larga Duración&#8221; 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.</p>
<p>&#8211;</p>
<p>Próximo (y último) post de la serie:  <a href="http://blog.negonation.com/es/seguridad-en-tractis-2-seguridad-en-sistemas/">Seguridad en Tractis (2): Seguridad en Sistemas</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/seguridad-en-tractis-1-seguridad-en-procesos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validación de firmas en Tractis (3): Validación a prueba de fallos</title>
		<link>http://blog.negonation.com/es/validacion-de-firmas-en-tractis-3-validacion-a-prueba-de-fallos/</link>
		<comments>http://blog.negonation.com/es/validacion-de-firmas-en-tractis-3-validacion-a-prueba-de-fallos/#comments</comments>
		<pubDate>Thu, 01 May 2008 23:01:31 +0000</pubDate>
		<dc:creator>David García</dc:creator>
				<category><![CDATA[Firma digital]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[Tractis]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/validacion-de-firmas-en-tractis-3-validacion-a-prueba-de-fallos/</guid>
		<description><![CDATA[Introducción En posts anteriores hemos desgranado parte de los procesos que llevamos a cabo para poder validar las firmas electrónicas que se generan dentro de Tractis. En este último post de la serie voy a concentrarme en los riesgos derivados de equivocarse en dicha validación, la importancia de las baterías de tests, para acabar centrándome [...]]]></description>
			<content:encoded><![CDATA[<h3>Introducción</h3>
<p>En <a href="http://blog.negonation.com/es/validacion-de-firmas-en-tractis-1-validacion-de-certificados/">posts</a> <a href="http://blog.negonation.com/es/validacion-de-firmas-en-tractis-2-validacion-de-firmas/" target="_blank">anteriores</a> hemos desgranado parte de los procesos que llevamos a cabo para poder validar las firmas electrónicas que se generan dentro de Tractis.</p>
<p>En este último post de la serie voy a concentrarme en los riesgos derivados de equivocarse en dicha validación, la importancia de las baterías de tests, para acabar centrándome en una de ellas: la batería de tests PKITS del NITS para validación de certificados.</p>
<h3>Validar firmas electrónicas no es tarea para pusilánimes</h3>
<p>Nuestro trabajo de desarrollo goza de una criticidad especial ya que se trata de implementar procesos donde se busca la preservación de datos e identidad de partes en procesos de firma.</p>
<p>Están en juego relaciones contractuales de compraventa, reclutamiento, control de calidad, operaciones financieras, suministro, inversión, partnerships o prestación de servicios, por poner unos pocos ejemplos. Contratos de los que dependen la operativa,  reputación, estrategia, supervivencia financiera y, por qué negarlo, los &#8220;sueños&#8221; de las partes. Cada firma esconde muchas horas de trabajo y negociaciones previas y desencadena consecuencias a posteriori con un impacto real y visible en la vida de personas y empresas.</p>
<p>Semejante responsabilidad es una carga enorme. Hay que ser especialmente rigurosos para poder asegurar que todo funciona como debería hacerlo y solo hay una manera de conseguirlo:</p>
<h3>Tests, tests y más tests</h3>
<p>Testear es un proceso clave en el desarrollo de software de calidad. El realizar un testeo riguroso y de calidad puede marcar la diferencia entre un producto excelente y otro mediocre y mal acabado.</p>
<p>El software que compone una infraestructura de firma digital no solo no escapa a estas apreciaciones sino que, dada su complejidad y criticidad, debe hacer especial énfasis en procesos de testeo.</p>
<p>Testear de principio a fín una <a href="http://blog.negonation.com/es/un-adelanto-de-la-api-de-tractis/">infraestructura como la de Tractis</a> es una tarea en estado de perfeccionamiento y mejora contínuos. Cada elemento de la infraestructura (Autoridad de Atributos -AA-, Autoridad de Sellado de Tiempo -TSA-, Archivo de Larga Duración -LTA-, etc) requiere distintos enfoques de testeo. Solo la Autoridad de Validación Semántica -SVA- incluye múltiples componentes: unos validan firmas criptográficamente, otros  miran la adecuación de la firma del punto de vista sintáctico comprobando que la información contenida en la misma es suficiente y correcta &#8230; y, como no, componentes que <a href="http://blog.negonation.com/es/validacion-de-firmas-en-tractis-1-validacion-de-certificados/">validan el certificado o certificados</a> que intervienen en la misma. Una infraestructura con múltiples elementos, cada elemento con varios componentes, cada componente con sus propia batería de tests.</p>
<p>Para ejemplificar uno de los procedimientos que hemos seguido a la hora de comprobar que nuestra infraestructura funciona de manera correcta, ilustraremos el testeo del componente de validación de certificados.</p>
<h3>Validando al validador: Los tests PKITS del NIST</h3>
<p>Implementar un validador de certificados no es tarea fácil. Por un lado tenemos una serie de excelentes documentos RFC que nos explicitan el comportamiento esperado exacto de este tipo de componentes. Por otro lado, no son documentos triviales de implementar y su análisis requiere una atención máxima al detalle.</p>
<p>Una vez desarrollado el software que plasma en código los algoritmos definidos en el RFC 3280, surge la pregunta interesante: ¿Lo hemos hecho bien?.</p>
<p>Hay multitud de situaciones descritas y casos particulares que una buena batería de tests de validación de certificados debería tener en cuenta para poder dar garantías suficientes de que el componente es robusto y consistente con la especificación del RFC. El construir esta batería requiere de un análisis minucioso de la especificación y de encontrar ejemplos y contraejemplos que validen que el software responde de manera coherente a todos los diferentes casos derivados de la casuística de las entradas. Afortunadamente existen baterías de este tipo ya diseñadas y disponibles de manera pública.</p>
<p>Una de estas baterías, la que la mayoría de los expertos consideran &#8220;la batería de tests definitiva en validación de certificados&#8221; por su excelente calidad, es la llamada <a href="http://csrc.nist.gov/groups/ST/crypto_apps_infra/pki/pkitesting.html" title="PKITS">PKITS</a> que pone a disposición pública el <a href="http://csrc.nist.gov/" target="_blank" title="NIST">NIST</a>. El NIST o “<em>National Institute of Standards and Technology</em>” 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 “<a href="http://csrc.nist.gov/" target="_blank"><em>NIST &#8211; Computer Security Division</em></a>” y la <a href="http://www.nsa.gov/" target="_blank">NSA</a> (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 &#8220;<a href="http://csrc.nist.gov/groups/ST/crypto_apps_infra/documents/PKITS.pdf" target="_blank">Path Validation Testing Program</a>&#8221; diseñada para garantizar un cumplimiento exquisito de las especificaciones <a href="http://en.wikipedia.org/wiki/X.509" target="_blank">X.509</a> y <a href="http://www.ietf.org/rfc/rfc3280.txt" target="_blank">RFC3280</a>.</p>
<p>Nosotros llevamos a cabo este testeo como parte de las baterías de pruebas de nuestro <em>backend</em> de validación de firma y estamos orgulloso de anunciar que, desde la semana pasada:</p>
<blockquote><p><strong>Tractis supera satisfactoriamente la totalidad de tests que &#8220;<em>PKITS &#8211; Path Validation Testing Programs</em>&#8221; establece.</strong></p></blockquote>
<p>Esto no es sencillo. De hecho, no hay muchas implementaciones de validadores de certificados que pasen la totalidad de la casuística definida en PKITS. La superación de estos tests es el resultado de un trabajo duro durante los últimos dos años y nos otorga confianza de que estamos actuando diligentemente cuando prestamos servicios de firma digital a nuestros clientes.</p>
<p>Finalmente, quiero aprovechar para agradecer a <a href="http://csrc.nist.gov/staff/rolodex/cooper_david.html" target="_blank">David Cooper</a>, <em>Computer Scientist</em> del NIST, por su valiosa ayuda a la hora de pulir las últimas aristas necesarias para superar el 100% de los tests y reiterar que PKITS es solo una pequeña parte (adecuación al RFC 3280) de una estrategia global de tests que incluye la validación de la adecuación a <a href="http://inza.wordpress.com/2006/05/21/ts-101-903-xades/" target="_blank" title="XAdES">XAdES</a>, <a href="http://www.oasis-open.org/specs/index.php#dssv1.0" target="_blank">DSS</a>, <a href="http://www.ietf.org/rfc/rfc3161.txt" target="_blank" title="TSA">RFC 3161</a> (cada uno merecedor de su propia serie de posts) y demás estándares empleados en la construcción del <em>backend</em> de Tractis.</p>
<p>Con este post termina la serie &#8220;Validación de firmas en Tractis&#8221;. Esperamos que haya sido de vuestro interés.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/validacion-de-firmas-en-tractis-3-validacion-a-prueba-de-fallos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Validación de firmas en Tractis (2): Validación de firmas</title>
		<link>http://blog.negonation.com/es/validacion-de-firmas-en-tractis-2-validacion-de-firmas/</link>
		<comments>http://blog.negonation.com/es/validacion-de-firmas-en-tractis-2-validacion-de-firmas/#comments</comments>
		<pubDate>Wed, 30 Apr 2008 11:34:29 +0000</pubDate>
		<dc:creator>David García</dc:creator>
				<category><![CDATA[Firma digital]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[Tractis]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/validacion-de-firmas-en-tractis-2-validacion-de-firmas/</guid>
		<description><![CDATA[Introducción En el primer post de esta serie dedicada a la &#8220;Validación de firmas en Tractis&#8221;, comentamos que el proceso de validar una firma es bastante complejo porque requiere la validación de numerosos elementos. Nos concentramos en explicar el más importante de ellos (pero no el único): la &#8220;validación del certificado con el que se [...]]]></description>
			<content:encoded><![CDATA[<h3>Introducción</h3>
<p>En el <a href="http://blog.negonation.com/es/validacion-de-firmas-en-tractis-1-validacion-de-certificados/">primer post de esta serie dedicada a la &#8220;Validación de firmas en Tractis&#8221;</a>, comentamos que el proceso de validar una firma es bastante complejo porque requiere la validación de numerosos elementos. Nos concentramos en explicar el más importante de ellos (pero no el único): la &#8220;validación del certificado con el que se realiza la firma&#8221;.</p>
<p>Explicamos:</p>
<ol>
<li>Por qué debe validarse el certificado en el momento de la firma (si no validas el certificado utilizado para firmar, no te enterarás de si ha sido revocado, robado o falsificado).</li>
<li>Los principales fases para validar un certificado correctamente (1. construcción del path del certificado y 2. validación del path).</li>
<li>Los principales recursos que describen cuales son las comprobaciones y como deben realizarse (RFC3280).</li>
</ol>
<p>Ahora que hemos descrito con cierto grado de detalle las operaciones a realizar para poder validar un certificado, en este segundo post, iremos un paso más allá. Describiremos en qué consiste &#8220;validar una firma&#8221;, los desafíos que supone y como una &#8220;Autoridad de Validación Semántica&#8221; responde a estos desafíos.</p>
<h4>Validación de Firmas: La importancia del Sello de Tiempo</h4>
<p>Para poder validar una firma electrónica necesitamos la firma en si, el documento firmado (en caso de que éste no este contenido como parte de ésta) y el momento del tiempo en el cual fue realizada la firma.</p>
<p align="left">A vista de pájaro, una validación básica de firma require:</p>
<ol>
<li><strong>Validación criptográfica</strong>: validar la no alteración del contenido mediante algoritmos criptográficos de verificación de firma digital,</li>
<li><strong>Validación de certificado</strong>: verificar el estado del certificado del firmante en el momento de la firma, y</li>
<li><strong>Determinación del tiempo de la firma</strong>: conocer con el mayor grado de exactitud y certeza el tiempo en el cual fue realizada la firma.</li>
</ol>
<p align="left">No vamos a hablar del primer punto de <a href="http://en.wikipedia.org/wiki/XML_Signature" title="Validación criptográfica">validación criptográfica</a> ya que intervienen algoritmos complejos que no aportan demasiado a un discurso de alto nivel como el que nos ocupa. Solo indicar que se persigue garantizar que el contenido no ha sido alterado. Asimismo, el proceso de validación de certificados ya lo describimos con un detalle razonable en el <a href="http://blog.negonation.com/es/validacion-de-firmas-en-tractis-1-validacion-de-certificados/">post anterior</a>.</p>
<p align="left">Vamos a centrarnos en el proceso de determinación del tiempo de firma, algo que puede llevarse a cabo de diferentes maneras pero en el que todas esas maneras tienen algo en común: alguien debe decirnos cuando ocurrió la firma. En nuestro caso, el tiempo de firma viene acotado por un &#8220;sello de tiempo&#8221; sobre la firma.</p>
<p align="left">El <a href="http://es.wikipedia.org/wiki/Sellado_de_tiempo" title="Sello de tiempo">sello de tiempo</a> no es más que una firma (otra más) que protege el contenido sobre el que se aplica (en nuestro caso, la firma del contrato) y que además contiene un instante de tiempo. La conjunción de ambas cosas nos permite conocer de manera fidedigna cuando fué realizada la firma. Tractis realiza una validación de la firma justo después de firmar y añade un sello de tiempo para preservar ese instante.</p>
<p>Aunque quizás pueda parecer que no aporta demasiado al proceso de validación, esta coordenada temporal es clave. Nos permite averiguar si el certificado utilizado para firmar era válido en el momento de realización de la firma, independientemente del estado actual del certificado. En otras palabras, aunque nuestro certificado haya caducado o sido revocado <em>hoy</em>, las firmas realizadas con él <em>hasta hoy</em> (en que cambia de estado), deben ser consideradas válidas.</p>
<p>Dado que el sello de tiempo es una firma en sí misma, también debe ser validado aplicando los mismos criterios que aplicamos a cualquier otra firma.</p>
<p>En Infraestructura de Clave Pública (PKI), el ente encargado de realizar todas estas comprobaciones  se denomina &#8220;Autoridad de Validación&#8221;. Todas las comprobaciones que hemos mencionado (validaciones criptográficas, de certificado y de sellos de tiempo) dan una idea de la complejidad de su tarea.</p>
<h4>Desafíos: ¿Esta firma es válida?</h4>
<p>Uno podría pensar que la pregunta de si una firma es válida o no se responde siempre con una afirmación absoluta. Decidir si la firma ha sido criptográficamente alterada se hace con un cálculo matemático que solo tiene dos posibles resultados: el contenido ha sido alterado o no ha sido alterado. ¿No es cierto?. Pues no, no es tan sencillo.</p>
<blockquote><p><strong>La respuesta sobre si una firma es válida o no puede variar según quien realice la comprobación</strong>.</p></blockquote>
<p>Esto puede sonar chocante y sin sentido&#8230; ¿como puede una firma ser válida para mi pero invalida para el vecino si es la misma cosa y seguimos los mismos criterios y algoritmos de validación?. Pues puede y, de hecho, tiene todo el sentido ya que no todo el mundo tiene el mismo concepto de lo que es válido o no lo es.</p>
<p>Veamos un ejemplo: Imaginad que tenemos una misma Autoridad de Validación que da servicios a varias instituciones. En este escenario cualquier conjunto de firmas será válido o invalido para todos los usuarios. Imaginad ahora que uno de los clientes que consume los servicios de esa Autoridad de Validación solamente quiere aceptar una serie de certificados concretos (p.ej: solo certificados de Autoridades de Certificación alemanas) o solo una série de algoritmos (p.ej: claves más fuertes que supongan mayores garantías de integridad). Más aún, sigamos imaginando ahora que uno de los clientes de esa Autoridad de Validación requiere de certificados y algoritmos diferentes en función del proceso de contratación o la cuantía involucrada. Tiene sentido: un acuerdo por la compra de un CD no requiere las mismas garantías que un acuerdo por la compra de una empresa.</p>
<p>Aunque la Autoridad de Validación diga que la firma es válida desde el punto de vista técnico, no lo es desde el punto de vista del conjunto de reglas que el cliente ha definido. Estamos pasando de la &#8220;simple&#8221; firma de un mensaje criptográfico a &#8220;algo más&#8221; donde la validez depende de la naturaleza del contenido firmado.</p>
<p>Estamos añadiendo &#8220;<u>semántica</u>&#8221; a la validación.</p>
<h4>Bienvenidos a Tractis: Validación Semántica de Firmas</h4>
<p>Cuando decimos que una Autoridad de Validación es semántica, queremos decir que permite a sus usuarios crear diferentes tipos de reglas de validación para validar distintos tipos de documentos firmados, independientemente de la configuración por defecto de la que disponga el servicio en si.</p>
<p>Normalmente la validación suele darse mediante unos mecanismos técnicos estándares que suelen dar un resultado concreto para una solicitud de validación determinada. Es decir, muchas Autoridades de Validación actuales no pueden observar casos particulares dependiendo de quien solicite la validación.</p>
<p>Tractis da respuesta a los desafíos mencionados a través de nuestra &#8220;Autoridad de Validación Semántica&#8221; o &#8220;SVA&#8221;, uno de los componentes de la <a href="http://blog.negonation.com/es/un-adelanto-de-la-api-de-tractis/">infraestructura back-end de Tractis</a>. La SVA de Tractis se encarga tanto la validación técnica como de la validación semántica de cada firma.  El que Tractis soporte certificados de diferentes Autoridades de Certificación de diversos paises no significa que nuestros clientes deban aceptarlas todas como válidas. Nosotros realizamos recomendaciones sobre los distintos grados de seguridad y garantía de cada método de firma pero nuestros usuarios conservan la libertad (y el poder) para decidir que consideran válido y que no para cada tipo de contrato.</p>
<p>Actualmente, el componente semántico de la Autoridad de Validación de Tractis está solo disponible para grandes cuentas pero, siguiendo la filosofía de Tractis de &#8220;todos disfrutan del mismo nivel de seguridad y funcionalidad&#8221;, pronto lo pondremos a disposición de todos los usuarios, particulares y pymes.</p>
<p>Como podeis imaginar, añadir semántica a la validación incorpora un nivel de complejidad (y utilidad) sin precedentes. Gestionar dicho servicio y garantizar su correcto funcionamiento se convierte en el auténtico desafío. Como lo conseguimos en Tractis es el tema del próximo, y último, post de esta serie.</p>
<p>&#8211;</p>
<p>Próximo post: <a href="http://blog.negonation.com/es/validacion-de-firmas-en-tractis-3-validacion-a-prueba-de-fallos/">Validación de firmas en Tractis (3): Validación a prueba de fallos</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/validacion-de-firmas-en-tractis-2-validacion-de-firmas/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Validación de firmas en Tractis (1): Validación de certificados</title>
		<link>http://blog.negonation.com/es/validacion-de-firmas-en-tractis-1-validacion-de-certificados/</link>
		<comments>http://blog.negonation.com/es/validacion-de-firmas-en-tractis-1-validacion-de-certificados/#comments</comments>
		<pubDate>Mon, 28 Apr 2008 18:16:37 +0000</pubDate>
		<dc:creator>David García</dc:creator>
				<category><![CDATA[Firma digital]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[Tractis]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/validacion-de-firmas-en-tractis-1-validacion-de-certificados/</guid>
		<description><![CDATA[Hoy Lunes 28 de Abril de 2008 marca un hito importante en el roadmap de Tractis. Tenemos el placer de anunciar oficialmente que Tractis supera la totalidad de tests PKITS del NIST. El NIST o &#8220;National Institute of Standards and Technology&#8221; es la agencia del gobierno estadounidense dedicada a garantizar el cumplimiento de estándares y [...]]]></description>
			<content:encoded><![CDATA[<blockquote class="especial"><p>Hoy Lunes 28 de Abril de 2008 marca un hito importante en el roadmap de Tractis. Tenemos el placer de anunciar oficialmente que <strong>Tractis supera la totalidad de tests PKITS del NIST</strong>.</p>
<p>El <a href="http://csrc.nist.gov/">NIST</a> o &#8220;<em>National Institute of Standards and Technology</em>&#8221; es la agencia del gobierno estadounidense dedicada a garantizar el cumplimiento de estándares y favorecer la interoperabilidad entre distintos fabricantes. Las pruebas diseñadas por la &#8220;<a href="http://csrc.nist.gov/" target="_blank"><em>NIST &#8211; Computer Security Division</em></a>&#8221; y la <a href="http://www.nsa.gov/" target="_blank">NSA</a> (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. La semana pasada Tractis superó con éxito el 100% de la <a href="http://csrc.nist.gov/groups/ST/crypto_apps_infra/pki/pkitesting.html" target="_blank">batería de tests PKITS del NIST</a>, diseñados para garantizar un cumplimiento exquisito de las especificaciones X.509 y <a href="http://www.ietf.org/rfc/rfc3280.txt" target="_blank">RFC3280</a>.</p>
<p>Para celebrarlo, vamos a dedicar esta semana a una serie de tres posts cuyo objetivo es explicar (1) conceptos básicos de validación de certificados, (2) el desafío que supone la validación de firmas electrónicas y  (3) algunas de las técnicas que utilizamos en Tractis para garantizar una validación perfecta y a prueba de fallos.</p></blockquote>
<h3>Introducción</h3>
<p>En Tractis ofrecemos un servicio web que permite a particulares y empresas firmar contratos 100% online y con la misma eficacia jurídica que la firma manuscrita. Para ello empleamos tecnologías de firma digital que garantizan la integridad del documento, la identidad de las partes y la no repudiación futura de los compromisos adquiridos por los firmantes.</p>
<p>Nuestra plataforma no sólo permite un firmado de contratos sin más, sino que <strong>antes de añadir cualquier firma al contrato la validamos para evitar cualquier tipo de irregularidad</strong> en el proceso de firma. El responsable de realizar este proceso en nuestro <em>back-end</em> es un elemento al que denominamos &#8220;Autoridad de Validación Semántica&#8221; (SVA o Semantic Validation Authority). La SVA de Tractis valida desde aspectos criptográficos a temporales y, por supuesto, valida que el certificado empleado para realizar la firma es apto para ello.</p>
<p>Como el proceso completo de validación de la firma es demasiado complejo para explicar en un solo post (personalmente diría incluso que es demasiado complejo, a secas), en este primer post nos centraremos en el proceso de validar el certificado con el cual se ha realizado la firma.</p>
<h3>Validación de certificados</h3>
<p>Para que exista &#8220;firma electrónica reconocida&#8221; (equivalente a firma manuscrita), la legislación europea no requiere que se valide el certificado electrónico con el que se realiza la firma <em>en el mismo momento de la firma</em>. Sin embargo, en Tractis siempre lo hacemos. No es ninguna tontería. Imaginad una empresa que entrega un certificado electrónico a un empleado para que firme contratos electrónicos en representación de la compañía. Ahora imaginad que esa empresa despide al empleado y revoca su certificado. Si se utilizasen herramientas de contratación online que no validan online el estado del certificado, el ex-empleado podría engañar a terceros y utilizar el certificado para firmar en nombre de la empresa <em>¡incluso a pesar de estar despedido!</em>. Las pérdidas podrían ser cuantiosas. No en Tractis. En Tractis no se realiza ninguna firma electrónica reconocida sin antes validar online en tiempo real el estado del certificado. Esto es así para todos los certificados que admitimos, sean del país que sean. Y, ni siquiera haciendo esto, hemos terminado nuestro trabajo.</p>
<p>Mucha gente piensa que validar un certificado consiste simplemente en lo que hemos comentado: consultar, en el momento de la firma, el estado del certificado a la Autoridad de Certificación que lo emitió  y averiguar  si el certificado es válido y no ha sido revocado. Nada más lejos de la realidad. Validar un certificado de una manera ortodoxa no es algo sencillo. Validar que el certificado no este &#8220;expirado&#8221; o mirando una CRL o consultando un OCSP para ver si está &#8220;revocado&#8221; es sólo una pequeña parte del trabajo.</p>
<p>El proceso de validar un certificado con garantías suficientes es bastante mas complejo, ya que hay que tener en cuenta la validación de todos los elementos relacionados con el certificado como certificados de Autoridades de Certificación, <a href="http://en.wikipedia.org/wiki/Certificate_revocation_list" target="_blank">listas de revocación</a> (CRL) o mensajes <a href="http://en.wikipedia.org/wiki/OCSP" target="_blank">OCSP</a> que deben ser a su vez validados de manera análoga.</p>
<p>El porque de tener que validar todos estos componentes deriva de que el encargado de validar el certificado no suele ser el mismo que el emisor de dicho certificado. Nos encontramos entonces con que el validador debe confiar en la información emitida por un tercero para poder emitir un veredicto respecto al certificado a validar. No obstante, antes de poder utilizar esta información para poder emitir un veredicto, ésta debe ser validada. Debemos comprobar que nos hayamos ante información confiable: que no ha sido alterada y que es adecuada para efectuar la validación del certificado en el instante de tiempo en el cual éste debe ser validado. Y es que el momento en el cual se valida el certificado es un punto clave a la hora de efectuar todo este proceso ya que el componente temporal afecta enormemente al proceso de validación. No es lo mismo validar un certificado en el momento actual, que hace 5 años o que de aquí a 5 años.</p>
<p>Por ello, y por poner un ejemplo sencillo, en el caso de una firma no podemos simplemente validar el certificado en la actualidad sino que debemos determinar de manera fidedigna cuando fue realizada la firma y validar el certificado en ese momento. Veamos un ejemplo: si firmé mi hipoteca y al año siguiente me robaron mi <a href="http://blog.negonation.com/es/tarjetas-inteligentes-en-europa-avalancha-de-e-id/">e-ID</a> (sea el que sea: <a href="http://www.dnielectronico.es/">DNIe</a> español, <a href="http://eid.belgium.be/en/navigation/12000/index.html" target="_blank">beID</a> belga, <a href="http://www.cartaodocidadao.pt/">Cartão de Cidadão</a> portugués, Carta d&#8217;dentitá elettronica italiana, <a href="http://www.buergerkarte.at/">Bürgerkarte</a> austriaco, <a href="http://www.fineid.fi/en" target="_blank">FINEID</a> finlandés, <a href="http://www.pass.ee/2.html" target="_blank">ID-Card</a> estonio&#8230;) y lo anulé, no me gustaria que todas las firmas que hice antes de ese momento (incluyendo mi hipoteca) sean consideradas a partir de ese momento como invalidas, ¿no?.</p>
<p>Aparte de las consideraciones ya comentadas hay además multitud de detalles críticos como la comprobación de longitud de paths, espacios de nombres admitidos, extensiones críticas aceptadas o no, firmas de la información de revocación, etc&#8230; que deben ser tenidos en cuenta.</p>
<p>Para simplificar, abstrayéndonos un poco de toda esta ingente cantidad de procesos que deben llevarse a cabo, el proceso de validación de un certificado se divide en dos grandes partes: (1) la construcción del <em>path</em> de certificación y (2) la validación del mismo.</p>
<h3>La necesidad de construir un path&#8230; y validarlo</h3>
<p>Para validar un certificado, ya sea como parte una validación de firma o validándolo de manera aislada (por ejemplo para logearse en un portal mediante el uso de <a href="http://en.wikipedia.org/wiki/Secure_Sockets_Layer" title="TLS">TLS</a>), es necesario <a href="http://www.ietf.org/rfc/rfc4158.txt" title="Certificate path building">contruir todo su &#8220;<em>certification path</em>&#8220;</a> y <a href="http://www.ietf.org/rfc/rfc3280.txt" title="Certificate path validation">validarlo.</a></p>
<p>El concepto de &#8220;path&#8221; viene determinado por el como las Autoridades de Certificación emiten sus certificados. Cada <a href="http://en.wikipedia.org/wiki/X.509#Certificates" title="X509 Certificates">certificado de entidad final </a>(el que emiten a personas o entidades ) contiene una serie de atributos tales como &#8220;nombre&#8221;, &#8220;organización&#8221;&#8230; que hacen referencia al sujeto que es objeto de la emisión del mismo. Además, cada certificado incluye una clave pública que será empleada en el proceso de validación criptográfica de toda firma realizada con la clave privada asociada a ese certificado.</p>
<p>Este certificado es una representación <em>off-line</em> de estos datos en la que un tercero (tu banco, tu gobierno&#8230;) nos garantiza la veracidad de estos atributos para este individuo. Por ejemplo con la emisión de un certificado donde figure mi nombre, apellidos, empresa y DNI, la autoridad que emite el certificado garantiza que esos atributos son constituyentes de mi identidad y además los asocia a una clave pública.</p>
<p>Como hemos comentado un certificado no es más que un mensaje codificado según una serie de reglas establecidas, pero como es un método de transmisión de información <em>off-line</em> debe haber alguna manera de garantizar la autenticidad de los datos que figuran en el mismo. De esta necesidad de preservar la integridad de los datos viene el requerimiento de que todo certificado debe estar firmado por la autoridad de certificación que lo emite. Así, deberemos validar criptograficamente el certificado de entidad final para garantizar su autenticidad y no alteración, utilizando para ello la clave pública del certificado de la Autoridad de Certificación (CA) emisora.</p>
<p>Este certificado de CA emisora puede estar emitido a su vez por una CA de grado superior y esta por otra hasta llegar hasta la llamada &#8220;CA raíz&#8221;, un certificado de CA que esta emitido por el mismo y como tal esta firmado con su propia clave privada.</p>
<p>Para que todo el proceso sea consistente estos &#8220;certificados raíz&#8221; deben ser conocidos por el validador por medios fuera de banda. ¿Os suena el repositorio de certificados que Windows lleva para que os podáis conectar a servidores vía https sin que salgan advertencias de seguridad?, pues es algo así.</p>
<p>Más aún, una vez construido el path, este debe ser validado teniendo en cuenta un gran número de consideraciones relativas a restricciones sobre el mismo o validar el estado del certificado de entidad final así como de las CAs involucradas (sin contar la raíz) contra CRLs, OCSPs u otros métodos de comprobación del estado de la revocación.</p>
<p>Y aún hay más, CRLs y OCSPs son objetos firmados con lo cual para poder emplearlos y ser confiables deben ser validados criptográfica y sintácticamente así como validar el certificado con el cual han sido firmados de manera similar a la comentada para los de entidad final: construyendo su path y validándolo.</p>
<p>Como veis, en la validación de un certificado intervienen una serie de actores adicionales como CAs e información de revocación que debe ser tenida en cuenta, procesada y validada haciendo que la complejidad y el coste de validar un certificado explote.</p>
<p>Afortunadamente las normas <a href="http://www.ietf.org/rfc/rfc3280.txt" title="Certificate path validation">RFC 3280</a> especifican de manera detallada como debe llevarse a cabo el proceso de validación del path de certificados. Así, este procedimiento queda detallado en un documento y todos los validadores que, como Tractis, dispongan de una implementación que respete RFC3280 validarán siguiendo el mismo conjunto de reglas.</p>
<h3>Conclusiones</h3>
<p>El proceso de <strong>validar una firma electrónica es un proceso complejo</strong> que se puede dividir en diferentes procesos complementarios que validan las diferentes partes de la firma: la criptográfica, la relativa al tiempo de firma &#8230; y, como una de las destacadas, la relativa a la validación del certificado con el que se realiza la firma.</p>
<p>Hemos descrito este proceso a vista de pájaro y de forma resumida pero con el suficiente grado de detalle como para demostrar que <strong>conocer el estado de un certificado de manera diligente es mucho más complicado que consultar a un servicio OCSP de estado de certificados o bien mirar las entradas de una CRL</strong>.</p>
<p>También hemos visto que, por suerte para los que construimos infraestructuras de este tipo, <strong>existen especificaciones de lo que debe y no debe hacerse en dicho procesos</strong>. Estas especificaciones hacen posible que dispongamos de implementaciones de validación coherentes, respetuosas con estándares abiertos e interoperables entre los diferentes fabricantes.</p>
<p>&#8211;</p>
<p>Próximo post:  <a href="http://blog.negonation.com/es/validacion-de-firmas-en-tractis-2-validacion-de-firmas/">Validación de firmas en Tractis (2): Validación de firmas</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/validacion-de-firmas-en-tractis-1-validacion-de-certificados/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mamá, quiero una central nuclear</title>
		<link>http://blog.negonation.com/es/mama-quiero-una-central-nuclear/</link>
		<comments>http://blog.negonation.com/es/mama-quiero-una-central-nuclear/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 23:05:10 +0000</pubDate>
		<dc:creator>David García</dc:creator>
				<category><![CDATA[Firma digital]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[Tractis]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/mama-quiero-una-central-nuclear/</guid>
		<description><![CDATA[Contratación vs Desarrollo in-house En las empresas constantemente se tiene que decidir entre diversas opciones para poder minimizar costes y maximizar beneficios. Así debemos elegir entre alquilar oficinas o comprarlas, externalizar o no ciertas actividades de nuestro negocio: con outsourcing, offshoring y demás estrategias que, al fin y al cabo, lo que hacen es ayudar [...]]]></description>
			<content:encoded><![CDATA[<h3>Contratación vs Desarrollo in-house</h3>
<p>En las empresas constantemente se tiene que decidir entre diversas opciones para poder minimizar costes y maximizar beneficios. Así debemos elegir entre alquilar oficinas o comprarlas, externalizar o no ciertas actividades de nuestro negocio: con outsourcing, offshoring y demás estrategias que, al fin y al cabo, lo que hacen es ayudar a desarrollar la actividad de la empresa sin que ésta deba someterse a aumentos y descensos en el volumen de plantilla o inmuebles para dar respuesta a la demanda del mercado.</p>
<p>En el campo de la informática suele ocurrir el encontrarnos con este tipo de decisiones en procesos de desarrollo de software: el típico  ¿lo hacemos en la casa o lo contratamos fuera?. Pero una vez termina éste ciclo no es común llevar emplear estrategias similares para el resto de los campos de la actividad informática.</p>
<p>En el terreno de las infraestructuras donde corren los servicios de una compañía  no suelen darse este tipo de pensamientos, ya que la criticidad de los mismos lleva a pensar que no es una buena idea delegar estos, ni tan siquiera una parte de ellos, en un tercero porque tenemos la percepción de que perdemos el &#8220;control total&#8221;.</p>
<p>Actualmente, cada vez más, y sobretodo en el sector de las empresas de internet, se va percibiendo que no es nfecesario disponer de unas infraestructuras propias que tengan todo lo que necesitamos para correr nuestras aplicaciones. De hecho, que incluso no necesitemos ni de una infraestructura propia para poder desarrollar nuestra actividad.</p>
<p>Realmente si transportamos el problema a un equivalente mas cotidiano cuando le damos al botón para encender la luz queremos que se ilumine la bombilla y nos da igual donde se produjo la electricidad, simplemente queremos que la cosa funcione. No necesitamos tener una central nuclear en casa para poder encender una bombilla, pero si tenemos una empresa y la electricidad es clave para desarrollar nuestra actividad, seguramente queramos mantener la disponibilidad de éste recursos a prueba de fallos. En estos casos sería más práctico en pensar en tener varios puntos de fallo con diversos proveedores más que en ser nuestro propio proveedor.</p>
<h3>Utility computing: Informática como el agua o la electridad</h3>
<p>Este pensamiento lleva años siendo plasmado por los grandes del mercado que quieren hacer que la informática se convierta en una <em>comodity</em> más para las empresas, como pueden ser la luz, el gas o el agua.</p>
<p>Actualmente ciertos componentes como la computación o el almacenamiento se están <em>comoditizando</em> con un grado de madurez suficiente para que puedan ser empleados por las empresas en entornos de producción, cosa que es una gran noticia ya que permite aplicar <a href="http://es.wikipedia.org/wiki/Econom%C3%ADa_de_escala">economías de escala</a> a las empresas que los prestan y dar un mejor  servicio a un mejor precio.</p>
<p>Así podemos tener nuestra aplicación corriendo en <a href="http://www.amazon.com/gp/browse.html?node=201590011">servidores virtuales</a> en los que paguemos según el consumo que tengamos en mismos, nuestros <em>backups</em> o contenidos a servir pueden estar en servidores de <a href="http://www.amazon.com/gp/browse.html?node=16427261">storage remoto</a>, con lo cual evitamos gastos en  dispositivos de copia de seguridad o almacenamiento (el coste de un buen sistema de copias de seguridad puede llegar a ser realmente elevado). Podemos servir ciertos contenidos empleando <a href="http://en.wikipedia.org/wiki/Content_delivery_network">redes de distribución de contenidos</a> (dando la imagen de tener un data center próximo al cliente) y así poco a poco externalizar ciertos servicios infrastructurales en proveedores especializados reduciendo costes y mejorando la calidad de nuestro servicio.</p>
<p>Incluso podemos ir más allá del planteamiento de sólo usar a terceros en servicios sobre los que corre nuestra plataforma, podríamos adaptar ciertos componentes de ésta para que sean prestados por terceros proveedores especializados. Así evitaríamos el coste de su desarrollo, mantenimiento y explotación, que en ciertos casos puede ser una parte importante del presupuesto de la aplicación, optimizable y externalizable si no es un valor añadido de nuestras aplicaciones.</p>
<h3>Firma electrónica bajo demanda</h3>
<p>Dentro de éste tipo de componentes susceptibles de ser prestados por terceros especializados podemos encontrar los enmarcados dentro de la categoría de <a href="http://en.wikipedia.org/wiki/Public_key_infrastructure">infrastructuras de clave pública</a>  y <a href="http://en.wikipedia.org/wiki/Digital_signature">firma digital</a>, cada vez más vitales en las aplicaciones y sobretodo en las del mundo internet pero que disponen de la  bastante complejidad para que su desarollo no sea un tema trivial.</p>
<p>En este campo la tendencia suele ser o hacerse el software ad-hoc a partir de librerías ya existentes, o instalar productos ya desarrollados, sean soluciones open source o comerciales de terceros pero explotados en nuestros sistemas. El problema es que estos desarrollos, instalaciones y mantenimientos de éste tipo de soluciones no suelen ser muy asequibles.</p>
<p>Están solo al alcance de empresas que disponen de enormes partidas de presupuestos para estos fines e, incluso en estos casos, carecen del know-how o no presupuestan el mantenimiento y mejora continua de la nueva infraestructura. El resultado son despliegues que no representan el coste total de propiedad (CTO), que pronto quedan obsoletos, que se implantan de forma defectuosa o, pero aún, que nunca llegan a ser implantados.</p>
<p>El campo de las infraestructuras de clave pública fue el primero de los dos en mover ficha y hoy en día ciertas actividades relativas a las mismas, como por ejemplo el rol de emitir certificados, ha quedado limitado a un pequeño conjunto de proveedores especializados dado que es una actividad que requiere de un elevado desembolso y esfuerzo para ser llevada a cabo.</p>
<p>Las infraestructuras de firma digital van un poco más rezagadas a la hora de hacer visible su complejidad y así como casi nadie hoy en día se plantea construir su propia autoridad de certificación, si es común en cambio el plantearse el crear una autoridad de firma digital (ya sea para la creación, validación, sellado o almacenado).</p>
<p>Una buena idea en éste aspecto es aplicar un criterio similar al tomado con las autoridades de certificación y delegar los servicios de firma digital en un tercero pudiéndonos centrar así nosotros en desarrollar nuestra actividad de negocio.</p>
<p>De hecho cada vez son más las instituciones públicas y empresas privadas en nuestro país que ponen a disposición terceros plataformas que ofrecen servicios de infraestructura de clave pública y de firma digital abriendo un nuevo mercado de la actividad informática y reforzando la idea de que éste tipo de trabajos críticos debe estar centralizado en proveedores especializados que aprovechando economías de escala puedan ayudar a optimizar costes y maximizar la calidad del producto final.</p>
<p>Nosotros creemos que ésto es una gran idea ya que el mundo de la infraestructura de clave pública y la firma digital debería ser algo que las empresas  pudieran integrar en sus aplicaciones sin necesidad de grandes desembolsos y esfuerzos como ha pasado hasta ahora. Somos conscientes de lo complicado que puede llegar a ser solucionar éste problema, porque nosotros también hemos estado ahí y por eso el que  nos decidieramos a abrir nuestros servicios de firma digital y ofrecerlos como servicios a terceros, porque en internet la seguridad debería ser una comodity, no un lujo.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/mama-quiero-una-central-nuclear/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Decisiones técnicas en Tractis</title>
		<link>http://blog.negonation.com/es/decisiones-tecnicas-en-tractis/</link>
		<comments>http://blog.negonation.com/es/decisiones-tecnicas-en-tractis/#comments</comments>
		<pubDate>Sun, 27 Jan 2008 22:50:36 +0000</pubDate>
		<dc:creator>Ernesto Jiménez</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[Tractis]]></category>

		<guid isPermaLink="false">http://blog.negonation.com/es/decisiones-tecnicas-en-tractis/</guid>
		<description><![CDATA[La elección del framework: Rails y Java En su día ya comentamos nuestra decisión de usar Ruby on Rails para desarrollar Tractis y lo que nos alegrábamos de haber escogido Rails en lugar de Java. También mencionamos que, debido a las carencias de Ruby, habíamos optado por emplear servicios web en Java para el backend [...]]]></description>
			<content:encoded><![CDATA[<h2 id="la_eleccin_del_framework_rails_y_java">La elección del framework: Rails y Java</h2>
<p>En su día ya comentamos <a href="http://blog.negonation.com/es/tractis-y-ruby-on-rails/" title="Tractis y Ruby on Rails">nuestra decisión</a> de usar Ruby on Rails para desarrollar Tractis y lo que nos alegrábamos de haber escogido Rails en lugar de Java. También mencionamos que, debido a las carencias de Ruby, habíamos optado por emplear servicios web en Java para el backend de firma digital.</p>
<p>Entonces nos alegrábamos mucho sobre la decisión que habíamos tomado al escoger Rails, y todavía lo hacemos. El framework nos ha dado muchísima agilidad y trabajar con él es divertido. Quién sigue el blog ha visto que incluso participamos en los eventos que podemos sobre Rails, con lo que resulta bastante evidente nuestra satisfacción con la herramienta.</p>
<p>Ahora bien <em>¿qué ha sido del desarrollo que hemos hecho en Java?</em></p>
<p>Releyendo aquel post parece que estamos desarrollando en Java porque no hay más remedio. Que si hubiésemos tenido las librerías necesarias en Ruby ahora no tendríamos código Java y seríamos aun más felices. Con la aparición de JRuby hay quien nos pregunta si no preferiríamos tener la aplicación en JRuby on Rails y tener así acceso a las librerías que necesitamos de Java, eliminando nuestra necesidad de los servicios web.</p>
<p>Sin embargo, aquella decisión que tomamos no fue solo sobre frameworks, sino que también consistió en una decisión sobre el diseño de la aplicación.</p>
<h2 id="la_eleccin_de_diseo_arquitectura_de_servicios_web">La elección de diseño: arquitectura de servicios web</h2>
<p>Como decíamos, cuando escogimos framework, también escogimos arquitectura. Decidíamos que preferíamos desarrollar varias aplicaciones específicas que una que lo englobase todo, al más puro estilo UNIX.</p>
<p>La verdad es que, volviendo la mirada atrás, nos alegramos mucho de haber optado por Rails para el frontend, pero nos alegramos mucho más de haber optado por una arquitectura de servicios web. Así que, igual que entonces os contamos las ventajas que habíamos tenido al escoger Rails, ahora queremos compartir con vosotros las ventajas de esta decisión de diseño.</p>
<h3 id="otra_buzzword">Otra buzzword</h3>
<p>Este tipo de arquitecturas está de moda y tienen buzzword propia: SOA (Service Oriented Architeqture). Así ya podrás tener tu aplicación <em>SOA</em>, hecha en <em>Rails</em> y con mucho <em>AJAX</em>.</p>
<p>Si por el contraro, eres como nosotros y prefieres <strong>motivos de verdad</strong>. Sigue leyendo <img src='http://blog.negonation.com/es/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h3 id="calidad">Calidad</h3>
<p>Enlazando con lo que comentamos antes, la idea de diseñar aplicaciones más pequeñas y específicas que conformen un todo sigue la línea de la filosofía UNIX.</p>
<p>Si nos paramos a pensarlo, es esa filosofía la que hace que UNIX sea tan potente y nos guste tanto. Tienes un montón de programas específicos: ls, grep, sed, awk&#8230; Esos programas hacen cosas muy específicas, pero las hacen muy bien.</p>
<p>Al trabajar con aplicaciones específicas que tienen que resolver un problema concreto podemos centrarnos mucho mejor en el problema en cuestión. Podríamos pensar que para esta labor de aislamiento de tareas basta con desarrollar librerías en lugar de aplicaciones, y estaríamos en lo cierto. No obstante, el desarrollar aplicaciones distintas conectadas por servicios web nos permite tener una arquitectura totalmente agnóstica sobre lenguajes, frameworks y pilas de despliegue. Si más adelante resulta que con C++ o .NET tenemos mejores herramientas para la validación de firmas podemos migrar únicamente esa aplicación sin que el resto de nuestro sistema lo perciba. <strong>Desarrollando aplicaciones específicas podemos emplear las mejores herramientas en cada caso</strong></p>
<p>Además de la calidad en la implementación, nosotros encontramos una mejora en la calidad a la hora de dar servicio, por un lado por motivos de escalabilidad que comentaremos en el punto siguiente, y por otro ante la posibilidad de redesplegar o desactivar un servicio en concreto sin que esto implique parar el resto de los servicios.</p>
<h3 id="escalabilidad">Escalabilidad</h3>
<p>Cuando nos referimos a escalabilidad hablamos tanto de escalabilidad de recursos técnicos como humanos.</p>
<p>Por parte de los recursos técnicos es muy simple. En un principio puedes empezar con todos los servicios en una misma máquina, si alguno te supone un cuello de botella, pues le pones una máquina dedicada. Es más, si el servicio es un share-nothing, puedes poner tantas máquinas como necesites para dar un buen servicio. Los que trabajéis en Rails esto lo tendréis claro <img src='http://blog.negonation.com/es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Entrando en el terreno humano, una arquitectura de servicios nos da más fórmulas para escalar nuestro desarrollo, permitiendo desde la gestión de un único equipo, hasta la asignación de un equipo por servicio. De este modo, cuando nuestro proyecto crece y requiere de más desarrolladores no es necesario que tengamos un equipo cada vez más grande, sino que podemos mantener varios equipos más pequeños y ágiles que se encarguen de uno o más servicios. </p>
<h2 id="en_futuros_posts">En futuros posts</h2>
<p>En futuros posts esperamos comentaros más detalles sobre la arquitectura que tenemos, qué servicios la componen y para qué sirven.</p>
<p>Un saludo!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.negonation.com/es/decisiones-tecnicas-en-tractis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

