scratch/multi/blog/Password-Management.md
2012-08-19 22:27:40 +02:00

212 lines
9.7 KiB
Markdown

-----
isHidden: false
menupriority: 1
kind: article
created_at: 2011-05-18T13:14:28+02:00
en: title: 40 character's passwords
fr: title: Password Management
author_name: Yann Esposito
author_uri: yannesposito.com
tags:
- password
- security
-----
blogimage("main.png","Title image")
begindiv(intro)
en: %tldr How I manage safely my password with success for some years now.
en: **`sha1( password + domain_name )`**
en: I memorize only one password.
en: I use a different password on all website.
fr: %tlal Une méthode de gestion des mots de passes que j'utilise avec succès depuis quelques années.
fr: **`sha1( mot_de_passe + nom_de_domaine )`**
fr: Je ne mémorise qu'un seul mot de passe de très bonne qualité.
fr: J'utilise des mots de passe différents sur tous les sites.
enddiv
en: Disclamer, this is an unashamed attempt to make you download my iPhone app ;-).
en: You're always here?
en: Even if you won't download my app, you should read more.
en: My method doesn't necessitate my app.
en: It is both safe and easy to use everyday.
fr: Avant de commencer, je tiens à préciser qu'il s'agit d'une tentative de vous vendre mon appli iPhone ;-).
fr:
fr: Vous êtes toujours là ?
fr: Bon, d'accord, même si vous ne téléchargez pas mon application vous pouvez quand même utiliser ma méthode.
fr: Elle est à la fois très sûre et simple à utiliser.
en: If you just want to _use_ the tools without searching to understand why it is safe, just jump at the [end of this article by clicking here](#in-practice).
fr: Si vous souhaitez simplement _utiliser_ le système sans essayer de comprendre comment ça marche derrière vous pouvez [aller à la fin de cet article en cliquant ici](#en-pratique-).
en: ## Why you should use a Password Manager?
fr: ## Pourquoi devriez-vous utiliser un gestionnaire de mot de passe ?
en: > Even paranoid could have ennemies.
fr: > Même les paranoïaques peuvent avoir des ennemis.
en: Imagine you find a really good password. You use it on GMail, Amazon, PayPal, Twitter, Facebook...
en: One day you see a nice online game you want to try.
en: They ask you your email and a password.
en: Some week passes, and the host machine of this online game is hacked.
en: Your mail and password is now in bad hands.
en: Unfortunately for you, you use the same password everywhere.
en: Then, the attacker can simply try your password everywhere.
en: On PayPal for example.
fr: Imaginez que vous trouviez un très bon mot de passe. Vous l'utilisez sur gmail, amazon, PayPal, twitter, facebook...
fr: Plus tard, vous découvrez un super petit jeu en ligne très sympa.
fr: Vous devez vous enregistrer pour y jouer.
fr: Le site vous demande votre email et un mot de passe.
fr: Quelques semaines/mois se passent.
fr: La machine qui héberge le jeu en ligne se fait attaquer.
fr: Maintenant, l'attaquant du site web possède votre email avec ce mot de passe.
fr: Il peut donc essayer votre mot de passe un peu partout.
fr: Sur PayPal par exemple.
en: Well now, how could we fix that?
fr: Bien, maintenant comment pouvons nous régler ce problèmes ?
en: ## Which methodology?
fr: ## Quelle méthodologie ?
en: > the good, the bad _&_ the ugly
fr: > Le bon, la brute et le truand
en: The mostly used method is to remember a subset of different passwords.
en: In the best cases, your remember about 13 password.
en: Some strong, some weak.
fr: La méthode la plus courante est de se souvenir de plusieurs mot de passes différents.
fr: En général, si vous avez bonne mémoire vous pouvez mémoriser jusqu'à 13 mots de passes. Certain de bonne qualité, d'autre moins.
en: What to do if you use more online services
en: than your memory can handle?
fr: Que faire si vous utilisez plus de services que vous pouvez mémoriser de mots de passe ?
en: A _bad_ solution would be to
en: chose passwords like this:
fr: Un _mauvaise_ solution peut être de choisir ses
fr: mots de passes de la façon suivante :
en: - twitter: `P45sW0r|)Twitter`
en: - gmail: `P45sW0r|)gmail`
en: - badonlinegame: `P45sW0r|)badonlinegame`
fr: - twitter: `P45sW0r|)Twitter`
fr: - gmail: `P45sW0r|)gmail`
fr: - badonlinegame: `P45sW0r|)badonlinegame`
en: Unfortunately, if someone get your password on
en: badonlinegame, he could easily find your other passwords.
en: Of course you can imagine some better transformation. But it is hard to find a very good one.
fr: Malheureusement, si quelqu'un récupère votre mot de passe sur
fr: `badonlinegame`, il peut facilement retrouvez vos autres mots de passe.
fr: Bien sûr, on peut imaginer des transformation de mots de passe de meilleure qualité.
fr: Mais il est très difficile d'en trouver une suffisamment bonne.
en: Fortunately, there exists functions which handle exactly this problem.
en: _Hash Function_.
en: Knowing the result of a hash function, it is difficult to know what was their input.
en: For example:
fr: Fort heureusement, il existe une des fonctions bien connues dans le milieu de la sécurité informatique et qui résolvent précisément ce problème.
fr: Il s'agit des _fontions de hachages_.
fr: Il est difficile de retrouver le paramètre d'entrée d'une fonction de hachage à partir de son résultat.
fr: Prenons un exemple :
en: <code class="zsh">
en: hash("P45sW0r|)") = 9f00fd5dbba232b7c03afd2b62b5fce5cdc7df63
en: </code>
en: If someone has `9f00fd5dbba232b7c03afd2b62b5fce5cdc7df63`,
en: he will have hard time to recover `P45sW0r|)`.
fr: Si quelqu'un possède `9f00fd5dbba232b7c03afd2b62b5fce5cdc7df63`,
fr: il va avoir de grande difficulté pour retrouver `P45sW0r|)`.
en: Let choose SHA1 as hash function.
en: Now the password for any website should
en: of the form:
fr: Choisisson la fonction de hashage `sha1`.
fr: Connaissant celà, le mot de passe d'un site donné doit avoir la forme :
en: <code lang="zsh">
en: sha1( master_password + domain_name )
en: </code>
en: Where:
fr: Où :
en: - `master_password` is your unique master password,
en: - `domain_name` is the domain name of the website you want the password for,
fr: - `master_password` est votre unique mot de passe _maître_ ;
fr: - `domain_name` est le nom de domaine du site pour lequel vous voulez le mot de passe.
---
en: But what about some website constraint?
en: For example regarding the length of the password?
en: What to do if you want to change your password?
en: What to do if you want number or special characters?
en: This is why, for each website I need some other parameters:
fr: Il faut aussi penser à certaines contraintes.
fr: Certains site web veulent des mots de passe d'une certaine longueur, ni trop longs ni trop courts.
fr: Que faire si vous voulez changez votre mot de passe ? Soit parce qu'il est compromis ou simplement parce qu'on vous impose de le changer.
fr: C'est pouquoi pour chaque site on a besoin de quelques paramètres supplémentaires.
en: - the login name
en: - the password's length,
en: - the password number (in order to change it),
en: - The output format: hexadecimal or base64.
fr: - le nom de login ;
fr: - la longueur du mot de passe ;
fr: - le numéro du mot de passe (pour le changer au cas où) ;
fr: - le format du mot de passe : hexadécimal ou base64.
en: ## In practice?
fr: ## En pratique ?
en: Depending on my situation here are the tools I made _&_ use:
fr: Selon ma situation, voici les outils que j'ai fait et que j'utilise :
en: - On my Mac:
en: - I use the dashboard widget [YPassword](http://yannesposito.com/Scratch/files/YPassword-1.7.zip)
en: - Sometimes, some password field are forbidden to paste into. For time like this, I use this AppleScript made tool: [ForcePaste](http://yannesposito.com/Scratch/files/forcePaste.app.zip).
en: - On my Linux Box: I use the script [ypassword](http://github.com/yogsototh/getpass)
en: - On my iPhone: I use the [YPassword app](http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=436268354&mt=8)
en: - On any other computer:
en: - [Cappuccino Made YPassword](http://yannesposito.com/Scratch/en/softwares/ypassword/web/) Web application
en: - [jQuery Made YPassword](http://yannesposito.com/Scratch/en/softwares/ypassword/iphoneweb/) Web application
fr: - Sur mon Mac :
fr: - J'utilise le widget [YPassword](http://yannesposito.com/Scratch/files/YPassword-1.7.zip)
fr: - Parfois, certains champs de mots passe interdisent la copie. Dans ce cas, j'utilise un petit utilitaire en AppleScript : [ForcePaste](http://yannesposito.com/Scratch/files/forcePaste.app.zip).
fr: - Sous mon Linux : J'utilise le script [ypassword](http://github.com/yogsototh/getpass)
fr: - Sur mon iPhone : J'utilise l'application [YPassword](http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=436268354&mt=8)
fr: - Sur tous les autres ordinateurs :
fr: - L'application Web Cappuccino [YPassword](http://yannesposito.com/Scratch/en/softwares/ypassword/web/)
fr: - L'application Web jQuery [YPassword](http://yannesposito.com/Scratch/en/softwares/ypassword/iphoneweb/)
en: My password are at a copy/paste on all environment I use. I have some services for which I have password of 40 characters.
en: Now I use 10 character for most of my passwords.
en: Further more using shorter password make it even harder for an attaquer to retrieve my master password.
fr: Quelquesoit mon environnement de travail, tous mes mots de passes sont à un copier/coller.
fr: Pour certain services, j'utilise des mots de passe de 40 caractères.
fr: Actuellement j'utilise plutôt des mots de passes de 10 caractères.
fr: Avec des mots de passes plus petit, il est encore plus difficile pour un attaquant de retrouver mon mot de passe principal.
en: I would be happy to hear your thoughts on using this methodology.
fr: Je serai heureux de savoir ce que vous pensez de cette méthode. Alors n'hésitez pas à laisser un commentaire ou à m'envoyer un mail.