Accueil   |   Forums   |  Offres d'emplois   |  Contact    |   Mon compte   
samedi 17 mai 2008 Rechercher :
Déposez votre CV gratuitement sur touslesemplois
 
comparer les prix
» Logiciels
» Jeux vidéos
» Matériel Informatique


» ASP.NET
» ASP
» SQL
» PHP
» JAVASCRIPT
» XML
 


» ACTUALITÉ / DIVERS
» DROIT DE L'INTERNET
» INFOS VIRUS
» PATCHS MICROSOFT
» SÉCURITÉ
» BASES DE DONNÉES
» DOWNLOAD .NET
» LOGITHÈQUE
» SERVICES WEB
» Y SONT FOUS !
» .NET
» ASP
» ASP.NET
» JAVA
» PHP
» XML
» LANGAGE C#
» LANGAGE VB.NET
» UNIX / LINUX
» WINDOWS
» EVÈNEMENTS
» GASP
» MICROSOFT
 



Vous êtes ici : Articles ASP > TRUCS ET ASTUCES

Créer des mots de passe pour votre application
Vous mettez en œuvre un service avec un accès par identification : partie privée de votre site, forums, abonnement aux articles ..... Vous identifiez vos utilisateurs par un login et un mot de passe.


ABONNEZ-VOUS GRATUITEMENT A LA REVUE DE PRESSE "LES Z'ACTUS" ET RECEVEZ CHAQUE JOUR DANS VOTRE BOITE AUX LETTRES LA MEILLEURE INFORMATION DEDIEE AUX WEBMASTERS / DEVELOPPEURS.

Indiquez votre adresse E-mail :

Technologie : ASP 
Date : 29/05/2006   
Auteur : Dimitri ACHIKHMIN

Si le problème de login ne se pose pas, ça sera l'e-mail de l'utilisateur ou un nom libre, le mot de passe doit répondre à un certain nombre de critères afin de limiter les risques de piratage. Souvenez-vous de vos premiers mots passe : "musique", "jaguar", "Nicolas" ? Ne souriez pas, c'est toujours d'actualité, vous connaissez sûrement des collègues dans votre entourage qui utilisent toujours ce genre de passwords. A ce sujet, il existe un nombre important de consignes à ce sujet sur net, comme, par exemple :
http://www-chimie.u-strasbg.fr/membres/GB/Bon_MdP.html

