Vous souhaitez savoir qui connait vos mots de passe ?

Le titre est un peu racoleur, mais il fait suite à une expérience menée récemment par Morin Innovation.

Selon l’appareil et le réseau que vous utilisez, des informations sensibles vous concernant (mot de passe, coordonnées bancaires, coordonnées sécurité sociale, etc) peuvent être interceptées de manière manuelle ou automatique.

La démarche précise ne va pas être évoqué ici : inutile de donner aux hackers en herbe les techniques de piratage qu’ils pourraient eux-même utiliser.

Première faille : ne pas mettre à jour

Vous utilisez Windows XP « parce que c’était mieux avant » ? Sachez que Windows XP ne reçoit plus de mises à jour. Les nouvelles failles trouvées ne sont donc plus corrigées. C’est un terrain de jeu idéal pour récupérer vos informations personnelles.

Il en va de même pour les anciennes versions de OS X, le système du Mac, dont la mise à jour est gratuite.

Et c’est également la même chose sur les smartphones.

Bien choisir son smartphone

Les smartphones de plus de 4 ans représentant environ 5 % des utilisateurs, et tous les 2 ans en moyenne.

Si votre iPhone a plus de 5 ans, il ne reçoit plus les mises à jour du système iOS. Les iPhone 4S et plus récent ont toujours droit à leur mise à jour. Et sont donc protégés au maximum possible.

Si vous vous orientez vers Android, vous avez le choix entre plusieurs milliers d’appareils. Choisissez plutôt du haut de gamme. Le Galaxy S2 peut être mis à jour avec la dernière version d’Android en passant par l’outil CyanogenMod (si vous êtes un peu geek, vous devriez vous en sortir sans soucis). Les modèles de moyenne gamme ont des mises à jour pendant environ 1 à 2 ans. Les modèles d’entrée de gamme sont bien souvent déjà obsolètes à la sortie.

Pour ce qui est de Windows Phone, environ 80 % des appareils reçoivent des mises à jour récentes, dont la dernière version Windows 10. Les versions Windows 8.1 reçoivent malgré tout des mises à jour de sécurité. Ce qui est plutôt intéressant.

L’étude de la sécurité s’est limitée aux mises à jour concernant Windows Phone tant la part de marché reste – encore – mince.

Le navigateur web

Utilisateurs d’Internet Explorer : toutes les versions inférieures à la version 11 sont obsolètes.

Les autres navigateurs sont mis à jour automatiquement et de manière régulière.

« HTTPS » ne signifie pas toujours « sécurité absolue »

Quand vous vous connectez sur un site en HTTPS, la connexion est sécurisée. Les données qui transitent entre votre ordinateur / smartphone et le site ne sont pas visibles.

Une personne (ou un robot) malintentionnée qui « observerait » la connexion ne verrait passer que des chiffres et lettres sans aucune cohérence.

On distingue les connexion HTTPS par un petit cadenas dans l’adresse du site (la barre en haut), souvent en vert, à gauche ou à droite de l’adresse.

HTTPS

Cependant, les certificats sont parfois obsolètes. En conséquence de quoi un pirate peut interférer entre vous et le site web. En gros, il se fera passer pour le site web vis à vis de vous. Et il se fera passer pour vous vis à vis du site web. Ainsi, il pourra récupérer les informations déchiffrées.

Les techniques modernes et les navigateurs modernes permettent justement d’éviter ça.

Dans Chrome, vous pouvez distinguer un site véritablement sécurisé :

Morin_Innovation

Et un site à la sécurité douteuse :

RSI_–_Authentification_et_Developer_Tools_-_http___localhost_8080_rwd_maiffr_dist_www_transverse_services_simulateur_html

Attention : de nombreuses banques et autres organismes « de confiance » utilisent des procédés obsolètes en matière de sécurité.

Comment aller sur Internet en toute sécurité ?

Il y a 2-3 règles simples pour être en sécurité sur Internet.

Disposer d’un appareil à jour

En allumant votre PC / Mac / Smartphone / What else vérifiez vos mises à jour.

C’est un premier niveau de protection.

Utiliser votre propre ordinateur et votre propre réseau

Les ordinateurs des lieux publics sont des cibles faciles pour les pirates. Ils peuvent souvent se mettre en intermédiaire : l’accès aux connecteurs réseaux n’est pas forcément sécurisé, ce qui permet d’intercepter les communications si on maîtrise la chose.

