Estoy creando una aplicación que requiere una transferencia de datos segura. En particular, el remitente tiene un archivo de datos que debe enviarse al destinatario. Se requiere que solo el receptor pueda leer los datos. También se requiere que el receptor pueda saber con seguridad que los datos provienen del remitente.
El remitente y el destinatario tienen una relación comercial a largo plazo y habrán intercambiado claves públicas. Los archivos de datos a transmitir no son pequeños.
Supongo que Bouncy Castle es una buena ruta, pero estoy abierto a otras sugerencias.
He leído toda la documentación de BC que puedo encontrar (ninguna) y mire la API y algunos ejemplos que encontré en Internet. Parece que quiero usar CMSEnvelopedDataGenerator
, pero tengo algunas preguntas específicas:
- Exactamente, ¿cómo configuro el cifrado de datos (probablemente utilizando AES)?
- Exactamente, ¿cómo configuro la doble firma (usando la clave privada del remitente y la clave pública del destinatario)?
- ¿Puedo configurarlo para que los datos estén comprimidos / comprimidos antes de ser cifrados?
- ¿Es segura y segura de usar la implementación de BC de este escenario? ¿Hay configuraciones / algoritmos / parámetros específicos que se requieren para garantizar su seguridad?
- ¿Existe una aplicación independiente de terceros disponible que puedo usar para leer / validar que la salida de BC es correcta y segura?
- ¿Qué más debería preguntar (soy un novato de criptografía)? ¿O hay una mejor manera de hacer lo que estoy buscando?
Pregunta de seguimiento Al hacer más investigaciones, encontré este article . Mis requisitos son tales que no debo ser susceptible de reenvío subrepticio. El artículo es antiguo. ¿Las diversas tecnologías "seguras" siguen sufriendo las fallas mencionadas? ¿Alguno de los productos / bibliotecas estándar proporciona una solución segura de manera estándar?