Deprecated: Creation of dynamic property Timber\Site::$pingback is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Site.php on line 180

Deprecated: Creation of dynamic property Timber\User::$name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/User.php on line 118

Deprecated: Creation of dynamic property Timber\Post::$has_disclaimer is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_lock is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_edit_last is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_meta_box_present is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_send_notification is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_modify_title_and_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_heading is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$onesignal_notification_custom_content is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_tipologia is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_attributi is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_in_evidenza_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_inviato_in_newsletter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_fonte_url is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_category is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_blz_affiliation_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_content_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_attributes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_primary_speciali is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskw is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_metadesc is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_linkdex is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_content_score is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_focuskeywords is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_keywordsynonyms is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_wpseo_estimated-reading-time-minutes is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_thumbnail_id is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$response_body is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$_yoast_indexnow_last_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_date_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$ping_status is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_password is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_name is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$to_ping is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$pinged is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_modified_gmt is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_content_filtered is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$guid is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$menu_order is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$post_mime_type is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$comment_count is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71

Deprecated: Creation of dynamic property Timber\Post::$filter is deprecated in /var/www/html/web/app/themes/ilsoftware/vendor/timber/timber/lib/Core.php on line 71
Attenzione, questa frase contiene un messaggio nascosto

Attenzione, questa frase contiene un messaggio nascosto

Lo standard Unicode offre flessibilità nella rappresentazione dei caratteri, utilizzabile per nascondere informazioni attraverso i variation selectors. Paul Butler ha dimostrato come questi elementi possano incorporare dati invisibili all’occhio umano, ma rilevabili digitalmente.

Unicode è uno standard di codifica dei caratteri che consente di rappresentare un’ampia gamma di simboli, alfabeti ed emoji utilizzati in tutto il mondo. Basti pensare che a settembre 2024 lo Standard Unicode è cambiato ancora con l’introduzione di 5.000 nuovi caratteri. In un altro articolo abbiamo spiegato nel dettaglio come ottenere caratteri speciali da tastiera. La flessibilità di Unicode apre le porte all’uso di tecniche avanzate di steganografia, l’arte di nascondere informazioni all’interno di elementi apparentemente “insospettabili”.

L’ingegnere software Paul Butler ha voluto confermare uno degli esempi più interessanti di questa pratica, dimostrando come sia possibile “contrabbandare” dati arbitrari all’interno di caratteri Unicode, in particolare attraverso l’uso dei cosiddetti variation selectors.

Il sistema di codifica Unicode e i code points

In Unicode, ogni carattere è associato a un valore numerico chiamato code point, rappresentato nella forma U+XXXX (dove XXXX è un numero esadecimale). Ad esempio, il carattere `g` corrisponde a U+0067, una faccina sorridente a U+1F600.

Provate ad aprire il Blocco Note di Windows, scrivete 1F600, selezionate i caratteri appena inseriti quindi premete ALT+X: vedrete immediatamente comparire la faccina che ride.

Per rendere il sistema ancora più flessibile, Unicode include una funzionalità chiamata variation selector, che consente di specificare diverse varianti di un carattere senza modificarne la rappresentazione visiva. Esistono due categorie principali di variation selectors:

  • Standardized Variation Sequence (SVS)
  • Ideographic Variation Sequence (IVS)

Questi selector vanno da U+FE00 (VS-1) a U+E01EF (VS-256) e sono accodati a un carattere base per definirne una variante, senza però alterarne il rendering visibile. Questo significa che se il carattere `g` (U+0067) è fatto seguire da U+FE01 (VS-2), la resa grafica sarà sempre `g`, ma il codice sottostante includerà il selector, rilevabile solo tramite analisi binaria del testo.

Occultamento di dati attraverso Unicode

I variation selectors sono utilizzati per specificare varianti stilistiche e forme grafiche. Ad esempio, il simbolo di una mano che fa il segno “vittoria” può essere rappresentato nella forma classica oppure, tramite il variation selector si può indicare di renderlo come emoji.

In generale, i variation selectors sono adoperati al fine di garantire coerenza visiva e stilistica in contesti in cui è importante controllare l’aspetto di un carattere senza modificarne il significato.

Butler mette in evidenza il fatto che i variation selectors possono essere sfruttati per nascondere testi all’interno di semplici caratteri Unicode perché tali codici sono mantenuti anche quando il testo è copiato negli appunti e incollato (CTRL+C/CTRL+V).

