Vous êtes sur la page 1sur 14

La mthode d'authentification htaccess https://www.securiteinfo.com/conseils/htaccess.

shtml

La scurit informatique - La scurit des informations

La mthode d'authentication htaccess

Concept d'authentication

Ce systme d'authentication est frquemment utilis pour restreindre l'accs au contenu de rpertoires
spciques, sur un intranet ou sur Internet. Le chier contenant les informations de conguration relatives aux
personnes ou groupes de personnes habilites accder les donnes protges, ainsi que leurs droits, se
nomme ".htaccess" par dfaut. Il est stock dans le mme rpertoire o rsident les donnes portger.

Fonctionnement

La mthode d'authentication htaccess a t dveloppe en mme temps que les programmes destins
rcuprer des donnes "Web" sur Internet, tel que les dmons HTTPd. Ainsi, dans une url (Universal Resource
Locator), la commande "http://" va tre interprte par le dmon (il s'agit du programme sur le serveur Web
attendant toute connexion ou requte pour la traiter); celui-ci dispose d'un chier global de gestion des accs
stock la racine le plus souvent. Les chiers .htaccess reprsentent des niveaux additionnels dans la gestion des

1 sur 14 07/04/2017 17:55


La mthode d'authentification htaccess https://www.securiteinfo.com/conseils/htaccess.shtml

accs, et apportent un ranement li chaque rpertoire.

Ainsi, si le dmon trouve un chier .htaccess dans l'arborescence parcourir pour accder au chier requis par
le client, il va procder suivant les informations contenues dans ce chier : il va soit interdire l'accs et refuser la
requte, soit demander une authentication de l'utilisateur via login/password. Il est intressant de noter que la
plupart du temps les donnes d'authentication ( l'inverse des donnes de conguration) sont stockes un
autre endroit dans l'arborescence, protges de tout accs via le Web (par exemple avec un chier .htaccess
o est spci "Deny from All"). Le dmon va comparer ces donnes avec celles renvoyes par l'utilisateur lors
de la requte d'authentication et autoriser, suivant le rsultat du test, l'utilisateur accder ou non la page
web.

Aspects pratiques : le chier .htaccess

On retrouve ce type d'authentication dans la plupart des distributions : Apache permet l'utilisation de chiers
nomms ".htaccess" par dfaut. Netscape utilise des chiers nomms ".nscong" dont la syntaxe varie quelque
peu.

Du ct de cette syntaxe, nous allons voir celle qui est la plus habituelle, savoir celle utilise par Apache; un
exemple typique de chier .htaccess est le suivant :

AuthUserFile /repertoire_protege/.htpasswd
AuthGroupFile /dev/null
AuthName Area_51
AuthType Basic

2 sur 14 07/04/2017 17:55


La mthode d'authentification htaccess https://www.securiteinfo.com/conseils/htaccess.shtml

require user roswell

Nous utilisons ici un chier ".htpasswd" qui est plac dans le rpertoire "/repertoire_protege", et qui contient nos
paires de login/password de rfrences. Nous verrons ce chier un peu plus loin; nous n'utilisons pas de chier
dnissant des groupes d'utilisateurs : nous sommes dans un cas simple (le paramtre "/dev/null" correspond au
device null sous Unix, autrement dit quelquechose d'inexistant). "Area_51" est le nom que nous donnons
cette authentication (viter les espaces) et "Basic" est le type d'authentication.

La deuxime partie du chier est celle o nous allons dnir les droits requis pour accder au contenu du
rpertoire dans lequel se trouve notre chier .htaccess . Ainsi dans le cas prsent, nous n'autorisons que l'utilisateur
"roswell" (attention la casse) accder notre rpertoire. Lors de l'authentication, cet utilisateur donnera son
mot de passe qui sera alors compar la valeur contenue dans notre chier de mots de passe, savoir
.htpasswd .

Nous allons voir maintenant qu'il est possible d'aner ces droits en limitant suivant le cas les htes, requtes HTTP,
chiers accds, protocoles, etc...

- premier cas, la limitation des requtes HTTP. HTTP est un protocole de transfert de donnes utilis pour le web
(c.f. la rfc 2616), qui comporte un nombre limit de fonctions; il est possible de n'accepter que certains types de
fonctions pour que, par exemple, les utilisateurs ne puissent qu'accder en lecture au rpertoire. C'est le cas
dans l'exemple suivant o nous limitons l'accs aux requtes (fonctions HTTP) de type GET (lecture) pour les
utilisateurs roswell et mulder :

3 sur 14 07/04/2017 17:55


La mthode d'authentification htaccess https://www.securiteinfo.com/conseils/htaccess.shtml

<Limit GET>
require user roswell mulder
</Limit>

