[OpenBSD]


"El "mantra" de cualquier buen ingeniero de seguridad es : "La seguridad no es un producto, sino un proceso." Es algo más que diseñar criptografía fuerte en un sistema; es diseñar el sistema por completo de manera que todas las medidas de seguridad, incluyendo la criptografía, funcionen al unísono."

-- Bruce Schneier, autor de "Applied Cryptography".

Criptografía


índice de contenidos
¿Por qué incluimos criptografía?.
OpenSSH.
Generadores de números pseudoaleatorios (PRNG): ARC4, ...
Funciones de resumen criptográfico ("hash functions"): MD5, SHA1, ...
Transformaciones criptográficas: DES, Blowfish, ...
Soporte para componentes criptográficos
Se buscan criptógrafos internacionales
Otros textos


¿Por qué incluimos criptografía?

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 realizado un estudio para comprobar las leyes sobre criptografía.

Gracias a este detalle, 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 con 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 para nosotros, 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, las versiones preliminares (snapshots), construimos los binarios para éstas en países libres, para asegurarnos de que todo el código fuente y binario que ponemos a disposición de los usuarios esté libre de toda sospecha. En el pasado hemos compilado nuestras versiones binarias en Canadá, Suecia y Alemania.

OpenBSD incluye Kerberos V. El código base que usamos es el de la versión exportable de Heimdal, de Suecia. Hemos ampliado nuestro código fuente del entorno gráfico X11 para usar Kerberos.

VPNC TEST PARTNER OpenBSD fue el primer sistema operativo que incluyó IPsec. Hemos incluido IPsec desde el lanzamiento de OpenBSD 2.1 en 1997. Nuestra implementación de IPsec integrada en el núcleo, con aceleración de hardware basada en una variedad de tarjetas, y nuestro demonio 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 utiliza en OpenBSD se puede clasificar según varios aspectos, descritos en esta página.

OpenSSH

Desde la versión 2.6, OpenBSD contiene OpenSSH, una versión de ssh totalmente libre y sin gravámenes de patentes. OpenSSH interaccionaba con la versión 1 de ssh y además añadía muchas características:

Dicho brevemente, tomamos una versión de ssh bajo licencia libre y la "OpenBSD-izamos". Un año más tarde, extendimos OpenSSH para que también incluyera el protocolo SSH 2. El resultado fue el soporte para los 3 protocolos principales de SSH: 1.3, 1.5 y 2.0.

Generadores de números pseudoaleatorios

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 mismas secuencias de salida. 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 usuario.

Hasta el momento, los números aleatorios se usan en las siguientes partes:

Funciones de resumen criptográfico (hash functions)

Una función de resumen criptográfico comprime sus datos de entrada en una cadena de tamaño constante. Para una función de resumen criptográfico no es factible encontrar:

MD5, SHA1 y RIPEMD-160 se usan en OpenBSD como funciones de resumen criptográfico, v.g.:

Transformaciones criptográficas

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:

Soporte para componentes criptográficos (hardware)

A partir de la versión 2.7 de OpenBSD se empezó a añadir soporte para componentes criptográficos, como aceleradores de cifrado y generadores de números aleatorios.

Si alguna persona quiere ayudarnos a programar controladores, puede unirse al equipo.

Se buscan criptógrafos internacionales

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, puede contactar con nosotros.

Otros textos

Los miembros del equipo de OpenBSD han escrito unas cuantas ponencias sobre los cambios en criptografía que ellos mismos han aplicado a OpenBSD. Las versiones en postscript de estos documentos estan disponibles como sigue.


OpenBSD www@openbsd.org
$OpenBSD: crypto.html,v 1.63 2009/10/31 07:55:59 ajacoutot Exp $