O bezpieczeństwie

3 min Autor: Paweł Bogusławski
bezpieczeństwo

W trakcie projektowania zabezpieczeń usługi cybo.pl korzystaliśmy z naszych wieloletnich doświadczeń przy wdrożeniach i utrzymywaniu różnego rodzaju systemów IT z uwzględnieniem obserwowanych obecnie i rysujących się na horyzoncie zagrożeń. Bezpieczeństwo systemów IT to temat rzeka. W tym artykule opisane zostało kilka rozwiązań z obszaru bezpieczeństwa, w które zdecydowaliśmy się uzbroić serwisy cybo.pl.

Ku otwartości

Usługę cybo.pl zaprojektowaliśmy na bazie popularnego otwartego oprogramowania (przy którego rozwoju wspieramy aktywnie producentów) oraz otwartych standardów.

Stosowanie otwartego oprogramowania i otwartych standardów jest istotnym elementem wpływającym na bezpieczeństwo systemów IT i danych w nich zgromadzonych. Przekonaliśmy się o tym wielokrotnie w trakcie naszej działalności w sytuacjach gdy w działającym systemie pojawiał się unikalny problem, o którym nie wiedziały jeszcze ani popularne wyszukiwarki ani producent oprogramowania. W takiej sytuacji, gdybyśmy korzystali z aplikacji o zamkniętym kodzie źródłowym, bylibyśmy zdani na łaskę producenta, który mógłby ten problem rozwiązać lub nie. Ponieważ nasze usługi bazują na oprogramowaniu, którego kod źródłowy jest otwarty, mogliśmy samodzielnie zakasać rękawy i pilnie usunąć problem w będących pod naszą opieką systemach (np. gdy problem stwarzał zagrożenie dla bezpieczeństwa lub stabilności pracy) a następnie zgłosić problem i gotową poprawkę producentowi w celu jej zaaplikowania do pierwotnego kodu. W podobny sposób działają również inni użytkownicy tego samego oprogramowania co powoduje, że na poprawę jakości produktu praktyczny wpływ ma wiele różnych prodmiotów, często dysponujących pracownikami o unikalnych umiejętnościach.

Otwarty kod źródłowy to również możliwość prowadzenia niezależnych od producenta analiz, optymalizacji i audytów kodu a nawet kontynuowania wsparcia i rozwoju oprogramowania jako otwartego niezależnie od pierwotnego producenta np. w przypadku jeśli zakończy on wspieranie danego produktu lub podejmie decyzję o zamknięciu kodu źródłowego kolejnych wersji.

Innym ważnym elementem jest stosowanie otwartych standardów np. komunikacji, co pozwala na stosowanie przez użytkowników dowolnie wybranego przez nich sprzętu i oprogramowania klienckiego zgodnego z tymi standardami, np. na bazie obiektywnych ocen bezpieczeństwa/otwartości poszczególnych rozwiązań.

TLS 1.3

Ponieważ z serwisów cybo.pl mogą korzystać tylko upoważnieni przez Abonenta użytkownicy, to ustawiliśmy wysoko poprzeczkę wymagań związanych z jakością szyfrowania połączeń. Serwisy cybo.pl wymagają od użytkowników łączenia się za pomocą protokołu TLS w najnowszej wersji 1.3, która jest uznawana za bezpieczniejszą od wcześniejszych wersji (np. powszechnie jeszcze używanej wersji 1.2). Tak wysokich wymagań nie stosują jeszcze powszechnie nawet dostawcy bankowości internetowej.

Certyfikaty zamiast haseł

Najciekawszym chyba rozwiązaniem wdrożonym w usłudze cybo.pl jest odejście od stosowania haseł do uwierzytelniania użytkowników na rzecz kluczy prywatnych RSA i certyfikatów X.509. Świadomi irytacji użytkowników powodowanej koniecznością wymyślania skomplikowanych haseł, ich okresowej zmiany, dodawania kolejnych wymyślnych faktorów mających obchodzić niedoskonałości haseł oraz ryzyk związanych ze stosowaniem przez użytkowników tych samych haseł w wielu różnych miejscach zdecydowaliśmy się na zastosowanie uwierzytelniania opartego wyłącznie o klucze prywatne i certyfikaty.

Uwierzytelnianie tego typu jest stosowane z powodzeniem od wielu lat w drugim kierunku - łącząc się np. ze stronami bankowości internetowej za pomocą przeglądarki WWW i protokołu HTTPS korzystamy właśnie z uwierzytelniania serwera za pomocą prezentowanego przezeń certyfikatu X.509. W celu umożliwienia korzystania z tego samego rozwiązania w drugą stronę, w panelu administracyjnym serwisów cybo.pl udostępniamy proste narzędzie do generowania i odwoływania certyfikatów użytkowników serwisów cybo.pl. Zgodnie z założeniami szyfrowania asymetrycznego, użytkownik generuje sobie klucz prywatny w oparciu o wybrane rozwiązanie (np. plik generowany przez bezpłatne oprogramowanie OpenSSL lub klucz generowany w karcie procesorowej z ochroną dostępu do niego za pomocą PIN analogicznie jak w przypadku kart bankowych) a następnie na podstawie odpowiadającego mu klucza publicznego generowany jest przez administratora serwisu cybo.pl certyfikat pozwalający użytkownikowi na dostęp do tego serwisu.

Inne ciekawe możliwości certyfikatów użytkowników serwisów cybo.pl:

  • możliwość ustalenia uprawnień; dzięki czemu dany certyfikat może mieć dostęp do wybranych jedynie obszarów danego serwisu cybo.pl, np. certyfikat przeznaczony do zainstalowania na telefonie użytkownika może mieć dostęp jedynie do funkcji związanych z indywidualną skrzynką e-mail tego użytkownika,
  • możliwość oznaczenia certyfikatów jako upoważnionych do reprezentowania Abonenta przy roboczej komunikacji z nami i stosowania ich do elektronicznego podpisywania zgłoszeń przesyłanych do nas (np. podpis pod plikiem PDF lub wiadomością e-mail zgodnie z S/MIME) aby lepiej zabezpieczyć tę komunikację przed próbami podszwania się osób nieupoważnionych, niż np. w przypadku bardziej ryzykownych metod tj. resetowanie haseł za pomocą e-mail czy uwierzytelnianie poleceń za pomocą wiadomości SMS,
  • certyfikaty są wystawiane na czas określony co wymusza okresową weryfikację uprawnień przez administratorów serwisów cybo.pl i zabezpiecza przed pozostawieniem działających bezterminowo, zapomnianych dostępów.

Na wybór otwartego i powszechnie stosowanego standardu certyfikatów X.509 do uwierzytelniania użytkowników cybo.pl zdecydowaliśmy się również mając na uwadze wpływ przyszłych, prawdopodobnych możliwości komputerów kwantowych na bezpieczeństwo popularnych obecnie algorytmów kryptografii asymetrycznej tj. RSA czy ECC; już obecnie trwają bowiem prace mające na celu obsługę w certyfikatach X.509 algorytmów odpornych na możliwości przyszłych komputerów kwantowych, vide The Viability of Post-quantum X.509 Certificates, Algorithms and Identifiers for Post-Quantum Algorithms in the Internet X.509 Public Key Infrastructure.

Poprzedni wpis Następny wpis