Ano ang SSH at paano ito gumagana?

Ano ang SSH encryption at paano ito gumagana

Skagalingan Shang ell (SSH) ay isang karaniwang ipinatupad na security protocol na may iba’t ibang mga gamit. Pinapayagan nito ang pinaka kilalang application na ito ligtas na ma-access ang mga malayuang computer at server, ngunit maaari din itong magamit para sa pag-lagay, pagpapasa ng port, ligtas na paglilipat ng file at marami pa.

Sa gabay na ito, takpan namin kung ano ang SSH, kung ano ang ginagamit para sa, ang kasaysayan ng protocol, ang mga teknikal na detalye, pati na rin ang mga isyu sa seguridad na kailangang isaalang-alang.

Ang SSH ay binubuo ng tatlong magkakahiwalay na protocol: ang layer ng transportasyon, layer ng pagpapatunay at ang layer ng koneksyon. Sama-sama, ang mga ito ay nagsisilbi upang patunayan ang ibang partido sa koneksyon, magbigay ng kumpidensyal sa pamamagitan ng pag-encrypt, at suriin ang integridad ng data. Mas madalas na ipinatutupad ang SSH bilang alinman sa pagmamay-ari ng SSH-2, o bilang pagbukas ng open-source, OpenSSH.

Ang mga gamit ng SSH

Ang SSH ay isang maraming nalalaman protocol. Ang mga tampok ng istraktura at seguridad nito ay pinapayagan itong magamit sa isang bilang ng mga paraan, tulad ng para sa malayuang pag-access, pagpapasa ng port, pag-tunneling at ligtas na paglilipat ng file.

Malayo na pag-access

Nagbibigay ang Remote ng mga gumagamit ng paraan upang mag-log in sa isa pang computer o server mula sa kanilang sariling makina. Ginagamit ito upang ma-access ang mga lokal na file ng target na makina o magsagawa ng mga serbisyo dito, lahat nang hindi kinakailangang maging pisikal.

Ang mga programa tulad ng Telnet at rlogin ay mayroon ding pag-andar na ito, ngunit kulang sila sa mga tampok ng seguridad ng SSH. Ang mga hakbang sa pag-encrypt at pagpapatunay na kasangkot sa SSH ay nagpapahintulot sa mga gumagamit na kumonekta sa isa pang server o computer sa isang protektadong paraan, kahit na sa isang potensyal na mapanganib na intermediate network.

Ang malayong pag-access sa SSH ay karaniwang ipinatutupad upang ang mga empleyado ay maaaring gumana nang malayuan, o payagan ang departamento ng IT na maisakatuparan ang mga gawain nang hindi kinakailangang pisikal na pumunta sa makina. Maaari itong magamit para sa malayong pangangasiwa, pamamahala ng imprastraktura ng network, upang mag-set up ng automation, lumikha ng mga backup at higit pa.

Pagpapasa ng Port

Ginagamit ang port forwarding upang ilipat ang mga kahilingan mula sa isang address at numero ng port sa isa pang hanay. Nalalapat nito ang network address translation (NAT) upang mai-redirect ang mga port sa pagitan ng isang lokal na network at isang malayuang computer, na nagpapahintulot sa iyo na ma-access ang isang aparato mula sa labas ng network.

Ang paglipat ng port ay maaaring gawin sa tatlong magkakaibang paraan:

  • Lokal pagpapasa ng port – Pinapayagan ka ng lokal na pagpapadala ng port na ikonekta ang iyong lokal na kliyente at isang panlabas na network. Maaari itong maging epektibo para sa paggawa ng mga bagay tulad ng pag-access sa mga website na na-block lokal, o para sa pagkonekta sa isang database na nasa likod ng isang firewall.
  • Pagpapasa ng malayo sa port – Ang uri ng pasulong na ito ay nagbibigay-daan sa mga aplikasyon ng pag-access sa server-side sa mga panig ng kliyente. Pinapayagan ng SSH’s remote port forwarding ang mga gumagamit na ligtas na kumonekta sa mga malayuang server sa pamamagitan ng kanilang lokal na PC sa pamamagitan ng pag-redirect ng isang lokal na port sa isang malayong SSH server.
  • Dynamic pagpapasa ng port – Pinapayagan nito ang mga gumagamit na magpadala ng kanilang data sa pamamagitan ng isang partikular na port sa isang malayong computer o server sa pamamagitan ng paggamit ng isang bilang ng mga SSH server na kumikilos bilang mga proxies.

Tunneling

ssh-2

