Pregunta:
gpg - código-perfecto
user195971
2013-02-07 15:22:31 UTC
view on stackexchange narkive permalink

Por defecto, gpg usa CAST5 con SHA1 (no tan bueno) ya que tenía AES256 y hash512!

Ahora quiero usar el código perfecto para cifrar mis archivos tanto para & simétrico como asimétrico

Para el cifrado simétrico, uso este código:

  gpg -c --s2k-cipher-algo AES256 --s2k-digest-algo Archivo SHA512  

¿Es eso lo máximo que puedo obtener de gpg para el cifrado simétrico o hay más?

Para el cifrado asimétrico, utilizo este código:

  gpg -er Key - s2k-cipher-algo AES256 --s2k-digest-algo SHA512 --cert-digest-algo Archivo SHA512  

¿Puedo agregar otros códigos para que el cifrado sea más seguro?

Hay z (n) , --s2k-mode n y --s2k-count n .

¿Qué hacen estos interruptores? ¿Cuál debo usar y con qué parámetros?

Esta otra pregunta probablemente también sea relevante para considerar: https://crypto.stackexchange.com/questions/5118/is-aes-256-weaker-than-192-and-128-bit-versions
Dos respuestas:
Thomas Pornin
2013-02-07 20:09:08 UTC
view on stackexchange narkive permalink

Lo "máximo" que puede obtener es "no se romperá" y no hay ningún nivel más allá de eso. CAST5 (también conocido como "CAST-128") podría decirse que ya lo logra en gran medida, ya que no se conoce ningún ataque en el algoritmo completo a pesar de algunas investigaciones activas durante mucho tiempo (el ataque más conocido parece deberse a Wang, Wang y Hu en 2009 y "descansos", de manera académica, un CAST5 reducido a solo 6 rondas, mientras que la versión completa tiene 12 o 16 rondas). De manera similar, SHA-1 tiene debilidades conocidas con respecto a las colisiones (y estas también son "académicas", es decir, todavía teóricas), pero las colisiones no son relevantes para los algoritmos para convertir contraseñas en claves.

Por lo tanto, cambiar a AES-256, SHA-512 o cualquier algoritmo con un número grande y de apariencia mezquina no le dará "más seguridad". Le dará una sensación de seguridad, de la misma manera que los autos rojos a menudo se cree que son más rápidos. Si eso es lo tuyo, entonces, por supuesto, usa AES; después de todo, un punto de seguridad es reducir la ansiedad. Pero, científicamente , el cambio de algoritmo no es necesario. GnuPG toma por defecto CAST5 y SHA-1 porque maximiza la interoperabilidad con implementaciones más antiguas de OpenPGP.

Sin embargo, se puede hacer un comentario menor sobre el tamaño del bloque del algoritmo. CAST5 usa bloques de 64 bits, lo que significa que existen algunas debilidades más o menos teóricas si encripta un solo archivo con una longitud superior a unos pocos gigabytes. Ese es un caso límite. Si tiene la costumbre de cifrar archivos de gran tamaño, puede cambiar a AES (AES-128 estaría bien).

En cuanto a los parámetros "s2k": el "conteo de iteraciones" (con --s2k-count ) está destinado a ralentizar ataques de diccionario haciendo que el procesamiento de la contraseña sea inherentemente lento. Cuanto mayor sea el recuento, más lento se vuelve. Entonces, por seguridad , desea que el recuento sea lo más alto posible, pero, por usabilidad , no desea que sea demasiado alto: un recuento más alto hace que la contraseña procesamiento más lento para todos, usted y el atacante por igual. Por lo tanto, debe aumentar el recuento a un valor tan alto como sea tolerable para usted en sus máquinas.

Por supuesto, este factor de desaceleración es una forma de tolerar contraseñas relativamente débiles. En igualdad de condiciones, es mejor tener una contraseña de alta entropía que resista los ataques de diccionario de todos modos.

Maravillosa respuesta, pero si quiero el auto rojo (AES256withSHA512), ¿cuál debería ser la longitud de la contraseña 32,64 o 128 caracteres y cómo forzar a gpg a usarlos para todo en cifrado asimétrico? Mire el código en la pregunta y déme su opinión.
@Thomas Pornin - Si el OP está usando `s2k-cipher-algo AES256`, ¿tiene sentido usar hash de 512 bits` s2k-digest-algo SHA512`? El cifrado AES256 solo necesita 256 bits, por lo que SHA256 habría sido suficiente. Me parece que SHA512 no agrega ninguna ventaja sobre SHA256. ¿Es correcto o me falta algo?
Algunas personas pueden argumentar que SHA-512 es una mejor opción porque se basa internamente en operaciones de 64 bits que son fáciles para su CPU, pero más difíciles de optimizar que las operaciones de 32 bits utilizadas en SHA-256 al implementar un ataque de diccionario sin -la GPU del estante. Esta ventaja es leve y se mantendrá solo mientras la GPU siga siendo deficiente en operaciones de enteros de 64 bits.
Lucas Kauffman
2013-02-07 15:34:26 UTC
view on stackexchange narkive permalink

Desde la página de manual:

  -s2k-mode n  

Selecciona cómo se alteran las frases de contraseña. Si n es 0, se utilizará una frase de contraseña simple (que no se recomienda), un 1 agrega una sal a la frase de contraseña y un 3 (el valor predeterminado) itera todo el proceso varias veces (consulte –s2k-count). A menos que se utilice --rfc1991, este modo también se utiliza para el cifrado convencional.

  --s2k-count n  

Especifica cuántas veces se repite la modificación de la contraseña. Este valor puede oscilar entre 1024 y 65011712 inclusive. El valor predeterminado se solicita a gpg-agent. Tenga en cuenta que no todos los valores en el rango 1024-65011712 son legales y si se selecciona un valor ilegal, GnuPG se redondeará al valor legal más cercano. Esta opción solo es significativa si --s2k-mode es 3.

Esto lo explica bastante bien en mi opinión. De forma predeterminada, el modo s2k está configurado como el método "más seguro" disponible. Con s2k-count puede aumentar la cantidad de veces que se estropea su contraseña. Honestamente, lo dejaría por defecto por compatibilidad. Teniendo en cuenta los algoritmos que está utilizando (AES-256), debería estar bastante seguro siempre que utilice una contraseña segura.

¿Debo usar sha256 o sha512, y cuánto tiempo debe tener la contraseña para cada uno de ellos?
Siempre utilizo una contraseña de más de 14 caracteres que contienen mayúsculas, minúsculas, números y signos. Hay diferentes algoritmos hash compatibles, pero SHA-512 es probablemente la mejor manera de hacerlo.
gracias por tu respuesta, dejo la pregunta un poco más para quien quiera comentar o poner mejor respuesta.
Sí, no soy el experto en criptografía aquí, creo que personas como @ThomasPornin podrían darte mejores respuestas.


Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...