OVH Cloud OVH Cloud

Crypter des données dans access

17 réponses
Avatar
Comment peut-on crypter des donn=E9es dans access pour=20
=E9viter que des administrateurs techniques puissent y=20
avoir acc=E8s en clair ?

10 réponses

1 2
Avatar
Benoit Compoint [MS]
Bonjour,

Vous pouvez sélectionner "Sécurité" dans le menu "Outils" d'Access, puis
choisir la commande "Coder/Décoder une base de données".

Benoit Compoint

wrote in message
news:072601c3d91a$2eccd9e0$
Comment peut-on crypter des données dans access pour
éviter que des administrateurs techniques puissent y
avoir accès en clair ?
Avatar
phil
Il est toujours possible, en VBA, de créer un algorithme
de cryptage pour coder toute donnée saisie : on
n'enregistrera dans les tables que des données codées. Un
autre algorithme permettra de décoder ces données.
Ainsi, en parcourant les tables, on ne peut rien
comprendre.
J'ai répondu à la question ou je suis complètement à côté ?


-----Message d'origine-----
Comment peut-on crypter des données dans access pour
éviter que des administrateurs techniques puissent y
avoir accès en clair ?
.



Avatar
Jessy Sempere [MVP]
Bonjour

Voici un type tout bête de cryptage qui peut-être utiliser :
Voilà ce que peut donner un cryptage :
-198-333-330-318-333-351-342
Il te suffit de faire :
Decrypte "-198-333-330-318-333-351-342"
pour voir ce que ça veut dire...

************************************************
Function Crypte(strCrypt As String) As String
Dim i%
For i = 1 To Len(strCrypt)
Crypte = Crypte & "-" & Asc(Mid(strCrypt, i, 1)) * 3
Next
End Function

Function Decrypte(strCrypt As String) As String
Dim i%, j%
i = InStr(1, strCrypt, "-")
Do While i > 0
j = InStr(i + 1, strCrypt, "-")
If j <> 0 Then
Decrypte = Decrypte & Chr(Mid(strCrypt, i + 1, j - i - 1) / 3)
Else
Decrypte = Decrypte & Chr(Mid(strCrypt, i + 1) / 3)
End If
i = InStr(i + 1, strCrypt, "-")
Loop
End Function
************************************************

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"phil" a écrit dans le message news:
0a3201c3d91b$7cc5d470$
Il est toujours possible, en VBA, de créer un algorithme
de cryptage pour coder toute donnée saisie : on
n'enregistrera dans les tables que des données codées. Un
autre algorithme permettra de décoder ces données.
Ainsi, en parcourant les tables, on ne peut rien
comprendre.
J'ai répondu à la question ou je suis complètement à côté ?


-----Message d'origine-----
Comment peut-on crypter des données dans access pour
éviter que des administrateurs techniques puissent y
avoir accès en clair ?
.



Avatar
C'est une bonne réponse et c'est tout à fait ce que je
recherche. Mais je ne suis pas moi-même fin technicien
(je suis plus prescripteur) et il faut que je me tourne
vers les réalisateurs pour savoir s'ils savent faire cela
en VBA. Donc toute info technique complémentaire est
bienvenue.
Merci
______________________________________________________
-----Message d'origine-----
Il est toujours possible, en VBA, de créer un algorithme
de cryptage pour coder toute donnée saisie : on
n'enregistrera dans les tables que des données codées.
Un

autre algorithme permettra de décoder ces données.
Ainsi, en parcourant les tables, on ne peut rien
comprendre.
J'ai répondu à la question ou je suis complètement à
côté ?



-----Message d'origine-----
Comment peut-on crypter des données dans access pour
éviter que des administrateurs techniques puissent y
avoir accès en clair ?
.

.





Avatar
Merci pour ce message.
Je vois que vous êtes de Microsoft ; pouvez-vous me dire
où je peux avoir plus de détails sur cette facilité ?
En particulier, quel est le type de crytage utilisé, avec
quelles clés ,... ?
Merci
-----Message d'origine-----
Bonjour,

Vous pouvez sélectionner "Sécurité" dans le
menu "Outils" d'Access, puis

choisir la commande "Coder/Décoder une base de données".

Benoit Compoint

wrote in message
news:072601c3d91a$2eccd9e0$
Comment peut-on crypter des données dans access pour
éviter que des administrateurs techniques puissent y
avoir accès en clair ?


