{"id":8307,"date":"2026-01-13T22:30:00","date_gmt":"2026-01-13T21:30:00","guid":{"rendered":"https:\/\/www.newstechnology.eu\/it\/?p=8307"},"modified":"2026-01-13T22:50:06","modified_gmt":"2026-01-13T21:50:06","slug":"dentro-limmagine-larte-segreta-della-steganografia-digitale","status":"publish","type":"post","link":"https:\/\/www.newstechnology.eu\/it\/software\/sistemi-operativi\/linux\/dentro-limmagine-larte-segreta-della-steganografia-digitale.html","title":{"rendered":"Dentro l\u2019Immagine: L\u2019Arte Segreta della Steganografia Digitale"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Immagina di inviare un messaggio segreto nascosto dentro una foto di un gatto. Nessuna crittografia visibile, nessun file allegato. Solo un\u2019immagine apparentemente innocua. Fantascienza? No: \u00e8 <strong>steganografia<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Benvenuti nel mondo affascinante della steganografia digitale, dove i pixel diventano messaggeri silenziosi.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Cos\u2019\u00e8 la Steganografia?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La steganografia \u00e8 l\u2019arte di nascondere informazioni all\u2019interno di altri contenuti. A differenza della crittografia, che rende i dati illeggibili, la steganografia <strong>nasconde l\u2019esistenza stessa del messaggio<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nel mondo digitale, il mezzo pi\u00f9 comune per nascondere dati \u00e8 un file immagine. Perch\u00e9? Perch\u00e9 un\u2019immagine contiene milioni di pixel, e ognuno pu\u00f2 essere leggermente modificato senza che l\u2019occhio umano se ne accorga.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Origini della Steganografia<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La steganografia affonda le sue radici nell\u2019antichit\u00e0, molto prima dell\u2019era digitale. Il termine deriva dal greco <em>steganos<\/em> (\u201ccoperto\u201d) e <em>graphein<\/em> (\u201cscrivere\u201d), cio\u00e8 \u201cscrivere nascosto\u201d. Le prime forme documentate risalgono all\u2019antica Grecia: Erodoto racconta di messaggi incisi su tavolette di legno poi ricoperte di cera, cos\u00ec da apparire completamente vuote. Nel Medioevo si usavano inchiostri invisibili ricavati da sostanze naturali, mentre durante le guerre mondiali venivano nascosti messaggi in microfilm, ricami, fotografie o persino all\u2019interno di lettere apparentemente innocue. Con l\u2019avvento dell\u2019informatica, la steganografia si \u00e8 trasformata: non pi\u00f9 parole celate sotto la cera, ma bit nascosti dentro immagini, audio, video o altri file digitali. L\u2019obiettivo, per\u00f2, \u00e8 rimasto identico nei secoli: non proteggere il contenuto del messaggio, ma <strong>nasconderne l\u2019esistenza stessa<\/strong>, rendendo la comunicazione invisibile agli occhi di chi non sa cosa cercare.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Come Funziona: Il Potere dei Bit Invisibili<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ogni pixel in un\u2019immagine RGB \u00e8 composto da tre valori: Rosso, Verde e Blu (RGB). Ognuno di questi \u00e8 rappresentato da 8 bit (valori da 0 a 255). La tecnica pi\u00f9 usata per la steganografia \u00e8 la <strong>Least Significant Bit (LSB)<\/strong>, ovvero la modifica del bit meno significativo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Esempio:<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Un valore di rosso puro:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>R = 11111111 (255)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Cambiare l\u2019ultimo bit:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>R = 11111110 (254)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La differenza \u00e8 invisibile, ma quel singolo bit pu\u00f2 contenere un frammento di messaggio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ripetendo questo processo su migliaia di pixel, \u00e8 possibile nascondere interi testi<\/strong>, file, o persino altri media.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Strumenti per Nascondere Dati nelle Immagini<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. <a href=\"https:\/\/steghide.sourceforge.net\/\">Steghide<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Un classico della steganografia da terminale. Supporta file JPEG e BMP, compressione e password.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>steghide embed -cf immagine.jpg -ef segreto.txt -p password123\nsteghide extract -sf immagine.jpg -p password123<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. <a href=\"https:\/\/www.openstego.com\/\">OpenStego<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Interfaccia grafica semplice, perfetta per chi non ama la riga di comando. Supporta <a href=\"https:\/\/it.wikipedia.org\/wiki\/Watermark_(informatica)\">watermarking<\/a> e file nascosti.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. <a href=\"https:\/\/github.com\/zed-0xff\/zsteg\">zsteg<\/a><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Strumento avanzato per PNG e BMP, molto usato nei CTF (Capture The Flag) e nell\u2019analisi forense.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>zsteg immagine.png<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">4. Python + PIL<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Per i pi\u00f9 smanettoni, \u00e8 possibile scrivere uno script in Python che codifica un messaggio nei bit LSB di ogni pixel. Vuoi un esempio? Te lo preparo volentieri.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import sys\nimport os\nfrom PIL import Image\n\nEND_MARKER = \"\u00a7\"  # carattere di fine messaggio\n\n\n# ------------------------------------------------------------\n# 1. Se l'immagine \u00e8 JPG, convertila in PNG per evitare perdita dati\n# ------------------------------------------------------------\ndef ensure_png(image_path):\n    ext = os.path.splitext(image_path)&#91;1].lower()\n    if ext in &#91;\".jpg\", \".jpeg\"]:\n        img = Image.open(image_path).convert(\"RGB\")\n        png_path = \"converted_input.png\"\n        img.save(png_path)\n        print(f\"&#91;INFO] Convertito {image_path} in {png_path}\")\n        return png_path\n    return image_path\n\n\n# ------------------------------------------------------------\n# 2. Codifica LSB (solo canale R per semplicit\u00e0 e stabilit\u00e0)\n# ------------------------------------------------------------\ndef encode_message(image_path, message, output_path=\"stego_output.png\"):\n    img = Image.open(image_path).convert(\"RGB\")\n    encoded = img.copy()\n    width, height = img.size\n\n    # prepara messaggio + marcatore\n    message += END_MARKER\n    bits = ''.join(format(ord(c), '08b') for c in message)\n\n    capacity = width * height  # 1 bit per pixel\n\n    if len(bits) &gt; capacity:\n        raise ValueError(\n            f\"Messaggio troppo lungo ({len(bits)} bit). \"\n            f\"L'immagine pu\u00f2 contenere solo {capacity} bit.\"\n        )\n\n    data_index = 0\n    for y in range(height):\n        for x in range(width):\n            if data_index &gt;= len(bits):\n                break\n\n            r, g, b = encoded.getpixel((x, y))\n            r = (r &amp; ~1) | int(bits&#91;data_index])\n            encoded.putpixel((x, y), (r, g, b))\n\n            data_index += 1\n\n        if data_index &gt;= len(bits):\n            break\n\n    encoded.save(output_path)\n    print(f\"&#91;OK] Messaggio nascosto in {output_path}\")\n\n\n# ------------------------------------------------------------\n# 3. Decodifica LSB\n# ------------------------------------------------------------\ndef decode_message(image_path):\n    img = Image.open(image_path).convert(\"RGB\")\n    width, height = img.size\n\n    bits = &#91;]\n    for y in range(height):\n        for x in range(width):\n            r, g, b = img.getpixel((x, y))\n            bits.append(str(r &amp; 1))\n\n    message = \"\"\n    for i in range(0, len(bits), 8):\n        byte = bits&#91;i:i+8]\n        if len(byte) &lt; 8:\n            break\n\n        char = chr(int(\"\".join(byte), 2))\n\n        if char == END_MARKER:\n            break\n\n        message += char\n\n    print(\"&#91;OK] Messaggio estratto:\")\n    print(message)\n\n\n# ------------------------------------------------------------\n# 4. Main\n# ------------------------------------------------------------\ndef main():\n    if len(sys.argv) &lt; 2:\n        print(\"Uso:\")\n        print(\"  python stego.py immagine.png \\\"messaggio da inserire\\\"\")\n        print(\"  python stego.py immagine_stego.png\")\n        return\n\n    image_path = ensure_png(sys.argv&#91;1])\n\n    if len(sys.argv) == 3:\n        message = sys.argv&#91;2]\n        encode_message(image_path, message)\n    else:\n        decode_message(image_path)\n\n\nif __name__ == \"__main__\":\n    main()\n\n\nSalva il codice sopra scritto col nome <em>stego.py<\/em> ed usalo in questo modo:<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># python3 -m venv .venv\n# . .venv\/bin\/activate\n# pip install pillow\n# \n# python stego.py gatto.png \"Questo \u00e8 un messaggio segreto\"\n# python stego.py stego_output.png<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Il risultato \u00e8 il messaggio nascosto dentro l&#8217;immagine <em>gatto.png<\/em>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Quando Usarla (Legalmente)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Attivismo digitale: comunicazioni sicure in contesti oppressivi<\/li>\n\n\n\n<li>Puzzle e giochi: sfide hacker e CTF<\/li>\n\n\n\n<li>Arte concettuale: messaggi nascosti in opere digitali<\/li>\n\n\n\n<li>Didattica: quiz o indizi nascosti per studenti<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Attenzione: Etica e Limiti<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Come ogni tecnologia potente, la steganografia pu\u00f2 essere usata per il bene o per il male. \u00c8 importante ricordare che:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>I file compressi (come JPEG) possono danneggiare i dati nascosti<\/li>\n\n\n\n<li>I sistemi di steganalisi possono rilevare anomalie statistiche<\/li>\n\n\n\n<li>L\u2019uso improprio pu\u00f2 avere implicazioni legali<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusione<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/www.newstechnology.eu\/it\/wp-content\/uploads\/2026\/01\/gatto_stego-1024x1024.png\" alt=\"\" class=\"wp-image-8323\" srcset=\"https:\/\/www.newstechnology.eu\/it\/wp-content\/uploads\/2026\/01\/gatto_stego-1024x1024.png 1024w, https:\/\/www.newstechnology.eu\/it\/wp-content\/uploads\/2026\/01\/gatto_stego-300x300.png 300w, https:\/\/www.newstechnology.eu\/it\/wp-content\/uploads\/2026\/01\/gatto_stego-150x150.png 150w, https:\/\/www.newstechnology.eu\/it\/wp-content\/uploads\/2026\/01\/gatto_stego-768x768.png 768w, https:\/\/www.newstechnology.eu\/it\/wp-content\/uploads\/2026\/01\/gatto_stego-1536x1536.png 1536w, https:\/\/www.newstechnology.eu\/it\/wp-content\/uploads\/2026\/01\/gatto_stego.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Prova a trovare il codice nascosto dentro l&#8217;immagine in copertina!<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">La prossima volta che guarderai una foto online, chiediti:<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\"><em>Cosa c\u2019\u00e8 davvero dentro quei pixel?<\/em><\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">Forse un messaggio. Forse un segreto. O forse solo un tramonto\u2026 con qualcosa in pi\u00f9.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Immagina di inviare un messaggio segreto nascosto dentro una foto di un gatto. Nessuna crittografia visibile, nessun file allegato. Solo un\u2019immagine apparentemente innocua. Fantascienza? No: \u00e8 steganografia. Benvenuti nel mondo affascinante della steganografia digitale, dove i pixel diventano messaggeri silenziosi.<\/p>\n","protected":false},"author":1,"featured_media":8323,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wpai_meta_description":"","footnotes":""},"categories":[15,31],"tags":[1750,557,1748,1749,1438,62,78],"class_list":["post-8307","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","category-sicurezza","tag-criptare-messaggi","tag-immagini","tag-nascondere-testo","tag-segreti","tag-segreto","tag-sicurezza","tag-steganografia"],"_links":{"self":[{"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/posts\/8307","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/comments?post=8307"}],"version-history":[{"count":5,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/posts\/8307\/revisions"}],"predecessor-version":[{"id":8331,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/posts\/8307\/revisions\/8331"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/media\/8323"}],"wp:attachment":[{"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/media?parent=8307"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/categories?post=8307"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.newstechnology.eu\/it\/wp-json\/wp\/v2\/tags?post=8307"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}