Generar Pre-Shared Keys fuertes desde GNU/Linux es sumamente sencillo utilizando algunas de las herramientas externas y/o herramientas disponibles en todos los sistemas GNU/Linux.
Seguid leyendo y os enseñaré a crear PSKs desde el Shell de GNU/Linux...
¿QUÉ ES PSK?
En criptografía, una clave previamente compartida, clave precompartida o PSK (en inglés pre-shared key) es una clave secreta compartida con anterioridad entre las dos partes usando algún canal seguro antes de que se utilice. Para crear una clave de secreto compartido, se debe utilizar la función de derivación de claves. Estos sistemas utilizan casi siempre algoritmos criptográficos de clave simétrica. El término PSK se utiliza en cifrado Wi-Fi como WEP o WPA, donde tanto el punto de acceso inalámbrico (AP) como todos los clientes comparten la misma clave.
Generar una Pre-Shared Key es sumamente sencillo con GNU/Linux
1.- ELEMENTOS NECESARIOS PARA ESTE TUTORIAL
- Un PC con GNU/Linux
- Internet recomendado (por si es necesario instalar algún paquete)
2.- USANDO GPG
GPG es una herramienta de consola que sirve para cifrar y formar contenidos digitales utilizando OpenGPG Para generar una PSK fuerte, deberemos usar la opción --gen-random y convertiremos dicho valor con base64. Añadiremos un valor llamado "quality" que varia entre 0,1 y 2 seguido del número de caracteres que queremos la PSK.
La sintaxis del comando es el siguiente:
$ gpg --gen-random [nivel] [caracteres] | base64
A continuación se muestran varios ejemplos para generar fuertes PSK utilizando GPG:
raul@debian:~$ gpg --gen-random 1 10 | base64
raul@debian:~$ gpg --gen-random 2 16 | base64
raul@debian:~$ gpg --gen-random 1 32 | base64
raul@debian:~$ gpg --gen-random 2 64 | base64
Generar PSK con GPG
3.- USANDO OPENSSL
OpenSSL es un programa de línea de comandos ampliamente conocido y que incorpora funciones criptográficas desde el Shell. Para generar una PSK fuerte utilizando OpenSSL, deberemos utilizar el siguiente comando y con la siguiente sintaxis:
La sintaxis del comando es el siguiente:
$ openssl rand -base64 [caracteres]
A continuación se muestran varios ejemplos para generar fuertes PSK utilizando OpenSSL:
raul@debian:~$ openssl rand -base64 8
raul@debian:~$ openssl rand -base64 16
raul@debian:~$ openssl rand -base64 24
raul@debian:~$ openssl rand -base64 32
Generar PSK con OpenSSL
4.- USANDO /DEV/RANDOM
Podemos utilizar le generador aleatorio /dev/random o /dev/urandom que están disponibles en todos los sistemas GNU/Linux para generar una PSK fuerte. Junto a head y base64 podemos generar los PSK de forma rápida y sencilla.
La sintaxis del comando es el siguiente:
$ head -c [caracteres] /dev/random | base64
A continuación se muestran varios ejemplos para generar fuertes PSK utilizando /dev/random:
raul@debian:~$ head -c 8 /dev/random | base64
raul@debian:~$ head -c 16 /dev/random | base64
raul@debian:~$ head -c 24 /dev/random | base64
raul@debian:~$ head -c 32 /dev/random | base64
Generar PSK con /dev/random
La sintaxis del comando con /dev/urandom es la siguiente:
$ < /dev/urandom tr -dc [caracteres_permitidos] | head -c [caracteres]; echo
Por ejemplo, para generar una PSK solamente con las letras del abecedario en minúsculas y de 16 caracteres usaremos:
raul@debian:~$ < /dev/urandom tr -dc a-z | head -c 16 ; echo
Por ejemplo, para generar una PSK alfanuméricos y de 64 caracteres usaremos:
64 alphanumeric characters and all non-space printable ascii symbols (\ escapes the ! for the shell)
raul@debian:~$ < /dev/urandom tr -dc \!-~ | head -c 64 ; echo
Por ejemplo, para generar una PSK con caracteres compatibles con las URLs y de 64 caracteres usaremos:
64 URL-safe characters (\ escapes the ()'!*; for the shell)
raul@debian:~$ < /dev/urandom tr -dc a-zA-Z0-9-._~\(\)\'\!\*:@,\; | head -c 32 ; echo
Generar PSK con /dev/urandom
5.- USANDO SHA256SUM
Si hacemos uso del comando date (el cual cambia en cada ejecución) y pasamos el resultado a sha256sum, podremos generar de forma rápida y sencilla una fuerte PSK.
La sintaxis del comando es el siguiente:
$ date | sha256sum | base64 | head -c [caracteres] ; echo
A continuación se muestran varios ejemplos para generar fuertes PSK utilizando sha256sum:
raul@debian:~$ date | sha256sum | base64 | head -c 8 ; echo
raul@debian:~$ date | sha256sum | base64 | head -c 16 ; echo
raul@debian:~$ date | sha256sum | base64 | head -c 24 ; echo
raul@debian:~$ date | sha256sum | base64 | head -c 32 ; echo
Generar PSK con sha256sum
ENJOY!