.



Avatar
Benoit Compoint [MS]
Bonsoir,

Le moteur Jet d'Access utilise un algorithme de cryptage RC4 (développé par
la société "RSA Data Security Incorporated") avec une clé de 32 bits.

Benoit Compoint

wrote in message
news:09fa01c3d922$5f178c00$
Merci pour ce message.
Je vois que vous êtes de Microsoft ; pouvez-vous me dire
où je peux avoir plus de détails sur cette facilité ?
En particulier, quel est le type de crytage utilisé, avec
quelles clés ,... ?
Merci
-----Message d'origine-----
Bonjour,

Vous pouvez sélectionner "Sécurité" dans le
menu "Outils" d'Access, puis

choisir la commande "Coder/Décoder une base de données".

Benoit Compoint

wrote in message
news:072601c3d91a$2eccd9e0$
Comment peut-on crypter des données dans access pour
éviter que des administrateurs techniques puissent y
avoir accès en clair ?


.



Avatar
Michel Walsh
Salut,


C'est mieux que du XOR, mais c'est quand même du "ESARINTULO", une des
premières techniques utilisées pour essayer de décoder du texte. En effet,
dans un texte où on soupçonne un codage un à un (à la Jules César, ou
autrement), la lettre e étant prédominante, après les espaces blancs, son
code sera très probablement celui qui apparaît le plus souvent. Et plus le
texte est long, plus la statistique a des chances d'être vérifiée. Ensuite,
on regarde le code qui revient le plus fréquemment en second, probablement
un s, en clair, et ainsi de suite, un a, un r... si il y a échec, on peut
intervertir le a et le r, ... même que ce texte-ci, le t arrive avant le s,
pas beaucoup de pluriels, et le r, manque de verbes à l'infinitif...mais
dans tous les cas, craquer le code est simple, et rapide, pour qui le désire
réellement, si c'est du texte. Dans ton cas, le message est trop court,
évidemment, mais que chaque "nombre" soit un multiple de trois est un autre
problème... ajouter, aléatoirement, 0, 1 ou 2 au résultat aurait brouillé
l'ésarintulo un petit peu, chaque lettre ayant maintenant trois codes, et
aurait caché la méchante multiplicité par 3 qui actuellement "donne"
quasiment l'algorithme de codage. Tu n'aurais, au décodage, qu'à simplement
changer les / par des et le tour est joué... mais demeure que la qualité
est bien en deça, quand même, du codage fourni par Jet (qui possède, de
plus, certains autres avantages, lors de recherche de données, etc. ) et de
façon transparente à celui qui utilisera la base de données... car le codage
esarintulo nécessite de communiquer la clé de décodage à tout et à chacun,
des développeurs, autre sérieux problème de sécurité, à long terme. Car
comment changer la clé si l' "ennemie" vient à connaître le décodage, par
exemple? On peut essayer de ré-inventer la roue, mais bien souvent, on s'y
fait prendre... La technique utilisée par Jet est ... baveuse. On connaît la
méthodologie utilisée... elle est publique... mais elle est tellement
onéreuse à craquer, par la méthode brute, quand on ne connaît pas la clé de
départ (même sur seulement 32 bits) qu'il faudrait plusieurs années à la
NASA (budget et capacité de calculs) pour y parvernir. On est loin du XOR
utilisé pas MS Word 98.


Vanderghast, Access MVP



"Jessy Sempere [MVP]" wrote in message
news:btudig$apk$
Bonjour

Voici un type tout bête de cryptage qui peut-être utiliser :
Voilà ce que peut donner un cryptage :
-198-333-330-318-333-351-342
Il te suffit de faire :
Decrypte "-198-333-330-318-333-351-342"
pour voir ce que ça veut dire...

************************************************
Function Crypte(strCrypt As String) As String
Dim i%
For i = 1 To Len(strCrypt)
Crypte = Crypte & "-" & Asc(Mid(strCrypt, i, 1)) * 3
Next
End Function

