Destrucción Controlada. Tus archivos, sólo para ti.

Si queremos alojar algún archivo en la red, si alguien se lo descarga tendrá un tiempo ilimitado para poder hackear su cifrado.
Si el archivo es de nuestra propiedad, no solo lo podemos proteger con un cifrado estandar aes256 (o similar), sino que para aumentar dramáticamente su nivel de cifrado de forma muy sencilla. Usando estos dos métodos no tendremos nada que envidiar, a los niveles de encriptación militar.
Este método es para archivos privados donde no transmitiremos nuestra clave a nadie, ya que no es necesario.
La fortaleza de este método se basa, en romper una de las leyes del  cifrado,  una clave una sola solución. En nuestro caso haremos una clave con millones de millones de soluciones y además crearemos una clave, no de 128 bits, no de 256 bits, no de 512 bits sino de varios Kb o Megas. (Por que tu lo vales)

Consideraciones Importantes:

También es aconsejable si el archivo esta expuesto, usar un cifrado simétrico previo, consiguiendo así algo muy, muy desagradable de crackear.

El programa posterior leer archivos de modo binario, por lo que a pesar de ser imágenes en el ejemplo, en la realidad sirve para cualquier tipo de archivos.

Por último, para aumentar la seguridad al absurdo, no se debe usar siempre el mismo archivo de cifrado, han de ser parejas monogámicas. Quiero decir que cada archivo tendrá su pareja de cifrado única, impidiendo el posterior análisis criptográfico si subimos un numero grande de archivos con el mismo cifrado.

En el ejemplo hay una condición para simplificar el código y que sea más fácil de entender, El archivo de cifrado ha de ser mayor que el que se cifra. Con un par de lineas adicionales esta limitación desaparecería.

En el siguiente vídeo probaré el programa de ejemplo, para la imagen del logo de Antergos y posteriormente con un archivo cifrado mediante aescrypt. El código lo podéis modificar para vuestra conveniencia y recordar cuanto más aleatorio es el archivo de cifrado mas cerca del imposible esta su descifrado.

Ejemplo de cifrado/decifrado con Imágenes.

Ingredientes para la destrucción controlada:

  • Archivo a cifrar.
  • Archivo para cifrado de mayor tamaño al anterior.
  • Programa de cifrado y descifrado.

El ejemplo sera muy sencillo, lo mostraremos para una imagen,  que es más visual e intuitivo. Pero lo ideal es cifrar el archivo primero por un cifrado simétrico estándar y luego añadir muestra capa de destrucción controlada.

  • Archivo Foto.jpg, archivo Original en mi caso usare una de Antergos mi S.O.
    Foto.jpg
    Foto.jpg

     

  • Archivo para cifrar FotoKey.jpg
FotoKey.png
FotoKey.png

 

  • Programa Cifrado/descifrado.(Al usar XOR es prácticamente lo mismo)
#include<iostream>
#include<fstream>
using namespace std;
// El programa encripta origen mediante cifrado XOR con origen2
// origen 2 debe ser mayor que origen en esta versión
// El resultado se escribirá en destinoint
main(){// Abrimos los ficheros origen y origen2 en modo lectura
// Abrimos destino en modo estritura
// puedes cambiar Foto.jpg , FotoKey.png, CopiaSegura.jpg por los que tu quieras
ifstream origen(“Foto.jpg”,ios::binary);
ifstream origen2(“FotoKey.png”, ios::binary);
ofstream destino(“CopiaSegura.jpg”,ios::binary);
// Defino las Variables Byte (origen) key(origen2)
// a,b,c se usarán para el cálculo XOR
char byte;
char key;
int a,b,c;
// Creamos un bucle para la lectura de datos
while( !origen.eof() && !origen.fail() && !origen2.eof() && !origen2.fail()){
origen.read((char *) & byte, sizeof(char));
origen2.read((char *) & key, sizeof(char));
if (origen.good()){
//Creo la máscara con XOR
a = int(byte);
b = int(key);
c = a ^ b ;
byte = char(c);
// Escribimos en el archivo de salida
destino.write((char *) & byte, sizeof(char));
}
}
// Cerramos los tres archivos
destino.close();
origen2.close();
origen.close();
return 0;
}

 

El programa esta en C++, para compilarlo y ejecutarlo desde el terminal:

 

[nukebull ]$ c++ -o CifradoXOR CifradoBinario.cpp
[nukebull]$ chmod +x CifradoXOR
[nukebull]$ ./CifradoXOR

 

Para descifrar es el mismo programa cambiando [Foto.jpg por CopiaSegura.jpg ) y (CopiaSegura.jpg por CopiaDescifrada.jpg), FotoKey.png no se altera

 

