-
    Techniques et conseils

Note: L'ensemble des "Tips of the Week" de l'éditeur OmniPilot sont régulièrement traduits chaque semaine. Vous les retrouvez ci-après

LISTE DES TUTORIAUX

Formatage de nombres et calculs FileMaker Pro sous Lasso

Passer facilement de FileMaker Pro CDML à Lasso Professional 8

Outil de Maintenance MySQL

Indicateur de progression - Progress bar

Uploads de fichiers sous Lasso Professional 8

Utilisation des arrays pour la création d'inlines dynamiques

Balises de gestion du Cache

Méthodes d'appel des balises

Encryption de données

Notions de Sessions

Gestion des erreurs

Pages d'erreur customisées

Variables globales

Optimisations de MySQL

Symboles d'assignation mathématiques

Expression régulières (Nettoyage du texte)

Expressions régulières (Rechercher/remplacer)

Expressions régulières (principes de base)

Optimisez votre code HTML en utilisant les balises [Loop] et [Iterate]

Utilisation des boucles (Loops)

Utilisation de la balise [Action_Params]

Techniques de commentaires


     
Blueworld, Windows Server 2003, Windows XP, RedHat, Linux, Mac OS X, MACOS, Apache, MySQL, FIlemaker Pro

Edité par OmniPilot Software, Lasso Professional fonctionne sous Windows 2000/2003/XP et Linux RedHat et Apache Server - Il s'intègre parfaitement à MySQL™ et FileMaker Pro™ ainsi que toutes autres bases de données
     




Déposez votre nom de domaine avec ELIDEE

Sujet: Encryption de données

Résumé:
Cet article discute des options d'encryption offertes par Lasso Professional 7 et notamment BlowFish, MD5 et Base 64.

Détail:
Lasso Professional inclut des balises qui permettent d'encrypter et de décrypter des valeurs de chaînes de caractères. Lasso implémente BlowFish qui permet une encryption/décription symétrique en utilisant une clé partagée, MD5 qui est une encryption à sens unique de type hash ainsi que des balises d'encodage en Base 64 de manière à obscurcir des données sans forcément les encrypter.

BlowFish

L'algorythme d'encryption BlowFish pemet aux données d'être encryptées et décryptées en utilisant la même clé (ou seed). Cela permet aux données d'être stockées de manière sécurisé dans une base ou transmises de pages en pages.

L'algorythme d'encryption BlowFish peut générer plusieurs valeurs différentes pour l'encryptage d'une même donnée. Il est en principe impossible de comparer deux valeurs encryptées pour déterminer si elles auraient la même valeur une fois décryptées.

[Encrypt_BlowFish] prend deux paramètres: la données qui doit être encryptée et la clé (seed) à utiliser pour encrypter ces données. [Encrypt_BlowFish: 'Ma valeur secrète', -Seed='Password']

[Decrypt_BlowFish] prend deux paramètres également: la données qui doit être décryptée et la clé (seed) à utiliser pour décrypter les données. [Decrypt_BlowFish: 'e5db5893737443e4fa06053af786101e', -Seed='Password']

Par exemple, des données stockées dans une base de données peuvent être décryptées en utilisant le code suivant:

[Var: 'ID' = 32768]
[Var: 'Memo' = 'Ceci est un memo top secret...']
[Var: 'Seed' = 'MonMotDePasse']
[Inline: -Add,
    -Database='TopSecret',
    -Table='Memos',
    'ID'=$ID,
    'Memo'=(Encrypt_BlowFish: $Memo, -Seed=$Seed)]
[/Inline]

Lorsque les données sont récupérées depuis la base elles doivent être décryptées en utilisant la même clé.

[Var: 'ID' = 32768]
[Var: 'Seed' = 'MonMotDePasse']
[Inline: -Search,
    -Database='TopSecret',
    -Table='Memos',
    -Op='eq', 'ID'=$ID]
  [Var: 'Memo' = (Decrypt_BlowFish: (Field: 'Memo'), -Seed=$Seed)]
[/If]

Note: l'algorythme BlowFish utilisé dans Lasso Professional 7 (et les versions antérieures) n'est pas compatible avec la plupart des implémentations de cet algorythme. Les données stockées avec l'implémentation BlowFish de Lasso doivent être décryptées en utilisant cette même implémentation.


MD5 Hash

La fonction de hash MD5 est n'est pas là même que les autres algorythmes d'encryption. L'algorythme MD5 transforme les chaînes de caractères en valeurs hash de 32 caractères. Il n'existe pas de possibilité de retrouver la valeur originale de la chaîne de caractères depuis cette fonction. Chaque fois qu'une valeur sera transformée ainsi elle aura toujours la même valeur (que ce soit avec Lasso ou tout autre produit utilisant MD5).