Ang mga tunaw na protocol ay gumagamit ng encapsulation upang ilipat ang data sa pagitan ng mga network. Maaaring mai-deploy ang mga tunnels upang payagan ang mga hindi katutubong protocol na tumakbo sa mga network na karaniwang hindi susuportahan ng mga ito. Ang isa pang karaniwang gamit ay para sa pagbibigay ng seguridad sa isang hindi ligtas na network.

Ang mga naka-Tunog na protocol ay nakabalot ng mga kritikal na packet sa loob ng kargamento ng isa pang packet. Pinapayagan ng SSH tunneling ang mga gumagamit na maglibot sa seguridad sa network, upang mai-link ang mga aparato gamit ang isang non-katutubong network protocol, at ma-secure ang data na ipinadala. Madalas silang ginagamit upang ikonekta ang mga malalayong gumagamit sa mga online na mapagkukunan ng kanilang samahan sa isang ligtas na paraan.

SFTP

Ang SSH File Transfer Protocol (FTP), kung minsan ay kilala bilang Secure File Transfer Protocol ay nagbibigay ng isang ligtas na paraan upang ma-access, ilipat at pamahalaan ang mga file. Ito ay isang ligtas na alternatibo sa FTP, at ipinakikilala ang protocol ng SSH upang ligtas na magpadala, tumanggap at mangasiwa ng mga file.

SCP

Ang Secure Copy Protocol (SCP) ay katulad ng SFTP, ngunit mas limitado sa saklaw nito. Pinapayagan lamang nito ang mga secure na paglilipat ng file, sa halip na ang buong hanay ng mga tampok na nagpapahintulot sa SFTP na kumilos bilang isang malayuang protocol ng system file.

Mga Plataporma & mga application na gumagamit ng SSH

Ang proprietary SSH o OpenSSH ay maaaring magamit sa lahat ng mga pangunahing operating system. Magagamit ito sa mga platform na batay sa Unix tulad ng OpenBSD, macOS, Linux at Solaris, habang ang mga gumagamit ng Windows ay maaaring gumamit ng SSH sa pamamagitan ng PowerShell.

Ang kasaysayan ng SSH

Ang SSH ay binuo sa Helsinki University of Technology noong 1995 ni Tatu Ylönen bilang tugon sa pag-atake ng password sa isang network ng unibersidad. Nilalayon nitong magbigay ng isang kahalili sa mga protocol tulad FTP, TELNET, rsh at rlogin, na hindi matiyak ang pagiging kompidensiyal o patunayan ang mga gumagamit sa isang ligtas na paraan.

Ang SSH ay pinakawalan nang libre sa publiko noong 1995 at mahusay na natanggap. Sa gitna ng mabilis nitong pag-aampon, itinatag ni Ylönen ang SSH Communications Security sa pagtatapos ng parehong taon upang magpatuloy sa pag-unlad at i-komersyal ang SSH.

Noong 1995, naglathala rin si Ylönen ng isang Internet Engineering Task Force (IETF) Internet Draft na naitala ang SSH-1 protocol. Hindi natagpuan ang mga limitasyon sa protocol, at hindi ito matugunan nang walang nakakaapekto sa pagkakatugma sa paurong. Ang solusyon ay isang bagong bersyon ng protocol, at ang SSH-2 ay inilunsad ng kumpanya ni Ylönen noong 1996.

Ang SSH-2 ay nagtampok ng mga bagong algorithm, na sinenyasan ang IETF na makahanap ng isang nagtatrabaho na pangkat na naglalayong i-standardize ang protocol. Ang grupo ay pinangalanang SECSH, para Sinabi ni Secure Shat, at inilathala nito ang unang Internet Draft para sa SSH-2 noong 1997.

Ang software para sa SSH-2 ay pinakawalan noong 1998, ngunit hindi ito agad na pinagtibay sa isang malawak na paraan dahil sa mas mahigpit na paglilisensya. Noong 2006, isang binagong bersyon ng protocol ay ginawa ng isang pamantayan ng IETF. Ito ay mas ligtas, gamit ang mga code sa pagpapatunay ng mensahe upang suriin ang integridad at ang exchange exchange ng diffie-Hellman para sa pagpapatotoo.

Noong 1999 pinakawalan ng OpenBSD proyekto ang OpenSSH. Ang OpenSSH ay isang libreng bersyon ng protocol batay sa mga pagbabago na ginawa ng Björn Grönvall sa SSH 1.1.12. Bumalik ang mga nag-develop sa mas lumang bersyon na ito at mabago itong binago, dahil ito ang huling bersyon ng SSH na ganap na bukas na mapagkukunan. Ang OpenSSH ngayon ang pinakapopular na ginamit na opsyon at mula pa noong ipinatupad ito sa isang hanay ng mga operating system, tulad ng Windows, macOS, Linux, Solaris at iba pa.

