Mit is csinál valójában az SSH
Bár a Splync HTTPS-t használ a telefonod és a szerver közötti útvonal védelmére, magát a szervert is meg kell védenünk, hogy a felhasználói adatok biztonságban legyenek. Az alkalmazásfejlesztőknek és a rendszergazdáknak szükségük van egy biztonságos módszerre, hogy elérjék a szervert, és karbantartási vagy frissítési feladatokat végezzenek. Itt jön képbe az SSH (Secure Shell). Ez egy protokoll, amely lehetővé teszi a jogosult felhasználók számára, hogy biztonságosan bejelentkezzenek távoli számítógépekre, még megbízhatatlan hálózatokon keresztül is. Az SSH helyettesíti a régi, nem biztonságos módszereket, mint a Telnet, amely egyszerű szövegként küldte a felhasználóneveket és jelszavakat.
A „kulcsok” mögötti ötlet
Az SSH nem hagyományos jelszóra támaszkodik. Ehelyett kriptográfiai kulcsokat használ — egy nyilvános és egy privát kulcsot, amelyek csak egymással párosíthatók. Gondolj rájuk úgy, mint egy zárra és egy kulcsra, amelyek csak egymáshoz illenek. A nyilvános kulcs a szerveren van, míg a privát kulcs a felhasználónál marad. Amikor csatlakozol, a szerver kihívást intéz hozzád, hogy bizonyítsd, birtoklod a privát kulcsot, anélkül hogy azt valaha is felfednéd. Ez szinte lehetetlenné teszi, hogy bárki, aki belehallgat, utánozzon téged. Míg a hagyományos jelszavakat ki lehet találni, kiszivároghatnak vagy újra felhasználhatók, az SSH-kulcsok hosszú, véletlenszerű kriptográfiai karakterláncok — gyakorlatilag kitalálhatatlanok. Még ha valaki lehallgatja is a kapcsolatot, mindössze titkosított zajt lát. És mivel az SSH-kulcsok soha nem kerülnek átküldésre a hálózaton, nincs mit ellopni az adatátvitel során.
Hogyan néz ki valójában egy SSH-kulcs
Ha még soha nem láttál SSH-kulcsot, elvontnak tűnhet — de valójában csak egy hosszú, kódolt szöveges blokk. A nyilvános kulcs általában néhány száz karakter hosszú, míg a privát kulcs több mint ezer is lehet. Mindkettőt szövegfájlként tárolják, de tartalmuk véletlenszerű zajnak tűnik — betűk, számok és szimbólumok keveréke. A nyilvános kulcs megosztása biztonságos; olyan, mintha a záradat a szerverre helyeznéd. A privát kulcs viszont az egyedi digitális személyazonosságod, és soha nem szabad megosztanod. Helyileg a számítógépeden van tárolva, és csak arra használható, hogy igazold, ki vagy — anélkül, hogy valaha is felfednéd a kulcsot.
Nyilvános kulcs és privát kulcs
A nyilvános kulcs olyan, mint egy zár, amit a házadra teszel. Bárki láthatja az utcáról, akárcsak a bejárati ajtód zárját. De a zár látványa nem árulja el, hogyan nyitható ki. Más szóval, bárki láthatja, de csak a megfelelő kulcs képes kinyitni. A privát kulcs ezzel szemben az a kulcs, amelyik kinyitja a zárat — és biztonságosan nálad marad. Ha valaki más megszerzi a privát kulcsodat, bejuthat a házadba, mintha te lennél. Ezért kell mindig titokban tartani.
Az SSH mechanizmusa
Minden nyilvános és privát kulcs egy egyedi párost alkot. Egy matematikai folyamat generálja őket együtt, így csak az adott privát kulcs képes illeszkedni a hozzá tartozó nyilvános kulcshoz. Gondolj rájuk úgy, mint egy egyedi zárra és kulcsra, amelyeket együtt kovácsoltak, és a világon semmilyen más kulcs nem illik abba a zárba. Még ha ugyanazzal az algoritmussal (mint például RSA vagy Ed25519) generálsz is egy másik párt, a belső számok teljesen különbözőek lesznek. A köztük lévő matematikai kapcsolat egyirányú: könnyen előállítható a nyilvános kulcs a privát kulcsból, de az ellenkező irány szinte lehetetlen, és a nyilvános kulcsból nem lehet a privát kulcsot visszafejteni. Ezért minden SSH-kulcspár egyedi és biztonságos.
Hogyan igazolja az SSH, hogy ki vagy
Amikor SSH-val jelentkezel be egy szerverre, a privát kulcsod soha nem hagyja el a számítógépedet. Ehelyett a szerver küld egy véletlenszerű kihívást — mint egy egyszeri rejtvényt —, amit csak a privát kulcsod tud megoldani. A számítógéped matematikailag aláírja ezt a kihívást, létrehozva egy rövid választ, amit a szerver a nyilvános kulcsoddal ellenőrizhet. Ha a válasz illik, a szerver tudja, hogy a megfelelő privát kulcs van nálad — anélkül, hogy valaha is látná azt. Ez a modern kriptográfia varázsa: igazolhatod a személyazonosságodat anélkül, hogy felfednéd a titkodat. Az SSH-hitelesítés azért működik, mert a privát kulcsod tartalmazza az összes információt a nyilvános kulcs előállításához, de visszafelé szinte lehetetlen.
Hogyan használják a fejlesztők az SSH-t a gyakorlatban
Valahányszor a fejlesztők kódot telepítenek, frissítik az adatbázist vagy újraindítanak egy szolgáltatást, gyakran SSH-n keresztül csatlakoznak a távoli szerverekhez. A hitelesítés után biztonságos parancssori kapcsolatot biztosít a szerverrel. Innen kezelhetik a fájlokat, újraindíthatják a szolgáltatásokat, vagy átnézhetik a naplókat — mindezt titkosított módon. A Splync esetében az SSH az, ahogy biztonságosan kezeljük a felhő szerverünket. Minden adminisztratív művelet — frissítések telepítése, naplók ellenőrzése, adatok biztonsági mentése — kriptográfiai kulcsokkal védett SSH-kapcsolaton keresztül történik. Senki nem férhet hozzá a szerverhez a megfelelő privát kulcs nélkül. Még ha valaki ismeri az IP címünket, a kulcs nélkül az ajtó egyszerűen nem nyílik ki.
Következő: Titkosítás a szerveren belül
Az SSH védi a szerver bejáratát, a HTTPS pedig az adatokat a továbbítás során. De ha az adatok a adatbázisba kerülnek, hogyan védjük meg őket? Itt jön képbe a hashelés és a titkosítás — a végső védelmi réteg.