#include<iostream>
#include<fstream>
using namespace std;
// El programa encripta origen mediante cifrado XOR con origen2
// origen 2 debe ser mayor que origen en esta versión
// El resultado se escribirá en destino
int main(){
// Abrimos los ficheros origen y origen2 en modo lectura
// Abrimos destino en modo estritura
// puedes cambiar Foto.jpg , FotoKey.png, CopiaSegura.jpg por los que tu quieras
ifstream origen(“CopiaSegura.jpg”,ios::binary);
ifstream origen2(“FotoKey.png”, ios::binary);
ofstream destino(“CopiaDescifrada.jpg”,ios::binary);
// Defino las Variables Byte (origen) key(origen2)
// a,b,c se usarán para el cálculo XOR
char byte;
char key;
int a,b,c;
// Creamos un bucle para la lectura de datos
while( !origen.eof() && !origen.fail() && !origen2.eof() && !origen2.fail()){
origen.read((char *) & byte, sizeof(char));
origen2.read((char *) & key, sizeof(char));
if (origen.good()){
//Creo la máscara con XOR
a = int(byte);
b = int(key);
c = a ^ b ;
byte = char(c);
// Escribimos en el archivo de salida
destino.write((char *) & byte, sizeof(char));
}
}
// Cerramos los tres archivos
destino.close();
origen2.close();
origen.close();
return 0;
}

 

El programa esta en C++, para compilarlo y ejecutarlo desde el terminal:

 

[nukebull ]$ c++ -o CifradoXORInv CifradoBinarioInverso.cpp
[nukebull]$ chmod +x CifradoXORInv
[nukebull]$ ./CifradoXORInv

 

Programa

Conclusión.

Usar esta segunda capa de cifrado produce una destrucción de los datos del programa, si el original estaba cifrado, reconstruirlo es prácticamente imposible. Para archivos sensibles que estén expuestos es ideal, ya que el criptoanálisis que le pudieran hacer, se lo hacen a un archivo incompleto del que no saben que tipo de cifrado se ha usado o con que  programa se ha encriptado.

El código se puede mejorar pidiendo los archivos desde consola, o añadiendo algún tipo de GUI. Pero en lo básico seguirá siendo similar.

Espero que les sirva de ayuda y deja un comentario si deseas alguna aclaración. Gracias

 

Generación de Claves (Terminal-Linux)

En la entrada vamos a generar claves de forma rápida y sencilla desde la terminal usando las funciones hash (sha256, sha512,sha1, md5). También añadiremos un nuevo comando al bash para automatizar el proceso.

Lo más aconsejable es usar sha512 al ser la de mayor complejidad. Veremos varias formas combinadas con diferentes comandos

  • Junto con el comando date (lo bueno de esta función es que cambia el valor en el tiempo)
[nukebull@]$ date
jue oct 4 20:02:25 CEST 2018
[nukebull]$ date | sha256sum
07ef00e6a72dc78e7109b93d92d94f71a8ca05ef7f9da1d18904634d5fcdd457 –
[nukebull]$ date | sha512sum
be3a8132ff936b12981c7888dc5a189df3ab1699be2ce19bdcea8e1eede5289c0
41e1d4a8a7efbd2d98679bef961bc7e146565b1bfec8268a167cede03fc2f51 –
[nukebull]$ date | md5sum
cf6c4a3551301c72103b1a29903adb09 –
[nukebull]$ date | sha1sum
976b418e17f5621c264a41323196fa0fa63a0a69 –
  • Junto con el comando echo -n “texto” 
[nukebull]$ echo -n “Mi contraseña hash” | sha1sum
28bd1dece4147de7f25a5ecdba8872e5deecdc26 –
[nukebull]$ echo -n “Mi contraseña hash” | sha512sum
d44bfbe4dec8b149ddc438ec69f71a000f4f5aa7c5b9eeefb212a945008bb7ebd2d635
6a73fa3fa5bc922154b462389ef2f2a6d0a4d8c605010ee8fce214a8ed –
  • Junto con echo $RANDOM (genera números aleatorios ente 0 y 32768).
[nukebull]$ echo $RANDOM $RANDOM
8724 10900
[nukebull]$ echo $RANDOM $RANDOM |sha256sum
30218b9fc9b7d5f44b907f78f98efc8d2e8ec27113412639ea93fbd672dd787e –
  • Concatenar varias funciones para añadir complejidad.
[nukebull]$ echo -n “clave” | sha256sum
6d5074b4bf2b913866157d7674f1eda042c5c614876de876f7512702d2572a06 –
[nukebull]$ echo -n “clave” | sha256sum | sha512sum
30b1c140080d445363ad4f8dc0e3e4aeaa7568c66a523f124c554dd65a8e09f002cfc2104
a5bf2814a75a86d3d80d70170d21b4728acbf0fc674f82e563c0726 –
[nukebull]$ date | sha256sum | sha512sum | sha1sum
72a28a36231b2b77c5cd99e7d6cd5595ac90298e –
[nukebull]$ date | sha256sum | sha1sum | sha512sum
3697e91afa2dc6f226b2e4e6a299136d52339e4f5ca779aef3ff267f0e4fdda4f182099331
dc5586e3081b12a7c87187be6c06ce30f4b5b1de0719d14d108a47-

