[OpenBSD]


"Mantran för en bra säkerhetstekniker är: "Säkerhet är inte en produkt, utan en process." Det är mer än att bara designa in stark kryptografi i ett system; det är att designa hela systemet på så vis att alla säkerhetsmått, inkluderat kryptografi, fungerar tillsammans."

-- Bruce Schneier, författare av "Applied Cryptography".

Kryptografi

Index
Varför skeppar vi kryptografi?
OpenSSH
Pseudoslumptalsgeneratorer (PRNG): ARC4, ...
Kryptografiska hashfunktioner: MD5, SHA1, ...
Kryptografiska omvandlare: DES, Blowfish, ...
Kryptografiskt hådvarustöd
Internationella kryptografer sökes
Fortsatt läsning


Varför skeppar vi kryptografi?

I fyra ord: för att vi kan.

OpenBSD-projektet är baserat i Kanada.

Export Control List of Canada ställer inga markanta restriktioner på export av kryptografisk mjukvara, och är till och med ännu klarare angående fri export av fritt tillgänglig kryptografisk mjukvara. Marc Plumb har gjort en del undersökningar för att testa de kryptografiska lagarna.

Därför har OpenBSD projektet bäddat in kryptografi i ett flertal ställen i operativsystemet. Vi kräver att den kryptografiska mjukvaran som vi använder är fritt tillgänglig och med acceptabel licens. Vi använder inte direkt kryptografi med besvärliga och otäcka patent. Vi kräver också att sådan mjukvara är ifrån länder med skapliga exportlicenser, eftersom vi inte vill bryta mot lagen i något land. De kryptografiska mjukvarukomponenterna som vi för tillfället använder skrevs i Argentina, Australien, Grekland, Kanada, Norge, Sverige och Tyskland.

När vi skapar OpenBSD-utgåvor eller snapshotar, bygger vi våra release-binärer i fria länder för att försäkra oss om att att källkoden och binärerna som vi tillhandahåller är fria från fläckar. På senaste tiden har våra release-binärer byggts i Kanada, Sverige och Tyskland.

OpenBSD skeppar med Kerberos IV inkluderat. Kodbasen som vi använder är den fritt exporterbara KTH-baserade utgåvan från Sverige. Vår X11-källkod har blivit utökad för att kunna användas tillsammans med Kerberos IV. Kerberos V stöd kommer att dyka upp någon gång under 2000, men i nuvarande stund existerar inte någon fritt exportbar version av Kerberos V.

Idag är kryptografi en viktig metod för att utöka säkerheten i ett operativsystem. Kryptografin som används i OpenBSD kan klassifieras i åtskilliga aspekter, beskrivna härnäst.

OpenSSH

Vad är den första sak som de flesta mäniskor gör efter att ha installerat OpenBSD? De installerar Secure Shell (ssh) ifrån ports-trädet eller paketen på FTP-siterna. Fram till och med nu, vill säga.

Från och med 2.6 utgåvan, innehåller OpenBSD OpenSSH, en absolut fri och patent-obesvärad version av ssh. OpenSSH fungerar med ssh version 1 och har många nya funktioner.

Grovt beskrivet så tog vi en fri version av ssh och OpenBSD-fierade den. Vi gick runt det USA-registrerade RSA-patentet genom att tillhandahålla ett enkelt sätt att automatiskt ladda ned och installera ett RSA-aktiverad paket innehållandes delade bibliotekversioner av libcrypto och libssl. Dessa paket är baserade på OpenSSL. Folk som lever utanför USA kan fritt använda den patenterade RSA-koden, medans privatpersoner i USA kan använda den fritt i icke-kommersiella syften. Det verkar som om företag inuti USA också kan använda RSA-biblioteken, så länge RSA inte används i ett vinstgivande syfte. På det här sättet kommer nästan alla få ssh inbyggt i deras operativsystem.

Nyhet! OpenSSH stödjer nu protokoll 2.0!

Nyligen har vi utökat OpenSSH till att också klara av SSH protokoll 2.0. Genom att ha en SSHdaemon som kan klara alla de tre stora SSH protokollen (1.3, 1.5, 2.0) får vi stor flexibilitet. Protkoll 2.0 använder inte RSA för dess publika nyckel-kryptografi, utan istället baserar den sig på DH och DSA algoritmerna. I OpenBSD 2.7 -- vilket skeppas med den nya OpenSSH -- får du protokoll 2.0 stöd rätt ur boxen! Om du även vill ha stöd för protkoll 1.3 och 1.5, lägg då enkelt till RSA-paketet (som beskrivet i vår ssl manualsida) och starta om daemonen.

Pseudoslumptalsgeneratorer

En pseudoslumptalsgenerator (PRNG - Pseudo Random Number Generator) erbjuder applikationer en ström med tal som har vissa viktiga egenskaper för systemsäkerhet:

En PRNG är normalt bara en algoritm där samma begynnelsevärden kommer redovisa samma utdata. På ett fleränvändarsystem finns det flera källor vilka tillåter PRNG:en att förses med slumpmässig data. OpenBSDkärnan använder interrupttajmningen för musen, nätverksdatats interruptlatens, tajmingen mellan tangentknapps-nedtryckningar och disk I/O information till att fylla en entropipool. Slumptal finns tillgängliga för rutiner i kärnan och exporteras via device:er till användar-program. Hittills används slumptal på följande ställen:

Kryptografiska hashfunktioner

En hashfunktion komprimerar dess indata till en sträng med konstant storlek. För en kryptografisk hashfunktion så är det omöjligt att finna:

I OpenBSD används MD5, SHA1 och RIPEMD-160 som kryptografiska hashfunktioner, till exempel:

Kryptografisk omvandling

Kryptografisk omvandling används för att kryptera och dekryptera data. Dessa används vanligen med en krypteringsnyckel för kryptering av data och med en dekrypteringsnyckel vid dekryptering av data. Säkerheten vid en kryptografisk omvandling ska enbart baseras på nyckelmaterialet.

OpenBSD erbjuder omvandlare som DES, 3DES, Blowfish och Cast för kärnan och användar-program, och används i många ställen så som:

Kryptografiskt hårdvarustöd

I och med version 2.7 har OpenBSD börjat stödja viss kryptografisk hårdvara, så som acceleratorer och slumptalsgeneratorer.

Internationella kryptografer sökes

Självklart behöver vårt projekt folk som kan jobba på dessa system. Om någon icke-amerikansk kryptograf "who meets the constraints listed" är intresserad i att hjälpa oss med inbäddad kryptografi i OpenBSD, var god kontakta oss.

Fortsatt läsning

Ett antal dokument har skrivits av OpenBSD team-medlemmar om kryptografiska ändringar som har gjorts i OpenBSD. Postscriptversioner av dessa dokument finns tillgängliga, här:


OpenBSD www@openbsd.org
Originally [OpenBSD: crypto.html,v 1.59 2000/07/06 17:16:54 deraadt Exp ]
$Translation: crypto.html,v 1.9 2000/07/19 18:14:35 javax Exp $
$OpenBSD: crypto.html,v 1.9 2000/07/24 07:45:42 wvdputte Exp $