Mais comment obliger l'utilisateur à suivre ces conseils ? Il n'a pas le temps pour lire et comprendre (s'il arrive) ce discours. "Fabriquer les mot de passe de façon aléatoire !" - diriez vous. Mais que va faire l'utilisateur qui reçoit un nouveau mot de passe "Kj78n,77p" ? Oui, il va l'écrire sur un papier ou dans son agenda électronique et va vous maudire en douceur avant chaque connexion. C'est déjà pas facile de le faire venir sur le site, on va pas non plus lui rendre difficile la tâche d'y rester.

Pour la recherche d'accès, un pirate peut utiliser une méthode de tests de toutes les combinaisons possibles d'une suite de caractères ou de recourir à un dictionnaire de mots. (je n'évoque pas d'autres types d'attaques applicatives dont la responsabilité est sur nous, les techniciens). La première méthode est facilement contrée par une définition de longueur minimale de mot de passe, la deuxième est un peu plus dure à appliquer.

Et si nous profitons les dictionnaires des hackers pour effectuer la vérification de mot de passe avant de l'avoir accepté ? Renversons la vapeur en utilisant les dictionnaires non pas pour vérifier la stabilité des comptes utilisateurs mais lors de création de nouveau compte ? C'est une idée que nous avons implémenté sur notre site web il y a quelque temps et cela donne des résultats. Nous n'avons plus de mots de passes simples, mais pas des combinaisons de lettres et de chiffres impossibles non plus.

Ce qui a été le plus dur ce n'est pas le code vbscript de vérification, mais la constitution d'une base de données de plus de 3 millions entrées. Mots anglais, français, italiens, russes, combinaisons de chiffres et lettres tout est présent dans cette base de données. 

Voici le code asp pour la vérification : 

dim AdoDicoWordsPath, AdoDicoUser, AdoDicoUserPwd
AdoDicoWordsPath = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=E:\db\dico_words.mdb"
AdoDicoUser = "User"
AdoDicoUserPwd = ""

' Vérification de présence de mot demandé dans le dictionnaire des mots
function FindPwd(strPwd)
if strPwd="" or isnull(strPwd) then
FindPwd = true
else
' Create objects
Set objConnectionDico = Server.CreateObject("ADODB.Connection")
objConnectionDico.Open AdoDicoWordsPath, User, UserPwd
Set objRecordsetDico = Server.Createobject("ADODB.Recordset") 

tSqlString = "SELECT words.Word " & _
"FROM words " & _
"WHERE words.Word='"& replace(strPwd, "'", "''") & "'"
objRecordsetDico.Open tSqlString, objConnectionDico, 0, 1, &H0001
FindPwd = not (objRecordsetDico.EOF)

objRecordsetDico.Close
objConnectionDico.Close
set objRecordsetDico = nothing
set objConnectionDico = nothing
end if
end function

'test
Response.Write "kuku - " & FindPwd("kuku") & "<br>"
Response.Write "test49 - " & FindPwd("test49")

Si votre site ne peut pas héberger une base de données de cette taille, mais que vous voulez bénéficier de cette vérification, nous avons mis en œuvre un mécanisme suivant de vérification : 
Dans votre application web, construisez une requête url suivante : 

http://www.fw-application.com/gen_06.asp?mdp=<@word to verify@>&surl=<@your web site success url@>&eurl=<@your web site error url@>

où :
- <@word to verify@> est le mot à vérifier
- le texte <@your web site success url@> est remplacé par l'url de page de succes sur votre site (où vous pouvez continuer l'enregistrement de l'utilisateur)
- le texte <@your web site error url@> est remplacé par l'url de page d'erreur (avec une invitation d'essayer un autre mot de passe)


Vous pouvez inclure d'autres paramètres d'url (nom d'utilisateur, prénom ...), ils seront redirigés aux deux pages.

Exemple : 
http://www.fw-application.com/gen_06.asp?mdp=kuku&uname=Dimitri&ulng=ru&surl= http%3A%2F%2Fwww.fw-application.com%2Fhome.asp&eurl=
http%3A%2F%2Fwww.fw-application.com%2Ferr_access.asp

Vous pouvez utiliser un formulaire avec la méthode Get et champs masqués : mdp, surl, eurl pour fabriquer cette url.

Ah oui, j'ai failli oublier. Il est impératif d'enrichir ce dictionnaire avec des combinaisons de lettres et chiffres provenant du contexte de votre société: 
- noms, prénoms, pays, ville, rue, station de métro
- années de naissance, téléphone fixes et portables

Utilisez pour cela des générateurs de dictionnaires disponibles sur le net (je ne peux pas en conseiller car je n'ai trouvé aucun qui me satisfaisait pleinement dans les options de générations de combinaisons)



Proregna - L'hébergement ASP.NET


A RETENIR CETTE SEMAINE
16/05/2008 - Logiciels Microsoft gratuits pour les étudiants
Vous êtes étudiant ? N’attendez pas pour télécharger* gratuitement et utiliser les derniers logiciel ...
16/05/2008 - Lillois, ne manquez pas les Wygdays 2008
Le 22 mai prochain à Lille, vous êtes invité à un événement unique dédié aux développeurs, organisé ...
16/05/2008 - Flash 10 est dans les bacs, Silverlight prend du retard
On est peut-être à un tournant très important de la bataille que se livrent Microsoft et Adobe sur l ...
15/05/2008 - Comment manipuler simplement le contenu d'un fichier WordML ?
Le format WordML (et plus largement OpenXML ) est une grande avancée: il permet de manipuler les doc ...
15/05/2008 - Package d'installation réseau de Windows XP Service Pack 3 pour les informaticiens
Ce package d'installation est destiné à permettre aux informaticiens et aux développeurs de configur ...
15/05/2008 - Mono supporte désormais Windows Forms et Silverlight
Jour de gloire pour le projet Mono. Miguel de Icaza annonce tout d'abord sur son blog la première re ...
14/05/2008 - Deux Services Packs en bêta pour Visual Studio
Microsoft annonce deux Services Packs en version bêta pour Visual Studio 2008 et pour le framework . ...
(c) 1999-2006 ASP MAGAZINE SARL
Partenaires : Codes sources c2i ASP-PHP
Hébergement serveurs dédiés Windows


Hit-Parade