GNU/Linux >> Znalost Linux >  >> Linux

Jak SSH zavádí bezpečnou komunikaci

Když posíláme citlivé informace/dopisy, chceme, aby byly skryty před okolním světem. Takže jsme se ujistili, že je chráněna tím, že jsme ji zalepili do obálky a odeslali na místo určení pomocí poštovní služby Spojených států (USPS). Alespoň takto jsme posílali informace. Ani se nepouštím do diskuze o šifrování a Morseově abecedě, které používají pokročilejší úroveň utajení.

Nyní, protože jsme se my lidé vyvinuli a přizpůsobili internetu, vyměňujeme si informace pomocí zabezpečeného připojení. Dříve jsme používali telnet pro připojení ke vzdálenému serveru pomocí portu 23. Problém byl v tom, že jsme informace posílali prostřednictvím prostého textu, což znamená, že kdokoli, kdo si chtěl informace přečíst, mohl vyčuhovat síť a informace byly kompromitovány (ekvivalent je že by mohli otevřít dopis odeslaný přes USPS a přečíst si ho.)

Tento výsledek není to, co jsme chtěli, když jsme posílali původní zprávu. Musí existovat bezpečný způsob, jak poslat zprávu na vzdálený server, že? Rozhodně a řešením je poslat to přes Secure Shell (SSH).

Jak SSH odesílá šifrované zprávy

Chci tedy bezpečně komunikovat pomocí šifrovaných zpráv z klienta na server a naopak. Dosahuji toho pomocí SSH následovně. SSH naváže zabezpečené spojení mezi dvěma hostiteli přes port 22:Host-1 (server) a Host (klient). Po vzájemném ověření povolili bezpečnou výměnu zpráv.

Typy šifrování

SSH používá tři různé typy šifrování:

  • Symetrické šifrování
  • Asymetrické šifrování
  • Hašování

Tyto typy stručně vysvětlím.

Symetrické šifrování

Také známé jako šifrování sdíleným klíčem, symetrické šifrování je obvykle jeden klíč nebo pár klíčů se používá pro šifrování i dešifrování zprávy. Tento klíč se používá k šifrování celé relace komunikace mezi klientem a serverem.

Klient i server se dohodnou na jedné metodě a vygenerují sdílený klíč, který se samozřejmě nikdy nesděluje třetí straně, a proto se používá k zasílání sdílených/tajných klíčových zpráv. Nejzajímavější na této metodě je, že klíč se nikdy nevyměňuje mezi klientem a serverem. Místo toho každý počítač vypočítá sdílený klíč nezávisle pomocí metody dohodnuté dříve. I když data zachytí počítač třetí strany, není možné je dešifrovat, protože metoda použitá k šifrování dat není známa.

Asymetrické šifrování

Na rozdíl od výše uvedené metody tato metoda používá pro šifrování a dešifrování dvojici klíčů. Tyto klíče jsou známé jako veřejné a soukromé klíče. Veřejný klíč, jak název napovídá, je široce distribuován. Soukromý klíč úzce souvisí s veřejným klíčem z hlediska funkčnosti, ale nelze jej vypočítat pouze na základě znalosti veřejného klíče.

Soukromý klíč je důležitým faktorem v celé komunikaci, protože utajení závisí na tom, že soukromý klíč není prozrazen žádné třetí straně a je to jediný klíč schopný dešifrovat zprávu, která je zašifrována vlastním veřejným klíčem. Pokud si tedy některá strana přeje dešifrovat a číst zprávy, musí vlastnit soukromý klíč.

Zkusme tuto metodu pomocí dvou systémů. Začneme pracovní stanicí, která má dva páry klíčů vygenerované níže:

Poté iniciuji připojení ze serveru k pracovní stanici:

Server tedy ukládá informace o pracovní stanici do svých known_hosts soubor jako:

Po ověření serveru si server a klient vyjednají klíč relace pomocí algoritmu výměny klíčů Diffie-Hellman. Tento sdílený klíč se používá k šifrování a dešifrování.

Poslední fází je autentizace klienta, a to pomocí páru klíčů SSH. Níže uvedený diagram ukazuje, jak k tomuto procesu dochází:

Když zadám příkaz ssh -v [email protected] , stane se toto:

Závěr

Účelem tohoto článku bylo upozornit uživatele na to, jak SSH vytváří bezpečnou komunikaci mezi dvěma systémy. Doufám, že jsem vám nabídl nějaký pohled na tento proces.

[Chcete se dozvědět více o SSH? Stáhněte si Advanced SSH Cheat Sheet.]


Linux
  1. Jak vygenerovat klíč SSH na dedikovaném serveru Linux?

  2. Jak nastavit klíče SSH

  3. Jak nastavit klíče SSH na Ubuntu 18.04

  1. Jak na SSH na Linuxu z Androidu

  2. Jak zabezpečit službu SSH pomocí funkce Port Knocking

  3. Jak nastavit SSH bez hesla v systému Linux

  1. Jak nastavit přihlášení k SSH bez hesla

  2. Jak SSH na server pomocí jiného serveru?

  3. Jak zabezpečit PostgreSQL Server