Function Decrypte(strCrypt As String) As String
Dim i%, j%
i = InStr(1, strCrypt, "-")
Do While i > 0
j = InStr(i + 1, strCrypt, "-")
If j <> 0 Then
Decrypte = Decrypte & Chr(Mid(strCrypt, i + 1, j - i - 1) / 3)
Else
Decrypte = Decrypte & Chr(Mid(strCrypt, i + 1) / 3)
End If
i = InStr(i + 1, strCrypt, "-")
Loop
End Function
************************************************

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"phil" a écrit dans le message news:
0a3201c3d91b$7cc5d470$
Il est toujours possible, en VBA, de créer un algorithme
de cryptage pour coder toute donnée saisie : on
n'enregistrera dans les tables que des données codées. Un
autre algorithme permettra de décoder ces données.
Ainsi, en parcourant les tables, on ne peut rien
comprendre.
J'ai répondu à la question ou je suis complètement à côté ?


-----Message d'origine-----
Comment peut-on crypter des données dans access pour
éviter que des administrateurs techniques puissent y
avoir accès en clair ?
.







Avatar
Jean
Bonjour,

Si tu cherche un exemple de cryptage, je te conseille
d'aller voir par là : (il n'est pas de moi.)

http://mypage.bluewin.ch/w.stucki/Admin.htm#CrypterTables

Ce site est très bien fait et te donne un exemple de
cryptage assez intéressant et facile à mettre en place.

A+ Jean.
Avatar
Michel Walsh
Salut,


Semble compliqué, ou lourd, pour ne dissimuler que du XOR. Un XOR
utilise une clée pour crypter, et la même clé, et le même algorithme, pour
décoder, c'est symétrique. Qui connaît la clé pour encoder, connaît la clé,
pour décoder, c'est la même. Un des gros problème du XOR est qu'on peut
retrouver la clé qui sert à l'encryptage... en criant lapin... ou presque.
Suffit de soumettre, par exemple, une chaîne de charactères 0 et la chaîne
codée nous retourne, gracieusement, le mot (la phrase) clé. En effet, 0
XOR x retourne x, donc, encrypter la chaîne sur la clé
"xyz" , donne, pseudo code:

( 0 XOR x ) & ( 0 XOR y ) & ( 0 XOR z )

soit

x & y & z

soit, xyz, la clé servant à encrypter.


Puisqu'un craqueur a accès à l'interface pour entrer des données, il peut
essayer une telle chaîne de charactères zéro, Chr(0), et, on suppose, que
l'accès est également facile quant à la lecture du produit de l'encodage...
donc, il obtient la clé assez facilement, et de là, peut tout redécoder, à
sa guise.


Pourquoi essayer de réinventer la roue, et retomber sur les problèmes
historiques, probablement mieux connus que nous, par tout hacqueur "digne de
renom"... :-) L'encryptage fourni par Jet est si simple, léger,
transparent, et nettement plus robuste que les méthodes "maison"... qui ne
résistent souvent pas au soufle du premier "loup" venu...



Espérant être utile,
Vanderghast, Access MVP




"Jean" wrote in message
news:0a0d01c3d9a5$d3496660$
Bonjour,

Si tu cherche un exemple de cryptage, je te conseille
d'aller voir par là : (il n'est pas de moi.)

http://mypage.bluewin.ch/w.stucki/Admin.htm#CrypterTables

Ce site est très bien fait et te donne un exemple de
cryptage assez intéressant et facile à mettre en place.

A+ Jean.
Avatar
Jessy Sempere [MVP]
Salut

Et le cryptage que je fais ci-dessous est-il plus fiable ?
Et du coup de quel type de cryptage s'agit-il ?

Merci
*********************************************
Function Cryptage(strCrypt As String) As String
Dim a&, i&
For i = 1 To Len(strCrypt)
a = Asc(Mid(strCrypt, i, 1)) * 128
Cryptage = Cryptage & "-" & Int(((a + 127) - a + 1) * Rnd + a)
Next
End Function

Function DeCryptage(strCrypt As String) As String
Dim i&, j&
i = InStr(1, strCrypt, "-")
Do While i > 0
j = InStr(i + 1, strCrypt, "-")
If j <> 0 Then
DeCryptage = DeCryptage & Chr(Int(Mid(strCrypt, i + 1, j - i -
1) / 128))
Else
DeCryptage = DeCryptage & Chr(Int(Mid(strCrypt, i + 1) / 128))
End If
i = InStr(i + 1, strCrypt, "-")
Loop
End Function
*********************************************
--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"Michel Walsh" a écrit dans le message
news:
Salut,


