He estado revisando el código de varias aplicaciones internas que manejan la transmisión segura de datos con sistemas externos. Estos siguen el siguiente proceso:
- RSA cifra los datos con una clave pública de terceros
- RSA cifra nuevamente usando nuestra propia clave privada
- Transmitir datos
- descifrado de terceros mediante nuestra clave pública
- El tercero descifra nuevamente usando su propia clave privada
En este sistema, generamos nuevas claves privadas / públicas para cada tercero y todas las claves públicas se distribuyen de forma segura y luego se mantienen privadas.
No entiendo por qué cifraríamos los datos usando nuestra propia clave privada. Sospecho que la intención del diseñador era habilitar la verificación de que los datos provienen de nosotros y que esa misma persona no tenía conocimiento de firmar mensajes para implementar eso en su lugar. Desafortunadamente, esa persona ya no está cerca para que se le pregunte.
Estoy contento de que nuestros datos estén aceptablemente seguros porque los ciframos con la clave de un tercero, pero el cifrado de la clave privada no es lo suficientemente estándar como para sentir algo de incomodidad. ¿Hay algo de lo que debería preocuparme?