En dos palabras: porque podemos.
El proyecto OpenBSD está ubicado en Canadá.
La Lista sobre Controles a la Exportación de Canadá no impone ninguna restricción significativa a la exportación de software criptográfico, y es incluso más explícita sobre la exportación de software de libre disponibilidad. Marc Plumb ha hecho un estudio para comprobar las leyes sobre criptografía.
Por tanto el proyecto OpenBSD ha integrado criptografía en muchas partes del sistema operativo. Una condición «sine qua non» que exigimos del software criptográfico que usamos es que sea de dominio público y licencias decentes. No hacemos uso directo de criptografía con patentes restrictivas. También exigimos que provenga de países con leyes sobre la exportación útiles, ya que no deseamos quebrantar las leyes de ningún país. Los componentes criptográficos que usamos hoy en día fueron escritos en Argentina, Australia, Canadá, Alemania, Grecia, Noruega, y Suecia.
Cuando creamos revisiones de las versiones de OpenBSD o "snapshots" construimos los binarios para éstas en países libres, para asegurarnos de que los fuentes y binarios que ponemos a disposición de los usuarios están libres de toda sospecha. En el pasado hemos compilado nuestras versiones de binarios en Canadá, Suecia y Alemania.
OpenBSD sale con Kerberos IV incluido. El código base que usamos es el de la versión exportable de Suecia, basada en KTH. Nuestros fuentes del entorno gráfico X11 han sido ampliados para el uso de Kerberos IV. Soporte para Kerberos V aparecerá en 2.000; pero de momento no existe una versión exportable y libre de Kerberos V.
OpenBSD fue el primer sistema operativo que incluía IPSEC.
Hemos incluido IPSEC desde el lanzamiento de OpenBSD 2.1 en 1.997.
Nuestra implementación de IPSEC integrada en el núcleo,
con aceleración de hardware basada en una variedad de
tarjetas, y nuestro dæmon libre ISAKMP, se usa como una de las
máquinas para las pruebas de conformidad de IPSEC realizadas por
VPNC.
La criptografía es hoy un importante medio para mejorar la seguridad en un sistema operativo. La criptografía que se usa en OpenBSD se puede clasificar según varios aspectos, descritos a continuación.
¿Qué es lo que la mayor parte de los usuarios hacen después de instalar OpenBSD? Instalar Secure Shell (ssh(1)) del árbol de portes o de los paquetes conseguidos por FTP. Hasta ahora así ha sido.
Desde el lanzamiento de la versión 2.6, OpenBSD contiene OpenSSH, una versión de ssh totalmente libre y sin los gravámenes de patentes. OpenSSH interaccionaba con la versión 1 de ssh y además añadía muchas características:
De forma escueta, en OpenBSD tomamos una versión con licencia libre de ssh y la hicimos al estilo OpenBSD. La patente para los EE.UU. de RSA la evitamos ofreciendo un método fácil para descargar e instalar un paquete con RSA activado, que contenga versiones de las bibliotecas compartidas de libcrypto y libssl. Estos paquetes están basados en OpenSSL(1). Las personas que vivan fuera de los EE.UU. pueden usar con total libertad el código patentado de RSA, mientras que aquellas personas que vivan dentro de los EE.UU. lo pueden usar con libertad siempre y cuando no sea con fines lucrativos. Parece ser que las compañías (no individuos) dentro de los EE.UU. también pueden usar las bibliotecas de RSA, siempre y cuando no sea con fines lucrativos.
De este modo casi todos obtendrán ssh integrado en sus sistemas operativos.
ˇNUEVO! OpenSSH incluye soporte para el protocolo 2.0!
Recientemente, hemos extendido OpenSSH para que también tenga use el protocolo SSH 2. Disponer de un dæmon ssh que pueda usar los tres protocolos principales de SSH (1.3, 1.5, 2.0) nos permite una mayor flexibilidad. El protocolo 2.0 no usa RSA para su criptografía de clave pública, y en su lugar usa los algoritmos DH y DSA. En OpenBSD 2.7 (que incluirá el nuevo OpenSSH) dispone de soporte para el protocolo 2.0 «¡tal y como sale de fábrica!» Si desea también soporte para los protocolos 1.3 y 1.5, no tiene más que añadir el paquete RSA (como se describe en nuestra página de manual de ssl) y reiniciar el dæmon.
Un generador de números pseudoaleatorios (PRNG - Pseudo Random Number Generator) provee a las aplicaciones con una fuente de números que tienen ciertas propiedades importantes para la seguridad del sistema:
Un PRNG es por lo general un algoritmo en el que los mismos valores iniciales producirán las misma secuencia de salidas. En un sistema operativo multiusuario existen muchos recursos que permiten alimentar el PRNG con datos aleatorios. El núcleo de OpenBSD usa el interruptor de tiempo del ratón, las señales de interrupción de datos de la red, las señales producidas entre diferentes pulsaciones de teclado y la información de E/S del disco, para alimentar la entropía. Los números aleatorios están disponibles para las rutinas del núcleo y se exportan mediante dispositivos a programas en los directorios de usuarios.
Hasta ahora, los números aleatorios se usan en las siguientes partes:
Una Función de "Hash" comprime sus datos de entrada en una cadena de tamaño constante. Para una Función "Hash" Criptográfica no es factible encontrar:
MD5, SHA1 y RIPEMD-160, se usan en OpenBSD como Funciones de "Hash" Criptográficas, v.g.:
Las Transformaciones Criptográficas se usan para cifrar y descifrar datos. Éstas son comúnmente utilizadas con una clave de cifrado para cifrar datos y con una clave de descifrar para descifrarlos. La seguridad de una Transformación Criptográfica debería descansar sólo en el material de la clave.
OpenBSD provee transformaciones como DES, 3DES, Blowfish y Cast para el núcleo del sistema y los programas en directorios de usuario, y se usan en muchas partes, como por ejemplo:
A partir de la versión 2.7 de OpenBSD se ha empezado a añadir soporte para hardware criptográfico, como aceleradores de cifrado y generadores de números aleatorios.
El 7751 está actualmente considerado como lento de acuerdo con las normativas de la industria, y muchos distribuidores disponen de chips más veloces (en la actualidad, incluso el HiFn tiene un chip más veloz aunque más caro). El rendimiento máximo con 3DES SHA1 ESP es de unos 63Mbit/seg.
(Como nota aparte, HiFn es una compañía con la que ha sido difícil tratar; incluso llegaron a amenazarnos con llevarnos a juicio por haber aplicado ingeniería inversa en su algoritmo de desbloqueo criptológico).
Bluesteelnet fue adquirida por Broadcom y comenzó a fabricar piezas reales. Su nuevo BCM5805 es parecido, con la excepción de que también le han añadido un artefacto asimétrico para el funcionamiento de DSA, RSA, y otros algoritmos parecidos. Con un rendimiento inicial aproximado de una velocidad más de cuatro veces superior a la del HiFn, esperamos que este procesador se popularice muy pronto.
El trato con la gente de Broadcom/Bluesteelnet ha sido exquisito. Nos entregaron la documentación completa y código de muestra de sus procesadores, y una cantidad de tarjetas suficiente para hacer pruebas.
Si alguna persona quiere ayudarnos programando controladores, puede unirse a nosotros.
Nuestro proyecto necesita personas que trabajen en estos sistemas. Si algún criptógrafo, que no sea estadounidense y que cumpla los requisitos que se han enumerado en esta página, está interesado en ayudar con criptografía integrada en OpenBSD, por favor contacte con nosotros.
Los miembros del equipo de OpenBSD han escrito unas cuantas ponencias sobre los cambios en criptografía que ellos han aplicado a OpenBSD. Las versiones en postscript de estos documentos estan disponibles como sigue.