C'est mieux que du XOR, mais c'est quand même du "ESARINTULO", une des
premières techniques utilisées pour essayer de décoder du texte. En effet,
dans un texte où on soupçonne un codage un à un (à la Jules César, ou
autrement), la lettre e étant prédominante, après les espaces blancs, son
code sera très probablement celui qui apparaît le plus souvent. Et plus le
texte est long, plus la statistique a des chances d'être vérifiée.
Ensuite,

on regarde le code qui revient le plus fréquemment en second, probablement
un s, en clair, et ainsi de suite, un a, un r... si il y a échec, on peut
intervertir le a et le r, ... même que ce texte-ci, le t arrive avant le
s,

pas beaucoup de pluriels, et le r, manque de verbes à l'infinitif...mais
dans tous les cas, craquer le code est simple, et rapide, pour qui le
désire

réellement, si c'est du texte. Dans ton cas, le message est trop court,
évidemment, mais que chaque "nombre" soit un multiple de trois est un
autre

problème... ajouter, aléatoirement, 0, 1 ou 2 au résultat aurait brouillé
l'ésarintulo un petit peu, chaque lettre ayant maintenant trois codes, et
aurait caché la méchante multiplicité par 3 qui actuellement "donne"
quasiment l'algorithme de codage. Tu n'aurais, au décodage, qu'à
simplement

changer les / par des et le tour est joué... mais demeure que la
qualité

est bien en deça, quand même, du codage fourni par Jet (qui possède, de
plus, certains autres avantages, lors de recherche de données, etc. ) et
de

façon transparente à celui qui utilisera la base de données... car le
codage

esarintulo nécessite de communiquer la clé de décodage à tout et à chacun,
des développeurs, autre sérieux problème de sécurité, à long terme. Car
comment changer la clé si l' "ennemie" vient à connaître le décodage, par
exemple? On peut essayer de ré-inventer la roue, mais bien souvent, on s'y
fait prendre... La technique utilisée par Jet est ... baveuse. On connaît
la

méthodologie utilisée... elle est publique... mais elle est tellement
onéreuse à craquer, par la méthode brute, quand on ne connaît pas la clé
de

départ (même sur seulement 32 bits) qu'il faudrait plusieurs années à la
NASA (budget et capacité de calculs) pour y parvernir. On est loin du XOR
utilisé pas MS Word 98.


Vanderghast, Access MVP



"Jessy Sempere [MVP]" wrote in message
news:btudig$apk$
Bonjour

Voici un type tout bête de cryptage qui peut-être utiliser :
Voilà ce que peut donner un cryptage :
-198-333-330-318-333-351-342
Il te suffit de faire :
Decrypte "-198-333-330-318-333-351-342"
pour voir ce que ça veut dire...

************************************************
Function Crypte(strCrypt As String) As String
Dim i%
For i = 1 To Len(strCrypt)
Crypte = Crypte & "-" & Asc(Mid(strCrypt, i, 1)) * 3
Next
End Function

Function Decrypte(strCrypt As String) As String
Dim i%, j%
i = InStr(1, strCrypt, "-")
Do While i > 0
j = InStr(i + 1, strCrypt, "-")
If j <> 0 Then
Decrypte = Decrypte & Chr(Mid(strCrypt, i + 1, j - i - 1) /
3)


Else
Decrypte = Decrypte & Chr(Mid(strCrypt, i + 1) / 3)
End If
i = InStr(i + 1, strCrypt, "-")
Loop
End Function
************************************************

--
@+
Jessy Sempere - Access MVP

------------------------------------
Site @ccess : http://access.jessy.free.fr/
Pour l'efficacité de tous :
http://users.skynet.be/mpfa/
------------------------------------
"phil" a écrit dans le message
news:


0a3201c3d91b$7cc5d470$
Il est toujours possible, en VBA, de créer un algorithme
de cryptage pour coder toute donnée saisie : on
n'enregistrera dans les tables que des données codées. Un
autre algorithme permettra de décoder ces données.
Ainsi, en parcourant les tables, on ne peut rien
comprendre.
J'ai répondu à la question ou je suis complètement à côté ?


-----Message d'origine-----
Comment peut-on crypter des données dans access pour
éviter que des administrateurs techniques puissent y
avoir accès en clair ?
.











1 2