Et les ordinateurs des lieux publics sont rarement à jour.

Connectez-vous soit chez vous, soit chez un proche. Eventuellement sur une box de votre fournisseur d’accès ou un procédé similaire reconnu.

A défaut, utilisez votre connexion 3G/4G.

Les applications mobiles (ça fait mal…)

L’étude de la sécurité qui a été faite a été réalisée sur des applications mobiles iOS et Android.

La responsabilité de la sécurité dépend à la fois du système d’exploitation et du concepteur de l’application.

La faille courante sur mobile

La faille la plus courante sur mobile n’est pas d’essayer de casser la sécurité de la connexion à un service, mais de baisser le niveau de sécurité pour le rendre obsolète et ainsi récupérer les informations.

En gros, en utilisant un appareil Android « rooté » (ou non mis à jour) ou un iPhone « jailbreaké », on peut faire croire au site web que nous n’avons pas la capacité de mettre en place le niveau de sécurité maximum. On demande donc à communiquer au travers d’une connexion sécurisée obsolète.

Et là, le pirate peut se mettre entre les deux.

IOS : sécurisé par défaut

Les applications iOS sont sécurisées par défaut. Elles sont compilées, chiffrées et le système bloque beaucoup d’accès de sorte à protéger vos données.

Si vous êtes encore sur iOS 8 (il en reste quelques uns), passez rapidement à iOS 9. La dernière mise à jour permet de forcer la sécurité des connexions des applications mobiles grâce à une technologie appelée ATS. Cependant, certains développeurs désactive cette fonctionnalité par paresse de la mise à jour.

Pour le reste, on peut réaliser des applications ne contenant aucun identifiant dans le code (pour se connecter au serveur) et donc totalement sécurisées.

On peut éventuellement renforcer la sécurité avec des techniques complémentaires, au cas où iOS aurait une faille non connue permettant de casser les mécanismes de sécurité en place. Mais, si c’était le cas, le FBI n’aurait pas fait de procès à Apple pour accéder aux informations d’un iPhone.

Sauf si vous ne mettez pas à jour votre iPhone, et si le développeur ne se donne pas la peine de respecter les règles de sécurité par défaut ou n’utilise pas les outils à disposition, votre iPhone est globalement très bien sécurisé.

Ce qui est normal : après tout, vous payez le prix fort – entre autre – pour que vos données soient en sécurité.

Android : sic!

Avant d’être accusé de quoi que ce soit, je tiens à préciser que j’ai lancé plusieurs appels sur la toile ces derniers jours et ils sont restés sans réponse. Si vous avez des réponses à me donner, n’hésitez pas, je complèterai l’article.

J’ai testé plusieurs applications Android, dont celles d’organisations qui devraient protéger la sécurité de leurs utilisateurs. Je ne les citerai pas, par bienveillance et parce que l’erreur est humaine. Et, de toutes manières, il est très difficile de faire mieux que pas terrible avec Android. Je vais expliquer précisément pourquoi.

En premier lieu, j’ai pu découvrir le code source de toutes les applications téléchargées. Et donc récupérer les identifiants de connexion au service web permettant de gérer les données.

J’ai même eu accès à un service d’envoi automatique de SMS. Bref, ça craint. Imaginez que je sois un pervers un peu taré et que j’utilise ce service pour envoyer des SMS salaces : qui se ferait accuser ?

En plus, une faille Android anéantit la sécurité mise en place sur les autres appareils.

Certaines techniques permettent de « masquer » le code source, dont l’obfuscation, qui consiste à complexifier artificiellement le code. Sur une dizaine d’apps, une seule était réellement compliquée à lire. Pour les autres, on s’y retrouvait tout de même facilement. Donc, ça craint. Y compris pour le développeur qui n’y peut rien.

On pourrait utiliser, comme avec iOS, des services Google qui permettraient de récupérer les identifiants sensibles via une connexion établie par l’application et exploitable uniquement par l’application. Ça n’existe pas. Et, même si ça arrivait dans la prochaine version, ce ne serait pas compatible avec la majorité des appareils Android avant plusieurs années.

Bref : on est condamné à laisser en clair les informations.

