SSH | |
---|---|
Név | Secure Shell |
Szint ( az OSI modell szerint ) | Alkalmazott |
Család | TCP/IP |
Port/ID | 22/ TCP |
A protokoll célja | Távoli hozzáférés |
Leírás | RFC 4251 |
Főbb megvalósítások (kliensek) | OpenSSH , PuTTY / KITTY , SecureCRT , Xshell |
Alapvető megvalósítások ( szerverek ) | OpenSSH |
Médiafájlok a Wikimedia Commons oldalon |
Az SSH ( eng. Security Shell - "secure shell" [ 1 ] ) egy alkalmazási rétegű hálózati protokoll , amely lehetővé teszi az operációs rendszer távoli vezérlését és a TCP -kapcsolatok alagútvezetését (például fájlok átviteléhez). Funkciójában hasonló a Telnet és az rlogin protokollokhoz , de azokkal ellentétben titkosítja az összes forgalmat, beleértve a továbbított jelszavakat is . Az SSH lehetővé teszi a különböző titkosítási algoritmusok kiválasztását. SSH - kliensek és SSH- kiszolgálók állnak rendelkezésre a legtöbb hálózati operációs rendszerhez.
Az SSH lehetővé teszi szinte bármilyen más hálózati protokoll biztonságos átvitelét nem biztonságos környezetben . Így nemcsak távolról dolgozhat számítógépen egy parancshéjon keresztül, hanem egy titkosított csatornán (például webkameráról ) is továbbíthat hangfolyamot vagy videót [2] . Az SSH a továbbított adatok tömörítését is használhatja a későbbi titkosításhoz, ami kényelmes például az X Window System kliensek távoli indításakor .
A legtöbb tárhelyszolgáltató térítés ellenében SSH- hozzáférést biztosít az ügyfeleknek a kezdőkönyvtárukhoz . Ez kényelmes lehet mind a parancssorban, mind a programok távoli indításához (beleértve a grafikus alkalmazásokat is).
Az SSH egy alkalmazási rétegbeli protokoll. Az SSH-kiszolgáló általában a 22-es TCP-porton figyeli a kapcsolatokat. Az SSH-2 protokoll specifikációja az RFC 4251 -ben található . A szerverhitelesítéshez az SSH RSA vagy DSA digitális aláírási algoritmusokon alapuló fél-hitelesítési protokollt használ , de a jelszó-hitelesítés (visszafelé kompatibilis mód Telnet -tel ) és még a gazdagép IP-címe (visszafelé kompatibilis mód rlogin -nel ) is megengedett.
A Diffie-Hellman (DH) algoritmus egy megosztott titok (munkamenetkulcs) létrehozására szolgál . A továbbított adatok titkosítása szimmetrikus titkosítással , AES , Blowfish vagy 3DES algoritmusokkal történik . Az adatátvitel integritását a CRC32 segítségével ellenőrzik az SSH1-ben vagy a HMAC - SHA1 / HMAC - MD5 segítségével az SSH2-ben.
A titkosított adatok tömörítésére a LempelZiv ( LZ77 ) algoritmus használható, amely ugyanolyan szintű tömörítést biztosít, mint a ZIP archiváló . Az SSH-tömörítés csak az ügyfél kérésére engedélyezett, és a gyakorlatban ritkán használják.
1.x verzió
1995-ben Tatu Ylönen , a finn Helsinki Műszaki Egyetem kutatója kifejlesztette a protokoll első verzióját (jelenleg SSH-1 néven), amelyet egy jelszóbányász támadás váltott ki egyetemi hálózatán. Az SSH célja a korábbi rlogin, TELNET, FTP [16] és rsh protokollok leváltása volt, amelyek nem biztosítottak erős hitelesítést és adatvédelmet. Ylönen 1995 júliusában kiadta ingyenes szoftverként a megvalósítását, és az eszköz gyorsan népszerűvé vált. 1995 végére az SSH felhasználói bázisa ötven országban 20 000 felhasználóra nőtt.
1995 decemberében Ylönen megalapította az SSH Communications Security céget az SSH népszerűsítésére és fejlesztésére. Az SSH szoftver eredeti verziója különféle ingyenes szoftvereket használt, például a GNU libgmp-t, de az SSH Communications Security által kiadott későbbi verziók egyre inkább védett szoftverekké fejlődtek.
Becslések szerint 2000-re a felhasználók száma 2 millióra nőtt.
2.x verzió
A „Secsh” az SSH-protokoll 2-es verziójáért felelős IETF-munkacsoport hivatalos neve volt az Internet Engineering Task Force-nak (IETF). 2006-ban az SSH-2 protokoll frissített változatát fogadták el szabványként. Ez a verzió nem kompatibilis az SSH-1-gyel. Az SSH-2 biztonsági és továbbfejlesztett funkciókat is kínál az SSH-1-hez képest. A jobb biztonság például a Diffie-Hellman kulcscserével és az üzenet-hitelesítési kódokkal végzett erős integritás-ellenőrzéssel érhető el. Az új SSH-2 funkciók közé tartozik, hogy egyetlen SSH-kapcsolaton keresztül tetszőleges számú shell-munkamenet indítható. Az SSH-2 SSH-1 feletti fölénye és népszerűsége miatt egyes implementációk, például a libssh (v0.8.0+), az Lsh és a Dropbear csak az SSH-2 protokollt támogatják.
1.99-es verzió
2006 januárjában, jóval a 2.1-es verzió létrehozása után, az RFC 4253 előírta, hogy az SSH 2.0-s és korábbi verzióit egyaránt támogató SSH-szervernek a prototípus verzióját 1.99-ként kell azonosítania. Ez nem egy naprakész verzió, hanem egy módszer a visszafelé kompatibilitás meghatározására.
OpenSSH és OSSH
1999-ben a fejlesztők, akik a szoftver ingyenes verzióját akarták, visszatértek az eredeti SSH program régi, 1.2.12-es kiadásához, amely legutóbb nyílt forráskódú licenc alatt jelent meg. Később ebből a kódbázisból fejlesztették ki Bjorn Grönwall OSSH-ját. Nem sokkal ezután az OpenBSD fejlesztői felosztották a grönlandi kódot, és sokat dolgoztak rajta, létrehozva az OpenSSH -t, amelyet az OpenBSD 2.6-os verziójával szállítottak. Ettől a verziótól kezdve egy "hordozhatósági" ág jött létre, amely az OpenSSH-t más operációs rendszerekre portolja.
2005-től az OpenSSH volt az SSH egyetlen legnépszerűbb implementációja, amely alapértelmezés szerint számos operációs rendszerben megtalálható. Az OSSH időközben elavult. Az OpenSSH továbbra is támogatott, és támogatja az SSH-2 protokollt, így az OpenSSH 7.6 kiadásával megszűnik az SSH-1 támogatása a kódbázisból .
A protokoll első változatát, az SSH-1-et 1995 -ben Tatu Ulönen , a Helsinki Műszaki Egyetem kutatója ( Finnország ) fejlesztette ki . Az SSH-1 privátabbnak készült, mint az rlogin, telnet és rsh protokoll. 1996 - ban kifejlesztették a protokoll biztonságosabb verzióját, az SSH-2-t, amely nem kompatibilis az SSH-1-gyel. A protokoll még nagyobb népszerűségre tett szert, és 2000 -re körülbelül kétmillió felhasználója volt. Jelenleg az "SSH" kifejezés általában az SSH-2-re vonatkozik, mivel a protokoll első verzióját a jelentős hiányosságok miatt gyakorlatilag nem használják.
2006- ban a protokollt az IETF munkacsoportja internetes szabványként hagyta jóvá .
Az SSH két megvalósítása gyakori: egy privát kereskedelmi és egy ingyenes. Az ingyenes megvalósítást OpenSSH-nak hívják. 2006-ra az interneten lévő számítógépek 80%-a OpenSSH-t használt. A Tectia [3] 100%-os tulajdonában álló leányvállalata, az SSH Communications Security egy privát megvalósítást fejleszt, amely nem kereskedelmi használatra ingyenes. Ezek a megvalósítások majdnem ugyanazt az utasításkészletet tartalmazzák.
Az SSH-1 protokoll a telnet protokolltól eltérően ellenáll a forgalomszimuláló támadásoknak (" szippantás "), de nem ellenáll a köztes támadásoknak . Az SSH-2 protokoll a középső csatlakozással ( angol session hijacking ) is ellenáll a támadásoknak, mivel nem lehet csatlakozni egy már létrehozott munkamenethez vagy elfogni azt.
A köztes támadások elkerülése érdekében , amikor olyan gazdagéphez csatlakozik, amelynek kulcsát az ügyfél még nem ismeri , az ügyfélszoftver megmutatja a felhasználónak a kulcs ujjlenyomatát . Javasoljuk, hogy gondosan hasonlítsa össze a kliens szoftver által mutatott „kulcskiosztást” a szerver kulcsszóval, lehetőleg megbízható kommunikációs csatornákon keresztül vagy személyesen.
Az SSH-támogatás minden UNIX - szerű rendszeren elérhető, és a legtöbben ssh-kliens és kiszolgáló szabványos segédprogramok . Az SSH-klienseknek számos megvalósítása létezik nem UNIX operációs rendszerekhez is. A protokoll nagy népszerűségre tett szert a forgalomelemzők és a helyi hálózatok működésének megzavarására szolgáló módszerek széles körű kifejlesztése után, a nem biztonságos Telnet protokoll alternatívájaként a fontos csomópontok kezelésére.
Az SSH-hoz SSH-kiszolgálóra és SSH-kliensre van szükség. A szerver figyeli az ügyfélgépekről érkező kapcsolatokat, és a kapcsolat létrejöttekor hitelesítést hajt végre , majd megkezdi a kliens kiszolgálását. Az ügyfél egy távoli gépre való bejelentkezésre és parancsok végrehajtására szolgál.
A csatlakozáshoz a szervernek és az ügyfélnek kulcspárokat kell létrehoznia – nyilvános és privát –, és nyilvános kulcsokat kell cserélnie. Általában jelszót is használnak.
A helyi SSH szerverhez való csatlakozás parancsa a GNU/Linux vagy a FreeBSD parancssorból a pacify felhasználó számára (a szerver a nem szabványos 30000-es porton figyel):
$ ssh -p 30000 [email protected]A kulcspár létrehozását (UNIX-szerű operációs rendszerben) a parancs hajtja végre
$ ssh-keygen4096 bites SSH-2 RSA kulcspár generálása puttygen segítségével UNIX-szerű operációs rendszer alatt:
$ puttygen -t rsa -b 4096 -o mintaEgyes kliensek, például a PuTTY, grafikus felhasználói felülettel is rendelkeznek .
Az SSH Pythonban való használatához olyan modulok állnak rendelkezésre, mint a python-paramiko és a python-twisted-conch.
Az SSH-alagút egy SSH-kapcsolaton keresztül létrehozott alagút, amelyet az alagútban lévő adatok titkosítására használnak. Internetes adatátvitel biztosítására szolgál (az IPsec -nek hasonló célja van ). Ha SSH-alagúton keresztül továbbítják, bármely protokoll titkosítatlan forgalmát az SSH-kapcsolat egyik végén titkosítják, a másik végén pedig visszafejtik.
A gyakorlati megvalósítás többféleképpen történhet:
Ebben az esetben a Jabber kliens úgy van beállítva, hogy csatlakozzon a localhost szerver 4430-as portjához (ha az ssh kliens ugyanazon a gépen fut, mint a Jabber kliens).
Ssh-alagút létrehozásához olyan gépre van szükség, amelyen egy futó ssh-kiszolgáló található, és hozzá kell férnie a jabber.example.com címhez. Ez a konfiguráció akkor használható, ha a helyi gépről a jabber.example.com webhelyhez való hozzáférést blokkolja egy tűzfal, de van hozzáférése néhány ssh-kiszolgálóhoz, amely nem rendelkezik internet-hozzáférési korlátozásokkal.
TCP / IP protokollok az OSI modell rétegei szerint | Alapvető|
---|---|
Fizikai | |
csatornázott | |
hálózat | |
Szállítás | |
ülés | |
Reprezentáció | |
Alkalmazott | |
Egyéb alkalmazva | |
A TCP és UDP portok listája |
URI- sémák | |
---|---|
Hivatalos | |
nem hivatalos |