Jaký je rozdíl mezi SSH a SSL?

Pavel

Jaký je rozdíl mezi SSH a SSL?
« kdy: 19. 05. 2010, 23:12:15 »
Ahoj, je mi někdo ochotný vysvětlit rozdíl mezi SSH a SSL. Koukal jsem na Wikipedii, hledal jsem na Google atd. Popisů je všude mrak, ale mně přijde, že je to skoro to samý. Nejvíce mě mate, že skrze SSH se dají přenášet soubory apod. Nemůžu přijít na ten základní/zásadní rozdíl.

Díky


Re: Jaký je rozdíl mezi SSH a SSL?
« Odpověď #1 kdy: 19. 05. 2010, 23:31:04 »
No, ono to vypadá jako jednoduchá otázka, ale když jsem se zamyslel, tak jsem zjistil, že to opravdu taková sranda není. Jedna věc je ten rozdíl tak nějak vědět a tušit a druhá věc je ho vysvětlit.

Nejdřív co mají společného: úkolem obou je vytvořit šifrovaný tunel mezi dvěma stranami, přes který je pak možné přenášet data. To je ale to jediné společné.

SSL bylo původně navrženo pro protokol HTTP, ačkoliv dnes se s ním můžeme setkat u mnoha dalších (POP3, IMAP4, XMPP, FTP...). Proti tomu SSH bylo vymyšleno jako tunel do unixového serveru a primárně se používá pro ovládání vzdáleného terminálu. Ale taky to není jediné využití, jak jsi sám podotkl, dají se přesto posílat soubory :-). SSH je výrazně univerzálnější než si většina lidí myslí.

Oba protokoly jsou tedy silně univerzální a teoreticky zaměnitelné (ačkoliv v praxi se pro konkrétní úkoly vždycky využívá jedno nebo druhé). Ten zásadní rozdíl je ale v tom, jak probíhá autorizace. Zatímco u SSL a TLS je autorizace volitelná a komunikace může probíhat anonymně, u SSH autorizace probíhá vždy. Důležité je i to, jak probíhá. SSL používá takzvané certifikáty a aby fungovala, je třeba mít hierarchii autorit - důvěryhodných orgánů, které ověří, že server XBanka patří opravdu té a té firmě a ta se pak certifikátem prokazuje.

SSH  proti tomu má hromadu možných způsobů autorizace. Obvykle se používají klíče, které si server vygeneruje sám (po instalaci). Ověření pak musí proběhnout vždy ručně. Je tam ale možné zajistit oboustrannou autorizaci RSA klíči a podobně. V tomhle směru je SSH výrazně univerzálnější.

Uff, náročný úkol. Stačí to tak?
« Poslední změna: 19. 05. 2010, 23:33:50 od Petr Krčmář »

Re: Jaký je rozdíl mezi SSH a SSL?
« Odpověď #2 kdy: 19. 05. 2010, 23:37:16 »
Ještě mě k tomu napadla jedna důležitá věc:

SSL se používá pro balení různých protokolů na různých portech. Pokud chci najednou provozovat HTTPS, FTPS, POP3S a XMPP, tak se mi vytvoří na jeden server čtyři samostatné tunely a každý jede na jiném portu. Každá služba pak má jiný certifikát a konfiguruje se zvlášť.

SSH naopak otevře jeden tunel (obvykle na portu 22) a skrze něj si pak požádáš o jednotlivé služby. Máš jednu serverovou část, jednu autorizaci, jedno šifrování, jeden port a v něm se pak naráz přenáší osm souborů, máš otevřených šest terminálů a dalších patnáct služeb.

PCnity

  • *****
  • 685
    • Zobrazit profil
    • E-mail
Re: Jaký je rozdíl mezi SSH a SSL?
« Odpověď #3 kdy: 19. 05. 2010, 23:59:27 »
Kebyze netusim co je SSL alebo SSH, z textu hore by som nebol o moc mudrejsi.

SSL sluzi na sifrovanie obsahu povedzme webovych stranok alebo emailov prenasanych po linke... A zaroven tiez na overenie doveryhodnosti. Proste mas certifikat ktoremu by si mal doverovat... A tento ceritifikat ti potvrdzuje identitu.

SSH je zato skor brane ako Secure Shell... Cize proste vzdialeny terminal ktory prenasa data sifrovane... Nieco ako telnet. To ze sa cez SSH daju prenasat subory alebo tunelovat TCP spojenia je vedlajsie...

