OpenBSD es un sistema operativo libre tipo Unix multiplataforma, basado en 4.4BSD. Es un descendiente de NetBSD, con un foco especial en la seguridad y la criptografía.
Este sistema operativo, se concentra en la portabilidad, cumplimiento de normas y regulaciones, corrección, seguridad proactiva y criptografía integrada. OpenBSD incluye emulación de binarios para la mayoría de los programas de los sistemas SVR4 (Solaris), FreeBSD, Linux, BSD/OS, SunOS y HP-UX.
Versión actual
La versión actual es la 4.9, liberada el 1 de mayo de 2011
Para ver una lista de nuevas características incluidas en OpenBSD 4.9, ver changelog de 4.9.
Se distribuye bajo la licencia BSD, aprobada por la OSI.
Historia
OpenBSD se creó como un fork de NetBSD debido a las diferencias filosóficas y personales entre Theo de Raadt y los demás miembros fundadores de NetBSD. Dejando aparte el hecho de que la seguridad sea la principal razón para que OpenBSD exista, el proyecto también tiene otras metas. Siendo un descendiente de NetBSD, es un sistema operativo muy portable. Actualmente corre sobre 17 plataformas distintas de hardware.
Licencia
Una de las metas del proyecto OpenBSD es «mantener el espíritu del copyright original Berkeley Unix», que permitía «una fuente de distribución relativamente libre de restricciones». Con este fin, la licencia Consorcio de sistemas de internet (ISC), una versión simplificada de la licencia BSD sin formalismos innecesarios según la Convención de Berna, se adopta para el nuevo código, aunque se aceptan las licencias MIT o BSD. La licencia GNU (GPL) se consideraba demasiado restrictiva en comparación con éstas: el código licenciado bajo la GNU, y bajo otras licencias que el proyecto considera poco deseables, no se acepta para su incorporación al sistema básico. Además el código existente bajo estas licencias es reemplazado o relicenciado cuando se puede de forma intensiva, aunque algunos casos como el compilador GCC tienen reemplazo difícil y la creación de uno se considera prioritario (ver proyecto PCC – Portable C Compiler).
A pesar de ello OpenBSD ha hecho importantes avances: de especial interés es el desarrollo de OpenSSH, basado en el paquete SSH original y desarrollado por el equipo OpenBSD. Apareció por primera vez en OpenBSD 2.6,[3] actualmente es la implementación sencilla de SSH más extendida, disponible como estándar o como opción en muchos sistemas operativos. Es interesante mencionar el desarrollo, tras las restricciones de licencia sobre IPFilter, del filtro de paquetes PF, que aparece por primera vez en OpenBSD 3.0 y actualmente está disponible en DragonFlyBSD, NetBSD y FreeBSD. Posteriormente se han ido incluyendo en OpenBSD los equivalentes de las aplicaciones GPL diff, grep, gzip, bc, dc, nm y size, pero con licencias BSD. Los desarrolladores de OpenBSD también están detrás del desarrollo de OpenBGPD, OpenOSPFD, OpenNTPD y OpenCVS, alternativas a software existente con licencias BSD.
En junio de 2001, y debido a modificaciones de Darren Reed en la redacción de la licencia de IPFilter, se lleva a cabo una auditoría sistemática de las licencias de los códigos fuentes de OpenBSD. Se encontró código fuente sin licencia, licenciado de forma ambigua o utilizado en contra de los términos de licencia en más de cien archivos. Para asegurar que las licencias se habían aplicado de forma correcta se intentó contactar con los poseedores de los copyright originales: algunos trozos de código fueron eliminados, otros fueron reemplazados, y otros, incluyendo las herramientas de rutinas multicasting, mrinfo y map-mbone, que estaban licenciadas por Xerox sólo para investigación, fueron relicenciadas de forma que OpenBSD pudiese seguir utilizándolas. También es destacable que durante esta auditoría se eliminó todo el software de Daniel J. Bernstein del árbol de fuentes. Bernstein pidió que toda versión modificada de su código debía ser aprobada por él antes de distribuirlo, una petición en que los desarrolladores de OpenBSD no estaban dispuestos a invertir esfuerzos. Aún tras la publicación de OpenBSD 3.8, no existe software de Bernstein en las fuentes.
Seguridad
Hasta junio de 2002, el sitio web de OpenBSD ostentaba el eslogan: «Ningún fallo de seguridad remoto en la instalación por defecto en los últimos 6 años». Esto debió ser cambiado por: «Un solo agujero de seguridad en la instalación por defecto, en más de 8 años», después de que se encontrara un agujero en OpenSSH y posteriormente por: «Sólo dos agujeros de seguridad en la instalación por defecto, en más de 10 años», al encontrase un fallo en el módulo de IPv6. Alguna gente ha criticado este lema, ya que casi nada está activado en la instalación por defecto de OpenBSD, y las versiones estables han incluido software en el que posteriormente se encontraron agujeros de seguridad. El equipo de programadores de OpenBSD mantiene que el eslogan se refiere una instalación por defecto del sistema operativo, y que es correcto ajustándose a su definición. Uno de las innovaciones fundamentales del proyecto OpenBSD es introducir el concepto del sistema operativo «Seguro por Defecto». Según la ciencia de la seguridad informática, es estándar, y además fundamental, activar la menor cantidad posible de servicios en máquinas que se encuentren en producción. Aun con todo, incluso sin tener en cuenta esta práctica, OpenBSD es un sistema extremadamente seguro y estable.
Como parte de una limpieza de cadenas, todas las apariciones de strcpy, strcat, sprintf y vsprintf en el código han sido sustituidas por variantes más seguras, tales como strlcpy, strlcat, snprintf, vsnprintf y asprintf. Adicionalmente a sus permanentes auditorías de código, OpenBSD contiene criptografía fuerte. Más recientemente, muchas nuevas tecnologías han sido integradas en el sistema, incrementando aún más su seguridad. Desde la versión 3.3, ProPolice está activado por defecto en el compilador GCC, garantizando protección adicional ante ataques de desbordamiento de pila. En OpenBSD 3.4, esta protección fue activada también en el kernel. OpenBSD también implementa el sistema W^X (pronunciado W XOR X), que es un esquema de gestión de memoria de gran detalle, que asegura que la memoria es editable o ejecutable, pero jamás las dos, proveyendo así de otra capa de protección contra los desbordamientos de búfer. Separación de privilegios, revocación de privilegios y carga de librerías totalmente aleatoria también contribuyen a aumentar la seguridad del sistema.
En Mayo de 2004, OpenBSD/sparc fue más allá en la protección de la pila, añadiendo StackGhost.
Un analizador estático de dimensiones fue añadido al compilador, que intenta encontrar fallos comunes de programación en tiempo de compilación. Se puede usar Systrace para proteger los puertos del sistema.
OpenBSD usa un algoritmo de cifrado de contraseñas derivado del Blowfish de Bruce Schneier. Este sistema se aprovecha de la lentitud inherente del cifrado del Blowfish para hacer la comprobación de contraseñas un trabajo muy intensivo para la CPU, dificultando sobremanera el procesamiento paralelo. Se espera que así se frustren los intentos de descifrado.
Debido a todas estas características, OpenBSD se usa mucho en el sector de seguridad informática como sistema operativo para cortafuegos (llamados firewalls) y sistemas de detección de intrusos. El filtro de paquetes de OpenBSD, pf es un potente cortafuegos desarrollado a causa de problemas con la licencia de ipf. OpenBSD fue el primer sistema operativo libre que se distribuyó con un sistema de filtrado de paquetes incorporado.
Filosofía
La filosofía de OpenBSD puede ser reducida a 3 palabras «Free, Functional and Secure» (Libre, Funcional y Seguro). Libre hace referencia a su licencia (explicada arriba), funcional se refiere al estado en el cual se decide finalizar el versionado de los programas, y seguro por su extrema revisión y supervisión del código incluido en sus versiones.