SSH-1 vs SSH-2 vs OpenSSH

Tulad ng nabanggit sa itaas, ang SSH-1 ay ang unang bersyon ng protocol, na orihinal na pinakawalan sa ilalim ng isang bukas na mapagkukunan ng lisensya. Itinuturing itong walang katiyakan, at hindi dapat ipatupad. Iniwan nito ang bersyon ng pagmamay-ari, SSH-2, at ang malayang magagamit na bersyon, ang OpenSSH, bilang mabubuting alternatibo.

Ang SSH-2 at OpenSSH ay mahalagang pareho pagdating sa kanilang arkitektura at kung paano sila gumagana. Ang pangunahing pagkakaiba ay ang bersyon ng pagmamay-ari ay may iba’t ibang mga pagpipilian ng suporta, habang ang mga gumagamit ng OpenSSH ay kailangang umasa sa mga mapagkukunang nilikha ng komunidad.

SSH: Ang mga teknikal na detalye

Ang SSH-1 ay gumana bilang isang solong protocol, ngunit hindi kami papasok dito dahil hindi na ginagamit. Sa halip, tututuunan natin ang SSH-2 at OpenSSH, na pareho ay binubuo ng tatlong magkakahiwalay na protocol:

  • Ang transport protocol – Itinataguyod nito ang koneksyon at nagbibigay ng pinagbabatayan na seguridad.
  • Ang protocol ng pagpapatunay – Ang layer na ito ay ginagamit upang mapatunayan ang kliyente.
  • Ang protocol ng koneksyon – Ang protocol na ito ay humahawak sa mga channel na ipinapasa ng data.

Ang bawat isa sa mga protocol na ito ay nagsisilbi ng isang natatanging papel na gumagana patungo sa pagtatatag at pag-secure ng isang koneksyon, pagpapatunay sa ibang partido, at paglilipat ng data. Ang default na koneksyon ng TCP ay 22, at ang mga koneksyon ay naka-set up sa pagitan ng isang SSH client at isang SSH server kasama ang modelo ng client-server.

Ang remote na proseso ng pag-login ng SSH ay nalalapat ayon sa sumusunod na pangunahing istraktura (na may mga pagkakaiba-iba depende sa pagsasaayos), na masasakop namin nang mas detalyado sa susunod:

  • Nakikipag-ugnay ang kliyente sa server ng SSH upang masimulan ang koneksyon.
  • Pagkatapos ay ipinapadala ng server ang pampublikong susi nito sa kliyente upang mapatunayan ang pagkakakilanlan nito.
  • Ang dalawang partido ay nakikipag-usap sa mga parameter para sa koneksyon, pagkatapos ay magtatag ng isang ligtas na channel kasama ang mga linyang iyon.
  • Ang gumagamit ay pagkatapos ay mag-log sa operating system ng server host at maaari na ngayong pamahalaan ang kanilang mga gawain nang malayuan.

Transport protocol

Ang layer ng transportasyon ay isang mababang antas ng protocol na nangangalaga sa mga sumusunod na gawain.

  • Ang pagpapatunay ng host ng server
  • Key exchange
  • Encryption para sa pagiging kompidensiyal ng data
  • Ang mga tseke ng integridad upang mapatunayan na ang data ay hindi nabago
  • Pagtatatag ng isang session ID na maaaring magamit sa iba pang mga protocol

Ang Pinapatunayan lamang ng transport protocol ang server at hindi ang kliyente (Ang pagpapatunay ng kliyente ay ginagawa sa protocol ng pagpapatunay kung kinakailangan).

Sa layer ng transportasyon, ang koneksyon ay sinimulan ng kliyente at ang dalawang partido pagkatapos ay makipag-ayos kung paano ipagpapalit ang mga susi, kung saan gagamitin ang pampublikong key algorithm, na kung saan ang simetriko-key cipher ay i-encrypt ang data, na kung saan ang algorithm ng pagpapatunay ng mensahe ay gagamitin upang suriin ang data, at kung aling paraan ng compression (kung mayroon man) ay ipatutupad.

Kapag nagsimula ang koneksyon, ang server at ang kliyente ay kailangang magpadala sa pamamagitan ng isang string ng pagkakakilanlan, na kasama ang bersyon ng protocol (2.0).

Pakikipag-usap sa algorithm