SSL = Zabezpecnie prenosovych protokolov...
SSH = Bezpecny shell

Zbytok potom userovi dojde akosi prirodzene ;)

Re: Jaký je rozdíl mezi SSH a SSL?
« Odpověď #4 kdy: 20. 05. 2010, 00:18:15 »
No a to je právě u SSH velmi často uváděný omyl. SSH o vzdáleném terminálu nic neví a neřeší ho. Úkolem SSH je sestavit spojení, provést autorizaci a autentizaci a přes utvořený bezpečný kanál pak přenášet data. SSH prostě pak čeká na další rozkazy typu "chci komunikovat s terminálem Bash" nebo "spoj mě se SFTP serverem". SSH ale přenášená data nezajímají.


g33z

Re: Jaký je rozdíl mezi SSH a SSL?
« Odpověď #5 kdy: 20. 05. 2010, 01:11:26 »
Aby bola situacia este komplikovanejsia, implementacia SSH bezne distribuovana s GNU/Linux systemami sa vola OpenSSH. Bezne distribuovana implementacia SSL sa zase vola OpenSSL (pravda, existuju aj ine). OpenSSH pochadza z OpenBSD, OpenSSL nema s OpenBSD nic spolocne.

OpenSSH je distribuovane ako balik programov. Obsahuje server (a sftp server) a klientsku aplikaciu 'ssh'. OpenSSL je naproti tomu kniznica, ktoru vyuzivaju ostatne aplikacie na vytvaranie bezpecnych spojeni (Myslim, ze su s nou dodavane programy na generovanie certov.). Myslim, ze sa bezny uzivatel skor dostane do kontaktu s SSH ako s SSL. SH v SSH znamena SHell. Naopak SL v SSL znamena Socket Layer. Jedno je bezpecny Shell, druhe je bezpecnostna vrstva pre sietove prenosy. Posledna kvapka: SSL bolo vyvinute Netscape-om, TLS je detto odobrene panmi inziniermi z IETF (a.k.a zie elderz of zie Internets).

O SSH (OpenSSH) bolo na root-e napisanych celkom dost clankov -> odporucam prehladat. Posledny bol myslim od p. Krcmara.

Zaujimava fičúria OpenSSH je dynamicke forwardovanie nieco ako SOCKS vid.:
http://blackhole.sk/topiczabudnute-schopnosti-ssh-dynamic-forwarding-k-bezpecne-von

Sten

Re: Jaký je rozdíl mezi SSH a SSL?
« Odpověď #6 kdy: 20. 05. 2010, 02:28:34 »
Prakticky jediný rozdíl je v tom, že SSH používá oboustrannou autorizaci pomocí shared secret (RSA public key, fingerprint certifikátu, heš hesla, ...), kdežto SSL/TLS používá certifikáty, u serveru vždy podepsané autoritou, u klienta jen volitelně. Z toho také vyplývá časté použití SSH pro správu počítačů a SSL/TLS pro šifrování přenosů e-mailů a webových stránek

Jinak co se týče výše uvedených informací:

SSH je multiplex (VPN), shell je pouze jedna (nepovinná) vrstva

SSL/TLS není nutně spjaté s jedním protokolem. Třeba OpenVPN používá SSL/TLS pro šifrování celé síťové komunikace (tedy opět jako multiplex)

Re: Jaký je rozdíl mezi SSH a SSL?
« Odpověď #7 kdy: 20. 05. 2010, 07:52:18 »
Ono právě ani SSH není spjaté s konkrétním protokolem. Klidně se můžu připojit k serveru pomocí SSH a otevřít si uvnitř session s POP3 serverem a přečíst si poštu. Dalo by se to hezky doimplementovat do Thunderbirdu. Samozřejmě že se POP3 normálně balí do SSL, ale klidně by to mohlo být jinak. Napadl mě třeba rsync - ten využívá pro autorizaci služeb SSH, ale stejně tak se autor původně mohl rozhodnout balit protokol do SSL a bylo by to stejné.

Podle mě je opravdu rozdíl jen v tom provozu na jednom portu a způsobu autorizace.

Ivan

