Comment utiliser OPIE pour obtenir des mots de passe à usage unique pour FreeBSD 10.1

introduction

SSH est le moyen le plus répandu pour se connecter à un serveur à distance. C’est un protocole cryptographique qui protège votre mot de passe contre les attaques d’interception et d’interrogation.

Vous devez cependant garder à l’esprit que SSH protège vos données uniquement pendant leur transfert. Les attaquants peuvent découvrir votre mot de passe SSH par d’autres moyens, par exemple en utilisant des enregistreurs de frappe ou des caméras placées de manière stratégique.

Tant que vous utilisez un ordinateur de confiance (par exemple, un ordinateur qui vous appartient ou qui appartient à votre entreprise) et que vous le faites depuis un lieu sûr, vous n’avez pas à vous soucier de telles attaques. Cependant, vous devrez parfois utiliser un ordinateur public. Pour protéger vos mots de passe dans de tels scénarios, FreeBSD est livré avec une fonctionnalité de sécurité appelée Mots de passe à usage unique ou OPIE.

Dans ce tutoriel, vous apprendrez à générer et à utiliser des mots de passe à utilisation unique pour vous connecter à votre serveur FreeBSD distant. Vous pouvez prégénérer un ou plusieurs mots de passe à usage unique lorsque vous êtes dans un emplacement sûr, puis les enregistrer pour une utilisation ultérieure lorsque vous accédez à votre serveur depuis un emplacement moins sécurisé. De cette manière, même si votre mot de passe à usage unique est enregistré, il ne sera jamais utile à un attaquant.

Conditions préalables

Pour suivre ce tutoriel, vous aurez besoin de:

  • Un serveur FreeBSD 10.1 accessible via SSH

  • Un utilisateur autorisé à passer à * root *; l’utilisateur par défaut * freebsd * sur DigitalOcean va bien

Étape 1 - Créer un nouvel utilisateur OPIE

Pour vous assurer que votre serveur distant n’est pas verrouillé, il est judicieux de créer un utilisateur distinct à utiliser avec OPIE.

Passez à * root * en tapant:

sudo su

Pour créer un nouvel utilisateur que vous souhaitez utiliser avec vos mots de passe à usage unique, tapez:

adduser

Vous serez invité à entrer divers détails sur l’utilisateur. Laissez le nom d’utilisateur être * sammy *. Lorsque le mot de passe vous est demandé, assurez-vous de saisir un mot de passe fort. Pour toutes les autres invites, vous pouvez simplement appuyer sur + ENTER + pour choisir la valeur par défaut.

InteractiveUsername:
Full name:
Uid (Leave empty for default):
Login group [sammy]:
Login group is sammy. Invite sammy into other groups? []:
Login class [default]:
Shell (sh csh tcsh zsh nologin) [sh]:
Home directory [/home/sammy]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]:
Use an empty password? (yes/no) [no]:
Use a random password? (yes/no) [no]:
Enter password:
Enter password again:
Lock out the account after creation? [no]:
Username   : sammy
Password   : ****
Full Name  : My Test User
Uid        : 1001
Class      :
Groups     : sammy
Home       : /home/sammy
Shell      : /usr/local/bin/zsh
Locked     : no
OK? (yes/no):
adduser: INFO: Successfully added (sammy) to the user database.
Add another user? (yes/no):
Goodbye!

Entrez + yes pour confirmer les détails. Lorsque vous êtes invité à ajouter un autre utilisateur, tapez` + no + pour quitter + adduser`.

Vous pouvez maintenant revenir à votre utilisateur d’origine, l’utilisateur par défaut * freebsd * ou votre utilisateur sudo habituel:

exit

À ce stade, vous devez être connecté à votre serveur avec votre utilisateur sudo non-OPIE.

Étape 2 - Connectez-vous en tant que nouvel utilisateur OPIE

Depuis votre session de terminal actuelle, utilisez + ssh + pour vous connecter en tant que * sammy *, l’utilisateur OPIE.

ssh @localhost

Ceci est important, car la configuration OPIE ne peut être effectuée qu’à partir d’un terminal sécurisé. Si vous utilisez un protocole non sécurisé, tel que + rsh + ou + telnet +, OPIE se plaindra.

Étape 3 - Activer OPIE pour le nouvel utilisateur

Attention

Pour ajouter un utilisateur au système d’authentification OPIE, utilisez la commande + opiepasswd +. L’option + -c + indique à la commande que vous utilisez un ordinateur approuvé et que vous vous trouvez dans un endroit sûr.

opiepasswd -c

Lorsque vous êtes invité à entrer une phrase secrète secrète, entrez-en une d’au moins dix caractères. Cette phrase de passe ne doit pas être identique au mot de passe SSH de l’utilisateur. Vous aurez besoin de cette phrase secrète plus tard pour générer les mots de passe à usage unique.

La sortie complète de la commande ressemblera à ceci:

InteractiveAdding sammy:
Only use this method from the console; NEVER from remote. If you are using
telnet, xterm, or a dial-in, type ^C now or exit with no password.
Then run opiepasswd without the -c parameter.
Using MD5 to compute responses.
Enter new secret pass phrase:
Again new secret pass phrase:

Vous recevrez une nouvelle graine OPIE et une phrase de passe aléatoire:

OutputID  OTP key is 499

Dans cette sortie, * sammy * est l’utilisateur, * 499 * est le compte d’alphabetisation_ et * si5509 * est le seed.

Maintenant que * sammy * a été ajouté au système d’authentification OPIE, vous ne pouvez plus utiliser le mot de passe SSH pour vous connecter. Ouvrez un nouveau terminal sur votre machine locale et tapez:

ssh sammy@

Vous verrez une invite qui ressemble à ceci:

