ESUP-OTP

Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

Sommaire

Peut-on permettre à un informaticien de proximité de dépanner ponctuellement un utilisateur dans l'incapacité temporaire d'utiliser son second facteur (téléphone volé, OTP indisponible…) ?

Oui. Lorsqu'un utilisateur est bloqué, un informaticien habilité disposant des droits de gestionnaire dans esup-otp-manager peut effectuer un dépannage ponctuel, notamment :

  • en se rendant dans le menu "Manager" de l'interface d'administration ;
  • en sélectionnant l'utilisateur concerné ;
  • en générant une nouvelle série de codes de secours pour cet utilisateur (ce qui invalide automatiquement les anciens codes) ;
  • en communiquant un de ces nouveaux codes directement à l'utilisateur, par téléphone ou de vive voix, après vérification de son identité selon les usages internes.

Comment permettre aux utilisateurs de réinitialiser leur deuxième facteur de manière autonome en cas d’impossibilité de l’utiliser (vol ou perte de l’appareil servant à récupérer le code OTP, par exemple) ?

La gestion de ce type de situation est actuellement laissée à l’appréciation de chaque établissement, car les procédures de réinitialisation dépendent fortement de leur organisation interne et de leur PSSI.

Less Les approches possibles consistent à

...

→ inconvénient : dépendant d'un mail perso. Si l'utilisateur se fait usurper son mail perso, le 2nd facteur est compromis, cette procédure est compromise ; on note également que selon les recommandations de la CNIL, l'envoi d'OTP par mail ne peut être assimilé à un 2e facteur.

C - FranceConnect (délégation à tiers de confiance)

...

Bloc de code
languagejava
import java.util.*
import org.apereo.cas.interrupt.InterruptResponse

