Situación
Estoy haciendo una pasantía en una empresa y actualmente estoy trabajando en una aplicación web que tiene las siguientes características:
- Esta es una aplicación privada, los usuarios solo pueden ser agregados por un administrador de la aplicación
- Los usuarios pueden agregar archivos PDF en línea
- Esos archivos se almacenan en el servidor de aplicaciones
Mi misión como pasante es la siguiente:
- Tengo que implementar una función que permita a los clientes firmar los archivos PDF utilizando esto mecanismo.
Debe ser simple para usar: un botón "Firmar" al lado del archivo y el servidor lo firma automáticamente utilizando el certificado de usuario. La idea básica es que a cada cliente se le otorgará un certificado cuando se cree su cuenta (la Autoridad de confianza sería de confianza para la aplicación). En algún momento tendré que obtener la clave privada del usuario en plaintexte para firmar el archivo en el servidor (estoy pensando en usar phpseclib biblioteca para leer certificados).
Pregunta
-
¿Debo almacenar los certificados de usuario y / o las claves privadas en el servidor? * ¿No hay una mejor manera de almacenar las claves privadas de los usuarios, como una aplicación web confiable que tenga API REST o alguna forma fácil de acceder a ella?
-
Editar: Mi situación ha evolucionado y ahora mi pregunta es como la siguiente:
- ¿Es seguro almacenar archivos .pfx o p12 en el servidor? Sé que contienen claves privadas, pero el archivo es realmente seguro (digamos que hay una contraseña de cliente para cada archivo).
Nota: Todavía soy un estudiante y no soy un experto en seguridad, por favor, dime si necesitas más información para responder.