{"id":97667,"date":"2020-10-20T08:42:25","date_gmt":"2020-10-20T06:42:25","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/shifrovanie-v-mysql-ispolzovanie-master-key"},"modified":"2020-10-20T08:42:25","modified_gmt":"2020-10-20T06:42:25","slug":"shifrovanie-v-mysql-ispolzovanie-master-key","status":"publish","type":"post","link":"https:\/\/prohoster.info\/no\/blog\/administrirovanie\/shifrovanie-v-mysql-ispolzovanie-master-key","title":{"rendered":"Kryptering i MySQL: bruk av Hovedn\u00f8kkel","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h2><\/h2>\n<p><strong><em>I forkant av oppstarten av det nye kurset&nbsp;<\/em><\/strong><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/wMyj\/\"><strong><em>\u00abDatabaser\u00bb<\/em><\/strong><\/a><\/noindex><strong><em>&nbsp;vi fortsetter \u00e5 publisere en serie artikler om kryptering i MySQL.<\/em><\/strong><\/p>\n<p><img decoding=\"async\" alt=\"Kryptering i MySQL: bruk av Hovedn\u00f8kkel\" src=\"\/wp-content\/uploads\/2020\/10\/762866d2c321acd726e30606c9108122.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>I den forrige artikkelen i denne serien (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/522092\/\"><u>Kryptering i MySQL: n\u00f8glelagring<\/u><\/a><\/noindex>) snakket vi om n\u00f8kkellager. I denne artikkelen skal vi se p\u00e5 hvordan hovedn\u00f8kkelen (master key) brukes, samt diskutere fordeler og ulemper med konvolutkryptering (envelope encryption).&nbsp;<\/p>\n<p>Ideen bak konvolutkryptering er at n\u00f8klene som brukes til \u00e5 kryptere (n\u00f8kler for tabellrom) krypteres med en annen n\u00f8kkel (hovedn\u00f8kkelen, master key). For \u00e5 kryptere data brukes faktisk n\u00f8klene for tabellrom. Grafisk kan dette representeres som:<\/p>\n<p><img decoding=\"async\" alt=\"Kryptering i MySQL: bruk av Hovedn\u00f8kkel\" src=\"\/wp-content\/uploads\/2020\/10\/385afda0eff739f4720f59799c35b51f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Hovedn\u00f8kkelen (master key) befinner seg i n\u00f8kkellageret (keyring), mens n\u00f8klene til tabellerom er i hodene til krypterte tabellerom (p\u00e5 side 0 av tabellerommet).&nbsp;<\/p>\n<p>P\u00e5 bildet over:<\/p>\n<ul>\n<li>\n<p>Tabell A er kryptert med n\u00f8kkel 1 (Key 1). N\u00f8kkel 1 krypteres med hovedn\u00f8kkelen (master key) og lagres i kryptert form i overskriften til tabell A.<\/p>\n<\/li>\n<li>\n<p>Tabell B er kryptert med n\u00f8kkel 2 (Key 2). N\u00f8kkel 2 krypteres med hovedn\u00f8kkelen (master key) og lagres i kryptert form i overskriften til tabell B.<\/p>\n<\/li>\n<li>\n<p>Og s\u00e5 videre.<\/p>\n<\/li>\n<\/ul>\n<p>N\u00e5r serveren m\u00e5 dekryptere tabell A, henter den hovedn\u00f8kkelen fra n\u00f8kkellageret, leser den krypterte n\u00f8kkelen 1 fra overskriften til tabell A og dekrypterer n\u00f8kkelen 1. Den dekrypterte n\u00f8kkelen 1 blir hurtigbuffer i serverens minne og brukes til \u00e5 dekryptere tabell A.<\/p>\n<h3>InnoDB<\/h3>\n<p>I InnoDB utf\u00f8res den faktiske krypteringen og dekrypteringen p\u00e5 inn- og utgangsniv\u00e5. Det vil si at siden krypteres rett f\u00f8r den blir skrevet til disken, og dekrypteres umiddelbart etter lesing fra disken.<\/p>\n<p>I InnoDB fungerer kryptering kun p\u00e5 niv\u00e5et for tabellrom. Som standard opprettes alle tabeller i separate tabellrom (<noindex><a rel=\"nofollow\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/innodb-file-per-table-tablespaces.html\"><u>file-per-table tablespace<\/u><\/a><\/noindex>). Med andre ord, opprettes det et tabellrom som kun kan inneholde \u00e9n tabell. Selv om du ogs\u00e5 kan opprette tabeller i det generelle tabellrommet (<noindex><a rel=\"nofollow\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/general-tablespaces.html\"><u>general tablespace<\/u><\/a><\/noindex>). Men uansett er tabellen alltid i et eller annet tabellrom. Og siden kryptering skjer p\u00e5 tabellromniv\u00e5, er det enten fullstendig kryptert eller ikke. Det vil si at du ikke kan kryptere bare deler av tabellene i det generelle tabellrommet.&nbsp;<\/p>\n<p>Dersom file-per-table er deaktivert av en eller annen grunn, blir alle tabeller opprettet inne i systemtabellomr\u00e5det (system tablespace). I <noindex><a rel=\"nofollow\" href=\"https:\/\/www.percona.com\/software\/mysql-database\/percona-server\"><u>Percona Server for MySQL<\/u><\/a><\/noindex> kan systemtabellomr\u00e5det krypteres ved hjelp av innstillingene for innodb<em>sys<\/em>tablespace<em>encrypt eller ved \u00e5 bruke krypteringstr\u00e5der (encryption threads), men dette er fortsatt en eksperimentell funksjon. Dette finnes ikke i MySQL.<\/em><\/p>\n<p><em>F\u00f8r vi g\u00e5r videre, m\u00e5 vi se p\u00e5 strukturen til hovedn\u00f8kkel-ID (master key ID). Den best\u00e5r av UUID, KEY<\/em>ID og prefikset \u00abINNODBKey\u00bb. Det ser slik ut: INNODBKey-UUID-KEY<em>ID.<\/em><\/p>\n<p><em>UUID er uuid for serveren med kryptert tabellerom. KEY<\/em>ID er bare en konstant \u00f8kende verdi. Ved f\u00f8rstegangs oppretting av hovedn\u00f8kkelen KEY<em>ID lik 1. Ved rotasjon av n\u00f8kkelen, n\u00e5r en ny hovedn\u00f8kkel opprettes, er KEY<\/em>ID = 2 og s\u00e5 videre. Mer om rotasjon av hovedn\u00f8kler vil vi diskutere i de p\u00e5f\u00f8lgende artiklene i denne serien.<\/p>\n<p>N\u00e5 som vi vet hvordan identifikatoren til hovedn\u00f8kkelen ser ut, la oss se p\u00e5 overskriften for det krypterte tabellomr\u00e5det. N\u00e5r tabellomr\u00e5det krypteres, legges krypteringsinformasjonen til overskriften. Den ser slik ut:<\/p>\n<p><img decoding=\"async\" alt=\"Kryptering i MySQL: bruk av Hovedn\u00f8kkel\" src=\"\/wp-content\/uploads\/2020\/10\/0703933a85f0a106c07c0dbd6b7f4186.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>KEY ID er KEY<em>ID fra identifikatoren til hovedn\u00f8kkelen, som vi allerede har diskutert. UUID er uuid for serveren, som ogs\u00e5 brukes i identifikatoren til hovedn\u00f8kkelen. TABLESPACE KEY er n\u00f8kkelen til tabellerommet, som best\u00e5r av 256 biter tilfeldig generert av serveren. Initialiseringsvektor (IV, initialization vector) best\u00e5r ogs\u00e5 av 256 tilfeldig genererte biter (selv om det burde v\u00e6re 128 biter). IV brukes til \u00e5 initiere krypteringen og dekrypteringen av AES (av 256 biter brukes bare 128). Til slutt er det en CRC32-sjekksum for TABLESPACE KEY og IV.<\/em><\/p>\n<p><em>Hele tiden har jeg forenklet litt ved \u00e5 si at overskriften har en kryptert n\u00f8kkel for tabellomr\u00e5det. Faktisk lagres n\u00f8kkelen til tabellomr\u00e5det og initialiseringsvektoren sammen, kryptert med hovedn\u00f8kkelen. Husk at f\u00f8r n\u00f8kkelen til tabellomr\u00e5det og initialiseringsvektoren krypteres, beregnes det en CRC32 for dem.<\/em><\/p>\n<h3>Hva er poenget med CRC32?<\/h3>\n<p><em>For those unfamiliar, validating the primary key involves decrypting the tablespace key and initialization vector, computing a checksum, and comparing it with the CRC32 stored in the header. If the checksums match, we have the correct primary key and tablespace key. Otherwise, the tablespace is marked as missing (we still won\u2019t be able to decrypt it).<\/em><\/p>\n<p><em>Du kan sp\u00f8rre: n\u00e5r skjer sjekkingen av n\u00f8klene? Svaret er - ved oppstart av serveren. Serveren med krypterte tabeller \/ tabellerom leser ved oppstart UUID, KEY<\/em>ID fra hodet og genererer identifikator for hovedn\u00f8kkelen. Deretter henter den n\u00f8dvendige hovedn\u00f8kkelen fra n\u00f8kkellageret (keyring), dekrypterer n\u00f8kkelen til tabellerommet og sjekker sjekksummen. Igjen, hvis sjekksummen stemmer, er alt i orden; hvis ikke, merkes tabellerommet som frav\u00e6rende.<\/p>\n<p>If you read the previous article in this series (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/522092\/\"><u>Kryptering i MySQL: n\u00f8glelagring<\/u><\/a><\/noindex>), you might remember that when using server key storage, the server at startup only retrieves a list of key identifiers, specifically, key ID and user ID, since this pair uniquely identifies the key. Now I\u2019m saying that the server at startup gets all the keys it needs to verify the possibility of decrypting tablespace keys. So why, during initialization, in the case of server storage, are only the key<em>id and user<\/em>id loaded, and not all keys? Because you might not need all keys. This mainly relates to primary key rotation. When the primary key is rotated, a new primary key is created in the storage, but the old keys are not deleted. Thus, in server key storage, you may have many keys that the server does not need and, consequently, are not retrieved on server startup.<\/p>\n<p>Det er p\u00e5 tide \u00e5 snakke litt om fordelene og ulempene ved kryptering med hovedn\u00f8kkelen. Den st\u00f8rste fordelen er at du kun trenger \u00e9n krypteringsn\u00f8kkel (hovedn\u00f8kkelen), som vil bli lagret separat fra de krypterte dataene dine. Dette gj\u00f8r oppstart av serveren rask, og lagringen er liten, noe som letter administrasjonen. I tillegg er hovedn\u00f8kkelen lett \u00e5 regenerere.<\/p>\n<p>Men kryptering med hovedn\u00f8kkelen har en stor ulempe: N\u00e5r tabellomr\u00e5det er kryptert med tablespace_key, forblir det alltid kryptert med den samme n\u00f8kkelen. Rotasjon av hovedn\u00f8kkelen hjelper ikke her. Hvorfor er dette en ulempe? Vi vet at det finnes feil i MySQL som kan f\u00f8r til plutselige feil og opprettelse av en kjernefil. Siden kjernefilen inneholder et minnedump av serveren, kan det hende at den avdekker den dekrypterte n\u00f8kkelen til tabellomr\u00e5det. Det som er verre, er at dekrypterte n\u00f8kler til tabellomr\u00e5det lagres i minne som kan byttes ut til disk. Du kan si at dette ikke er en ulempe, da du trenger root-rettigheter for \u00e5 f\u00e5 tilgang til disse filene og byttepartisjonen. Ja. Men root-rettigheter trengs bare for en kort periode. N\u00e5r noen har tilgang til den dekrypterte n\u00f8kkelen til tabellomr\u00e5det, kan han\/hun fortsette \u00e5 bruke den for \u00e5 dekryptere dataene, selv uten root-rettigheter. I tillegg kan disken bli stj\u00e5let, og byttepartisjon\/kjernefiler kan leses med eksterne verkt\u00f8y. M\u00e5let med TDE er \u00e5 gj\u00f8re det uleselig, selv om disken blir stj\u00e5let. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.percona.com\/software\/mysql-database\/percona-server\"><u>Percona Server for MySQL<\/u><\/a><\/noindex> Det er mulig \u00e5 re-kryptere tabellomr\u00e5det med nyskapte n\u00f8kler. Denne funksjonen kalles krypteringstr\u00e5der (encryption threads) og var i skrivende stund fortsatt eksperimentell.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/wMyj\/\"><strong>L\u00e6r mer om kurset<\/strong><\/a><\/noindex><\/p>\n<h3>Les mer:<\/h3>\n<ul>\n<li>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/522092\/\">Kryptering i MySQL: n\u00f8glelagring<\/a><\/noindex><\/p>\n<\/li>\n<\/ul>\n<p>Kilde: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/524050\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u043d\u0430 \u043a\u0443\u0440\u0441&nbsp;\u00ab\u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445\u00bb&nbsp;\u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0438\u044e \u0441\u0442\u0430\u0442\u0435\u0439 \u043f\u0440\u043e \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 MySQL. \u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u044d\u0442\u043e\u0439 \u0441\u0435\u0440\u0438\u0438 (\u0428\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 MySQL: \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043a\u043b\u044e\u0447\u0435\u0439) \u043c\u044b \u0433\u043e\u0432\u043e\u0440\u0438\u043b\u0438 \u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430\u0445 \u043a\u043b\u044e\u0447\u0435\u0439. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 (master key), \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u0441\u0443\u0434\u0438\u043c \u0434\u043e\u0441\u0442\u043e\u0438\u043d\u0441\u0442\u0432\u0430 \u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u0435\u0442\u043e\u0434\u043e\u043c \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u043e\u0432 (envelope encryption).&nbsp; \u0418\u0434\u0435\u044f \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u043e\u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":97668,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-97667","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.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u043d\u0430 \u043a\u0443\u0440\u0441 \u00ab\u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445\u00bb \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c.\" \/>\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\/no\/blog\/administrirovanie\/shifrovanie-v-mysql-ispolzovanie-master-key\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"nn_NO\" \/>\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\u0428\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 MySQL: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Master Key | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u043d\u0430 \u043a\u0443\u0440\u0441 \u00ab\u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445\u00bb \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/no\/blog\/administrirovanie\/shifrovanie-v-mysql-ispolzovanie-master-key\" \/>\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=\"2020-10-20T06:42:25+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-20T06:42:25+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\udd47Kryptering i MySQL: Bruk av Master Key | ProHoster","description":"I forkant av oppstarten av det nye settet med kurset \u00abDatabaser\u00bb fortsetter vi.","canonical_url":"https:\/\/prohoster.info\/no\/blog\/administrirovanie\/shifrovanie-v-mysql-ispolzovanie-master-key","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nn_NO","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\u0428\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 MySQL: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 Master Key | ProHoster","og:description":"\u0412 \u043f\u0440\u0435\u0434\u0434\u0432\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0440\u0442\u0430 \u043d\u043e\u0432\u043e\u0433\u043e \u043d\u0430\u0431\u043e\u0440\u0430 \u043d\u0430 \u043a\u0443\u0440\u0441 \u00ab\u0411\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445\u00bb \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c.","og:url":"https:\/\/prohoster.info\/no\/blog\/administrirovanie\/shifrovanie-v-mysql-ispolzovanie-master-key","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":"2020-10-20T06:42:25+00:00","article:modified_time":"2020-10-20T06:42:25+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"97667","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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:15:28","updated":"2022-10-03 07:13:51","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts\/97667","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/comments?post=97667"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts\/97667\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/media\/97668"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/media?parent=97667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/categories?post=97667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/tags?post=97667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}