{"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\/da\/blog\/administrirovanie\/shifrovanie-v-mysql-ispolzovanie-master-key","title":{"rendered":"Kryptering i MySQL: brug af Master-n\u00f8gle","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h2><\/h2>\n<p><strong><em>I forklaringen af den nye optagelse til kurset&nbsp;<\/em><\/strong><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/wMyj\/\"><strong><em>\u00abDatabaser\u00bb<\/em><\/strong><\/a><\/noindex><strong><em>&nbsp;forts\u00e6tter vi med at offentligg\u00f8re en serie artikler om kryptering i MySQL.<\/em><\/strong><\/p>\n<p><img decoding=\"async\" alt=\"Kryptering i MySQL: brug af Master-n\u00f8gle\" src=\"\/wp-content\/uploads\/2020\/10\/762866d2c321acd726e30606c9108122.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>I den forrige artikel i denne serie (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/522092\/\"><u>Kryptering i MySQL: n\u00f8glelagring<\/u><\/a><\/noindex>) talte vi om n\u00f8glelagre. I denne artikel vil vi se p\u00e5, hvordan hovedn\u00f8glen (master key) bruges, samt diskutere fordele og ulemper ved kuvertkryptering (envelope encryption).&nbsp;<\/p>\n<p>Ideen med kuvertkryptering er, at de n\u00f8gler, der bruges til kryptering (tablespace n\u00f8gler), krypteres med en anden n\u00f8gle (hovedn\u00f8gle, master key). De faktiske data krypteres med tablespace n\u00f8gler. Grafisk kan det fremst\u00e5 s\u00e5dan her:<\/p>\n<p><img decoding=\"async\" alt=\"Kryptering i MySQL: brug af Master-n\u00f8gle\" src=\"\/wp-content\/uploads\/2020\/10\/385afda0eff739f4720f59799c35b51f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Hovedn\u00f8glen (master key) findes i n\u00f8gleringen (keyring), mens tabelrum-n\u00f8glerne er i overskrifterne p\u00e5 de krypterede tabelrum (p\u00e5 side 0 af tabelrummet).&nbsp;<\/p>\n<p>P\u00e5 billedet ovenfor:<\/p>\n<ul>\n<li>\n<p>Tabel A er krypteret med n\u00f8gle 1 (Key 1). N\u00f8gle 1 krypteres med hovedn\u00f8glen (master key) og gemmes i krypteret form i overskriften for tabel A.<\/p>\n<\/li>\n<li>\n<p>Tabel B er krypteret med n\u00f8gle 2 (Key 2). N\u00f8gle 2 krypteres med hovedn\u00f8glen (master key) og gemmes i krypteret form i overskriften for tabel B.<\/p>\n<\/li>\n<li>\n<p>Og s\u00e5 videre.<\/p>\n<\/li>\n<\/ul>\n<p>N\u00e5r serveren skal dekryptere tabel A, henter den hovedn\u00f8glen fra n\u00f8glelageret, l\u00e6ser den krypterede n\u00f8gle 1 fra overskriften for tabel A og dekrypterer n\u00f8gle 1. Den dekrypterede n\u00f8gle 1 caches i serverens hukommelse og bruges til at dekryptere tabel A.<\/p>\n<h3>InnoDB<\/h3>\n<p>I InnoDB udf\u00f8res den faktiske kryptering og dekryptering p\u00e5 input-output niveau. Det vil sige, at siden krypteres lige f\u00f8r den skrives til disk og dekrypteres umiddelbart efter, at den er blevet l\u00e6st fra disk.<\/p>\n<p>I InnoDB virker kryptering kun p\u00e5 niveauet for tablespaces. Og som standard oprettes alle tabeller i separate tablespaces (<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 oprettes der et tablespace, der kun kan indeholde \u00e9n tabel. Men du kan ogs\u00e5 oprette tabeller i det prim\u00e6re tablespace (<noindex><a rel=\"nofollow\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/general-tablespaces.html\"><u>general tablespace<\/u><\/a><\/noindex>). Men uanset hvad er tabellen altid i et eller andet tablespace. Og da krypteringen finder sted p\u00e5 niveauet for tablespace, er den enten helt krypteret eller ikke. Det vil sige, at man ikke kan kryptere kun dele af tabellerne i det prim\u00e6re tablespace.&nbsp;<\/p>\n<p>Hvis file-per-table er deaktiveret af en eller anden grund, oprettes alle tabeller inden for det systemtabellerum (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 man kryptere systemtabellerummet ved hj\u00e6lp af variablen innodb<em>sys<\/em>tablespace<em>encrypt eller ved at bruge krypteringsstr\u00f8mme (encryption threads), men dette er stadig en eksperimentel funktion. Dette findes ikke i MySQL.<\/em><\/p>\n<p><em>F\u00f8r vi g\u00e5r videre, er vi n\u00f8dt til at se p\u00e5 strukturen af hovedn\u00f8gle-id'et (master key ID). Det best\u00e5r af UUID, KEY<\/em>ID og pr\u00e6fikset \u00abINNODBKey\u00bb. Det ser s\u00e5ledes ud: INNODBKey-UUID-KEY<em>ID.<\/em><\/p>\n<p><em>UUID er serverens uuid med det krypterede tabelrum. KEY<\/em>ID er blot en konstant voksende v\u00e6rdi. Ved f\u00f8rste oprettelse af hovedn\u00f8glen KEY<em>ID lig med 1. Ved rotation af n\u00f8gle, n\u00e5r en ny hovedn\u00f8gle oprettes, er KEY<\/em>ID = 2 og s\u00e5 videre. Vi vil tale mere detaljeret om rotation af hovedn\u00f8gler i de n\u00e6ste artikler i denne serie.<\/p>\n<p>Nu hvor vi ved, hvordan hovedn\u00f8gle-id'et ser ud, lad os se p\u00e5 overskriften af det krypterede tabellerum. N\u00e5r tabellerummet krypteres, tilf\u00f8jes krypteringsinformation til overskriften. Det ser s\u00e5dan ud:<\/p>\n<p><img decoding=\"async\" alt=\"Kryptering i MySQL: brug af Master-n\u00f8gle\" 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 for hovedn\u00f8glen, som vi allerede har diskuteret. UUID er serverens uuid, som ogs\u00e5 bruges i identifikatoren for hovedn\u00f8glen. TABLESPACE KEY er n\u00f8glen til tabelrummet, der best\u00e5r af 256 bits, genereret tilf\u00e6ldigt af serveren. Initialiseringsvektoren (IV, initialization vector) best\u00e5r ogs\u00e5 af 256 tilf\u00e6ldigt genererede bits (selvom det skal v\u00e6re 128 bits). IV bruges til at initere kryptering og dekryptering af AES (af de 256 bits bruges kun 128). Til sidst er der en CRC32 checksum for TABLESPACE KEY og IV.<\/em><\/p>\n<p><em>Hele tiden har jeg forenklet lidt ved at sige, at der er en krypteret tabelrumss n\u00f8gle i overskriften. Faktisk opbevares og krypteres tabellerummets n\u00f8gle og initialiseringsvektoren sammen ved hj\u00e6lp af hovedn\u00f8glen. Husk, at f\u00f8r krypteringen af tabellerummets n\u00f8gle og initialiseringsvektoren beregnes CRC32 for dem.<\/em><\/p>\n<h3>Hvad er form\u00e5let med CRC32?<\/h3>\n<p><em>Kort sagt, for at sikre gyldigheden af den prim\u00e6re n\u00f8gle. Efter dekryptering af tabeller og initialiseringsvektoren beregnes en kontrolsum, som sammenlignes med den gemte CRC32 i headeren. Hvis checksummene stemmer overens, har vi den korrekte prim\u00e6re n\u00f8gle og tabeln\u00f8glen. Ellers markeres tabellen som manglende (vi kan stadig ikke dekryptere den).<\/em><\/p>\n<p><em>Du kan sp\u00f8rge: hvorn\u00e5r udf\u00f8res tjek af n\u00f8glerne? Svaret er ved opstart af serveren. Serveren med krypterede tabeller \/ tabelrum l\u00e6ser UUID, KEY<\/em>ID fra overskriften og genererer identifikatoren for hovedn\u00f8glen. Derefter henter den den n\u00f8dvendige hovedn\u00f8gle fra n\u00f8gleringen (keyring), dekrypterer tabelrum-n\u00f8glen og kontrollerer kontrollsummen. Endnu en gang, hvis kontrollsummen stemmer, s\u00e5 er alt i orden, hvis ikke \u2013 tabelrummet markeres som ikke eksisterende.<\/p>\n<p>Hvis du har l\u00e6st den tidligere artikel i denne serie (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/522092\/\"><u>Kryptering i MySQL: n\u00f8glelagring<\/u><\/a><\/noindex>), husker du m\u00e5ske, at n\u00e5r der anvendes et servern\u00f8glelager, modtager serveren ved opstart kun en liste over n\u00f8gleidentifikatorer, mere pr\u00e6cist key id og user id, da dette par entydigt identificerer n\u00f8glen. Og nu siger jeg, at serveren ved opstart f\u00e5r alle de n\u00f8gler, den beh\u00f8ver for at kontrollere muligheden for at dekryptere tabeln\u00f8gler. S\u00e5 hvorfor indl\u00e6ses der kun key<em>id og user<\/em>id ved initialisering, og ikke alle n\u00f8gler? Fordi du m\u00e5ske ikke har brug for alle n\u00f8glerne. Dette h\u00e6nger prim\u00e6rt sammen med rotationen af den prim\u00e6re n\u00f8gle. Ved rotation af den prim\u00e6re n\u00f8gle oprettes en ny prim\u00e6r n\u00f8gle i lageret, men de gamle n\u00f8gler slettes ikke. S\u00e5ledes kan der i servern\u00f8glelageret v\u00e6re mange n\u00f8gler, som serveren ikke beh\u00f8ver, og som derfor ikke hentes ved serverstart.<\/p>\n<p>Det er tid til at tale lidt om fordele og ulemper ved kryptering ved hj\u00e6lp af en master-n\u00f8gle. Den st\u00f8rste fordel er, at du kun har brug for \u00e9n krypteringsn\u00f8gle (master-n\u00f8gle), som bliver opbevaret separat fra dine krypterede data. Dette g\u00f8r serverops\u00e6tningen hurtig, og lagerpladsen er lille, hvilket letter administrationen. Og desuden er det nemt at regenerere den eneste master-n\u00f8gle.<\/p>\n<p>Men kryptering med master-n\u00f8glen har en stor ulempe: N\u00e5r tabelrummet er krypteret med tablespace_key, forbliver det altid krypteret med den samme n\u00f8gle. Rotation af master-n\u00f8glen hj\u00e6lper ikke her. Hvorfor er det en ulempe? Vi ved, at der er bugs i MySQL, som kan f\u00f8re til pludselige nedbrud og skabe core-filer. Da core-filen indeholder en dump af serverens hukommelse, kan det ske, at den dump indeholder den dekrypterede tabelrum-n\u00f8gle. Endnu v\u00e6rre, dekrypterede tabelrum-n\u00f8gler opbevares i hukommelsen, som kan swap'es til disken. Du kan sige, at dette ikke er en ulempe, da du har brug for root-rettigheder for at f\u00e5 adgang til disse filer og swap-partitionen. Ja. Men root-adgang kr\u00e6ves kun i en kort periode. S\u00e5 snart nogen f\u00e5r adgang til den dekrypterede tabelrum-n\u00f8gle, kan han\/hun forts\u00e6tte med at bruge den til at dekryptere data, selv uden root-rettigheder. Desuden kan disken blive stj\u00e5let, og swap-partitionen\/core-filerne kan l\u00e6ses med tredjeparts v\u00e6rkt\u00f8jer. Form\u00e5let med TDE er at g\u00f8re det ul\u00e6seligt, selv hvis disken bliver stj\u00e5let. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.percona.com\/software\/mysql-database\/percona-server\"><u>Percona Server for MySQL<\/u><\/a><\/noindex> der er mulighed for at re-kryptere tabelrummet med nye genererede n\u00f8gler. Denne funktion kaldes krypteringstr\u00e5de (encryption threads) og er p\u00e5 tidspunktet for skrivningen af denne artikel stadig eksperimentel.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/wMyj\/\"><strong>L\u00e6r mere om kurset<\/strong><\/a><\/noindex><\/p>\n<h3>L\u00e6s mere:<\/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.3 - 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\/da\/blog\/administrirovanie\/shifrovanie-v-mysql-ispolzovanie-master-key\" \/>\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\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\/da\/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: brug af Master Key | ProHoster","description":"I takt med, at vi n\u00e6rmer os starten af et nyt hold p\u00e5 kurset \"Databaser\", forts\u00e6tter vi.","canonical_url":"https:\/\/prohoster.info\/da\/blog\/administrirovanie\/shifrovanie-v-mysql-ispolzovanie-master-key","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\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\/da\/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\/da\/wp-json\/wp\/v2\/posts\/97667","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=97667"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/posts\/97667\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media\/97668"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/media?parent=97667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/categories?post=97667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/da\/wp-json\/wp\/v2\/tags?post=97667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}