lunes, 11 de septiembre de 2017

Recomendacion para Disco Duro Cifrado en FreeBSD

Si estamos usando FreeBSD y queremos cifrar todo nuestro disco duro no duden en preguntar sus dudas.

El comando geli para inicializar la criptografia en nuestro disco duro es el siguiente:

Code:
geli init -a hmac/sha256 -b -e AES-XTS -l 256 -s 4096 -i 524288 -B /tmp/USBTEMP/backup_metadata.eli -K /tmp/USBTEMP/da1p1.key da1p1

Obviamente hablamos de una instalacion nueva. No se puede en una instalacion preexistente, a no ser que vallamos a mover toda nuestra informaacion  de un disco duro sin cifrar a algun disco duro cifrado.

Previamente necesitamos crear un archivo "llave" de manera aleatoria con DD

Code:
dd if=/dev/random of=/tmp/USBTEMP/da1p1.key bs=4096 iseek=128 count=32

Esto nos genera un archivo de 128 Kilobytes (bs=4096 * count=32) de informacion aleatoria, pasandole este archivo a geli, necesitaremos este archivo cada vez que iniciemos nuestro ordenador, y mas nos vale tener al menos otras 3 copias de seguridad de dicho archivo.

Sumado al archivo en la memoria USB para poder cargar nuestro sistema tendremos:

  • Disco Duro cirado con  AES-XTS y una clave de 256 bits
  • Autenticacion de sectores del disco usando hmac/sha256
  • La Autenticacion con hmac/sha256 Envita que nos ataquen usando Replay
  • Peticion de passphrase Antes de montar el Disco Duro principal
  • El passphare es juntado con el salt y nuestro archivo de 128 Kilobytes y derivado 524288 veces para poder descifrar la clave maestra previamente cifrada y guardada en la metadata

La unica desventaja que le veo a esta implementacion es:

  • Disminucion del Performance al momento de Leer/Escribir informacion en el disco ya que todo es cifrado.
  • Lo anterior pordria ser mitigado Teniendo algun Hardware acelarador para operaciones criptograficas y un Disco Duro de Estado solido.
  • Disminucion de Capacidad de almacenamiento, Dado que estamos usando un sistema de Autenticacion, este necesita guardar los checksum de cada sector de disco para determinar que no han sido modificados por terceros
  • Ejemplo de lo Anterior un Disco Duro de 22 Gigabytes termina con capacidad de 19 GB. Pierde al rededor de 14% de Almacenamiento dedicado para la Autenticacion de la información

Saludos!

jueves, 7 de septiembre de 2017

Extraer informacion de Cifrado en DiscoDuro de FreeBSD

FreeBSD ofrece la opcion de cifrar completamente el disco duro. La principal herramienta es Geli[2].

Para ver la información sobre el cifrado del disco, OJO no la información cifrada, sino la información relacionada con el tipo y modo de cifrado usado para el disco duro en cuestion, es necesario primero obtener acceso fisco al disco, una en otra instalación con FreeBSD podemos extraer el sector que tiene la meta-data a analizar, este sector del disco duro (512 Bytes) se encuentra en el ultimo sector de la particion cifrada.

Si no sabemos cual particion es la particion cifrada podemos extraer el ultimo sector de todas la particiones de el disco duro.

Ejemplo:

Discoduro a analizar /dev/da1

Si listamos /dev/da1* podremos ver que tiene 2 particiones para este caso en particular

# ls /dev/da1*
/dev/da1p1
/dev/da1p2

Para extraer la informacion tenemos que usar el comando dd.

Tambien necesitamos saber cuanto espacio tiene el disco duro

# geom disk list
o
# gpart list

Ejemplo de salida:

