Securecomm (rsa)

Soyez le premier à donner votre avis sur cette source.

Vue 13 478 fois - Téléchargée 983 fois

Description

Ce code est une librairie qui fournit 2 classe, SecureTcpListener et SecureTcpClient.
Ces classes ont pour vocation d'etre similaire aux classes bien connu TcpListener et TcpClient mais un peu épurées, et créer une connexion TCP/IP sécurisée avec RSA et ensuite 100% encodé en AES.
En gros, on instancie un SecureTcpListener, on Start, on fait Accept et lorsqu'une connexion arrive, Accept se débloque et renvoie un SecureTcpClient. Ce SecureTcpClient est en fait connecté a l'autre bout par un autre SecureTcpClient, et leurs particularitée est que leur communication est cryptée en AES, cet securisation est completement transparente pour l'utilisateur. La clef utilisée pour le cryptage et le décryptage AES a été échangée de façon tout aussi sécurisée par une clef publique RSA générée et envoyée préalablement par le SecureTcpListener, et ce de manière toute aussi transparente pour l'utilisateur.

L'archive contient la solution qui permet de compiler la librairie SecureComm, et une autre solution qui contient 2 projets de test, client et serveur pour vous permettre de voir avec quelle facilitée on peut créer un canal d'échange d'information completement sure.

La screenshot est un schéma explicatif pour ceux qui ne connaissent pas bien le principe, j'espère qu'il sera le plus claire possible.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
sebseb42
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
1
11 mars 2006 à 12:42
Pour répondre plus succintement à ta question, non ce n'est pas de l'asynchrone, car Accept est bloquante, mais oui, il est possible d'avoir plusieurs client.

Le code est disponible, a toi d'implémenter BeginAccept et EndAccept si tu veux, ca pourrait être pas mal :) C'est aussi ca l'idée d'un code ouvert, l'amérioration :)

Personnellement je n'utilise jamais Begin* et End* mais ca peux être bien de l'implémenter car il en faut pour tout le monde.

On pourrait même après mettre mon code dans la lib CS :P
sebseb42
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
1
11 mars 2006 à 12:39
Attention, je rappel que le SecureTcpListener n'est pas une classe qui gère un serveur a part entière, il ne gère pas lui même le pool de thread/sockets avec events et tout le tremblement, mais ceci dit, il est evidement possible d'avoir plusieurs client avec un seul SecureTcpListener, c'est a vous d'implementer la façon dont vous gérez vos thread/sockets.

La fonction Accept de SecureTcpListener est bloquante, quand elle se débloque, elle renvoie un SecureTcpClient qui a la faculté de pouvoir communiquer en crypter (ou non) avec un autre SecureTcpClient. Lorsque la fonction Accept se termine, le SecureTcpListener est evidement toujours actif et opérationnel. Il vous suffit d'effectuer le traitement adéquat sur votre SecureTcpClient (l'envoyer dans un thread par exemple) et ensuite de reboucler sur le Accept du SecureTcpListener, ce qui bloquera une fois de plus, et au débloquage vous renverra un nouveau SecureTcpClient, avec un clef de session differente (et evidement une pair de clef publique/clef privée est générée pour chaque client).

J'espère avoir répondu au mieux à ta question.
cs_wizad
Messages postés
355
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
14 avril 2009

11 mars 2006 à 12:01
Je n'ai pas encore tester mais le traitement asynchrone des connexion avec la possibilité d'avoir plusieur client est il possible?
sebseb42
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
1
11 mars 2006 à 03:24
Je précise, en gros pour le code c'est un Start et un Accept pour le serveur, un Connect pour le client, et ensuite tout les Send et Receive sont cryptés dans les deux sens, l'utilisateur (vous) n'a strictement rien a faire.

J'espère que cet code poura être utile à tous ceux qui se sont toujours demandé comment implementer ce genre de choses, bien souvent redouté par les débutant pour sont apparente complexité mais en faite ô combien simplifié par le Framework .NET 2.0

Merci Bill :)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.