Cuál es mejor usar openssl o windows capi para problemas de ecnryption cuál es la lista pro y con para ambos. y si es posible escribir mi programa de cifrado en openssl y descifrarlo con capi de Windows sin problema o hay algún problema con esto.openssl versus windows capi
Respuesta
Para fines criptográficos, me resulta más fácil pensar primero en la administración de claves. Dónde se almacenan las claves, cómo se crean, quién las usa y cómo se destruirán de forma segura. En mi experiencia, la administración de claves es lo que limita la mayoría de la estructura de la aplicación.
CryptoAPI ofrece una API para acceder a las claves que se almacenan en lugares arbitrarios, a través de un controlador (un "CSP") registrado en el sistema operativo. OpenSSL puede ofrecer algo similar con la ayuda de OpenSC, pero el controlador deberá entonces soportar la API PKCS # 11. De cualquier manera, el controlador es algún tipo de DLL proporcionado por quien construyó el dispositivo de almacenamiento (suponiendo que la clave se almacena y utiliza en un dispositivo de hardware).
Si desea poder utilizar claves almacenadas en dispositivos de hardware (donde el dispositivo puede ser una tarjeta inteligente, un HSM, ... cualquier cosa que pueda hacer algo de criptografía pero se niegue a dar la clave), entonces lo hará tiene que pasar por CryptoAPI o PKCS # 11. CryptoAPI es, por naturaleza, solo para Windows, por lo que PKCS # 11 es el camino a seguir si desea que su código se ejecute potencialmente en sistemas que no sean de Windows (MacOS, Linux, Solaris ...). Si utiliza PKCS # 11, puede intentar NSS en lugar de OpenSSL. NSS es la biblioteca utilizada en el navegador derivado de Netscape (por ejemplo, Firefox). Es de código abierto.
Por otro lado, si apuntas solo a sistemas Windows, entonces CryptoAPI facilita la distribución, ya que ya está allí, no hay necesidad de una DLL adicional.
Si está listo para renunciar al hardware, y desea usar la criptografía solo software, con las claves almacenadas en la RAM, entonces probablemente no querrá usar CryptoAPI, que tiene poco poder en la cantidad de algoritmos que implementa y el variaciones que acepta (p. ej., CryptoAPI insiste en que los exponentes públicos de RSA sean menores de 32 bits; este es el caso normal, pero la limitación sigue siendo arbitraria y potencialmente fastidiosa). Hay muchas bibliotecas criptográficas por ahí; aparte de OpenSSL y NSS, es posible que desee investigar Crypto++, que es bastante maduro y supuestamente compatible con C++.
- 1. Integración de OpenSSL y Apple Keychain
- 2. Crear un certificado OpenSSL en Windows
- 3. pymssql versus pyodbc versus adodbapi versus ...
- 4. ¿Cómo hago que OpenSSL escriba el RANDFILE en Windows Vista?
- 5. OpenSSL y multi-threads
- 6. _Expand versus new versus GNU
- 7. Control.ResolveUrl versus Control.ResolveClientUrl versus VirtualPathUtility.ToAbsolute
- 8. metaphone versus soundex versus NYSIIS
- 9. openssl/valgrind
- 10. OpenSSL con motor GOST
- 11. zend-framework versus Kohana versus Symfony
- 12. PSK Sugerencia con OpenSSL
- 13. Firma DSA con OpenSSL
- 14. JRuby OpenSSL Error
- 15. OpenSSL i2o_ECPublicKey no trabajar
- 16. comando openssl cuelga
- 17. certificado mediante OpenSSL .Net
- 18. Problema SSL (openssl)
- 19. Reemplace Mcrypt con OpenSSL
- 20. Openssl compile error
- 21. $ versus jQuery
- 22. ¿Qué significa EVP de OpenSSL?
- 23. Cómo actualizar OpenSSL en MAMP
- 24. Activando el OpenSSL en XAMPP
- 25. openssl obtener extensiones de certificado
- 26. equivalente AES en Ruby openssl?
- 27. instalando OpenSSL desde la fuente
- 28. ¿Cómo usar OpenSSL en GCC?
- 29. Creando OpenSSL en Android NDK
- 30. Cómo instalar OpenSSL para Python
[He estado luchando] (http://stackoverflow.com/q/43802185/267874) para hacer que OpenSSL en Windows trabaje con un HSM durante semanas y debo decir que su única respuesta aquí borró todo ¡imagen para mí! Usted, mi amigo, realmente sabe cómo proporcionar información clara y relevante. ¡Gracias! ¡Ahora me voy, probando el PKCS # 11, posiblemente multiplataforma ahora! –