[nukebull]$echo $RANDOM `date` $RANDOM
12333 jue oct 4 20:37:06 CEST 2018 6565
[nukebull]$ echo $RANDOM `date` $RANDOM | sha1sum | sha256sum | sha512sum
e445f15b12fa637c7b01df9af73303e7f97bfa294b952f3bb8d996d144d34ec642ac28fb9802db6dcdcbb55172
c74243971077c6e24a08a70c3d43bbcf498ea0 –

Por último os mostrare como se añade al bash si lo utilizáis constantemente. como ejemplo usaré un alias llamado  keygen y una de las funciones anteriores basada en date que varia en el tiempo, generando nuevas claves en cada ocasión

  • Primeramente buscaremos el archivo .bashrc en el directorio principal de nuestro usuario (/home/usuario).
  • Lo editaremos con nano, vin , emacs, gedit (ejemplo)
[nukebull]$ gedit .bashrc
  • Añadimos linea alias keygen =”date | sha256sum | sha1sum | sha512sum ”  
  • Cerramos la terminal, para que al volverla a abrir cargue el nuevo comando en la terminal
gedit .bashrc
gedit .bashrc
  • Ejecutamos el comando en la nueva terminal.
[nukebull]$ keygen
300e7434fc6cd7c17dc757bea6bcd198896953e2572463ffe809fb227d5491fe14
fc5a6d4d5e29805474be09eb3d8d9238e0ba81ed74cac9b326d53de27cf3f3 –
[nukebull]$ keygen
e5750e3c9eba0e31afe0f57862d7613b3de689bbc4f796066b476871a5436d7be2
6604d90e1f86cc838b260cccacfa33e34a441977258b9699e67f00dabc17b8 –
[nukebull@]$ keygen
f8bd4661d25f4c59696c1eb345589a4363af5412f8a58b2cd98c25da20c02ee63ca
471621a3153c5c4ca3d5f9ff44fb6b73f6dce2a1b5b386b2c9d235c1fc2b4 –

 

Steghide, mensajes ocultos (Esteganografía)

La esteganografía (del griego στεγανος steganos, “cubierto” u “oculto”, y γραφος graphos, “escritura”) trata el estudio y aplicación de técnicas que permiten ocultar mensajes u objetos, dentro de otros, llamados portadores, de modo que no se perciba su existencia. Es decir, procura ocultar mensajes dentro de otros objetos y de esta forma establecer un canal encubierto de comunicación, de modo que el propio acto de la comunicación pase inadvertido para observadores que tienen acceso a ese canal. (wiki)

El cifrado digital de mensajes tiene una variante que consiste en introducir un mensaje dentro de otro medio para que este pase desapercibido. Se utilizan imágenes, audios y vídeos. Cualquier medio digital es susceptible de portar mensajes.

 

Descripción del programa

Trabajaremos con Steghide, aplicación  para Linux, que  desde el terminal nos permitirá ocultar mensajes cifrados en archivos JPEG, BMP, WAV. En nuestro caso usaremos una imagen jpg. El software ha sido desarrollado gracias a la iniciativa de Stefan Hetzl y se aloja en la siguiente dirección: http://steghide.sourceforge.net/index.php

Para saber mas sobre ella nos fijaremos en sus dependencias:

  • libmhash Contiene los algoritmos tipo hash para generación de contraseñas. y archivos de verificación.
  • libmcrypt  Esta librería contiene algoritmos simétricos comunes como son: aes, twofish,…
  • libjpeg Nos dará la capacidad de comprimir y descomprimir imágenes.
  • zlib Libreria para comprimir y descomprimir mensajes.

Además tenemos el manual en Ingles y castellano gracias a la traducción de  “Alberto Adrián Schiano” (Muchas gracias por tu gran trabajo) Manual

Como usar steghide

Los ejemplos que mostrare a continuación se realizan sobre la imagen Descanso.jpg, también crearemos un archivo de texto (Mensaje.txt) con el mensaje que deseamos esconder. El programa podéis instalarlo del repositorio de vuestra distro.

Imagen Original

Sin mensaje oculto

Primer comando steghide –encinfo nos muestra todos los algoritmos disponible (heredados de la libreria libmcrypt)

[Steghide]$ ls
Descanso.jpg Mensaje.txt[Steghide]$ steghide –encinfo
algoritmos d/encriptado:
<algoritmo>: <formas reconocidas>…
cast-128: cbc cfb ctr ecb ncfb nofb ofb
gost: cbc cfb ctr ecb ncfb nofb ofb
rijndael-128: cbc cfb ctr ecb ncfb nofb ofb
twofish: cbc cfb ctr ecb ncfb nofb ofb
arcfour: stream
cast-256: cbc cfb ctr ecb ncfb nofb ofb
loki97: cbc cfb ctr ecb ncfb nofb ofb
rijndael-192: cbc cfb ctr ecb ncfb nofb ofb
saferplus: cbc cfb ctr ecb ncfb nofb ofb
wake: stream
des: cbc cfb ctr ecb ncfb nofb ofb
rijndael-256: cbc cfb ctr ecb ncfb nofb ofb
serpent: cbc cfb ctr ecb ncfb nofb ofb
xtea: cbc cfb ctr ecb ncfb nofb ofb
blowfish: cbc cfb ctr ecb ncfb nofb ofb
enigma: stream
rc2: cbc cfb ctr ecb ncfb nofb ofb
tripledes: cbc cfb ctr ecb ncfb nofb ofb