Upang mai-set up ang mga parameter ng koneksyon, ang magkabilang panig ay nagpapadala sa pamamagitan ng isang packet na naglalaman ng isang listahan kasama ang mga sumusunod na pagpipilian:

byte SSH_MSG_KEXINIT

byte [16] cookie (random na bait)
pangalan-list kex_algorithms
name-list server_host_key_algorithms
pangalan-list encryption_algorithms_client_to_server
pangalan-list encryption_algorithms_server_to_client
listahan ng pangalan mac_algorithms_client_to_server
pangalan-list mac_algorithms_server_to_client
pangalan-list compression_algorithms_client_to_server
pangalan-list compression_algorithms_server_to_client
pangalan ng listahan ng pangalan_client_to_server
pangalan-list na wika_server_to_client
boolean first_kex_packet_follows
uint32 0 (nakalaan para sa hinaharap na extension)

Ang bawat panig ay naglilista ng mga parameter na nais nilang tanggapin sa koneksyon, na pinaghiwalay ng mga koma. Ang ginustong algorithm ay dapat na nakalista muna.

Para sa pangunahing palitan (kex_algorithms), ang unang algorithm na sinusuportahan ng parehong partido para sa koneksyon (maaaring mayroon ding iba pang mga kadahilanan na kailangang matugunan, depende sa kung aling algorithm ang napili). Kung ang dalawang partido ay hindi makakahanap ng isang magkakasamang suportadong algorithm na nasiyahan sa mga kinakailangang ito, mabigo ang koneksyon.

Ang mga pangunahing algorithm ng host ng server ay ang suportadong algorithm para sa server host key. Inihahatid ng server ang mga algorithm na mayroon itong mga susi para sa host, habang tinukoy ng kliyente ang mga algorithm na handa itong tanggapin. Ang pagpili ay depende sa kung ang pangunahing paraan ng pagpapalit na naisaayos ay nangangailangan ng isang key key na may encryption o isang pirma ng digital

Parehong panig ang naglilista ng symmetric-key algorithm handa silang tanggapin, kasama ang mga ginustong pamamaraan sa tuktok. Ang unang pagpipilian na lilitaw sa listahan ng kliyente na nangyayari din na nasa listahan ng server ay dapat gamitin. Kung walang magagawa na kasunduan, mabigo ang koneksyon.

Parehong Algorithm ng MAC at ang algorithm ng compression ay napagkasunduan sa parehong paraan.

Key exchange

Ang pangunahing palitan ay responsable para sa pagpapatunay ng server, at ito nagtatakda ng mga susi na gagamitin upang ma-secure ang koneksyon sa mga sumusunod na hakbang. Sa pangkalahatan ito ay nagsisimula sa mga partido na nagpapadala ng kanilang mga listahan ng mga suportadong algorithm sa isa’t isa. Bilang kahalili, ang bawat panig ay maaaring hulaan ang ginustong algorithm ng ibang panig at magpadala ng isang packet na umaangkop sa mga parameter ng algorithm sa simula.

Kung tama ang hula ng isang partido, ang packet na ito ay ginagamit bilang unang key exchange packet. Kung alinman sa hulaan ay tama, pagkatapos ang bawat panig ay dapat na bumalik sa isang hakbang at ipadala ang kanilang mga listahan ng mga ginustong mga algorithm. Kung kasama ang pangunahing mensahe ng palitan ng digital na lagda ng server bilang patunay ng pagiging lehitimo ng server, isasaalang-alang ito tahasang pagpapatotoo ng server. Kung gagamitin nito ang ibinahaging lihim, tinukoy ito bilang implicit pagpapatotoo ng server.

Ang pangunahing palitan ay may pananagutan din sa pagtatatag ng isang nakabahaging lihim at isang hash. Ang hash na halaga mula sa paunang key exchange ay nagiging natatanging tagatukoy para sa session, at ginagamit din bilang bahagi ng mga pirma ng digital na nagpapatunay na ang partido ay ang tunay na may-ari ng pribadong susi nito.

Ang hash function na ginagamit ay depende sa pangunahing pamamaraan ng pagpapalitan na napagpasyahan sa negosasyon. Kapag nakumpleto ang key exchange, lahat ng mga hinaharap na komunikasyon ay gagamit ng bagong hanay ng mga susi at algorithm.

