SSH

Secure Shell eli SSH on salattuun tietoliikenteeseen tarkoitettu  protokolla. Yleisin SSH:n käyttötapa on ottaa etäyhteys SSH-asiakasohjelmalla SSH-palvelimeen päästäkseen käyttämään toista konetta merkkipohjaisen konsolin kautta. SSH:lla voidaan myös suojata FTP-, HTTP- tai muuta liikennettä, joka toimii samalla tasolla. Rlogin, telnet, rsh, rcp ja rdist suositellaan korvattavaksi SSH:lla, koska näiden yhteydenottotapojen suojaustaso on varsin heikko.

SSH-protokollan ensimmäisen version (SSH1) kehitti vuonna 1995 tekniikan lisensiaatti Tatu Ylönen, joka työskenteli tuolloin tutkijana teknillisessä korkeakoulussa. Sittemmin hän perusti SSH Communications Security -nimisen yrityksen.   Toisen version (SSH2) kehitti IETF, jota työryhmä kutsui nimellä "Secsh" kehitysvaiheessa. SSH2 julkaistiin vuonna 1998. RFC-dokumentit on julkaistu vuonna 2006, jonka jälkeen Secsh-työryhmä lopetti toimintansa.

Vuonna 1999 OpenBSD-projektin yhteydessä alettiin kehittää vapaata versiota SSH:ta. OpenSSH perustuu Tatu Ylösen ssh 1.2.12 -julkaisuun, joka oli viimeinen vapaalla lisensillä julkaistu.https://www.openssh.com/history.html 

SSH-asiakasohjelma kuuluu nykyisin useimpien Unix-sukuisten käyttöjärjestelmien oletusasennukseen, ja se on yleensä käytettävissä komentoriviltä komennolla ssh. Windows-koneilla suosittu SSH-etäkäyttöohjelma on PuTTY.

 SSH1 ja SSH2 
SSH-protokollasta on kaksi versiota, SSH1 ja SSH2, jotka eroavat monin tavoin. Eräs ero johtuu RSA-algoritmin patenteista, joka on sittemmin vanhentunut.https://www.openssh.com/goals.html  SSH2 käyttää useampaa protokollaa eri tarkoituksiin kun SSH1:ssä on yksi monoliittinen protokolla.

SSH1:n käyttämä CRC-tarkistussumma todettiin haavoittuvaksi ja se on SSH2:ssa korvattu viestin todennuskoodialgoritmien (MAC, Message Authentication Code) käytöllä.

SSH1 tukee vain RSA-algoritmia julkisen avaimen autentikaatioon kun SSH2:ssa vaihtoehtoja ovat myös DSA ja OpenPGP. Lisäksi Rhosts on poistettu turvattomana. SSH2 käyttää Diffie-Hellman avaimenvaihtoa palvelinavaimen sijaan.

SSH2:ssa istuntoavaimet voi vaihtaa.

DSA on OpenSSH:ssa oletuksena pois käytöstä vuodesta 2015 lähtien ja aikomus on poistaa se kokonaan vuoteen 2025 mennessä. Syynä tähän on DSA:n heikkous, mutta SSH2:n dokumentaatiossa se on ollut ainoa pakollinen algoritmi johtuen muiden algoritmien patenteista. RSA on laajalti käytössä, mutta uutta kehitystä ovat ECDSA ja EdDSA, joissa on suorituskykyyn ja turvallisuuteen liittyviä parannuksia.

 Sertifikaatit 
Yhteyttä muodostaessa SSH-asiakas pyytää käyttäjää tarkistamaan palvelimen identiteetin ("isäntäavain" eli "host key") kun yhteys muodostetaan ensimmäistä kertaa. Tarkistus tehdään "sormenjäljen" perusteella, joka on palvelimen julkisesta avaimesta muodostettu tiiviste (esimerkiksi SHA-256). Koska ihmiselle tarkistus on vaivalloista ja virheherkkää, tiedot voidaan tallettaa tunnettujen palvelimien listaan tai ne voidaan jakaa DNSSECin avulla. Kuitenkin käyttäjä luultavaksi hyväksyy avaimen sormenjäljen sitä tarkistamatta, joten käytännössä SSH-toimii "trust on first use" (TOFU) -periaatteella, jossa palvelimen sertifikaatti hyväksytään ensimmäistä kertaa sillä käydessä ja käyttäjää varoitetaan jos se muuttuu.

Käyttäjä tunnistautuu palvelimelle tyypillisesti salasanalla, mutta näiden heikkouksien vuoksi on parempi käyttää avaimia, jolloin käyttäjän ei tarvitse syöttää salasanoja. Sallitut avaimet voidaan tallettaa käyttäjäkohtaisesti palvelimella. Palvelimen avain ei muutu usein, mutta se voi muuttua palvelimen muutoksien tai domain-nimen muutoksen vuoksi. Myös käyttäjät voivat tarvita uusia avaimia koska ne voidaan julkaista vahingossa tai ne voivat hukkua.

OpenSSH tukee SSH-sertifikaattia, joka sisältää julkisen SSH-avaimen sekä avaimeen liittyvää metatietoa, jotka luotettava taho allekirjoittaa kryptografisesti. Sertifikaattia voidaan käyttää julkisen avaimen sijaan kun muodostetaan yhteyttä, jolloin ei tarvitse käsin tarkistaa avainta.

 Huomioitavaa salatun yhteyden muodostamisessa 

