Biblioteca de cifrado libre para Delphi [cerrado]
-
05-07-2019 - |
Pregunta
Estoy buscando una biblioteca de cifrado gratuita y actualizada para Delphi 2010 que implemente RSA y AES (Rijndael).
Quiero una biblioteca gratuita porque planeo escribir y publicar algún código de muestra que lo usará.
Se ha publicado una versión Delboi 2010 de TurboPower LockBox en el sitio SongBeamer , que implementa ambas Estos, pero me preocupa que se está poniendo un poco viejo. Por ejemplo, pequeños tamaños de clave RSA y sin nuevas funciones de seguridad durante muchos años.
Actualización: ¿Es incorrecta la percepción de que LockBox está desactualizado o carece de características importantes? ¿Sigue siendo relevante para el desarrollo de la producción? (Particularmente los tamaños de clave RSA)
Solución
El algoritmo RSA no está necesariamente desactualizado, pero el tamaño de la clave es importante. Todavía se utiliza regularmente en todo el lugar. Se debe usar una longitud de clave RSA de 3072 bits si se requiere seguridad más allá 2030. Esto es solo una función de las mejoras en la potencia de cálculo y no una debilidad en el algoritmo.
Estaba mirando el LockBox antes de que SongBeamer comenzara a mantenerlo (Delphi 2007) encontré La RSA es inestable: solo se bloquea o produce resultados erróneos de vez en cuando. Aunque puede haber sido arreglado desde entonces. Si lo va a utilizar, asegúrese de que admita las longitudes de clave que necesita y luego cree algunas pruebas automatizadas con entradas y salidas conocidas. Asegúrate de que funcione estable. Si lo hace, entonces utilícelo por todos los medios.
También puede utilizar la API de Microsoft Crypto para realizar el cifrado RSA. Escribí un contenedor para Delphi 2007 , pero no lo he actualizado para Unicode (lo sé , me avergüenza). Alguien más podría actualizarlo para que funcione con Unicode fácilmente.
Otra opción sería utilizar las funciones de criptografía de .NET Framework a través de la interoperabilidad COM o algo así.
Otros consejos
TurboPower LockBox 3.1.0 ahora se lanza. Soporta:
- Delphi 2007 y Delphi 2010
- Unicodestrings para Delphi 2010
- cifrados AES, DES, 3DES, Blowfish y Twofish
- Una larga lista de modos de encadenamiento de bloques
- hashes MD5 y SHA1
- cifrado, descifrado, firma y verificación RSA
- Llaves RSA de longitud variable: casi sin restricciones en el rango.
- código de prueba de la unidad D
- salado automático
- Manejo adecuado de las IV (a diferencia de DCPcrypt)
- Caja blanca, libre y de código abierto
- código fuente nativo 100% visible (sin DLL)
http://sourceforge.net/projects/tplockbox/ y http://lockbox.seanbdurkin.id.au/
Hola Bruce, uso esta biblioteca desde Delphi 5,
Compedium de encriptación Delphi Parte I v.5.2
- Reescritura completa de la versión anterior del 3 de diciembre, actualización de la versión 5.1 de diciembre (lanzada en 2006)
- Muchos cifrados (Blowfish, Twofish, 3DES, Rijndael ...)
- Many Hashs (MD2 / 4/5, SHA1-512, RipeMD128-320 ...)
- Funciones de suma de comprobación (CRC32, CRC16 ...)
- Funciones de conversión de texto (MIME Base 64, XX / UU Coding ...)
- Funciones seguras de números aleatorios
- con cifrado de cifrado en modos (CTS / CBC / CFB / OFB / ECB ...)
- Orientado a objetos completo y fácil
- Núcleo rápido y altamente optimizado
- Admite ANSI y Unicode en D2009 (y más abajo usando WideStrings) ...
Es Freeeware y con el código Sorce, desafortunadamente no implementa RSA.
Parece que El trabajo de D2010 está hecho :
TurboPower LockBox . Cifrado de datos . 04 de septiembre de 2009 . Descargar
Estado: Debería estar funcionando bien.
Esta biblioteca se ha ampliado para que admita el cifrado de Ansi y UnicodeStrings.
09/04/2009
* Delphi 2010 paquetes
* debe compilarse sin sugerencias y advertencias
-
Como lo menciona Argalatyr, DCPCrypt funciona con Delphi 2009 pero no No hagas RSA;
-
ChillKat admite RSA y AES para Delphi, pero es no es gratis;
-
Sergey Kirichenko hizo una implementación gratuita de Rijndael que puede descargar aquí: http: // rcolonel.tripod.com/dwnload/rc_rnd.zip . Los archivos están fechados en noviembre de 2000, por lo que no sé si funcionará directamente en los Delphi más nuevos.
-
Solía ??haber un archivo zip con el código Delphi para descargar aquí: http://ace.ulyssis.student.kuleuven.ac.be/~triade/GInt/bin/RSA.zip , pero el desarrollador probablemente terminó su estudio y la universidad retiró su página principal. En esta página web en chino podría ver el contenido del archivo (busque RSA.pas en la página y haga clic en el enlace).
No sé exactamente a qué te refieres con " mucho tiempo en el diente " (¿viejo?), pero me gustaría ir a Lockbox, porque proporciona todo lo que necesitas. Excepto por la actualización de 2009, los últimos cambios oficiales se hicieron en 2003. Pero bueno, si funciona, funciona.
Para el código de ejemplo, LockBox puede estar bien, pero ya no lo usaría en producción. La encriptación se hace larga en el diente. Los algoritmos se vuelven viejos. Las fallas no descubiertas anteriormente, las técnicas mejoradas de criptoanálisis, los avances matemáticos, el aumento de la potencia del procesador hacen que los algoritmos y el tamaño de las claves ya no sean lo suficientemente seguros. 3DES, MD5, SHA-1 ya no se consideran suficientes. Los ataques contra AES se han publicado recientemente ( http://eprint.iacr.org/2009/374). El tamaño mínimo de la clave RSA recomendada ahora es de 1024 bits, mientras que las claves 2048 y 3072 se recomiendan si los datos deben protegerse durante años. Lockbox ofrece solo claves de 1024 bits o menos . También se debe seleccionar el modo de cifrado de bloque derecho. Y la clase LockBox TLbRijndael (AES) usa de forma predeterminada ECB, que tiene fallas conocidas, y no ofrece nada más que CBC. Debido a la importancia de la seguridad electrónica adquirida en estos años, y las investigaciones consiguientes realizadas por personas buenas y malas, una biblioteca de siete años es realmente antigua: simplemente compilarla y agregar soporte para las cadenas UTF-16 no es suficiente. Tenga en cuenta que la seguridad falsa es peor que ninguna seguridad en absoluto. Si se le dice a un administrador del sistema " no tenemos ninguna seguridad en su lugar " él mismo trabajará para implementar la seguridad (por ejemplo, IPSec, VPN o similares). Si ha dicho "sí", tenemos RSA y AES! & Quot; se sentirá bien, incluso si su implementación de AES y RSA no está actualizada y ya no es segura.
No lo he probado en D2010, pero DCPcrypt supuestamente funciona en D2009.
Fundamentals Cody Library tiene implementaciones para ambos AES y cifrado RSA. Sin embargo, no he usado la biblioteca, así que no puedo comentar sobre su calidad.
Parece que hay muchas implementaciones gratuitas de Delphi AES. Siéntase libre de agregar sus favoritos aquí .
Parece que no hay tantas implementaciones gratuitas de RSA, y muy pocas bibliotecas que ofrecen ambas.
Parece que LockBox sigue siendo una opción bastante razonable. Sobre todo porque no necesito cifrado, lo que tomará literalmente años descifrarlo.
Creo que usar la API de cifrado de Microsoft directamente podría ser la opción más práctica.
Daniele Teti ha lanzado una colección de filtros DataSnap para Delphi 2010, que incluye hash, cifrado y compresión. Menciona que también puede implementar cifrados asimétricos en el futuro.
Este es un código abierto, así que siéntase libre de contribuir.