Foro de elhacker.net

Seguridad Informática => Criptografía => Mensaje iniciado por: retr02332 en 24 Diciembre 2019, 20:03 pm



Título: Cual es el mejor modo de operación para cifrados de bloques simétricos?
Publicado por: retr02332 en 24 Diciembre 2019, 20:03 pm
En python3, en la libreria pycrypto, hay multiples modos de operacion, pero la pregunta es:

¿cual debo usar y porque?.

Muchas gracias.


Título: Re: Cual es el mejor modo de operación para cifrados de bloques simétricos?
Publicado por: engel lex en 24 Diciembre 2019, 20:06 pm
no es un asunto del "mejor" si han llegado hasta los standares actuales quiere decir que no hacen lo mismo sino que cada uno tiene su caso de uso, estudia el tema primero y ve cual es el mas apropiado y seguro para el aplicativo que vas a desarrollar...

http://dlerch.blogspot.com/2007/07/modos-de-cifrado-ecb-cbc-ctr-ofb-y-cfb.html (http://dlerch.blogspot.com/2007/07/modos-de-cifrado-ecb-cbc-ctr-ofb-y-cfb.html)

https://es.wikipedia.org/wiki/Modos_de_operaci%C3%B3n_de_una_unidad_de_cifrado_por_bloques (https://es.wikipedia.org/wiki/Modos_de_operaci%C3%B3n_de_una_unidad_de_cifrado_por_bloques)


un caso muy simple CBC no lo puedes usar en streams o lineas de datos sensibles a perdidas, ya que si pierdes un bloque el resto será irrecuperable, en tal caso el EBC es mejor, pero como verás en los articulos, tiene defectos, sin embargo un EBC tras una compresión de datos no tendrá ese problema porque la compresión en naturaleza se supone que se dedica a destruir redundancias


Título: Re: Cual es el mejor modo de operación para cifrados de bloques simétricos?
Publicado por: retr02332 en 24 Diciembre 2019, 22:04 pm
¿Que es una verificacion de la integracion del mensaje y como se hace en python?

Especificamente con pycryptodome, algoritmo AES, metodo de cifrado CTR.

Segun veo en la documentacion, este metodo de cifrado puede ser atacado mediante una vulnerabilidad llamada "Bit-flipping attacks", y que con el uso de una verificacion de la integridad del mensaje, esto se arreglara.

Muchas gracias.


Título: Re: Cual es el mejor modo de operación para cifrados de bloques simétricos?
Publicado por: MCKSys Argentina en 24 Diciembre 2019, 22:26 pm
¿Que es una verificacion de la integracion del mensaje y como se hace en python?

Especificamente con pycryptodome, algoritmo AES, metodo de cifrado CTR.

Segun veo en la documentacion, este metodo de cifrado puede ser atacado mediante una vulnerabilidad llamada "Bit-flipping attacks", y que con el uso de una verificacion de la integridad del mensaje, esto se arreglara.

Muchas gracias.

Significa que haciendo un hash del mensaje, puedes saber si el mismo fue corrompido durante la transmision. Usando SHA1 debería bastar, pero si quieres mas seguridad SHA256.

Para sacar los hashes, debes usar la lib hashlib (en python 3): https://gist.github.com/re4lfl0w/a6ff3a988b4e67297efc (https://gist.github.com/re4lfl0w/a6ff3a988b4e67297efc)

Saludos!


Título: Re: Cual es el mejor modo de operación para cifrados de bloques simétricos?
Publicado por: retr02332 en 26 Diciembre 2019, 02:26 am
Entonces solo es para verificar que el mensaje llegue intacto?

O hay algo mas que se pueda hacer al respecto?


Título: Re: Cual es el mejor modo de operación para cifrados de bloques simétricos?
Publicado por: kub0x en 27 Diciembre 2019, 16:29 pm
¿Que es una verificacion de la integracion del mensaje y como se hace en python?

Especificamente con pycryptodome, algoritmo AES, metodo de cifrado CTR.

Segun veo en la documentacion, este metodo de cifrado puede ser atacado mediante una vulnerabilidad llamada "Bit-flipping attacks", y que con el uso de una verificacion de la integridad del mensaje, esto se arreglara.

Muchas gracias.

La crypto en su parte primaria se puede definir como cifrar y descifrar, quiero decir, que el mundo tiene esa imagen "pura" de lo que es la crypto. Ahora, un atacante con máscara de villano puede reemplazar mensajes a placer, entonces, como puede Bob saber si lo que recibió desde Alice realmente llegó intacto? Y como puede saber que fue Alice quien lo envió? Y como sabe que nadie hizo un reenvio? Todos estas cuestiones realmente forman lo que es la criptografía moderna, además del subyaciente criptoanálisis de estos métodos, todo ello formano la Criptología (cryptography + cryptanalysis).

Si quieres usar AES deberás de estar seguro primero que modo de operación utilizar junto al algoritmo de integridad y/o autenticación. Tienes el modo AE (Authenticated Encryption):

Citar
Authenticated encryption (AE) and authenticated encryption with associated data (AEAD) are forms of encryption which simultaneously assure the confidentiality and authenticity of data. These attributes are provided under a single, easy to use programming interface.

Matando dos pájaros de un tiro. Sino HMAC hace bien su trabajo o Poly1305, el cual también recomiendo por su alto rendimiento con AES.

Saludos.