martes, 21 de junio de 2016
No hace mucho suele suceder que se sube información sensible a Internet, como es el caso de bases de datos y claves de acceso en texto plano.
Esto permite que la información sea robada fácilmente y nuestros datos o de nuestros usuarios estén expuestos a quien sabe quien.
Con el uso de nubles para almacenamiento de archivos esto se ha vuelto común y el robo de información ha sido mucho más fácil.
Es por ello que hoy vamos a cifrar un respaldo de base de datos para posteriormente subirlo a cualquier nube que deseemos, para ello realizaremos lo siguiente:
- Generaremos la llave asimétrica (privada y publica)
- Crearemos una llave simétrica para cifrar el respaldo
- Cifraremos el respaldo con la llave simétrica
- Cifraremos la llave simétrica con la llave asimétrica pública
Paso 1: Generaremos la llave asimétrica (privada y pública)
Para ello en la terminal crearemos nuestra llave asimétrica de 2048 bits. La llamamos asimétrica ya que la llave pública sirve para cifrar lo que sea y la podemos compartir con quien queramos nos envíe información cifrada. Mientras que la llave privada sirve para descifrar y no debemos compartirla.#openssl genrsa -out clave.pem 2048

Esto nos genera el par de llaves (publica y privada en un solo archivo)
Para cifrar los archivos solo utilizaremos la llave pública, por ello la extraeremos del archivo de la siguiente manera.
#openssl rsa -in clave.pem -out clave.pub.pem -outform PEM -pubout

Paso 2: Crearemos una llave simétrica para cifrar el respaldo
#openssl rand -base64 48 -out key.txt

Paso 3: Cifraremos el respaldo con la llave simétrica
#openssl enc -aes-256-cbc -pass file:key.txt -in respaldo.sql -out respaldo.sql.encrypted

Como vemos el respaldo esta cifrado ahora

Paso 4: Cifraremos la llave simétrica con la llave asimétrica pública
Finalmente cifraremos la llave simétrica, a fin de almacenar el archivo cifrado y la llave simetrica cifrada utilizando la llave pública.
#openssl rsautl -encrypt -in key.txt -out key.enc -inkey clave.pub.pem -pubin

Hasta aquí todo el proceso, por lo que para cifrar cualquier archivo sólo necesitamos 3 archivos:
- Archivo a cifrar
- Llave simetrica sin cifrar (key.txt)
- Lave publica asimétrica para cifrar la llave simétrica (clave.pub.pem)
Proceso de descifrado
Para descifrar nuestro archivo debemos obtener en claro la llave simetrica.
#openssl rsautl -decrypt -inkey ./clave.pem -in key.enc -out key.txt

Ya con la llave simétrica desciframos nuestro archivo.
#openssl enc -aes-256-cbc -d -pass file:key.txt -in respaldo.sql.encrypted -out respaldo.sql
Finalmente lo que podemos subir a nuestra nube es:
- La llave simétrica cifrada (key.enc)
- El archivo cifrado (respaldo.sql.encrypted)
De esta manera mantendrás tu información segura o más segura que a un clic de distancia.
Related Posts :
- Back to Home »
- calve privada , cifrado , clave publica , lfpdppp , Linux , respaldos , Seguridad »
- Guardando archivos con información personal

Publicar un comentario