Les liens de la semaine – Édition #197

Développement

.NET

Web

Technologie

Science et autres

Mozilla Persona

Votre identité en ligne est au cœur de vos interactions sur internet. Que ce soit le courriel que vous utilisez pour vous connecter sur Facebook ou le nom d’utilisateur pour votre compte en banque, ils font partie de votre ADN virtuel.

À l’heure actuelle, trois tendances sont observées lorsqu’il est temps de vous authentifier et d’utiliser un service en ligne.

  • Code utilisateur et mot de passe
  • Courriel et mot de passe
  • Protocole d’authentification fédéré : OAuth (Facebook et Twitter), et OpenID (Google).

Les deux premières présentent des désavantage tant au niveau sécurité qu’à la facilité d’utilisation. Selon moi, l’utilisation d’un protocole d’authentification présente une alternative beaucoup plus sécuritaire.

En contrepartie, à mon avis, les techniques énumérées présentent les faiblesses suivantes :

  • Il est facile d’oublier le nom d’utilisateur associé à un service utilisé peu fréquemment.
  • Un courriel comme identifiant utilisateur est pratique mais expose inutilement votre adresse courriel
  • Les précautions de sécurité employées avec les deux premières options sont difficilement évaluables.
  • Un fournisseur d’identité en ligne devient, potentiellement, le chaînon faible dans le cas où la sécurité de celui-ci est compromise.

Toutefois, il n’est pas sans hasards que les principaux services que vous utilisez implémentent l’un ou l’autre des protocoles d’authentification. Ils permettent une décentralisation de la validation de votre identité.

En termes clairs, il s’agit de la technique de ne pas mettre tous les œufs de la sécurité de votre identité dans le même panier.

L’histoire se répète et chaque joueur tiens, dans ses mains, les billes du plan lui permettant de dominer avec la technologie qu’il a choisi.

Mozilla Persona

Persona est le nom grand public que Mozilla a donné à la technologie BrowserID qu’ils ont développé. Il s’agit d’un mécanisme d’authentification au même titre qu’OAuth et OpenID. Son arrivée sur le marché est assez récente, les premières annonces à son sujet datent de la mi-2011.

Il s’agit d’un troisième joueur qui se lance dans l’arène. Comme le veut l’expression : Jamais deux sans trois.

Celui-ci, se distingue par son implémentation directement au niveau du navigateur avec l’utilisation de Javascript. Le principal avantage de cette approche est que le fournisseur d’identité ne possède aucun contexte au sujet de la provenance de la requête. Un plus pour la sécurité.

De plus, l’identifiant qui est utilisé par BrowserID est le courriel de l’utilisateur. Il n’y a alors pas d’excuses pour oublier son nom d’utilisateur.

Comment ça marche

BrowserID se base sur le principe que l’entité en charge de faire la gestion de l’authentification est le navigateur même. Cette gestion se fait grâce à l’ajout de l’API Javascript navigator.id développée par l’équipe de Mozilla.

Il est possible de procéder à l’implémentation de BrowserID sur votre site en utilisant uniquement Javascript et une requête côté serveur afin de valider l’authenticité de l’identité d’un utilisateur. Le cadre est assez flexible afin d’être utilisé peu importe la technologie sur laquelle votre site repose. Après tout, il s’agit seulement de requêtes HTTP.

Afin de résumer, il suffit de respecter les étapes suivantes afin d’implémenter BrowserID :

  1. Ajout de la librairie de base : https://login.persona.org/include.js
  2. Ajout actions de connexion et de déconnexion pour les appels navigator.id.request() et navigator.id.logout()
  3. Implémentation de la fonction navigator.id.watch qui permet d’interpréter les actions d’authentification de l’utilisateur (Connexion et déconnexion). C’est à cette étape que la requête à une ressource côté serveur afin de valider l’authentification se fait.
  4. Du côté serveur, une requête POST doit se faire au fournisseur d’identité. L’adresse de celui-ci est : https://verifier.login.persona.org/verify.

L’approche que Mozilla a préconisé pour s’attaquer au problème de l’authentification d’un utilisateur est intéressante. Depuis un certain temps, le rôle du navigateur dans les interactions avec un site web a pris une réelle ampleur.

Dans ce cas-ci, il joue le rôle de l’entité permettant  de faire la gestion de l’authentification. Certes, il n’a pas la responsabilité d’authentifier. Toutefois, il permet de faire  le relais de celle-ci au serveur de validation.

Si vous désirez voir un exemple, je vous conseille de visiter le site http://myfavoritebeer.org/. Il s’agit d’un exemple assez simple permettant de voir comment la technologie fonctionne.

Do Not Track

Do Not Track (DNT) est un standard proposé par le W3C qui  permet aux utilisateurs d’internet ne désirant pas être suivi par des services de publicités ou d’analyse de visites de les notifier de leur intention de ne pas l’être. Cette intention se signifie à l’aide d’une entête HTTP ajoutée à toutes vos requêtes HTTP.

Historiquement, le suivi des visites et de l’analyse des comportements sur un site web était limité au clics et des chargements de pages. Depuis la venue des Cookies, les compagnies de publicités ont trouvé d’innombrables moyens de suivre vos tendances de visites sur internet et de vous afficher du contenu qui correspond à vos besoins potentiels.

Certaines compagnies ont clairement signifé leur intention par écrit de respecter l’affichage de l’intention de ne pas être suivi. Il n’y a actuellement pas de mécanismes permettant d’obliger une compagnie de marketing à respecter l’intention d’un utilisateur à ne pas être suivi. Le respect de DNT est principalement effectué de bonne foi par les services ayant signifé leur intention de respecter.

Il est à noter que, depuis mai 2012, Twitter a décidé d’aller de l’avant avec le respect de DNT auprès de ses utilisateurs. Il s’agit de la première compagnie d’importance à aller de l’avant avec cette décision.

La responsabilité du signalement de DNT revient entièrement au navigateur web. Il est proposé que l’activation de DNT doit se faire dans les paramètres de configuration du navigateur web.

Le support de DNT est actuellement limité selon le navigateur web. Un support natif à Do Not Track est offert dans Internet Explorer 9 et Firefox 11. Google Chrome offre un support à DNT par le moyen d’une extension à télécharger. Le support officiel par Google Chrome est à venir selon les dires de Google.

L’activation de DNT est très simple. Sous Firefox, il faut aller sous Options \ Privacy et activer l’option Tell websites I do not want to be tracked.

Dans le concret, l’activation de cette option ajoutera l’entête HTTP DNT : 1 à vos requêtes HTTP.

L’ajout de Do Not Track est un premier pas dans le respect de la vie privée des internautes. Il va falloir encore quelques temps avant que son utilisation devienne une pratique courante dans l’industrie de la publicité et du marketing internet.

À mon avis, les attentes aux promesses de DNT ne doivent pas très élevées car une partie de son succès est dans les mains des compagnies de publicités qui ont des intérêts très différents de l’utilisateur moyen. Toutefois, il ne s’agit pas d’une raison de reculer pour faire avancer le respect des de nos droits sur le web.