-
Base de données Cryptée
Bonjour,
J'ai une application en intranet qui tourne en php/oracle. Cette application est accessible en local et même via internet.
Elle est utilisé pour entrer les coordonées des clients de l'entreprise ainsi que les informations concernant leurs sélection produits (devis) et le suivi commercial.
Elle est utilisé par des commerciaux et des administrateurs. Pour des raisons évidentes de 'concurence interne', chaque commerciaux ce voit limité l'accès aux données de ses clients (et à ceux du groupe auxquel il appartient).
Parallèlement à cela, les commerciaux itinérant embarque également une application à l'interface similaire à la précédente sur leur ordinateur portables (qui ne peuvent pas toujours être connecté à internet, car déplacement dans zone pas toujours urbaines :) ).
Donc les commerciaux ramènent leurs portables et synchronise leur données avec les données du serveur (mise à jour des données commerciales et récupération des coordonées des nouveaux clients qui leur ont été attribués).
L'appli embarqué est faites sous visual studio et tourne à l'aide d'une base MS-SQL.
Ma question est: comment faire pour que les données des bases itinérantes soient accessible uniquement à l'applications? C'est à dire que même au cas ou quelqu'un copierait les fichiers de la base de données, il ne lui soit pas possible de les rattaché (facilement) sur un autre moteur de base de données.
Car à l'heure actuelle, en cas de vol ou de perte d'un portable, les fichiers de données des portables sont protégés uniquement pas le cryptage NTFS (avec mot de passe ouverture de session Win XP).
Par ailleurs j'avais bien pensé crypté les donnés dans la base, mais je ne vois en ce cas pas comment faire avec les fonctions de recherches automatique (du genre lorsque he tappe 't' j'ai tous les noms de client commencant pas t qui s'affiche ou lorque je tappe 0689, j'ai tous les numero qui commençant par ces chiffres qui s'affiche...). Fonctions auxquelles sont grandement attaché les utilisateurs.
Voila, j'esperes que j'ai expliqué convenablement mon problème.
Merci à ceux qui prendront le temps de lire! :)
-
Il ne sert à rien de crypter TOUTES les données... En effet le volume de la base risque de devenir gigantesque et les temps de réponse catastrophique.
Il faut donc s'attacher à ne faire ce travail que pour les données les plus sensibles et les moins importantes en quantités.
SQL Server 2005 dispose de nombreuses fonctions de cryptage.
Cepandant, je ne me lancerait pas dans cette aventure car même avec un niveau de cryptage faible, les temps de réponse et la récriture du code sera fastidieuse.
Je pense que votre problématique devrait plus se situer au niveau dba/admin système notamment avec une gestion forte des utilisateurs Windows et des services tournant sur les portables, par exemple pour faire en sorte que :
1) SQL Server tourne en permancence et ne puisse être arrêté par l'utilisateur courant du portable
2) la commande BACKUP ne puisse être utilisé
3) l'utilitaire BCP désactivé
4) un seuil de cout de requête fixé de manière assez basse pour empêcher toute tentative de faire du SELECT * FROM MaTable afin de récupérer la liste des clients de l'entreprise.
Bref un vrai travail de DBA et d'admin système !
A +
-
Merci,
Il est ma foie bien vrai que le cryptage des données d'une base c'est toute une aventure ;)
Actuellement les applies tournent sur les portable avec les sécurités 1) 2) et 3) que vous avez énnoncées. Je n'avais pas pensé à baisser le quota de requêtes; il faudra que j'étudie cette solution.
Encor Merci!