Mitä SSH oikeasti tekee
Vaikka Splync käyttää HTTPS:ää suojatakseen yhteyden älypuhelimesi ja palvelimemme välillä, meidän on silti suojattava itse palvelin varmistaaksemme käyttäjätietojen turvallisuuden. Sovelluskehittäjät ja järjestelmänvalvojat tarvitsevat tavan päästä palvelimelle ylläpitämään ja päivittämään sitä — turvallisesti. Tässä SSH (Secure Shell) tulee apuun. Se on protokolla, joka mahdollistaa valtuutettujen käyttäjien kirjautumisen etätietokoneisiin turvallisesti, jopa epäluotettavien verkkojen kautta. SSH korvaa vanhemmat, turvattomat menetelmät kuten Telnetin, joka lähetti käyttäjänimet ja salasanat selkokielisinä.
Avainparien idea
SSH ei perustu tavalliseen salasanaan. Sen sijaan se käyttää kryptografisia avaimia — julkista ja yksityistä avainparia. Ajattele niitä kuin lukkoa ja avainta, jotka sopivat yhteen. Julkinen avain on palvelimella ja yksityinen avain pysyy käyttäjällä. Kun yhdistät, palvelin haastaa sinut todistamaan, että sinulla on yksityinen avain, ilman että se koskaan paljastuu. Tämä tekee lähes mahdottomaksi, että kukaan kuuntelisi ja teeskentelisi olevansa sinä. Perinteiset salasanat voidaan arvata, vuotaa tai käyttää uudelleen, mutta SSH-avaimet ovat pitkiä, satunnaisia kryptografisia merkkijonoja — käytännössä arvattamattomia. Vaikka joku haistelisi yhteyttä, kaikki mitä he näkevät, on salattua kohinaa. Ja koska SSH-avaimia ei koskaan lähetetä verkon kautta, ei ole mitään varastettavaa matkalla.
Miltä SSH-avain näyttää
Jos et ole koskaan nähnyt SSH-avainta, se saattaa kuulostaa abstraktilta — mutta se on oikeastaan vain pitkä koodattu tekstilohko. Julkinen avain on tyypillisesti muutaman sadan merkin pituinen, kun taas yksityinen avain voi olla yli tuhat merkkiä pitkä. Molemmat tallennetaan tekstitiedostoina, mutta niiden sisältö näyttää satunnaiselta kohinalta — kirjain-, numero- ja symbolisekoitukselta. Julkisen avaimen voi jakaa turvallisesti; se on kuin lukon laittaminen palvelimelle. Yksityinen avain taas on henkilökohtainen digitaalinen identiteettisi, jota ei koskaan saa jakaa. Se tallennetaan paikallisesti tietokoneellasi ja sitä käytetään vain todistamaan, kuka olet — paljastamatta avainta.
Julkinen ja yksityinen avain
Julkinen avain on kuin lukko, jonka kiinnität taloosi. Kuka tahansa voi nähdä sen kadulta, aivan kuten oven lukon. Mutta pelkkä lukon katsominen ei kerro, miten se avataan. Toisin sanoen, kuka tahansa voi nähdä sen, mutta vain oikea avain voi avata sen. Yksityinen avain taas on avain, joka avaa lukon — ja se pysyy turvallisesti sinulla. Jos joku muu saa yksityisen avainesi haltuunsa, he voivat tulla taloosi kuin olisivat sinä. Siksi se on pidettävä salassa.
SSH-mekanismi
Jokainen julkinen ja yksityinen avain muodostaa ainutlaatuisen parin. Ne luodaan yhdessä matemaattisella prosessilla niin, että vain kyseinen yksityinen avain sopii vastaavaan julkiseen avaimeen. Voit ajatella niitä kuin tilaustyönä tehtyä lukkoa ja avainta — takomalla yhdessä, eikä mikään muu avain maailmassa sovi siihen lukkoon. Vaikka loisit toisen parin samankaltaisella algoritmilla (kuten RSA tai Ed25519), numerot sisällä ovat täysin erilaiset. Matematiikka, joka yhdistää ne kaksi, on yksisuuntainen: voit helposti johtaa julkisen avaimen yksityisestä avaimesta, mutta käytännössä on mahdotonta kääntää prosessia ja löytää yksityinen avain julkisesta avaimesta. Siksi jokainen SSH-avainpari on ainutlaatuinen ja turvallinen.
Miten SSH todistaa henkilöllisyytesi
Kun kirjaudut palvelimelle SSH:lla, yksityinen avainesi ei koskaan poistu tietokoneeltasi. Sen sijaan palvelin lähettää satunnaisen haasteen — kuin kertakäyttöinen palapeli — jonka vain yksityinen avaimesi voi ratkaista. Tietokoneesi allekirjoittaa haasteen matemaattisesti, tuottaen lyhyen vastauksen, jonka palvelin voi tarkistaa julkisella avaimesi. Jos vastaus sopii, palvelin tietää, että sinulla on oikea yksityinen avain — näkemättä sitä koskaan. Tämä on modernin kryptografian taika: voit todistaa henkilöllisyytesi paljastamatta salaisuuttasi. SSH-todennus toimii, koska yksityinen avainesi sisältää kaiken tiedon julkisen avaimen johtamiseen, mutta käänteinen prosessi on käytännössä mahdoton.
Miten kehittäjät käyttävät SSH:ta käytännössä
Joka kerta kun kehittäjät ottavat käyttöön koodia, päivittävät tietokantaa tai käynnistävät palvelun uudelleen, he usein yhdistävät etäpalvelimiinsa SSH:n kautta. Todennuksen jälkeen he saavat turvallisen komentoriviyhteyden palvelimelle. Sieltä he voivat hallita tiedostoja, käynnistää palveluita tai tarkastella lokitiedostoja — kaikki päästä päähän salattuja. Splyncin tapauksessa SSH on tapa, jolla hallitsemme pilvipalvelintamme turvallisesti. Jokainen hallinnollinen toimenpide — päivitysten käyttöönotto, lokien tarkastaminen, tietojen varmuuskopiointi — tehdään SSH-yhteyksien kautta, joita suojaavat kryptografiset avaimet. Kukaan ei pääse palvelimelle ilman oikeaa yksityistä avainta. Vaikka joku tietäisi IP-osoitteemme, ilman avainta ovi ei yksinkertaisesti avaudu.
Tulossa seuraavaksi: salaus palvelimen sisällä
SSH suojaa palvelimen sisäänkäyntiä ja HTTPS suojaa tietoja kuljetuksen aikana. Mutta kun tiedot päätyvät tietokantaan, miten pidämme ne turvassa? Tässä kohtaa hajautus ja salaus astuvat kuvaan — viimeinen puolustuskerros.