jueves, 23 de junio de 2022

Encriptar contraseñas guardadas en bash script

0. Introducción

Me baso en lo que dice Linux-tech. Se va a emplear openssl, por tanto hay que verificar que openssl  esté instalado.


1. Preparativos

1. Buscamos una clave que servirá para encriptar las otras contraseñas, por ejemplo "miClave"

2. Supongamos que tenemos 3 contraseñas que queremos ocultar (contraseña1, contraseña2 y contraseña3)

3. Ejecutamos estos comandos para obtener las contraseñas encriptadas:

echo "contraseña1" | openssl enc -aes-256-cbc -md sha512 -a -pbkdf2 -iter 100000 -salt -pass pass:miClave > 1.txt

echo "contraseña2" | openssl enc -aes-256-cbc -md sha512 -a -pbkdf2 -iter 100000 -salt -pass pass:miClave > 2.txt

echo "contraseña1" | openssl enc -aes-256-cbc -md sha512 -a -pbkdf2 -iter 100000 -salt -pass pass:miClave > 3.txt

Se ha descargado el resultado a 3 ficheros (1.txt, 2.txt, 3.txt) pero no es necesario.

4. Recogemos las contraseñas encriptadas que son respectivamente:

U2FsdGVkX189KukyhKMO1tGXqFihjhflWxnNxdPZNQQ=

U2FsdGVkX1/D10iKLBm92DHcG7Diqyiqm0FkL9zHHSs=

U2FsdGVkX191qIFKp3qfRdzzImuyjiH13kmNel6HiSA=

2. Nuestro shell script (bsh) simplificado

Observar las sentencias comentadas que nos sirven de depuración


#!/bin/bash

#0. pwds
echo 'Indicar clave'
read -s myKey
#echo "$myKey"

encriptado1='U2FsdGVkX189KukyhKMO1tGXqFihjhflWxnNxdPZNQQ='
#echo "$encriptado1"
contrasena1=`echo "$encriptado1" | openssl enc -aes-256-cbc -md sha512 -a -d -pbkdf2 -iter 100000  -salt -pass pass:"$myKey"`
#echo "$contrasena1"

encriptado2='U2FsdGVkX1/D10iKLBm92DHcG7Diqyiqm0FkL9zHHSs='
#echo "$encriptado2"
contrasena2=`echo "$encriptado2" | openssl enc -aes-256-cbc -md sha512 -a -d -pbkdf2 -iter 100000  -salt -pass pass:"$myKey"`
#echo "$contrasena2"

encriptado3='U2FsdGVkX191qIFKp3qfRdzzImuyjiH13kmNel6HiSA='
#echo "$encriptado3"
contrasena3=`echo "$encriptado3" | openssl enc -aes-256-cbc -md sha512 -a -d -pbkdf2 -iter 100000  -salt -pass pass:"$myKey"`
#echo "$contrasena3"


Con esto hemos recuperado las contraseñas y además se ha protegido el código fuente del programa con respecto a sus cotraseñas guardadas internamente. 


No hay comentarios :

Publicar un comentario