{"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\/cs\/blog\/administrirovanie\/shifrovanie-v-mysql-ispolzovanie-master-key","title":{"rendered":"\u0160ifrov\u00e1n\u00ed v MySQL: pou\u017eit\u00ed Master Key","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h2><\/h2>\n<p><strong><em>V p\u0159edve\u010der zah\u00e1jen\u00ed nov\u00e9ho z\u00e1pisu do kurzu&nbsp;<\/em><\/strong><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/wMyj\/\"><strong><em>\u201eDatab\u00e1ze\u201c<\/em><\/strong><\/a><\/noindex><strong><em>&nbsp;pokra\u010dujeme v publikov\u00e1n\u00ed s\u00e9rie \u010dl\u00e1nk\u016f o \u0161ifrov\u00e1n\u00ed v MySQL.<\/em><\/strong><\/p>\n<p><img decoding=\"async\" alt=\"\u0160ifrov\u00e1n\u00ed v MySQL: pou\u017eit\u00ed Master Key\" src=\"\/wp-content\/uploads\/2020\/10\/762866d2c321acd726e30606c9108122.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>V p\u0159edchoz\u00edm \u010dl\u00e1nku t\u00e9to s\u00e9rie (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/522092\/\"><u>\u0160ifrov\u00e1n\u00ed v MySQL: \u00falo\u017ei\u0161t\u011b kl\u00ed\u010d\u016f<\/u><\/a><\/noindex>) jsme hovo\u0159ili o \u00falo\u017ei\u0161t\u00edch kl\u00ed\u010d\u016f. V tomto \u010dl\u00e1nku se zam\u011b\u0159\u00edme na to, jak se pou\u017e\u00edv\u00e1 hlavn\u00ed kl\u00ed\u010d, a tak\u00e9 prodiskutujeme v\u00fdhody a nev\u00fdhody \u0161ifrov\u00e1n\u00ed metodou ob\u00e1lek.&nbsp;<\/p>\n<p>My\u0161lenka \u0161ifrov\u00e1n\u00ed ob\u00e1lek spo\u010d\u00edv\u00e1 v tom, \u017ee kl\u00ed\u010de pou\u017e\u00edvan\u00e9 pro \u0161ifrov\u00e1n\u00ed (kl\u00ed\u010de tabulkov\u00fdch prostor\u016f) jsou \u0161ifrov\u00e1ny dal\u0161\u00edm kl\u00ed\u010dem (hlavn\u00edm kl\u00ed\u010dem). Pro \u0161ifrov\u00e1n\u00ed dat se ve skute\u010dnosti pou\u017e\u00edvaj\u00ed kl\u00ed\u010de tabulkov\u00fdch prostor\u016f. Graficky to lze p\u0159edstavit takto:<\/p>\n<p><img decoding=\"async\" alt=\"\u0160ifrov\u00e1n\u00ed v MySQL: pou\u017eit\u00ed Master Key\" src=\"\/wp-content\/uploads\/2020\/10\/385afda0eff739f4720f59799c35b51f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Hlavn\u00ed kl\u00ed\u010d (master key) se nach\u00e1z\u00ed v \u00falo\u017ei\u0161ti kl\u00ed\u010d\u016f (keyring) a kl\u00ed\u010de tabulkov\u00fdch prostor\u016f jsou v hlavi\u010dk\u00e1ch za\u0161ifrovan\u00fdch tabulkov\u00fdch prostor\u016f (na str\u00e1nce 0 tabulkov\u00e9ho prostoru).&nbsp;<\/p>\n<p>Na obr\u00e1zku v\u00fd\u0161e:<\/p>\n<ul>\n<li>\n<p>Tabulka A je za\u0161ifrov\u00e1na kl\u00ed\u010dem 1. Kl\u00ed\u010d 1 je \u0161ifrov\u00e1n pomoc\u00ed hlavn\u00edho kl\u00ed\u010de a uchov\u00e1v\u00e1n v za\u0161ifrovan\u00e9 podob\u011b v z\u00e1hlav\u00ed tabulky A.<\/p>\n<\/li>\n<li>\n<p>Tabulka B je za\u0161ifrov\u00e1na kl\u00ed\u010dem 2. Kl\u00ed\u010d 2 je \u0161ifrov\u00e1n pomoc\u00ed hlavn\u00edho kl\u00ed\u010de a uchov\u00e1v\u00e1n v za\u0161ifrovan\u00e9 podob\u011b v z\u00e1hlav\u00ed tabulky B.<\/p>\n<\/li>\n<li>\n<p>A tak d\u00e1le.<\/p>\n<\/li>\n<\/ul>\n<p>Kdy\u017e server pot\u0159ebuje de\u0161ifrovat tabulku A, z\u00edsk\u00e1 hlavn\u00ed kl\u00ed\u010d z \u00falo\u017ei\u0161t\u011b, p\u0159e\u010dte za\u0161ifrovan\u00fd kl\u00ed\u010d 1 ze z\u00e1hlav\u00ed tabulky A a de\u0161ifruje kl\u00ed\u010d 1. De\u0161ifrovan\u00fd kl\u00ed\u010d 1 je ulo\u017een v cache pam\u011bti serveru a pou\u017e\u00edv\u00e1 se pro de\u0161ifrov\u00e1n\u00ed tabulky A.<\/p>\n<h3>InnoDB<\/h3>\n<p>V InnoDB se skute\u010dn\u00e9 \u0161ifrov\u00e1n\u00ed a de\u0161ifrov\u00e1n\u00ed prov\u00e1d\u00ed na \u00farovni vstup\u016f a v\u00fdstup\u016f. Tedy str\u00e1nka je \u0161ifrov\u00e1na t\u011bsn\u011b p\u0159ed t\u00edm, ne\u017e je zaps\u00e1na na disk, a de\u0161ifrov\u00e1na ihned po p\u0159e\u010dten\u00ed z disku.<\/p>\n<p>V InnoDB \u0161ifrov\u00e1n\u00ed funguje pouze na \u00farovni tabulkov\u00fdch prostor\u016f. A ve v\u00fdchoz\u00edm nastaven\u00ed jsou v\u0161echny tabulky vytv\u00e1\u0159eny ve vlastn\u00edch tabulkov\u00fdch prostorech (<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>). Jin\u00fdmi slovy, se vytv\u00e1\u0159\u00ed tabulkov\u00fd prostor, kter\u00fd m\u016f\u017ee obsahovat pouze jednu tabulku. I kdy\u017e je tak\u00e9 mo\u017en\u00e9 vytv\u00e1\u0159et tabulky v hlavn\u00edm tabulkov\u00e9m prostoru (<noindex><a rel=\"nofollow\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/general-tablespaces.html\"><u>general tablespace<\/u><\/a><\/noindex>). Ale v ka\u017ed\u00e9m p\u0159\u00edpad\u011b je tabulka v\u017edy v n\u011bjak\u00e9m tabulkov\u00e9m prostoru. A jeliko\u017e se \u0161ifrov\u00e1n\u00ed prov\u00e1d\u00ed na \u00farovni tabulkov\u00e9ho prostoru, je bu\u010f zcela za\u0161ifrov\u00e1no, nebo nen\u00ed. To znamen\u00e1, \u017ee nen\u00ed mo\u017en\u00e9 za\u0161ifrovat pouze \u010d\u00e1st tabulek ve hlavn\u00edm tabulkov\u00e9m prostoru.&nbsp;<\/p>\n<p>Pokud je z jak\u00e9hokoli d\u016fvodu deaktivov\u00e1na mo\u017enost file-per-table, v\u0161echny tabulky budou vytvo\u0159eny v r\u00e1mci syst\u00e9mov\u00e9ho tabulkov\u00e9ho prostoru (system tablespace). <noindex><a rel=\"nofollow\" href=\"https:\/\/www.percona.com\/software\/mysql-database\/percona-server\"><u>Percona Server for MySQL<\/u><\/a><\/noindex> M\u016f\u017eete za\u0161ifrovat syst\u00e9mov\u00fd tabulkov\u00fd prostor pomoc\u00ed prom\u011bnn\u00e9 innodb<em>sys<\/em>tablespace<em>encrypt nebo pomoc\u00ed \u0161ifrovac\u00edch vl\u00e1ken (encryption threads), ale to je st\u00e1le experiment\u00e1ln\u00ed funkce. MySQL to nenab\u00edz\u00ed.<\/em><\/p>\n<p><em>Ne\u017e se posuneme d\u00e1l, je t\u0159eba si prohl\u00e9dnout strukturu identifik\u00e1toru hlavn\u00edho kl\u00ed\u010de (master key ID). Ten se skl\u00e1d\u00e1 z UUID, KEY<\/em>ID a prefix \u201eINNODBKey\u201c. Vypad\u00e1 to takto: INNODBKey-UUID-KEY<em>ID.<\/em><\/p>\n<p><em>UUID \u2014 to je uuid serveru se za\u0161ifrovan\u00fdm tabulkov\u00fdm prostorem. KEY<\/em>ID \u2014 to je prost\u011b trvale rostouc\u00ed hodnota. P\u0159i prvotn\u00edm vytvo\u0159en\u00ed hlavn\u00edho kl\u00ed\u010de KEY<em>ID je rovno 1. P\u0159i rotaci kl\u00ed\u010de, kdy je vytvo\u0159en nov\u00fd hlavn\u00ed kl\u00ed\u010d, KEY<\/em>ID = 2 a tak d\u00e1le. Podrobn\u011bji se o rotaci hlavn\u00edch kl\u00ed\u010d\u016f budeme bavit v n\u00e1sleduj\u00edc\u00edch \u010dl\u00e1nc\u00edch t\u00e9to s\u00e9rie.<\/p>\n<p>Nyn\u00ed kdy\u017e v\u00edme, jak vypad\u00e1 identifik\u00e1tor hlavn\u00edho kl\u00ed\u010de, pod\u00edvejme se na hlavi\u010dku za\u0161ifrovan\u00e9ho tabulkov\u00e9ho prostoru. Kdy\u017e je tabulkov\u00fd prostor \u0161ifrov\u00e1n, informace o \u0161ifrov\u00e1n\u00ed se p\u0159id\u00e1vaj\u00ed k hlavi\u010dce. Vypad\u00e1 to takto:<\/p>\n<p><img decoding=\"async\" alt=\"\u0160ifrov\u00e1n\u00ed v MySQL: pou\u017eit\u00ed Master Key\" src=\"\/wp-content\/uploads\/2020\/10\/0703933a85f0a106c07c0dbd6b7f4186.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>KEY ID \u2014 to je KEY<em>ID z identifik\u00e1toru hlavn\u00edho kl\u00ed\u010de, o kter\u00e9m jsme se ji\u017e bavili. UUID \u2014 to je uuid serveru, kter\u00e9 je tak\u00e9 pou\u017eito v identifik\u00e1toru hlavn\u00edho kl\u00ed\u010de. TABLESPACE KEY \u2014 kl\u00ed\u010d tabulkov\u00e9ho prostoru, kter\u00fd se skl\u00e1d\u00e1 ze 256 bit\u016f, n\u00e1hodn\u011b vygenerovan\u00fdch serverem. Vektor inicializace (IV, initialization vector) se tak\u00e9 skl\u00e1d\u00e1 ze 256 n\u00e1hodn\u011b vygenerovan\u00fdch bit\u016f (a\u010dkoli by m\u011bl b\u00fdt 128 bit\u016f). IV se pou\u017e\u00edv\u00e1 k inicializaci \u0161ifrov\u00e1n\u00ed a de\u0161ifrov\u00e1n\u00ed AES (z 256 bit\u016f se pou\u017e\u00edv\u00e1 pouze 128). Na konci se nach\u00e1z\u00ed kontroln\u00ed sou\u010det CRC32 pro TABLESPACE KEY a IV.<\/em><\/p>\n<p><em>Po celou dobu jsem pon\u011bkud zjednodu\u0161oval, kdy\u017e jsem \u0159\u00edkal, \u017ee v hlavi\u010dce je za\u0161ifrovan\u00fd kl\u00ed\u010d tabulkov\u00e9ho prostoru. Ve skute\u010dnosti jsou kl\u00ed\u010d tabulkov\u00e9ho prostoru a inicializa\u010dn\u00ed vektor uchov\u00e1v\u00e1ny a \u0161ifrov\u00e1ny spolu pomoc\u00ed hlavn\u00edho kl\u00ed\u010de. Nezapome\u0148te, \u017ee p\u0159ed \u0161ifrov\u00e1n\u00edm kl\u00ed\u010de tabulkov\u00e9ho prostoru a inicializa\u010dn\u00edho vektoru se pro n\u011b po\u010d\u00edt\u00e1 CRC32.<\/em><\/p>\n<h3>Pro\u010d je pot\u0159eba CRC32?<\/h3>\n<p><em>Pokud to shrneme, validita hlavn\u00edho kl\u00ed\u010de se kontroluje n\u00e1sleduj\u00edc\u00edm zp\u016fsobem. Po de\u0161ifrov\u00e1n\u00ed kl\u00ed\u010de tabulkov\u00e9ho prostoru a inicia\u010dn\u00edho vektoru se vypo\u010d\u00edt\u00e1 kontroln\u00ed sou\u010det, kter\u00fd se porovn\u00e1 s CRC32 ulo\u017een\u00fdm v hlavi\u010dce. Pokud se kontroln\u00ed sou\u010dty shoduj\u00ed, m\u00e1me spr\u00e1vn\u00fd hlavn\u00ed kl\u00ed\u010d a kl\u00ed\u010d tabulkov\u00e9ho prostoru. V opa\u010dn\u00e9m p\u0159\u00edpad\u011b se tabulkov\u00fd prostor ozna\u010d\u00ed jako neexistuj\u00edc\u00ed (nem\u016f\u017eeme jej de\u0161ifrovat).<\/em><\/p>\n<p><em>M\u016f\u017eete se pt\u00e1t: v kter\u00e9m okam\u017eiku se prov\u00e1d\u00ed kontrola kl\u00ed\u010d\u016f? Odpov\u011b\u010f \u2014 p\u0159i spu\u0161t\u011bn\u00ed serveru. Server se za\u0161ifrovan\u00fdmi tabulkami \/ tabulkov\u00fdmi prostory p\u0159i startu \u010dte UUID, KEY<\/em>ID z hlavi\u010dky a generuje identifik\u00e1tor hlavn\u00edho kl\u00ed\u010de. Pot\u00e9 z\u00edsk\u00e1 pot\u0159ebn\u00fd hlavn\u00ed kl\u00ed\u010d z \u00falo\u017ei\u0161t\u011b (keyring), de\u0161ifruje kl\u00ed\u010d tabulkov\u00e9ho prostoru a kontroluje kontroln\u00ed sou\u010det. Je\u0161t\u011b jednou, pokud kontroln\u00ed sou\u010det souhlas\u00ed, je v\u0161e v po\u0159\u00e1dku, pokud ne \u2014 tabulkov\u00fd prostor je ozna\u010den jako neexistuj\u00edc\u00ed.<\/p>\n<p>Pokud jste \u010detli p\u0159edchoz\u00ed \u010dl\u00e1nek t\u00e9to s\u00e9rie (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/522092\/\"><u>\u0160ifrov\u00e1n\u00ed v MySQL: \u00falo\u017ei\u0161t\u011b kl\u00ed\u010d\u016f<\/u><\/a><\/noindex>), mo\u017en\u00e1 si pamatujete, \u017ee p\u0159i pou\u017e\u00edv\u00e1n\u00ed serverov\u00e9ho skladu kl\u00ed\u010d\u016f server p\u0159i spu\u0161t\u011bn\u00ed z\u00edsk\u00e1v\u00e1 pouze seznam identifik\u00e1tor\u016f kl\u00ed\u010d\u016f, konkr\u00e9tn\u011b key id a user id, proto\u017ee tato dvojice jednozna\u010dn\u011b identifikuje kl\u00ed\u010d. A nyn\u00ed \u0159\u00edk\u00e1m, \u017ee server p\u0159i spu\u0161t\u011bn\u00ed z\u00edsk\u00e1v\u00e1 v\u0161echny kl\u00ed\u010de pot\u0159ebn\u00e9 k ov\u011b\u0159en\u00ed mo\u017enosti de\u0161ifrov\u00e1n\u00ed kl\u00ed\u010d\u016f tabulkov\u00fdch prostor\u016f. Tak pro\u010d se p\u0159i inicializaci, v p\u0159\u00edpad\u011b serverov\u00e9ho skladu, na\u010d\u00edtaj\u00ed pouze key<em>id a user<\/em>id, a ne v\u0161echny kl\u00ed\u010de? Proto\u017ee v\u0161echny kl\u00ed\u010de nemus\u00edte m\u00edt. To v\u011bt\u0161inou souvis\u00ed s rotac\u00ed hlavn\u00edho kl\u00ed\u010de. P\u0159i rotaci hlavn\u00edho kl\u00ed\u010de se v skladu vytvo\u0159\u00ed nov\u00fd hlavn\u00ed kl\u00ed\u010d, ale star\u00e9 kl\u00ed\u010de se nema\u017eou. Tak\u017ee v serverov\u00e9m skladu kl\u00ed\u010d\u016f m\u016f\u017eete m\u00edt mnoho kl\u00ed\u010d\u016f, kter\u00e9 server nepot\u0159ebuje, a proto se p\u0159i spu\u0161t\u011bn\u00ed serveru nevytahuj\u00ed.<\/p>\n<p>Nastal \u010das trochu promluvit o v\u00fdhod\u00e1ch a nev\u00fdhod\u00e1ch \u0161ifrov\u00e1n\u00ed pomoc\u00ed hlavn\u00edho kl\u00ed\u010de. Nejv\u011bt\u0161\u00ed v\u00fdhodou je, \u017ee pot\u0159ebujete pouze jeden \u0161ifrovac\u00ed kl\u00ed\u010d (hlavn\u00ed kl\u00ed\u010d), kter\u00fd bude uchov\u00e1v\u00e1n odd\u011blen\u011b od va\u0161ich za\u0161ifrovan\u00fdch dat. To zrychluje spou\u0161t\u011bn\u00ed serveru a sni\u017euje velikost \u00falo\u017ei\u0161t\u011b, co\u017e usnad\u0148uje spr\u00e1vu. Nav\u00edc je snadn\u00e9 znovu vygenerovat jedin\u00fd hlavn\u00ed kl\u00ed\u010d.<\/p>\n<p>\u0160ifrov\u00e1n\u00ed pomoc\u00ed hlavn\u00edho kl\u00ed\u010de m\u00e1 v\u0161ak jeden velk\u00fd nedostatek: jakmile je tabulkov\u00fd prostor za\u0161ifrov\u00e1n pomoc\u00ed tablespace_key, z\u016fst\u00e1v\u00e1 v\u017edy za\u0161ifrov\u00e1n stejn\u00fdm kl\u00ed\u010dem. Rotace hlavn\u00edho kl\u00ed\u010de zde nepom\u016f\u017ee. Pro\u010d je to nev\u00fdhoda? V\u00edme, \u017ee v MySQL jsou chyby, kter\u00e9 mohou v\u00e9st k n\u00e1hl\u00e9mu selh\u00e1n\u00ed a vytvo\u0159en\u00ed core souboru. Jeliko\u017e core soubor obsahuje dump pam\u011bti serveru, je mo\u017en\u00e9, \u017ee v dumpu bude de\u0161ifrovan\u00fd kl\u00ed\u010d tabulkov\u00e9ho prostoru. Co je hor\u0161\u00ed, de\u0161ifrovan\u00e9 kl\u00ed\u010de tabulkov\u00e9ho prostoru se uchov\u00e1vaj\u00ed v pam\u011bti, kter\u00e1 m\u016f\u017ee b\u00fdt str\u00e1nkov\u00e1na na disk. M\u016f\u017eete tvrdit, \u017ee to nen\u00ed nedostatek, proto\u017ee pro p\u0159\u00edstup k t\u011bmto soubor\u016fm a str\u00e1nce podswapu jsou pot\u0159ebn\u00e1 pr\u00e1va root. Ano, ale root je pot\u0159eba jen na chv\u00edli. Jakmile se n\u011bkdo dostane k de\u0161ifrovan\u00e9mu kl\u00ed\u010di tabulkov\u00e9ho prostoru, m\u016f\u017ee ho nad\u00e1le pou\u017e\u00edvat pro de\u0161ifrov\u00e1n\u00ed dat i bez pr\u00e1v root. Nav\u00edc disk m\u016f\u017ee b\u00fdt ukraden a odd\u00edl podswapu\/core soubory lze p\u0159e\u010d\u00edst pomoc\u00ed t\u0159et\u00edch stran. C\u00edlem TDE je zajistit, aby byl irelevantn\u00ed, i kdy\u017e bude disk ukraden. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.percona.com\/software\/mysql-database\/percona-server\"><u>Percona Server for MySQL<\/u><\/a><\/noindex> existuje mo\u017enost op\u011btovn\u00e9ho \u0161ifrov\u00e1n\u00ed tabulkov\u00e9ho prostoru s nov\u011b vygenerovan\u00fdmi kl\u00ed\u010di. Tato funkce se naz\u00fdv\u00e1 \u0161ifrovac\u00ed vl\u00e1kna (encryption threads) a v dob\u011b psan\u00ed tohoto \u010dl\u00e1nku je st\u00e1le experiment\u00e1ln\u00ed.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/wMyj\/\"><strong>Zjistit v\u00edce o kurzu<\/strong><\/a><\/noindex><\/p>\n<h3>\u010c\u00edst v\u00edc:<\/h3>\n<ul>\n<li>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/522092\/\">\u0160ifrov\u00e1n\u00ed v MySQL: \u00falo\u017ei\u0161t\u011b kl\u00ed\u010d\u016f<\/a><\/noindex><\/p>\n<\/li>\n<\/ul>\n<p>Zdroj: <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\/cs\/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=\"cs_CZ\" \/>\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\/cs\/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\u0160ifrov\u00e1n\u00ed v MySQL: pou\u017eit\u00ed hlavn\u00edho kl\u00ed\u010de | ProHoster","description":"P\u0159ed za\u010d\u00e1tkem nov\u00e9ho cyklu kurzu \u201eDatov\u00e9 b\u00e1ze\u201c pokra\u010dujeme.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/shifrovanie-v-mysql-ispolzovanie-master-key","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/97667","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=97667"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/97667\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/97668"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=97667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=97667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=97667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}