Plus gnralement, nous aurons :

<Limit GET>
require valid-user
</Limit>

o tout utilisateur prsent dans la liste du chier .htpasswd sera autoris effectuer des requtes GET sur le
rpertoire protg.

- autre cas, limitation des chiers accds :

<Files index.html>
require valid-user
</Files>

Nous limitons ici l'accs au chier spci, "index.html", en excluant le reste du rpertoire. Cet accs est lui-mme
limit aux utilisateurs valides (autoriss).

- cas suivant, les restrictions suivant les htes :

Expliquons tout d'abord les options utilises : Order, Deny et Allow. Order permet de spcier un ordre

4 sur 14 07/04/2017 17:55


La mthode d'authentification htaccess https://www.securiteinfo.com/conseils/htaccess.shtml

d'valuation des critres de test. Allow signie autoriser les entits satisfaisant le test correspondant et Deny
signie rejeter les entits satisfaisant galement le test correspondant. On utilise gnralement un combinaison
des 2, et suivant l'ordre, la politique de scurit varie quelque peu.
Dans l'ordre Deny,Allow, les directives Deny sont values avant celles de la clause Allow. Le dfaut est
d'autoriser l'accs. Tout client qui ne correspond pas la directive de dni ou qui satisfait au test d'autorisation
spcique Allow se verra autoris l'accs au serveur web.
Dans l'ordre Allow,Deny, les directives Allow sont values avant celles de la clause Deny. Le dfaut est
d'interdire l'accs. Tout client qui ne correspond pas la directive d'autorisation ou qui satisfait au test de dni
se verra refus l'accs au serveur web.

Exemple :

Order Allow,Deny
Allow from apache.org
Deny from foo.apache.org

Tout le monde provenant du domaine apache.org est autoris accder au serveur web sauf une
sous partie qui est refuse (sous-domaine foo). Le reste du monde est refus puisqu'il s'agit du
dfaut dans ce cas.

Variantes : pour autoriser seulement un groupe d'adresses IP : ici celles contenues dans la classe B 129.21 .

Order Deny,Allow
Allow from 129.21
Deny from All

Pour autoriser seulement un groupe d'htes ou rseaux : ici le domaine rit.edu .

5 sur 14 07/04/2017 17:55


La mthode d'authentification htaccess https://www.securiteinfo.com/conseils/htaccess.shtml

Order Deny,Allow
Allow from rit.edu
Deny from All

Pour exclure seulement un groupe d'adresses IP : ici celles contenues dans 129.21.3 .

Order Allow,Deny
Allow from All
Deny from 129.21.3

Pour exclure seulement un groupe d'htes ou rseaux : ici le domaine isc.rit.edu .

Order Allow,Deny
Allow from All
Deny from isc.rit.edu

- dernier cas, l'authentication scurise : elle fait appel au protocole SSL (ou sa version standardise, TLS) pour
les changes de donnes, ce qui vite que les mots de passe circulent en clair sur le rseau. Pour l'utiliser, il faut
faire des requtes de type https://... sur un serveur correctement congur.

AuthDCE On
AuthType Basic
AuthName dce
require valid-user

6 sur 14 07/04/2017 17:55


La mthode d'authentification htaccess https://www.securiteinfo.com/conseils/htaccess.shtml

Aspects pratiques : le chier .htpasswd

Le chier htpasswd contient les login et mots de passe des utilisateurs autoriss accder aux pages web.
Plusieurs chiers htaccess peuvent utiliser le mme chier htpasswd comme base de secrets (credentials)
centrale si la mthode d'authentication est basique. Mais dans tous les cas ce chier doit tre clairement
protg (bien qu'accessible en lecture par le dmon pour lui permettre de l'utiliser); le plus souvent, on utilise l
encore une protection par htaccess au moyen de la ligne de conguration : "Deny from All", ce qui signie
qu'aucun accs (du dmon donc via le web) n'est autoris.
Par contre, ce chier reste accessible comme tout autre chier par le systme d'exploitation et donc via les
autres services tel que FTP.

