TLS i jego poprzednik, SSL są protokołami kryptograficznymi zapewniającymi bezpieczeństwo komunikacji (poufność i integralność w niektórych przypadkach i niezaprzeczalność w innych przypadkach) przez sieć.

W jednokierunkowym TLS, lub zwykłym TLS, certyfikat serwera X.509 jest tworzony przez CA, któremu klient może zaufać, gdy chce się połączyć. Infrastruktura klucza publicznego (PKI) jest odpowiedzialna za zarządzanie zaufaniem i dystrybucję certyfikatu(ów). Urzędy Certyfikacji (CA) odgrywają bardzo ważną rolę w PKI. Certyfikat X.509 jest niczym innym jak informacją o serwerze i kluczem publicznym serwera podpisanym cyfrowo przez CA.

Serwer może być skonfigurowany tak, aby zezwalał na połączenia od każdego klienta (jak w jednokierunkowym TLS) lub może być skonfigurowany tak, aby żądał uwierzytelnienia od każdego klienta, który próbuje się z nim połączyć. Tak więc, aby klient mógł się uwierzytelnić, musi posiadać certyfikat klienta. W dwukierunkowym uwierzytelnianiu TLS, aka TLS z uwierzytelnianiem za pomocą certyfikatu klienta, oprócz certyfikatu serwera wykorzystywany jest również certyfikat klienta, aby wzmocnić proces uwierzytelniania. Podobnie jak certyfikat serwera, certyfikat klienta zawiera podstawowe informacje o tożsamości klienta, jego klucz publiczny, a podpis cyfrowy CA na tym certyfikacie weryfikuje autentyczność tych informacji. Certyfikat klienta powinien być podpisany przez CA, któremu ufa serwer i oczywiste jest, że oba certyfikaty X.509 powinny istnieć przed połączeniem!

Jeden sposób TLS jest wystarczająco bezpieczny, gdy używasz go z Uwierzytelnianiem, coś, co napotykasz, gdy chcesz zalogować się do Gmaila. Gdy korzystasz z interfejsu internetowego Gmaila, oprócz hasła używasz jednokierunkowego TLS za pośrednictwem funkcji https przeglądarki. Jeśli nie używają Państwo hasła, tylko Państwo mogą sprawdzić, czy zostali połączeni z legalnym serwerem, ale serwer Gmaila nie może zweryfikować Państwa tożsamości, więc nie możemy powiedzieć, że połączenie jest bezpieczne. Jeśli Gmail oferuje dwukierunkowy TLS, można łatwo połączyć się z nim bez podawania hasła, a połączenie jest uważane za bezpieczne.

Głównym celem stosowania dwukierunkowego połączenia TLS byłaby sytuacja, w której serwer powinien akceptować połączenia TLS tylko od ograniczonej grupy dozwolonych klientów. Przykładem może być scenariusz, w którym organizacja chce ograniczyć połączenia TLS do serwera, aby pochodziły one tylko od uprawnionych partnerów lub klientów organizacji. Zdecydowanie IP whitelisting dla klientów nie jest dobrą praktyką bezpieczeństwa, ponieważ IP może być spoofed.

Aby uprościć proces 2way TLS handshake, możemy powiedzieć

  1. Klient wysyła żądanie dostępu do chronionych informacji na serwerze.

2. Serwer przedstawia swój certyfikat X.509 klientowi swój certyfikat X.509.

3. Klient weryfikuje certyfikat serwera przez sprawdzenie poprawności podpisu cyfrowego klucza publicznego serwera za pomocą klucza publicznego CA.

4. Jeśli ostatni krok zakończy się powodzeniem, klient wysyła swój certyfikat do serwera.

5. Serwer weryfikuje certyfikat klienta, stosując to samo podejście, co w kroku 3.

6. W przypadku powodzenia serwer udostępnia klientowi chronione informacje.

Jeśli musisz skonfigurować serwer WWW Apache do obsługi dwukierunkowego TLS, zapoznaj się z tym dokumentem: http://www.robinhowlett.com/blog/2016/01/05/everything-you-ever-wanted-to-know-about-ssl-but-were-afraid-to-ask/

Articles

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.