Konkreciniai kanalai tiek transporto sluoksnio saugumo (TLS), tiek saugaus apvalkalo (SSH) protokoluose tvarko duomenų šifravimą ir iššifravimą derinant pagrindinius mainus, šifravimo algoritmus ir sesijų valdymo metodus, užtikrinančius saugų ryšį abiem kliento ir serverio kryptimis.
TLS dvikryptis kanalo šifravimas ir iššifravimas
TLS yra skirtas užtikrinti duomenų, keičiamų tarp dviejų bendraujančių šalių, konfidencialumo ir vientisumo, per tinklą, pavyzdžiui, klientą ir serverį. Jo dvikryptiniai kanalai leidžia saugiai keistis duomenimis į abi puses vienu metu, pasinaudojant kelis kriptografinius procesus:
- Pagrindinis mainai ir autentifikavimas: TLS rankos paspaudimas prasideda nuo abiejų šalių derybų kriptografinių parametrų, kad būtų galima nustatyti bendrus raktus, neperduodant jų tiesiogiai. Viešojo rakto kriptografijos algoritmai, tokie kaip RSA, Diffieâ Hellman (DH), Efemeral Diffieâ Hellman (DHE), elipsės kreivės diffie's Hellman (ECDHE) ir kiti naudojami norint saugiai generuoti bendrą slaptą raktą. Šis raktas nėra tiesiogiai siunčiamas per tinklą, bet savarankiškai gaunamas iš abiejų pusių, apsikeitęs būtinomis viešosiomis vertybėmis. Šio rankos paspaudimo metu serveris dažniausiai autentifikuoja klientui per sertifikatą, pasirinktinai abipusiai autentifikuoti. Rankų paspaudimas taip pat sutinka su šifro apartamentais, kurie diktuoja šifravimo algoritmus, naudojamus birių duomenų šifravimui. Šis procesas pagrindiniame susitarimo etape pateikia ir autentifikavimą, ir paslaptį.
- Simetrinis šifravimas duomenų perdavimui: Po rankos paspaudimo nustatytas bendras slaptas raktas, TLS perjungia į simetrinį šifravimą, kad apsaugotų faktinius sesijos keičiamus pranešimus. Kadangi simetriniai šifravimo algoritmai yra skaičiavimo požiūriu efektyvūs, jie leidžia šifravimui realiuoju laiku ir iššifravimą į abi puses. Įprasti simetriniai šifravimo algoritmai, naudojami TLS, yra AES (išplėstinis šifravimo standartas), „Chacha20“ ir kt. Abi šalys naudoja tą patį seanso raktą, kad šifruotų išeinančius ir iššifruotų gaunamus duomenų srautus, užtikrindamos dvikrypčio konfidencialumą.
- Duomenų vientisumas ir autentifikavimas: TLS integruoja pranešimų autentifikavimo kodus (MACS) arba autentifikuotus šifravimo režimus, tokius kaip AES-GCM (GALOIS/Counter Mode), kad būtų užtikrintas pranešimo vientisumas ir autentiškumas. Tai garantuoja, kad bus aptiktas bet koks pranešimų klastojimas ar klastojimas.
- Dvikrikravimo pobūdis: TLS kanalai iš prigimties yra dvikryptė, tai reiškia, kad abu galiniai taškai gali siųsti ir gauti užšifruotus duomenis tuo pačiu metu. Šifravimo ir iššifravimo procesai atspindi abiejuose galuose, naudojant nustatytus simetrinius raktus, leidžiančius vientisas, saugias dviejų krypčių ryšius.
- Į priekį paslaptis: Šiuolaikiniai TLS variantai naudoja efemeralinius raktus su DHE arba ECDHE, kurie nustato sesijos raktus, kuriuose yra paslaptis. Tai reiškia, kad net jei pakenks ilgalaikiai raktai, ankstesnės komunikacijos sesijos išlieka saugios.
- Sesijos atnaujinimas: Norėdami pagerinti efektyvumą, palyginti su pakartotinėmis sesijomis, TLS palaiko sesijos atnaujinimą, kai ankstesni sesijos raktai ar identifikatoriai yra pakartotinai naudojami, kad būtų išvengta viso rankos paspaudimo, išlaikant saugumą, kuris taikomas dvikryptės užšifruotų duomenų srautui.
SSH dvikryptis kanalo šifravimas ir iššifravimas
SSH teikia saugų nuotolinio prisijungimo ir kitų saugių tinklo paslaugas per nesaugų tinklą. Jo dvikryptiniai kanalai taip pat užtikrina, kad duomenys yra užšifruoti ir saugiai iššifruoti tiek siunčiant, tiek gaunant:
- Pagrindinis mainų protokolas: Panašiai kaip TLS, SSH prasideda pagrindiniu mainų mechanizmu, kad būtų sukurtas bendras slaptas raktas, naudojamas šifravimui sesijai. Paprastai jis naudoja „Diffie-Hellman“ raktų mainų algoritmą. Serveris pristato savo viešojo pagrindinio kompiuterio raktą, kurį klientas patikrina, kaip autentifikuoti serverį prieš tęsdamas. Tada abi šalys naudoja sutartus algoritmus, kad savarankiškai sugeneruotų bendrą slaptą raktą.
- Asimetrinė kriptografija autentifikavimui: skirtingai nuo simetrinio šifravimo, naudojamo biriems duomenims, asimetriniai raktai SSH specialiai tarnauja autentifikavimo tikslais. Šių asimetrinių porų privatūs raktai išlieka slapti ir yra naudojami tapatybei įrodyti, tačiau birių duomenų šifravimui naudojami simetriniai klavišai.
- Simetrinis ryšių šifravimas: Po pagrindinių mainų ir autentifikavimo fazių SSH perjungia į simetrinius šifravimo algoritmus, kad būtų saugiai perduoti duomenis per dvikryptį kanalą. SSH palaiko kelis simetrinius šifrus, tokius kaip AES, 3DES, Blowfish, Cast128 ir Arcfour. Tiek klientas, tiek serveris naudoja tą patį klavišą, kad šifruoti išeinančius duomenis ir iššifruotų gaunamus duomenis, įgalindami visą dupleksą saugų ryšį.
- Sąžiningumas ir glaudinimas: Norėdami užtikrinti, kad pranešimai nėra sugadinti „Transit“, SSH taiko kriptografines maišos funkcijas, kad sukurtų pranešimų autentifikavimo kodus (MACS) arba naudoja autentifikuotus šifravimo režimus. Be to, norint padidinti perdavimo efektyvumą, gali būti taikomas suspaudimas.
- Dvikrypčio kanalo funkcionalumas: SSH ryšys sukuria saugius tunelius ar kanalus, kurie yra dvikrypčiai, palaikantys tuo pat metu siunčiant ir gaunant duomenis šifravimu ir iššifravimu, vykstančiais simetriškai tiek kliento, tiek serverio pusėse. Tai leidžia saugiai vykdyti komandų vykdymą, failų pervedimus (per SFTP) ir prievadų persiuntimą, visa tai perduodami užšifruoti kanalai.
- Srauto valdymo ir klaidų tvarkymas: SSH kanalai apima srauto valdymo mechanizmus, kurie valdo duomenų perdavimo greitį abiem kryptimis, pritaikant tinklo sąlygas ir užtikrinant patikimą ryšį.
bendros TLS ir SSH dvikrypčių kanalų charakteristikos
- Abu naudokite pradinį rankos paspaudimą, kad užšifruotų sesijos raktus tvirtai sukurtų, nepadarydami jų potencialiems posūkiams.
- Simetrinis šifravimas naudojamas šifravimo ir iššifravimo birių ryšių duomenų efektyvumui, kai bus nustatytas sesijos raktas.
- Abu taiko pranešimų autentifikavimo metodus, kad užtikrintų duomenų konfidencialumą, vientisumą ir autentiškumą abiem kryptimis.
-Jie palaiko visą dupleksą, tuo pat metu abipusį duomenų srautą saugiuose užšifruotuose tuneliuose.
- Algoritmų, galinčių suteikti paslaptį, naudojimas, užtikrinant, kad ankstesnės komunikacijos išliks saugios, net jei bus pažeisti ilgalaikiai raktai.
- Abu protokolai derasi ir sutinka dėl šifravimo algoritmų ir raktų ilgio sesijos pradžioje.
- Šių protokolų dvikryptis pobūdis užtikrina, kad klaidų tvarkymas, retransliavimas ir srauto valdymo pranešimai taip pat gali būti saugiai keičiami.