{"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\/da\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme","title":{"rendered":"Steganografi i filsystemet","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Hej, Habr. <\/p>\n<p><\/p>\n<p>Jeg vil pr\u00e6sentere et lille projekt om <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\">steganografi<\/a><\/noindex>, lavet i min fritid fra studierne. <\/p>\n<p><\/p>\n<p>Jeg har lavet et projekt om skjult informationsopbevaring i filsystemet (herefter <strong>FS<\/strong>).<br \/>\nDet kan anvendes til at stj\u00e6le fortrolige oplysninger til uddannelsesm\u00e6ssige form\u00e5l.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Steganografi i filsystemet\" src=\"\/wp-content\/uploads\/2019\/04\/d6639b37e1b1fe57b80288e671176fe3.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Som et eksperimentelt eksempel blev et temmelig gammelt Linux FS valgt <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\">Implementering<\/h3>\n<p><\/p>\n<h4 id=\"soobrazheniya-o-realizacii\">Overvejelser omkring implementeringen<\/h4>\n<p><\/p>\n<p>Hvis man ordentligt \"dramatiserer\" standarden ext2, kan man erstatte, at der i FS eksisterer s\u00e5kaldte <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nongnu.org\/ext2-doc\/ext2.html#SUPERBLOCK\"><strong>Superblocks<\/strong><\/a><\/noindex>, hvor grundl\u00e6ggende information om systemet gives. Jeg har fundet <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nongnu.org\/ext2-doc\/ext2.html#BLOCK-BITMAP\"><strong>Block Bitmap<\/strong><\/a><\/noindex> og <noindex><a rel=\"nofollow\" href=\"http:\/\/www.nongnu.org\/ext2-doc\/ext2.html#INODE-TABLE\"><strong>Inode Table<\/strong><\/a><\/noindex>. N\u00e6sten med det samme kom ideen om at skrive information i de tomme blokke i FS. Nu gjaldt det om at t\u00e6nke over beskyttelse mod en programm\u00f8r, bev\u00e6bnet med <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\">hex-editor<\/a><\/noindex>. <\/p>\n<p><\/p>\n<p>Hvis man opbevarer den skjulte information uden kryptering, s\u00e5 selvom den er spredt i FS, vil den stadig v\u00e6re for i\u00f8jnefaldende, is\u00e6r hvis programm\u00f8ren ved, hvad han skal lede efter. Derfor blev det besluttet at kryptere alle blokke fra den oprindelige fil. Jeg valgte blokkrypteringen <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Advanced_Encryption_Standard\">AES<\/a><\/noindex>, men som du forst\u00e5r, er det ikke principielt.<\/p>\n<p><\/p>\n<p>For at adskille de n\u00f8dvendige blokke fra alle de andre ved l\u00e6sning, blev det besluttet at tilf\u00f8je en s\u00e6rlig mark\u00f8r i starten af hver blok. Denne mark\u00f8r blev krypteret afh\u00e6ngigt af bloknummeret i den oprindelige fil. Denne trick gjorde ikke kun muligheden for at finde de n\u00f8dvendige blokke, men ogs\u00e5 at kende deres rette r\u00e6kkef\u00f8lge.<\/p>\n<p><\/p>\n<p>Det overordnede princip i systemet.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Steganografi i filsystemet\" src=\"\/wp-content\/uploads\/2019\/04\/cb6e712aeffafe87b1ad10e4ed5b0a39.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h4 id=\"algoritm-zapisi\">Optagelsesalgoritme<\/h4>\n<p><\/p>\n<p>Punkter:<\/p>\n<p><\/p>\n<ul>\n<li>F\u00f8rst indskrive nogen information i det oprindelige filsystem;<\/li>\n<li>Slette denne information (ikke n\u00f8dvendigvis alt); <\/li>\n<li>Opdele filen til skjul i blokke af ens l\u00e6ngde, tilf\u00f8je mark\u00f8r;<\/li>\n<li>Kryptere disse blokke;<\/li>\n<li>L\u00e6gge de krypterede blokke i de tomme blokke i FS.<\/li>\n<\/ul>\n<p>\n<b class=\"spoiler_title\">For dem, der elsker blokdiagrammer<\/b><\/p>\n<p>Nedenfor er et blokdiagram af optagelsesalgoritmen. Algoritmen tager fire filer som input:<br \/>\n- Billede af det \u00e6ndrede filsystem;<br \/>\n- Filen, der skal v\u00e6re i steganografi;<br \/>\n- Fil med krypteringsn\u00f8gle til AES;<br \/>\n- Fil med mark\u00f8r.<br \/>\n<img decoding=\"async\" alt=\"Steganografi i filsystemet\" src=\"\/wp-content\/uploads\/2019\/04\/3089bf0d55cbdca1a98e4ee992089665.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Det skal straks bem\u00e6rkes, at denne algoritme har en ulempe: efter at filen er skrevet til FS, <strong>kan ikke<\/strong> At gemme noget nyt i filsystemet, da enhver ny information kan havne i de blokke, vi har tildelt vores steganografisk fil, men dette \u00e5bner ogs\u00e5 muligheden for 'hurtig sletning af spor'. <\/p>\n<p><\/p>\n<p>Men det er klart, hvordan man kan rette dette: det er n\u00f8dvendigt at omskrive algoritmen for blokskrivning til filsystemet. Det er en forst\u00e5elig, men utrolig tidskr\u00e6vende opgave.<br \/>\nJeg har ikke implementeret dette til Proof Of Concept.<\/p>\n<p><\/p>\n<p>Som et resultat vil der ske f\u00f8lgende \u00e6ndringer i filsystemet; s\u00e5dan ser filsystemet ud f\u00f8r steganografi (en lydfil er blevet gemt p\u00e5 forh\u00e5nd).<br \/>\n<img decoding=\"async\" alt=\"Steganografi i filsystemet\" src=\"\/wp-content\/uploads\/2019\/04\/a779de50121de2bafacab9d891b5f5df.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nOg s\u00e5dan ser filsystemet ud med allerede steganografisk information.<br \/>\n<img decoding=\"async\" alt=\"Steganografi i filsystemet\" src=\"\/wp-content\/uploads\/2019\/04\/5722200a90d720f96c0aad5b4a5a11ae.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h4 id=\"algoritm-chteniya\">L\u00e6sning algoritme<\/h4>\n<p><\/p>\n<p>Punkter:<\/p>\n<p><\/p>\n<ul>\n<li>Med kendskab til n\u00f8glen og metoden til at konstruere mark\u00f8rerne, sammens\u00e6tte de f\u00f8rste N mark\u00f8rer, med garantien for at N, ganget med l\u00e6ngden af blokken i filsystemet, er st\u00f8rre end l\u00e6ngden af den steganografiske fil;<\/li>\n<li>Udf\u00f8r en s\u00f8gning efter blokke i filsystemet, der begynder med mark\u00f8rerne; <\/li>\n<li>Dekrypter de modtagne blokke og adskil mark\u00f8rerne;<\/li>\n<li>Samle de modtagne blokke i korrekt r\u00e6kkef\u00f8lge og f\u00e5 den oprindelige fil.<\/li>\n<\/ul>\n<p>\n<b class=\"spoiler_title\">For dem, der elsker blokdiagrammer<\/b><\/p>\n<p>Nedenfor er et flowchart af skrivemethodelen. Algoritmen modtager tre filer som input:<br \/>\n-Billedet af filsystemet;<br \/>\n- Fil med krypteringsn\u00f8gle til AES;<br \/>\n- Fil med mark\u00f8r.<br \/>\n<img decoding=\"async\" alt=\"Steganografi i filsystemet\" src=\"\/wp-content\/uploads\/2019\/04\/9dcfe680121a30c1b17b5a4cdbd76dc3.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00e5r programmet er k\u00f8rt, opst\u00e5r der en fil kaldet Read, som vil v\u00e6re den udvundne fil fra den steganografiske filsystem; hvis n\u00f8glen eller mark\u00f8ren er angivet forkert, vil filen Read v\u00e6re tom.<br \/>\n(for dem der elsker \u00e6stetik, kan man ikke kun inkludere filen, men ogs\u00e5 \"overskriften\", der indeholder metadata: filnavn, rettigheder, tid for seneste \u00e6ndring osv.)<\/p>\n<p><\/p>\n<h4 id=\"avtomatizaciya-zapuska\">Automatisering af opstart<\/h4>\n<p><\/p>\n<p>For nemheds skyld er der skrevet bash-scripts, der automatiserer opstarten p\u00e5 Linux (testet p\u00e5 Ubuntu 16.04.3 LTS).<br \/>\nLad os gennemg\u00e5 opstarten trin for trin.<br \/>\nSkrivning:<\/p>\n<p><\/p>\n<ol>\n<li>sudo Copy_Flash.sh \u201cDEVICE\u201d \u2014 Vi f\u00e5r billedet af Filsystemet fra DEVICE (flash);<\/li>\n<li>.\/Write.sh \u201cFILE\u201d \u201cKEY\u201d \u201cMARKER\u201d \u2013 Opretter et virtuelt milj\u00f8, downloader de n\u00f8dvendige biblioteker og starter skrivningsscriptet;<\/li>\n<li>sudo .\/Write_Flash.sh \u201cDEVICE\u201d \u2013 Vi skriver det \u00e6ndrede filsystem tilbage til DEVICE.<\/li>\n<\/ol>\n<p><\/p>\n<p>L\u00e6sning:<\/p>\n<p><\/p>\n<ol>\n<li>sudo Copy_Flash.sh \u201cDEVICE\u201d \u2014 Vi f\u00e5r billedet af Filsystemet fra DEVICE (flash);<\/li>\n<li>.\/Read.sh \u201cKEY\u201d \u2018MARKER\u201d \u2014 Opretter et virtuelt milj\u00f8, downloader de n\u00f8dvendige biblioteker og starter l\u00e6sescriptet;<\/li>\n<li>\u00c5bn filen Read i den aktuelle katalog \u2013 det er den steganografiske information.<\/li>\n<\/ol>\n<p><\/p>\n<h3 id=\"zaklyuchenie\">Konklusion<\/h3>\n<p><\/p>\n<p>Denne metode til steganografi kr\u00e6ver sandsynligvis ekstra arbejde, yderligere test og udvidelse til mere popul\u00e6re filsystemer s\u00e5som <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> og <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Ext4\">procfs<\/a><\/noindex>.<br \/>\nMeningen med dette arbejde var at vise princippet, hvormed man kan foretage skjult opbevaring af information i filsystemet.<br \/>\nMed s\u00e5danne algoritmer kan man trygt opbevare information, og hvis man kender n\u00f8glen, kan man bryde et s\u00e5dant system ikke ved total pr\u00f8vning (men med en ret langsom algoritme), s\u00e5 uden kendskab til n\u00f8glen fremst\u00e5r dette system for mig som helt robust; dog kan dette v\u00e6re en anledning til en separat artikel.<\/p>\n<p><\/p>\n<p>Hele koden er implementeret i Python version 3.5.2. <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/FEAE3_xDKkA\">Et eksempel p\u00e5 arbejdet<\/a><\/noindex> er pr\u00e6senteret p\u00e5 min YouTube-kanal. Hele projektkoden er uploadet til <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/MalahovMV\/Ext2Stego\">github<\/a><\/noindex>.<br \/>\n(Ja, ja, jeg ved godt, at man til produktionsversionen skal skrive i noget \"hurtigt\", for eksempel p\u00e5 C \ud83d\ude09)<br \/>\nI denne implementering m\u00e5 st\u00f8rrelsen p\u00e5 inputfilen til steganografi ikke overstige 1000 kB.<\/p>\n<p><\/p>\n<p>Jeg vil gerne udtrykke min taknemmelighed til brugeren <noindex><a rel=\"nofollow\" href=\"https:\/\/habrahabr.ru\/users\/pavelmstu\/\" class=\"user_link\">PavelMSTU<\/a><\/noindex> for v\u00e6rdifulde r\u00e5d ved planl\u00e6gningen af forskningen og anbefalinger til artiklens udformning.<\/p>\n<p>Kilde: <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.3 - 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\/da\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"da_DK\" \/>\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\/da\/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\udd47Steganografi i filsystemet | ProHoster","description":"Hej, Habr.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/steganografiya-v-fajlovoj-sisteme","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"da_DK","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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/31080","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/comments?post=31080"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/31080\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/23051"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=31080"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=31080"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=31080"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}