Pour crer le chier ".htpasswd", il faut utiliser la commande *nix htpasswd ou utiliser un site web qui fournit le
mme service. La commande type est (-c pour cration d'un nouveau chier):

htpasswd -c /rpertoire_destination/.htpasswd login

Le systme va ensuite demander le mot de passe associ ce login qu'il va crypter et rajouter au chier
.htpasswd. Voici un exemple de ce que l'on peut trouver dans un chier .htpasswd :

foobar:Z39sR$s9xLyx
karen:44KvbqBfLZ5Yw

La fonction htpasswd accepte plusieurs types de cryptage des mots de passe :

-m utilise la fonction de hachage MD5 (128 bits). Attention, Apache utilise une version spcique de
l'algorithme, ce qui signie qu'il n'est pas interoperable avec les autres serveurs web.
-d utilise la fonction systme crypt(). Pour rappel, cette fonction est base sur le DES, et est galement

7 sur 14 07/04/2017 17:55


La mthode d'authentification htaccess https://www.securiteinfo.com/conseils/htaccess.shtml

utilise pour le cryptage des most de passe systme (chier passwd ou shadow).
-s utilise la fonction de hachage SHA-1 (160 bits).
-p laisse les mots de passe en clair.

Faiblesse htaccess : l'authentication HTTP

Comme nous l'avons vu prcdemment, htaccess est un processus d'authentication qui va tre reconnu par le
dmon HTTP lorsqu'il essayera d'accder aux chiers pour les envoyer au client. Mais cette authentication
repose en fait compltement sur les fonctionnalits du protocole HTTP (c.f. la rfc 2617), et le dmon va
demander au client de s'authentier via une requte particulire. Prenons l'exemple suivant :

GET https://www.securiteinfo.com/restricted_zone/ HTTP/1.0

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*

Accept-Language: fr

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)

Host: www.securiteinfo.com

Proxy-Connection: Keep-A live

HTTP/1.1 401 Authorization Required

8 sur 14 07/04/2017 17:55


La mthode d'authentification htaccess https://www.securiteinfo.com/conseils/htaccess.shtml

Via: 1.1 PROXY2

Connection: close

Content-type: text/html; charset=iso-8859-1

Date: Wed, 22 Aug 2001 15:25:40 GMT

Server: Apache/1.3.12 (Unix) Debian/GNU mod_perl/1.24

Www-authenticate: Basic realm="Acces Restreint"

GET https://www.securiteinfo.com/restricted_zone/ HTTP/1.0

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*

Accept-Language: fr

Authorization: Basic QWxpY2U6TGFwaW4=

User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 4.0)

Host: www.securiteinfo.com

Proxy-Connection: Keep-A live

HTTP/1.1 200 OK

Via: 1.1 PROXY2

Connection: close

Content-type: text/html

Date: Wed, 22 Aug 2001 15:25:45 GMT

Server: Apache/1.3.12 (Unix) Debian/GNU mod_perl/1.24

Explications :

9 sur 14 07/04/2017 17:55


La mthode d'authentification htaccess https://www.securiteinfo.com/conseils/htaccess.shtml

L'utilisateur souhaite accder une page web qui s'avre tre protge par htaccess. Concrtement, il y a
2 changes requte/rponse HTTP qui sont ffectus pour donner accs cette page.
Le premier est une requte simple (un GET) signiant que le client souhaite accder la page. La rponse
est "401 Authorization Required", ce qui signie que la page est protge et ncessite une authentication
(de type "Basic"). L'utilisateur ne voit pas cette rponse, seul le navigateur (browser) la voit et ache en
rponse une popup dans laquelle il demande l'utilisateur de taper son login et mot de passe.
Aprs cette opration, le navigateur ritre son GET en ajoutant cette fois-ci les informations de l'utilisateur
("Authorization: Basic QWxpY2U6TGFwaW4=") qui serviront au serveur pour l'authentier.
Si tout se passe bien, la requte est accepte ("200 OK") et l'utilisateur peut accder la page web.

Nous avons ici le cas le plus simple : les informations de l'utilisateur circulent quasiment en clair sur le rseau.
Prenons l'lment "crypt" : QWxpY2U6TGFwaW4=. Cet lment est en fait "login:password" uuencod en base
64, ce qui n'est d'aucune protection (l'uuencodage est un procd servant coder du binaire en ASCII et
inversement, autrement dit de passer de 24 32 bits tout en restant dans l'intervalle des caractres imprimables,
ce qui permet de transfrer des chiers binaires sous forme de texte par exemple).

Copions cet lment dans un chier type :

begin-base64 644 my_le


QWxpY2U6TGFwaW4=
====

Un simple passage dans la fonction *nix uudecode nous donne :

Alice:Lapin

10 sur 14 07/04/2017 17:55


La mthode d'authentification htaccess https://www.securiteinfo.com/conseils/htaccess.shtml

Nous avons retrouv le login : "Alice" et le mot de passe : "Lapin".

