begin process at 2010 02 10 04:16:03
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseaux & Internet

 > SAUVEGARDE DE FICHIERS CRYPTÉS SUR SERVEURS DISTANTS

SAUVEGARDE DE FICHIERS CRYPTÉS SUR SERVEURS DISTANTS


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Réseaux & Internet Source .NET ( DotNet ) Classé sous :socket, cryptography, rijndaelmanaged, tcp Niveau :Initié Date de création :22/03/2007 Vu / téléchargé :7 630 / 804

Auteur : Vallorbain

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Il y a 3 programmes:
- Serveur
- Client
- Gestion des utilisateurs

Ces logiciels utilise la classe Socket du .NET Framework en mode asynchrone.

Les algorithmes de cryptage suivants sont utilisés :
- AES (Rijndael) pour le cryptage et le décryptage.
- SHA512 pour l’authentification des fichiers transmis.

Pour utiliser le logiciel client, l’utilisateur doit disposer de :
- Un login et un password valide (existant dans la table des utilisateurs de la
base de données SQL server).
- Une clé secrète de 32 octets (256 bits). Cette clé ne devra en aucun cas être
transmise par Internet. Si l’utilisateur perd cette clé tous les fichiers transmis
seront perdus. Pratiquement, cette clé est stockée dans un fichier…


Login.
------
Sur demande de connection par le client au serveur, le login et le password sont
envoyés à l’adresse IP et au port du serveur.
Le serveur cherche dans la table des utilisateurs de la base de données SQL server
l’existence et la correspondance du login et du password.
Si l’authentification de l’utilisateur est correcte, le serveur signale au client un accès
valide et crée une session ; autrement l’accès est refusé.

Upload.
--------------------------------- ---------
Client :
Crypte le fichier et le charge dans un fichier temporaire.
Hache le fichier temporaire crypté avec SHA512 pour obtenir sa signature de
hachage.
Envoie un message au serveur, contenant :
- Une demande d’autorisation d’envoi de fichier.
- Le nom du fichier.
- La date de dernière modification du fichier.
- Le nombre d’octets du fichier.
- La signature de hachage du fichier (64 octets).

Serveur:
Vérifie l’autorisation d’accès de l’utilisateur et que le nombre d’octets alloués à
l’utilisateur n’est pas dépassé.
Si OK : Enregistre les infos précédemment transmises dans la session de
l’utilisateur et envoie un message au client signalant qu’il a suffisamment d’infos
pour recevoir le fichier.
Si pas OK : Envoie un message d’erreur au client.

Client :
Sur réception de l’autorisation d’envoi : envoie le fichier temporaire crypté (8kb
par 8kb), l’efface puis attend la confirmation de réception.

Serveur:
Enregistre les octets du fichier crypté dans un fichier temporaire (8kb par 8kb).
Dés que le nombre d’octets du fichier est atteint effectue les opérations
suivantes :
- Calcule la signature de hachage.
- Compare la signature de hachage obtenue avec celle envoyée par le
client. Si les signatures ne sont pas identiques, envoie un message
d’erreur au client.
- Vérifie l’existence du fichier. Si le fichier existe, remplace le fichier. Si le
fichier n’existe pas, le fichier est ajouté.
- Enregistre les infos du fichier reçu dans la DB.
- Envoie un message de succès de transfert au client.
- Efface le fichier temporaire.
Si le nombre d’octets reçu est plus grand que celui attendu, envoie un message
d’erreur au client.
Si le client arrête la transmission avant que le nombre d’octets à transférer soit
atteint, attend un certain temps (à fixer) puis envoie un message d’erreur au
client.

Client :
Affiche le succès ou l’échec du transfert.


Download
--------
Client :
Envoie un message de demande transfert, accompagné du nom du fichier.

Serveur :
Vérifie l’autorisation d’accès de l’utilisateur et l’existence du fichier dans la base
de données.
Si pas OK, envoie un message d’erreur au client.
Si OK, hache le fichier crypté avec SHA512 pour obtenir sa signature.
Envoie un message au client, contenant :
- Une demande d’autorisation d’envoi de fichier.
- La date de dernière modification du fichier.
- Le nombre d’octets du fichier.
- La signature de hachage du fichier (64 octets).

Client :
Sur confirmation du serveur:
Enregistre les octets du fichier crypté dans un fichier temporaire (8kb par 8kb).
Dés que le nombre d’octets du fichier est atteint effectue les opérations
suivantes :
Calcule la signature de hachage.
Compare la signature de hachage obtenue avec celle envoyée par le serveur.
Si les signatures ne sont pas identiques, affiche un message d’erreur.
Décrypte le fichier temporaire en le copiant à sa destination.
Affiche un message de succès.
Efface le fichier temporaire.
Si le nombre d’octets reçu est plus grand que celui attendu, affiche un message
d’erreur. Efface le fichier temporaire.
Si le serveur arrête la transmission avant que le nombre d’octets à transférer
soit atteint, attend un certain temps (à fixer) puis affiche un message d’erreur.
Efface le fichier temporaire.


File list
---------
Client :
Envoie un message demandant la liste des fichiers de l’utilisateur.

Serveur :
Exécute une requête SQL pour obtenir la liste des fichiers.
Envoie un message contenant la liste.

Client :
Affiche la liste.




Delete file
-----------
Client :
Envoie un message contenant une demande de suppression accompagnée du
nom du fichier.

Serveur :
Exécute une requête SQL pour vérifier l’existence du fichier.
Si le fichier existe, efface le fichier et envoie un message de confirmation.
Si le fichier n’existe pas, envoie un message d’erreur.

