Şifreli İletişim
Gerek bire bir uzak bilgisayar bağlantısında, gerekse bilgisayarınızla Alpemix ana sunucusu arasında yapılan tüm iletişim yüksek güvenlik seviyesinde şifrelenir. Anahtar iletimlerinde RSA kullanılır. Anlık verilerin şifrelenmesinde AES(256 bit) kullanılır. Anahtar iletimlerinde RSA ve anlık veri iletiminde kullanılan AES, günümüz standartlarında tamamen güvenli olarak kabul edilmektedir.
Kişisel anahtar istemci bilgisayardan hiç bir zaman ayrılmadığı için ve güçlü şifreleme standartları kullanıldığı için iletişimde araya giren bir başka kişinin verileri çözmesi mümkün değildir.
Aynı şekilde uzak bilgisayar bağlantısı kurduğunuz zaman, diğer bilgisayarla yaptığınız iletişimi Alpemix ana sunucusu da çözemez.
İstemcinin ürettiği anahtarlar istemci bilgisayarına kaydedilmez. Çünkü program her çalıştırıldığında farklı anahtarlar üretilir.
Anahtar iletimlerinde 1024 bit RSA ve 256 bit RSA kullanılır. 1024 bit RSA ile şifrelenen anahtar direk gönderilebilir. 256 bit RSA ile şifrelenen anahtar direk gönderilmez. 256 bit RSA ile şifrelenen anahtar bir de 256 bit AES ile şifrelendikten sonra gönderilir.
Şifreli iletişim Teknik Anlatımı
Her client programı Alpemix ana sunucusunun önceden tanımlanmış RSA 1024 bit public keyini bilir.
Alpemix çalıştırıldığında anlık olarak 2 adet 256 bit AES key, 1 adet de RSA 256 bit public/private key çifti üretir.
Daha sonra ürettiği AES keylerden birini ve ürettiği RSA public keyini, serverın public keyi ile 1024 bit RSA şifreleme yaparak servera iletir.
Veriyi alan server, RSA 1024 bit private keyini kullanarak şifreli veriyi çözer. Böylece artık kendisine bağlanan bilgisayarın ilk ürettiği AES keyini ve RSA public keyini bilir. İkinci ürettiği AES keyini bilmez.
Artık bundan sonra clienttan gelen her veriyi öğrendiği AES keyi ile çözerek işleme alır. Yine clienta göndereceği her veriyi, o clientın server için ürettiği AES keyi ile şifreleme yaparak gönderir. Clientın üretmiş olduğu bu ilk AES keyini AESKey1 olarak adlandıralım.
Clientın açılışta ürettiği ikinci AES keyi ise diğer clientlarla birebir iletişimde kullanılır. Bu AES keyi AESKey2 olarak adlandıralım.
A bilgisayarının B bilgisayarına bağlanıp şifreli iletişimde bulunabilmesi için; A B nin AESKey2 değerini ve B de A nın AESKey2 değerini bilmeli. Bu değerleri server üzerinden birbirlerine iletirken server da bu değerleri görememeli veya çözememeli.
A öncelikle servera B ye bağlanmak istediğini söyler. Bu noktada serverla clientlar arası iletişimin her clienta özel AESKey1 değeri ile şifreli olarak yapıldığını tekrar hatırlatalım.
İsteği alan server, A ya B nin public keyini, B ye de A nın public keyini gönderir. Artık A ve B birbirinin public keyini biliyor. A kendi AESKey2 değerini B nin public keyi ile RSA 256 bit şifreleyip servera gönderir. Servera gönderilen her paket AESKey1 ile şifrelendiğinden bu veri bir de AES 256 bit ile şifrelenerek servera iletilmiş oldu. Server clienttan gelen her paketi AESKEy1 ile açtığı için bu paketi de açar. Ve çıkan paketi B nin AESKey1 i ile şifreleyip B ye gönderir. Server B nin private keyini bilmediği için paketin şifresini tamamen çözemez. Dolayısıyla A nın AESKey2 değerini görme şansı yoktur.
Serverın gönderdiği bu paketi alan B, serverdan gelen her pakete uyguladığı işlemi uygular. Yani önce kendi AESKEY1 değeri ile paketi açar. Açılan paket hala şifrelidir. Bu paketi de RSA 256 bit ile kendi private keyini kullanarak açar. Böylece artık B A nın AESKEy2 değerini biliyordur. Aynı yöntemler izlenerek A nın da B nin AESKey2 değerini öğrenmesi sağlanır.
Bundan sonra A ve B birbirlerine direk paket gönderecekleri zaman paketi birbirlerinin AESKey2 değeri ile şifreleyip gönderirler.