Vous n'êtes pas identifié(e).
Pages : 1
Je vais vous montrer à travers deux scripts, un client et un serveur, comment chiffrer le traffique en AES
Utiliser wireshark pour analyser vos paquets réseau... ils seront crypter.
je me permet de juste mettre les deux scripts que j'ai largement commenter.
script serveur
[== Indéfini ==]
#! /usr/bin/python
# -*- coding:utf-8 -*-
import socket
import sys
from Crypto.Cipher import AES
from Crypto import Random
# initialisation Variable
continuer = 'True'
host = 'localhost'
port = 4444
message_envoyer = ''
message_recu = ''
# Cryptage AES configuration en 16 bit, vous pouvez choisir en 16, 24 ou 32
key = 'aeosiekrjeklkrje'
block_size = 16
mode = AES.MODE_CFB
iv = Random.new().read(block_size)
cipher = AES.new(key, mode, iv)
# liaison tcp/ip
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# accepter des clients
try:
s.bind((host, port))
except(socket.error):
print "port déja utiliser"
sys.exit()
s.listen(5)
print "en attente de client"
conn, addr = s.accept()
print "\nclient connecter"
# échange serveur client
while(continuer == 'True'):
message_recu = conn.recv(1024) # données reçues crypter
message_recu = cipher.decrypt(message_recu) # décryptage des données reçues
if(message_recu == 'close'): # condition de sortie
print "bye"
sys.exit()
print message_recu # Affichage des données reçues
message_envoyer = 'Vous êtes connecter au serveur' # Le message à envoyer au client
message_envoyer = cipher.encrypt(message_envoyer) # On crypte le message en AES 16 bit
conn.send(message_envoyer) # On envois le message crypter en AES 16 bit
conn.close()
s.close()
:
Script client
[== Indéfini ==]
#! /usr/bin/python
# -*- coding:utf-8 -*-
import socket
import sys
from Crypto.Cipher import AES
from Crypto import Random
# initialisation Variable
continuer = 'True'
host = 'localhost'
port = 4444
message_envoyer = ''
message_recu = ''
# Cryptage AES configuration en 16 bit, vous pouvez choisir en 16, 24 ou 32
key = 'aeosiekrjeklkrje'
block_size = 16
mode = AES.MODE_CFB
iv = Random.new().read(block_size)
cipher = AES.new(key, mode, iv)
# liaison tcp/ip
c = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Connection
try:
c.connect((host, port))
except(socket.error):
print "l'hote n'est pas disponible"
sys.exit()
# échange client serveur
while(continuer == 'True'):
message_envoyer = raw_input('message: ')
if(message_envoyer == 'close'):
message_envoyer = cipher.encrypt(message_envoyer) # Cryptage du message en AES 16 bit
c.send(message_envoyer) # Envois du message crypter
print "Bye"
continuer = 'False'
message_envoyer = cipher.encrypt(message_envoyer) # Cryptage du message en AES 16 bit
c.send(message_envoyer) # Envois du message crypter
message_recu = c.recv(1024) # Réception des données crypter
message_recu = cipher.decrypt(message_recu) # Décryptage des données recues.
print message_recu # Affichage des données recues.
c.close()
Image:
Voila. Script réaliser par moi.
boost ===>>> « Un langage de programmation est une convention pour donner des ordres à un ordinateur. Ce n’est pas censé être obscur, bizarre et plein de pièges subtils. Ca, ce sont les caractéristiques de la magie. » - Dave Small
Hors ligne
Merci pour ce tuto et ces script.
Utiliser des logiciels propriétaires, c'est comme les plats préparés, on est incapable de dire les conservateurs qu'ils contiennent, on dira toujours que c'est bon, mais ça ne remplacera jamais le repas fait maison par sa maman.
]:D #! Crunchbang & Archlinux GNU/Linux User ]:D
Hors ligne
Pages : 1