Providers:
1. Name: da1p1
   Mediasize: 20401094656 (19G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 32768
   Mode: r1w1e1
   rawtype: 7
   length: 20401094656
   offset: 0
   type: freebsd-ufs
   index: 1
   end: 39845887
   start: 0
2. Name: da1p2
   Mediasize: 1073708032 (1.0G)
   Sectorsize: 512
   Stripesize: 0
   Stripeoffset: 3221258240
   Mode: r1w1e0
   rawtype: 1
   length: 1073708032
   offset: 20401094656
   type: freebsd-swap
   index: 2
   end: 41942973
   start: 39845888


Para este ejemplo la particion tiene 20401094656 con lo cual si dividimos entre 512 nos da un total 39845888 Sectores con lo cual el ultimo sector valido es 39845887 que el que tenemos que leer, entonces el comando para extraer dicho sector es:

# dd if=/dev/da1p1 of=./sector.backup bs=512 iseek=39845887 count=1

Si nuestros calculos fueron acertados tendremos un archivo llamado sector.backup de 512 bytes.

El contenido de ese archivo puede variar mucho dependiendo del estado previo del disco duro.

Si el disco duro esta cifrado con mediante geli el archivo empezara con la siguiente leyenda:

GEOM::ELI, lo restante es informacion en binario con el siguiente orden

struct g_eli_metadata {
char md_magic[16]; /* Magic value. */
uint32_t md_version; /* Version number. */
uint32_t md_flags; /* Additional flags. */
uint16_t md_ealgo; /* Encryption algorithm. */
uint16_t md_keylen; /* Key length. */
uint16_t md_aalgo; /* Authentication algorithm. */
uint64_t md_provsize; /* Provider's size. */
uint32_t md_sectorsize; /* Sector size. */
uint8_t md_keys; /* Available keys. */
int32_t md_iterations; /* Number of iterations for PKCS#5v2. */
uint8_t md_salt[G_ELI_SALTLEN]; /* Salt. */
/* Encrypted master key (IV-key, Data-key, HMAC). */
uint8_t md_mkeys[G_ELI_MAXMKEYS * G_ELI_MKEYLEN];
u_char md_hash[16]; /* MD5 hash. */

} __packed;

Me tome la molestia de Generar una herramienta en C que lee la informacion y le pasa las funciones existentes en el codigo fuente de geli para organizar el buffer acorde al formato de la estructura.

El programa puede ser visto en mi cuenta de github[3] si lo compilamos y ejecutamos pasandole como parametro el archivo de 512 bytes tendremos una salida similar a la siguiente [Algunos datos fuero cambiados]:

albertobsd@XHGC-VMBox:~ % ./eli_metadata sector.backup
Magic: GEOM::ELI
Version: 7
Flags: 2
E ALGO: 22
Key Length: 128
A Algo: 0
P Size: 23622320128
Sector Size: 4096
Avaible Keys: 1
Iterations: 218830
Salt: E8CF4BB53DA62DC60B8CAD36119D62B806D95524828286533728C4045E319DBBA1486522EA0454887E1094AD3FAFA0295E9350F1259AAC4B791D42A02F3A6BF2
Master Key: 3F4E170DAFF6539E9301EEF2840ED233BA3B84D02EB96
3AEBB0CA1EED891034A85A3BB325F7B09398706944DFE84CE4748D2C4F0E1FEA4FD601CC18A922ADE51C9D7DC740292A979153B744FC49F47956E24E23D64BFF854F04E3AD41C39215D834DF5E317FF9C1661D9B3300E40D85CE4C270BF57DD1AA82489A97F6741A119AF25D1987ED584E1585FD7ADAE7406D9119AC7AEE654DA2B9C28D2D39599593E1B751BAE614C921E814660E240D18B7650477E935941299F7D34C91350BD289902B7F7DF23D7523C1B6FC0AB33CAB3AF07E5EA0E97835EF13F31B1F56004A552F074951D8B490FEA605D449E2AEA774574BDFEE9153392E4084DF934FCA40638B676A868E3BAB8CA0E0A1912B348C645F74BCA3AB7D697053DD25107981086284F687D1D5EF1DA16280EE7CD0920A92CDAFAF7970D084C4C344FAB3117D0993A591AA43B1D09BE6D5AFB12C82C375BD980AC60F7E0A65C146F8E54E1D84FA0D73933EC26341E5B1D11BA14AF8FA3990F834C4FA39BEF17EECCE206670E5E854B

MD5: BD5DA8BAE0C0C6AAC7503769A3CE9110

Datos interesantes de la salida:

E ALGO: 22

Podemos ver en
/usr/src/sys/opencrypto/cryptodev.h

#define CRYPTO_AES_XTS 22

Que esta cifrado usando AES_XTS que segun [4] es el estandar recomenado para el cifrado de disco.


Key Length: 128

El cifrado usa una Llave de 128 bits, se podria configurar a 256 para un mejor cifrado.

A Algo: 0

El sistema no tiene Autenticacion, esto quiere decir que no se tiene forma de saber si la informacion que leemos del disco a sido modificada o sobreescirta por terceros, esto tambien da lugar a un ataque tipo replay para poder calcular la clave maestra

Avaible Keys: 1

El sistema solo tiene una llave maestra lo cual si se nos olvida nuestra "passphrase" o se nos pierden nuestras llaves tendremos muy pocas (NULAS) posibilidades de recuperar nuestra informacion

Iterations: 218830

Nuestra "passphrase" junto con el Salt y nuestros Keyfiles si existen es derivada 218830 veces mediante pkcs5v2_genkey en g_eli.c y el resultado de esta operacion se usa para desencriptar la llave encripada en.

Master Key: 3F4E170DAFF6539E9301EEF2840ED233BA3B84D02EB96
3AEBB0CA1EED891034A85A3BB325F7B09398706944DFE84CE4748D2C4F0E1FEA4FD601CC18A922ADE51C9D7DC740292A979153B744FC49F47956E24E23D64BFF854F04E3AD41C39215D834DF5E317FF9C1661D9B3300E40D85CE4C270BF57DD1AA82489A97F6741A119AF25D1987ED584E1585FD7ADAE7406D9119AC7AEE654DA2B9C28D2D39599593E1B751BAE614C921E814660E240D18B7650477E935941299F7D34C91350BD289902B7F7DF23D7523C1B6FC0AB33CAB3AF07E5EA0E97835EF13F31B1F56004A552F074951D8B490FEA605D449E2AEA774574BDFEE9153392E4084DF934FCA40638B676A868E3BAB8CA0E0A1912B348C645F74BCA3AB7D697053DD25107981086284F687D1D5EF1DA16280EE7CD0920A92CDAFAF7970D084C4C344FAB3117D0993A591AA43B1D09BE6D5AFB12C82C375BD980AC60F7E0A65C146F8E54E1D84FA0D73933EC26341E5B1D11BA14AF8FA3990F834C4FA39BEF17EECCE206670E5E854B

El archivo termina con un MD5 Checksum de los valores en binario previamente mostrados, solo para validar que la información sea correcta.

Si es posible usar la información contenida en el archivo para Atacar por fuerza bruta y obtener la Clave Maestra decifrada pero en computacionalmente casi imposible de realizar.


[2] Man page of Elihttps://www.freebsd.org/cgi/man.cgi?query=geli&apropos=0&sektion=8&manpath=FreeBSD+11.1-RELEASE&arch=default&format=html
[3] Herramienta Utilizada: https://github.com/albertobsd/geli_metadata
[4] https://en.wikipedia.org/wiki/Disk_encryption_theory

martes, 5 de septiembre de 2017

Borrar Disco Duro Usando dd

Comando:

dd if=/dev/zero of=/dev/sdN1 bs=10M

Atencion! Podrían borrar su sistema y perder su información si se equivocan el la eleccion del parametro of (Output file).

of=/dev/sdN1 es el disco que queremos sobrescribir y deberían tener noción cual es el disco que planean sobrescribir.

Aun que no sea nada nuevo es posible sobrescribir toda la información que contiene un Disco Duro usando la herramienta de Bodigo Abierto llamada dd [1].

Esto es útil cuando queremos vender o regalar un disco duro que a a estado con nosotros por algún tiempo, y ademas de ser útil debería de ser Regla Borrar el disco duro de forma completa y segura para que la información que esta o estuvo contenida en el sea Totalmente Irrecuperable.

He estado haciendo unas pruebas y he borrado/limpiado mis discos duros para poder venderlos.

Es necesario comentar que este proceso es muy lento y puede variar de una computadora a otra dependiendo de la tecnología del disco duro usado y el hardware con el que contemos en este momento.

El sistema que use es FreeBSD 11.1 Release

La forma rapida de borrado completo y seguro de un disco duro de 500 GB Puede tardar hasta 4 Horas. A una velocidad de 35 MBps toma aproximadamente 244 Minutos escribir todo el disco duro con ceros (Cada byte escrito con un valor 0).

Comando:

dd if=/dev/zero of=/dev/dN bs=10M

La forma Lenta de borrado completo y seguro de un disco duro de 500 GB puede tardar hasta 11 Horas. Esto seria a una velocidad de 16 MBps y toma al rededor de 640 Minutos.

Comando:

dd if=/dev/random of=/dev/dN bs=1M

La diferencia entre esta forma y la anterior radica en que ahora tomamos bytes Pseudo-Aleatorios para sobrescribir el Disco Duro y la generación de bytes Pseudo-Aleatorios toma algo de tiempo dependiendo del algoritmo usado por nuestro sistema Operativo.

Los usuarios de Linux tienen que usar el device /dev/urandom ya que el sistema de Linux maneja de forma diferente el dispositivo /dev/random y se bloquea mas seguido haciéndolo muy lento aun.

Comando:

dd if=/dev/urandom of=/dev/dN bs=1M

El Modo Paranoico de Borrado de Disco Duro consiste en repetir hasta 7 veces  el proceso descrito en el modo Lento y llevaria 7 veces mas tiempo hacerlo.


Saludos!

Referencias.

[1] https://en.wikipedia.org/wiki/Dd_(Unix)
[2] https://www.freebsd.org/cgi/man.cgi?query=random&sektion=4


domingo, 16 de julio de 2017

Tagxedo no funciona en Google Chrome

Tagxedo, nuevamente en la Universidad Abierta y a Distancia de Mexico (UnADM) entre las tareas nos dejan realizar una nube de palabras entre las herramientas Online que recomienda se encuntra Tagxedo pero al momento de tratar de crear mi nube de palabras me encuentro con el siguiente ventana:


El cual dice que no funciona en Google chrome.

Nuevamente me vuelven a decepcionar estas herramientas que no son compatibles.

Saludos

sábado, 15 de julio de 2017

Cable modem Ubee - WPA2 y WPS por defecto



Bueno recientemente me instalaron el internet de Megacable y me entregaron un modem algo desconocido, pero realmente desconozco que tan usado sea esta marca de modems en las tecnologias de cable coaxial.

Me instalaron un  cable modem Ubee Modelo 1307

Desconosco si estas condifuraciones sean para todos lo modelos he incluso para este mismo modelo en otra Compañia de cable.

La cable WPA/WPA2 por defecto para el equipo que me entregaron es PARTE de la MAC Address ORIGINAL. En especifico los ultimos 5 Octetos

Resalto "parte" y "original" ya que si escaneamos las redes Wireless la MAC address Wireless cambia en el ultimo octeto.

Ejemplo ficticio

MAC Adress Original: F8:DA:0C:00:00:00 (Esta es la que viene en nuestra etiqueta)
MAC Adress WAN: F8:DA:0C:00:00:01 (Esta es la que reconoce la compañia de cable)
MAC Adress MTA: F8:DA:0C:00:00:02 (NPI)
MAC Adress Ethernet: F8:DA:0C:00:00:03 (Mac address que ven las computadoras conectas por cable)
MAC Adress Wireless: F8:DA:0C:00:00:04 (Mac addres que ven los equipos wireless)

Entonces para este caso ficticio la cable WPA es DA0C000000
Y el SSID de la red Inalambrica es: Ubee0000

Los datos reales pueden cabiar.

Entonces si tenemos acceso a la MAC address inalambrica la clave serian los 4 octetos de en medio mas los 2 ultimos digitos del SSID.

Otro ejemplo

MAC Adress Wireless: F8:DA:0C:10:10:04
SSID: Ubee1000

La cable WPA seria los numeros resaltados a continuacion:
MAC Adress Wireless: F8:DA:0C:10:10:04
SSID: Ubee1000

Por lo que para este ejemplo seria DA0C101000

Ademas de todo esto el PIN WPS por default que venia en mi dispositivo es 12345670

Interfaz Web


La direccion para accesar a la interfaz web es http://192.168.0.1

El usurio y clave para entrar es user, user esto es:
usuario: user
contraseña: user

Recomendaciones

Desactivar el WPS
Cambiar el nombre de la red inalambrica
Cambiar la clave por defecto.


Saludos!

martes, 11 de julio de 2017

Necesita Adobe Flash y Que es voki???

Pueden creerlo, una de las tareas en ma UnADM es crear un blog Neta????

Y para colmo quieren que la primera entrada sea un Avatar creado en Voki!?!?!?! Que es ese servicio? En mi vida lo habia escuchado, realemente creen que alguien se va a detener en  ver un avatar parlanchin siendo que ademas necesita Adobe Reader para ser creado!!! Pueden creerlo?


En fin es una tarea.

Saludos!

Instalacion de Megacable

Pues a raiz de que no existe un proveedor diferente de Megacable, tendre que contratarlo. Yo prefiero Totalplay o algun servicio basado en fibra optica, pero ese servicio aun no llega a mi colonia.

Contrate el servicio el viernes por la mañana, hoy martes es momento de que no me lo instalan, siendo que el mismo viernes por la tarde me marcaron para preguntarme si me podian instalar el servicio ese mismo dia.

Sinceramente no creo que me lo instalen esta semana, el problema consiste en que la proxima semana no estare entresemana en la casa, con lo cual el unico dia que tengo para que me lo instalen es un dia sabado o domingo.

Espero que sea este proximo fin, si no van a ser 15 dias en instalarme el servicio.

Saludos.

Buscar en el Blog

Populares siempre