2010-05-06 71 views
8

Hola me gustaría saber la mejor técnica de encriptación para el cifrado y el encriptado de archivos de texto.Cifrar/descifrar archivo de texto en Delphi?

Mi Escenario:

tengo software de tener dos tipos de usuarios y operadores Administartor. Nuestro requisito es encriptar el archivo de texto cuando Administrator ingrese datos usando GUI y lo guarde. Ese archivo encriptado sería ingresado para Operator y solo necesitan seleccionarlo y usar ese archivo. Aquí el archivo se debe descifrar automáticamente para un cálculo posterior cuando el operador selecciona esos archivos.

Ayúdeme, por favor, ¿qué técnica de encriptación/desencriptación debo usar?

Respuesta

19

Una regla de oro al hacer crypto es comprender que la criptografía en su conjunto es muy difícil.

Hay una multitud de enfoques/algoritmos diferentes para elegir, y no se puede decir que ningún algoritmo/método sea el mejor. Todo depende de sus necesidades y posibilidades para afectar la distribución de aplicaciones, etc.

Un ejemplo de una situación potencialmente problemática es que en su escenario la "clave" de descifrado necesita ser distribuida con la (s) aplicación (es) y puede hacerlo inseguro . Esto generalmente se conoce como el problema de "distribución clave".

Un buen lugar para comenzar a leer acerca de crypto es http://en.wikipedia.org/wiki/Cryptography.

En cuanto a cosas hechas listo para Delphi hay algunos buenos paquetes disponibles:

páginas de Torry también tiene una lista larga de componentes:

os recomiendo que utilice algunas de las implementaciones existentes y no empezar a hacer su propia, ya que la creación de un cripto algo de trabajo seguro es muy muy difícil.

+0

DEC (The Delphi Encryption Compendium) es muy potente. Buena recomendación! –

+2

Windows proporciona una implementación muy buena para varios algoritmos criptográficos usando Windows CryptoAPI. Te recomiendo que uses CryptoAPI, o escribas una clase contenedora alrededor de las funciones CryptoAPI y las uses en tu código. – vcldeveloper

+0

Gracias, por darme un buen comienzo –

3

Al mover un mensaje cifrado de lugar/aplicación a otro, uno de los problemas que debe tener en cuenta es dónde almacenar las claves de cifrado/descifrado.

Como ve su escenario, parece que está construido en sus aplicaciones. Si es así, recuerde utilizar todo tipo de trucos para ocultarlo: las cadenas de contraseñas se deben dividir en varios bits y solo se deben anexar en un espacio intermedio protegido, que debe marcarse como no paginable (de lo contrario, podría verse la contraseña en el archivo de paginación).
Las mismas reglas para el contenido que no está cifrado (el archivo de texto). Lo mejor es que nunca se guarde (incluso temporalmente) sin cifrar en el disco. Si se guarda, sobrescribe la fecha con la basura después de su uso, antes de eliminarla.

Otro enfoque (especialmente si ya usa componentes de compresión), es que el archivo (de texto) se puede comprimir utilizando una contraseña.

3

A decir verdad, no existe una "mejor" técnica.Básicamente depende de la sensibilidad de los datos que intenta proteger y del número de personas que podrían acceder a estos datos. Lo que podría ser "lo mejor" para mí podría ser pura exageración para su proyecto. En su caso, puede usar cualquier método de cifrado de doble clave. O asymmetric key. Básicamente, el administrador tiene una clave y el operador tiene la otra. El administrador puede encriptar archivos, pero no podrá descifrarlos nuevamente, a menos que tenga una clave de operador. El operador puede descifrar el archivo y, si es necesario, encriptar un archivo al que solo puede acceder un administrador. (Las claves asimétricas se cifran de las dos maneras).

Existen varias soluciones que hacen uso de estas teclas asimétricas. El que sería mejor es el que podría agregar a su proyecto de la manera más sencilla, al mismo tiempo que ofrece suficiente protección para sus necesidades.

También es posible crear su propio algoritmo de clave asimétrica si es un verdadero Mago de Matemáticas. Los cálculos son complejos e involucran números primos extremadamente altos en la mayoría de las soluciones. Como dijo K. Sandell, encuentre una buena solución existente que satisfaga sus necesidades de la mejor manera.

Cuestiones relacionadas