Authentification par clé USB : pam_usb

Posté par  . Modéré par Nÿco.
Étiquettes :
1
23
jan.
2004
Linux
pam_usb est un module PAM qui permet d'utiliser une clé USB comme une véritable clé pour s'authentifier sur sa machine.

Son fonctionnement est simple : à l'aide de l'utilitaire usbadm (qui est fourni avec), il est possible de générer et de stocker un couple de clés DSA sur sa clé USB et sur la machine.
Lors du login, la clé est vérifiée et l'accès est autorisé ou refusé, en fonction du résultat du challenge entre la clé privée et celle publique.

Il permet ainsi de pouvoir s'authentifier sur n'importe quel logiciel utilisant PAM (entre autres GDM/KDM, login, xscreensaver, etc) avec sa propre clé USB.

Pour plus de sécurité, il permet de chiffrer la clé privée avec un algorithme symétrique (blowfish, 3des, etc), et il supporte une access list de numéros de série pour empêcher l'accès aux clés inconnues.

La dernière version (0.2_rc2) supporte aussi l'authentification par disquette ou CDROM.

Aller plus loin

  • # Re: Authentification par clé USB: pam_usb

    Posté par  (site web personnel) . Évalué à 6.

    Juste pour info, je developpe avec un copain un OS pour carte a puce a contact et sans-contact (comme Navigo): www.jayacard.org

    Le code de l'OS est telechargeable dans des cartes de type flash (AVR) bien que le portage en lui-meme ne soit pas fini.

    Il existe deja des modules PAM pour authentification par carte a puce, donc bientot, vous pourrez vous authentifier aupres de votre OS opensource avec un OS open source.
  • # Intéressant

    Posté par  (site web personnel) . Évalué à 2.

    Même si c'est peu utilisé actuellement, c'est une technique intéressante, et promise à un développement certain, notamment pour les nomades faisant des accès distants sécurisés.
    Le problème suivant est souvent de sécuriser les données de la clé USB ou de la disquette ou que sais-je. Un cheval de troie peut faire mal en la matière.
    Anyway... keep on the good work ;-)
    • [^] # Re: Intéressant

      Posté par  (site web personnel) . Évalué à 1.

      C'est vrai que c'est vachement pratique pour trimbaler ses clés ssh avec soi ;).
      Mais au vu, de la baisse des prix des clés USB (surtout 16Mo < 30€), ca se répand comme des petits pains tellement c'est utile.
      Bon, pour les échanges de gros fichiers, mieux vaut choisir un HD externe portable, les clés USB de 128Mo c'est encore très cher et pas assez gros.
      • [^] # Re: Intéressant

        Posté par  . Évalué à 1.

        Heu, j'ai acheté une clé usb 1.0 128 Mo en juin dernier pour 33 euros et c'était pas le premier prix.
        A moins que la mémoire usb 1.0 ne se fait plus, ça a encore dû baisser, non ?
      • [^] # Re: Intéressant

        Posté par  . Évalué à 3.

        (surtout 16Mo < 30€) [...] les clés USB de 128Mo c'est encore très cher et pas assez gros.

        Tu ne dois pas regarder les bons magasins, 128 Mo ça se trouvait pour 32-39 € fin décembre. Quant aux clés 16 Mo, je me demande si ça se vend encore.
        Tu auras une idée de prix ici par exemple : http://www.monsieurprix.com/hardwareprix/140195.html(...) .
    • [^] # Re: Intéressant

      Posté par  (site web personnel) . Évalué à 1.

      Il suffit de chiffrer le support usb avec la crypto api :
      http://www.andesi.org/article.php?id=crypto-home(...)
    • [^] # Re: Intéressant

      Posté par  . Évalué à 4.

      Le problème suivant est souvent de sécuriser les données de la clé USB

      C'est la qu'interviennent d'autres tokens USB, spécifiques crypto, qui font eux memes les opérations de chiffrement, donc qui gardent la clé privée, et ne la filent pas a l'OS.

      Ca permet d'avoir un niveau supplémentaire de sécurité, puisque la clé privée ne sort plus du token USB, mais....... mais j'ai trouvé de support Linux / BSD pour aucun des tokens du marché, et vu le prix de ces trucs (et le fait qu'ils font QUE ca), ca se limite au marché pro....
      • [^] # Re: Intéressant

        Posté par  (site web personnel) . Évalué à 2.

        A priori, les eToken d'Aladdin semble beneficier d'un support Linux mais je ne sais pas exactement dans quelle mesure.

        Sinon, pour rendre ce type d'authentification vraiment populaire, à mon avis, la bonne idée serait de se servire de quelque chose que tout le monde (ou presque) possède et qui donne déjà une impression de sécurité (ou du moins dans laquelle les gens on confiance : la bonne vieille carte bancaire.

        Une auhtentification par CB catapulterait n'import quel utilisateur à une échelle supérieur d'authentification asseza rapidement, il possède déjà la clef...

        En plus, il ne la laisserai pas trainer partout comme certain le font avec des mots de passe, des token ou autre badge et carte magnetique.
        • [^] # Re: Intéressant

          Posté par  . Évalué à 1.

          Tiens je me demande si une yes-card fonctionnerait :-/
          • [^] # Re: Intéressant

            Posté par  . Évalué à 1.

            Oui.

            La seule chose que n'a pas la yescard c'est les clés DES de la banque, or même si on monte un shéma avec une carte CB, je doute qu'il y ai une banque qui file les clés DES pour les mettre dans Linux... mwawawa...

            Donc la yescard ferait le même boulot.... :)
        • [^] # Re: Intéressant

          Posté par  . Évalué à 1.

          NON !

          la CB B0' (française) a une SDA (Statique Data Authent). Donc clonable (cf yescard).
          Le futur, en EMV (International, enfin américain quoi, les US attendaient juste l'expiration des brevets français ;) dispose soit d'une SDA soit d'une DDA (Dynamique D...), mais les banques ont choisi la SDA pour des raisons de couts !

          Il faut de la DDA !
        • [^] # Support Token Crypto USB sur Linux

          Posté par  (site web personnel) . Évalué à 1.

          J'ai regardé le support de Token USB de ce type sous Linux il y a pas longtemps pour un token USB Raibow.

          Le projet OpenSC/OpenCT http://www.opensc.org/(...) fournit une librairie et des outils pour utiliser ces tokens (et aussi les équivalents en carte à puces). Il y a des patchs pour utiliser un token de ce type avec SSH.

          Perso, je voudrais m'en servir pour stocker des certificats X509 de manière sûre et monter des VPN avec.

          Ces tokens USB sont bien plus sécurisés qu'un simple clé USB pour cela car il possède un "vrai" container pour gérer des certificats avec la norme PKCS#15.
      • [^] # Re: Intéressant

        Posté par  (site web personnel) . Évalué à 1.

        Cryptoflex e-gate http://www.axalto.com/infosec/cryptoflex_egate.html(...)

        8$ pour le token; 110$ pour la puce (32Ko); support via OpenSC http://www.opensc.org(...) et OpenCT (même site); ça marche bien.
    • [^] # Re: Intéressant

      Posté par  . Évalué à 1.

      clair, je trouve ca super pratique également. Faut vraiment que je m'en procure une rapidement, de plus le stockage/prix commence a devenir motivant... et aux vues des fonctionnalités qui se développent...
  • # Re: Authentification par clé USB: pam_usb

    Posté par  . Évalué à 1.

    Ben zut, mon patch pour corriger un pb de montage de CDROM n'a toujours pas été appliqué! Sans lui, le montage échoue car il est demandé en lecture écriture...
  • # Attention ! Confusions !

    Posté par  . Évalué à 2.

    Oula....

    Le joli mélange que je vois dans les commentaires du dessus...

    - Ne pas mélanger "facteur de forme" (card crédit, token USB) et le reste... la "boite"ne préjuge pas du contenu, tout comme l'"interface"
    - Les "clés" USB courantes sont en fait des "mass storag" flash, sans crypto, sans CPU
    - Axalto est le seul actuellement à vendre des vrais "clés" USB qui soient en fait des équivalents carte à puce, mais sans demander de lecteur (le lecteur, si besoin, n'est qu'un connecteur-cable)
    - les tokens Alladin/Rainbow ne sont pas secure, comme les cartes à puce AVR démocratisées grace à la yescard, pe on tape directos dedans en I²C...

    donc pour une vraie authent, il faut une carte à puce sous format token USB, et tout token USB n'est pas forcement une carte à puce....
    • [^] # Re: Attention ! Confusions !

      Posté par  . Évalué à 1.

      Et bien sur, une carte a puce (ou n'importe quoi d'equivalent) ne suffit pas pour une authentification. Il faut aussi savoir qui possede la-dite carte a puce (en gros, un mot de passe. Et mieux, un mot de passe plus un peu de biometrie)
      • [^] # Re: Attention ! Confusions !

        Posté par  . Évalué à 1.

        Autrement dit un PIN (à 6 chiffres ;), ainsi que la possibilité de générer une paire de clés symétriques...
        Plus complet, un certificat mais alors il faut une CA (Certification Authority...), or par exemple certains pays (africains) n'ont toujours pas de CA domestiques (donc pas de système bancaire basé sur les cartes à puces) en place...
    • [^] # Re: Attention ! Confusions !

      Posté par  . Évalué à 1.

      Tu peux developper sur les tokens rainbow (genre ikey2000) ?

      Pourquoi dis-tu qu'ils ne sont pas secure ?
      • [^] # Re: Attention ! Confusions !

        Posté par  . Évalué à 2.

        Les premiers tokens Rainbow/Alladin étaient "composés" d'un CPU et d'une mémoire séparée reliés en I²C... Suffisait de taper le bus I²C et hop ! Faut bien comprendre que justement le brevet de Michel Ugon (et non pas Moreno->carte à mémoire) est le SPOM : Self Programmable O? M? à savoir la mémoire est sur le même die que le CPU, d'ou impossibilité de taper un bus externe inexistant.
        Ensuite, conscient du pb, ces boites se sont tournés vers les fabriquants de cartes à puces pour acheter un peu de compétences en la matière... Si aujourd'hui ils ont des produits plus secure (j'ignore le statut de leur gammme actuelle) c'est probablement basé sur des technos en OEM. Donc autant mater directement vers les cartes à puce USB. Axalto a pour sa part breveté le combo ISO/USB, mais le pb actuel est au niveau de la prod : pas facile d'integrer l'analogique de l'USB dans les process Flash ou EEPROM. USB 1.1 en cours, USB 2.0 toujours en beta...
      • [^] # Re: Attention ! Confusions !

        Posté par  . Évalué à 1.

        J'ajoute que ces tokens étaient basés sur du Atmel il me semble, mais des composants "general purpose". Or Atmel a aussi racheté l'activité cartes à puce de Motorola...
    • [^] # Re: Attention ! Confusions !

      Posté par  . Évalué à 1.

      Pour info, il y a au moins Rainbow qui a des tokens "bien" (avec du matos crypto et une "carte a puce" dedans), qui sont censes etre geres par opensc, mais opensc marche pas (encore ?) avec les cles USB sous FreeBSD, alors je retesterai plus tard sous un Linux :-)

      Mais effectivement, ca ne concerne pas toute leur gamme.
      • [^] # Re: Attention ! Confusions !

        Posté par  . Évalué à 1.

        C'est vrai....
        ... je ne dois pas aimer rainbow...
        ... leur bizness c'était les dongles anti-copie, je dois être un pirate dans l'âme...
        ... alladin eux au moins ils m'ont offert des bonbons au salon cartes, pas rainbow....
  • # apres le login ...

    Posté par  . Évalué à 1.

    Un truc qui serait vraiment cool, ce serait ce qui existe chez SUN :
    Quand tu debranches le token (a chaud, sans prevenir) il enregistre ta session dans un coin du reseau, et te la restitue telle quelle quand tu reintroduis ton token, ou que tu sois.

    Quelqu'un a deja vu passer ce genre de choses ?

    Dans un premier temps, le fait que debrancher le token a chaud PUISSE delogger serait pas mal (PUISSE : on peut choisir !)
    • [^] # Re: apres le login ...

      Posté par  . Évalué à 1.

      Ptet qu'a grand coup de hotplug ca doit pouvoir se faire..
    • [^] # Re: apres le login ...

      Posté par  . Évalué à 1.

      Windows le fait avec des cartes USB, login sur token/card, tu saisis ton PIN et hop ! Sauf que la session est localisée il me semble (enfin du windows quoi).
    • [^] # Re: apres le login ...

      Posté par  . Évalué à 3.

      > le fait que debrancher le token a chaud PUISSE delogger serait pas mal

      Ou mieux :
      - Insertion de la clef/carte => Login
      - Retrait de la clef => Vérouillage session
      - Clef absente pendant "durée X" => Fermeture session
      - Réinsertion de la clef => Dévérouillage
      - Clef identique dans un autre PC => Transfert de session

      Utile pour les pauses cafés ! ;-)

      Par conter je vois pas comment transférer une session d'un PC à l'autre si un travail local est démarré (OOo lancé sur machine A avec fichier ouvert à tranférer "tel que" sur machine B, c'est possible ?!). Mais bon, je ne suis qu'un petit Windowsien qui n'apprend pas vite... ;-)
    • [^] # Re: apres le login ...

      Posté par  (site web personnel) . Évalué à 1.

      > Dans un premier temps, le fait que debrancher le token a chaud
      > PUISSE delogger serait pas mal

      Disons que tu peut le faire avec ta prise de courant.
      Quand tu debranche, tu est délogué.
      Avec une batterie, c'est bon, tu peut avoir le choix :)

      Ok, je sais, pom pom ===>[]
    • [^] # Re: apres le login ...

      Posté par  . Évalué à 1.

      En fait je suis en train de travailler sur quelque chose de similaire:

      - tu retires la clé USB, un screensaver (genre xscreensaver) se met en place, de même pour xlock, et la machine reste vérouillée
      - tu re-pluggues la clé USB, et le screensaver/xlock se dévérouillent

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.