15-06-05 16:00
Uspostava veze u protokolu SSH v.1
piše EMIR IMAMAGIĆ
U ranijim člancima opisali smo neka osnovna svojstva SSH protokola i kriptografske mehanizme koji se koriste. Prije nego objasnimo mehanizme autentikacije i autorizacije, detaljno ćemo opisati postupak uspostave veze između klijenta i poslužitelja. Nakon što je veza uspješno uspostavljena, korisnik izvodi željene akcije (prijenos podataka, izvođenje naredbi). Razdoblje od uspostavljanja do prekidanja veze u terminologiji SSH-a naziva se sjednica (engl. session).
Postupak uspostave veze u protokolu SSH verzije 1 (skraćeno SSH-1) odvija se u sljedećim koracima: - Klijent kontaktira poslužitelja slanjem TCP zahtjeva na odgovarajući port (podrazumijevani port je 22).
- Klijent i poslužitelj se uzajamno obavijeste o verziji SSH protokola koju podržavaju te o verziji samog softwarea (npr. OpenSSH). To je tekstualna poruka oblika "SSH-1.5-1.2.27". Ako verzije nisu kompatibilne, veza se prekida.
- SSH poslužitelj šalje klijentu informacije o svojim svojstvima:
- javni računalni ključ - javni poslužiteljev ključ. Poslužiteljev ključ je privremeni, asimetrični ključ karakterističan za protokol SSH-1. SSH poslužitelj ga povremeno obnavlja, a podrazumijevao razdoblje u kojemu se to događa je sat vremena. - slijed od 8 pseudoslučajnih bajtova koji služe za zaštitu od napada u kojemu klijent lažira IP adresu (engl. IP spoofing) - popis simetričnih kriptografskih algoritama i autentikacijskih mehanizama koje poslužitelj podržava. Iz prva tri podataka primjenom funkcije za izračun sažetka MD5 stvara se identifikator sjednice (engl. session identifier).
- Nakon primanja podataka, klijentska aplikacija pita korisnika da li želi prihvatiti vezu. Većina klijentskih programa pod SSH protokolom omogućavaju pohranu adresa i javnih računalnih ključeva u popis poznatih računala (engl. known hosts) na tvrdi disk. Pri sljedećoj uspostavi veze klijent glatko prihvaća vezu s hostovima koje je već upoznao. Ako korisnik odbije ponuđene podatke, postupak uspostave veze se prekida.
- Klijent odabire simetrični kriptografski algoritam s popisa ponuđenih, stvara odgovarajući sjednički ključ i šalje ga poslužitelju. Taj ključ u nastavku sjednice koristi se za simetričnu enkripciju poruka. Prije slanja korisnik kriptira sjednički ključ dva puta: s javnim računalnim ključem i poslužiteljskim ključem. Dvostrukom enkripcijom osigurava se sjednički ključ kao osiguranje ako privatni poslužiteljski ili računalni ključ budu ukradeni.
U poruku je uključen i dobiveni slijed od 8 pseudoslučajnih brojeva (vidi korak 3). Pomoću slijeda korisnik dokazuje poslužitelju da je on taj koji je poslao zahtjev, a ne napadač koji je lažirao njegovu adresu.
- Poslužitelj dekriptira sjednički ključ i šalje korisniku potvrdu o njegovu primitku, koja je kriptirana sjedničkim ključem. Korisnik čeka sve dok ne primi potvrdu.
Tako se korisnik osigurava od uspostave veze s lažnim poslužiteljem, jer samo je pravi poslužitelj mogao dekriptirati sjednički ključ uz pomoć svog računalnog i poslužiteljskog ključa.
- Nakon primitka potvrde počinje postupak autentikacije klijenta. Klijent odabire postupak s popisa ponuđenih mehanizama (iz koraka 3). Nakon uspješne autentikacije počinje sjednica.
Bitno: sav promet od primitka potvrde poslužitelja kriptiran je sjedničkim ključem. Tako su korisnički podaci za autentikaciju (npr. lozinka) osigurani od napada pri mrežnom prijenosu.
Protokol SSH verzije 2 (skraćeno SSH-2) je složeniji i donosi neke razlike u postupku uspostave veze. Detaljan opis razlika između protokola SSH-1 i SSH-2 bit će tema narednih članaka.
SSH - 02-24-05 12:35
SSH enkripcija i zaštita integriteta poruka - 03-31-05 23:45
|