Hoppa till innehållet

OpenBSD

Från Wikipedia
OpenBSD
OpenBSD textual logo.svg
Företag / utvecklareThe OpenBSD Project
OS-familjBSD
ArbetsstatusPågående
KällkodÖppen källkod
Senaste version7.6/ 8 oktober 2024[1]
LicensBSD-licens
KärntypMonolitisk kärna
Webbplatswww.openbsd.org

OpenBSD är ett fritt operativsystem som bygger på BSD från Berkeleys universitet. Projektet startade som en förgrening av NetBSD 1995, av Theo de Raadt som också startade projektet OpenSSH. OpenBSD-projektet är känt för att driva kampen för fri mjukvara och har flera gånger uttalat sig negativt när andra projekt har tagit in kod som inte ansetts fri.

I december 1994 hamnade medgrundaren av NetBSD, Theo De Raadt, i bråk med de andra grundarna och blev ombedd att lämna kärngruppen för NetBSD[2]. Hans tillgång till kodbasen drogs tillbaka. Anledningen till detta är inte helt klarlagd, men det har spekulerats om att det var Theos temperament och beteende gentemot andra utvecklare och användare som gjorde att han blev ombedd att lämna projektet. Theo själv säger att han gjorde allt han kunde för att inte skapa en utbrytare från NetBSD men inte lyckades[3].

Theo De Raadt startade i december 1995 OpenBSD med utgångspunkt från NetBSD 1.0. Första versionen av OpenBSD släpptes i juli 1996 och var då OpenBSD 1.2.

25 juli 2007 tillkännagav Bob Beck skapandet av OpenBSD Foundation, en kanadensisk ideell organisation som skall verka för att stödja OpenBSD.

Logo och maskot

[redigera | redigera wikitext]

OpenBSDs maskot kallas Puffy och är en blåsfisk. Man valde blåsfisken som maskot, dels på grund av att den krypteringsalgoritm som används i OpenSSH kallas Blowfish, dels eftersom blåsfiskens försvarsmekanismer associerar till säkerhet. Puffy dök upp första gången i OpenBSD 2.6.

Finansiering

[redigera | redigera wikitext]

Eftersom OpenBSD är ett fritt mjukvaruprojekt är projektet beroende av donationer och av att folk köper CD-uppsättningar. Större delen av donationerna kommer från privatpersoner, även om vissa större projekt har gjort donationer[4].

OpenBSDs mål är att fokusera på portabilitet, standardiseringskompatibilitet, korrekthet, förebyggande datorsäkerhet och integrerad kryptografi.

Licenser och öppen dokumentation

[redigera | redigera wikitext]

Ett viktigt mål för OpenBSD är att all mjukvara som utvecklas är fri att användas och modifieras av den som så önskar. När OpenBSD projektet startades installerades en öppen anonym CVS-server med allmän läsbehörighet. Detta var ovanligt på den tiden då det ansågs att enbart utvecklarna skulle ha tillgång till koden, och att allmänheten endast skulle ha tillgång till släppta versioner av operativsystemet. Det är bland annat på grund av den öppna källkoden som projektet heter OpenBSD.

När Darren Reed 2001 ändrade sin licens till IPF (Internet Packet Filter) gjorde man en genomgång av licenserna till större delen av OpenBSDs kodbas och portningar. På grund av licensändringen av IPF utvecklade Daniel Hartmeier PF (Packet Filter). PF introducerades i OpenBSD 3.0.

En annan följd av genomgången av licenserna var att all mjukvara av Daniel J. Bernstein (djb) togs bort[5]. Bernsteins mjukvara togs bort ur projektet på grund av att han krävde att få godkänna all distribution av sin mjukvara på förhand.

Theo och OpenBSD-utvecklarna har vid flera tillfällen hamnat i konflikter med hårdvaruföretag som inte velat ge dem hårdvarudokumentation om de inte först skrivit på tystnadspliktsavtal (så kallade NDA-avtal, eller Non-Disclosure Agreements). Under 2003 fördes omfattande diskussioner med Sun angående dokumentationen till Ultra Sparc III[6].

Ett annat bråk som blev uppmärksammat var konflikten med Adaptec 2005. OpenBSD-utvecklarna ansåg att Adaptecs hårdvara var så fylld med problem och buggar att de krävde intern dokumentation från Adaptec för att kunna skriva en vettig drivrutin.[7][8]. Resultaten av bråket blev att stödet för Adaptecs RAID-enheter togs bort ur GENERIC-kärnan[9].

