Ano ang Ginagawa ng SSH
Bagaman gumagamit ang Splync ng HTTPS para protektahan ang ruta sa pagitan ng iyong smartphone at ng aming server, kailangan pa rin naming protektahan ang mismong server upang matiyak ang kaligtasan ng data ng mga user. Kailangan ng mga app developer at system administrator ng paraan upang makapasok sa server na iyon upang mapanatili at maipatupad ang mga update — nang ligtas. Dito pumapasok ang SSH (Secure Shell). Isa ito sa mga protocol na nagpapahintulot sa mga awtorisadong user na ligtas na mag-login sa mga remote computer, kahit sa mga hindi pinagkakatiwalaang network. Pinapalitan ng SSH ang mga luma at hindi ligtas na pamamaraan tulad ng Telnet, na nagpadala ng mga username at password sa plain text.
Ang Ideya sa Likod ng “Mga Susi”
Hindi umaasa ang SSH sa karaniwang password. Sa halip, gumagamit ito ng cryptographic keys — isang magka-pares na public key at private key. Isipin ito bilang isang kandado at susi na akmang-akma sa isa't isa. Ang public key ay nasa server, at ang private key ay nananatili sa user. Kapag nag-connect ka, hinahamon ka ng server na patunayan na hawak mo ang private key, nang hindi kailanman ibinubunyag ito. Halos imposibleng magpanggap ang sinuman na nakikinig sa iyo. Habang ang mga karaniwang password ay maaaring mahulaan, malantad, o magamit muli, ang mga SSH key ay mahahabang random na cryptographic string — halos hindi mahulaan. Kahit na may makakahuli sa koneksyon, ang makikita lang nila ay naka-encrypt na ingay. At dahil ang mga SSH key ay hindi kailanman ipinapadala sa network, walang bagay na maaaring nakawin sa transit.
Ano ang Itsura ng SSH Key
Kung hindi mo pa nakita ang SSH key, maaaring mukhang mahirap intindihin ito — ngunit talagang isa lang itong mahabang bloke ng encoded na teksto. Ang public key ay karaniwang ilang daang karakter ang haba, habang ang private key ay maaaring umabot ng higit sa isang libo. Ang parehong ay nakaimbak bilang mga text file, ngunit ang kanilang nilalaman ay mukhang random na ingay — isang halo ng mga letra, numero, at simbolo. Ang public key ay ligtas na ibahagi; para itong paglalagay ng kandado sa server. Ang private key naman, ay iyong natatanging digital na pagkakakilanlan at hindi dapat kailanman ibahagi. Ito ay nakaimbak sa lokal na kompyuter at ginagamit lamang upang patunayan na ikaw nga ang sinasabi mong ikaw — nang hindi kailanman ibinubunyag ang mismong susi.
Public Key at Private Key
Ang public key ay parang kandado na ikinakabit mo sa iyong bahay. Makikita ito ng sinuman mula sa labas, katulad ng kandado sa iyong pintuan. Ngunit ang pagtingin sa kandado ay hindi nagsasabi kung paano ito mabubuksan. Sa ibang salita, makikita ito ng sinuman, ngunit tanging tamang susi lamang ang makakapagbukas nito. Samantala, ang private key ang susi na nagbubukas ng kandado — at ito ay nananatili sa iyo. Kung may makakuha ng iyong private key, maaari siyang makapasok sa iyong bahay na parang ikaw. Kaya't dapat itong laging itago nang sikreto.
Mekanismo ng SSH
Ang bawat public key at private key ay bumubuo ng natatanging pares. Sila ay magkasamang nalikha sa pamamagitan ng isang proseso na matematika upang ang tanging partikular na private key lamang ang maaaring tumugma sa kanyang public key. Maaari mong isipin ito bilang isang custom-made na kandado at susi — sabay na ginawa, at walang ibang susi sa mundo ang nababagay sa kandadong iyon. Kahit na lumikha ka ng isa pang pares gamit ang parehong algorithm (tulad ng RSA o Ed25519), ang mga numero sa loob ay magiging ganap na naiiba. Ang matematika na nag-uugnay sa dalawa ay isang daan: madali mong makukuha ang public key mula sa private key, ngunit halos imposibleng baligtarin ang proseso at hanapin ang private key mula sa public key. Kaya't ang bawat pares ng SSH key ay natatangi at ligtas.
Paano Pinatutunayan ng SSH Kung Sino Ka
Kapag nag-login ka sa isang server gamit ang SSH, ang iyong private key ay hindi umaalis sa iyong kompyuter. Sa halip, nagpapadala ang server ng random na hamon — parang isang one-time puzzle — na tanging ang iyong private key lamang ang makakabuo ng solusyon. Ang iyong kompyuter ay mathematically na pinipirmahan ang hamon, na lumilikha ng maikling sagot na maaaring suriin ng server gamit ang iyong public key. Kung akma ang sagot, alam ng server na hawak mo ang tamang private key — nang hindi kailanman nakikita ito. Ito ang himala ng makabagong cryptography: maaari mong patunayan ang iyong pagkakakilanlan nang hindi ibinubunyag ang iyong lihim. Gumagana ang SSH authentication dahil ang iyong private key ay naglalaman ng lahat ng impormasyon upang makuha ang public key, ngunit halos imposibleng gawin ang kabaligtaran.
Paano Ginagamit ng mga Developer ang SSH sa Praktika
Tuwing nagde-deploy ng code, nag-a-update ng database, o nagre-restart ng serbisyo ang mga developer, kadalasang nagkakabit sila sa kanilang mga remote server sa pamamagitan ng SSH. Pagkatapos ng authentication, nagkakaroon sila ng secure na command-line connection sa server. Mula roon, maaari nilang pamahalaan ang mga file, mag-restart ng mga serbisyo, o suriin ang mga log — lahat ng ito ay naka-encrypt mula simula hanggang dulo. Sa kaso ng Splync, ang SSH ang paraan kung paano namin ligtas na namamahala ng aming cloud server. Ang bawat administratibong kilos — pag-deploy ng mga update, pagsuri ng mga log, pag-backup ng data — ay ginagawa sa pamamagitan ng mga SSH connection na pinoprotektahan ng cryptographic keys. Walang makakapasok sa server nang wala ang tamang private key. Kahit na alam ng isang tao ang aming IP address, nang walang susi, hindi bubuksan ang pinto.
Susunod: Ang Encryption sa Loob ng Server
Pinoprotektahan ng SSH ang pasukan sa server, at pinoprotektahan ng HTTPS ang data habang nasa transit. Ngunit kapag nasa loob na ng database ang data, paano natin ito pinapangalagaan? Dito pumapasok ang hashing at encryption — ang pinakahuling layer ng depensa.