También es recomendable para saber el espacio que tenemos para ocultar el mensaje,

steghide –info Descanso.jpg

[Steghide]$ steghide –info Descanso.jpg
“Descanso.jpg”:
formato: jpeg
capacidad: 9,6 KB
Intenta informarse sobre los datos adjuntos? (s/n) n

¿Como introducir mensaje.txt en Descanso.jpg ?

Nos pedirá una contraseña desde el terminal (-cf fichero contenedor, -ef fichero embebido )

steghide embed  -cf Descanso.jpg -ef Mensaje.txt

Añadimos algunos argumentos para su funcionamiento

  • -z para el nivel de compresión (1-9)
  • -e tipo de algoritmo,
  • -p contraseña (passphrase).
  • -v información detallada (verbose).

steghide embed -e rijndael-256 -z 9 -v -p nukebull -cf Descanso.jpg -ef Mensaje.txt

[Steghide]$ steghide embed -e rijndael-256 -z 9 -v -p nukebull -cf Descanso.jpg -ef Mensaje.txt
leyendo archivo secreto “Mensaje.txt”… hecho
leyendo archivo d/portada “Descanso.jpg”… hecho
creando el gr�fico… 154 valores d/muestra, 567 v�rtices, 104113 bordes
ejecutando Static Minimum Degree Construction Heuristic… 99,8% (1,0) hecho

El proceso de extracción  lo realizaremos utilizando (-sf fichero esteganográfico) y nos creara el fichero oculto en la carpeta que ejecutemos.

esteghide extract -sf Descanso.jpg

[Steghide]$ steghide extract -sf Descanso.jpg
Anotar salvoconducto:
anot� los datos extra�dos e/”Mensaje.txt”.[Steghide]$ steghide –info Descanso.jpg
“Descanso.jpg”:
formato: jpeg
capacidad: 9,6 KB
�Intenta informarse sobre los datos adjuntos? (s/n) s
Anotar salvoconducto:
archivo adjunto “Mensaje.txt”:
tama�o: 59,0 Byte
encriptado: rijndael-256, cbc
compactado: si

Imagen Esteganográfica

password nukebull

Notas Importantes

  • Al subir imágenes a twiter, wassap, telegram,.. le aplican un algoritmo para comprimir jpg que destruye el menaje oculto. (comprobado)
  • Para no destruirlo lo podéis subir a Google Drive  (comprobado) Enlace G. Drive
  • La imagen subida en una pagina web también conserva el mensaje. La de esta pagina sirve de ejemplo.

Podcasting – Podcast

El podcasting o podcast consiste en la distribución de archivos multimedia (normalmente audio o vídeo que suelen ser de larga duración, que pueden incluir texto como subtítulos y notas) mediante un sistema de redifusión (RSS) que permite opcionalmente suscribirse y usar un programa que lo descarga para que el usuario lo escuche. (wikipedia)

Es una alternativa a la radio convencional, sobre todo en  temas que comercialmente no atraen a las grandes emisoras. En nuestro caso, el software libre, linux,.. prácticamente no es difundido por emisoras convencionales. Ademas muchos podcast no están sujetos a la censura institucional, espesando conocimientos y opiniones de una forma más libre
Existen muchos programas que nos permitirán automatizar las suscripciones y así poder escuchar a nuestros podcaster favoritos según añadan contenido. A continuación mostraré algunos programas para escuchar podcast. Y en sucesivas entradas haré referencia a alguno de mis podcaster favoritos.

Programas (Linux)