In questo modo si possono trasferire dati invisibili all’occhio umano, che però rimangono fissati all’interno della rappresentazione digitale. Poiché esistono 256 variation selectors, è possibile codificare un byte di dati per ogni carattere.

La frase contenente il messaggio nascosto

Prendete la seguente frase di esempio:

Ce la giochiamo a birra e󠅆󠅙󠅦󠅑󠄐󠄹󠅜󠅃󠅟󠅖󠅤󠅧󠅑󠅢󠅕󠄞󠅙󠅤󠄜󠄐󠅕󠄐󠅞󠅟󠅞󠄐󠆳󠆘󠄐󠅥󠅞󠄐󠅣󠅕󠅗󠅢󠅕󠅤󠅟󠄑 salsicce?

All’apparenza non c’è di nulla di strano, a parte la citazione tratta da un film di Bud Spencer e Terence Hill. Provate però a selezionare la frase e a copiarla nell’applicazione di decodifica sviluppata da Butler. Dopo aver fatto copia e incolla, nel riquadro in basso vi apparirà magicamente il nostro messaggio segreto!

Come può accadere? Utilizzando poche righe di codice di programmazione (vedere il progetto su GitHub), è possibile convertire qualunque sequenza di caratteri (quella componente il messaggio segreto) in una successione di variation selectors, poi accodati a un carattere Unicode di base. Nel nostro caso abbiamo scelto U+0065 ovvero il carattere `e`.

Ecco quindi che la semplice congiunzione nella frase presentata in precedenza contiene il messaggio segreto.

Utilizzando sempre l’applicazione Web messa a punto da Butler e agendo sull’interruttore in alto in modo da selezionare Encode, potete inserire il vostro messaggio segreto e, appena più sotto, scegliere il carattere o il simbolo all’interno del quale nasconderlo.

Steganografia caratteri Unicode

Applicazioni e rischi

Poiché i variation selectors non alterano la resa visiva del testo, la tecnica illustrata da Butler potrebbe essere utilizzata per aggirare filtri basati sulla semplice analisi del testo.

Altre applicazioni possono essere il watermarking dei testi: senza modificare l’aspetto di un articolo, si può marcarlo digitalmente e capire se è stato copiato e incollato altrove. Non solo. Inviando versioni leggermente diverse di un testo a diversi destinatari (con variation selectors unici per ciascuno), è possibile tracciare l’origine di una fuga di informazioni in caso di divulgazioni non autorizzate.

Ancora, la tecnica può essere utilizzata per nascondere informazioni nei testi senza destare sospetti. Ad esempio, un intero file binario potrebbe essere convertito in una stringa Unicode e trasmesso tramite un semplice messaggio in chat.

I modelli generativi basati sull’AI sono in grado di scovare i messaggi segreti?

I tokenizer, componenti fondamentali per l’elaborazione del linguaggio naturale utilizzati dai moderni modelli generativi, sembrano generalmente preservare i variation selectors. Questo significa che, in teoria, i modelli AI hanno accesso a queste informazioni durante l’elaborazione del testo.

Nonostante la conservazione dei variation selectors, i modelli AI spesso non tentano di decodificarli. Ciò potrebbe essere dovuto a una combinazione di fattori, tra cui la scarsa presenza di questi elementi nei dati di addestramento o una prioritizzazione della “comprensione” testuale rispetto alla rappresentazione visiva dei caratteri.

Tuttavia, quando un modello è affiancato da un interprete di codice, le sue capacità di risoluzione di questi elementi migliorano notevolmente. Alcuni modelli, infatti, riescono a interpretare i variation selectors con successo, dimostrando che la loro gestione è nel raggio d’azione delle soluzioni AI.

Un caso interessante riguarda il modello Gemini 2.0 Flash di Google, che riesce a decodificare i variation selector in pochi secondi, utilizzando strumenti avanzati come Codename Goose e foreverVM. Questo risultato evidenzia come l’integrazione di componenti di interpretazione del codice possa migliorare significativamente la capacità di comprensione dei modelli di IA.

Claude di Anthopic utilizza un  impegnato nella risoluzione di un variation selector, con un processo più articolato, ma comunque efficace. Questi esempi suggeriscono che la chiave per una migliore gestione di questi caratteri risieda nell’uso combinato di modelli linguistici e interpreti di codice.

Qui i risultati dei test svolti da Butler con Claude e Gemini.

Ti consigliamo anche

Link copiato negli appunti