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-protokollasta on kaksi versiota, vanhentunut SSH1 ja SSH2. SSH2 kehitettiin kiertämään RSA-algoritmin patentteja.

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. 
Tässä jo vanhentuneessa suojauksessa käytettävät algoritmit kuten RSA ja muut ovat osoittautuneet erittäin hyviksi. Myöhemmin SSH1:n yksinkertainen tiedon oikeellisuuden tarkistussumma (CRC) on osoittautunut epäonnistuneeksi.
Tämä on kuitenkin korvattu SSH2:ssa, jota nykyään suositellaan käytettäväksi. 

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.

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.

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.

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. Yleensä palvelin ja asiakasohjelma ovat yhteensopivia ja todennäköisempää on, että palvelin ja pääteohjelma löytävät yhteisen sävelen. Tätä varten Internet Engineering Task Force, eli lyhyemmin IETF, on luonut standardin SSH:lle.

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. OpenSSH suosittelee käytettäväksi sftp:tä tai rsync:iä tiedostojen siirtoon.

Standardit 
  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

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

 AES
 Arcfour
 Blowfish
 DES
 3-DES
 IDEA
 RSA

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.

Salausprotokollat
Etähallintaohjelmistot
Seulonnan keskeiset artikkelit