Skip to Content

MFA Adattivo & Risk Scoring

L’MFA tradizionale è binario: o ogni login richiede un secondo fattore, o nessuno lo richiede. Questo crea una tensione tra sicurezza (richiedere sempre MFA) e user experience (MFA aggiunge attrito). L’MFA adattivo risolve questa tensione richiedendo l’autenticazione aggiuntiva solo quando il login sembra rischioso.

Auris implementa l’MFA adattivo attraverso un motore di risk scoring che valuta ogni tentativo di autenticazione su cinque dimensioni. Quando il punteggio di rischio calcolato supera una soglia configurabile, Auris intensifica i requisiti di autenticazione — richiedendo un fattore aggiuntivo, bloccando il tentativo o notificando l’utente.

Come Funziona l’MFA Adattivo

Il sistema MFA adattivo opera come step post-autenticazione. Dopo che le credenziali primarie dell’utente sono state verificate (password, magic link, login social), il motore di risk scoring valuta il contesto del login prima di emettere i token.

L’idea chiave: un utente che accede dal suo solito dispositivo, dal suo solito IP, al suo solito orario passa senza attrito. Lo stesso utente che accede da un nuovo dispositivo in un nuovo paese alle 3 di notte riceve una challenge MFA — o viene bloccato completamente.

Il Modello di Risk Scoring a 5 Fattori

Ogni fattore contribuisce con un punteggio ponderato alla valutazione totale del rischio. I singoli punteggi vengono combinati in un punteggio finale compreso tra 0 (nessun rischio) e 100 (rischio massimo).

Fattore 1: Reputazione IP

Il motore valuta la reputazione dell’indirizzo IP sorgente.

SegnaleContributo al Rischio
IP residenziale pulito0 (baseline)
Nodo di uscita VPN noto+10 a +25
Proxy o anonymizer+15 a +30
IP data center / cloud hosting+10 a +20
IP su blocklist di abusi noti+30 a +50
Nodo di uscita Tor+25 a +40

Fattore 2: Device Trust

Il motore confronta l’impronta del dispositivo corrente con le impronte viste in precedenza per questo utente.

SegnaleContributo al Rischio
Dispositivo noto (impronta già vista)0 (baseline)
Nuovo dispositivo (impronta mai vista)+15 a +25
Calcolo impronta fallito+10

Le impronte dei dispositivi sono calcolate come hash SHA-256 delle caratteristiche del browser (user agent, risoluzione schermo, fuso orario, lingua, plugin installati).

Fattore 3: Anomalia Geografica (Viaggio Impossibile)

Il motore verifica se la posizione del login è fisicamente plausibile dati i login recenti dell’utente.

SegnaleContributo al Rischio
Stessa città dell’ultimo login0 (baseline)
Stesso paese, città diversa+5
Paese diverso, tempo di viaggio plausibile+10 a +15
Paese diverso, tempo di viaggio impossibile+30 a +50

Il viaggio impossibile viene rilevato usando la formula di Haversine per calcolare la distanza in linea d’aria tra le posizioni corrente e precedente, poi dividendo per il tempo trascorso per calcolare la velocità di viaggio richiesta. La velocità massima di viaggio predefinita è 900 km/h (velocità approssimativa di un aereo commerciale).

Il rilevamento del viaggio impossibile tiene conto dell’utilizzo VPN. Se l’IP è identificato come nodo di uscita VPN, il punteggio di anomalia geografica viene ridotto perché la posizione apparente potrebbe non riflettere la posizione reale dell’utente.

Fattore 4: Segnali Comportamentali

Il motore analizza i pattern nel comportamento di autenticazione dell’utente.

SegnaleContributo al Rischio
Login all’orario tipico dell’utente0 (baseline)
Login fuori dall’orario tipico (es. 3 AM ora locale)+5 a +15
Multipli tentativi falliti recenti (non ancora bloccato)+10 a +20
Login rapidi successivi su applicazioni diverse+5 a +10

