TLS (Transport Layer Security) ja SSH (Secure Shell) on reaalmaailma protokollid, mis kasutavad turvaliseks suhtluseks kahesuunalisi kanaleid. Kahesuunalisi kanaleid kasutavad nad järgmiselt.
TLS (transpordikihi turvalisus)
TLS on krüptograafiline protokoll, mida kasutatakse turvaliseks Interneti-suhtluseks. See kasutab kahesuunalisi kanaleid, et tagada kliendi ja serveri vahel vahetatavate andmete konfidentsiaalsus ja terviklikkus.
1. Käepigistus: TLS-i käepigistus on protsess, mille käigus klient ja server loovad turvalise ühenduse. Selle protsessi käigus vahetavad nad sõnumeid, mis sisaldavad versiooninumbrit, juhuslikke numbreid ja krüptovõtmeid. See käepigistus on kahesuunaline protsess, kus mõlemad pooled saadavad ja võtavad vastu andmeid.
2. Andmete krüpteerimine: kui käepigistus on lõppenud, kasutavad klient ja server andmete krüptimiseks ja dekrüpteerimiseks kehtestatud krüptograafilisi võtmeid. See krüpteerimis- ja dekrüpteerimisprotsess on samuti kahesuunaline, kuna mõlemad pooled saadavad ja võtavad vastu krüptitud andmeid.
3. Võtmevahetus: TLS kasutab kliendi ja serveri vaheliseks krüptograafiliste võtmete turvaliseks vahetamiseks võtmevahetusprotokolli. See võtmevahetus on ka kahesuunaline, kuna mõlemad pooled saadavad ja võtavad vastu võtmeid.
SSH (Secure Shell)
SSH on turvaline kaugjuurdepääsu protokoll, mis võimaldab kasutajatel turvaliselt kaugservereid juurde pääseda ja neid hallata. See kasutab kahesuunalisi kanaleid turvaliseks suhtluseks kliendi ja serveri vahel.
1. Esialgne ühendus: SSH-klient loob ühenduse serveriga, saates taotluse turvalise ühenduse loomiseks. Server vastab sõnumiga, mis sisaldab selle avalikku võtit ja muud teavet. See esialgne ühendus on kahesuunaline protsess, kus mõlemad pooled saadavad ja võtavad vastu andmeid.
2. Autentimine: pärast esialgse ühenduse loomist autentivad klient ja server üksteist avaliku võtme krüptograafia abil. See autentimisprotsess on ka kahesuunaline, kuna mõlemad pooled saadavad ja võtavad vastu autentimissõnumeid.
3. Andmete krüpteerimine: kui klient ja server on autentitud, kasutavad nad andmete krüptimiseks ja dekrüpteerimiseks jagatud salavõtit. See krüpteerimis- ja dekrüpteerimisprotsess on samuti kahesuunaline, kuna mõlemad pooled saadavad ja võtavad vastu krüptitud andmeid.
Nii TLS-is kui ka SSH-s kasutatakse kliendi ja serveri vahel vahetatavate andmete konfidentsiaalsuse ja terviklikkuse tagamiseks kahesuunalisi kanaleid. Need protokollid kasutavad kahesuunalisi kanaleid turvaliste ühenduste loomiseks, krüptograafiliste võtmete vahetamiseks ning andmete krüptimiseks ja dekrüpteerimiseks.
Tsitaadid:[1] https://tosc.iacr.org/index.php/ToSC/article/view/602/543
[2] https://www.scaler.com/topics/golang/directional-channel-in-golang/
[3] https://blog.devtrovert.com/p/go-channels-explained-more-than-just
[4] https://www.naukri.com/code360/library/directional-channel-in-golang
[5] https://eprint.iacr.org/2017/161.pdf