Ayon sa isang Internet Engineering Task Force (IETF) Internet Draft, ang mga sumusunod na pangunahing pamamaraan ng palitan ay itinuturing na ligtas:

  • curve25519-sha256
  • curve448-sha512
  • diffie-hellman-group-exchange-sha256
  • diffie-hellman-group14-sha256
  • diffie-hellman-group15-sha512
  • diffie-hellman-group16-sha512
  • diffie-hellman-group17-sha512
  • diffie-hellman-group18-sha512
  • ecdh-sha2-nistp256
  • ecdh-sha2-nistp384
  • gss-group14-sha256
  • gss-group15-sha512
  • gss-group16-sha512
  • gss-group17-sha512
  • gss-group18-sha512
  • gss-nistp256-sha256
  • gss-nistp384-sha384
  • gss-nistp521-sha512
  • gss-curve25519-sha256
  • gss-curve448-sha512
  • rsa2048-sha256

Ang pangunahing key ng algorithm ng host ng server

Ang mga public-key algorithm na ito ay ginagamit para sa pagpapatunay ng server pati na rin upang ligtas na maitatag ang shared session ID. Maaari din silang maging opsyonal na ginagamit upang mapatunayan ang host. Ang SSH ay idinisenyo upang gumana sa isang hanay ng mga pampublikong key algorithm, mga uri ng pag-encode at mga format:

  • Gumagamit ito ng mga pampublikong key algorithm para sa pag-encrypt at / o mga digital na lagda.
  • Maaaring maisagawa ang isang hanay ng mga pamamaraan ng pag-encode, na nagpapahintulot sa pagsasaayos sa iba’t ibang mga format ng data, padding at byte order.
  • Pinapayagan ng iba’t ibang mga pangunahing format ng mga susi na mai-encode sa iba’t ibang mga paraan, pati na rin ang isang hanay ng mga kinatawan ng sertipiko.

Kasama sa mga default na algorithm ang mga sumusunod, subalit mayroong ilang iba pang mga pagkakaiba-iba na maaari ring ipatupad:

  • ssh-rsa
  • ssh-rsa-sha256
  • ssh-dss
  • ssh-dss-sha256
  • x509v3-sign-dss
  • x509v3-sign-dss-sha256
  • x509v3-sign-rsa
  • x509v3-sign-rsa-sha256

Mga algorithm ng pag-encrypt

Ang mga simetriko-key algorithm ay ginagamit upang i-encrypt ang data at magbigay ng pagiging kompidensiyal. Ang mga parameter at ibinahaging key na ginagamit sa proseso ng pag-encrypt ay itinatag sa mga naunang yugto ng koneksyon. Ang piniling algorithm ay naka-encrypt ang payload, haba ng packet, haba ng padding, at mga patlang na padding.

Ang isang iba’t ibang mga iba’t ibang mga algorithm ng pag-encrypt ay tinatanggap sa SSH, ngunit para sa mga layuning pangseguridad, mas mainam na manatili sa AES. Ang mga susi ay dapat na isang minimum na 128-bit, ngunit mas pinipili ang mas malaking mga susi.

Mga algorithm ng MAC

Ang transport protocol nagpapatunay ng integridad ng data sa pamamagitan ng pagdaragdag ng isang code ng pagpapatunay ng mensahe (MAC) sa packet. Ang MAC na ito ay batay sa ibinahaging lihim (na itinatag sa pangunahing palitan), ang numero ng pagkakasunud-sunod ng packet at ang mga nilalaman ng packet. Ito ay kinakalkula bago maganap ang pag-encrypt.

Ang mga pagpapatupad ay kailangang mag-alok ng isang independiyenteng algorithm upang tumakbo sa bawat direksyon, bagaman mainam kung ang parehong isa ay ginagamit sa magkabilang panig. Ang isang malawak na iba’t ibang mga algorithm ng pagpapatunay ng mensahe ay maaaring maipatupad, gayunpaman ang SHA-256 at sa itaas ay dapat gamitin sa karamihan ng mga sitwasyon upang matiyak ang isang mataas na antas ng seguridad.

Kompresyon

Ang kompresyon ay hindi sapilitan sa protocol ng SSH, at ang mga pagpapatupad nito ay dapat payagan ang mga koneksyon upang magpatuloy nang walang compression. Ang kompresyon ay maaari lamang ipatupad bilang isang pagpipilian, gamit ang mga scheme tulad zlib. Kung ginagamit ang compression, nakakaapekto lamang ito sa payload. Ang MAC at ang patlang ng haba ng packet ay pagkatapos ay kinakalkula batay sa compressed payload.

Transport protocol packet

Ang packet ng transport protocol ay na-format upang isama ang sumusunod na impormasyon (pati na rin ang ilang mga hindi gaanong kaugnay na mga detalye na naiwan)

  • Ang haba ng packet
  • Ang haba ng padding
  • Ang payload
  • Padding
  • Isang code ng pagpapatunay ng mensahe (MAC)

