Attualmente sto costruendo un sistema (PHP Web Application Framework) che crea una coppia di chiavi RSA per un utente che consente ad altri utenti di inviare informazioni sicure da una all'altra. La chiave pubblica non è crittografata (come previsto) e la chiave privata è crittografata con la password dell'utente. Poiché il processo di generazione iniziale di RSA è piuttosto dispendioso dal punto di vista computazionale (generazione di primi grandi), sto usando due metodi per creare i primi.
La prima è un'applet java che gira sul browser dei client, crea i numeri primi e le chiavi, fissa la chiave privata con la password e la rimanda al sistema in cui è archiviata e utilizzata in seguito.
Il secondo è di usare un'applicazione (in esecuzione sul server web come cron o su un altro server che può accedere e aggiornare l'app) che farà lo stesso come l'applet. Tuttavia, non sono ancora sicuro su come proteggere la chiave privata in modo che sia accessibile solo all'utente e non possa essere accessibile da nessun altro.
Purtroppo, questo è il punto in cui vado a sbattere contro un blocco stradale. Non sono sicuro di come proteggere i dati (generati sul server web o da un altro server), quindi (o la password degli utenti) non è direttamente o indirettamente disponibile per gli hacker, anche se hanno accesso all'intero file system e database sul server. Qualcuno ha qualche suggerimento su come qualcosa di simile potrebbe essere raggiunto?