Archive for septembre, 2010

Après avoir passé en revue les différents comportements de navigation privée IE, Firefox, Chrome et la plus particulière navigation privée Safari 5 Desktop, voici un logiciel de navigation privée sur iPhone : Privately – Web Browser.

Privately – Web Browser

Ce logiciel est un navigateur sous iPhone qui permet de surfer de manière privée.

Comme expliqué sur le site officiel de l’application, Privately a les fonctionnalités suivantes :

  • Les pages visitées ne sont pas ajoutées à l’historique de navigation ;
  • Les recherches effectuées avec le champ de recherche ne sont pas sauvegardés ;
  • Les cookies sont supprimés dès que vous quittez l’application.

HSTS est (et j’adore ce genre de formule auxquelles on ne comprend rien) une norme qui permet de sécuriser l’accès aux sites sécurisés. HSTS signifie HTTP Strict Transport Security (précédemment nommé STS).

Limites actuelles

Aujourd’hui, le protocole HTTPS (HTTP sécurisé) est très robuste. Les principales failles de sécurité proviennent non pas du protocole de sécurisation en lui-même, mais plutôt du phishing, c’est-à-dire de l’identité réelle du site que vous visitez. Vous pouvez très bien aller sur le site par exemple de lcl.fr, mais en réalité vous êtes sur le site de lc1.fr. Pas forcément évident de faire la différence entre les deux au premier coup d’oeil.

Autre problème : vous vous connectez à un réseau wifi gratuit, et alors que vous pensez vous connecter sur le site de lcl.fr, vous êtes en réalité sur une copie de ce site, et c’est le serveur DNS (qui associe une IP à lcl.fr) qui vous trompe. Le certificat de sécurité, en revanche n’est pas valide, mais vous avez l’habitude que ça arrive sur Internet…

La solution proposée

En fait, cette solution n’est pas miraculeuse. Elle permet deux choses :

  1. Si j’arrive sur le site de ma banque, alors je suis obligatoirement en HTTPS. Cela évite les attaques qui consisteraient à y changer les liens en des liens vers un autre site avec une adresse similaire et un certificat valide.
  2. Si quelqu’un cherche à se faire passer pour ma banque et que je suis un abruti qui accepterait un certificat non valide, alors je suis protégé, car le certificat sera automatiquement refusé par mon navigateur.

Mise en place

Un site se déclare HSTS par deux manières différentes :

  • soit il fournit un header HTTP nommé Strict-Transport-Security, qui contient pour combien de temps et sur quelles parties du site appliquer HSTS  (exemple : Strict-Transport-Security: max-age=16070400; includeSubDomains) ;
  • soit il se déclare comme tel auprès des navigateurs (ou bientôt d’une autorité ?). Cette solution permet d’éviter de se faire avoir lors de la première connexion au site internet avec un navigateur tout neuf.

Une fois qu’un site est considéré comme HSTS par le navigateur :

  • Aucune connexion en HTTP non sécurisé ne sera faite. Tout passera directement par HTTPS. Les URL en HTTP (quand vous les tapez vous-même, ou bien à partir de lien trouvés sur des sites) seront automatiquement converties en HTTPS.
  • Si la liaison HTTPS contient une erreur (certificat auto-signé, ou non valide sur le domaine, …) alors la connexion sera automatiquement interrompue et aucune donnée ne sera transmise au site distant.

Conclusion

C’est une bonne couche de sécurité supplémentaire qui va être ajoutée, et qui va permettre d’éviter pas mal d’usurpation d’identité de site Internet. Internet n’est pas un monde magique où tout est rose, et il reste très important de sensibiliser les internautes aux problèmes de sécurité sur Internet, car malheureusement, une telle solution ne permet pas de protéger contre toutes les attaques.

Actuellement, Chrome 6 et Firefox 4 ont adopté la norme.

Sources : Strict Transport Security chez Chrome, la dépêche linuxfr.org sur HSTS dans Firefox

L’astuce du jour : voici comment faire des modifications de contenu en pipe ou sur des fichiers comme avec sed, mais avec la puissance des expressions régulières de perl.

En pipe (y en a marre des foo/bar !) :
perl -pe 'undef $/; s/Truc/Machin/i;'

Avec des fichiers :
perl -pe 'undef $/; s/Truc/Machin/i;' -i fichier

Exemple avec wget et un feed xml

Pour récupérer la date de dernière mise à jour d’un flux RSS :
wget -q -O - http://blog.cyril.me/feed/ | grep lastB | perl -pe 'undef $/; s/.*>(.*?)<.*/\1/'

Le CSS évolue. Une des principales innovations dans ce standard est l’ajout des animations. En voici un aperçu.

Démo : opacité et rotation

Un peu de code

Principe de fonctionnement

Le principe des animations est simple :

  1. Vous ajouter des styles à vos objets : style normal, et style modifié sur un évènement, par exemple avec :hover. Par exemple, on définit opacity: 0.5; dans le cas normal et opacity: 1; dans le :hover.
  2. On rajoute un style normal qui s’intitule -webkit-transition et dans lequel on va programmer la transition : type de propriété à animer, courbe de vitesse. Par exemple, si on veut animer l’opacité avec une vitesse rapide, en rendant l’arrêt plus fluide : -webkit-transition: -webkit-transform 1000ms ease-out 40ms ;

Source de l’exemple

  1. <style>
  2. .p416_animated {
  3.    opacity:.5;
  4.   -webkit-transition: -webkit-transform 1000ms ease-out 40ms, opacity 1000ms ease-out 40ms;
  5.   -moz-transition: -moz-transform 1000ms ease-out 40ms, opacity 1000ms ease-out 40ms;
  6. }
  7. .p416_animated:hover {
  8.   opacity:1;
  9.   -webkit-transform: rotate(360deg);
  10.   -moz-transform: rotate(360deg);
  11. }
  12. </style>
  13.  
  14. <img class="p416_animated" src="http://blog.cyril.me/wp-content/uploads/2010/09/firefox-150x150.png" alt="" />

Compatibilité

Le grand problème des évolutions de langage, c’est qu’il faut attendre l’évolution des navigateurs. Parmi les navigateurs compatibles disponibles à ce jour, nous avons Firefox 4, Chrome et Safari.

Cependant, le manque de compatibilité, dans certains cas (opacité par exemple), ne rendra pas votre site incompatible, mais seulement moins fini.

Pour aller plus loin : la référence du w3 sur les transitions CSS3.