MD5 est souvent utilisé pour le stockage des mots de passe. Seule la valeur hash MD5 est stockée et la version plein-texte du mot de passe n'est pas stockée. Lorsqu'un utilisateur entre son mot de passe, cette entrée est passée en MD5 et comparée à la valeur stockée pour le mot de passe. Si les deux valeurs hash sont identiques, alors le mot de passe entré est correct.

L'avantage de ce type de système est que la base de données utilisateurs ne doit pas stocker la version plein-texte (clairement lisible) du mot de passe. Cela permettra de garantir qu'aucun mot de passe utilisateur ne soit révélé. Si tant est que les valeurs hash puissent être découvertes, retrouver le mot de passe en clair à partir d'elle serait très compliqué.

[Encrypt_MD5] prend une chaîne de valeur et en retourne la valeur hash MD5. Il n'existe aucune fonction de décryptage.

Par exemple, pour stocker une valeur MD5 dans une base de données le code suivant peut être utilisé:

[Var: 'Username' = 'JohnDoe']
[Var: 'Password' = 'MonMotdePasse']
[Inline: -Add,
    -Database='Security',
    -Table='Users',
    'Username'=$Username,
    'Password'=(Encrypt_MD5: $Password)]
[/Inline]

Lorsque l'utilisateur JohnDoe essaye de se logguer sur le site, son username et son password (envoyés par les [action_param]s peuvent être vérifiés en utilisant ce code. A la fois le username et le password doivent correspondre à la valeur hash MD5 de manière à autoriser l'utilisateur à entrer sur le site:

[Inline: -Search,
    -Database='Security',
    -Table='Users',
    -Op='eq', 'Username'=(Action_Param: 'Username'),
    -Op='eq', 'Password'=(Encrypt_MD5: (Action_Param: 'Password'))]
  [If: (Found_Count) > 0]
    Bienvenue [Field: 'Username'].
  [Else]
    Username ou password erroné!
  [/If]
[/If]


Encodage Base 64

L'encodage en Base 64 n'est pas à proprement parler une méthode d'encryption. Le standard a été créé de manière à fournir un moyen de passer des données binaires (ou 8-bit ASCII) à travers une passerelle en 7-bit. L'algorythme exécute ceci en prennant 3 valeurs 8-bit et en les encodants en tant que 4 valeurs en 6-bits.

Il est simple pour n'importe qui de décoder les données qui ont été encodées en utilisant l'algorythme Base64. Cependant l'encodage Base 64 est d'une utilisation courante sur Internet comme moyen de rendre obscures des données lors de leur transmission. La méthode d'authentification basique utilisée par les sites Web encode simplement les username et les password en utilisant l'encodage en Base 64. L'Email utilise l'encodage en Base 64 pour la plupart des pièces jointes.

L'encodage en Base 64 peut être utilisé sur votre site si vous voulez rendre incompréhensible directement des données dans le code source de vos pages web. Un visiteur particulièrement attentif sera à même de décoder ces données et retrouver la valeur en clair, mais des utilisateurs courant trouverons ces valeurs particulièrement opaques.

[Encode_Base64] prend une valeur de chaîne de caractères et en retourne la version encodée en Base 64. [Decode_Base64] peut être utilisée pour décoder un texte en Base 64 pour en retrouver la valeur originelle.

Par exemple, un champ hidden dans un formulaire peut inclure une valeur encodée en Base 64 de la manière suivante:

<input type="hidden" name="User_ID" value="[Encode_Base64: $User_ID]">

La valeur de User_ID peut être retrouvée dans la page suivante en décodant l'[action_param] de la manière suivante:

[Var: 'User_ID' = (Decode_Base64: (Action_Param: 'User_ID'))]


Plus d'informations

Plus d'informations sur l'encryption et les balises d'encodage peuvent être trouvées dans le chapitre "Encoding" dans Lasso 7 Language Guide ou sur le site LDML Reference.

Produit:    Lasso Professional
Plateformes:    Mac OS X, Windows 2000, Windows XP, Windows 2003, Red Hat Linux
Versions:    5.x, 6.x, 7.x
Auteur:    Fletcher Sandbeck - OmniPilot Software, Inc.


     
Retour accueil
Lasso Studio
Lasso Professional
Communiqués Presse
Tutoriaux
Lasso & Filemaker
Evaluation gratuite
Hébergement Lasso/MySQL
Revendeurs
Historique logiciel
Tarifs - Commander
Nous contacter
     

Notre numéro de téléphone : +33 5 57 22 89 35

Hébergement mutualisé Lasso




Hébergement et location de baies de serveurs et Transit IP par ELIDEE


-  Accueil  -  Développer avec Lasso Studio  -  Déployer avec Lasso Professional  --
Administration du site webmaster@elidee.com | Copyright 2004-2010, Elidée SARL. Tous droits réservés
Toutes les marques citées sont déposées par leur propriétaire respectif