SaveSaveSaveSave ← Todas las guías
Español

Traducción asistida por máquina, no revisada por hablantes nativos. En caso de duda, prevalece la versión en inglés.

Guía · Riesgos de mensajes · · por Stefan Tsezarov · actualizada el

El texto que no ves

Dos mensajes pueden verse exactamente iguales y contener caracteres completamente distintos.

Copias un mensaje.

Parece normal.

Tres frases corrientes. Nada raro.

Lo pegas en un documento, una web, una wallet o un asistente de IA.

Y de repente pasa algo que el mensaje, tal como lo viste, nunca pareció decir.

¿Cómo?

Porque lo que ves en tu pantalla no es necesariamente todo lo que hay dentro del texto.

Algunos caracteres no ocupan ningún espacio visible.

Siguen ahí.

Se pueden copiar, pegar, guardar y procesar.

Solo que no los ves.


Tu ordenador no ve las letras como tú

Cuando miras una frase, ves formas.

Tu ordenador ve datos.

La letra A, por ejemplo, se representa con un carácter Unicode que tiene un punto de código concreto. Un espacio es otro carácter. Cada letra, número, signo de puntuación y muchos otros símbolos tienen su propia representación.

Pero no todos los caracteres producen una forma visible.

Algunos caracteres le dicen al software cómo debe comportarse el texto.

Pueden decirle a un programa:

Así que puedes tener dos textos que se ven idénticos y que son secuencias de caracteres distintas.

Esa diferencia puede importar.

Mucho.

Tres tipos de texto invisible que conviene conocer

Hay varios mecanismos distintos, pero tres son especialmente útiles de entender.

1. Caracteres que no aparecen

Se suelen llamar caracteres de ancho cero.

Algunos ejemplos son el espacio de ancho cero, el unidor de ancho cero y el unidor de palabras.

Ocupan una posición en el texto, pero no producen píxeles visibles.

Por ejemplo, estas dos palabras pueden verse idénticas:

Dos palabras · una no es lo que parece

payment

pay​ment

primera: 7 caracteressegunda: 8 caracteres

Dentro de la segunda hay un carácter invisible.

Probablemente no lo ves.

Tu ordenador, sí.

Eso significa que las dos cadenas no son idénticas en realidad.

Puede afectar a búsquedas, filtros, nombres de usuario, identificadores y otros sistemas que comparan los caracteres subyacentes en lugar de lo que ve una persona.

Y hay un motivo legítimo por el que existen algunos de estos caracteres.

Volveremos a eso.

2. Caracteres que cambian el orden que ves

Algunos caracteres invisibles afectan a la dirección del texto.

Son necesarios porque idiomas como el árabe y el hebreo se escriben de derecha a izquierda, mientras que el español se escribe de izquierda a derecha.

Una frase que mezcla ambos puede necesitar instrucciones que digan al software cómo mostrar cada parte.

Esas instrucciones pueden ser útiles.

Pero también se puede abusar de ellas.

Un carácter de control de dirección puede hacer que los caracteres que guarda un ordenador aparezcan en pantalla en otro orden.

Eso crea un problema de seguridad evidente.

Un nombre de archivo, por ejemplo, podría parecer que termina en una extensión mientras su secuencia real de caracteres dice otra cosa.

El mismo principio puede importar en el código fuente.

Quien revisa ve una cosa.

El ordenador procesa otra.

3. Caracteres que pueden llevar un mensaje invisible

Este es el raro.

Unicode contiene un rango llamado bloque Tags.

Estos caracteres se diseñaron para etiquetar y normalmente son invisibles cuando se muestran.

Lo interesante es que cada carácter de etiqueta puede representar un carácter ASCII corriente.

Si juntas suficientes, pueden codificar texto.

Por eso una frase puede contener una cadena adicional de caracteres que no aparece en pantalla.

A tus ojos, el mensaje puede parecer un saludo completamente normal.

Para un software que lee los caracteres subyacentes, puede haber mucho más.

Y esa diferencia se vuelve especialmente interesante cuando el destino es un asistente de IA.

Una IA no ve tu mensaje como una foto de la pantalla.

Procesa los caracteres.

Así que algo que tú no ves puede seguir formando parte de la entrada.

Así se ve

Toma esta frase:

Send the payment to the address below.

Parece normal, ¿verdad?

