Turvakest

Allikas: Vikipeedia

Turvakest (ingl Secure Shell, SSH) on võrguprotokoll, mis võimaldab andmeid saata üle turvalise kanali.[1]

Põhiliselt kasutatakse SSH-d võrgumasinasse logimisel autentimiseks. SSH asendab Telneti, mis saadab kogu teabe, kaasa arvatud salasõnad, krüpteerimata lihttekstina[2]. SSH krüpteering pakub konfidentsiaalsust turvamata võrkudes, näiteks internetis.

Definitsioon[muuda | muuda lähteteksti]

SSH kasutab avaliku võtme krüpteerimist, et autentida võrguarvuti ja vajadusel ka kasutaja.

SSH-d kasutatakse enamasti võrguarvutisse sisselogimiseks ja seal tegutsemiseks, kuid SSH toetab ka tunneldamist, TCP portide suunamist ja X11 ühendusi. SSH-ga saab faile edastada SFTP või SCP partnerprotokollide kaudu. SSH põhineb klient-server arhitektuuril.

Standardne TCP port 22 on määratud SSH serveritega ühendumiseks[3].

Tavaliselt kasutatakse SSH klientprogrammi, et ühenduda SSH serveriga, mis võtab vastu SSH ühendusi. Mõlemad on reeglina kaasas enamikus uuemates operatsioonisüsteemides, näiteks Mac OS, Linux, FreeBSD, Solaris ja OpenVMS. Tegelikkuses saab SSH serveriks olla mistahes operatsioonisüsteem, ka Windows, kui leidub vastav tarkvara.

Ajalugu ja areng[muuda | muuda lähteteksti]

Versioon 1.0[muuda | muuda lähteteksti]

1995. aastal kirjutas Helsingi Tehnikaülikooli insener Tatu Ylönen esimese versiooni (SSH-1) tema ülikoolis korraldatud salasõna nuuskimise (password-sniffing) rünnaku tõttu. SSH eesmärk oli asendada rlogin, Telnet ja rsh protokollid, mis ei pakkunud erilist turvalisust ega konfidentsiaalsust. Ylönen väljastas oma programmi vabavarana 1995. aasta juulis ja see muutus kiiresti populaarseks. 1995. aasta lõpuks oli SSH kasutajate hulk kasvanud 20 000 kasutajani 50 riigist.

1995. aasta detsembris asutas Ylönen ettevtte SSH Communications Security, et müüa ja arendada SSH-d. Originaalversioon kasutas paljusid vabavara lõike, näiteks GNU libgmp, kuid hilisemad versioonid olid üha enam mõeldud äriliseks kasutamiseks.

Versioon 2.0[muuda | muuda lähteteksti]

SSH versiooni 2.0 kirjutas Internetiehituse töörühma (IETF) üksus "Secsh"[4]. 1996 muutus uuendatud versioon standardiks (SSH-2), mis ei ühildunud SSH-1 -ga. SSH-2 lisab funktsionaalsust ja suurendab turvalisust. Näiteks turvalisuses (Diffie-Hellmani võtmevahetus) ja funktsionaalsuses võimaldab SSH-2 luua mitu ühendust üle ühe SSH tunneli[5].

SSH Kompensatsiooni Rünnaku Tuvastaja[muuda | muuda lähteteksti]

1998. aastal avastati SSH 1.5 turvaauk, mis lubas pahalasel sisestada andmeid krüpteeritud SSH andmevoogu. Viga tulenes kasutusel olevast CRC-32 ebapiisavast terviklikkuse kontrollist.[6] Enamikus SSH versioonides võeti kasutusele rünnaku tuvastaja (inglise keeles SSH Compensation Attack Detector), mis selle turvaaugu parandas.[7]

OpenSSH[muuda | muuda lähteteksti]

1999. aastal tekkis arendajatel idee luua uus vabavaraline SSH rakendus. Björn Grönvall kirjutas OSSH, mis põhines SSH versioonil 1.2.12, mis oli viimane vabavara litsentsiga versioon. Kohe pärast seda tegid OpenBSD arendajad Grönvalli koodiga tublit arendustööd luues OpenSSH, mis lasti välja koos OpenBSD versiooniga 2.6. Sellest versioonist loodi "mobiilne" haru, võimaldamaks OpenSSH-d ka teistes operatsioonisüsteemides kasutada.

Aastal 2000 oli SSH-l hinnanguliselt 2 000 000 kasutajat.[8]

Alates 2005. aastast on OpenSSH kõige populaarsem SSH rakendus, olles vabavarana kaasas paljudes operatsioonisüsteemides. OSSH on käibelt kadunud.[9]

SSH-2 Interneti standard[muuda | muuda lähteteksti]

Originaalpublikatsioon[muuda | muuda lähteteksti]

2006. aasta jaanuaris pakkus IETF-i töörühm "Secsh" välja, et võtta SSH-2 interneti standardiks.

  • RFC 4250, The Secure Shell (SSH) Protokollis määratud numbrid
  • RFC 4251, The Secure Shell (SSH) Protokolli arhitektuur
  • RFC 4252, The Secure Shell (SSH) Autentimise protokoll
  • RFC 4253, The Secure Shell (SSH) Transpordikihi protokoll
  • RFC 4254, The Secure Shell (SSH) Ühenduse protokoll
  • RFC 4255, Secure Shelli turvaline avalikustamine DNS-i (SSH) Võtme sõrmejälgede (Key Fingerprints) abil
  • RFC 4256, Üldine autentimine sõnumite vahetuse jaoks (SSH)
  • RFC 4335, The Secure Shell (SSH) Sessiooni kanali lõpetamise laiend
  • RFC 4344, The Secure Shell (SSH) Transpordikihi krüpteerimise režiimid
  • RFC 4345, Parandatud Arcfour režiimid SSH Transpordikihi protokollile

Hilisemad muudatused[muuda | muuda lähteteksti]

Hiljem muudeti ja laiendati standardit järgmistes publikatsioonides.

  • RFC 4419, Diffie-Hellman Group Exchange Secure Shell (SSH) Transport Layer Protocol (märts 2006)
  • RFC 4432, RSA Key Exchange for the Secure Shell (SSH) Transport Layer Protocol (märts 2006)
  • RFC 4716, The Secure Shell (SSH) Public Key File Format (november 2006)

Lihttekstirünnak[muuda | muuda lähteteksti]

2008. aastal avastati SSH-2 viga, mis lubas teatud tingimustel kuni 4 baiti lihtteksti SSH andmevoost kätte saada.[10] Seda nimetatakse lihttekstirünnakuks (Plaintext Recovery Attack). See on ära parandatud, muutes vaikekrüpteeringu režiime, alates OpenSSH 5.2-st.[11]

Failiedastus üle SSH[muuda | muuda lähteteksti]

Lõpuks muutus failiedastusprotokolli tunneldamine SSH-protokolli abil uueks protokolliks. Näiteks:

  • SSH failiedastusprotokoll (SFTP), mis tulenes FTP-st üle SSH
  • Turvakoopiaprotokoll (SCP), mis tulenes RCP-st üle SSH
  • Faili edastus üle käsurea protokolli (FISH) väljastati 1998. See tulenes Unixi käsurea kasutamisest üle SSH.

IETF standardid ei ole mõeldud nende protokollide jaoks. IETF on koostanud hunniku visandeid SFTP jaoks, kuid alates aastast 2006 on nende arendamine seisatud, põhjuseks vaidlus selle üle, et SFTP olevat failisüsteem.[12]

Vaata ka[muuda | muuda lähteteksti]

Viited[muuda | muuda lähteteksti]