GNU/Linux >> Tutoriales Linux >  >> Linux

Error de LUKS durante el arranque

Consicely, no creo que afecte la fuerza de su encriptación.

Revisé el código fuente y siempre que interprete bien lo que leí, no tienes que preocuparte necesariamente por esto.

Este código pertenece al módulo 'stdrng'. Al menos en Fedora 23, esto está integrado en el kernel en lugar de exportarse como un módulo del kernel.

Cuando stdrng se inicializa por primera vez, se producen las siguientes llamadas.

En crypto/drbg.c, la inicialización comienza aquí.

1997 module_init(drbg_init);

Esto registra todos los drbgs conocidos por el sistema.

1985         for (j = 0; ARRAY_SIZE(drbg_cores) > j; j++, i++)
1986                 drbg_fill_array(&drbg_algs[i], &drbg_cores[j], 1);
1987         for (j = 0; ARRAY_SIZE(drbg_cores) > j; j++, i++)
1988                 drbg_fill_array(&drbg_algs[i], &drbg_cores[j], 0);

Luego lo pasa a una función auxiliar que realiza la inicialización:

1989         return crypto_register_rngs(drbg_algs, (ARRAY_SIZE(drbg_cores) * 2));

En crypto/rng.c esto solo itera a través de cada rng para registrarlo.

210         for (i = 0; i < count; i++) {
211                 ret = crypto_register_rng(algs + i);
212                 if (ret)
213                         goto err;
214         }

Esta función realiza una serie de pasos de inicialización y luego llama a otra función para la asignación.

196         return crypto_register_alg(base);

Lo que no es tan obvio es lo que sucede durante el registro.

Otro módulo llamado tcrypt también integrado en el kernel recibe notificaciones de la inserción de nuevos algoritmos. Una vez que ve un nuevo algoritmo registrado, programa una prueba del mismo. Esto es lo que produce el resultado que ve en su pantalla.

Cuando finaliza la prueba, el algoritmo pasa al estado PROBADO. Si la prueba falla, me imagino (No pude encontrar el bit que produce este comportamiento) no se puede seleccionar para buscar si pasa las banderas correctas.

Si la prueba pasa o no definitivamente se almacena internamente.

Además de esto, llamar al generador de números aleatorios psudeo hace que se itere una lista de algoritmos de prngs en orden de fuerza según lo dictado por esta nota en crypto/drbg.c

107 /*
108  * The order of the DRBG definitions here matter: every DRBG is registered
109  * as stdrng. Each DRBG receives an increasing cra_priority values the later
110  * they are defined in this array (see drbg_fill_array).
111  *

Dado que el más fuerte no falla (hmac sha256), es poco probable que esté utilizando los fallidos, incluso si se pudieran seleccionar.

Para resumir -

  • Esto sucede cuando el stdrng se requiere módulo para algo.
  • Carga todos sus algoritmos conocidos.
  • Todos los algoritmos cargados se prueban. Algunos pueden fallar (por qué no se considera en esta respuesta).
  • Probar algoritmos fallidos no debería estará disponible para su selección más adelante.
  • Los PRNGS se ordenan por fuerza y ​​los PRNGS fuertes que pasan se prueban primero.
  • Cosas que dependen de stdrng con suerte, no deberían usar estos algoritmos como base para su fuente PRNG.

Puede ver qué algos han tenido éxito y han pasado las pruebas usando el siguiente comando:

 grep -EC5 'selftest.*passed' /proc/crypto

También puede ver la prioridad de selección con el campo 'prioridad'. Cuanto mayor sea el valor, más fuerte será el PRNG según el autor del módulo.

Entonces, feliz de estar equivocado aquí ya que no me considero un programador del kernel pero, en conclusión -

Cuando stdrng carga parece seleccionar otros algoritmos de la lista de algoritmos aceptables que se consideran más fuertes que los fallidos, además de que es probable que los fallidos no se seleccionen de todos modos.

Como tal, creo que esto no supone un riesgo adicional para ti cuando usas luks.


Linux
  1. No puedo localizar Module/Load/Conditional.pm [Solución]

  2. Error de Perl:el módulo PERL XML-Parser requiere expat-devel

  3. El módulo PERL DB_File requiere db4-devel [Fijar]

  4. Error No se puede compilar el módulo mientras se compilan módulos Perl externos

  5. FATAL:Error de módulo no encontrado usando modprobe

Error de Virtualbox:no se pudo cargar el módulo ring-0 VBoxEhciR0.r0

Linux - No se puede iniciar Vm:Error 13:¿Formato ejecutable no válido o no compatible?

Error de importación sin módulo llamado zlib (python instalado brew)

Error de insmod:insertando './hello.ko':-1 Formato de módulo no válido

Cambiar el tamaño de la partición de arranque

Omitir el módulo del kernel en el arranque