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"?