P°ehled - SSH protokol


P°ehled

SSH je binßrnφ protokol zalo₧en² na paketech, kter² pracuje na vrcholu jakΘhokoliv transportu, kter² bude p°edßvat tok binßrnφch dat. Normßln∞ se TCP/IP pou₧φvß jako transport, ale jeho implementace takΘ umo₧≥uje vyu₧itφ libovolnΘho proxy programu k p°edßvßnφ dat do/ze serveru, a zahrnuje p°φmou podporu pro firewally zalo₧enΘ na SOCKS a FWTK.

Paketov² mechanismus a s nφm spojenΘ autentizace, v²m∞na klφΦ∙, Üifrovßnφ a mechanismus integrity implementujφ bezpeΦnostnφ mechanismus transportu, kter² je pak pou₧it k implementaci funkcφ bezpeΦnΘho spojenφ.

P°φpadn² ·toΦnφk tak mß siln∞ omezenΘ mo₧nosti zasahovat a vlastn∞ m∙₧e jen p°eruÜit spojenφ.

Host autentizace

Server odeÜle sv∙j ve°ejn² RSA host klφΦ a jinΘ ve°ejnΘ RSA klφΦe. "Serverov² klφΦ'' se m∞nφ ka₧dou hodinu. Klient porovnß obdr₧en² host klφΦ se svou vlastnφ databßzφ znßm²ch host klφΦ∙.

F­Secure SSH server normßln∞ akceptuje klφΦ neznßmΘho hostu a ulo₧φ jej do svΘ databßze pro budoucφ reference (to vyu₧φvß SSH prakticky ve vÜech prost°edφch). Ale F­Secure SSH server m∙₧e b²t takΘ nastaven tak, ₧e odmφtne p°φstupk jak²mkoliv host∙m, jejich₧ klφΦ nenφ znßm.



Klient vygeneruje 256 bitovΘ nßhodnΘ Φφslo pomocφ kryptograficky silnΘho generßtoru nßhodn²ch Φφsel a zvolφ Üifrovacφ algoritmus z t∞ch algoritm∙, kterΘ jsou podporovßny serverem, normßln∞ je to IDEA nebo t°φklφΦov² 3DES. Klient zaÜifruje nßhodnΘ Φφslo (klφΦ sezenφ) pomocφ RSA a vyu₧ije p°i tom oba klφΦe: host klφΦ a serverov² klφΦ, a poÜle zaÜifrovan² klφΦ na server.

┌Φelem host klφΦe je svßzat spojenφ s ₧ßdan²m serverov²m hostem (pouze server m∙₧e deÜifrovat zaÜifrovan² klφΦ sezenφ). Druh² klφΦ, m∞n∞n² ka₧dou hodinu, serverov² klφΦ, se pou₧φvß k znep°φstupn∞nφ zaznamenanΘ hostorie deÜifrovßnφ pro p°φpad, ₧e by byl kompromitovßn host klφΦ. Host klφΦ je normßlnφ, RSA klφΦ, dlouh² 1024 bit∙ a serverov² klφΦ je dlouh² 768 bit∙. Oba klφΦe jsou vygenerovßny pomocφ kryptograficky silnΘho generßtoru nßhodn²ch Φφsel.

Server deÜifruje RSA zaÜifrovßnφ a zφskß tak klφΦ sezenφ. Ob∞ strany zaΦaly pou₧φvat klφΦ sezenφ a spojenφ je nynφ zaÜifrovanΘ. Server vyÜle zaÜifrovanΘ potvrzenφ klientu. P°φjetφ potvrzenφ °φkß klientu, ₧e server byl schopen deÜifrovat klφΦ a proto mß v dr₧enφ p°φsluÜnΘ soukromΘ klφΦe.

V tomto okam₧iku byl poΦφtaΦ serveru autentizovßn, a Üifrovßnφ na ·rovni transportu a ochrana integrity jsou vyu₧ity.

U₧ivatelskß autentizace

U₧ivatel m∙₧e b²t autentizovßn serverem n∞kolika zp∙soby. Dialog pro u₧ivatelskou autentizaci je °φzen klientem, kter² odesφlß ₧ßdost na server. Prvnφ ₧ßdost v₧dy deklaruje u₧ivatelskΘ jmΘno, jak bylo pou₧ito pro log in. Server odpovφdß na ka₧dou ₧ßdost bu∩ "success'' a nebo "failure'' (je vy₧adovßna dalÜφ autentizace).

