TLS (Aktarım Katmanı Güvenliği) ve SSH (Güvenli Kabuk), güvenli iletişim için çift yönlü kanalları kullanan gerçek dünya protokolleridir. Çift yönlü kanalları şu şekilde kullanıyorlar:
TLS (Aktarım Katmanı Güvenliği)
TLS, internet üzerinden güvenli iletişim için kullanılan bir şifreleme protokolüdür. İstemci ile sunucu arasında değiştirilen verilerin gizliliğini ve bütünlüğünü sağlamak için çift yönlü kanalları kullanır.
1. El Sıkışma: TLS el sıkışma, istemci ve sunucunun güvenli bir bağlantı kurduğu bir işlemdir. Bu işlem sırasında sürüm numarasını, rastgele sayıları ve şifreleme anahtarlarını içeren mesajlar alışverişinde bulunurlar. Bu el sıkışma, her iki tarafın da veri gönderip aldığı çift yönlü bir süreçtir.
2. Veri Şifreleme: El sıkışma tamamlandıktan sonra istemci ve sunucu, verileri şifrelemek ve şifresini çözmek için belirlenen şifreleme anahtarlarını kullanır. Bu şifreleme ve şifre çözme işlemi aynı zamanda iki yönlüdür, çünkü her iki taraf da şifrelenmiş verileri gönderip alır.
3. Anahtar Değişimi: TLS, istemci ile sunucu arasında şifreleme anahtarlarının güvenli bir şekilde değişimini sağlamak için bir anahtar değişim protokolü kullanır. Bu anahtar değişimi aynı zamanda iki yönlüdür, çünkü her iki taraf da anahtarları gönderip alır.
SSH (Güvenli Kabuk)
SSH, kullanıcıların uzak sunuculara güvenli bir şekilde erişmesine ve bunları yönetmesine olanak tanıyan güvenli bir uzaktan erişim protokolüdür. İstemci ve sunucu arasında güvenli iletişim için çift yönlü kanalları kullanır.
1. İlk Bağlantı: SSH istemcisi, güvenli bir bağlantı kurma isteği göndererek sunucuya bağlantı başlatır. Sunucu, genel anahtarını ve diğer bilgileri içeren bir mesajla yanıt verir. Bu ilk bağlantı, her iki tarafın da veri gönderip aldığı çift yönlü bir süreçtir.
2. Kimlik Doğrulama: İlk bağlantı kurulduktan sonra istemci ve sunucu, genel anahtar şifrelemesini kullanarak birbirlerinin kimliklerini doğrular. Bu kimlik doğrulama işlemi aynı zamanda iki yönlüdür, çünkü her iki taraf da kimlik doğrulama mesajları gönderip alır.
3. Veri Şifreleme: İstemci ve sunucunun kimliği doğrulandıktan sonra, verileri şifrelemek ve şifresini çözmek için paylaşılan bir gizli anahtar kullanırlar. Bu şifreleme ve şifre çözme işlemi aynı zamanda iki yönlüdür, çünkü her iki taraf da şifrelenmiş verileri gönderip alır.
Hem TLS'de hem de SSH'de istemci ile sunucu arasında alınıp verilen verilerin gizliliğini ve bütünlüğünü sağlamak için çift yönlü kanallar kullanılır. Bu protokoller, güvenli bağlantılar kurmak, kriptografik anahtarları değiştirmek ve verileri şifrelemek ve şifrelerini çözmek için çift yönlü kanalları kullanır.
Alıntılar:[1] https://tosc.iacr.org/index.php/ToSC/article/view/602/543
[2] https://www.scaler.com/topics/golang/direct-channel-in-golang/
[3] https://blog.devtrovert.com/p/go-channels-explained-more-than-just
[4] https://www.naukri.com/code360/library/direction-channel-in-golang
[5] https://eprint.iacr.org/2017/161.pdf