StegCloak Ocultar secretos con caracteres invisibles en texto sin formato
StegCloak Ocultar secretos con caracteres invisibles en texto sin formato

StegCloak: La Capa de Invisibilidad para tus Textos

StegCloak es un módulo de esteganografía 100% JavaScript diseñado en estilo de programación funcional, para ocultar secretos dentro del texto comprimiendo y cifrando el secreto antes de encubrirlo con caracteres invisibles especiales unicode.

Se puede utilizar para hacer marcas de agua de forma segura, scripts invisibles en páginas web, textos en medios sociales o para cualquier otra comunicación encubierta. ¡Completamente invisible!

Características

  • Protege tu secreto invisible mediante contraseñas e integridad HMAC
  • Criptográficamente seguro al cifrar el secreto invisible usando AES-256-CTR.
  • ¡Utiliza 6 caracteres invisibles en unicode que funciona en todas partes en la web – Tweets, Gmail, WhatsApp, Telegram, Instagram, Facebook, y muchos más!
  • Máxima compresión para reducir la carga útil (LZ, Huffman).
  • Completamente invisible, utiliza caracteres de ancho cero en lugar de espacios en blanco o tabulaciones.
  • ¡Súper rápido! Oculta la página-fuente de Wikipedia para esteganografía (800 líneas y 205362 caracteres) dentro de un covertext de 3 palabras en menos de un segundo.
  • Ocultar archivos en cadenas se puede lograr subiendo el archivo a la nube y haciendo “stegcloaking” el enlace en la cadena
  • Escrito en estilo funcional puro.
  • Uso – Disponible como un módulo API, un CLI y también una Interfaz Web (optimizada con web workers).

Instalación

Usando npm:

npm install -g stegcloak

Usando npm (para usarlo localmente en tu programa),

npm install stegcloak

Cómo funciona

Cómo funciona StegCloak
Cómo funciona StegCloak

Principio de Kerckhoff

StegCloak cumple con el principio de Kerckhoff: Un sistema criptográfico ideal debería ser seguro incluso si todo lo relacionado con el sistema está expuesto al público, excepto la clave secreta.

Entonces, incluso si el atacante identifica cómo funciona el algoritmo, no debería ser posible revelar el mensaje secreto.

Ocultar secretos con StegCloak
Ocultar secretos con StegCloak

¿Lo descubres? …

Uso de la CLI

Ocultar

stegcloak hide

Opciones:

 hide [options] [secret] [cover]

  -fc, --fcover <file>      Extract cover text from file
  -fs, --fsecret <file>     Extract secret text from file
  -n, --nocrypt             If you don't need encryption (default: false)
  -i, --integrity           If additional security of preventing tampering is needed (default: false)
  -o, --output <output>     Stream the results to an output file
  -c, --config <file>       Config file
  -h, --help                display help for command

Revelar

stegcloak reveal

Opciones

reveal [message]

  -f, --file <file>       Extract message from file
  -cp, --clip             Copy message directly from clipboard
  -o, --output <output>   Stream the secret to an output file
  -c, --config <file>     Config file
  -h, --help              display help for command

Soporte adicional

La variable de entorno STEGCLOAK_PASSWORD, si se establece, se utilizará por defecto como contraseña.

Soporte de archivos de configuración para configurar StegCloak CLI y evitar los avisos:

--config

StegCloak tiene un CLI interactivo que pide al usuario la contraseña. La contraseña está enmascarada, ya que es un contenido sensible. Para evitar los avisos y utilizar StegCloak en otros programas, se puede pasar un archivo de configuración JSON con las entradas y la salida estándar necesarias.

Ocultar

{
  "secret": "Attack at Dawn!",
  "cover": "We need food supplies here",
  "password": "Allies need help",
  "output": "out.txt" // optional, default -> clipboard
  "integrity": false, // optional, default -> false
  "nocrypt": false // optional, default -> false
}

Revelar

{
  "message": "We need food supplies here", // StegCloaked message
  "password": "Allies need help",
  "output": "out.txt" // optional
}

La clave “password” puede hacerse opcional en tu configuración estableciéndola en una variable de entorno, STEGCLOAK_PASSWORD.

Si no se da la clave de “output“, StegCloak CLI aplica su acción por defecto de copiar el resultado al portapapeles si es una operación de ocultación, sino imprime el secreto descifrado a STDOUT si es una operación de revelación.

Uso de la API

const StegCloak = require('stegcloak');

const stegcloak = new StegCloak(true, false);  // Initializes with encryption true and hmac false for hiding

// Estos argumentos sólo se utilizan durante la ocultación

// Se puede cambiar más tarde cambiando las flags booleanas para stegcloak.encrypt y stegcloak.integrity

¿Qué es HMAC y lo necesito?

HMAC es un paso adicional de seguridad por fingerprint para evitar la manipulación de textos y para verificar si el mensaje recibido fue realmente enviado por el remitente previsto. Si los datos se envían a través de WhatsApp, Messenger o cualquier plataforma de redes sociales, esto ya está solucionado. Sin embargo, si estás utilizando StegCloak en tu programa para transmitir y recuperar de forma segura, esta opción se puede activar y StegCloak se encarga de ello.

Ocultar

stegcloak.hide(secret, password, cover) -> string
const magic = stegcloak.hide("Voldemort is back", "mischief managed", "The WiFi's not working here!");

// Utiliza los booleanos stegcloak.encrypt y stegcloak.integrity para la ofuscación

console.log(magic);  // The WiFi's not working here!

Revelar

stegcloak.reveal(data, password) -> string
const secret = stegcloak.reveal(magic, "mischief managed");

// Detecta automáticamente si se han realizado comprobaciones de cifrado o de integridad durante la ocultación y actúa en consecuencia

console.log(secret); // Voldemort is back

Esta increíble publicación de Francesco Soncina muestra cómo podrías utilizar la API de StegCloak para poner una marca de agua a cualquier texto de tu sitio web.

Importante

StegCloak no resuelve el problema de Alice-Bob-Warden, es poderoso sólo cuando la gente no lo está buscando y te ayuda a lograr eso muy bien, ¡dadas sus propiedades de invisibilidad en la web! Se puede utilizar con seguridad para hacer marcas de agua en foros, tweets invisibles, medios sociales, etc.

Por favor, no lo uses cuando sepas que hay alguien que está husmeando activamente tus datos, mirando los caracteres unicode a través de una herramienta de análisis de datos.

En ese caso, aunque no se pueda descifrar el secreto codificado, el hecho es que el vigilante (intermediario) sabe que se produjo alguna comunicación secreta, porque habría notado una cantidad inusual de caracteres especiales invisibles.

Recursos

Para conocer y comprender un poca más sobre la práctica de la esteganografía, revisa los siguientes artículos:

Dark Mode

stegcloak (este enlace se abre en una nueva ventana) por KuroLabs (este enlace se abre en una nueva ventana)

Hide secrets with invisible characters in plain text securely using passwords 🧙🏻‍♂️⭐

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda