Poprzednia Spis treści Następna

Technologie zapewniające bezpieczeństwo w systemach operacyjnych.


PKI - public-key infrastructure

Kodowanie kluczem symetrycznym

to technika, w której ten sam klucz jest używany przez nadawcę do zakodowania i przez odbiorcę do odkodowania komunikatu. Zapewnia to w pewnym stopniu uwierzytelnianie, ponieważ informacja zakodowana jednym kluczem nie może być odkodowana żadnym innym. Nie zapewnia jednak do końca bezpieczeństwa, gdyż obie strony są w posiadaniu takiego uniwersalnego klucza.

Kodowanie kluczem publicznym

to technika oparta na algorytmie RSA. Tutaj dwie strony używają różnych kluczy - do zakodowania służy klucz publiczny, dostępny dla wszystkich, natomiast tylko jedna osoba jest w stanie odkodować tę informację za pomocą klucza prywatnego. Ta technika wymaga więcej pamięci i więcej obliczeń, dlatego nie jest używana do przesyłania dużych ilości informacji, ale np. do kodowania kluczy symetrycznych, którymi się później odkodowuje właściwą informację.

Możliwy jest też schemat odwrotny - kodowanie za pomocą klucza prywatnego i odkodowanie za pomocą publicznego. Taki scenariusz występuje przy podpisach elektronicznych - po odkodowaniu podpisu konkretnym kluczem publicznym można go jednoznacznie przypisać danej osobie, posiadającej odpowiedni klucz prywatny.

Długość klucza i siła kodowania

Im dłuższy klucz tym większa siła kodowania - np. 128-bitowy klucz symetryczny jest 3*1026 razy silniejszy niż 40-bitowy. Jednocześnie różne algorytmy kodowania wymagają kluczy różnych długości do osiągnięcia tej samej siły kodowania - w RSA używa się jedynie liczb pierwszych do generowania kluczy i dlatego dopiero 512-bitowy klucz można uznać za silny, podczas gdy w algorytmie z kluczem symetrycznym, gdzie wykorzystuje się wszystkie liczby, za bezpieczny można uznać klucz długości 64-bitów.

Haszowanie

rozwiązuje problem modyfikacji przesyłanej informacji. Wartość funkcji haszującej dla przesłanej informacji jest dołączana do podpisu elektronicznego i odbiorca może porównać wynik jaki dała ta funkcja dla otrzymanej informacji. Zapewnia to zatem integralność przesyłanych danych.

Certyfikaty i uwierzytelnianie

Certyfikat to elektroniczny dokument używany do identyfikacji jednostki (serwera, firmy, konkretnej osoby) i powiązania jej z określonym kluczem publicznym.
CA (certificate authorities) to jednostki, które wydają takie certyfikaty. Mogą to być niezależne organizacje czy firmy (np. Netscape Certificate Server) wydające certyfikaty na potrzeby własnego oprogramowania. Zatem metody tworzenia certyfikatów i ich identyfikacji różnią się w zależności od potrzeb danej jednostki.
Uwierzytelnianie w sieci to identyfikacja dwóch stron komunikacji przez siebie nawzajem, np. ropoznawanie klienta danego serwera lub/i zapewnienie, że klient łączy się z właściwym serwerem. Opócz powszechnego uwierzytelniania na podstawie loginu i hasła, w sieci uwierzytelnia się też na podstawie certyfikatu. W trakcie sesji, dana jednostka wysyła razem z właściwym komunikatem swój podpis elektroniczny razem z certyfikatem i na ich podstawie odbiorca uwierzytelnia nadawcę.

