Autenticazione a chiave pubblica personalizzata

0

Sto lavorando su un sistema di gestione degli account REST su https che dovrebbe supportare entrambi gli schemi di autenticazione nome utente / password e nome utente / publickey. Cioè quando un utente registra un account, può scegliere di caricare ulteriormente la sua chiave pubblica ssh; tutte le richieste successive non richiederebbero più una password.

Non vorrei dipendere dal fatto che il server abbia un filesystem per OpenSSH per archiviare le sue chiavi - questo è il motivo per cui non posso semplicemente avere sshd in esecuzione e farlo gestire con auth.

Quindi, il piano è che il client firmi un messaggio usando la chiave privata dell'utente (cioè openssl dgst -sha256 -sign ~/.ssh/id_rsa ... ). Il server, con la chiave pubblica del client, verificherà quindi che il messaggio previsto sia firmato correttamente.

La domanda è ora, cosa firmare? Per quanto ho capito, OpenSSH utilizza un identificatore di sessione, che tra l'altro si basa sul segreto condiviso calcolato tra il client e il server.

Non voglio inventare la mia crittografia personale, quindi mi chiedevo se potevo riutilizzare la connessione https, il segreto condiviso per quello. O è già considerato "inventare la mia crittografia"?

    
posta Philip Kamenarsky 11.04.2015 - 13:19
fonte

1 risposta

0

La cosa che vuoi garantire qui è la freschezza, quindi far firmare al client qualche nonce - qualsiasi nonce, a patto che sia fresco - funzionerà. Idealmente, quella firma dovrebbe anche essere legata al canale, ma la firma e il nonce vengono trasmessi all'interno del canale crittografato, quindi forse è sufficiente.

Idealmente, però, hai ragione, firmare il segreto condiviso TLS porterebbe a termine entrambi. Non sono sicuro di quanto sia facile implementarlo.

L'utilizzo dell'autenticazione del client TLS sarebbe ancora meglio, perché TLS fa tutto questo per te. I certificati client sono la mia prima scelta, ma se sei deciso a utilizzare le chiavi SSH, l'autenticazione chiave pubblica TLS potrebbe fare la differenza.

    
risposta data 13.04.2015 - 12:19
fonte

Leggi altre domande sui tag