Det har även varit en del bråk med GPL-folk angående licenser och kod som utbyts mellan till exempel Linux och OpenBSD. I april 2007 skrev Michael Buesch till Linux-kärnans wireless-mailinglista och påpekade att en utvecklare från OpenBSD hade lagt till kod i OpenBSDs CVS-server som var hans licenserade GPL-kod men utan GPL-licenshuvudet. Detta ansåg Theo de Raadt vara en mycket omänsklig handling som Michael Buesch gjorde.[10].

Ett av OpenBSDs mål är förebyggande säkerhet[11]. Detta innebär:

  • Full öppenhet
  • Kodanalys
  • Ny teknik
  • Inbyggd säkerhet
  • Kryptografi

OpenBSD har länge på sin webbplats förstasida haft information om hur många säkerhetshål i standardinstallationen som kan utnyttjas från en fjärrdator. Antalet var noll fram till juni 2002 då Mark Dowd från Internet Security Systems (ISS) upptäckte en bugg i OpenSSH. Fram till dess var OpenBSDs slogan:

No remote computer hole in the default install, in nearly 6 years.

Detta ändrades nu till:

One remote hole in the default install, in nearly 6 years!

13 mars 2007 ändrades detta igen då Core Security upptäckte en bugg i IPv6-stacken. Ny slogan för OpenBSD blev då:

Only two remote holes in the default install, in more than 10 years!

I juli 2009 ändrades återigen texten till:

Only two remote holes in the default install, in a heck of a long time!

OpenBSD blev kritiserat för hur de hanterade Core Securitys rapportering av buggen, då OpenBSD-utvecklarna först sa att den publicerade korrigeringen var en stabilitetsfix och inte en säkerhetsfix. Efter att Core Security utvecklat programkod som bevisade att säkerhetshålet kunde utnyttjas på det sätt man beskrivit, ändrade man sig på OpenBSDs sida till att detta var en säkerhetsfix[12].

OpenBSD har utvecklat flera nya säkerhetslösningar, och har varit först med att integrera säkerhetstekniker som publicerats av andra[13]. Dessa är:

  • ProPolice – ProPolice är patchar till GCC som löser de flesta problemen med överskrivning av stacken. Tekniken är att generera ett så kallat canary word som sedan läggs på stacken. Om detta värde har skrivits över innebär det att en stacköverskrivning har skett. Funktionen är aktiverad för alla arkitekturer utom hppa.
  • W^X – W^X eller W XOR X eller Write Xor Execute är en teknik som innebär att data på minnesadresser antingen kan vara exekverbara eller skrivbara, men inte båda samtidigt. Varje sida i minnet är definierad som en exekverbar eller en skrivbar minnesarea, vilket skiljer sig från de flesta andra operativsystem. Funktionen är aktiverad för de flesta arkitekturerna, men inte alla.
  • StackGhost – StackGhost är en teknik för Sparc- och Sparc64-baserade datorer som skyddar mot stacköverskrivningar.

Var sjätte månad fryser projektet kodbasen och en ny version publiceras. Detta brukar ske 1 maj och 1 november, och har gjorts sedan version 2.0. Version 5.8, släpptes 18 oktober 2015, vilket på dagen markerar 20 år sedan Theo de Raadt öppnade källkoden(via cvs) för andra utvecklare.[14] Varje utgåva brukar ha ett tema och det släpps minst en låt som har anknytning till temat. Temat för 5.8 var 20-årsjubiléet. Temat för OpenBSD 4.1 var OpenBSDs problem med olika hårdvarutillverkare, och låten hette "Puffy Baba and the 40 Vendors"[15]. Exempel på ännu tidigare teman är Blob (som handlade om operativsystem som inkluderar binärer som de ej har kod till) och Hackers of the lost RAID (som handlade om bråket med Adaptec[16]).

Arkitekturer

[redigera | redigera wikitext]

