2009-08-20 10 views
15

Estoy un poco confundido con los formatos de archivo de cifrado.¿Cuáles son los formatos de archivo de cifrado estándar?

Digamos que quiero encriptar un archivo con AES-256. Ejecuto el archivo a través del algoritmo de cifrado y ahora tengo una secuencia de bytes cifrados.

Obviamente, puedo escribir ese flujo de bytes en un archivo, pero cualquier aplicación de cifrado de terceros no va a entenderlo, ya que no espera solo una secuencia de bytes encriptados.

¿En qué formatos de archivo puedo escribir para que otras herramientas de cifrado puedan entenderlo?

Los que yo conozco (creo) son:

PKCS#7 
ASN.1 
DER 
PEM 
PKCS#8 

pero no estoy seguro de cómo todos ellos se relacionan entre sí.

Al parecer, la utilidad AESCrypt también tiene un formato, que parece ser su propio formato propietario: http://www.aescrypt.com/aes_file_format.html

¿Hay un cheatsheet en cualquier parte de este material? Estuve buscando en Google y encontré trozos y piezas, pero nunca sentí que tenía la imagen completa.

Respuesta

7

PKCS # 8 no es un formato de archivo encriptado, es un formato para claves privadas.

ASN.1 y DER son reglas para traducir un mensaje estructurado a binario. No son, en sí mismos, un formato de archivo, aunque se usan para definir y describir formatos de archivo.

PKCS # 7 está estrechamente relacionado con PEM, y ambos son formatos para archivos cifrados de clave pública. Se definen en términos de mensajes ASN.1 con codificación DER encapsulados en base 64. Son la base del formato S/MIME para el correo seguro de Internet. (Consulte RFC3851)

En paralelo con S/MIME está el formato de archivo OpenPGP, también diseñado principalmente para archivos cifrados de clave pública. (Consulte RFC4880)

En los formatos S/MIME y OpenPGP, hay un bloque que contiene datos cifrados de clave simétrica.Es posible crear archivos S/MIME o OpenPGP válidos que contengan solo este bloque. De esta forma, los formatos S/MIME (a.k.a. PKCS # 7) y OpenPGP también se pueden usar para el cifrado de clave simétrica.

2

AES es un algoritmo de encriptación, no un formato de archivo.

Como usted señala, hay muchas perillas y palancas en el algoritmo: la fuerza de la tecla es una. AES-256 solo significa, el algoritmo AES con clave de 256 bits. Pero hay muchas otras perillas. Modo, para uno. AES tiene varios modos: CBC, BCE, OFB, CFB, CTR y otros. Otro es el IV, que se aplica a algunos modos. Padding es otro. Por lo general, estas perillas están expuestas en la api de AES para cualquier armazón que estés usando.

En la mayoría de los casos, AES se combina con otra tecnología criptográfica; por ejemplo, la derivación de clave basada en contraseñas (PBKDF2) se usa a menudo para generar claves o IV. Los MAC se utilizan a menudo para verificar la integridad de los datos cifrados.

Diferentes herramientas usan AES para encriptar, y si quieren que sus datos sean legibles, publican la lista de perillas que usan, y cómo se configuran, así como también cómo se puede usar cualquier tecnología de cifrado relacionada.

Al crear un formato de archivo, necesitará almacenar o publicar ese tipo de cosas, si desea que otras aplicaciones puedan leer el archivo.

+4

Correcto, pero ¿no hay formatos de archivo basados ​​en estándares? ¿Para que un programa que abre el archivo pueda descubrir el algoritmo, los parámetros utilizados, etc.? Eso es lo que estoy preguntando: ¿hay formatos en los que pueda escribir datos cifrados, y espero que otro programa pueda entenderlo (suponiendo que implemente ese algoritmo de la misma manera, al usuario se le ha dado la clave o el clave pública incluida, etc.). Si existen tales formatos, ¿dónde puedo encontrar un resumen de mis opciones? ¿O siempre es "roll your own?" Gracias por la ayuda. – wadesworld

+0

Bueno, claro. Por ejemplo, WinZip puede usar AES y documenta cómo lo hace. http://www.winzip.com/aes_info.htm PKCS # 7 está documentado en RFC 2315. http://tools.ietf.org/html/rfc2315 MS-Word usa encriptación AES. http://download.microsoft.com/download/6/7/f/67f1ff44-f1c9-4fae-a451-4e803f7b727e/2007_Office_DocEncryption.docx No estoy seguro de si tienes un formato específico en mente, o .. quieres para saber sobre muchos formatos, o qué. – Cheeso

Cuestiones relacionadas