Si toutefois on utilise une bonne technique pour bien cacher les identifiants de connexion au service web, il n’y a malheureusement aucune technique permettant de forcer la protection de la connexion (aucun équivalent à ATS) : en conséquence, on doit utiliser des techniques particulières pour s’assurer qu’il n’y a personne entre notre serveur et notre application.

J’en ai déjà perdu la plupart d’entre vous : c’est normal, ce domaine qu’est la sécurité est très spécifique.

Pour les développeurs, c’est pareil : la plupart ne connaisse pas tellement la sécurité. Vu que le système n’est pas suffisamment sécurisé par défaut, l’application n’est pas sécurisée. Et, encore une fois, inutile de leur jeter la pierre : la sécurité est un domaine très spécifique et doit avant tout être géré par le système en lui-même.

Je ne dis pas qu’Android n’est pas sécurisé : il y a tout pour bien faire. C’est juste que dans plus de 90 % des cas ce n’est pas sécurisé. Et, malheureusement, on ne peut pas y faire grand-chose.

Faut-il responsabiliser l’utilisateur ? Faut-il responsabiliser le développeur d’application ? Faut-il responsabiliser les concepteurs d’Android ?

Ça ne vous a pas coûté cher : vous savez maintenant pourquoi.

Si un jour votre compte est débité ou votre identité falsifiée, vous saurez que vous n’avez pas eu de chance à la roulette russe. Mais vous saurez surtout d’où peut venir le problème.

« C’est malin, j’ai les boules : t’as pas une solution quand même ? »

Hormis mettre votre Android à la poubelle et acheter un Windows Phone ou un iPhone, vous pouvez tout de même protéger un peu plus vos informations personnelles en évitant que vos données soient volées par n’importe qui.

Cette solution est très utile et doit être appliquée quelle que soit votre smartphone ou ordinateur.

Vous savez maintenant qu’un mot de passe de connexion n’est absolument pas une sécurité : n’importe quel pingouin mal luné peut le récupérer en allant voir 3 tutoriels sur le piratage.

Pour autant, il existe une solution : l’identification à plusieurs facteurs.

Le premier facteur est le mot de passe, totalement « has been » aussi compliqué soit-il.

Le second facteur est l’envoi d’un SMS ou l’envoi d’un code dans une application spécifique.

Et là, c’est malin. Car, pour pouvoir accéder à votre compte, le petit malin devra posséder à la fois votre mot de passe (facile) ET votre téléphone sur lequel sera envoyé un SMS ou un code dans une app. Et, si votre smartphone est bien protégé (mot de passe ou mieux : TouchID), le petit malin pourra aller se brosser.

Si vous souhaitez en savoir plus, j’ai rédigé un petit article à ce sujet.

Le plus triste est que – malheureusement – les banques, assurances et autres établissements ayant à leur disposition des informations sensibles vous concernant utilisent rarement ce système d’identification. (par contre, Google, Facebook, Apple, Microsoft et autres le proposent)

Sur ce, dormez tranquilles… On vous surveille ! (rire sardonique)

Je rigole. 🙂 Mais faites attention quand même.

 

Quoi de neuf chez Morin Innovation ?

Après avoir fait des blagues potaches pour le 1er avril, il est toujours intéressant de connaître la – véritable – actualité de l’entreprise.

Et bien, de nombreux projets en cours et à venir. Notamment grâce à Hopwork et aux rencontres Niort Numeric.

Du service web sécurisé et performant

Dans le cadre d’un projet de startup, j’ai mis en place un service web garantissant une sécurité optimale. Pas parfaite, je n’ai pas cette prétention. Mais répondant à de hauts critères en matière de sécurité et de performances.

Ruby on Rails : on passe la 5ème

Le service web étant mis en production cet été, le développement a été réalisé avec Ruby on Rails 5, la dernière mouture du framework web, actuellement dans ses dernières versions beta.

Comme toujours, l’outil tient ses promesses et propose un socle solide pour le développement en mode agile.

OAuth2 : authentification sécurisée

Le service web étant destiné à une application mobile, l’accès à ce dernier doit être sécurisé tout en conservant une certaine souplesse et de bonnes performances.

Le protocole OAuth2 offre cette possibilité tout en restant sur une architecture standard.

Ajoutez à cela une protection SSL solide, le bon suivi des règles de sécurité OWASP et le tour est joué.