Ahora imagina que se le han insertado caracteres invisibles.

En tu pantalla puede seguir viéndose así, y esta es la de verdad, preparada para que la pruebes:

Un ejemplo preparado · selecciónalo, cópialo, analízalo

Send the​ payment⁠ to the​ address below.󠁨󠁩󠁤󠁤󠁥󠁮

caracteres visibles: 38caracteres reales: 47diferencia: 9

Pero por debajo, puede que el ordenador tenga caracteres adicionales.

Por ejemplo:

La misma frase, descrita

Lo que ves:

Send the payment to the address below.

Lo que recibe el ordenador:

Send the invisible payment invisible … TAGS

La frase visible no ha cambiado.

La cadena subyacente, sí.

Esa es la idea importante.

Misma apariencia. Datos distintos.

Si pasas el ejemplo preparado por un escáner, el escáner puede identificar esos caracteres aunque tus ojos no puedan.

Si vuelves a escribir a mano la frase visible, esos caracteres ocultos no vienen con ella.

Ese es todo el truco.

La letra que no es la letra

Los caracteres invisibles no son el único problema.

A veces el carácter se ve perfectamente.

Solo que no es el carácter que crees.

Fíjate en estos dos:

Misma forma · caracteres distintos

savesavesave

sаvesavesave

segunda cadena, 2.º carácter: cirílico U+0430no latino U+0061

Son casi imposibles de distinguir.

Pero mira bien el segundo.

El segundo carácter no es la letra latina a.

Es una а cirílica.

Se parecen.

Son caracteres distintos.

Esa técnica se conoce como ataque de homoglifos.

La misma idea se puede usar con nombres de usuario, nombres de dominio, nombres de tokens y otros identificadores.

Una cuenta falsa puede usar un carácter parecido.

Una web falsa puede usar un dominio parecido.

Para una persona, el nombre puede parecer conocido.

Para un ordenador, es una cadena completamente distinta.

¿Dónde puede causar problemas de verdad?

No es solo un truco raro de Unicode.

Importa en cualquier sitio donde el texto se copia, se compara o se usa para actuar.

Asistentes de IA

Pegas un mensaje en un asistente de IA.

Ves una pregunta.

El texto subyacente puede contener caracteres que no ves.

Como el asistente procesa el texto real y no solo su aspecto, esos caracteres pasan a formar parte de la entrada.

Por eso las comprobaciones de caracteres invisibles pueden ser útiles antes de pegar texto no fiable en un sistema que puede actuar o procesar información sensible.

Nombres de usuario y de cuenta

Dos cuentas pueden parecer que tienen el mismo nombre y contener caracteres distintos.

Eso hace que una suplantación sea mucho más difícil de notar.

Enlaces y dominios

Un enlace puede contener caracteres que se parecen a letras conocidas.

El nombre que reconoces no es necesariamente el dominio exacto que crees.

Código

Los caracteres de control de dirección y otros caracteres Unicode poco habituales pueden dificultar la revisión correcta del código fuente.

Quien desarrolla ve el texto mostrado.

El compilador ve los caracteres reales.

Búsqueda y filtrado

Un filtro normalmente compara cadenas.

Inserta un carácter invisible y la cadena cambia.

Eso puede afectar a búsquedas, listas de bloqueo, sistemas de moderación y otras herramientas que procesan texto.

¿Cómo puedes comprobarlo?

No hace falta que te conviertas en experto en Unicode.

Hay unas cuantas comprobaciones sencillas.

COMPROBACIÓN 1: analiza el texto

Pega el texto sospechoso en un escáner de seguridad de caracteres.

Un escáner útil debería decirte:

Eso es lo que el escáner de esta web está pensado para mostrar.

Lo importante es que te diga qué ha encontrado de verdad, en lugar de darte simplemente una luz verde o roja misteriosa.

COMPROBACIÓN 2: compara el número de caracteres

Es una comprobación rápida de sentido común.

Si una frase parece tener 38 caracteres pero un contador indica 47, hay una diferencia que vale la pena investigar.

Un recuento de caracteres no te dirá cuáles son los caracteres de más.

Pero sí puede decirte que hay algo que no estás viendo.

COMPROBACIÓN 3: vuelve a escribir el texto cuando tenga sentido

Si alguien te envía una instrucción corta y no necesitas conservar el formato original, escribir a mano la parte importante puede eliminar los caracteres invisibles del texto copiado.

