{"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\/sl\/blog\/administrirovanie\/shifrovanie-v-mysql-ispolzovanie-master-key","title":{"rendered":"\u0160ifriranje v MySQL: uporaba Master Key","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h2><\/h2>\n<p><strong><em>Uo\u010di po\u010detka novog upisa na kurs&nbsp;<\/em><\/strong><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/wMyj\/\"><strong><em>\u201eBaze podataka\u201c<\/em><\/strong><\/a><\/noindex><strong><em>&nbsp;Nadaljevanje serije \u010dlankov o \u0161ifriranju v MySQL.<\/em><\/strong><\/p>\n<p><img decoding=\"async\" alt=\"\u0160ifriranje v MySQL: uporaba Master Key\" src=\"\/wp-content\/uploads\/2020\/10\/762866d2c321acd726e30606c9108122.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>V prej\u0161njem \u010dlanku te serije (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/522092\/\"><u>\u0160ifriranje u MySQL-u: skladi\u0161te klju\u010deva<\/u><\/a><\/noindex>) smo govorili o skladi\u0161\u010dih klju\u010dev. V tem \u010dlanku bomo preu\u010dili, kako se uporablja glavni klju\u010d (master key), ter razpravljali o prednostih in slabostih \u0161ifriranja z uporabo konvertnic (envelope encryption).&nbsp;<\/p>\n<p>Ideja konvertnice je, da so klju\u010di, uporabljeni za \u0161ifriranje (klju\u010di tabel), \u0161ifrirani z drugim klju\u010dem (glavnim klju\u010dem, master key). Dejanske podatke \u0161ifrirajo klju\u010di tabel. Grafi\u010dno to lahko predstavimo takole:<\/p>\n<p><img decoding=\"async\" alt=\"\u0160ifriranje v MySQL: uporaba Master Key\" src=\"\/wp-content\/uploads\/2020\/10\/385afda0eff739f4720f59799c35b51f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Glavni klju\u010d (master key) se nalazi u skladi\u0161tu klju\u010deva (keyring), a klju\u010devi tabela se nalaze u zaglavljima \u0161ifrovanih tabela (na stranici 0 tabele).&nbsp;<\/p>\n<p>Na sliki zgoraj:<\/p>\n<ul>\n<li>\n<p>Tabela A je \u0161ifrirana s klju\u010dem 1 (Key 1). Klju\u010d 1 se \u0161ifrira z glavnim klju\u010dem (master key) in se hrani v \u0161ifrirani obliki v naslovu tabele A.<\/p>\n<\/li>\n<li>\n<p>Tabela B je \u0161ifrirana s klju\u010dem 2 (Key 2). Klju\u010d 2 se \u0161ifrira z glavnim klju\u010dem (master key) in se hrani v \u0161ifrirani obliki v naslovu tabele B.<\/p>\n<\/li>\n<li>\n<p>In tako naprej.<\/p>\n<\/li>\n<\/ul>\n<p>Ko stre\u017eniku onemogo\u010da de\u0161ifriranje tabele A, pridobi glavni klju\u010d iz skladi\u0161\u010da, prebere \u0161ifrirani klju\u010d 1 iz naslova tabele A in de\u0161ifrira klju\u010d 1. De\u0161ifrirani klju\u010d 1 se shranjuje v pomnilniku stre\u017enika in se uporablja za de\u0161ifriranje tabele A.<\/p>\n<h3>InnoDB<\/h3>\n<p>V InnoDB se dejansko \u0161ifriranje in de\u0161ifriranje izvajata na ravni vnosa-izvoda. Torej se stran \u0161ifrira neposredno pred zapisom na disk in de\u0161ifrira takoj po branju z diska.<\/p>\n<p>V InnoDB \u0161ifriranje deluje samo na ravni tabel. In privzeto se vse tabele ustvarijo v lo\u010denih tabelah (<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>). Z drugimi besedami, ustvarja se tabela, ki lahko vsebuje samo eno tabelo. \u010ceprav lahko tabele ustvarjate tudi v glavni tabeli (<noindex><a rel=\"nofollow\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/general-tablespaces.html\"><u>general tablespace<\/u><\/a><\/noindex>). V vsakem primeru je tabela vedno v neki tabeli. In ker se \u0161ifriranje izvaja na ravni tabele, je bodisi popolnoma \u0161ifrirano bodisi ne. To pomeni, da v glavni tabeli ni mogo\u010de \u0161ifrirati le dela tabel.&nbsp;<\/p>\n<p>\u010ce imate iz kakr\u0161negakoli razloga onemogo\u010den file-per-table, se vse tabele ustvarijo znotraj sistemskega tabelarskega prostora (system tablespace). V <noindex><a rel=\"nofollow\" href=\"https:\/\/www.percona.com\/software\/mysql-database\/percona-server\"><u>Percona Server za MySQL<\/u><\/a><\/noindex> lahko \u0161ifrirate sistemski tabelarski prostor z uporabo spremenljivke innodb<em>sys<\/em>tablespace<em>encrypt ali z uporabo \u0161ifrirnih niti (encryption threads), vendar je to \u0161e vedno eksperimentalna funkcija. V MySQL tega ni.<\/em><\/p>\n<p><em>Preden nadaljujemo, moramo obravnavati strukturo identifikatorja glavnega klju\u010da (master key ID). Sestavljen je iz UUID, KEY<\/em>ID i prefiks \u201eINNODBKey\u201c. Izgleda ovako: INNODBKey-UUID-KEY<em>ID.<\/em><\/p>\n<p><em>UUID je uuid servera sa \u0161ifrovanom tabelom. KEY<\/em>ID je jednostavno stalno rastu\u0107a vrednost. Kada se prvi put kreira glavni klju\u010d KEY<em>ID je enak 1. Pri rotaciji klju\u010da, ko je ustvarjen nov glavni klju\u010d, KEY<\/em>ID = 2 in tako naprej. O rotaciji glavnih klju\u010dev bomo podrobneje govorili v naslednjih \u010dlankih te serije.<\/p>\n<p>Zdaj, ko vemo, kako izgleda identifikator glavnega klju\u010da, si poglejmo glavo \u0161ifriranega tabelarskega prostora. Ko je tabelarski prostor \u0161ifriran, se informacije o \u0161ifriranju dodajo glavi. Izgleda tako:<\/p>\n<p><img decoding=\"async\" alt=\"\u0160ifriranje v MySQL: uporaba Master Key\" src=\"\/wp-content\/uploads\/2020\/10\/0703933a85f0a106c07c0dbd6b7f4186.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>KEY ID je ovo KEY<em>ID iz identifikatora glavnog klju\u010da koji smo ve\u0107 razgovarali. UUID je uuid servera, koji se tako\u0111e koristi u identifikatoru glavnog klju\u010da. TABLESPACE KEY je klju\u010d tabele koji se sastoji od 256 bita, nasumi\u010dno generisanih od strane servera. Vektor inicijalizacije (IV, initialization vector) se tako\u0111e sastoji od 256 nasumi\u010dno generisanih bitova (iako bi trebao biti 128 bita). IV se koristi za inicijalizaciju \u0161ifrovanja i de\u0161ifrovanja AES (od 256 bita se koristi samo 128). Na kraju se nalazi kontrolna suma CRC32 za TABLESPACE KEY i IV.<\/em><\/p>\n<p><em>Vse to vreme sem nekoliko poenostavil, ko sem rekel, da je v glavi \u0161ifriran klju\u010d tabelarskega prostora. V resnici sta klju\u010d tabelarskega prostora in inicializacijski vektor shranjena in \u0161ifrirana skupaj z glavnim klju\u010dem. Ne pozabite, da se pred \u0161ifriranjem klju\u010da tabelarskega prostora in inicializacijskega vektorja zanje izra\u010duna CRC32.<\/em><\/p>\n<h3>Zakaj potrebujemo CRC32?<\/h3>\n<p><em>If we put it briefly, it's to ensure the validity of the main key. After decrypting the tablespace key and the initialization vector, a checksum is computed and compared with the CRC32 stored in the header. If the checksums match, we have a correct main key and tablespace key. Otherwise, the tablespace is marked as missing (we still won't be able to decrypt it).<\/em><\/p>\n<p><em>Mo\u017eete se pitati: u kom trenutku se vr\u0161i provera klju\u010deva? Odgovor je - prilikom pokretanja servera. Server sa \u0161ifrovanim tabelama\/tabelama prilikom pokretanja \u010dita UUID, KEY<\/em>ID iz zaglavlja i generi\u0161e identifikator glavnog klju\u010da. Zatim dobija potrebni glavni klju\u010d iz skladi\u0161ta (keyring), de\u0161ifruje klju\u010d tabele i proverava kontrolnu sumu. Ponovo, ako se kontrolna suma poklapa, sve je u redu, ako ne - tabela se ozna\u010dava kao nedostupna.<\/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>\u0160ifriranje u MySQL-u: skladi\u0161te klju\u010deva<\/u><\/a><\/noindex>), you might remember that when using a server key storage, the server at startup retrieves only a list of key identifiers, more precisely, the key id and user id, as this pair uniquely identifies the key. Now I say that at startup, the server retrieves all keys needed for verifying the decryption of tablespace keys. So why, during initialization, does it load only the key<em>id and user<\/em>id, and not all keys? Because you may not need all keys. This is primarily related to the rotation of the main key. When the main key is rotated, a new main key is created in the storage, but the old keys are not deleted. Thus, your server key storage can contain many keys that the server doesn\u2019t need and, therefore, are not retrieved when the server starts.<\/p>\n<p>\u010cas je, da se pogovorimo o prednostih in slabostih \u0161ifriranja z uporabo glavnega klju\u010da. Najve\u010dja prednost je, da potrebujete le en \u0161ifrirni klju\u010d (glavni klju\u010d), ki bo shranjen lo\u010deno od va\u0161ih \u0161ifriranih podatkov. To omogo\u010da hitro zagon stre\u017enika in zmanj\u0161uje shranjevanje, kar olaj\u0161a upravljanje. Poleg tega je enostavno ponovno generirati enoten glavni klju\u010d.<\/p>\n<p>Vendar pa ima \u0161ifriranje z glavnim klju\u010dem eno veliko slabost: po tem, ko je prostor za tabele \u0161ifriran z uporabo tablespace_key, ostaja vedno \u0161ifriran z istim klju\u010dem. Tukaj rotacija glavnega klju\u010da ne pomaga. Zakaj je to slabost? Vemo, da v MySQL obstajajo napake, ki lahko povzro\u010dijo nenaden zlom in ustvarjanje core datoteke. Ker core datoteka vsebuje odlagali\u0161\u010de pomnilnika stre\u017enika, se lahko zgodi, da bo v odlagali\u0161\u010du de\u0161ifriran klju\u010d prostora za tabele. \u0160e huje, de\u0161ifrirani klju\u010di prostora za tabele so shranjeni v spominu, ki se lahko zamenja na disk. Lahko bi rekli, da to ni slabost, saj potrebujete root pravice za dostop do teh datotek in stranske datoteke. Ja. Ampak root je potreben le za kratek \u010das. Ko nekdo dostopa do de\u0161ifriranega klju\u010da prostora za tabele, lahko nadaljuje z njegovo uporabo za de\u0161ifriranje podatkov, tudi brez pravic root. Poleg tega je disk lahko ukraden, stranske datoteke ali core datoteke pa se lahko preberejo s pomo\u010djo tretjih orodij. Cilj TDE je, da ga naredi neberljivega, tudi \u010de je disk ukraden. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.percona.com\/software\/mysql-database\/percona-server\"><u>Percona Server za MySQL<\/u><\/a><\/noindex> obstaja mo\u017enost ponovnega \u0161ifriranja prostora za tabele z novimi generiranimi klju\u010di. Ta funkcija se imenuje \u0161ifrirni niti (encryption threads) in je ob pisanju tega \u010dlanka \u0161e vedno eksperimentalna.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/wMyj\/\"><strong>Ve\u010d o te\u010daju<\/strong><\/a><\/noindex><\/p>\n<h3>Preberi ve\u010d:<\/h3>\n<ul>\n<li>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/522092\/\">\u0160ifriranje u MySQL-u: skladi\u0161te klju\u010deva<\/a><\/noindex><\/p>\n<\/li>\n<\/ul>\n<p>Izvor: <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.4 - 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\/sl\/blog\/administrirovanie\/shifrovanie-v-mysql-ispolzovanie-master-key\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sl_SI\" \/>\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\/sl\/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\udd47\u0160ifriranje v MySQL: uporaba Master Key | ProHoster","description":"Ob za\u010detku novega sklopa te\u010daja \"Baze podatkov\" nadaljujemo.","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/shifrovanie-v-mysql-ispolzovanie-master-key","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","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\/sl\/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\/sl\/wp-json\/wp\/v2\/posts\/97667","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=97667"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/97667\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media\/97668"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=97667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=97667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=97667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}