{"id":31080,"date":"2019-10-31T21:39:19","date_gmt":"2019-10-31T18:39:19","guid":{"rendered":"https:\/\/prohoster.info\/blog\/steganografiya-v-fajlovoj-sisteme\/"},"modified":"2019-10-31T21:39:19","modified_gmt":"2019-10-31T18:39:19","slug":"steganografiya-v-fajlovoj-sisteme","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme","title":{"rendered":"Steganografia nel file system","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ciao, Habr. <\/p>\n<p><\/p>\n<p>Vorrei presentarvi un piccolo progetto di <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%A1%D1%82%D0%B5%D0%B3%D0%B0%D0%BD%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%8F\">steganografia<\/a><\/noindex>, realizzato durante il mio tempo libero dallo studio. <\/p>\n<p><\/p>\n<p>Ho realizzato un progetto per la memorizzazione nascosta di informazioni nel filesystem (di seguito <strong>FS<\/strong>).<br \/>\nPu\u00f2 essere applicato per il furto di informazioni riservate a fini educativi.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Steganografia nel file system\" src=\"\/wp-content\/uploads\/2019\/04\/d6639b37e1b1fe57b80288e671176fe3.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Come prototipo \u00e8 stato scelto un filesystem Linux piuttosto datato <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Ext2\">ext2<\/a><\/noindex>. <\/p>\n<p>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"realizaciya\">Implementazione<\/h3>\n<p><\/p>\n<h4 id=\"soobrazheniya-o-realizacii\">Considerazioni sull'implementazione<\/h4>\n<p><\/p>\n<p>Se si analizza bene lo standard ext2, si pu\u00f2 dire che nella FS esiste cos\u00ec chiamato <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nongnu.org\/ext2-doc\/ext2.html#SUPERBLOCK\"><strong>Superblocco<\/strong><\/a><\/noindex>, che fornisce le informazioni di base sul sistema. Successivamente ho trovato <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nongnu.org\/ext2-doc\/ext2.html#BLOCK-BITMAP\"><strong>Bitmap dei blocchi<\/strong><\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nongnu.org\/ext2-doc\/ext2.html#INODE-TABLE\"><strong>Tabella degli inode<\/strong><\/a><\/noindex>. Quasi subito \u00e8 sorta l'idea di registrare informazioni in blocchi al momento vuoti del FS. Ora bisognava pensare a una protezione contro un programmatore armato di <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Hex-%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80\">editor esadecimale<\/a><\/noindex>. <\/p>\n<p><\/p>\n<p>Se si memorizzano informazioni nascoste senza crittografia, anche se sfocate nel FS, risalteranno comunque troppo, specialmente se il programmatore sapr\u00e0 cosa cercare. Pertanto, \u00e8 stata presa la decisione di crittografare tutti i blocchi del file originale. Ho scelto una cifratura a blocchi <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Advanced_Encryption_Standard\">AES<\/a><\/noindex>, ma come potete capire, non \u00e8 fondamentale.<\/p>\n<p><\/p>\n<p>Per distinguere i blocchi necessari da tutti gli altri durante la lettura, \u00e8 stato deciso di aggiungere un marcatore speciale all'inizio di ogni blocco. Questo marcatore veniva crittografato a seconda del numero del blocco nel file originale. Questo trucco ha subito permesso non solo di trovare i blocchi necessari, ma anche di riconoscerne il corretto ordine.<\/p>\n<p><\/p>\n<p>Principio generale di funzionamento del sistema.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Steganografia nel file system\" src=\"\/wp-content\/uploads\/2019\/04\/cb6e712aeffafe87b1ad10e4ed5b0a39.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h4 id=\"algoritm-zapisi\">Algoritmo di registrazione<\/h4>\n<p><\/p>\n<p>Punti principali:<\/p>\n<p><\/p>\n<ul>\n<li>Prima registrare nel filesystem originale un'informazione qualsiasi;<\/li>\n<li>Rimuovere questa informazione (non necessariamente tutta); <\/li>\n<li>Suddividere il file da nascondere in blocchi di lunghezza uguale, aggiungendo un marcatore;<\/li>\n<li>Crittografare questi blocchi;<\/li>\n<li>Posizionare i blocchi crittografati in blocchi vuoti del FS.<\/li>\n<\/ul>\n<p>\n<b class=\"spoiler_title\">Per gli amanti degli schemi a blocchi<\/b><\/p>\n<p>Di seguito \u00e8 presentato uno schema a blocchi dell'algoritmo di registrazione. L'algoritmo riceve in input quattro file:<br \/>\n-Immagine del filesystem modificabile;<br \/>\n-File da sottoporre a steganografia;<br \/>\n-File con la chiave di crittografia per AES;<br \/>\n-File con il marcatore.<br \/>\n<img decoding=\"async\" alt=\"Steganografia nel file system\" src=\"\/wp-content\/uploads\/2019\/04\/3089bf0d55cbdca1a98e4ee992089665.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Vale la pena notare che questo algoritmo ha un difetto: dopo aver registrato un file nel FS, <strong>possibile<\/strong> scrivere qualcosa di nuovo nel FS, poich\u00e9 qualsiasi nuova informazione potrebbe finire nei blocchi che abbiamo dedicato al nostro file steganografato, ma questo apre anche la possibilit\u00e0 di \"ripulire rapidamente le tracce\". <\/p>\n<p><\/p>\n<p>Ma \u00e8 abbastanza ovvio come questo possa essere corretto: \u00e8 necessario riscrivere l'algoritmo per la registrazione dei blocchi nel FS. \u00c8 un compito comprensibile, ma incredibilmente laborioso.<br \/>\nPer il Proof Of Concept non l'ho realizzato.<\/p>\n<p><\/p>\n<p>Di conseguenza, ci saranno le seguenti modifiche nel FS, cos\u00ec appare il FS prima della steganografia (\u00e8 stato precedentemente registrato un file audio).<br \/>\n<img decoding=\"async\" alt=\"Steganografia nel file system\" src=\"\/wp-content\/uploads\/2019\/04\/a779de50121de2bafacab9d891b5f5df.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nE cos\u00ec appare il FS con informazioni gi\u00e0 steganografate.<br \/>\n<img decoding=\"async\" alt=\"Steganografia nel file system\" src=\"\/wp-content\/uploads\/2019\/04\/5722200a90d720f96c0aad5b4a5a11ae.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h4 id=\"algoritm-chteniya\">Algoritmo di lettura<\/h4>\n<p><\/p>\n<p>Punti principali:<\/p>\n<p><\/p>\n<ul>\n<li>Conoscendo la chiave e il metodo di costruzione dei marcatori, creare i primi N marcatori, garantendo che N, moltiplicato per la lunghezza del blocco del file system, sia maggiore della lunghezza del file steganografato;<\/li>\n<li>Eseguire la ricerca dei blocchi nel FS che iniziano con i marcatori; <\/li>\n<li>Decriptare i blocchi ottenuti e separare i marcatori;<\/li>\n<li>Assemblare i blocchi ottenuti nell'ordine corretto e ottenere il file originale.<\/li>\n<\/ul>\n<p>\n<b class=\"spoiler_title\">Per gli amanti degli schemi a blocchi<\/b><\/p>\n<p>Di seguito \u00e8 riportato il diagramma di flusso dell'algoritmo di registrazione. In ingresso, l'algoritmo riceve tre file:<br \/>\n-Immagine del file system;<br \/>\n-File con la chiave di crittografia per AES;<br \/>\n-File con il marcatore.<br \/>\n<img decoding=\"async\" alt=\"Steganografia nel file system\" src=\"\/wp-content\/uploads\/2019\/04\/9dcfe680121a30c1b17b5a4cdbd76dc3.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dopo l'esecuzione del programma appare il file Read, che sar\u00e0 il file estratto dal FS steganografato; se la chiave o il marcatore sono stati indicati in modo errato, il file Read sar\u00e0 vuoto.<br \/>\n(per gli amanti delle belle cose \u00e8 possibile includere non solo il file, ma anche la 'testata', contenente metainformazioni: nome del file, diritti, ora dell'ultima modifica, ecc.)<\/p>\n<p><\/p>\n<h4 id=\"avtomatizaciya-zapuska\">Automazione dell'avvio<\/h4>\n<p><\/p>\n<p>Per comodit\u00e0 sono stati scritti script bash che automatizzano l'avvio su Linux (testato su Ubuntu 16.04.3 LTS).<br \/>\nAnalizziamo l'avvio passo dopo passo.<br \/>\nRegistrazione:<\/p>\n<p><\/p>\n<ol>\n<li>sudo Copy_Flash.sh \u201cDEVICE\u201d \u2014 otteniamo l'immagine del FS da DEVICE (flash);<\/li>\n<li>.\\\/Write.sh \u201cFILE\u201d \u201cKEY\u201d \u201cMARKER\u201d \u2013 creiamo un ambiente virtuale, scarichiamo le librerie necessarie e avviamo lo script per la registrazione;<\/li>\n<li>sudo .\\\/Write_Flash.sh \u201cDEVICE\u201d \u2013 scriviamo il FS modificato nuovamente su DEVICE.<\/li>\n<\/ol>\n<p><\/p>\n<p>Lettura:<\/p>\n<p><\/p>\n<ol>\n<li>sudo Copy_Flash.sh \u201cDEVICE\u201d \u2014 otteniamo l'immagine del FS da DEVICE (flash);<\/li>\n<li>.\\\/Read.sh \u201cKEY\u201d 'MARKER\u201d \u2014 creiamo un ambiente virtuale, scarichiamo le librerie necessarie e avviamo lo script per la lettura;<\/li>\n<li>Nella directory corrente, apriamo il file Read \u2013 queste sono le informazioni steganografate.<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"zaklyuchenie\">Conclusione<\/h3>\n<p><\/p>\n<p>Questo metodo di steganografia, probabilmente, necessita di affinamenti, ulteriori test e di un ampliamento alle file system pi\u00f9 popolari, come <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/FAT32\">Fat32<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/NTFS\">NTFS<\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Ext4\">ext4<\/a><\/noindex>.<br \/>\nMa l'obiettivo di questo lavoro era mostrare il principio secondo cui \u00e8 possibile effettuare un'archiviazione nascosta delle informazioni nel file system.<br \/>\nCon algoritmi simili, \u00e8 possibile memorizzare informazioni senza timore e, sebbene sia possibile violare un tale sistema conoscendo la chiave non con un attacco a forza bruta (ma con un algoritmo piuttosto lungo), senza conoscere la chiave questo sistema mi appare assolutamente resistente; d'altra parte, questo potrebbe servire da spunto per un articolo a parte.<\/p>\n<p><\/p>\n<p>Tutto il codice \u00e8 realizzato in Python versione 3.5.2. <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/FEAE3_xDKkA\">Esempio di funzionamento<\/a><\/noindex> presentato sul mio canale youtube. Il codice completo del progetto \u00e8 stato pubblicato su <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/MalahovMV\/Ext2Stego\">github<\/a><\/noindex>.<br \/>\n(S\u00ec-s\u00ec, so che per la versione di produzione \u00e8 necessario scrivere su qualcosa di 'veloce', ad esempio in C \ud83d\ude09)<br \/>\nNella presente implementazione, la dimensione del file di input per la steganografia non deve superare i 1000 kB.<\/p>\n<p><\/p>\n<p>Desidero ringraziare l'utente <noindex><a rel=\"nofollow\" href=\"https:\/\/habrahabr.ru\/users\/pavelmstu\/\" class=\"user_link\">PavelMSTU<\/a><\/noindex> per i preziosi consigli nella pianificazione della ricerca e le raccomandazioni per la stesura dell'articolo.<\/p>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/347604\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u0425\u043e\u0447\u0443 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u043c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e \u0441\u0442\u0435\u0433\u0430\u043d\u043e\u0433\u0440\u0430\u0444\u0438\u0438, \u0441\u0434\u0435\u043b\u0430\u043d\u043d\u044b\u0439 \u0432 \u0441\u0432\u043e\u0431\u043e\u0434\u043d\u043e\u0435 \u043e\u0442 \u0443\u0447\u0435\u0431\u044b \u0432\u0440\u0435\u043c\u044f. \u042f \u0441\u0434\u0435\u043b\u0430\u043b \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e \u0441\u043a\u0440\u044b\u0442\u043e\u043c\u0443 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 (\u0434\u0430\u043b\u0435\u0435 \u0424\u0421). \u042d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c \u0434\u043b\u044f \u043a\u0440\u0430\u0436\u0438 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0446\u0435\u043b\u044f\u0445. \u0412 \u0432\u0438\u0434\u0435 \u043e\u043f\u044b\u0442\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0446\u0430 \u0431\u044b\u043b\u0430 \u0432\u044b\u0431\u0440\u0430\u043d\u0430 \u0432\u0435\u0441\u044c\u043c\u0430 \u0441\u0442\u0430\u0440\u0435\u043d\u044c\u043a\u0430\u044f \u043b\u0438\u043d\u0443\u043a\u0441\u043e\u0432\u0430\u044f \u0424\u0421 ext2. \u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0421\u043e\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u043e \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0415\u0441\u043b\u0438 \u0445\u043e\u0440\u043e\u0448\u043e &#171;\u0440\u0430\u0437\u0434\u0440\u0430\u043a\u043e\u043d\u0438\u0442\u044c&#187; [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23051,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31080","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u0442\u0435\u0433\u0430\u043d\u043e\u0433\u0440\u0430\u0444\u0438\u044f \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T18:39:19+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:39:19+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Steganografia nel file system | ProHoster","description":"Ciao, Habr.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u0442\u0435\u0433\u0430\u043d\u043e\u0433\u0440\u0430\u0444\u0438\u044f \u0432 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440.","og:url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T18:39:19+00:00","article:modified_time":"2019-10-31T18:39:19+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31080","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 04:26:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:22:35","updated":"2026-01-21 04:26:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/31080","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=31080"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/31080\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/23051"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=31080"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=31080"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=31080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}