Actualmente estoy creando un sistema (PHP Web Application Framework) que crea un par de claves RSA para que un usuario permita que otros usuarios envíen información segura de uno a otro. La clave pública no está encriptada (como se esperaba) y la clave privada se cifra con la contraseña del usuario. Como el proceso de generación de RSA inicial es bastante costoso computacionalmente (generación de primos grandes), estoy usando dos métodos para hacer los primos.
El primero es un applet de java que se ejecuta en el navegador del cliente, crea los números primos y las claves, asegura la clave privada con la contraseña y la envía al sistema donde se almacena y se usa más adelante.
El segundo es usar una aplicación (que se ejecuta en el servidor web como un cron o en otro servidor que puede acceder y actualizar la aplicación) que hará lo mismo que el applet. Sin embargo, todavía no estoy seguro de cómo proteger la clave privada, por lo que solo es accesible para el usuario y nadie más puede acceder a ella.
Lamentablemente, aquí es donde estoy golpeando un bloqueo de carretera. No estoy seguro de cómo proteger los datos (generados en el servidor web o por otro servidor), por lo que (o la contraseña del usuario) no está directa o indirectamente disponible para ningún pirata informático, incluso si tienen acceso a todo el sistema de archivos. y base de datos en el servidor. ¿Alguien tiene alguna sugerencia sobre cómo se podría lograr algo como esto?