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.[1]

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. [2] 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.[1] 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.[3]

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.[4]

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.[4]

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.[4]

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.[5] Sillä ei ole yhteyksiä vanhempaan FTP-protokollaan.[5]

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.[6]

Standardit

  • RFC 4251 The Secure Shell (SSH) Protocol Architecture
  • RFC 4252 The Secure Shell (SSH) Authentication Protocol
  • RFC 4253 The Secure Shell (SSH) Transport Layer Protocol
  • RFC 4254 The Secure Shell (SSH) Connection Protocol

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

Katso myös

Lähteet

  1. https://www.openssh.com/goals.html
  2. Daniel J. Barrett, Richard E. Silverman, Robert G. Byrnes: ”1.5”, SSH, The Secure Shell: The Definitive Guide, 2nd Edition. O'reilly Media, 2005. ISBN 978-0-596-00895-6. (englanniksi)
  3. https://www.openssh.com/history.html
  4. Lars Wirzenius: Using certificates for SSH authentication lwn.net. 8.11.2022. Viitattu 23.11.2022. (englanniksi)
  5. Justin Ellingwood: How To Use SFTP to Securely Transfer Files with a Remote Server digitalocean.com. Viitattu 26.7.2021. (englanniksi)
  6. https://www.openssh.com/txt/release-8.0

    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.
    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.