W tym poście krótko opiszę jak korzystać z OSDP, które funkcje należy uruchamiać i jak ustawić by komunikacja była maksymalnie bezpieczna.
# 1 - Secure channel
Protokół OSDP umożliwia pracę w trybie szyfrowania AES-128, co znacząco podnosi poziom bezpieczeństwa transmisji. Należy jednak pamiętać, że to jest opcja. Większość czytników może spokojnie pracować w trybie bez szyfrowania lub z użyciem domyślnych kluczy (np. 3132333435363738393A3B3C3D3E3F). Takie rozwiązanie, co prawda wygodne na etapie testów, nie zapewni bezpieczeństwa przed snifferami danych czy atakami typu replay (czyli ponowne przesyłanie ramek). Każdy system oparty o OSDP, który nie korzysta z trybu Secure Channel (SC), narażony jest na przechwycenie ramek w formie otwartego tekstu. Czyli dane takie jak numery kart, identyfikatory użytkowników czy polecenia konfiguracyjne mogą zostać przechwycone. Co więcej, ramki te mogą być ponownie przesłane, a czytnik lub kontroler nie odróżni, czy jest to legalna transmisja, czy atak.
Wobec tego SC musi zostać ustawione oraz unikalne klucze muszą być zastosowane. Zapewni to maksymalną ochronę dostępną w tym protokole, co zminimalizuje ryzyko nieautoryzowanego dostępu.
# 2 - Rodzaj kart
Jeśli komunikacja jest już szyfrowana, to warto zadbać również o odpowiedni dobór kart. Najlepiej korzystać z rozwiązań zapewniających maksymalne bezpieczeństwo np Mifare Desife (oczywiście w oparciu o aplikację a nie numer seryjny) czy HID PAC. Nie zaleca się stosowania kart, która łatwo złamać. Stosowanie SC traci wtedy nie ma większego sensu. Łatwiej uzyskać dostęp do kart niż bawić się w podsłuchiwanie ramek na urządzeniu. Oczywiście bez OSDP z SC stosowanie bezpiecznego standardu karty też jest dobrym pomysłem.
Wiele czytników obsługujące OSDP często mają możliwość czytania wielu rodzajów typów kart. Na głowicy należy ograniczyć taką możliwość do kart stosowanych w organizacji i żadnych innych. Minimalizuje to uzyskania dostępu nieautoryzowanym nośnikiem.
W przypadku zmiany standardu kart najlepszym rozwiązaniem jest przeprogramowanie czytników. Szczególnie w firmach, w których wysoki poziom bezpieczeństwa jest priorytetem. Pozwala to na utrzymanie spójności i skuteczności całego systemu.
# 3 Instalation Mode:
Jest to specjalny tryb czytnika. który służy do ustawiania adresów czy zapisywania kluczy. Jeśli konfigurujemy głowicę to należy zrobić pełną konfigurację czyli klucze, adres itp. Ten tryb powinien być wykorzystywany jednokrotnie, i na produkcji, nie na instalacji w docelowym punkcie. Należy także się upewnić, że po ustawieniu parametrów, urządzenie wyszło z tego trybu.
# 4 Ramki bez szyfrowania
Korzystanie z ramek bez szyfrowania powinno być dopuszczalne jedynie na etapie wstępnych testów w środowisku produkcyjnym. W instalacjach zawsze należy aktywować SC i pracować z unikalnymi kluczami. Brak szyfrowania eliminuje realną wartość wdrożenia OSDP jako protokołu zapewniającego wysoki poziom bezpieczeństwa i staje się poważną luką w całym systemie kontroli dostępu. O czym już wspomniałem w punkcie 1.
Dodatkowo niektóre ramki mogą występować w postaci otwartej, mimo ustawienia SC. Należy upewnić się, że wybrany przez nas czytnik nie dopuszcza takich ramek. Oczywiście poza tymi które są konieczne do ustawienia SC.
Niektóre czytniki mogą np. wyjść z trybu SC w przypadku błędnej komunikacji i zezwalać na komunikację nieszyfrowana czy dopuszczać wysyłanie ramek jak ID czy CAP jako nieszyfrowane, głównie do celów diagnostycznych.
# 5 Przesyłanie kluczy:
Klucze do urządzenia nadajemy albo podczas jego konfiguracji, przez zewnętrzne programy, bądź w trybie Installation Mode. W celu maksymalnego bezpieczeństwa urządzenie komunikujące się z czytnikiem nie może samo ustawiać kluczy. Musi mieć już te klucze zaimplementowane i od razu po podłączeniu głowicy z zgodnymi kluczami zacząć działać. Nie należy stosować domyślnych kluczy w celu inicjalizacji na istniejącej instalacji.