Authenticité des utilisateurs

Quand on échange des données confidentielles, on aime que les personnes sur le réseau soient des personnes de confiance.

La mise en place d’une validation par email et/ou SMS en amont de l’inscription permet de s’assurer – dans une certaine mesure – que les utilisateurs de la plateforme sont de vraies personnes.

Authentification à plusieurs facteurs

Un simple mot de passe peut parfois suffire.

Pour un service web nécessitant un certain niveau de sécurité et de confidentialité, ce n’est pas suffisant.

L’utilisateur à le choix d’activer l’authentification à plusieurs facteurs.

S’il l’active, il reçoit un SMS permettant de valider son identité lors de la première connexion au service sur un même appareil.

Liens courts

Les liens courts permettent de faciliter l’échange de liens : un lien court est facile à recopier et très efficace en QRCode.

En plus, dans un SMS, ça prend moins de place.

Une app iOS moderne sécurisée

IOS offre de nombreux mécanismes de sécurité. Encore faut-il savoir les utiliser à bon escient.

Deeplinking et liens universels

Le deeplinking permet d’ouvrir une app via un format de lien spécifique.

Le lien universel – introduit par iOS 9 – permet d’ouvrir directement une app au bon endroit grâce à un lien vers un site.

Ce procédé permet de renforcer la qualité de l’expérience utilisateur tout en conservant un niveau de sécurité élevé.

Connexion sécurisée aux services web

L’application actuelle est – comme la plupart des applications – connectée à un service web.

Même si la connexion est sécurisée, les identifiants permettant de se connecter aux services web avaient – jusqu’à récemment encore – la fâcheuse habitude d’être intégrés au code source de l’application. Et donc potentiellement récupérables en cassant la sécurité l’application.

Depuis iOS 8, on peut s’affranchir du stockage de ces précieuses données. L’accès au code source en lui-même ne permet pas le piratage car il ne contient pas les identifiants de connexion. (si vous voulez savoir comment je fais, n’hésitez pas à me contacter 🙂 )

Stockage sécurisé des données

IOS propose des mécanismes permettant de sécuriser le stockage des données : autant les exploiter. Toutes les données personnelles de l’app sont chiffrées par le système.

La sécurité des données confidentielles est une question de confiance vis à vis des utilisateurs. Il est essentiel de la garantir.

Accès sécurisé au contenu

Souvent, la sécurité concernant les images et autres contenus stockés sur des CDN se résume à « cacher » l’URL de la ressource en espérant que le contenu ne soit pas vu.

Le système mis en place nécessite l’utilisation d’une signature générée grâce à un identifiant et une clé pouvant eux-même changer. En clair, on ne tombe pas dessus par hasard.

Les performances et l’expérience utilisateur

Ceux-ci sont également essentiels, mais restent plus « classiques ».

On utilise les dernières techniques iOS 8 et iOS 9, avec une bonne dose de Swift, un usage intelligent des différents niveaux d’exécution des tâches et le tour est joué.

To be continued…

Le projet est en cours. D’autres projets vont arriver.

Et, cet été, ce sera – normalement – l’arrivé du successeur de iOS 9 : tout un programme !

À suivre…

U2F : nouveau standard de la sécurité

L’authentification à deux facteurs est devenue une norme en matière de sécurité.

U2F en a fait un standard qui va au-delà de l’existant.

Au-delà de proposer un système d’identification venant compléter l’utilisation du nom d’utilisateur et du mot de passe, U2F standardise l’authentification à deux facteurs en y ajoutant une identification matérielle.

Plutôt que d’utiliser votre smartphone, vous utilisez une clé USB, la NFC, le bluetooth… du moment que l’appareil utilisé respecte le protocole défini.

Il faut, bien entendu, que le service utilisé propose ce type d’identification. Le système se déploie petit à petit grâce à des outils permettant une intégration plus simplifiée au sein des services.

OLYMPUS DIGITAL CAMERA

En savoir plus

[ Infographie] Pourquoi le chef de la CIA aurait dû utiliser l’identification à 2 facteurs

Au cas où vous ne l’auriez pas su, le chef de la CIA – John Brennan – s’est récemment fait pirater sa boîte email.

Le fait que de jeunes hackers aient pu faire le coup est d’autant plus perturbant.

