Ta strona jest automatycznie tłumaczona na wiele języków za pomocą oprogramowania stworzonego przez Kohei Koyanagi. Dla najwyższej dokładności zajrzyj do oryginału w angielskim .

Dlaczego Splync używa SSH — Niewidoczny klucz bezpieczeństwa serwerów

Co naprawdę robi SSH

Chociaż Splync używa HTTPS do zabezpieczenia trasy między Twoim smartfonem a naszym serwerem, musimy także chronić sam serwer, aby zapewnić bezpieczeństwo danych użytkowników. Twórcy aplikacji i administratorzy systemów potrzebują sposobu na bezpieczne wejście na serwer, aby go utrzymywać i wdrażać aktualizacje. Tutaj pojawia się SSH (Secure Shell). To protokół, który pozwala autoryzowanym użytkownikom na bezpieczne logowanie się do zdalnych komputerów, nawet przez nieufne sieci. SSH zastępuje starsze, mniej bezpieczne metody, jak Telnet, który wysyłał nazwy użytkowników i hasła w formie zwykłego tekstu.

Idea „kluczy”

SSH nie opiera się na typowym haśle. Zamiast tego używa kluczy kryptograficznych — pasującej pary klucza publicznego i prywatnego. Pomyśl o nich jak o zamku i kluczu, które pasują tylko do siebie. Klucz publiczny znajduje się na serwerze, a klucz prywatny pozostaje przy użytkowniku. Gdy się łączysz, serwer prosi Cię o udowodnienie, że posiadasz klucz prywatny, nie zdradzając go. To sprawia, że podszywanie się pod Ciebie jest prawie niemożliwe. Podczas gdy konwencjonalne hasła mogą być zgadywane, wyciekać lub być ponownie używane, klucze SSH to długie, losowe ciągi kryptograficzne — praktycznie nie do odgadnięcia. Nawet jeśli ktoś podsłucha połączenie, zobaczy tylko zaszyfrowany szum. A ponieważ klucze SSH nigdy nie są przesyłane przez sieć, nie ma czego ukraść w trakcie.

Jak wygląda klucz SSH

Jeśli nigdy nie widziałeś klucza SSH, może brzmieć abstrakcyjnie — ale to po prostu długi blok zakodowanego tekstu. Klucz publiczny ma zazwyczaj kilka setek znaków, a klucz prywatny może przekroczyć tysiąc. Oba są przechowywane jako pliki tekstowe, ale ich zawartość wygląda jak losowy szum — mieszanka liter, cyfr i symboli. Klucz publiczny jest bezpieczny do udostępniania; to jak umieszczenie zamka na serwerze. Klucz prywatny z kolei to twoja unikalna cyfrowa tożsamość i nigdy nie powinien być udostępniany. Jest przechowywany lokalnie na Twoim komputerze i używany tylko do potwierdzenia, kim jesteś — bez ujawniania samego klucza.

Klucz publiczny i klucz prywatny

Klucz publiczny jest jak zamek, który przymocowujesz do domu. Każdy może go zobaczyć z ulicy, tak jak zamek na drzwiach wejściowych. Ale patrzenie na zamek nie mówi nikomu, jak go otworzyć. Innymi słowy, każdy może go zobaczyć, ale tylko właściwy klucz może go otworzyć. Z kolei klucz prywatny to klucz, który otwiera zamek — i pozostaje bezpiecznie przy Tobie. Jeśli ktoś inny zdobędzie Twój klucz prywatny, może wejść do domu, jakby był Tobą. Dlatego musi być zawsze trzymany w tajemnicy.

Mechanizm SSH

Każda para klucza publicznego i prywatnego tworzy unikalną parę jeden na jeden. Są generowane razem przez proces matematyczny, tak że tylko ten konkretny klucz prywatny pasuje do odpowiadającego mu klucza publicznego. Możesz myśleć o nich jako o zamku i kluczu na zamówienie — wykonane razem, a żaden inny klucz na świecie nie pasuje do tego zamka. Nawet jeśli wygenerujesz inną parę używając tego samego algorytmu (jak RSA czy Ed25519), liczby wewnątrz będą całkowicie różne. Matematyka, która łączy te dwa elementy, działa jednokierunkowo: możesz łatwo wyprowadzić klucz publiczny z klucza prywatnego, ale praktycznie niemożliwe jest cofnięcie procesu i znalezienie klucza prywatnego z klucza publicznego. Dlatego każda para kluczy SSH jest unikalna i bezpieczna.

Jak SSH potwierdza Twoją tożsamość

Kiedy logujesz się na serwer za pomocą SSH, Twój klucz prywatny nigdy nie opuszcza Twojego komputera. Zamiast tego serwer wysyła losowe wyzwanie — jak jednorazową łamigłówkę — które tylko Twój klucz prywatny może rozwiązać. Twój komputer podpisuje to wyzwanie matematycznie, tworząc krótką odpowiedź, którą serwer może sprawdzić za pomocą Twojego klucza publicznego. Jeśli odpowiedź pasuje, serwer wie, że masz właściwy klucz prywatny — bez jego widzenia. To magia współczesnej kryptografii: możesz potwierdzić swoją tożsamość, nie zdradzając swojego sekretu. Autoryzacja SSH działa, ponieważ Twój klucz prywatny zawiera wszystkie informacje potrzebne do wyprowadzenia klucza publicznego, ale odwrotnie jest praktycznie niemożliwe.

Jak twórcy używają SSH w praktyce

Za każdym razem, gdy twórcy wdrażają kod, aktualizują bazę danych lub restartują usługę, często łączą się ze swoimi zdalnymi serwerami za pomocą SSH. Po autoryzacji uzyskują bezpieczne połączenie wiersza poleceń z serwerem. Stamtąd mogą zarządzać plikami, restartować usługi lub sprawdzać logi — wszystko szyfrowane od końca do końca. W przypadku Splync, SSH to sposób, w jaki bezpiecznie zarządzamy naszym serwerem w chmurze. Każde działanie administracyjne — wdrażanie aktualizacji, sprawdzanie logów, tworzenie kopii zapasowych danych — odbywa się za pośrednictwem połączeń SSH chronionych kluczami kryptograficznymi. Nikt nie może uzyskać dostępu do serwera bez właściwego klucza prywatnego. Nawet jeśli ktoś znałby nasz adres IP, bez tego klucza drzwi po prostu się nie otworzą.

Co dalej: szyfrowanie wewnątrz serwera

SSH chroni wejście na serwer, a HTTPS chroni dane w tranzycie. Ale gdy dane trafiają do bazy danych, jak je zabezpieczyć? Tutaj w grę wchodzi haszowanie i szyfrowanie — ostatnia warstwa obrony.