In che modo YubiKey Challenge-Response funziona "localmente"?

8

Recentemente ho un YubiKey NEO (e un po 'deluso dal fatto che puoi avere solo due metodi di autenticazione a fattore di secondo attivato tra quelli elencati).

Nei gestori di password quelli che supportano YubiKey, Password Safe sono open-source e funzionano localmente. Può essere configurato per l'autenticazione mediante Risposta-risposta YubiKey HMAC-SHA1 . Sono confuso su come sia possibile creare un meccanismo di risposta-sfida sicuro in modo sicuro con solo due parti: (1) il mio PC locale e (2) YubiKey. ( documentazione correlata )

In effetti, qual è il vantaggio di inviare Master Password a YubiKey, ottenere la risposta e decrittografare il database usandolo? Ora, la risposta di YubiKey è la nostra password statica, che è disponibile nella memoria e in tutti i posti che può contenere la password principale.

L'hanno implementato per divertimento? o mi mancano alcuni punti?

    
posta Kousha 12.06.2015 - 01:28
fonte

4 risposte

3

Il codice sorgente della password Safe è open source, quindi sei libero di fare ciò che ho fatto: check.

Un HMAC richiede due input: la chiave e i dati. Quello che PS fa con l'ubikey è prendere i tuoi dati come dati e inviarli a UbiKey. La chiave è nello stesso UbiKey e rimane lì.

Quindi, la sequenza di eventi è la seguente:

  • Immetti la passphrase.
  • Il software invia la passphrase all'ubikey
  • UbiKey esegue un HMAC usando la passphrase come input e la chiave segreta (memorizzata internamente).
  • Il valore risultante viene rinviato all'applicazione e utilizzato per sbloccare il database.

Quindi il sistema è ancora sicuro finché i vari elementi crittografici sono sicuri: la passphrase del database REAL è il risultato dell'operazione HMAC, l'HMAC è costituito dalla chiave segreta, che rimane sul tuo dispositivo 2FA e sul tuo master password, che inserisci tramite il tuo computer.

    
risposta data 12.06.2015 - 11:32
fonte
2

Mancano alcuni punti.

Se qualcuno ruba una copia del tuo file di database di Password Safe, non sarà in grado di sbloccarlo a meno che non abbia anche il possesso fisico del tuo yubikey (anche se già sanno qual è la tua passphrase).

Ovviamente, se un utente malintenzionato ha un livello di accesso al tuo sistema in cui può leggere la memoria, sei fregato non appena sblocchi il tuo database di Password Safe, indipendentemente dal numero di yubike che possiedi.

Un vantaggio nel collegare il tuo yubikey a Password Safe è che puoi provare a fare un po 'meglio il backup del tuo file di database Password Safe sul cloud.

    
risposta data 14.06.2015 - 05:34
fonte
2

Non risolvo specificamente nessuna delle domande originali sullo scopo di Yubikey con Password Safe, ma penso che l'esperimento che ho svolto possa far luce sulla situazione.

Ho confermato che @Kousha è corretto: la risposta di Yubikey diventa semplicemente la password statica.

Verifica come descritto di seguito. (Volevo fornire il seguente codice per aiutare il poster su Password Safe on Source Forge , ma non ho un account per farlo.)

Password Risposte Yubikey sicure dalla chiave segreta

Una risposta Yubikey può essere generata in modo semplice con HMAC-SHA1 e la chiave segreta di Yubikey, ma la generazione della risposta Safe Safe Yubikey è un po 'più complicata a causa di caratteri nulli e incompatibilità del sistema operativo. (Essenzialmente, si deve inserire un byte nullo tra ogni byte originale nella sfida.) Inoltre, le sfide di Yubikey hanno analizzato . In breve, su un computer Linux, se key memorizza la chiave segreta in forma esadecimale con 40 esadecimi e message memorizza la richiesta, il seguente comando dovrebbe restituire la risposta Password Safe Yubikey:

printf $message |
  xxd -p | sed 's/../&00/g' |
  sed 's/00$//' | cut -c -63 | xxd -r -p |
  openssl dgst -sha1 -mac HMAC -macopt "hexkey:$key" -binary |
  xxd -p

Se possibile, potresti voler scrivere una Chiave Segreta temporanea su Yubikey e utilizzare una sfida diversa dalla tua vera password per la verifica: non ho familiarità con il modo in cui i computer memorizzano le variabili o altri problemi di sicurezza correlati. (Sarei felice di sapere se qualcuno ne è a conoscenza.) Potresti almeno nascondere i caratteri digitati usando stty . Il seguente script richiede la chiave segreta e la sfida senza visualizzarli, quindi restituisce la risposta di Password Hash Yubikey.

#!/usr/bin/env bash
stty -echo
printf "shared secret key (40 hexits): "
read HMACSHA1_key
if [ -z "$HMACSHA1_key" ]; then
    stty echo
    printf '\n    Empty input. Exiting.\n'
    exit 1
fi
if [ ${#HMACSHA1_key} -ne 40 ]; then
    stty echo
    printf '\n    Need exactly 40 characters. Exiting.\n'
    exit 1
fi
HMACSHA1_no_space="${HMACSHA1_key/ /}"
if [ ${#HMACSHA1_no_space} -ne 40 ]; then
    stty echo
    printf '\n    No spaces. Exiting.\n'
    exit 1
fi
HMACSHA1_key_mod_hex=$(printf "$HMACSHA1_key" | sed 's/\([0-9]\|[a-f]\|[A-F]\)//g')
if [ -n "${HMACSHA1_key_mod_hex}" ]; then
    stty echo
    printf '\n    Invalid characters: %s\n' "${HMACSHA1_key_mod_hex}"
    printf '\n    Only 0-9, a-f, A-F allowed. Exiting.\n'
    exit 1
fi
printf "\n"
printf "message/challenge: "
read HMACSHA1_value
if [ -z "$HMACSHA1_value" ]; then
    stty echo
    printf '\n    Empty input. Exiting.\n'
    exit 1
fi

printf $HMACSHA1_value |
  xxd -p | sed 's/../&00/g' |
  sed 's/00$//' | cut -c -63 | xxd -r -p |
  openssl dgst -sha1 -mac HMAC -macopt "hexkey:$HMACSHA1_key" -binary |
  xxd -p

Non posso attestare la portabilità del comando precedente e dello script precedente. Sono ridotte versioni di cose che hanno funzionato per me, almeno.

    
risposta data 20.08.2016 - 09:16
fonte
1

Fondamentalmente ciò che hai aggiunto è come una "chiave" vecchia maniera fisica per la memorizzazione della password.

Una "chiave" che nessun fabbro può duplicare.

Nel tuo modello esistente la "passphrase" era il link debole. Se l'hai involontariamente rivelato, o qualcuno ti ha fatto surf sulla spalla, o hai registrato le tue battute, o lo hai riutilizzato su un sito web incerto, un malintenzionato potrebbe entrare nel tuo archivio delle password.

Nella nuova configurazione l'attaccante deve fare tutto ciò e avere accesso alla tua chiave fisica.

    
risposta data 14.06.2015 - 06:23
fonte

Leggi altre domande sui tag