Suojatun liikenteen yksi tärkeimmistä periaatteista on, että mahdollisimman monessa paikassa käytetään mahdollisimman monta erityyppistä algoritmia. Näin krakkeri ei yhden liikenteen suojaukset murrettuaan osaa purkaa samalla keinolla muita yhteyksiä. Siksi SSH-ohjelmissa on hyvin monia käytettävissä olevia algoritmeja. Vaikka tieto, jota voisi kuljettaa verkon yli, ei olisikaan arkaluontoista, niin on silti suositeltavaa käyttää salattuja yhteyksiä, koska näin salasanakin säilyy suojattuna toisin kuin telnet-liikenteessä ja suojatun liikenteen määrä verkossa lisääntyy. Tämä hankaloittaa osittain krakkereita erottamasta arkaluontoista tietoa triviaalista informaatiosta.

Vaikka SSH luokitellaan turvalliseksi, siihen liittyy eräitä haavoittuvuuksia, joita voidaan hyödyntää hyökkäyksissä. Ensimmäistä yhteyttä kahden pisteen välille muodostaessa vaihdetaan salausavaimet hyvin heikon salauksen voimin (ks. Potenssiinkorotusalgoritmi). Jos krakkeri käyttää mies välissä -tekniikkaa, niin hän voi lukea kahden pisteen välille muodostettavat yhteydet. Tämä ongelma voidaan välttää lähettämällä salausavaimet perinteisessä postissa tai kuljettamalla avaimet taskussa pisteiden välillä. On ensiarvoisen tärkeää huomioida, ettei tätä ongelmaa ole kuin SSH-1-protokollaa käytettäessä. SSH-2:ssa avaimien vaihto tapahtuu tietoturvallisesti.

Toisaalta esimerkiksi SSH-putkea ei kannata muodostaa missä tahansa. Jos et luota ympäristöön, missä olet, älä ota yhteyttä. Jälleen täytyy salausavain saada molempien pisteiden välille, ja liian usein ihmiset jättävät palvelimen avaimen koneelle, jolta yhteys muodostettiin. Tämän jälkeen krakkeri voi perustaa oman valepalvelimensa ja varastaa salasanoja muilta saman palvelimen käyttäjiltä aiemmin mainitulla tekniikalla.

SSH-asiakaspääteohjelmia ja palvelinversioita on hyvin monenlaisia. Yhden valmistajan SSH-pääteohjelma ei välttämättä ole yhteensopiva toisen valmistajan palvelinohjelman kanssa, koska asiakasohjelma ei välttämättä tue palvelimen vaatimia suojausalgoritmeja. Tämä on kuitenkin hyvin harvinaista.

 SFTP 
SFTP (SSH File Transfer Protocol tai Secure File Transfer Protocol) on SSH:n mukana tuleva ohjelma, joka on tarkoitettu tiedonsiirtoon.
Sillä ei ole yhteyksiä vanhempaan FTP-protokollaan.

OpenSSH-kehittäjät ovat julistaneet tiedostoja SSH-yhteyden yli kopioivan scp-ohjelman ja protokollan vanhentuneeksi. scp:n ongelmana on, että jokerimerkit laajennetaan etäjärjestelmässä, joten käyttäjä ei voi tietää mitä tiedostoja hän on vastaanottamassa, ja voi vahingossa ylikirjoittaa tiedostoja. OpenSSH suosittelee käytettäväksi sftp:tä tai rsync:iä tiedostojen siirtoon. https://www.openssh.com/txt/release-8.0 

 Suosio 
SSH onnistui korvaamaan vakiintuneessa käytössä olleita työkaluja turvallisemmalla vaihtoehdolla. SSH:n eduiksi sanotaan vastaavat toiminnot ja helpompi käytettävyys sekä avoin standardi. Arvioiden mukaan vuoden 2000 lopussa SSH:lla oli kaksi miljoonaa käyttäjää.

 Standardit 
  The Secure Shell (SSH) Protocol Assigned Numbers
  The Secure Shell (SSH) Protocol Architecture
  The Secure Shell (SSH) Authentication Protocol
  The Secure Shell (SSH) Transport Layer Protocol
  The Secure Shell (SSH) Connection Protocol
  The Secure Shell (SSH) Session Channel Break Extension
  The Secure Shell (SSH) Transport Layer Encryption Modes
  Improved Arcfour Modes for the Secure Shell (SSH) Transport Layer Protocol
  The Secure Shell (SSH) Public Key File Format
  Secure Shell Public Key Subsystem

 Käytettävissä olevia salaus- ja tunnistusmenetelmiä 

 AES
 AES-GCM (AES Galois Counter Mode, )
 RC4 (arcfour128, arcfour256)
 Blowfish
 DES
 3-DES
 IDEA
 RSA
 EdDSA (Edwards-Curve Digital Signature Algorithm, Ed25519 ja Ed448, , )

 Katso myös 

 Alkuluku
 FTPS
 HTTPS
 Kryptografia
 Käyttöliittymä
 PGP
 Salaus
 Tietoturva
 Telnet
 VPN

  Lähteet  

 Aiheesta muualla 

 OpenSSH – Avoin versio SSH-ohjelmistopaketista.
 SSH Tectia – Ohjelmiston alkuperäisen kehittäjän paketti.
 SSH – OS/2:lle
 WebSSH – SSH verkkosivun
 SSHtools – Ilmaisia SSH-sovelluksia
 LSH – GNU-lisenssillä oleva SSH2-asiakasohjelma.
 ZOC – Maksullinen SSH-asiakasohjelma.
 WinSCP SSHFS asiakasohjelma.

Luokka:Salausprotokollat
Luokka:Etähallintaohjelmistot
Luokka:Seulonnan keskeiset artikkelit