def run(principal, attributes, service, registeredService, requestContext, logger, ... args) {
    def ctx = org.apereo.cas.util.spring.ApplicationContextProvider.getApplicationContext()
    def esupOtpService = ctx.getBean("esupOtpService")
    def esupOtpUserInfos = esupOtpService.getUserInfos(principal.id)
    def esupOtpMethods = esupOtpUserInfos.get("user").get("methods").toMap().values()
    def oneMfaMethodIsActive = esupOtpMethods.stream().anyMatch { method ->
        method instanceof Map && method.get("active")
    }
    if (!oneMfaMethodIsActive && !service.id.startsWith("https://esup-otp-manager.example.org/") {
        def message = "Vous n'avez pas encore activé votre authentification renforcée avec ESUP-OTP, il serait souhaitable de le faire."
        def links = ["Application ESUP-OTP" : "https://esup-otp-manager.example.org/preferences"]
        def block = false
        def ssoEnabled = false
        return new InterruptResponse(message, links, block, ssoEnabled)
    }
    return null
}

Ce que fait ce script :

  • Il interroge le service esupOtpService pour connaître les méthodes MFA activées de l’utilisateur.

  • Si aucune méthode n’est active et que le service désiré n'est pas esup-otp-manager  :

    • il affiche un message incitant à activer le MFA ; ce message est affiché dès la première authentification (TGT), mais aussi à chaque authentification sur chaque service (ST), ce grâce au ssoEnabled valué à false.

    • il fournit un lien vers esup-otp-manager ;

    • tout en lui permettant tout de même d'accéder au service demandé, ce grâce au block valué à false.

  • Si au moins une méthode est active, aucun message n’est affiché.

💡 Cette approche est non bloquante mais pédagogique, et permet de faire évoluer progressivement la population vers l’activation du MFA.

Peut-on demander à nos utilisateurs (étudiants ou personnels) d’utiliser leur téléphone personnel comme second facteur d’authentification pour accéder à des services sécurisés de l’établissement ?

Oui, l’utilisation d’un téléphone personnel comme facteur de possession dans une authentification multifacteur (MFA) est possible, y compris dans un contexte professionnel ou universitaire, à condition de respecter certaines précautions définies par la CNIL.

La CNIL ne proscrit pas cet usage. Elle reconnaît qu’un terminal personnel comme un smartphone peut tout à fait servir de facteur de possession (ce que l’utilisateur a), en complément d’un mot de passe (ce que l’utilisateur sait).

Cependant, elle recommande :

  • de privilégier des méthodes minimisant la collecte de données personnelles : par exemple, une application PUSH ou d'OTP (comme esup-otp) ne nécessitant pas le numéro de téléphone est préférable à l’envoi de code OTP par SMS.

  • d’évaluer les impacts pour les utilisateurs : certains étudiants peuvent ne pas posséder de smartphone ou ne pas vouloir l’utiliser à des fins universitaires. Il est alors conseillé deprévoir une solution alternative, sans que celle-ci ne soit plus contraignante ou discriminante.

Quelles alternatives au téléphone personnel peut-on proposer comme second facteur pour l’authentification multifacteur (MFA) ?

Générateurs d’OTP
La génération d’un code OTP basé sur une clé secrète (fournie via le QR-code généré par esup-otp-manager) peut être effectuée à l’aide :

  • d’une application mobile comme Esup Authenticator (ou Google Authenticator) ;

  • ou de nombreuses autres solutions logicielles compatibles (extensions de navigateur, outils en ligne de commande, etc.) ;

  • ou encore des solutions (jetons) matérielles avec afficheur LCD.

Carte multi-services NFC
Utilisée comme facteur de possession via le projet esup-nfc-tag, cette carte nécessite un lecteur NFC accessible à l’utilisateur. Cette solution peut être adaptée dans les environnements déjà équipés.

Authentification WebAuthn
Basée sur des normes ouvertes (FIDO2/WebAuthn), elle permet d’utiliser :

  • un appareil compatible comme une clé USB de type Yubikey,

  • ou des solutions logicielles comme Windows Hello, Touch ID ou Face ID.
    C’est une alternative intégrée dans certains navigateurs récents.

Grille de codes à usage unique
Cette solution papier peut être proposée en dernier recours. Bien que fonctionnelle, elle est moins pratique et sécurisée que les options précédentes.

Liste de codes de secours
Techniquement valide, elle sert essentiellement de solution de secours, en cas de perte, vol ou indisponibilité du facteur principal de possession.

Faut-il déclarer la mise en place de la MFA sur CAS dans le registre des traitements RGPD ?

Oui, dans la plupart des cas, il est recommandé d'actualiser le registre des traitements lorsque la MFA est activée sur CAS, car elle modifie le processus d'authentification et peut impliquer de nouvelles données personnelles.

La connexion via CAS ne se limite pas à l'authentification : elle transmet aussi des informations personnelles (nom, prénom, mail, etc.) aux services tiers. Ce transfert constitue un traitement soumis au RGPD.

  • Si la MFA repose sur un facteur interne et discret (ex. : application OTP sans collecte de données personnelles, carte multiservice, clé USB FIDO2), une simple mention dans les mesures de sécurité du traitement existant peut suffire.
  • Si le second facteur implique des données personnelles nouvelles, comme un numéro de téléphone pour OTP par SMS ou un mail personnel, une mise à jour du registre est fortement recommandée.

Comment connaître les stats d'usage de ESUP-OTP  ?

Depuis esup-otp-manager 2.0, l'administrateur dispose d'un onglet "Statistiques" qui fournit des indicateurs sur les méthodes activées par les utilisateurs.

Image Added

  • On peut sortir des informations en faisant des requêtes sur la base MongoDB

Stats méthodes activées

Bloc de code
languagejson
db.UserPreferences.find().map(e => Object.keys(e).filter(method => e[method].active).sort().join(" ")).sort().toArray().reduce((h, actives) => { h[actives] = (h[actives] || 0) + 1; return h }, {})

Pour avoir des statistiques enrichies avec les profils des utilisateurs, vous pouvez traiter les logs ESUP-OTP par Agimus-NG.

Vous pouvez ainsi avoir des visualisations et des tableaux de bord mis à jour en temps réel.

Image Added