gPodder (https://gpodder.net/ )

Se instala desde el repositorio de la mayoría de distribuciones. Y te permite bajar los audios a tu pc para escucharlos posteriormente.

Programas para el Teléfono.

Las aplicaciones son similares y muy fáciles de utilizar. Nos permiten gestionar nuestros Podcast/Podcaster favoritos, la segunda y tercera ademas de la versión gratuita tienen una premium con más funciones.

Google Podcast
Pertenece a Google es gratuito y se integra perfectamente en  Android.

 

iVoox
Valido para iPhone y Android, tiene una suscripción premium con mayor calidad de audio.

 

CastBox
Similar a iVoox y también tiene suscripción premium si se desea.

Programas para el Navegador.

Tanto iVoox (https://www.ivoox.com/) como CastBox (https://castbox.fm/) tienen versión para tu navegador desde su página web.

También muchos podcast tienen su propia página desde la que podréis descargaros sus archivos en distintas calidades de audio.

 

Bibliografia.

https://es.wikipedia.org/wiki/Podcasting

Cifrado usando XOR. C++ y Linux

Hoy aplicaremos un tipo de cifrado basado en un operador lógico XOR. Programaremos en C++ y compilaremos desde el terminal.
El operador XOR opera a nivel de bit
A ^ A = 1
A ^ B = 0
(A ^ B) ^ B = B

Como ejemplo aplicaremos a la palabra nuke el operador XOR (la contraseña de cifrado que usaremos bull)

XOR
Cifrado XOR

En este tipo de cifrado, si se vuelve a cifrar una segunda vez con la misma clave obtengo el mensaje original. Usado de forma aislada como único método de cifrado es muy débil, pero esta incluido en algoritmos más complejos como puede ser AES.

Programa de cifrado usando XOR

  • Crearemos un archivo llamado XOR.cpp
  • El programa nos debe pedir la frase de cifrado y la clave.
  • Debe aplicar el operador XOR bit a bit.
  • Nos mostrará por pantalla como se va aplicando el operador letra a letra y la frase final cifrada.

Puedes copiarlo y pegarlo con cualquier editor de texto para hacer modificaciones y pruebas

#include <iostream>
#include <string>
using namespace std;int main(){// Variables
int a,b,c;
int i,j;
string frase;
string clave;string res;//Entrada de Datos
cout << “Este programa encripta una frase usando el operador XOR”;
cout << “n”;
cout << “Introduce la frase para encriptarn”;
getline(cin,frase);
cout << “clave:”;
cin >> clave;
res = frase;//Se aplica el operador XOR
for(i = 0; i < frase.length() ; i++){
a = int (frase[i]);
j = i % clave.length();
b = int (clave[j]);
c = a ^ b;
res[i] = char( c );

//Resultados en pantalla
cout << frase[i]<<” XOR ” ;
cout << clave[j];
cout << ” = ” << res[i] ; cout << “n”; }
cout << “La frase encriptada es:n”;
cout << res;
cout << “n”;
return 0;
}

Compilando y Ejecutando.

Compilamos desde el terminal usando; g++ -o XOR XOR.cpp
Y ejeculamos ./XOR
En el ejemplo usaremos como frase para cifrar: nukebull y clave: +-*
Y lo volveremos a aplicar una segunda vez al resultado con la misma clave para probar que obtenemos la frase original.

[nukebull XOR]$ g++ -o XOR XOR.cpp
[nukebull XOR]$ ./XOR
Este programa encripta una frase usando el operador XOR
Introduce una frase para encriptar
nukebull
clave:+-*
n XOR + = E
u XOR - = X
k XOR * = A
e XOR + = N
b XOR - = O
u XOR * = _
l XOR + = G
l XOR - = A
La frase encriptada es:
EXANO_GA

[nukebull XOR]$ ./XOR
Este programa encripta una frase usando el operador XOR
Introduce una frase para encriptar
EXANO_GA
clave:+-*
E XOR + = n
X XOR - = u
A XOR * = k
N XOR + = e
O XOR - = b
_ XOR * = u
G XOR + = l
A XOR - = l
La frase encriptada es:
nukebull

Cualquier consulta estaré encantado de responderos.

Cifrado simétrico con GnuPG (Linux)

Esta entrada es para la consola de Linux  Empezaremos viendo que es GnuPG y como se utiliza gpg para cifrar de forma simétrica. Crearemos scripts a modo de ejemplo

GnuPG

GNU Privacy Guard (GnuPG o GPG) es una herramienta de cifrado y firmas digitales desarrollado por Werner Koch, que viene a ser un reemplazo del PGP (Pretty Good Privacy) pero con la principal diferencia que es software libre licenciado bajo la GPL. GPG utiliza el estándar del IETF denominado OpenPGP. (Wiki)

Es un software utilizado para encriptación asimétrica , muy útil para enviar correo cifrado, y para firmar documentos. Desde la consola lo utilizaremos mediante el comando gpg. Presente en casi todas las distribuciones de Linux. Aconsejo usar el repositorio de tu distro si aún no lo tienes.

Cuando trabajamos con encriptación simétrica, una clave muy débil invalida la fortaleza de cualquier algoritmo. Aconsejo mirar anterior entrada Encriptacion Simetrica

Para entornos gráfico recomiendo Kleopatra, buena donde las haya esta aplicación.

¿Que algoritmos puedo usar?

Para ver con que algoritmos contamos en nuestro PC escribamos en la consola:

gpg –version


gpg (GnuPG) 2.2.10
libgcrypt 1.8.3
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html&gt;
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Home: /home/nukebull/.gnupg
Algoritmos disponibles:
Clave pública: RSA, ELG, DSA, ECDH, ECDSA, EDDSA
Cifrado: IDEA, 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, 
CAMELLIA128, CAMELLIA192, CAMELLIA256
Resumen: SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compresión: Sin comprimir, ZIP, ZLIB, BZIP2


Después de Cifrado, muestra todos los algoritmos que pode,os utilizar. IDEA,3DES,…,CAMELIA256

Como encriptar de forma simetrica usando gpg

Cifraremos el archivo ArchivoDeEntrada usando el algoritmo twofish y obtendremos el archivo cifrado ArchivoDeSalida

gpg -o ArchivoDeSalida -ca –cipher-algo twofish ArchivoDeEntrada

  • -o Crea el Archivo de salida
  • -c cifra de forma simétrica
  • -d descifra
  • -a Armadura ASCII (no es necesario, solo si se desea)
  • –cipher-algo elije el algoritmo de cifrado, en el ejemplo twofish (si no se pone elige AES256 por defecto, para la versión actual de gpg)

Crear varias capas usando un script de Bash

Supongamos que tenemos El archivo Datos.txt y lo tenemos que subir a Dropbox para la consulta con otras personas.

Lo cifraremos para que no sea de dominio publico. Y también usaremos vtres capas, con distintos algoritmos, por si un de ellos fuese roto en el futuro, no tener los datos expuestos.

Primer script, se encarga de encriptar(en mi caso lo he llamado cripto, y le doy permisos con chmod +x cripto)

En mi caso para ejecutarlo ./cripto

 


#!/bin/bash

#Vicente Parra
#www.nukebull.com
# Encriptador por capas camellia256 + twofish + AES256 + ARMOR ASCII

# Encriptac. gpg simetrica

gpg -o Datos.cam -c –cipher-algo camellia256 Datos.txt
echo “camellia256”

gpg -o Datos.two -c –cipher-algo twofish Datos.cam
echo “camellia256 + twofish”

# borra los fichero intermedio  si se desea omitir comentar la siguiente linea
rm Datos.cam

gpg -o DatosDropBox -ca –cipher-algo aes256 Datos.two
echo “camellia256 + twofish +AES256+ARMOR ASCII”

# borra los fichero intermedio , si se desea omitir comentar la siguiente linea
rm Datos.two


 

Segundo script, se encarga de desencriptar(en mi caso lo he llamado decripto, y le doy permisos con chmod +x decripto)

Para ejecutarlo ./decripto

 


#!/bin/bash

#Vicente Parra
#www.nukebull.com
# DesEncriptador por capas camellia256 + twofish + AES256 + ARMOR ASCII

# Encriptac. gpg simetrica (desencriptar)

gpg -o Datos.uno -d DatosDropBox
echo “AES256”

gpg -o Datos.dos -d Datos.uno
echo “twofish+ AES256”

# borra los fichero intermedio one si se desea omitir comentar la siguiente linea
rm Datos.uno

gpg -o DatosCliente.txt -d Datos.dos
echo “camellia256 + twofish +AES256+ARMOR ASCII”

# borra los fichero intermedio two, si se desea omitir comentar la siguiente linea
rm Datos.dos


La contraseña dentro del script

En el siguiente ejemplo la password no nos la pide, va dentro del script para veáis como se utiliza, es necesario poner –batch para que funcione en mi versión de gpg

 


#!/bin/bash

#Vicente Parra
#www.nukebull.com
# Encriptador por capas camellia256 + twofish + AES256 + ARMOR ASCII

#Variables-Password
p1=”218e13a205e802f2c”
p2=”9945e6fae4bacbbb0″
p3=”265e779f40fcbfbcd”

# Encriptac. gpg simetrica

gpg –batch -o Datos.cam -c –cipher-algo camellia256 –passphrase $p1 Datos.txt
echo “camellia256”

gpg –batch -o Datos.two -c –cipher-algo twofish –passphrase $p2 Datos.cam
echo “camellia256 + twofish”

# borra los fichero intermedio one si se desea omitir comentar la siguiente linea
rm Datos.cam

gpg –batch -o DatosDropBox -ca –cipher-algo aes256 –passphrase $p3 Datos.two
echo “camellia256 + twofish +AES256+ARMOR ASCII”

# borra los fichero intermedio two, si se desea omitir comentar la siguiente linea
rm Datos.two


Bibliografía para ampliar.

Enlace muy interesante que amplia conocimientos >> Enlace

Página del proyecto https://gnupg.org/

Doña wiki >>  Enlace Wiki

Jugar en Linux CSGO

Steam permite jugar cada día a más juegos en Linux mediante visualización. No todos están soportados y al no funcionar de forma nativa te hace perder rendimiento. El rendimiento final va depender sobre todo del hardware de tu pc.

En lo sucesivo probaré varios juego, que iré mostrando en sucesivas entradas, para que veáis su funcionamiento.

Mi equipo es:

  • AMD Athlon(tm) X4 860K (2 nucleos – 4 hilos)
  • MSI AMD Radeon R9 280 3Gb
  • Ram 8Gb DDR3
  • Resolución de pantalla 1080p
  • Sistema operativo Antergos (basado en Arch Linux)
  • Los juegos corren mediante Steam (Runtime), versión virtualizada de Steam.

El primero que mostraré es un clásico de Valve, quizá uno de los más odiados y amados.

CSGO. (Jugado sin capturar pantalla 60 fps 1080p)

Para cualquier consulta, dejadme un comentario.

Backup con Bash y AES Crypt (Terminal Linux)

Haremos un backup, mediante un script con bash, con el terminal de Linux. Usaremos el editor gedit, los comandos tar (compresor empaquetador ), aescrypt (Encriptar), rm (borrar archivos).

Para  estos script debemos tener instalado aescrypt, usar el terminal, un editor tipo vim, gedit, … y ganas de teclear.

 

Instalar AES Crypt

En muchas distribuciones lo encontraras en su repositorio. Si no estuviera sigue los siguientes pasos:

Descarga desde la pagina del proyecto https://www.aescrypt.com/download/, elegir entre 32-64 bits y descomprimir el fichero desde la carpeta donde lo has descargado.

gzip -d AESCrypt-GUI-3.11-Linux-x86_64-Install.gz

darle premiso de Ejecución

chmod +x AESCrypt-GUI-3.11-Linux-x86_64-Install

Ejecuta el instalador.

./AESCrypt-GUI-3.11-Linux-x86_64-Install

 

¿Como creo un script de bash ejecutable?

Crearemos un documento de texto, en la primera linea debemos escribir

#!/bin/bash

luego escribir el codigo y darle permisos de ejecucion

chmod +x TuScriptBash

¿Que queremos hacer en este script?

  • Tenemos una carpeta con archivos y carpetas que queremos guardar en un archivo comprimido
  • También encriptaremos mediante al algoritmo AES256 dicho archivo comprimido.
  • Haremos dos script uno empaquetará y encriptará y el otro desencriptará y desempaquetará.
  • La password la pide el terminal mediante el uso de read -s.

Script para Encriptar (nombre del programa AESENCRYT)

#!/bin/bash
#Vicente Parra
#www.nukebull.com
# AES Crypt + Tar

#Variables Password entarada read -s oculta

echo “Introduce contraseña”
read -s Password

# tar + gzip no incluyo el ejecutable (-c crea archivo , z comprime gzip, -v vervose , -f  le da al archivo la terminación tar)
tar -czvf backup.tar.gz –exclude=”AESENCRYPT” *

# Encriptac. AES Crypt (-e encrypt , -p password)
aescrypt -e -p $Password backup.tar.gz

# borra los fichero intermedio tar.gz si se desea omitir comentar la siguiente linea
rm backup.tar.gz

echo Script Terminado

 

Antes de ejecutar acordarse de darle permisos.

chmod +x AESCRYPT

Para ejecutar  desde la carpeta que que nos interese hacer el backup.

./AESCRYPT

 

Script para Desencriptar ( nombre del programa AESDECRYP)

#!/bin/bash
#Vicente Parra
#www.nukebull.com
# desencriptador AES Crypt Tar

#Variables Password entarada read -s oculta
echo “Introduce contraseña”
read -s Password

# Desencriptar. AESCRYPT (-d decrypt, -p Password)
aescrypt -d -p $Password backup.tar.gz.aes

# borra los fichero intermedio tar.gz.aes si se desea desactivar comentar la siguiente linea
rm backup.tar.gz.aes

# tar + gzip  (-x desenpaqueta )
tar -xzvf backup.tar.gz

# borra los fichero intermedio tar.gz si se desea desactivar comentar la siguiente linea
rm backup.tar.gz

# borra los fichero AESDECRYPT si se desea activar descomentar la siguiente linea
# rm AESDECRYPT

 

Antes de ejecutar acordarse de darle permisos.

chmod +x AESDECRYPT

Para ejecutar

./AESDECRYPT

Podemos añadir más instrucciones, como copiar o mover a una carpeta especifica con cp o mv,, usar gpg (GnuPG) para encriptar de forma asimétrica en vez de aescript. Y otras muchas caracteristicas.

Si deseáis cualquier explicación de cualquier comando o de parte del script. Mandarme un comentario, Gracias

 

 

Keepass Password Safe

Keepass password Safe, desde hace años es es mi gestor de contraseñas, es software libre, y lo podéis descargar en la pestaña de descargas.

Es un gestor de contraseñas que guarda todos los datos en un archivo cifrado mediante el algoritmo AES256, aunque existen pugins con otros algoritmos.

La ventaja de guardarlo en un solo archivo hace que podamos guardar una copia en donde queramos, Se puede usar Windows, Linux y Android.

 

Pagina del proyecto: Keepass Password Safe
Versión Android que recomiendo, ya que no se conecta a Internet: keepass2 Ofline

¿Como se usa?

El programa es sencillo, mediante una contraseña maestra, crea un archivo encriptado donde guardará el resto de claves. También permite generar contraseñas seguras mediante un generador de contraseña.Se pueden ordenar por grupos.Para Linux en el repositorio encontrareis KeepasXC, con una GUI mejorada.
En el vídeo anterior se ve una muestra de como funciona.

Portabilidad

El archivo .kdbx contiene todas las claves, este mismo archivo lo podremos abrir desde el PC o desde el Movil,. Si no queremos pasarlo con todas las contraseñs, abrimos una copia borramos lo que no queremos que llegue al móvil y guardamos con otro nombre.
Por ejemplo podemos crear archivos; movil.kdbx, bancos.kdbx, foros.Kbdx si no las queremos en uno solo.

 

Encriptación Simétrica, Nivel Usuario.

La criptografía es una palabra de origen griego (κρύπτos (kryptós), «oculto», y γραφή (graphé), «grafo» o «escritura») que significa escritura oculta.
Un ejemplo sencillo de entender, seria invertir las palabras, aunque facil de descifrar.
Que buen dia>>>> Euq neub aid.

Esta entrada esta orientada a usuarios domestico, para puedan crear contraseñas seguras, guardar fotos y archivos. También pequeñas empresas que quieran guardar archivos de forma segura.
Daré prioridad a programas que estén en Windows y sean gratuitos, ye que son más accesible para todos.
También creare posteriormente otra entrada para Linux con script para bash usando criptografía híbrida, con un nivel menos básico.

La criptografía la podemos dividir en tres grandes grupos; Simétrica, Asimétrica e Híbrida (mezcla de las dos anteriores).
En esta entrada nos centraremos en la criptografía simétrica, como es, como usarla y que programas utilizar.

¿Que es la Criptografía Simétrica ?

Hablaremos de criptografía simétrica cuando con la misma clave podremos encriptar el mensaje (hacerlo oculto) y desencriptar (hacerlo visible).
Se utiliza principalmente para guardar archivos, guardar las contraseñas, subir archivos a la nube.
En el mundo actual donde prácticamente todo esta informatizado, existen métodos muy seguros al alcance de todos.

¿Dónde reside la fortaleza de este tipo de encriptación?

La forma más común de romper este tipo de encriptación se llama fuerza bruta, es simplemente probar claves hasta dar con ella o buscarla en un archivo, con las claves mas utilizadas. La fortaleza de este sistema esta en la clave, si esta es muy sencilla o son nombres comunes tu clave es poco efectiva o vulnerable.
Por tanto, es necesario crear una clave difícil, unas 24 cifras, incluyendo números, mayúsculas y minúsculas, (128 bits), con este tipo de claves tu archivo se puede considerar secreto con los actuales algoritmos o métodos de cifrado. Este seria un tipo de clave segura: jPChasLdbPeGbX4vYs62wuSU
En este tipo de cifrado lo más importante es la clave, independientemente del programa utilizado.
También es muy importante guardar la clave de forma segura, más abajo veremos gestores de contraseñas.

¿Qué algoritmo/método usar?

Normalmente a nivel usuario domestico aconsejo AES128 o AES256 es un estandar que encontrareis en la mayoria de programas y aún no se ha roto.
Existen más algoritmos para cifrar nuestros archivos, los más comunes son Twofish, Ghost,camellia,.. Todos a dia de hoy son muy buenos.
Para el usuario común, usando AES128 y una buena clave será suficiente, de echo este nivel de encriptación lo usan estados y empresas importantes.
Si eres de los que guarda tus datos comprometidos en la red o eres un poco paranoico, es aconsejable usar varias capas, si un algoritmo se consigue romper el otro u otros lo protegerán.

¿Programas para cifrar?

En esta entrada pondré varios programas de encriptación que estoy usando desde hace tiempo con muy buen resultado. En posteriores entradas explicare cada uno de ellos individualmente explicando como se utilizan.

  • Gestor de contraseñas:  KeePass Password Safe
    Es gratuito y lo encontramos en cualquier plataforma incluido Android. Te permite guardar todas tus contraseñas de forma segura. Enlace en el Blog Keepass Password Safe

  • Cifrar archivos: AES Crypt  es gratuito y sencillo de utilizar, junto a un programa para comprimir archivos (wiinzip, winrar,  7zip, Tar) tendremos una poderosa herramienta. Permite cifrar cualquier archivo con el botón derecho del ratón.

  • Guardar archivos en la nube (Cloud): Cryptomator es gratuito en versión PC y de pago para IOS y Android (4.99€) Todos tus archivos en Dropbox, Drive, .. estarán cifrados y tan solo tu podrás verlos.

  • Caja de Seguridad,/Disco virtual Encriptado: Veracrypt es gratuito y con muchas opciones. Crea un archivo cifrado del tamaño que configures y lo podrás abrir como si fuera otro disco duro.

Estos cuatros programas gratuitos nos permitirán guardar información de forma segura y ser nosotros los dueños de nuestra intimidad.
Hay otros programas de pago, algunos muy buenos, que se tratarán en otras entradas. También mira tu antivirus, puede que tenga  funciones de encriptación incluidas.

Si necesitáis ayuda, pon un comentario o mándame un email. Os contestare encantado