{"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\/pt\/blog\/administrirovanie\/shifrovanie-v-mysql-ispolzovanie-master-key","title":{"rendered":"Criptografia no MySQL: uso de Master Key","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<h2><\/h2>\n<p><strong><em>Com a proximidade do in\u00edcio de um novo ciclo de inscri\u00e7\u00f5es para o curso&nbsp;<\/em><\/strong><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/wMyj\/\"><strong><em>\u00abBancos de Dados\u00bb<\/em><\/strong><\/a><\/noindex><strong><em>&nbsp;continuamos publicando uma s\u00e9rie de artigos sobre criptografia no MySQL.<\/em><\/strong><\/p>\n<p><img decoding=\"async\" alt=\"Criptografia no MySQL: uso de Master Key\" src=\"\/wp-content\/uploads\/2020\/10\/762866d2c321acd726e30606c9108122.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>No artigo anterior desta s\u00e9rie (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/522092\/\"><u>Criptografia no MySQL: armazenamento de chaves<\/u><\/a><\/noindex>) falamos sobre armaz\u00e9ns de chaves. Neste artigo, abordaremos como \u00e9 utilizado a chave mestra (master key), al\u00e9m de discutir as vantagens e desvantagens da criptografia por envelopes (envelope encryption).&nbsp;<\/p>\n<p>A ideia da criptografia por envelopes \u00e9 que as chaves utilizadas para a criptografia (chaves de tablespace) s\u00e3o criptografadas por outra chave (a chave mestra, master key). As chaves de tablespace s\u00e3o, de fato, utilizadas para criptografar os dados. Graficamente, isso pode ser representado da seguinte forma:<\/p>\n<p><img decoding=\"async\" alt=\"Criptografia no MySQL: uso de Master Key\" src=\"\/wp-content\/uploads\/2020\/10\/385afda0eff739f4720f59799c35b51f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>A chave principal (master key) est\u00e1 no reposit\u00f3rio de chaves (keyring), enquanto as chaves dos espa\u00e7os de tabelas est\u00e3o nos cabe\u00e7alhos das tabelas criptografadas (na p\u00e1gina 0 do espa\u00e7o de tabelas).&nbsp;<\/p>\n<p>Na figura acima:<\/p>\n<ul>\n<li>\n<p>A Tabela A \u00e9 criptografada com a chave 1 (Key 1). A chave 1 \u00e9 criptografada usando a chave mestra (master key) e armazenada de forma criptografada no cabe\u00e7alho da Tabela A.<\/p>\n<\/li>\n<li>\n<p>A Tabela B \u00e9 criptografada com a chave 2 (Key 2). A chave 2 \u00e9 criptografada usando a chave mestra (master key) e armazenada de forma criptografada no cabe\u00e7alho da Tabela B.<\/p>\n<\/li>\n<li>\n<p>E assim por diante.<\/p>\n<\/li>\n<\/ul>\n<p>Quando o servidor precisa descriptografar a Tabela A, ele obt\u00e9m a chave mestra do armaz\u00e9m, l\u00ea a chave 1 criptografada do cabe\u00e7alho da Tabela A e a descriptografa. A chave 1 descriptografada \u00e9 armazenada em cache na mem\u00f3ria do servidor e utilizada para descriptografar a Tabela A.<\/p>\n<h3>InnoDB<\/h3>\n<p>No InnoDB, a criptografia e descriptografia reais s\u00e3o realizadas no n\u00edvel de entrada e sa\u00edda. Ou seja, a p\u00e1gina \u00e9 criptografada imediatamente antes de ser gravada no disco e descriptografada imediatamente ap\u00f3s a leitura do disco.<\/p>\n<p>No InnoDB, a criptografia funciona apenas no n\u00edvel de tablespaces. E por padr\u00e3o, todas as tabelas s\u00e3o criadas em tablespaces separados (<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>). Em outras palavras, um tablespace \u00e9 criado para conter apenas uma tabela. Embora voc\u00ea tamb\u00e9m possa criar tabelas no tablespace principal (<noindex><a rel=\"nofollow\" href=\"https:\/\/dev.mysql.com\/doc\/refman\/8.0\/en\/general-tablespaces.html\"><u>general tablespace<\/u><\/a><\/noindex>). Mas, em qualquer caso, a tabela sempre est\u00e1 em algum tablespace. E como a criptografia \u00e9 realizada no n\u00edvel do tablespace, ela \u00e9 ou totalmente criptografada ou n\u00e3o. Ou seja, n\u00e3o \u00e9 poss\u00edvel criptografar apenas uma parte das tabelas no tablespace principal.&nbsp;<\/p>\n<p>Se por algum motivo voc\u00ea tiver o file-per-table desativado, todas as tabelas ser\u00e3o criadas dentro do tablespace do sistema. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.percona.com\/software\/mysql-database\/percona-server\"><u>Percona Server for MySQL<\/u><\/a><\/noindex> \u00c9 poss\u00edvel criptografar o tablespace do sistema usando a vari\u00e1vel innodb<em>sys<\/em>tablespace<em>encrypt ou usando threads de criptografia, mas essa ainda \u00e9 uma fun\u00e7\u00e3o experimental. No MySQL isso n\u00e3o existe.<\/em><\/p>\n<p><em>Antes de prosseguir, precisamos considerar a estrutura do identificador da chave mestra (master key ID). Ele consiste em UUID, ID da chave e o prefixo \"INNODBKey\". Ele se parece com isso: INNODBKey-UUID-KEY<\/em>ID e prefixo \u00abINNODBKey\u00bb. Isso aparece assim: INNODBKey-UUID-KEY<em>UUID \u00e9 o UUID do servidor com o tablespace criptografado. O ID da chave \u00e9 simplesmente um valor que aumenta continuamente. Ao criar pela primeira vez a chave mestra, o ID da chave \u00e9 1. Quando a chave \u00e9 rotacionada e uma nova chave mestra \u00e9 criada, o ID da chave = 2 e assim por diante. Discutiremos mais detalhadamente sobre a rota\u00e7\u00e3o das chaves mestras nos pr\u00f3ximos artigos desta s\u00e9rie.<\/em><\/p>\n<p><em>UUID \u00e9 o uuid do servidor com o espa\u00e7o de tabelas criptografado. KEY<\/em>ID \u00e9 simplesmente um valor que aumenta continuamente. Na cria\u00e7\u00e3o inicial da chave principal KEY<em>Durante todo esse tempo, eu simplifiquei um pouco, dizendo que no cabe\u00e7alho existem uma chave de tablespace criptografada. Na verdade, a chave do tablespace e o vetor de inicializa\u00e7\u00e3o s\u00e3o armazenados e criptografados juntos com a chave mestra. Lembre-se de que antes de criptografar a chave do tablespace e o vetor de inicializa\u00e7\u00e3o, um CRC32 \u00e9 calculado para eles.<\/em>Por que o CRC32 \u00e9 necess\u00e1rio?<\/p>\n<p>Agora que sabemos como \u00e9 o identificador da chave principal, vamos analisar o cabe\u00e7alho do espa\u00e7o de tabela criptografado. Quando o espa\u00e7o de tabela \u00e9 criptografado, as informa\u00e7\u00f5es de criptografia s\u00e3o adicionadas ao cabe\u00e7alho. Ele se apresenta da seguinte forma:<\/p>\n<p><img decoding=\"async\" alt=\"Criptografia no MySQL: uso de Master Key\" src=\"\/wp-content\/uploads\/2020\/10\/0703933a85f0a106c07c0dbd6b7f4186.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>KEY ID \u00e9 a KEY<em>ID do identificador da chave principal, que j\u00e1 discutimos. UUID \u00e9 o uuid do servidor, que tamb\u00e9m \u00e9 usado no identificador da chave principal. TABLESPACE KEY \u00e9 a chave do espa\u00e7o de tabelas, que consiste em 256 bits gerados aleatoriamente pelo servidor. O vetor de inicializa\u00e7\u00e3o (IV, initialization vector) tamb\u00e9m consiste em 256 bits gerados aleatoriamente (embora deva ser 128 bits). O IV \u00e9 usado para inicializar a criptografia e a descriptografia AES (dos 256 bits, apenas 128 s\u00e3o utilizados). No final, h\u00e1 um checksum CRC32 para o TABLESPACE KEY e o IV.<\/em><\/p>\n<p><em>Durante todo esse tempo, simplifiquei um pouco, dizendo que o cabe\u00e7alho cont\u00e9m a chave criptografada do espa\u00e7o de tabela. Na verdade, a chave do espa\u00e7o de tabela e o vetor de inicializa\u00e7\u00e3o s\u00e3o armazenados e criptografados juntos com a chave principal. Lembre-se de que, antes da criptografia da chave do espa\u00e7o de tabela e do vetor de inicializa\u00e7\u00e3o, a CRC32 \u00e9 calculada para eles.<\/em><\/p>\n<h3>Por que \u00e9 necess\u00e1rio o CRC32?<\/h3>\n<p><em>Em poucas palavras, para verificar a validade da chave principal. Ap\u00f3s a decodifica\u00e7\u00e3o da chave do espa\u00e7o de tabela e do vetor de inicializa\u00e7\u00e3o, calcula-se a soma de verifica\u00e7\u00e3o e compara-se com o CRC32 armazenado no cabe\u00e7alho. Se as somas de verifica\u00e7\u00e3o coincidirem, temos a chave principal correta e a chave do espa\u00e7o de tabela. Caso contr\u00e1rio, o espa\u00e7o de tabela \u00e9 marcado como ausente (ainda n\u00e3o conseguiremos decifr\u00e1-lo).<\/em><\/p>\n<p><em>Voc\u00ea pode perguntar: em que momento ocorre a verifica\u00e7\u00e3o das chaves? A resposta \u00e9 \u2014 no in\u00edcio do servidor. O servidor com tabelas criptografadas\/espacos de tabelas l\u00ea UUID, KEY<\/em>ID do cabe\u00e7alho e gera o identificador da chave principal. Em seguida, ele obt\u00e9m a chave principal necess\u00e1ria do reposit\u00f3rio (keyring), descriptografa a chave do espa\u00e7o de tabelas e verifica o checksum. Mais uma vez, se o checksum coincidir, tudo est\u00e1 bem; se n\u00e3o, o espa\u00e7o de tabelas \u00e9 marcado como ausente.<\/p>\n<p>Se voc\u00ea leu o artigo anterior desta s\u00e9rie (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/522092\/\"><u>Criptografia no MySQL: armazenamento de chaves<\/u><\/a><\/noindex>), talvez se lembre de que ao usar o armazenamento de chaves do servidor, o servidor obt\u00e9m apenas a lista de identificadores de chaves, mais precisamente, o key id e o user id, uma vez que esse par identifica a chave de forma inequ\u00edvoca. Agora eu digo que o servidor, ao iniciar, obt\u00e9m todas as chaves necess\u00e1rias para verificar a possibilidade de decifrar as chaves dos espa\u00e7os de tabela. Ent\u00e3o, por que, na inicializa\u00e7\u00e3o, no caso do armazenamento de servidor, s\u00e3o carregados apenas o key<em>id e user<\/em>id, e n\u00e3o todas as chaves? Porque voc\u00ea pode n\u00e3o precisar de todas as chaves. Isso est\u00e1 principalmente relacionado \u00e0 rota\u00e7\u00e3o da chave principal. Ao rotacionar a chave principal, um novo chave principal \u00e9 criado no armazenamento, mas as chaves antigas n\u00e3o s\u00e3o exclu\u00eddas. Assim, no armazenamento de chaves do servidor, voc\u00ea pode ter muitas chaves que n\u00e3o s\u00e3o necess\u00e1rias para o servidor e, portanto, n\u00e3o s\u00e3o extra\u00eddas ao iniciar o servidor.<\/p>\n<p>Chegou a hora de falar um pouco sobre as vantagens e desvantagens da criptografia utilizando a chave principal. A maior vantagem \u00e9 que voc\u00ea precisa apenas de uma chave de criptografia (a chave principal), que ser\u00e1 armazenada separadamente dos seus dados criptografados. Isso torna o lan\u00e7amento do servidor r\u00e1pido e o armazenamento pequeno, facilitando a gest\u00e3o. Al\u00e9m disso, a \u00fanica chave principal \u00e9 f\u00e1cil de regenerar.<\/p>\n<p>No entanto, a criptografia com a chave principal tem uma grande desvantagem: depois que o espa\u00e7o de tabelas \u00e9 criptografado com tablespace_key, ele permanece criptografado com a mesma chave. A rota\u00e7\u00e3o da chave principal aqui n\u00e3o ajuda. Por que isso \u00e9 uma desvantagem? Sabemos que o MySQL possui bugs que podem levar a falhas inesperadas e \u00e0 cria\u00e7\u00e3o de arquivos core. Como o arquivo core cont\u00e9m um dump da mem\u00f3ria do servidor, pode acontecer que no dump haja uma chave de espa\u00e7o de tabelas descriptografada. O que \u00e9 pior, as chaves descriptografadas do espa\u00e7o de tabelas s\u00e3o armazenadas em mem\u00f3ria que pode ser trocada para o disco. Voc\u00ea pode dizer que isso n\u00e3o \u00e9 uma desvantagem, uma vez que s\u00e3o necess\u00e1rios direitos de root para acessar esses arquivos e a parti\u00e7\u00e3o de swap. Sim. Mas o root \u00e9 necess\u00e1rio apenas por um tempo. Assim que algu\u00e9m obtiver acesso \u00e0 chave descriptografada do espa\u00e7o de tabelas, ele \/ ela poder\u00e1 continuar usando-a para descriptografar os dados, mesmo sem direitos de root. Al\u00e9m disso, o disco pode ser roubado e a parti\u00e7\u00e3o swap \/ arquivos core podem ser lidos por meio de ferramentas de terceiros. O objetivo do TDE \u00e9 torn\u00e1-lo ileg\u00edvel, mesmo que o disco seja roubado. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.percona.com\/software\/mysql-database\/percona-server\"><u>Percona Server for MySQL<\/u><\/a><\/noindex> existe a possibilidade de recriptografar o espa\u00e7o de tabelas com novas chaves geradas. Este recurso \u00e9 chamado de threads de criptografia (encryption threads) e, at\u00e9 o momento da reda\u00e7\u00e3o deste artigo, ainda \u00e9 experimental.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/wMyj\/\"><strong>Pi-KVM \u2014 projeto de IP-KVM aberto no Raspberry Pi<\/strong><\/a><\/noindex><\/p>\n<h3>Leia mais:<\/h3>\n<ul>\n<li>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/522092\/\">Criptografia no MySQL: armazenamento de chaves<\/a><\/noindex><\/p>\n<\/li>\n<\/ul>\n<p>Fonte: <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\/pt\/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=\"pt_PT\" \/>\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\/pt\/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\udd47Criptografia no MySQL: uso da Chave Principal | ProHoster","description":"Com a aproxima\u00e7\u00e3o de um novo per\u00edodo de matr\u00edculas para o curso \"Bancos de Dados\", continuamos.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/shifrovanie-v-mysql-ispolzovanie-master-key","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/97667","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=97667"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/97667\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/97668"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=97667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=97667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=97667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}