{"id":98088,"date":"2020-10-24T02:42:34","date_gmt":"2020-10-24T00:42:34","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/shifrovanie-v-mysql-rotacziya-master-key"},"modified":"2020-11-18T00:58:48","modified_gmt":"2020-11-17T22:58:48","slug":"shifrovanie-v-mysql-rotacziya-master-key","status":"publish","type":"post","link":"https:\/\/prohoster.info\/no\/blog\/administrirovanie\/shifrovanie-v-mysql-rotacziya-master-key","title":{"rendered":"Kryptering i MySQL: rotasjon av Master Key","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<\/p>\n<p><strong><em>I forkant av oppstarten av det nye kurset&nbsp;<\/em><\/strong><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/dADq\/\"><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>I den forrige artikkelen i denne serien diskuterte vi, <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/524050\/\"><u>hvordan kryptering med hovedn\u00f8kkelen (Master Key) fungerer.<\/u><\/a><\/noindex>I dag, basert p\u00e5 tidligere ervervet kunnskap, skal vi se p\u00e5 rotasjon av hovedn\u00f8kler.<\/p>\n<p>Rotasjonen av hovedn\u00f8kler inneb\u00e6rer at det genereres en ny hovedn\u00f8kkel, og denne nye n\u00f8kkelen brukes til \u00e5 kryptere n\u00f8klene til tabellomr\u00e5dene p\u00e5 nytt (som lagres i overskriftene til tabellomr\u00e5dene).<\/p>\n<p>La oss huske hvordan overskriften til et kryptert tabellomr\u00e5de ser ut:<\/p>\n<p><img decoding=\"async\" alt=\"Kryptering i MySQL: rotasjon av Master Key\" src=\"\/wp-content\/uploads\/2020\/10\/24057c50b96236c5ee2647aeca4b575f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p>Fra den forrige artikkelen vet vi at serveren ved oppstart leser overskriftene til alle krypterte tabellomr\u00e5der og husker den st\u00f8rste KEY ID. For eksempel, hvis vi har tre tabeller med KEY<em>ID = 3 og en tabell med KEY<\/em>ID = 4, s\u00e5 den maksimale n\u00f8kkelidentifikatoren vil v\u00e6re 4. La oss kalle denne KEY ID \u2014 MAX KEY ID.<\/p>\n<h3>Hvordan rotasjonen av hovedn\u00f8kkelen fungerer<\/h3>\n<p>1. Brukeren utf\u00f8rer ALTER INNODB MASTER KEY.<\/p>\n<p>2. Serveren ber om generering av en ny hovedn\u00f8kkel fra n\u00f8kkelring-lagringen (keyring) med serverens UUID og KEY<em>ID, lik \u00f8kt med \u00e9n MAX<\/em>KEY<em>ID. Dermed f\u00e5r vi identifikatoren til hovedn\u00f8kkelen lik INNODB<\/em>KEY-UUID-(MAX<em>KEY<\/em>ID + 1). Ved vellykket generering av hovedn\u00f8kkelen \u00f8kes MAX KEY ID med \u00e9n (dvs. MAX<em>KEY<\/em>ID = MAX<em>KEY<\/em>ID + 1).<\/p>\n<p>3. Serveren gjennomg\u00e5r alle tabellomr\u00e5der som er kryptert med hovedn\u00f8kkelen, og for hvert tabellomr\u00e5de:<\/p>\n<ul>\n<li>\n<p>krypterer n\u00f8kkelen til tabellomr\u00e5det med den nye hovedn\u00f8kkelen;<\/p>\n<\/li>\n<li>\n<p>oppdaterer n\u00f8kkelidentifikatoren til den nye MAX<em>KEY<\/em>ID;<\/p>\n<\/li>\n<li>\n<p>hvis UUID er forskjellig fra serverens UUID, oppdaterer serverens UUID.<\/p>\n<\/li>\n<\/ul>\n<p>Som vi vet, best\u00e5r identifikatoren for hovedn\u00f8kkelen (Master Key ID) som brukes til \u00e5 dekryptere tabellen, av UUID og KEY ID, lest fra overskriften til tabellomr\u00e5det. Det vi gj\u00f8r n\u00e5 er \u00e5 oppdatere denne informasjonen i overskriften for krypteringen av tabellomr\u00e5det, slik at serveren mottar den riktige hovedn\u00f8kkelen.<\/p>\n<p>Hvis vi har tablespace som er hentet fra forskjellige steder, for eksempel fra ulike sikkerhetskopier, kan de bruke forskjellige master-n\u00f8kkelene. Alle disse master-n\u00f8klene m\u00e5 hentes fra depotet ved oppstart av serveren. Dette kan forsinke oppstarten av serveren, spesielt hvis det brukes et server-database for n\u00f8klene. Med hjelp av master-n\u00f8kkelrotasjon gj\u00f8r vi en ny kryptering av n\u00f8klene til tablespaces med \u00e9n master-n\u00f8kkel som er identisk for alle tablespaces. N\u00e5, ved oppstart, trenger serveren bare \u00e5 hente \u00e9n master-n\u00f8kkel.<\/p>\n<p>Dette er selvsagt bare en hyggelig bieffekt. Hovedm\u00e5let med rotasjon av master-n\u00f8kler er \u00e5 gj\u00f8re serveren v\u00e5r sikrere. Hvis master-n\u00f8kkelen p\u00e5 noen m\u00e5te blir stj\u00e5let fra depotet (for eksempel fra Vault Server), kan vi generere en ny master-n\u00f8kkel og kryptere n\u00f8klene til tablespaces p\u00e5 nytt, noe som gj\u00f8r den stj\u00e5lne n\u00f8kkelen ugyldig. Vi er trygge\u2026 nesten.<\/p>\n<p>I den forrige artikkelen nevnte jeg at en tredjepart etter \u00e5 ha stj\u00e5let romn\u00f8kkelen kan bruke den til \u00e5 dekryptere data. Forutsatt at det er tilgang til disken v\u00e5r. Ved tyveri av hovedn\u00f8kkelen og tilgang til de krypterte dataene, kan den stj\u00e5lne hovedn\u00f8kkelen brukes til \u00e5 dekryptere romn\u00f8kkelen og f\u00e5 dekrypterte data. Som vi ser, hjelper ikke rotering av hovedn\u00f8kkelen i dette tilfellet. Vi krypterer romn\u00f8kkelen p\u00e5 nytt med den nye hovedn\u00f8kkelen, men den faktiske n\u00f8kkelen som brukes til kryptering\/dekryptering av data, forblir den samme. Derfor kan \u00abhacker\u00bb fortsatt bruke den til \u00e5 dekryptere data. Jeg har tidligere antydet at <noindex><a rel=\"nofollow\" href=\"https:\/\/www.percona.com\/software\/mysql-database\/percona-server\"><u>Percona Server for MySQL<\/u><\/a><\/noindex> det kan utf\u00f8re ekte re-kryptering av tablespaces, og ikke bare en enkel re-kryptering av tablespace-n\u00f8kkelen. Denne funksjonen kalles krypteringstr\u00e5der (encryption threads). Men for \u00f8yeblikket er denne funksjonaliteten fortsatt eksperimentell.<\/p>\n<p>Rotasjon av master-n\u00f8kkelen er nyttig n\u00e5r master-n\u00f8kkelen er stj\u00e5let, men angriperen har ikke mulighet til \u00e5 bruke den og dekryptere tablespace-n\u00f8klene.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/dADq\/\"><strong>Registrer deg for en gratis demo-leksjon.<\/strong><\/a><\/noindex><\/p>\n<h4>Les mer:<\/h4>\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<li>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/524050\/\">Kryptering i MySQL: bruk av Hovedn\u00f8kkel<\/a><\/noindex><\/p>\n<\/li>\n<\/ul>\n<p>Kilde: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/524624\/\">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 \u043c\u044b \u043e\u0431\u0441\u0443\u0434\u0438\u043b\u0438, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441 \u0433\u043b\u0430\u0432\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u043e\u043c (Master Key). \u0421\u0435\u0433\u043e\u0434\u043d\u044f, \u043e\u0441\u043d\u043e\u0432\u044b\u0432\u0430\u044f\u0441\u044c \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0440\u0430\u043d\u0435\u0435 \u0437\u043d\u0430\u043d\u0438\u044f\u0445, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 \u0440\u043e\u0442\u0430\u0446\u0438\u044e \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0439. \u0420\u043e\u0442\u0430\u0446\u0438\u044f \u0433\u043b\u0430\u0432\u043d\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0439 \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043d\u043e\u0432\u044b\u0439 \u0433\u043b\u0430\u0432\u043d\u044b\u0439 \u043a\u043b\u044e\u0447 \u0438 \u044d\u0442\u0438\u043c \u043d\u043e\u0432\u044b\u043c [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":98089,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-98088","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-rotacziya-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: \u0440\u043e\u0442\u0430\u0446\u0438\u044f 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-rotacziya-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-24T00:42:34+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-11-17T22:58:48+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: rotasjon 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-rotacziya-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: \u0440\u043e\u0442\u0430\u0446\u0438\u044f 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-rotacziya-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-24T00:42:34+00:00","article:modified_time":"2020-11-17T22:58:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"98088","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:05:50","updated":"2022-10-03 07:13:53","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\/98088","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=98088"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/posts\/98088\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/media\/98089"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/media?parent=98088"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/categories?post=98088"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/no\/wp-json\/wp\/v2\/tags?post=98088"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}