Voici une infographie expliquant le procédé. Si vous souhaitez éviter les mêmes désagréments, pensez à utiliser l’identification à 2 facteurs !

Identification à 2 facteurs

(Merci Wazbe pour l’infographie 😉 )

L’authentification à 2 facteurs : kezako?

Vous utilisez le nom de votre chien ou votre date de naissance comme mot de passe ? Quelques informations concernant la sécurité de vos données vous sont peut être nécessaires…

La base : un bon mot de passe

Le premier facteur d’identification est l’utilisation d’un nom d’utilisateur (souvent l’adresse email) et d’un mot de passe. C’est généralement ce qu’on utilise pour lire nos emails, aller sur Facebook, consulter nos comptes.

Cette première étape doit être réalisée correctement. En effet, les machines étant de plus en plus performantes, un mot de passe court et simple est facile à trouver en tentant plusieurs combinaisons.

Par contre, un mot de passe mélanger des chiffres, des lettres, des majuscules, des minuscules et des signes est plus complexe à trouver. Surtout s’il fait une bonne longueur.

Par exemple, « Vivelan2015! » ou « Quoide9chezvous? » sont des mots de passe tout à fait correctes.

Et le deuxième facteur ?

Il suffit que vous ayez noté, par mégarde, votre mot de passe sur un papier et c’est cuit.

Ou bien si le système enregistrant votre mot de passe dans le navigateur a une faille, un simple malware pourra le récupérer.

Que faire ??? C’est là qu’intervient l’authentification à double facteurs.

Le procédé est simple. D’abord, vous téléchargez un logiciel à installer sur votre smartphone permettant de gérer ce deuxième facteur (le premier étant le mot de passe).

En voici quelques-un :

[Mise à jour du 28 mars 2016]

Si vous êtes sur iOS, Android, Windows, Mac ou GNU/Linux, je recommande l’outil Authy qui est plus complet et plus intuitif que Google Authenticator.

Son gros avantage est qu’il peut être synchronisé sur toutes les plateformes.

On peut par exemple l’utiliser sur iPhone (ou Android) pour scanner le QRCode, et ensuite retrouver les informations synchronisées au sein de son navigateur Chrome sur Mac ou PC. Le tout étant évidemment protégé.

[/Mise à jour du 28 mars 2016]

Ensuite, vous allez sur le compte à protéger.

En général, vous aurez un onglet « sécurité » et la possibilité d’activer l’authentification à 2 facteurs ou l’authentification en 2 étapes ou identification en 2 étapes… Bref, c’est la même chose.

2 options s’offrent à vous : l’utilisateur de l’application est la plus courante. Ou bien le SMS.

Si vous utilisez l’application, on vous demandera de scanner un QRCode qui permet de configurer cette dernière. Une fois configurée, un code temporaire associé à votre compte s’affichera. C’est ce code qu’il faudra utiliser pour vous identifier après avoir saisi votre mot de passe. Ce code temporaire est également unique car il est associé à votre identifiant.

Si vous utilisez le SMS, le code vous sera envoyé après la saisie du mot de passe par SMS.

Egalement, pensez à imprimer / enregistrer les codes de secours que vous cacherez. Ca peut être utile…

Et après ?

Une fois que vous avez configuré l’authentification à 2 facteurs, lorsque vous vous connecterez à votre compte sur un nouvel appareil ou sur un nouveau navigateur, un code vous sera demandé. L’appareil sera ensuite enregistré comme étant fiable pour ne pas avoir à vous embêter systématiquement.

Soit ce code est affiché dans l’application mobile, soit ce code vous sera envoyé par SMS.

Vous l’avez compris : si quelqu’un vous vole votre mot de passe, il aura de toutes manières besoin de votre smartphone pour accéder au compte. Si vos sessions utilisateur sont bien protégées sur votre mobile et sur votre ordinateur, vous serez protégé au maximum.

Quels services proposent ce système ?

On retrouve ce système sur les principaux services utilisés au quotidien :

  • Microsoft
  • Apple
  • Google (Gmail)
  • Facebook
  • WordPress
  • DropBox
  • Amazon
  • etc

Chose surprenante, les banques et assurances proposent rarement ce niveau de sécurité !

Il est donc important de ne pas négliger le mot de passe malgré tout.