Fattore 5: Sensibilità dell’Azione

Azioni diverse hanno livelli di rischio intrinsecamente diversi, indipendentemente dal contesto dell’utente.

AzioneContributo al Rischio
Login standard0 (baseline)
Cambio password+10
Cambio email+15
Cambio metodo MFA (aggiunta/rimozione)+20
Accesso alla console admin+15
Export dati sensibili+15

Livelli di Rischio

Il punteggio calcolato si mappa su un livello di rischio:

LivelloIntervallo Punteggio (Default)Descrizione
LOW0 - 19Login normale, nessuna azione aggiuntiva
MEDIUM20 - 39Rischio leggermente elevato, registrato per revisione
HIGH40 - 69Rischio elevato, richiesta step-up MFA
CRITICAL70 - 100Rischio molto alto, può essere bloccato o richiedere il fattore più forte

Autenticazione Step-Up

L’autenticazione step-up è il processo che richiede fattori di autenticazione aggiuntivi quando il punteggio di rischio supera una soglia. Auris tiene traccia della “forza” dell’autenticazione corrente usando due claim OIDC standard.

ACR (Authentication Context Class Reference)

Auris usa un modello ACR a livelli:

Valore ACRSignificato
urn:auris:acr:basicAutenticazione a fattore singolo (solo password)
urn:auris:acr:mfaAutenticazione multi-fattore (password + un fattore aggiuntivo)
urn:auris:acr:strongAutenticazione forte (password + fattore forte come WebAuthn)

AMR (Authentication Methods Reference)

Valore AMRSignificato
pwdPassword verificata
otpCodice TOTP verificato
smsSMS OTP verificato
hwkChiave hardware (WebAuthn/FIDO2) usata
swkChiave software (autenticatore piattaforma WebAuthn) usata
mcaMagic link (basato su email) usato
fedAutenticazione federata (login social, SAML) usata

ACR e AMR nei Claim JWT

Dopo il completamento dell’autenticazione, il token di accesso include i valori ACR e AMR raggiunti:

{ "sub": "usr_abc123", "iss": "https://auth.acme-corp.com", "aud": "your-client-id", "acr": "urn:auris:acr:mfa", "amr": ["pwd", "otp"], "exp": 1739880900 }

I resource server possono ispezionare questi claim per applicare i propri requisiti minimi di autenticazione.

Regole di Rischio Personalizzate

Oltre ai cinque fattori integrati, Auris supporta regole di rischio personalizzate — condizioni definite dall’amministratore che aggiungono o sottraggono dal punteggio di rischio.

Esempi di regole:

Ridurre il rischio per IP aziendali:

Condizione: request.ip IN 203.0.113.0/24 Aggiustamento Punteggio: -20

Aumentare il rischio per account creati di recente:

Condizione: user.createdAt > NOW - 7 giorni Aggiustamento Punteggio: +15

Il motore di condizioni supporta operatori come EQUALS, NOT_EQUALS, CONTAINS, STARTS_WITH, ENDS_WITH, IN, GREATER_THAN, LESS_THAN.

Confronto con le Policy MFA Statiche

FunzionalitàMFA StaticoMFA Adattivo
Attrito utenteOgni login richiede MFAMFA solo quando il rischio è elevato
SicurezzaCostante indipendentemente dal contestoProtezione più forte per i login rischiosi
ConfigurazioneSemplice toggle (on/off)Richiede tuning delle soglie
User experiencePrevedibile ma fastidiosoFluido in condizioni normali
Resistenza agli attacchiBuona contro password rubateMigliore contro attacchi sofisticati

Inizia con le soglie e i pesi predefiniti. Monitora la cronologia delle valutazioni di rischio per due settimane prima di effettuare aggiustamenti. Cerca falsi positivi (utenti legittimi che vengono sfidati inutilmente) e falsi negativi (login sospetti non segnalati) per guidare il tuning.

Concetti Correlati