Wykorzystanie certyfikatów

  1. Protokół SSL
    Secure Socket Layer to zbiór reguł służących do identyfikacji serwera jak i klienta oraz rządzących kodowaniem przesyłanych informacji. O tym w następnym punkcie.
  2. Mail
    Niektóre programy do obsługi poczty pozwalają na zabiezpieczanie i elektroniczne podpisywanie korespondencji - służy do tego protokół Secure Multipurpose Internet Mail Extension. Korzystanie z niego wymaga posiadania certyfikatu S/MIME. Zapewnia on odbiorcy, że otrzymany mail został faktycznie wysłany przez osobę widniejącą w nagłówku. Dodatkowo, podpis elektroniczny jest unikatowy dla przesłanej wiadomości (jest rodzajem funkcji haszującej), dlatego zmiana wiadomości spowoduje niemożność uwierzytelnienia nadawcy czyli też całego maila. Zatem ten protokół eliminuje zagrożenia: prywatności, identyfikacji nadawcy i ingerencji w zawartość przesyłki.
  3. Pojedynczy podpis
    Aby oszczędzić użytkownikowi problemu z pamiętaniem wielu haseł potrzebnych do uzyskania dostępu do różnych usług czy zasobów, stworzono technikę "single sign-on". Klient loguje się tylko raz - do jego lokalnej bazy danych kluczy prywatnych i uzyskuje dostęp do wszystkich serwerów korzystających z SSL, bez potrzeby wysyłania haseł i logowania przez sieć. To upraszcza znacznie zarządzanie dostępem ponieważ klient nie musi wpisywać hasła za każdym razem gdy żąda dostępu do jakiegoś serwera, natomiast serwer zamiast list loginów i haseł trzyma znacznie krótszą listę CA.
  4. Podpisywanie formularzy
    Certyfikaty są wykorzystywane do zapewnienia bezpieczeństwa formularzy HTML.
  5. Podpisywanie obiektów
    Firmy umieszczające swój software na stronach www, chcąc zapewnić klientom, że dany program pochodzi z bezpiecznego źródła, zaopatrują go w odpowiedni certyfikat.

Zawartość certyfikatu

Przykładowy certyfikat:

Certificate:
    Data:
        Version: v3 (0x2)
        Serial Number: 3 (0x3)
        Signature Algorithm: PKCS #1 MD5 With RSA Encryption
        Issuer: OU=Ace Certificate Authority, O=Ace Industry, C=US
        Validity:
            Not Before: Fri Oct 17 18:36:25 1997
            Not  After: Sun Oct 17 18:36:25 1999
        Subject: CN=Jane Doe, OU=Finance, O=Ace Industry, C=US
        Subject Public Key Info:
            Algorithm: PKCS #1 RSA Encryption
            Public Key:
                Modulus:
                    00:ca:fa:79:98:8f:19:f8:d7:de:e4:49:80:48:e6:2a:2a:86:
                    ed:27:40:4d:86:b3:05:c0:01:bb:50:15:c9:de:dc:85:19:22:
                    43:7d:45:6d:71:4e:17:3d:f0:36:4b:5b:7f:a8:51:a3:a1:00:
                    98:ce:7f:47:50:2c:93:36:7c:01:6e:cb:89:06:41:72:b5:e9:
                    73:49:38:76:ef:b6:8f:ac:49:bb:63:0f:9b:ff:16:2a:e3:0e:
                    9d:3b:af:ce:9a:3e:48:65:de:96:61:d5:0a:11:2a:a2:80:b0:
                    7d:d8:99:cb:0c:99:34:c9:ab:25:06:a8:31:ad:8c:4b:aa:54:
                    91:f4:15
                Public Exponent: 65537 (0x10001)
        Extensions:
            Identifier: Certificate Type
                Critical: no
                Certified Usage:
                    SSL Client
            Identifier: Authority Key Identifier
                Critical: no
                Key Identifier:
                    f2:f2:06:59:90:18:47:51:f5:89:33:5a:31:7a:e6:5c:fb:36:
                    26:c9
    Signature:
        Algorithm: PKCS #1 MD5 With RSA Encryption
        Signature:
            6d:23:af:f3:d3:b6:7a:df:90:df:cd:7e:18:6c:01:69:8e:54:65:fc:06:
            30:43:34:d1:63:1f:06:7d:c3:40:a8:2a:82:c1:a4:83:2a:fb:2e:8f:fb:
            f0:6d:ff:75:a3:78:f7:52:47:46:62:97:1d:d9:c6:11:0a:02:a2:e0:cc:
            2a:75:6c:8b:b6:9b:87:00:7d:7c:84:76:79:ba:f8:b4:d2:62:58:c3:c5:
            b6:c1:43:ac:63:44:42:fd:af:c8:0f:2f:38:85:6d:d6:59:e8:41:42:a5:
            4a:e5:26:38:ff:32:78:a1:38:f1:ed:dc:0d:31:d1:b0:6d:67:e9:46:a8:
             dd:c4

