[OpenBSD]


"Każdy dobry specjalista od bezpieczeństwa zna magiczną formułę: "Bezpieczeństwo to nie produkt, lecz proces". Znaczy to więcej niż samo implementowanie w systmie zawansowanej kryptografi. Bezpieczeństwo to tworzenie całego systemu, w taki sposób, że wszystekie czynniki wpływające na bezpieczeństwo (włączając w to kryptografie) współdziałają i uzupełniają się."

-- Bruce Schneier, autor "Applied Cryptography".

Kryptografia


Spis treści
Dlaczego włączamy kryptografię do systemu?.
OpenSSH.
Pseudolosowe generatory liczb (PRNG): ARC4, ...
Kryptograficzne funkcje haszujące: MD5, SHA1, ...
Przekształcenia kryptograficzne: DES, Blowfish, ...
Wsparcie dla sprzętowej kryptografi
Poszukiwani międzynarodowi kryptografowie
Więcej szczegółowych informacji


Dlaczego włączamy kryptografię do systemu?

W dwóch słowach: poneważ możemy.

Projekt OpenBSD wywodzi się z Kanady.

Kanadyjska Lista Kontroli Eksportu nie nakłada żadnych znaczących ograniczeń dotyczących eksportu oprogramowania kryptograficznego, a wręcz jest otwarta na wolny eksport ogólnodostępnego oprogramowania kryptograficznego. Marc Plumb wykonał badania dotyczące tego tematu. Dzięki temu Projekt OpenBSD osadził kryptografię w wielu miejscach w systemie operacyjnym.

Od oprogramowania kryptograficznego, którego używamy, wymagamy swobody dostępu i odpowiedniej licencji. Nie korzystamy bezpośrednio z kryptografi opatrzonej nieakceptowalnymi patentami. Wymagamy także, aby oprogramowanie, pochodzące z innych krajów, także posiadało właściwe licencje eksportowe, ponieważ nie chcemy łamać prawa żadnego kraju. Komponenty kryptograficznego oprogramowani, którego obecnie używamy, zostały napisane w Argentynie, Australii, Kanadzie, Niemczech, Grecji, Norwegii oraz Szwecji.

Podczas tworzenia wydań (ang. releases), czy snapshot'ów OpenBSD, tworzymy binaria w wolnych krajach, aby upewnić się, iż źródła i binaria, które dostarczamy użytkownikom są wolne od skaz. W przeszłości, budowa binarnych wydań miała miejsce w Kanadzie, Szwecji i Niemczech.

OpenBSD dostarczane jest wraz z załączonym Kerberos IV i Kerberos V. Obie wersje oparte są na ogólnodostępnym wydaniu kodu źródłowego KTH ze Szecji. Nasze źródła X11 także zostały rozszeżone, aby współdziałać z Kerberos.

VPNC TEST PARTNER OpenBSD było pierwszym systemem operacyjnym, który wprowadził stos IPsec do swojego podstawowego wydania. Włączamy do systemu IPsec od wydania OpenBSD 2.1 w 1997. Nasz w pełni zgodny ze standardami, zaimplementowany w jądrze stos IPsec, wraz z sprzętową akceleracją bazującą na licznych urządzeniach oraz nasz własny, wolny demon ISAKMP, jest wykorzystywany przez VPNC jako jedna z maszyn do prowadzenia testów zgodności.

Obecnie kryptografia odgrywa istotną rolę w zwiększaniu bezpieczeństwa systemu operacyjnego. Wykorzystywana w OpenBSD kryptografia może być sklasyfikowana ze względu na różne aspekty, opisane poniżej.

OpenSSH

What is the first thing most people do after installing OpenBSD? They install Secure Shell (ssh(1)) from the ports tree or the packages on the FTP sites. Until now, that is.

As of the 2.6 release, OpenBSD contains OpenSSH, an absolutely free and patent unencumbered version of ssh. As of the OpenBSD 2.6 release date, OpenSSH interoperated with ssh version 1 and had many added features,

Roughly said, we took a free license release of ssh, OpenBSD-ifyed it. About a year later, we extended OpenSSH to also do SSH 2 protocol, the result being support for all 3 major SSH protocols: 1.3, 1.5, 2.0.

Pseudolosowe generatory liczb

Pseudolosowy generator liczb (ang. Pseudo Random Number Generator - PRNG) zapewniają aplikacjom strumień liczb, które mają bardzo duże znaczenie dla bezpieczeństwa systemu:

PRNG jest zwykle jedynie algorytmem, dla którego identyczne ciągi wprowadzanych danych dają te same wyniki. W systemie operacyjnym o wielu użytkownikach istnieje mnustwo źródeł, które dostarczają losowe dane do PRNG. Jądro OpenBSD wykorzystuje odstępy czasu pomiędzy przerwaniami myszki (ang. mouse interrupt), opóźnienie przerwań przesyłania danych sieciowych (ang. network data interrupt latency), odstępy czasu pomiędzy wciskaniem klawiszy oraz informacje o wejściu/wyjściu dysków twardych do zapełnienia nieprzewidywalnego bufora. Liczby losowe są dostępne dla jądra oraz poprzez psełdo-urządzenia dla programów użytkownika (ang. userland programs). Jak dotąd, liczby losowe są wykorzystywane w następujących elementach systemu:

Cryptographic Hash Functions

A Hash Function compresses its input data to a string of constant size. For a Cryptographic Hash Function it is infeasible to find:

In OpenBSD MD5, SHA1, and RIPEMD-160 are used as Cryptographic Hash Functions, e.g:

Cryptographic Transforms

Cryptographic Transforms are used to encrypt and decrypt data. These are normally used with an encryption key for data encryption and with a decryption key for data decryption. The security of a Cryptographic Transform should rely only on the keying material.

OpenBSD provides transforms like DES, 3DES, Blowfish and Cast for the kernel and userland programs, which are used in many places like:

Cryptographic Hardware Support

OpenBSD, starting with 2.7, has begun supporting some cryptography hardware such as accelerators and random number generators.

If people wish to help with writing drivers, come and help us.

International Cryptographers Wanted

Of course, our project needs people to work on these systems. If any non-American cryptographer who meets the constraints listed earlier is interested in helping out with embedded cryptography in OpenBSD, please contact us.

Further Reading

A number of papers have been written by OpenBSD team members, about cryptographic changes they have done in OpenBSD. The postscript versions of these documents are available as follows.


OpenBSD www@openbsd.org
$OpenBSD: crypto.html,v 1.122 2003/09/03 16:04:09 jason Exp $