Il existe une autre mthode utilise pour coder les informations transitant sur le rseau : on utilise l'algorithme de hash MD5
(c.f. la rfc 1321). Les proprits d'une fonction de hachage rendent impossible le fait qu'un attaquant puisse remonter aux
informations initiales (login/password); de plus, le hasch reste caractristique de ces donnes, autrement dit un hasch
correspond un et un seul texte original (dans la limite de son intervalle de sortie, savoir 2^128 possibilits pour MD5).
Nanmoins, cela ne prserve pas des "replay-attacks", dans lesquelles l'attaquant va se contenter d'intercepter ce hasch
et de l'utiliser son propre compte comme s'il s'agissait du sien : il n'a nul besoin de possder le texte original puisque c'est
le hasch qui est demand! Pour remdier cette faiblesse, l'authentication HTTP utilisant cet algorithme va donc rajouter
des lments -uniques- dans le calcul du hasch, le plus souvent en envoyant un challenge (le "nonce") au client lors de la
requte d'authentication. Le client va rajouter ce challenge dans le calcul du hasch, le rendant unique par la mme
occasion (c.f. la rfc 2069 et suivantes).

HTTP/1.1 401 Unauthorized

(...)

WWW-Authenticate: Digest realm="testHash",

nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",

opaque="5ccc069c403ebaf9f0171e9517f40e41"

Authorization header: Authorization: Digest

username="Alice",

realm="testHash",

nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",

uri="/dir/index.html",

response="e966c932a9242554e42c8ee200cec7f6",

11 sur 14 07/04/2017 17:55


La mthode d'authentification htaccess https://www.securiteinfo.com/conseils/htaccess.shtml

opaque="5ccc069c403ebaf9f0171e9517f40e41"

Malheureusement, cette deuxime mthode d'authentication est peu utilise (cela dpend entre autres des
fonctionnalits du serveur, du navigateur, etc...).
Pourtant, aujourd'hui, tous les navigateurs supportent cette mthode d'authentication

Avantages et dsavantages

La mthode d'authentication par htaccess permet de dlguer le contrle d'accs au niveau local, et autorise
ainsi plus de exibilit pour crer et changer les droits d'accs suivant les besoins.

Par contre, on comprendra que ce systme devient rapidement ingrable lorsque le nombre d'utilisateurs et/ou
de rpertoires augmentent, rendant toute politique de scurit globale impossible.
D'autre part, le systme reste faible dans son concept; il est bas sur les services du Web l'exclusion de tous les
autres sevices d'Internet, ce qui n'est pas une hypothse raisonnable. En effet, tout utilisateur malveillant qui a
accs au serveur par un autre moyen ou service (ce qui n'est pas irraliste) sera capable de modier et
corrompre compltement ce systme d'authentication. Ainsi on peut dresser une liste (non-exhaustive bien sr)
qui permet de se faire une ide du nombre de menaces prendre en compte lorsque l'on souhaite utiliser ce
systme d'authentication :

- accs via FTP (utilisateur autoris)


- accs via FTP (utilisateur non-autoris, buffer-overows et autres exploits type wu-ftpd)

12 sur 14 07/04/2017 17:55


La mthode d'authentification htaccess https://www.securiteinfo.com/conseils/htaccess.shtml

- accs via Telnet (sur services particuliers, la liste tant trop longue pour tre cite...)
- accs via Web (script cgi non protg type PHF, dbordements)
- ...

Conclusion

Nous avons vu que la mthode d'authentication par htaccess comporte beaucoup d'inconvnients, voir de
faiblesses, pour un nombre d'avantages assez restreint. Nanmoins, il ne faut pas oublier son principal intrt qui
est le fait qu'elle reste la seule mthode facilement utilisable par le client de base d'un fournisseur d'accs
internet et d'espace web. En effet la plupart du temps cette personne n'a pas accs aux serveurs et ne peut
donc pas faire appel des services auxiliaires pour des types d'authentications alternatives. Les quelques
options restantes sont plus compliques implmenter (PHP/MySQL par exemple) surtout si l'on souhaite assurer
un bon niveau de scurit (modules cryptographiques en PHP). Et l'on ne parle mme pas des solutions
utilises par la plupart des interfaces web de mail gratuit type Yahoo!, o l'on utilise un simple POST dans
lequel le mot de passe est prsent en clair!

Pour nir, la mthode htaccess peut trs bien tre scurise car elle en possde les moyens : cryptographie avec
MD5 ou scurisation de bout en bout grace SSL... A chacun de s'assurer que ces mesures soient correctement
utilises.

SoGoodToBe

Partagez cet article

13 sur 14 07/04/2017 17:55


La mthode d'authentification htaccess https://www.securiteinfo.com/conseils/htaccess.shtml

SecuriteInfo.com est une entreprise franaise de scurit informatique. Nous proposons diffrentes solutions
matrielles et prestations de services permettant de scuriser les donnes des Systmes d'Information d'entreprises
ou de collectivits.

2004-2016 - Tous droits rservs - SecuriteInfo.com Contact - Mentions lgales - A Propos

14 sur 14 07/04/2017 17:55