Authentification par mot de passe à usage unique

Ce document est inspiré des pages web de l'INRIA


Vous êtes (allez être) confrontés à une demande d'authentification skey. Ce document tente une approche pratique par réponse aux questions fréquentes. Les solutions présentées sont souvent dépendantes des choix de configuration de nos divers outils. Soyez ouverts à tout comportement différencié d'une application exécutée sur un autre site.

Table des matières


Introduction 

Le service d'authentification skey permet de s'authentifié sur le serveur SSH de l'ISC en saisissant un mot de passe 'jetable', particulierement adapté lors de déplacements où l'on ne peut pas se permettre de faire suivre des documents precieux commes ses clefs RSA ou de saisir un mot de passe ou une phrase 'secret' sur un poste douteux.

Il suppose la configuration de plusieurs éléments:

  • Des applications de connexion (ssh, sftp, scp) modifiées pour négocier un challenge skey, configurées par l'administrateur système.

  • Un outil d'initialisation skeyinit, mis à disposition par l'administrateur système sur le serveur sécurisé.

  • Des outils de génération de mot de passe à usage unique (One Time Password) opiekey, winkey ou java mis à disposition par l'administrateur système.

Chaque utilisateur initialise son authentification skey par skeyinit en se connectant par ssh depuis une machine du réseau interne de l'ISC. On continue à présenter le password Unix de la base de compte du mail pour ces connexions.

A la différence avec l'authentification Unix qui se réalise en une seule étape (entrée d'un password secret au prompt Password:), skey suppose une opération de génération (avec une calculette logiciel winkey, opiekey ou Java) préliminaire.

La génération consiste en la production d'un One Time Password (OTP) à partir des deux éléments (séquence et semence) présentés par le prompt skey et la phrase 'secret' de l'utilisateur. Les trois éléments sont saisis puis combinés dans la calculette logicielle qui rend un résultat: l'OTP que l'utilisateur doit saisir comme mot de passe.


Questions Fréquentes 

Nous avons isolé quelques questions courantes que tout utilisateur peut se poser, confronté à skey.

Comment initialiser un password skey ?