ssh-3

Ang protocol ng pagpapatunay

Ang protocol na ito ay ginagamit ng server na patunayan ang kliyente. Maaari itong gawin ito sa iba’t ibang iba’t ibang mga mekanismo, na kung saan ay umaasa sa session ID na itinatag sa transport protocol. Ang ilan ay gumagamit ng mga tseke ng pag-encrypt at integridad mula sa protocol ng transportasyon kasabay ng session ID, habang ang iba ay gumagamit ng mga algorithm na ito sa kanilang sarili.

Ginagamit ng server ang lokal na patakaran nito upang magpasya kung aling mga pamamaraan ng pagpapatunay na natanggap nito mula sa isang indibidwal na gumagamit. Dahil ang server ay na-napatunayan sa transport protocol, hindi na kailangang patunayan ang server nang higit pa.

Ang seguridad ng protocol ng pagpapatunay ay nakasalalay sa protocol ng transportasyon na tumatakbo sa tuktok ng. Kung hindi masiguro ng transport protocol ang pagiging kompidensiyal o suriin ang integridad ng data, pagkatapos ay nililimitahan nito kung paano ligtas na magamit ang pagpapatunay na protocol.

Bilang halimbawa, kung ang proteksyon ng integridad ay hindi inilalapat ng transport protocol, kung gayon ang mga kahilingan tulad ng mga pagbabago sa password ay hindi dapat pahintulutan, sapagkat ito ay mag-iiwan ng mga pagkakataon para sa mga umaatake na makipag-usap sa mga data nang hindi napansin.

Ang protocol ng pagpapatunay ay gumagamit ng pagpapatunay sa publiko-key sa ilalim ng pag-aakalang hindi alinman sa pribadong susi ng server host, o ang susi ng kliyente ng host ay hindi nakompromiso. Kung ang kompromiso ay nakompromiso, maaari itong humantong sa username at password ng kliyente na pinakawalan sa attacker.

Para ma-secure ang pagpapatotoo sa host, dapat hindi kompromiso ang kliyente. Kung ito ay isang posibilidad, dapat na idinagdag ang iba pang mga pamamaraan ng pagpapatunay. Mahalagang tandaan iyon ang proseso ng pagpapatunay ay kasing lakas lamang ng pinakamahina na pamamaraan ng palitan na tinatanggap ng isang server.

Ang proseso ng pagpapatunay ng protocol

Nagsisimula ang protocol ng pagpapatunay kapag ipinapadala ng server ang kliyente ng isang listahan ng mga tinatanggap na pamamaraan ng pagpapatunay. Pagkatapos ay maaaring pumili ang client mula sa mga pamamaraang ito sa anumang pagkakasunud-sunod. Ang prosesong ito ay nagbibigay ng kontrol sa server, ngunit nagbibigay-daan din ng sapat na kakayahang umangkop upang ang client ay maaaring ayusin upang magamit ang pinaka-maginhawang pamamaraan.

Ang pinakakaraniwang pamamaraan ng pagpapatunay ng kliyente ay kinabibilangan ng:

  • Public key – Ang pamamaraang ito ay gumagamit ng mga algorithm tulad ng RSA, DSA at ECDSA upang mapatunayan ang kliyente sa pamamagitan ng public-key na kriptograpiya. Ang ilang mga pagpapatupad ay gumagamit ng x.509 sertipiko din. Sinusuri ng server ang digital na pirma ng kliyente laban sa kanilang pampublikong susi upang mapatunayan ang pagkakakilanlan ng kliyente.
  • Password – Maaari ring magamit ang mga password upang mapatunayan ang kliyente. Ang client ay nagpapadala sa pamamagitan ng password nito (na dapat na naka-encrypt ng transport protocol). Kung tumutugma ang password sa naka-imbak na halaga ng server, tinatanggap ito at pasulong ang pagpapatunay.
  • GSSAPI – Sa ilalim ng pamamaraang ito, ang mga panlabas na scheme tulad ng Kerberos ay maaaring magamit para sa solong pag-sign-on.
  • Interactive na keyboard – Ang pamamaraan na ito ay nagbibigay ng isang beses na pagpapatunay ng password sa pamamagitan ng pagkakaroon ng prompt ng server ang client para sa impormasyon.

Protocol ng koneksyon

Nagtatakda ang protocol ng koneksyon kung paano ang maraming mga channel ng data ay pinagsama sa ligtas na layer ng transportasyon. Nakikipag-usap din ito sa mga parameter na ginagamit upang ma-access ang mga ligtas na subsystem sa server host, pati na rin ang proxy-forwarding at pag-access sa mga shell.