DN (distinguished name) to unikatowe parametry związane z kluczem publicznym:
uid=doe,e=doe@netscape.com,cn=John Doe,o=Netscape Communications Corp.,c=US
Validity to okres ważności certyfikatu
Issuer to CA, które wydało ten certyfikat,
Signature to podpis elektroniczny wydawcy certyfikatu.

Ten sam certyfikat w formie zakodowanej:

 
-----BEGIN CERTIFICATE-----
MIICKzCCAZSgAwIBAgIBAzANBgkqhkiG9w0BAQQFADA3MQswCQYDVQQGEwJVUzER
MA8GA1UEChMITmV0c2NhcGUxFTATBgNVBAsTDFN1cHJpeWEncyBDQTAeFw05NzEw
MTgwMTM2MjVaFw05OTEwMTgwMTM2MjVaMEgxCzAJBgNVBAYTAlVTMREwDwYDVQQK
EwhOZXRzY2FwZTENMAsGA1UECxMEUHViczEXMBUGA1UEAxMOU3Vwcml5YSBTaGV0
dHkwgZ8wDQYJKoZIhvcNAQEFBQADgY0AMIGJAoGBAMr6eZiPGfjX3uRJgEjmKiqG
7SdATYazBcABu1AVyd7chRkiQ31FbXFOGD3wNktbf6hRo6EAmM5/R1AskzZ8AW7L
iQZBcrXpc0k4du+2Q6xJu2MPm/8WKuMOnTuvzpo+SGXelmHVChEqooCwfdiZywyZ
NMmrJgaoMa2MS6pUkfQVAgMBAAGjNjA0MBEGCWCGSAGG+EIBAQQEAwIAgDAfBgNV
HSMEGDAWgBTy8gZZkBhHUfWJM1oxeuZc+zYmyTANBgkqhkiG9w0BAQQFAAOBgQBt
I6/z07Z635DfzX4XbAFpjlRl/AYwQzTSYx8GfcNAqCqCwaSDKvsuj/vwbf91o3j3
UkdGYpcd2cYRCgKi4MwqdWyLtpuHAH18hHZ5uvi00mJYw8W2wUOsY0RC/a/IDy84
hW3WWehBUqVK5SY4/zJ4oTjx7dwNMdGwbWfpRqjd1A==
-----END CERTIFICATE----- 

Łańcuchy CA

Każdy klient lub serwer trzyma u siebie listę certyfikatów zaufanych CA. Jest to lista tych autorytetów wydających certyfikaty, które dana jednostka ma za wiarygodne. CA łączą się w hierarchie (te na wyższym poziomie podpisują certyfikaty niższych). Ponieważ na każdym certyfikacie znajduje się podpis i identyfikator jego wydawcy, weryfikacja danego certyfikatu przechodzi przez łańcuch CA. W momencie znalezienia w łańcuchu CA takiego certyfikatu, którego wydawca jest znany (zaufany) jednostce dokonującej uwierzytelnienia, jednostka ta weryfikuje podpis elektroniczny wydawcy certyfikatu za pomocą jego klucza publicznego (który ta jednostka ma u siebie). Dopiero wtedy właściciel certyfikatu, który jest sprawdzany zostaje uwierzytelniony.

Lightweight Directory Access Protocol

LDAP to protokół, narzędzie ułatwiające zarządzanie certyfikatami - bezpieczne przechowywanie, odtwarzanie kluczy, odnawianie i odwoływanie certyfikatów.




Poprzednia Spis treści Następna