Re: Jaký je rozdíl mezi SSH a SSL?
« Odpověď #8 kdy: 20. 05. 2010, 09:17:25 »
No a to je právě u SSH velmi často uváděný omyl. SSH o vzdáleném terminálu nic neví a neřeší ho.
Tohle neni uplne pravda. SSH musi resit podporu pty podobne jako telnet. Pri navazovani shell session musi ssh prenest informace o vlasnostech terminalu. Klient taky obvykle nabizi env. promenne, ktere by chtel v shellu nastavit, ty si SSHD vyfiltruje(a zbude mu jen TERM popr. PRINTER). Kdo asi resi tisk pres terminal? bash nebo jeho rodic sshd?

SSHD je takovy kockopes, ktery umi uplne vsechno. SSL je pouze tunel(popr. sada tunelu), do ktere je mozne vlozit libovolny protokol.

neron

Re: Jaký je rozdíl mezi SSH a SSL?
« Odpověď #9 kdy: 20. 05. 2010, 09:28:16 »
No ja bych to videl jeste trochu jinak, mysleno ten hlavni rozdil. Ono uz to tu zaznelo, ale ne tak jasne.

SSH vytvari sifrovane spojeni, pomoci ktereho jde komunikovat pomoci "nektereho" protokolu (typicky "telnet", "X server", spojeni do DB apod).

SSL slouzi k tomu, ze pokud pomoci "nektereho" protokolu navazu spojeni (typicky HTTP, IMAP, SMTP) mohu SSL (resp. TLS) vyuzit pro sifrovani dat.

PCnity

  • *****
  • 685
    • Zobrazit profil
    • E-mail
Re: Jaký je rozdíl mezi SSH a SSL?
« Odpověď #10 kdy: 20. 05. 2010, 11:48:25 »
SSH je a bude shell. To ze ma moznost X11 forwardingu alebo TCP forwardingu alebo prenosu dat je len a len add on... Bonus.

A navyse je rozdiel v hierarchii. Pri SSL mame web of trust, co pri SSH ten pripad nie je. Az na fingerprint mi nic nezarucuje "s kym komunikujem". SSL dodava aj iny layer bezpecnosti, proste spolihas sa na CA.

Program

Re: Jaký je rozdíl mezi SSH a SSL?
« Odpověď #11 kdy: 20. 05. 2010, 12:23:59 »
A není ten rozdíl spíše v tom, že SSH je aplikace postavená nad TLS (SSL), která je ale psána univerzálně, takže je možné ji využít ke spoustě jiných věcí? Takže je to vlastně zabalený TLS tunel...

Re: Jaký je rozdíl mezi SSH a SSL?
« Odpověď #12 kdy: 20. 05. 2010, 12:26:00 »
SSH není postaveno nad SSL/TLS.

g33z

Re: Jaký je rozdíl mezi SSH a SSL?
« Odpověď #13 kdy: 20. 05. 2010, 14:23:05 »
Dost zasadny rozdiel medzi SSH a SSL:

SSH pozostava zo serverovej aplikacie (daemona) a klientskej aplikacie 'ssh'. Cize je to model KLIENT-SERVER. Je sice pekne, ze cez SSH si mozete vytvarat tunely ake chcete (co nie je pravda, lebo UDP protokoly nedokaze forwardovat), ale VZDY tuto komunikaciu sprostredkuje server (co je program, ktory musi bezat na PC kam sa pripajate). Je to server, kto forwarduje komunikaciu, preto sa to aj vola forwardovanie. Ak vsak forwardujete premavku dalej ako je vas server, tj. posielate ju cez SSH server dalej na server X, od SSH servera smerom k serveru X uz sifrovana nie je.

VY      > SSH server :::::::::> X (postovy server)
Legenda: šifrované spojenie    , nešifrované spojenie :::

SSL je prosto len kniznica. Nic viac nic menej. Ak chcu dve aplikacie bezpecne komunikovat, trebars postovy server a Thunderbird, vytvoria si cez kniznicu (dopln_co_chces)SSL zabezpeceny kanal. Takto vytvoreny kanal nikto nesprostredkuje (ako je to u SSH) a spojenie je sifrovane od jedneho konca po druhy.

VY (Thunderbird)                        > postovy server

Ak by ste chceli pouzivat SSH na sifrovanie komunikacie k postovemu serveru, na tomto serveri by zaroven musel bezat aj SSH server (a.k.a. sshd). To je aj dovod preco sa to jednoducho nerobi. Myslim, ze ani neexistuju aplikacie, ktore by pouzivali iba nejaku SSH kniznicu na oboch stranach zabezpeceneho spojenia. Na to predsa sluzi SSL.