Comment créer une messagerie instantanée confidentielle en python en réseau ?

Bonjour, je suis un élève de Terminale S et j’ai choisi la spécialité ISN, et je travaille en binôme sur un projet tout au long de l’année mais des difficultés se posent d’où ce post.
Voilà, notre objectif est de créer en réseau, une messagerie instantanée confidentielle c’est à dire cryptée.
Notre point de départ est un programme en Python avec un module socket qui permet de relier deux pcs.
Voilà si vous avez des idées des questions ou des remarques n’hésitez pas,
merci d’avance on compte sur vous :wink: !

Salut,

en général, un chat se compose de deux éléments, le client de chat et le serveur de chat.
Les clients se connectent au serveur, qui se charge alors de dispatcher les messages aux clients, de gérer les différents salons, les différentes interactions entre utilisateurs (chat privé, blacklisting…)
Ce ne sont pas les clients qui se connectent entre eux, comme sur bittorrent. Ainsi, deux pc qui veulent communiquer entre eux auront le serveur en intermédiaire, et la plupart du temps, il faudra aussi rajouter une base de données (pour les utilisateurs). Plus d’info sur le concept client-serveur.

Pour un premier projet, juste réaliser le chat sera pas mal franchement.
Si tu veux rajouter le cryptage, ça risque de se compliquer pas mal. Voici la doc ici :slight_smile:. Je l’avais fait en cours, dans le principe, ce n’est pas insurmontable, c’est juste la traduction en code qui est un peu plus délicate. Tu pourra demander l’aide de ton prof de math : il te sera très utile pour ce sujet :wink:

Bonne chance !
Edité le 23/01/2014 à 14:13

Pour le niveau lycée, la crypto asymmétrique est une perte de temps.

Si jamais tu fais une communication sans crypto, ça devrait déjà être suffisant. Mais si tu veux ajouter une fonctionnalité de crypto, tu fais un Vigenère, un César, ou un rot13. N’importe quoi de plus élaboré, c’est beaucoup de temps dépensé pour un résultat que presque aucun prof n’est capable de récompenser à sa juste valeur.

On avait vu ça en 1ere année de DUT, et étant moi même une nouille en math, je n’avais pas trouvé ça particulièrement compliqué. Comme il est en TS, je me suis dit qu’il pourrait tenter : mais dans un second temps. D’ailleurs si ça l’intéresse : un très bon exemple. Comme je le lui disait, juste le couple client-serveur de chat, c’est déjà franchement pas mal.

J’avais oublié le césar ou le rot13, il me semble qu’on en avait parlé dans le même cours, mais survolé. Pour implémenter un couple de fonction crypter()/decrypter(), ce sont effectivement de très bon algorithmes de départ.
Mais il restera peut être sur sa faim tellement ces procédés de cryptage sont simple dans leur principe et leur implémentation. Ou peut être aura t il eu le sentiment que ce n’est pas “secured” :wink:

Tant qu’on est dans des algorithmes faibles, choisir un algo plutôt qu’un autre, c’est une question de goût. Perso, j’ai toujours adoré Vigenère. Concept simple et protection relativement efficace.