prezentacja

Transkrypt

prezentacja
Wykorzystanie protokołu T=CL
w systemach kontroli dostępu
Agenda
•
•
•
•
•
•
•
•
Obecne systemy kontroli dostępu
Technologia MIFARE®
Tożsamość cyfrowa i PKI
Protokół T=CL w systemach KD
Aplikacje PKI w KD
Wykorzystanie innych aplikacji
Dyskusja
Podsumowanie
2/35
Co to jest system KD?
• System kontroli dostępu – system sprzętowo
programowy mający na celu identyfikację
podmiotu i udzielenie dostępu do zasobów:
– ważne pomieszczenia (magazyn, serwerownia)
– wszystkie pomieszczenia
– zasoby sprzętowe (dostęp do dysku, podsieci
komputerowej)
– zasoby programowe (dostęp do aplikacji)
• Metody realizacji KD do pomieszczeń:
– offline
– online
3/35
Poziomy bezpieczeństwa
•
Poziomy zabezpieczeń:
– niski (pamięć)
• kod numeryczny
– średni (klucz)
•
•
•
•
kod kreskowy
karta magnetyczna
karta chipowa
karta zbliżeniowa
– wysoki (biometryka)
•
•
•
•
•
•
•
odcisk palca
geometria dłoni
układ naczyń krwionośnych
tęczówka oka
siatkówka oka
Głos
Większość systemów KD wykorzystuje technologie zbliżeniowe.
4/35
Technologia MIFARE®
•
Standardowa karta MIFARE® ma pojemność 1024 lub 4096 bajtów i
jest podzielona na 16 sektorów. Sektor składa się z 4 bloków, z
których każdy ma wielkość 16 bajtów
Sektor 0
Blok 0
pamięć = 16 sektorów
Sektor 1
Sektor 2 … Sektor 14
sektor = 4 bloki
Blok 1
Blok 2
Sektor 15
Blok 3
blok = 16 bajtów
•
W pierwszym bloku pierwszego sektora pamiętany jest unikalny
numer seryjny (nadany na etapie produkcji chipa karty)
5/35
Technologia MIFARE®
• Pozostały obszar pamięci dostępny jest dla aplikacji
• Dostępne są proste operacje pozwalające na:
–
–
–
–
6/35
Zarządzanie prawami dostępu dla poszczególnych bloków
Zarządzanie i autentykację kluczami (key A, key B)
Zapisywanie i odczytywanie danych z poszczególnych bloków danych
Obsługę bloków licznikowych (value block), zapis, odczyt, atomowe zwiększanie,
zmniejszanie wartości
Technologia MIFARE® w KD
• Najpopularniejsze wykorzystanie technologii MIFARE® w
systemach kontroli dostępu:
– Wykorzystują numer seryjny do identyfikacji użytkownika
– Wykorzystują dodatkowe dane przechowywane na karcie w celu
zwiększenia bezpieczeństwa
• Wprowadzane dodatkowe dane na kartę zwykle nie są
związane z użytkownikiem
• Sektory mogą być zajęte
• Systemy KD zwykle nie udostępniają API, a często
potrzebna jest integracja z innymi systemami
7/35
Wykorzystanie kart
•
•
•
•
•
Bankowość – karty płatnicze
Telekomunikacja – karty telefoniczne, SIM
Komunikacja – KOMkarta
Identyfikatory – legitymacje studenckie
Kontrola dostępu – do pomieszczeń i do
zasobów…
8/35
Tożsamość cyfrowa
• Coraz większa popularność kart „aplikacyjnych” (głównie
z maszyną wirtualną Java)
• Często na karcie przechowywane są informacje
związane z tożsamością użytkownika
• Istnieją rozbudowane systemy zarządzania tymi
informacjami (CMS)
• Zamiast korzystać z odrębnego obszaru pamięci
MIFARE®, można by wykorzystać te informacje oraz
funkcjonalność aplikacji z nimi związanych
• Możliwość napisania własnej aplikacji posiadającej
większe możliwości niż MIFARE®.
9/35
Rodzaje kryptografii
• Symetryczna:
– jeden klucz służący do szyfrowania i deszyfrowania,
– wydajne algorytmy Æ szyfrowanie dużej ilości
danych,
– problem z przekazywaniem klucza.
• Asymetryczna:
– para kluczy powiązanych ze sobą,
– jednym kluczem szyfrujemy, drugim odszyfrowujemy,
– jeden z kluczy nazywamy prywatnym, drugi
publicznym,
– nie ma problemów z przekazywaniem klucza,
– mało wydajne algorytmy.
10/35
Standardy oparte o PKI
11/35
Bezpieczny Internet
Bezpieczna poczta
SSL (Secure Socket Layer)
TSL (Transport Layer Security)
S/MIME (Secure Multipurpose
Internet Mail Extensions)
Bezpieczny dostęp
Inne aplikacje
VPN (Virtual Private Network)
protokoły IPsec
SET (Secure Electronic
Transactions)
Algorytmy PKI
• Opierają się o matematyczną trudność
rozkładu dużych liczb na czynniki.
• Łatwo dla małych liczb:
21 = 3 x 7
125 = 53
• Trudniej dla dużych liczb:
43857348753487543543 = X x Y
3248243789234723847 = XY
12/35
Funkcja mieszająca
• Funkcja mieszająca to przekształcenie, które dla
dowolnych danych wejściowych generuje
unikalny ciąg znaków o stałej długości.
H(m) = h
• Wymagania dla kryptografii:
– łatwość obliczeń dla dowolnych danych wejściowych
– niodwracalność (znając h niemożna wyznaczyć m)
– bezkolizyjność (różne dane – różne wartości funkcji)
13/35
Przykłady algorytmów
• Funkcje mieszające (hashujące):
MD5
wyjście 128 bitów
SHA1
wyjście 160 bitów
RIPEMD-160
wyjście 160 bitów
• Kryptografia asymetryczna:
RSA
Dffie-Hellman
Merkle-Hellman
14/35
Generowanie kluczy
• Wygenerowana para kluczy zawsze zawiera
klucz prywatny i klucz publiczny
• Klucze mogą być generowane przez:
– kartę inteligentną (SmartCard),
– HSM (Hardware Security Module),
– komputer.
• Miejsce generowania kluczy jest często
zdeterminowane sposobem ich użycia:
– podpis, niezaprzeczalność Æ SmartCard,
– szyfrowanie, pufność Æ HSM.
15/35
Zastosowanie kluczy
• Co Małgosia może zrobić z kluczami?
klucze publiczne
Jasia i Małgosi
klucz prywatny
Jasia
klucz prywatny
Małgosi
Podpisać wiadomość do Jasia, używając klucza prywatnego Małgosi.
Chronić swoje dane (pliki), używając klucza publicznego Małgosi.
Zaszyfrować wiadomość do Jasia, używając klucza publicznego Jasia.
16/35
Certyfikat
• Certyfikat wiąże w bezpieczny sposób:
– klucz publiczny,
– właściciela (posiadacza klucza
prywatnego),
– czas ważności,
– użycie klucza (tylko podpis,
tylko szyfrowanie,...),
– inne informacje.
• Certyfikat jest podpisywany przez zaufane
centrum certyfikacji.
17/35
Typy certyfikatów
• Obecnie używany: X.509 v3
• Informacje o X.509 v3
– IETF (Internet Engineering Task Force)
– PKIX (Public Key Infrastructure X.509 Working
Group)
– RFC 2459
• Inne typy certyfikatów:
–
–
–
–
18/35
Poprzednie wersje X.509: v1, v2
SPKI (Simple Public Key Infrastructure)
PGP (Pretty Good Privacy)
Attribute Certificates
Struktura X.509 v3
Wersja
Numer seryjny
Podpis
Podpisany przez
urząd certyfikacji
(wystawcę)
Unikalna liczba całkowita
ID alg. użytego do podpisania cert.
Wystawca
Unikalna nazwa wystawcy cert.
Ważność
Daty: nie przed / nie po
Podmiot
Unikalna nazwa właściciela cert.
Klucz publiczny
Klucz publiczny właściciela cert.
ID wystawcy
Nieobow. unikalny ID centrum cert.
ID podmiotu
Nieobow. unikalny ID podmiotu
Rozszerzenia
19/35
Wersja certyfikatu
Nieobow. rozszerzenia
Wystawianie certyfikatu
Wystawianie certyfikatu
Policzony
skrót certyfikatu
Przygotowanie
danych
Klucz prywatny
urzędu certyfikacji
Weryfikacja certyfikatu
Klucz publiczny
urzędu certyfikacji
Podpisany
skrót certyfikatu
Urząd certyfikacji
20/35
Odszyfrowany
skrót certyfikatu
?=?
Policzony
skrót certyfikatu
Użytkownik
Podpisywanie
Małgosia pisze
list do Jasia.
Tworzony jest
skrót wiadomości.
e-mail
e-mail
skrót
wiadomości
Skrót jest szyfrowany
kluczem prywatnym Małgosi.
e-mail
Wiadomość jest
wysyłana do Jasia.
21/35
A67D875E…
e-mail
Do wiadomości
dołączany jest
certyfikat Małgosi.
A67D875E…
Weryfikowanie podpisu
Przychodzi list
od Małgosi.
Weryfikacja
certyfikatu
e-mail
A67D875E…
Liczony jest skrót
wiadomości.
Obliczony skrót
wiadomości
22/35
?=?
Skróty są porównywane.
Skrót wiadomości jest
odszyfrowywany kluczem
publicznym Małgosi,
pobranym z
certyfikatu.
Odszyfrowany skrót
wiadomości
Szyfrowanie
Małgosia pisze
list do Jasia.
e-mail
Wiadomość jest szyfrowana
symetrycznym kluczem sesji
Wiadomość jest
wysyłana do Jasia.
23/35
6A7EF82
6D67A…
A67D875E…
Symetryczny klucz sesji
jest szyfrowany
kluczem publicznym Jasia.
A67D875E…
Zaszyfrowany klucz sesji
jest dołączany do wiadomości.
Odszyfrowywanie
Przychodzi list
od Małgosi
6A7EF82
6D67A…
A67D875E…
Wiadomość jest odszyfrowywana
symetrycznym kluczem sesji
e-mail
24/35
Z wiadomości pobierany jest
zaszyfrowany symetryczny klucz sesji.
A67D875E…
Symetryczny klucz sesji
jest odszyfrowywany
kluczem prywatnym Jasia
Logowanie
Podpisane
dane
Weryfikacja
podpisu
Jeżeli dane są podpisane
prawidłowo to znaczy, że:
posiadasz klucz prywatny
związany z certyfikatem,
a to znaczy, że:
jesteś tym, za kogo się
podajesz o ile ufam CA,
które wystawiło Ci certyfikat.
25/35
Zastosowanie kluczy
• Co Małgosia może zrobić z kluczami?
klucze publiczne
Jasia i Małgosi
klucz prywatny
Jasia
klucz prywatny
Małgosi
Podpisać wiadomość do Jasia, używając klucza prywatnego Małgosi.
Chronić swoje dane (pliki), używając klucza publicznego Małgosi.
Zaszyfrować wiadomość do Jasia, używając klucza publicznego Jasia.
26/35
Wykorzystanie T=CL
• Zwykle aplikacje dostępne są poprzez interfejs
stykowy karty
• Interfejs bezstykowy udostępnia MIFARE®
• Nowoczesne karty posiadające interfejs dualny
pozwalają na dostęp do aplikacji poprzez
interfejs bezstykowy
• Możliwość wykorzystania w systemach KD
27/35
Wykorzystanie T=CL
• Brak ograniczenia technologii MIFARE®
• Dostęp do większego obszaru pamięci
• Dostęp do bardziej zaawansowanych operacji
• Wykorzystanie danych użytkownika związanych
z jego tożsamością cyfrową (głównie PKI)
28/35
Wykorzystanie PKI w KD
• Identyfikowanie użytkownika:
Wygeneruj
losowyciąg znaków
(challenge)
Weryfikacja podpisu
i identyfikacja podmiotu
Udzielenie dostępu
lub odmowa dostępu
do zasobu
29/35
losowe dane
podpisane dane
+ certyfikat .
sygnał sterujący
Wykorzystanie PKI w KD
Zarządzanie KD
•
•
30/35
Zarządzanie
cyfrową tożsamością
Wykorzystanie wspólnych danych związanych z użytkownikiem
Wykorzystanie istniejących systemów zarządzania (CMSy)
Interfejs karty
• Obecne protokoły T=0, T=1, T=CL
• Protokoły (T=0/1, T=CL, USB …) są protokołami na
poziomie komunikacji/warstwy fizycznej, korzystając z
nich w warstwie aplikacyjnej zwykle używamy komend
o strukturze APDU.
• Komendy uzależnione są od aplikacji znajdującej się na
karcie (profil karty)
• Przykład:
wybór aplikacji po AID (karta java`owa, aplikacja – aplet
IDOne):
-> 00 A4 04 0C 10 A0 00 00 00 77 01 03 03 00 00 00 F1 00 00 00 02
<- 90 00
31/35
Wykorzystanie PKI z T=CL
• Odczyt certyfikatu z karty:
…
reader.TransmitCommand(
reader.TransmitCommand(
reader.TransmitCommand(
reader.TransmitCommand(
byte[] certificateBytes
…
new SelectIdOneAppletCommad() );
new SelectFileCommad(0x3F, 0x00));
new SelectFileCommad(0x50, 0x11));
new SelectFileCommad(0x90, 0x01));
= readBinaryFile(reader, 0x20, 0x00);
00 A4 04 0C 10 A0 00 00 00 77 01 03 03 00 00 00 F1 00 00 00 02 -> 90 00
00 A4 00 0C 02 3F 00 -> 90 00
00 A4 00 0C 02 50 11 -> 90 00
00 A4 00 0C 02 90 01 -> 90 00
00 A4 00 0C 02 20 00 -> 90 00
00 A4 00 00 02 20 00 -> 90 00 6F 16 80 02 02 D6 82 02 01 01 83 02 20 00 86 08 00 00 00 FF FF…
00 B0 00 00 FF -> 90 00 30 82 02…
32/35
Dedykowane aplikacje KD
• Możliwość stworzenia dedykowanej aplikacji dla
systemu kontroli dostępu.
• Przeniesienie części logiki systemu KD na kartę:
– informacje nt. dostępu do pomieszczeń
– liczniki
• Możliwość oddzielenia funkcjonalności
ładowania kredytów od zarządzania kontrolą
dostępu.
33/35
Pytania
34/35
Dziękujemy za uwagę