Ang protocol ng koneksyon ay nakaupo sa tuktok ng layer ng transportasyon at mga protocol ng pagpapatunay. Pinapayagan nito ang pagpapatupad ng malayong utos, pati na rin ang naipasa X11 at mga koneksyon sa TCP / IP. Kung alinman sa server o kliyente ay nakompromiso, kung gayon ang proteksyon ng koneksyon ay hindi ligtas.

Mga Channel

Ang mga Channel ay ang mga pangunahing landas sa komunikasyon, at maaari silang mabuksan ng alinman sa partido. Maaaring isama ang mga Channel sa mga sesyon ng terminal, mga naipasa na koneksyon at iba pang mga anyo ng komunikasyon. Kapag mayroong maraming mga channel, sila ay maramihang sa isang koneksyon.

Pagbubukas ng mga channel

Ang bawat channel ay binibilang sa pareho ng mga dulo nito, bagaman ang mga numero ay maaaring magkakaiba sa magkabilang panig. Kapag ang isang panig ay humiling upang buksan ang isang channel, ipinapadala nito ang numero ng channel bilang bahagi ng mensahe, pati na rin ang impormasyon sa paunang sukat ng window at ang maximum na laki ng packet.

Ang unang laki ng window ay nagpapahiwatig kung magkano ang data ng partido na nagbubukas ng channel ay maaaring matanggap. Kung ang mas maraming data ay kailangang maipadala, ang window ay kailangang maiayos muna. Gayundin, ang maximum na laki ng packet ay tinukoy kung gaano kalaki ang maaaring matanggap ng isang packet.

Kapag ang isang panig ay humiling ng isang channel na mabubuksan, ang kabilang panig ay magbubukas ng channel kung maaari itong mapaunlakan. Kung hindi, ipapadala ito sa pamamagitan ng isang mensahe ng pagkabigo. Maaaring mabigo ang mga Channel na mabuksan para sa mga sumusunod na kadahilanan:

  • Ipinagbawal ng administrasyon
  • Nabigo ang koneksyon
  • Hindi kilalang uri ng channel
  • Kakulangan sa mapagkukunan

Kung ang alinman sa panig ng koneksyon ay nais na magpadala ng mas maraming data kaysa sa window na pinapayagan ngayon, maaari silang magpadala ng isang mensahe na humihiling upang magdagdag ng maraming mga bait.

Ang pagsasara ng mga channel

Kapag ang isang bahagi ng isang koneksyon ay nakumpleto ang paghahatid ng data, dapat itong magpadala ng isang mensahe na nagpapahiwatig na natapos na ang paggamit ng channel. Sa kabila nito, ang channel ay pinananatiling bukas, at ang data ay maaari pa ring ipadala ng ibang partido. Kung nais ng isang partido na ganap na wakasan ang channel, ginagawa nito ito sa isang hiwalay na mensahe ng pagtatapos.

Seguridad ng SSH

Ang iba’t ibang mga bersyon ng SSH ay ang bawat isa ay may sariling mga isyu sa seguridad, bagaman ang kasalukuyang mga pagsasaayos ng Ang SSH-2 at OpenSSH ay itinuturing na mas ligtas kaysa sa SSH-1.

SSH-1

Ang SSH-1 ay karaniwang itinuturing na may kamalian, na may iba’t ibang mga kahinaan. Kasama dito ang isang bug sa SSH 1.5 na pinapayagan ang mga hindi awtorisadong gumagamit na magpasok ng nilalaman sa stream ng data ng SSH. Sinamantala ng atake na ito ang minimum na proteksyon ng integridad ng data ng CRC-32.

Ang pag-atake na ito ay naliit sa SSH Compensation Attack Detector, na isinama sa karamihan sa mga mas bagong pagpapatupad. Ang pag-aayos na ito ay dumating sa isang bagong kahinaan, na may kapangyarihan na magsagawa ng di-makatwirang code na may mga pribilehiyo sa ugat.

Mayroon ding isang kahinaan na nagpapahintulot sa mga kaaway na baguhin ang huling bloke sa isang sesyon na gumagamit ng IDEA-encryption, pati na rin ang isa na nagpapahintulot sa isang nakompromiso na server na ipasa ang proseso ng pagpapatunay ng kliyente sa ibang server.

