SSH

Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2019. június 12-én felülvizsgált verziótól ; az ellenőrzések 23 szerkesztést igényelnek .
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).

Technikai információk a protokollról

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.

  1. A jelszavas hitelesítés a leggyakoribb. A https -hez hasonlóan minden kapcsolat létrehoz egy megosztott titkos kulcsot a forgalom titkosításához.
  2. A kulcspáros hitelesítéssel egy pár nyilvános és privát kulcs előre generálódik egy adott felhasználó számára. Azon a gépen, amelyről csatlakozni kíván, a privát kulcs, a távoli gépen pedig a nyilvános kulcs tárolva van. A hitelesítés során ezek a fájlok nem kerülnek átvitelre, a rendszer csak azt ellenőrzi, hogy a nyilvános kulcs tulajdonosa-e a privát kulcs tulajdonosa is. Ezzel a megközelítéssel általában az automatikus bejelentkezés egy adott felhasználó nevében van konfigurálva az operációs rendszerben .
  3. Az IP-cím alapján történő hitelesítés nem biztonságos, ez a funkció leggyakrabban ki van kapcsolva.

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.

Történelem és fejlődés

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 .

Szabványok és szoftvermegvalósítások

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.

SSH szerverek

SSH kliensek és shellek

SSH biztonsági tippek

  1. Tiltsa le a távoli root hozzáférést.
  2. Tiltsa le a kapcsolatot üres jelszóval, vagy tiltsa le a jelszavas bejelentkezést.
  3. Nem szabványos port kiválasztása az SSH-kiszolgálóhoz.
  4. Hosszú SSH2 RSA kulcsok használata (2048 bit vagy több). Az RSA - alapú titkosítási rendszerek akkor tekinthetők biztonságosnak, ha a kulcs hossza legalább 1024 bit [5] .
  5. Azon IP-címek listájának korlátozása , amelyekről a hozzáférés engedélyezett (például tűzfal beállításával ).
  6. Hozzáférés tilalma néhány potenciálisan veszélyes címről.
  7. Kerülje az általános vagy jól ismert rendszerbejelentkezések használatát az SSH -hozzáféréshez .
  8. Rendszeresen ellenőrizze a hitelesítési hibaüzeneteket .
  9. Behatolásérzékelő rendszerek (IDS) telepítése .
  10. Olyan horgok használata, amelyek SSH-szolgáltatást hamisítanak ( mézesedény ) .
  11. Technológiai megvalósítás.

Példák az SSH használatára

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-keygen

4096 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 minta

Egyes 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.

SSH alagút

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:

$ ssh -L 4430 :jabber.example.com:443 somehost

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.

Lásd még

Jegyzetek

  1. Fordítási lehetőség Yu. A. Szemjonovtól A Wayback Machine 2008. február 2-i archív példánya
  2. Ez a porttovábbítást használja , archiválva 2005. december 16-án a Wayback Machine TCP - kapcsolatainál .
  3. Az SSH Communications Securityről archiválva 2012. július 9. a Wayback Machine -nél 
  4. Útmutató az ssh-kiszolgáló telepítéséhez Windows rendszerhez a Cygwin segítségével (elérhetetlen hivatkozás) . Hozzáférés dátuma: 2009. január 27. Az eredetiből archiválva : 2009. január 20. 
  5. CyberSecurity.ru: "A 768 bites RSA-kulcs sikeresen feltört" Archiválva : 2010. január 14. a Wayback Machine -nél . 2010.08.01

Linkek

Szabványok
  • RFC 4250 – A Secure Shell  (  SSH) protokollhoz rendelt számok
  • RFC 4251   – A Secure Shell (SSH) protokollarchitektúra
  • RFC 4252   – A Secure Shell (SSH) hitelesítési protokoll
  • RFC 4253 – A Secure Shell  (  SSH) szállítási réteg protokollja
  • RFC 4254   – A Secure Shell (SSH) kapcsolati protokoll
  • RFC 4255  –  DNS használata a Secure Shell (SSH) kulcs ujjlenyomatainak biztonságos közzétételéhez
  • RFC 4256  –  Általános üzenetcsere-hitelesítés a Secure Shell Protocolhoz (SSH)
  • RFC 4335 – A Secure Shell  (  SSH) munkamenet-csatorna megszakítási kiterjesztés
  • RFC 4344   – A Secure Shell (SSH) szállítási réteg titkosítási módjai
  • RFC 4345  –  Továbbfejlesztett Arcfour módok a Secure Shell (SSH) szállítási réteg protokollhoz
  • RFC 4419  –  Diffie-Hellman Group Exchange for the Secure Shell (SSH) szállítási réteg protokoll
  • RFC 4432  –  RSA kulcscsere a Secure Shell (SSH) szállítási réteg protokollhoz
  • RFC 4716 – A Secure Shell  (  SSH) nyilvános kulcsú fájlformátuma
SSH kliensek
  • Az OpenSSH  egy ingyenes könyvtár és segédprogramok készlete a titkosítás támogatására
  • A PuTTY  egy népszerű többplatformos SSH-kliens.
  • https://serveauditor.com/ - népszerű mobil, többplatformos SSH-kliens (Android, iOS, Google Chrome)
  • SSH kliensek  összehasonlítása
Fájlhozzáférési programok Egyéb