Cifrar y descifrar información con PHP

En este artículo te voy a mostrar cómo encriptar y desencriptar datos usando PHP, para mantener los datos seguros. Veremos cómo:

  • Cifrar datos
  • Descifrar datos
  • Cifrar datos usando la contraseña de un usuario
  • Descifrar datos usando la contraseña de un usuario

Estos dos últimos ejemplos funcionan muy bien para cuando queremos asegurar la información incluso para los desarrolladores de la aplicación.

Recuerda que encriptar es distinto a hashear; porque cuando encriptamos un valor con PHP lo hacemos de esa manera para desencriptarlo más tarde. En cambio, al hashear una contraseña, su valor no es reversible.

La librería que vamos a usar para encriptar y desencriptar datos en PHP se llama php-encryption y su repositorio en GitHub lo puedes ver aquí.

Nota: voy a usar encriptar y cifrar como sinónimos para este post, al igual que desencriptar y descifrar.

(más…)

Un ransomware para Linux usando GPG

Hoy vamos a ver cómo crear un ransomware programado para Linux (será un shell script) utilizando GPG y el cifrado asimétrico; será más que nada un ejercicio didáctico pero claro que se puede llevar a la práctica (cosa que no recomiendo, en serio),

Si no sabes qué es un ransomware veamos lo que dice la wikipedia:

Un ransomware (del inglés ransom, «rescate», y ware, acortamiento de software) o “secuestro de datos” en español, es un tipo de programa dañino que restringe el acceso a determinadas partes o archivos del sistema operativo infectado, y pide un rescate a cambio de quitar esta restricción.

El ransomware que vamos a programar va a cifrar archivos con nuestra clave pública (que se va a descarga en la PC de la víctima), los cuales solo vamos a descifrar con nuestra clave privada (la cual solo posee el atacante).

Ransomware en Linux

Será un script de bash muy sencillo pero poderoso, con la única dependencia de GPG.

(más…)

Cifrar unidad de disco en Linux Ubuntu con LUKS

LUKS (Linux Unified Key Setup) es una especificación de cifrado de disco creado por Clemens Fruhwirth.

Esta especificación permite cifrar discos completos en Linux utilizando AES-256 y algunas otras características de seguridad.

En este post vamos a ver cómo cifrar una memoria USB aunque se puede cifrar un disco duro completo o una partición del mismo.

Así, podemos guardar datos con la seguridad de que nadie sin la clave podrá leerlos, sin importar el sistema operativo.

(más…)