Dahil sa mga isyung pangseguridad, ang SSH-2 ay dapat gamitin sa halip. Upang mapanatili ang ligtas na pagpapatupad, dapat mo rin huwag paganahin ang renegotiation sa SSH-1, dahil ang mga pag-atake ay maaaring samantalahin ito upang ma-access ang iyong data sa pamamagitan ng mas mahina na antas ng proteksyon ng SSH-1.

SSH-2

Ang SSH-2 ay mahina laban sa isang teoretikal na pag-atake laban sa default mode ng encryption, CBC. Pinapayagan nito ang umaatake na mabawi hanggang sa 32 bits ng plaintext mula sa isang naka-encrypt na bloke. Maaari itong mapagaan sa pamamagitan ng paggamit ng Counter mode (CTR), at pag-on ang block cipher sa isang stream cipher..

Sa pagtatapos ng 2014, inilabas ni Der Spiegel ang mga dokumento ng NSA na nagpapahiwatig na ang NSA ay maaaring masira ang SSH. Ito leaked NSA PowerPoint nagsasabi na ang NSA ay maaaring “Potensyal na mabawi ang mga username at password“, Kahit na walang karagdagang mga detalye ay ibinigay. Hindi alam kung anong mga pamamaraan ang ginamit ng ahensya upang gawin ito, ngunit tila hindi malamang na magsisinungaling ito tungkol sa mga kakayahan nito sa sarili nitong panloob na dokumentasyon..

Sa leak ng Vault 7 ng 2023, ipinahayag iyon ang CIA ay may dalawang tool na maaaring magamit upang maagawin at nakawin ang mga SSH logins at password. Nag-target ang BothanSpy ng mga kliyente ng Windows Xshell, habang ang Gyrfalcon ay ginamit laban sa Open clientH client sa isang iba’t ibang mga pamamahagi ng Linux.

Ang mga tool na ito ay may kakayahang pagnanakaw ng mga kredensyal at pagkatapos ay maipapadala ang mga ito pabalik sa isang CIA server. Ni alinman sa mga pag-atake na ito ay maaaring masira ang protocol mismo; gumagamit lang sila ng iba pang mga pag-atake sa gilid ng channel na maaaring makakuha sa paligid nito sa ilang mga pagpapatupad.

Sa kabila ng mga pag-atake na ito, ang SSH-2 ay itinuturing na ligtas sa karamihan ng mga sitwasyon, hangga’t ipatupad ito nang naaangkop. Ang mga target na may mataas na halaga o mga gumagamit ng lipas na o hindi magandang pagpapatupad ay dapat isaalang-alang ang iba pang mga pagpipilian.

OpenSSH

Sa OpenSSH bersyon 2, isang pag-atake ay natuklasan na nagsamantala sa isang kahinaan sa SSH binary packet. Ang pag-atake ay nagpapahintulot sa mga mananaliksik mula sa University of London na mabawi ang 14 na piraso ng plaintext mula sa isang naka-encrypt na bloke. Ito ay pinaliit sa paglabas ng 5.2 sa pamamagitan ng paggawa ng basahin ang protocol sa kabuuan ng isang hindi wastong haba ng packet o code sa pagpapatunay ng mensahe, sa halip na wakasan ang koneksyon.

Sa mga bersyon 6.8 at 6.9, maaaring magamit ang Linux upang maisagawa ang mga di-makatwirang mga utos sa mga terminal ng ibang mga gumagamit. Natupad ito sa pamamagitan ng isang kahalagahan ng pagkabulok ng isang pribilehiyo na nagpapahintulot sa mga umaatake na mag-iniksyon ng mga character na may kontrol na input / output ng TIOCSTI.

Ligtas ba ang SSH?

Habang ito ay tila tulad ng SSH ay may maraming mga isyu sa seguridad, relativel itoy normal para sa isang bilang ng mga kahinaan na matatagpuan sa iba’t ibang pagpapatupad ng isang protocol. Hindi ito nangangahulugang hindi ligtas ang protocol ng SSH. Sa halip, nangangahulugan lamang ito kailangang maipatupad nang tama.

Hangga’t gumagamit ka rin SSH-2 o OpenSSH at isinaayos ito sa paraang naaangkop sa iyong paggamit, dapat kang makatiyak sa proteksyon na ibinibigay ng SSH ang iyong koneksyon. Iyon ang dahilan kung bakit ito ay pa rin tulad ng isang madalas na ginagamit na protocol, lalo na para sa malayuang pag-access at mga lagay na layunin.

Tingnan din: Ipinaliwanag ang mga karaniwang uri ng pag-encrypt

Ang background ng teknolohiya ng network ng cyber sa pamamagitan ng TheDigitalArtist na lisensyado sa ilalim CC0