user@linuxtrack:~ $ python -c 'print("Soyez les bienvenus !")'

Vous n'êtes pas identifié(e).

#1 15-02-2013 17:43:08

boost
Membre

Chiffrement du trafic réseau en AES

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:

1360942732.png

1360942772.png



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

#2 15-02-2013 18:34:02

IceF0x
#! Gourou Linux

Re : Chiffrement du trafic réseau en AES

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

Pied de page des forums