Client :
Affiche le message.







 Conclusion

Installation.

SQL server 2005.
Avec le Management Studio:
- Ouvrir le fichier CreateDB.sql
- Ajuster les paramètres de création de la DB pour votre système
- Executer le script


Créer le répertoire qui contiendra les fichiers cryptés des utilisateurs. (Côté serveur)


Visual Studio 2005.
- Ouvrir la solution SecureFiles
- Dans le projet SFServer, ouvrir le fichier app.config
- Remplacer "GLARDSOFT" par le nom de votre Data Source dans la connectionString
- Remplacer "F:\SecureFiles\" par le nom du répertoire que vous venez de créer
- Dans le projet SFUser, ouvrir le fichier app.config
- Effectuer les mèmes remplacements
- Compiler... Tester...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) CRYPTAGE COMBINÉ RSA – AES (RIJNDAEL) POUR TRANSMISSION DE F...
Source avec Zip Source avec une capture Source .NET (Dotnet) TRI ET GROUPEMENT DE FICHIERS .MP3 SELON LE CONTENU DE LEURS...
Source avec Zip Source avec une capture Source .NET (Dotnet) XNA FRAMEWORK : JEU "LÉGITIME DÉFENSE". UTILISATION DE AUDI...
Source avec Zip Source avec une capture Source .NET (Dotnet) BALISTIQUE EXTÉRIEURE
Source avec Zip Source avec une capture Source .NET (Dotnet) UTILITAIRE DE SYNCHRONISATION DE RÉPERTOIRES

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) HTTP FLOOD STRESS TEST par NightMareLmW
Source avec Zip Source avec une capture Source .NET (Dotnet) SERVEUR/ESCLAVE MODBUS TCP/IP par SteveFuchsIT
Source avec Zip Source avec une capture Source .NET (Dotnet) IPHELPER - PORTS TCP/UDP, TABLES DE ROUTAGE/ARP + FONCTIONS ... par Willi
Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET3.5] SYSTEM.IO.PIPES - UTILISATION D'UN CANAL NOMMÉ par Willi
Source avec Zip Source .NET (Dotnet) MESSAGES PERSOS MSN par XelectroX

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) IPHELPER - PORTS TCP/UDP, TABLES DE ROUTAGE/ARP + FONCTIONS ... par Willi
Source avec Zip Source avec une capture MSN LIKE (LOCAL) par thebigboss
Source avec Zip Source .NET (Dotnet) MODULE RÉSEAU AVANCÉ : SOCKET TCP. par djine
Source avec Zip Source .NET (Dotnet) NETACCESS 2.0 RC2 : LIBRAIRIE POUR APPLICATION CLIENTS/SERVE... par wizad
Source avec Zip Source avec une capture Source .NET (Dotnet) CRYPTAGE COMBINÉ RSA – AES (RIJNDAEL) POUR TRANSMISSION DE F... par Vallorbain

Commentaires et avis

Commentaire de wizad le 23/03/2007 14:23:27

ça a l'air intérréssant. Peut-tu détaillé aussi le système client serveur que tu as implémenté dans ta description. Le projet étant conséquent ça pourrait aider ceux intérrésser par ton code.

Commentaire de Vallorbain le 23/03/2007 17:15:31

La description contient les spécifications de trafic client - serveur.
Ces programmes ont été testé au travers d'Internet : OK
Le facteur limitant est la taille des fichiers...
Les firewalls sont peut-être à paramètrer pour accepter serveur et client...

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

C#.Net Socket tcp pour ping? icmp impossible. [ par troukatruc ]    Bonjour,Je suis actuellement en stage et je developpe des appli pour pocket pc en c# avec .Net.( Je sais qu'il existe un forum pdafr tcp socket + envoi d'objet [ par Blacknight91 ] bonjour,voilà je voudrais créer une connexion tcp client/serveur pour envoyer des données. Ces données sont dans des objets (une datatable par exemple Socket TCP [ par DCWeb ] Bonjour,Dans le cadre d'un serveur acceptant des connections TCP sur plusieurs ports, est il possible de connaitre le port sur lequel l'appli client s envoi de fichier sur socket UDP ou TCP [ par jackachi ] Bonjour, J'ai trouvé beaucoup de code pour envoyer des datas "txt" sur une socket UDP ou TCP. Pourtant je ne trouve rien sur comment envoyé Envoie "passage à la ligne" dans socket TCP/IP [ par nicompx ] Bonjour,Comment faire pour envoyer une passage à la ligne dans un socket   exeple : socket.Send(...);   ???????????Je met simplement un " \n " mais ce Socket URL [ par nicompx ] Bonjour, Je veux ouvrire un socket mais je ne connais pas l'adresse IP du serveur et bien son URL.Comment passer l'URL à la place de l'adresse IP. Connection site internet sécurisé avec les socket [ par Plugman ] Bonjour,J'aimerais savoir comment je peux naviguer dans un site sécurisé par une page avec login et mot de passe grâce aux socket (httpWebRequest) ?J' Thread et erreur [ par sheorogath ] bjr a tous , je vien d'un environnement java et ayant envi de me changer les idee j'ai decider d'essayer de faire passe une de mes programme java en c Probleme: client IRC multi-threading [ par Skurcey ] Quand je me connecte a un serveur irc, je recois un peu de reponse du serveur puis j ai une erreur qui me dis que un thread ne peux etre execute depui HttpWebRequest [ par missceline33 ] Bonjour je cherche à utiliser le protocole HTTP en C#. J'ai tropuvé un post avec deux fonctions public void EnvoyerMessage(string msg, strin


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales