En vista de una pregunta en la lista bugzilla acerca de como esta protegido nuestro certificado raíz, decidí escribir esto y ver si se sugiere algo más que se pueda hacer, o una mejor manera de hacer las cosas.
Actualmente hay 2 servidores, una para las páginas web, y uno para el depósito raíz. El servidor raíz esta conectado al servidor web a través de un cable serial, con un demonio corriendo como no-root en cada puerta, escuchando y enviando la información.
Si la raíz detecta una solicitud incorrecta asume que el servidor web ha sido comprometido y se apaga a si mismo.
Si la ráiz no recibe una respuesta al 'ping' en la linea serial después de un plazo determinado, asume que el servidor de web ha sido comprometido o que el mismo ha sido robado y se apaga.
Fuera del sector de partida, todos los datos residen en una partición encriptada en el servidor base, y solo la intervención manual, entrando la palabra clave, durante el proceso de partida, lo hará partir de nuevo.
Las solicitudes enviadas a la raíz son guardadas en un archivo, para ser procesadas cada cierto periodo (un proceso cron, para los que entiendan). Una vez revisados y firmardos, son retornados al servidor de web. Los procesos son ejecutados por diferentes usuarios internos, el sistema normal en Unix. Por lo tanto, el comprometer(hackear) a los demonios seriales, solo podría, en el PEOR de los casos, causar certificados fraudulentos, pero sin que se pudiese acceder a la raíz.
Porque uso comunicación serial, se preguntan? Bueno, las solicitudes de certificados requiren de poco ancho de banda, y además los sistemas mas simples son menos propensos a fallas, y finalmente ese código esta bastante maduro y bien probado, y esperemos que todos los posibles problemas han sido encontrados y fijados tiempo atrás.
Con los cambios propuestos de certificado raíz, habría una nueva raíz, que firmaría por lo menos 1 sub-raíz. La clave privada (de la raíz) sería guardada en un banco, y la sub-raíz firmaría los certificados, o alternativamente, dos sub-raices, una para los certificados de clientes, otra para los certificados de servidores. La idea final es que si una sub-raíz es comprometida, podría ser revocada y una nueva emitida.
Alternativamente, a medida del progreso, podríamos agregar mas niveles de seguridad, por ejemplo, 4 servidores web comunicandose con 2 servidores intermedios, y hablando con la raíz, a la manera de anillo. Todo esto ocurriría asincrónicamente

![[BIT logo]](/images/bit.png)
![[TUNIX logo]](/images/tunix.png)
![[NLnet logo]](/images/nlnet.png)
![[OAN logo]](/images/oan.png)