Fa'ailoga i MySQL: Fa'aaogaina o le Master Key

I le fa'atalitali i le amataga o se fa'ailoga fou mo le kosi "Fa'amaumauga" matou te faʻaauau pea ona lolomiina se faasologa o tala e uiga i faʻailoga i MySQL.

Fa'ailoga i MySQL: Fa'aaogaina o le Master Key

I le mataupu muamua i lenei faasologa (Fa'ailoga i MySQL: Keystore) sa matou talanoa e uiga i vaults autu. I totonu o lenei tusiga, o le a tatou vaʻavaʻai pe faʻafefea ona faʻaogaina le ki matua ma talanoaina le lelei ma le le lelei o faʻailoga teutusi. 

O le manatu i tua o le teutusi fa'ailoga e fa'apea o ki e fa'aoga mo fa'ailoga (ki o laulau va'ai) o lo'o fa'ailogaina i se isi ki (le ki matua). E fa'aoga moni lava ki laulau laulau e fa'ailoga ai fa'amaumauga. I le graphically e mafai ona faʻatusalia e pei o lenei:

Fa'ailoga i MySQL: Fa'aaogaina o le Master Key

O le ki matai o lo'o i totonu o le faleteuoloa, ma o ki laulau avanoa o lo'o i totonu o fa'auluuluga o avanoa fa'ailo (i le itulau 0 o le laulau). 

I le ata i luga:

  • O lo'o fa'ailogaina le laulau A ile ki 1 (Ki 1). O le ki 1 o lo'o fa'ailogaina e fa'aaoga ai le ki matua ma o lo'o teuina fa'ailoga i le ulutala o le laulau A.

  • O lo'o fa'ailogaina le laulau B ile Ki 2. O le ki 2 o lo'o fa'ailogaina e fa'aaoga ai le ki matai (masker key) ma o lo'o teuina fa'ailoga i le ulutala o le laulau B.

  • Ma isi.

Pe a manaʻomia e le server e faʻamalo le laulau A, na te toe maua mai le ki matai mai le teuina, faitau ki faʻailoga 1 mai le ulutala o le laulau A, ma faʻamalo le ki 1. O le ki faʻamalo 1 o loʻo teuina i le mafaufau o le server ma faʻaaoga e faʻamalo ai le laulau A .

InnoDB

I totonu o le InnoDB, o le faʻamatalaga moni ma le decryption e faia i le tulaga I / O. O lona uiga, o le itulau o lo'o fa'ailogaina a'o le'i fa'aulu i le tisiki ma fa'ate'a vave pe a uma ona faitau mai le tisiki.

I totonu o le InnoDB, na'o le fa'ailoga e galue i le laulau laulau. Ma ona o le faaletonu, o laulau uma e faia i laulau eseese (faila-i le laulau laulau). I se isi faaupuga, ua faia se laulau avanoa e na o le tasi le laulau e mafai ona aofia ai. E ui lava e mafai ona e faia ni laulau i totonu o le laulau autu (laulau laulau lautele). Ae i soʻo se tulaga, o le laulau o loʻo i ai i taimi uma i nisi laulau avanoa. Ma talu ai o faʻamatalaga o loʻo faʻatinoina i le laulau, e faʻapipiʻi atoa pe leai. O lona uiga, e le mafai ona fa'ailogaina na'o se vaega o laulau i le avanoa autu o le laulau. 

Afai e iai se mafua'aga ua fa'aletonu lau faila-per-table, ona fa'atupuina uma ai lea o laulau i totonu o le laulau va'aiga. IN Percona Server mo MySQL e mafai ona e faʻailogaina le laulau laulau faʻaoga e faʻaaoga ai le innodb variablesysavanoa laulaufa'ailoga po'o le fa'aogaina o filo fa'ailoga, ae o se fa'ata'ita'iga lava lea. MySQL e le maua lenei.

Ae tatou te leʻi agai i luma, e tatau ona tatou vaʻavaʻai i le fausaga o le ID key key. E aofia ai le UUID, KEYID ma prefix "INNODBKey". E pei o lenei: INNODBKey-UUID-KEYID.

UUID o le uuid o le 'au'aunaga fa'atasi ai ma le fa'ailoga laulau fa'ailoga. KIID o se tau fa'atuputeleina pea. Pe a fatuina le ki matua KEY mo le taimi muamuaID o le 1. I le taimi o le ki, pe a faia se ki fou, KEYID = 2 ma isi. O le a tatou talanoa atili e uiga i le kili matai i mataupu o sosoo mai i lenei faasologa.

O lea la ua tatou iloa le foliga o se matai fa'ailoga autu, se'i o tatou va'ai i le fa'ailoga fa'ailoga laulau fa'ailoga. A fa'ailoga se laulau, fa'aopoopo fa'amatalaga fa'ailoga i le ulutala. E pei o lenei:

Fa'ailoga i MySQL: Fa'aaogaina o le Master Key

KEY ID o le KIID mai le master key ID ua uma ona tatou talanoaina. UUID o le uuid o le 'auʻaunaga, lea e faʻaaogaina foʻi i le faʻamatalaga autu autu. TABLESPACE KEY - laulau avanoa ki, lea e aofia ai 256 bits, faʻatupu faʻafuaseʻi e le server. O le amataga o le vector (IV, initialization vector) e iai fo'i le 256 fa'atupu fa'afuase'i (e ui e tatau ona 128 bits). O le IV e faʻaaogaina e amata ai faʻamatalaga AES ma faʻamalo (mai le 256 bits, naʻo le 128 e faʻaaogaina). I le faaiuga o loʻo i ai se siaki siaki CRC32 mo TABLESPACE KEY ma IV.

O le taimi atoa nei sa ou faafaigofieina teisi i le fai atu o le ulutala o loʻo i ai le ki faʻailoga o le laulau. O le mea moni, o le tablespace key ma initialization vector o loʻo teuina ma faʻailoga faʻatasi e faʻaaoga ai le ki matua. Manatua a'o le'i fa'ailogaina le ki o le laulau ma le fa'auluina o le vector, e fuafua le CRC32 mo i latou.

Aisea e mana'omia ai le CRC32?

I se faapuupuuga, ia mautinoa le aoga o le ki matai. A maeʻa ona faʻataʻatia le ki o le laulau ma le faʻauluina o le vector, o le siaki siaki e fuafua ma faʻatusatusa i le CRC32 o loʻo teuina i le ulutala. Afai e fetaui siaki, ona tatou maua lea o le ki matua sa'o ma le ki o le laulau. A leai, o le laulau avanoa e faʻailogaina o loʻo misi (e le mafai lava ona matou faʻaaogaina).

Atonu e te fesili: o le a le taimi e fa'atino ai le fa'amaoniga autu? O le tali o le taimi e amata ai le server. O se 'au'aunaga o lo'o i ai fa'ailoga fa'ailoga / laulau avanoa e faitau le UUID, KEY i le amatagaID mai le ulutala ma fa'atupuina le ID ki matai. Ona maua lea o le ki matai mana'omia mai le ki, fa'ate'aina le ki o le laulau, ma fa'amaonia le siaki. Toe tasi, afai e fetaui le siaki siaki, ona lelei lea o mea uma, a leai, o le laulau avanoa e faʻailogaina o loʻo misi.

Afai e te faitau i le tala muamua i lenei faasologa (Fa'ailoga i MySQL: Keystore), masalo e manatua pe a faʻaaogaina se faleoloa autu o le server, e naʻo le 'auʻaunaga e maua se lisi o faʻamatalaga autu i le amataga, sili atu le saʻo, key id ma le user id, talu ai o lenei paga e faʻamaonia tulaga ese le ki. O le mea o loʻo ou fai atu nei o le 'auʻaunaga, i le amataga, e maua uma ki e manaʻomia e siaki ai e mafai ona decrypted ki tablespace. Aisea la, pe a amataina, i le tulaga o le teuina o le server, naʻo le ki e utainaid ma tagata fa'aogaid, ae le o ki uma? Aua atonu e te le manaomia uma ki. E masani lava ona o le ki matai suiga. A fesuia'i se ki matua, e faia se ki fou i totonu o le vault, ae le tapeina ki tuai. O le mea lea, atonu e tele au ki i totonu o le server keystore e le manaʻomia e le 'auʻaunaga ma o lea e le toe maua mai pe a amata le server.

Ua oʻo i le taimi e talanoa ai e uiga i le lelei ma le le lelei o faʻamatalaga e faʻaaoga ai se ki matua. O le fa'amanuiaga aupito sili o le na'o le tasi le fa'ailoga fa'ailoga (le master key), o le a tu'u ese mai au fa'amatalaga fa'ailoga. O le mea lea e vave ai le amataina o le server ma le teuina o mea laiti, e faigofie ai ona pulea. Ma e faigofie fo'i ona toe fa'afouina le ki matua tasi.

Peita'i, e tasi le fa'aletonu tele o le fa'ailoga mata'i: a fa'aigoaina loa le laulau i le tablespace_key, e fa'amauina lava i le ki lava e tasi. O le fesuia'i o le ki matua e le fesoasoani iinei. Aisea ua avea ai lenei mea ma mea le lelei? Matou te iloa o loʻo i ai i MySQL faʻailoga e mafai ona oʻo atu ai i se faʻalavelave faʻafuaseʻi ma le fatuina o se faila autu. Talu ai ona o le faila autu o loʻo i ai se faʻamaumauga manatua a le server, atonu e tupu o loʻo i ai i le lapisi le ki o le laulau vaʻaia. O le mea e sili atu ona leaga, o ki o le laulau va'ava'ai ua fa'amuta o lo'o teuina i le manatua, lea e mafai ona fesuia'i i le tisiki. E mafai ona e fai atu e le o se mea le lelei talu ai e te manaʻomia aia tatau e faʻaoga ai nei faila ma le vaeluaga swap. Ioe. Ae o le aʻa e manaʻomia mo sina taimi. O le taimi lava e maua ai e se tasi le ki o le laulau va'aia, e mafai ona ia fa'aauau ona fa'aogaina e fa'amama ai fa'amaumauga, tusa lava pe leai ni fa'amanuiaga a'a. E le gata i lea, e mafai ona gaoia le tisiki, ma e mafai ona faitau le swap partition / faila autu e faʻaaoga ai meafaigaluega lona tolu. O le sini a le TDE o le faia lea e le mafai ona faitau e tusa lava pe gaoia le tisiki. IN Percona Server mo MySQL e mafai ona toe fa'ailoga le laulau va'ai ma ki fou fa'atupu. O lenei vaega e taʻua o filo faʻailoga ma o loʻo faʻataʻitaʻi pea i le taimi o lenei tusitusiga.

Aoao atili e uiga i le kosi

Faitau atili:

puna: www.habr.com

Faaopoopo i ai se faamatalaga