Criptografía | Java
La arquitectura de criptografía de Java es un marco para acceder y desarrollar la funcionalidad criptográfica para la plataforma Java.
Incluye API para una gran variedad de servicios criptográficos, incluidos los siguientes:
- Algoritmos de resumen de mensajes
- Algoritmos de firma digital
- Cifrado simétrico masivo y de flujo
- Cifrado asimétrico
- Cifrado basado en contraseña (PBE)
- Criptografía de curva elíptica (ECC)
- Algoritmos de acuerdos clave
- Generadores de claves
- Códigos de autenticación de mensajes (MAC)
- Generadores de números aleatorios seguros
Por razones históricas (control de exportación), las API de criptografía se organizan en dos paquetes distintos:
Los paquetes java.security y java.security.* contienen clases que no están sujetas a controles de exportación (como Signature y MessageDigest)
El paquete javax.crypto contiene clases que están sujetas a controles de exportación (como Cipher y KeyAgreement)
Las interfaces criptográficas están basadas en proveedores, lo que permite implementaciones criptográficas múltiples e interoperables. Algunos proveedores pueden realizar operaciones criptográficas en software; otros pueden realizar las operaciones en un token de hardware (por ejemplo, en un dispositivo de tarjeta inteligente o en un acelerador criptográfico de hardware). Los proveedores que implementan servicios de exportación controlada deben estar firmados digitalmente por un certificado emitido por la Autoridad de certificación de Oracle JCE.
La plataforma Java incluye proveedores integrados para muchos de los algoritmos criptográficos más utilizados, incluidos los algoritmos de firma RSA, DSA y ECDSA, el algoritmo de cifrado AES, los algoritmos de resumen de mensajes SHA-2 y Diffie-Hellman (DH) y algoritmos de acuerdo clave de curva elíptica Diffie-Hellman (ECDH). La mayoría de los proveedores integrados implementan algoritmos criptográficos en código Java.
La plataforma Java también incluye un proveedor integrado que actúa como puente a un token PKCS # 11 (v2.x) nativo. Este proveedor, llamado SunPKCS11, permite que las aplicaciones Java accedan sin problemas a los servicios criptográficos ubicados en tokens que cumplen con PKCS # 11.
En Windows, la plataforma Java incluye un proveedor integrado que actúa como puente a la Microsoft CryptoAPI nativa. Este proveedor, llamado SunMSCAPI, permite que las aplicaciones Java accedan sin problemas a los servicios criptográficos en Windows a través de CryptoAPI.
Comentarios
Publicar un comentario