Ett av målen för OpenBSD är att vara portabelt. För närvarande har OpenBSD stöd för följande datorarkitekturer:

  • Alpha DEC Alpha-baserade system.
  • amd64 AMD64-baserade system.
  • ARMish ARM-baserade system.
  • hp300 Hewlett-Packard HP 9000 serie 300 och 400.
  • hppa Hewlett-Packard Precision Architecture (PA-RISC).
  • i386 Standard PC och kloner baserade på Intel i386-arkitekturen och kompatibla processorer.
  • Landisk IO-DATA Landisk-system (som USL-5P) baserade på SH4-processorn.
  • Luna88k Omron LUNA-88K- och LUNA-88K2-arbetsstationer.
  • mac68k Motorola 680x0-baserade Apple Macintosh med MMU.
  • macppc Apple PowerPC-baserade maskiner, från iMac och framåt.
  • mvme68k Motorola 680x0-baserade VME system.
  • mvme88k Motorola 881x0-baserade VME system.
  • SGI SGI MIPS-baserade arbetsstationer.
  • Sparc Sun Sun4, Sun4c och Sun4m SPARC-system.
  • Sparc64 Sun UltraSPARC-system.
  • VAX Digital VAX-baserade system.
  • Zaurus Sharp Zaurus C3x00 PDA.

OpenBSD-projekt

[redigera | redigera wikitext]

OpenBSD-projektet har även startat ett antal underprojekt.

  • OpenSSH - en BSD-licenserad SSH-daemon och klient. OpenSSH startades av Theo DeRaadt och OpenBSDs utvecklare 1999 för att utveckla en fri version av protokollet SSH. Första versionen av OpenSSH dök upp i OpenBSD 2.6. OpenSSH är ett av världens mest använda fria program. Trots att programmet är så spritt har projektet haft problem med att så få företag har donerat till projektet[17].
  • OpenBGPD - en BSD-licenserad implementation av BGP. Inkluderar även en OSPF-implementation. Första versionen av OpenBGPD dök upp i OpenBSD 3.5. Huvudutvecklarna av OpenBGPD är Henning Brauer och Claudio Jeker. Första versionen av OpenOSPFD dök upp i OpenBSD 3.7 och huvudutvecklaren är Esben Nørby.
  • OpenNTPD - en BSD-licenserad NTP-server och klient. Första versionen av OpenNTPD dök upp i OpenBSD 3.6 och huvudutvecklaren är Henning Brauer. Den portabla versionen utvecklas av Darren Tucker.
  • OpenCVS - en BSD-licenserad CVS-implementation. OpenCVS är fortfarande på utvecklingsstadiet och har ännu inte haft en officiell release.

OpenBSD-böcker

[redigera | redigera wikitext]

Ett antal böcker som rör OpenBSD har utgivits. Några av dessa är:

  1. ^ ”OpenBSD 7.6” (på engelska). openbsd.org. 8 okt 2024. https://www.openbsd.org/76.html. Läst 8 okt 2024. 
  2. ^ Glass, Adam. Meddelande till netbsd-users: Theo De Raadt(sic), 23 december 1994.
  3. ^ Mail mellan Theo och core-gruppen dagarna mellan det att hans åtkomst till NetBSD-koden togs bort och OpenBSD skapades [1]
  4. ^ Lista på privatpersoner och företag som har donerat pengar och maskinvara till projektet [2]
  5. ^ Theo De Raadts mail angående varför all djbs mjukvara togs bort. [3]
  6. ^ Kerneltrap artikel om Theos kamp för dokumentation från Sun [4]
  7. ^ ”Theo De Raadts mail till misc angående Adaptec”. 18 mars 2005. http://marc.info/?l=openbsd-misc&m=111118558813932&w=2. Läst 26 maj 2015. 
  8. ^ ”Adaptecs svar till Theo De Raadts”. 18 mars 2005. http://marc.info/?l=openbsd-misc&m=111118627131907&w=2. Läst 26 maj 2015. 
  9. ^ OpenBSD FAQ angående Adaptec [5]
  10. ^ Michael Buesch mail till linux.kernel.wireless.general [6] Arkiverad 6 oktober 2008 hämtat från the Wayback Machine.
  11. ^ OpenBSDs mål med säkerhet. [7]
  12. ^ ”OpenBSD's IPv6 mbufs remote kernel buffer overflow”. Arkiverad från originalet den 24 maj 2012. https://archive.is/20120524213155/http://www.coresecurity.com/content/open-bsd-advisorie. 
  13. ^ Exploit Mitigation Techniques presentation av Theo De Raadt [8]
  14. ^ de Raadt, Theo (18 oktober 2015). ”It was twenty years ago you see...” (på engelska). http://marc.info/?l=openbsd-announce&m=144515087006176&w=2. Läst 19 oktober 2015. 
  15. ^ Puffy Baba and the 40 vendors [9]
  16. ^ Mail från Theo De Raadt angående Adaptec ovilja att lämna ifrån sig dokumentation. [10]
  17. ^ Theo De Raadts mail till misc angående företags stöd till OpenSSH [11]

Externa länkar

[redigera | redigera wikitext]