Pero recuerda:

Volver a escribirlo no hace que el destino sea fiable.

Si alguien te envía una dirección web sospechosa, por ejemplo, escribirla a mano no demuestra que la web sea legítima.

Es solo una forma de evitar caracteres ocultos en el texto que copias.

COMPROBACIÓN 4: lee el dominio real

No te fíes solo de reconocer el aspecto de un dominio.

Si un enlace importa, comprueba el dominio real.

Para cuentas importantes, usa un marcador que ya tengas guardado o escribe tú la dirección conocida en lugar de seguir un enlace inesperado.

El mismo principio vale para nombres de usuario y direcciones de wallet:

reconocer la forma no es lo mismo que verificar los caracteres.

No te alarmes si encuentras un carácter invisible

Esto es importante.

Invisible no significa automáticamente malicioso.

Algunos caracteres Unicode invisibles existen porque la gente los necesita de verdad.

Los unidores de ancho cero, por ejemplo, pueden afectar a cómo se enlazan los caracteres en varios sistemas de escritura.

También se usan en secuencias de emojis.

Los caracteres de control de dirección son necesarios para mostrar correctamente texto que mezcla escrituras de izquierda a derecha y de derecha a izquierda.

Así que encontrar un carácter invisible no significa automáticamente:

«Esto es un ataque».

Significa:

Aquí hay algo que no veo.

Qué significa depende del contexto.

¿Quién envió el texto?

¿Qué te pide que hagas?

¿Dónde estás a punto de pegarlo?

¿Va a un asistente de IA, una wallet, una web, un terminal o algún otro sistema que actuará con él?

Esas preguntas importan.

El bloque Tags merece una atención especial

Los caracteres Tags son poco habituales porque su función es representar información sin dejar de ser invisibles al mostrar texto normal.

Si un desconocido te envía un mensaje con una secuencia inesperada de ellos, merece la pena investigarlo.

Un escáner puede revelar que los caracteres existen y, cuando proceda, decodificar el texto que representan.

Pero incluso entonces, detectarlo no te dice la intención de quien lo envió.

Te dice qué hay en el texto.

Es una respuesta mucho más útil y defendible.

Qué te dice un análisis limpio y qué no

Este es otro punto en el que las herramientas de seguridad tienen que ser honestas.

Un escáner detecta caracteres.

No lee la mente de las personas.

Si el escáner encuentra caracteres invisibles, puede decirte cuáles son.

No puede decirte quién los insertó.

No puede demostrar por qué se insertaron.

Y si no encuentra nada, eso no significa que el mensaje sea fiable.

Una frase de aspecto completamente normal puede contener una mentira, un enlace malicioso o una instrucción peligrosa.

Del mismo modo, un mensaje con un carácter invisible puede ser totalmente inofensivo.

La detección automática de homoglifos también tiene límites. Un escáner puede comprobar caracteres parecidos y conjuntos de caracteres conocidos, pero ninguna comprobación aislada debe tomarse como garantía de que se han encontrado todos los engaños visuales posibles.

El resultado te dice qué se ha detectado.

Sigues teniendo que decidir qué significa el texto y si confías en su origen.

El hábito sencillo que vale la pena crear

No hace falta que tengas miedo de copiar y pegar.

Solo ve más despacio cuando el texto que copias está a punto de hacer que pase algo.

Un asistente de IA.

Una wallet.

Una web.

Una línea de comandos.

Una cuenta.

Una transacción financiera.

Un fragmento de código.

Si no escribiste tú el texto, no sabes necesariamente todo lo que lleva dentro.

Y no tienes que adivinarlo.

Comprueba los caracteres antes de dejarles actuar.

Lleva segundos.

Y en muchos casos, la comprobación es gratis.


Este artículo tiene fines solo educativos. Explica cómo los caracteres Unicode invisibles, los controles de dirección del texto y los caracteres parecidos pueden afectar al texto digital. El ejemplo de esta página contiene caracteres invisibles insertados a propósito para que puedas examinar el mecanismo por tu cuenta. El texto oculto es inofensivo y existe solo como demostración.

Los caracteres invisibles sobreviven al copiar y pegar, así que el escáner los ve en cualquier caso. Para ahorrarte el pegado, usa el marcador para analizar el texto seleccionado.