This project is a simple application that provides encrypted socket communication between two clients. Communication is secured using an AES encryption algorithm with a shared key obtained through the Diffie-Hellman key exchange protocol. The project consists of two main components: Client A and Client B. Both clients use the Diffie-Hellman protocol to generate a shared encryption key and use this key to encrypt and decrypt messages.
- Key Exchange: Secure key exchange using the Diffie-Hellman protocol.
- Encryption: Communication secured with AES encryption.
- Client Communication: Secure messaging between clients.
Required Libraries: The libraries used in this project are:
- cryptography
- socket
- threading
You can install these libraries using the following commands:
pip install cryptography
pip install socket
pip install threading
Open the client_a.py
file and configure the settings for Client A (IP address and port).
Start Client A. Initially, the key exchange will be performed, and then encrypted messages can be sent and received.
Open the client_b.py
file and configure the settings for Client B (IP address and port).
Start Client B. Client B will receive the key from Client A, compute the shared key, and use it to encrypt and decrypt messages, and send new messages.
client_a.py
: Code for Client A. Generates the key, sends it to Client B, and sends encrypted messages.client_b.py
: Code for Client B. Receives the key from Client A, computes the shared key, and decrypts and sends encrypted messages.
The key exchange process uses the Diffie-Hellman protocol to create a shared key and ensures message security with AES encryption. This project is a basic implementation of encryption and key exchange. Additional security measures should be considered for applications requiring higher security.
Bu proje, iki istemci arasında şifreli socket iletişimi sağlayan basit bir uygulamadır. İletişim, Diffie-Hellman anahtar değişim protokolü kullanılarak sağlanan ortak bir anahtar ile AES şifrelemesiyle güvence altına alınmıştır. Proje iki ana bileşenden oluşur: Client A ve Client B. Her iki istemci de Diffie-Hellman protokolü kullanarak ortak bir şifreleme anahtarı oluşturur ve bu anahtar ile mesajları şifreleyip çözer.
- Anahtar Değişimi: Diffie-Hellman protokolü ile güvenli anahtar değişimi.
- Şifreleme: AES algoritması kullanılarak şifrelenmiş iletişim.
- İstemci İletişimi: İstemciler arasında güvenli mesajlaşma.
Gerekli Kütüphaneler: Bu projede kullanılan kütüphaneler şunlardır:
- cryptography
- socket
- threading
Bu kütüphaneleri yüklemek için aşağıdaki komutu kullanabilirsiniz:
pip install cryptography
pip install socket
pip install threading
client_a.py
dosyasını açın ve Client A'nın ayarlarını yapın (IP adresi ve port).
Client A'yı başlatın. İlk olarak anahtar değişimi gerçekleştirilir ve ardından şifreli mesajlar gönderilebilir, gelen mesajları çözebilir.
client_b.py
dosyasını açın ve Client B'nin ayarlarını yapın (IP adresi ve port).
Client B'yi başlatın. Client B, Client A'nın anahtarını alır, ortak anahtarı hesaplar ve mesajları şifreleyip çözer, yeni mesajı gönderir.
client_a.py
: Client A'nın kodu. Anahtar oluşturur, Client B'ye gönderir ve şifreli mesajları gönderir.client_b.py
: Client B'nin kodu. Client A'dan anahtar alır, ortak anahtarı hesaplar ve şifreli mesajları çözer, gönderir.
Anahtar değişimi sürecinde kullanılan Diffie-Hellman protokolü, ortak anahtar oluşturulmasını sağlar ve AES şifrelemesi ile mesajların güvenliğini sağlar. Bu proje, temel bir şifreleme ve anahtar değişim uygulamasıdır. Daha yüksek güvenlik gerektiren uygulamalarda ek güvenlik önlemleri alınmalıdır.