Il vous faut:

  • Etablir une connection depuis un client interne sur le serveur ssh.isc.cnrs.fr en utilisant l'identifiant et le mot de passe de votre compte mail,

  • Exécuter une commande skeyinit :

    meriadoc:~$ skeyinit

    Le texte d'avertissement suivant apparait :

    Reminder - Only use this method if you are directly connected
    or have an encrypted channel. If you are using telnet,
    hit return now and use skeyinit -s.

    Suivi du prompt :

    Password:

    Vous demandant de saisir votre mot de passe de votre compte mail.
    Attention, contrairement aux saisies classiques de mot de passe, ici le texte apparaitra en clair à l'écran.

    Le logiciel d'initialisation vous prévient maintenant qu'il utilisera le hachage MD5 pour votre identifiant

    [Adding maurin-test with md5]

    Et demande la phrase 'secret' qui permettra de calculer les OTP:

    Enter new secret passphrase:
    Again secret passphrase:

    Si l'opération se déroule normalement, l'initialisation se termine maintenant en présentant le numéro de séquence (100) et la semence (suite d'une dizaine de caractères alphanumériques) qui permettent de calculer un OTP correspondant. A chaque nouvelle connection le numéro de séquence sera décrémenté d'une unité ce qui induit un OTP différent. La semence elle sera constante jusqu'à l'exécution ultérieure d'un nouveau skeyinit.

    ID maurin-test skey is otp-md5 100 meri09476
    Next login password: MYTH SAC CHIN ON SHIM MARY
  • L'opération terminée, vous pouvez tester une connection avec OTP.

Encore une fois : Merci de prendre vos précautions et de vous assurer que personne ne puisse lire sur votre écran pendant l'initialisation. Isolez-vous dans votre bureau et fermez votre session l'opération d'initialisation terminée !

En quoi skey est il préférable au password Unix?

Avec skey, votre phrase 'secret' (élément que vous êtes seul à connaître) n'est pas détectable sur le réseau car une fois l'initialisation effectué il n'y transite plus. Il n'est donné qu'à une application locale permettant de calculer le OTP.

Ce qui est effectivement transmis pour l'authentification est un password non rejouable (OTP), son interception ne permet pas de le réutiliser.

Bien sûr si l'on ne prend pas les précautions minimales concernant la complexité de la la phrase 'secret' ou si l'on n'utilise pas des machines de confiance pour le calcul des OTP, votre compte sera alors aussi fragile qu'auparavant.

Puis-je me générer des OTP d'avance ? A distance?

Vous pouvez générer un nombre défini d' OTP d'avance, à partir d'une séquence, une semence et l'entrée de votre phrase 'secret'. En effet vous connaissez le dernier numéro de séquence en vous connectant par OTP sur le serveur et vous savez que celui-ci sera décrémenté de un à chaque nouvelle connection reussie. De plus la semence comme la phrase 'secret' ne changent pas si vous n'avez pas refait le processus d'initialisation.

Il est fortement déconseillé de l'utiliser sur une connexion distante pour le calcul de ces mots de passe car vous risquez une interception de la phrase 'secret' sur le réseau. Vous êtes invité à exécuter localement une calculatrice. Si votre système ne dispose pas de calculatrice sûre, la calculatrice java est recommandée, à condition de l'utiliser à partir du site web de l'ISC. Dans tous les cas, le système ou s'effectue la saisie doit être considéré de confiance.

Attention à ne pas générer trop d'OTP d'avance ! Vous réalisez que vous venez de produire (et transportez) de quoi se connecter sans connaitre de password. Bien sûr, qui tomberait sur cette liste devrait savoir à quelle machine elle s'adresse, mais quelqu'un d'avisé saura retrouver trace de vos précédentes sessions.

Attention donc à:

  • Ne pas en générer trop d'avance

    Pour que votre liste soit le plus rapidement obsolète, si vous craigniez qu'on l'ai lue à votre insu et que vous ne sachiez ou ne pouviez pas rapidement réinitialiser votre phrase 'secret' en utilisant skeyinit.

  • Choisir une itération la plus grande possible pour les mêmes raisons.

Aurais-je à mémoriser plusieurs mots de passe ?

Vous aurez à connaître au moins deux mots de passe:

  • votre mot de passe du compte mail classique pour vos connexions depuis des postes internes,

  • votre mot de phrase 'secret' skey que vous pouvez (re)utiliser à chaque initialisations, tant que vous l'avez saisie sur des systèmes de confiance.

Quand puis-je utiliser mon mot de passe Unix? Mon mot de passe Skey?

Nos procédures de connexion reconnaissent automatiquement en fonction de la source l'émettant et vous présentent respectivement une invite classique d'entrée de mot de passe Unix depuis des connections internes ou vous averti de l'impossibilité de vous connecter sans OTP ou échange de clef.

En interne le prompt sera en général :

Password:

Une demande d'authentification par skey aura pour forme :

otp-md5 Sequence Seed
S/Key Password:

Comment éviter skey depuis une connexion distante?

Pour éviter une connection par skey, vous devez utiliser l'authentification par échange de clefs publique. Hors du périmètre de l'ISC seul ces 2 types d'authentification sont autorisées sur le serveur SSH. Si vous n'avez pas initialisé le système à échange de clefs publique, vous devez utiliser skey pour vous connecter.

Comment fais-je pour ma première connexion?

En interne, le serveur SSH autorise les connections classiques avec l'identifiant et le mot de passe de votre compte mail. Vous pouvez être surpris par un message d'avertissement de votre client vous demandant si vous voulez bien vous connecter au serveur ssh.isc.cnrs.fr identifié par la signature : 

RSA key fingerprint 5a:80:3c:21:61:5a:9d:2a:00:6d:c1:94:0a:5d:c8:99

Il sagit une caractérisque non reproductible du serveur. Si vous ne retrouvez pas cette signature, rien ne vous assure que vous vous connectez au mot serveur. Dans ce cas, ne poursuivez pas la connection et prennez contact avec l'informatique de l'ISC.

Comment forcer l'authentification Skey?

Le serveur reconnaîtra une demande de connection par skey si le login qui lui est transmis est suffixé par :skey quelque soit la source de la connection. Cette fonctionnalité vous permet en particulier de tester si vous avez bien effectué la procédure d'initialisation skeyinit et si vous utilisez correctement votre calculatrice

Comment disposer d'une calculete skey à l'extérieur?

Par le web si vous disposez d'une machine virtuelle Java sur un poste de confiance en allant sur l'adresse http://www.isc.cnrs.fr/informatique/ssh/OTP-Java.



Lexique 

  • Séquence (Ou Itération)

    Compteur décrémenté à chaque authentification, d'une valeur intiale choisie lors d'un skeyinit. La fonction d'encryptage de votre passwd secret est exécutée "Sequence" fois pour arriver à l'OTP produit.

  • OTP

    Pour One Time Password. Est une suite de 6 mots produite par d'une calculatrice OTP à partir d'un triplet séquence, semence et du phrase 'secret' de l'utilisateur.

  • Phrase 'secret'

    Votre clef skey que vous êtes seul à connaître et que vous donnez à combiner avec une semence et une séquence. A entrer à toute occurence Secret Password:. Ce password doît différer de votre password Unix classique. Nos versions d'outils imposent une longueur minimale et des caractères spéciaux.

  • Semence (Ou Seed)

    Chaîne de caractères initialisée lors de la commande skeyinit, invariable entre deux skeyinit.

  • connection non fiable

    Toute connexion en provenance de l'extérieur, d'une autre machine locale ou d'une application dont l'origine peut être extérieure (Exemple: su dans un shell ouvert par rlogin/telnet depuis une connexion distante.)

  • système sûr ou de confiance

    En général, des systèmes surveillés comme ceux du réseau interne de l'ISC, votre portable ou votre poste à l'université si vous ne les partagez pas avec des tiers. En tout état de cause, évitez les ordinateurs de cybercafé, de salle informatique commune universitaire, de centre de calcul ou les connections distants... etc.


Institut des Sciences Cognitives UMR 5015 CNRS UCB Lyon 1
67, boulevard Pinel 69675 BRON cedex

Tél: 04 37 91 12 16 Fax: 04 37 91 12 10 Mail: web@isc.cnrs.fr

Accueil ISC Informatique SSH