V souΦasnosti podporovan²mi metodami autentizace jsou:

AutentizaΦnφ agent

AutentizaΦnφ agent je program, kter² b∞₧φ na u₧ivatelskΘm lokßlnφm poΦφtaΦi (nebo v budoucnosti na ΦipovΘ kart∞ p°ipojenΘ k n∞mu). Agent udr₧uje u₧ivatelskΘ soukromΘ RSA klφΦe. Nikdy nevydßvß soukromΘ klφΦe, ale akceptuje autentizaΦnφ ₧ßdosti a dßvß zp∞t vhodnΘ odpov∞di.

V prost°edφ UNIX agent komunikuje s F­Secure SSH serverem pomocφ prßce s otev°en²m souborem, kter² je zd∞d∞n vÜemi potomky procesu agenta. Jinφ u₧ivatelΘ nemohou zφskat p°φstup k agentu. U jin²ch operaΦnφch systΘm∙ jsou pou₧ity jinΘ mechanismy.

Kdy₧ se u₧ivatel spojφ s F­Secure SSH serverem, je vyslßna autentizaΦnφ ₧ßdost na lokßlnφ poΦφtaΦ u₧ivatele, kde b∞₧φ autentizaΦnφ agent. Tφmto zp∙sobem je mo₧nΘ vydßvat novß spojenφ a prochßzet libovoln∞ dlouh²m °et∞zcem poΦφtaΦ∙, umφst∞n²mi kdekoliv na sv∞t∞, a p°itom autentizaΦnφ proces se v₧dy konß v lokßlnφm poΦφtaΦi a bez toho, ₧e by autentizaΦnφ klφΦe kdykoliv opustily agent.

KryptografickΘ metody

SSH protokol poskytuje silnou bezpeΦnost kryptografick²mi metodami.

SSH vyu₧φvß RSA pro host autentizaci a u₧ivatelskou autentizaci. Host klφΦe a klφΦe pro u₧ivatelskou autentizaci jsou dlouhΘ 1024 bit∙.

Serverov² klφΦ, kter² se m∞nφ ka₧dou hodinu, je implicitn∞ dlouh² 768 bit∙. Pou₧φvß se k ochran∞ p°edjφman²ch historiφ jednotliv²ch sezenφ p°ed deÜifrovßnφm v p°φpad∞, ₧e by n∞kdy pozd∞ji byl host klφΦ kompromitovßn. Serverov² klφΦ nikdy nenφ ulo₧en na disku.

V²mna klφΦ∙ je provßd∞na zaÜifrovßnφm 256-bit∙ dlouhΘho klφΦe sezenφ dvakrßt pomocφ RSA. Je p°ed ka₧d²m zaÜifrovßnφm vycpßn nenulov²mi nßhodn²mi byty. Server host autentizace se d∞je implicitn∞ s v²m∞nou klφΦ∙ (idea je takovß, ₧e pouze dr₧itel platnΘho soukromΘho klφΦe m∙₧e deÜifrovat klφΦ sezenφ, a obdr₧enφ zaÜifrovanΘho potvrzenφ °φkß klientu, ₧e klφΦ sezenφ byl ·sp∞Ün∞ deÜifrovßn).

Klient host autentizace a RSA u₧ivatelskß autentizavce jsou provedeny pomocφ v²m∞ny v²zvy-odezvy, kde odezvou je MD5 deÜifrovanΘ v²zvy plus data, kterß vß₧ou v²sledek k urΦitΘmu sezenφ (host klφΦ a "anti-spoofing cookie").

V²m∞na klφΦ∙ p°enßÜφ 256 bit∙ klφΦov²ch dat na server. JinΘ Üifrovacφ metody pou₧φvajφ r∙zn∞ velkΘ klφΦe: IDEA pou₧φvß 128 bitovΘ, t°φ klφΦov² 3DES 168 bitov² a RC4-ekvivalent 128 bitov² na jeden sm∞r.

VÜechna nßhodnß Φφsla vyu₧φvanß v SSH jsou generovßnapomocφ kryptograficky silnΘho generßtoru nßhodn²ch Φφsel.