Promptotp-md5 498 zi5509 ext
Password:

Vous devez maintenant entrer un mot de passe à usage unique. Comme nous n’avons encore généré aucun mot de passe à usage unique, vous ne pourrez pas vous connecter pour le moment. Fermez le terminal et revenez à votre terminal précédent, où vous êtes connecté en tant que * sammy *.

Étape 4 - Créez un mot de passe à usage unique

Lorsqu’un utilisateur est ajouté au système d’authentification OPIE, un numéro de compte d’itérations commençant à 499 et une graine aléatoire sont associés à l’utilisateur. Vous devez connaître ces valeurs pour générer un mot de passe à usage unique.

Attention

Si vous êtes déjà connecté en tant que * sammy *, ce que vous devriez être à ce stade, vous pouvez déterminer ces valeurs à l’aide de la commande + opieinfo +.

opieinfo

Sa sortie contiendra deux valeurs. Le premier est le numéro de séquence et le second est la graine.

Output498 zi5509

Étiquette de note

Transmettez ces valeurs à la commande + opiekey + pour générer votre mot de passe à usage unique. N’oubliez pas que, tout comme + opiepasswd +, + opiekey + devrait également être exécuté uniquement à partir d’un ordinateur de confiance.

opiekey

Alternativement, vous pouvez taper:

opiekey `opieinfo`

Vous serez invité à entrer la phrase de passe pour l’utilisateur OPIE. Tapez la phrase de passe que vous avez choisie à l’étape précédente. Le résultat de cette commande est le suivant:

InteractiveUsing the MD5 algorithm to compute response.
Reminder: Don't use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:

La dernière ligne contenant six mots courts est votre mot de passe à usage unique.

Ouvrez un nouveau terminal pour essayer de vous reconnecter:

ssh sammy@

Votre invite sera toujours la même:

Promptotp-md5  ext
Password:

Notez que les nombres que vous voyez dans cette invite correspondent à la sortie de + opieinfo + et aux paramètres que vous avez passés à + ​​opiekey +.

Vous pouvez maintenant coller votre phrase secrète ou la saisir manuellement. Avant de commencer à saisir le mot de passe long, pour éviter les erreurs, appuyez sur + ENTER. Votre invite changera et vous pourrez voir le mot de passe que vous entrez:

Promptotp-md5 498 zi5509 ext
Password [echo on]:

Tapez votre mot de passe à usage unique maintenant, et vous pourrez vous connecter à votre serveur en tant que * sammy *.

Terminez la session SSH en tapant + exit + ou en fermant le terminal.

Ouvrez un autre terminal et essayez d’établir une nouvelle connexion:

ssh sammy@

Cette fois, l’invite sera légèrement différente.

Promptotp-md5  zi5509 ext
Password:

Comme vous pouvez le constater, le numéro de séquence a changé. il a été décrémenté par un. Vous ne pourrez plus vous connecter avant de générer un nouveau mot de passe à usage unique en utilisant + opiekey + avec ces nouvelles valeurs. En d’autres termes, vous devrez recommencer le processus décrit à * l’étape 4 * de ce didacticiel.

Étape 5 - Créez plusieurs mots de passe à usage unique

Si vous savez que vous ne pourrez pas atteindre un ordinateur de confiance avant quelques jours, vous aurez peut-être besoin de plusieurs mots de passe à usage unique pour pouvoir accéder à votre serveur plusieurs fois. Vous pouvez spécifier le nombre de mots de passe à usage unique que vous souhaitez en exécutant + opiekey + avec l’option + -n +. Par exemple, pour générer trois mots de passe à usage unique, tapez:

opiekey  `opieinfo`

Note

La sortie contiendra trois mots de passe, ainsi que leurs numéros de séquence:

InteractiveUsing the MD5 algorithm to compute response.
Reminder: Do not use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:

Les mots de passe à usage unique peuvent également être générés sous la forme de nombres hexadécimaux à l’aide de l’option + -x +:

opiekey  -n 3 `opieinfo`

Bien sûr, les mots de passe auront l’air moins intelligibles maintenant:

InteractiveUsing the MD5 algorithm to compute response.
Reminder: Do not use opiekey from telnet or dial-in sessions.
Enter secret pass phrase:

Vous êtes maintenant censé les écrire sur un papier et les emporter avec vous en voyage. Lors de votre prochaine connexion, utilisez le document pour rechercher le mot de passe associé au numéro de séquence indiqué dans l’invite SSH, puis saisissez-le. Après avoir utilisé un mot de passe, vous voudrez peut-être le supprimer. Il va sans dire que vous devez vous assurer que ce document ne se retrouve pas entre de mauvaises mains.

Lorsque vous avez utilisé tous les mots de passe sur le papier, répétez simplement cette étape pour générer plus de mots de passe. Cependant, si vous utilisez tous les 498 mots de passe et que votre numéro de séquence devient zéro, vous devrez appeler à nouveau + opiepasswd -c +. Cela réinitialise la graine aléatoire et le numéro de séquence.

Conclusion

Dans une situation réelle, vous devez au préalable préparer un nombre approprié de mots de passe depuis un emplacement sécurisé, les écrire sur papier et les utiliser un par un lorsque vous devez vous connecter depuis un emplacement non sécurisé. Gardez le papier en sécurité!

Dans ce tutoriel, vous avez appris à utiliser le système d’authentification OPIE pour vous connecter à votre serveur FreeBSD distant de manière sécurisée à partir de terminaux sur des ordinateurs non fiables. Vous avez appris à générer des mots de passe à usage unique et à les utiliser chaque fois que vous devez vous connecter. Cette fonctionnalité est particulièrement utile pour les personnes qui sont constamment en déplacement et qui sont obligées d’utiliser des ordinateurs et des réseaux publics.