Barvna shema: Svetla
Trenutno dejavna stran: start » sl » Dokumentacija » Integracija podatkov in dostop do podatkov » WKL Database Gateway » Obratovanje » Zamenjava glavnega ključa

Zamenjava glavnega ključa

Glavni ključ šifrira nize povezave in podatke za izračun kod 2FA (dvostopenjsko preverjanje identitete) v skrbniški shrambi. Zamenjajte ga, ko odide oseba, ki ga je poznala, ali če obstaja možnost, da je prišel v napačne roke.

Omejitev: zamenjava ščiti le prihodnje kopije. S kopijo datoteke ali varnostne kopije, ki je skupaj s starim ključem že prišla v napačne roke, je še vedno mogoče odpreti nize povezave in podatke za izračun kod 2FA. V tem primeru dodatno spremenite gesla prijav v nizih povezave in osebam znova nastavite 2FA (reset-totp).

Pregled rešitve

Zamenjava poteka brez izgube podatkov, z dvema kratkima ponovnima zagonoma prehoda: stari ključ ostane nekaj časa vpisan kot „nadomeščen“, tako da je vse vrednosti še naprej mogoče odpreti, ukaz reseal-store pa jih na novo šifrira z novim ključem. Vsak ponovni zagon prekine tekoče zahteve in odprte transakcije, zato zamenjavo opravite takrat, ko je obremenitev majhna.

Izvedba

Koraki veljajo za namestitev z namestitvenim paketom: program pod %ProgramFiles%\Wkl\Data Gateway, podatkovna mapa %ProgramData%\Wkl.Data.Gateway, dosedanji ključ v geheim\hauptschluessel.key z identifikatorjem 1 (privzeta vrednost MasterKeyId). Izvedite jih v PowerShellu kot skrbnik.

  1. Novi ključ (32 naključnih bajtov) zapišite neposredno v datoteko v mapi geheim. Tako se ne pojavi niti na zaslonu niti v zgodovini konzole; datoteka podeduje omejena dovoljenja mape (skrbniki, sistem, račun storitve samo za branje):

    $secretFolder = Join-Path $env:ProgramData 'Wkl.Data.Gateway\geheim'
    [IO.File]::WriteAllText((Join-Path $secretFolder 'hauptschluessel-2.key'),
        [Convert]::ToBase64String([Security.Cryptography.RandomNumberGenerator]::GetBytes(32)))
  2. Zamenjavo vpišite v appsettings.Local.json v programski mapi (datoteko ustvarite, če ne obstaja). Ne v appsettings.Production.json: ta datoteka pripada namestitvenemu programu in se pri „Ändern“ (spremeni) zapiše na novo; nadomeščeni ključ bi se tam izgubil. Ključi so navedeni kot sklic (file: ali env:), nikoli kot nešifrirano besedilo:

    {
      "Gateway": {
        "Store": {
          "MasterKey": "file:C:\\ProgramData\\Wkl.Data.Gateway\\geheim\\hauptschluessel-2.key",
          "MasterKeyId": "2",
          "RetiredKeys": [
            { "Id": "1", "Key": "file:C:\\ProgramData\\Wkl.Data.Gateway\\geheim\\hauptschluessel.key" }
          ]
        }
      }
    }
  3. Prehod znova zaženite (Restart-Service Wkl.Data.Gateway). Vse vrednosti je še naprej mogoče odpreti; nove in spremenjene prehod šifrira z novim ključem. Če se ne zažene, je razlog naveden v dnevniku dogodkov (navadno tipkarska napaka v poti).
  4. V programski mapi izvedite:

    Set-Location (Join-Path $env:ProgramFiles 'Wkl\Data Gateway')
    .\dbgwsvc.exe reseal-store

    Izhodna koda 0 pomeni, da so vse vrednosti na novo šifrirane. Ukaz lahko izvedete, medtem ko prehod teče; isto konfiguracijo kot prehod prebere iz delovne mape.

  5. Odstranite vnos RetiredKeys in prehod še enkrat znova zaženite. Datoteke hauptschluessel.key ne brišite, dokler obstajajo varnostne kopije, ki so bile z njo zapisane (glejte napotke), temveč jo hranite skupaj s temi varnostnimi kopijami zunaj strežnika.
  6. Ustvarite novo varnostno kopijo in novi ključ varnostno kopirajte zunaj strežnika, glejte Varnostno kopiranje, obnovitev in selitev skrbniške shrambe.

Rezultat: shramba je odvisna samo še od novega ključa. Opozorilo ob zagonu, ki šteje vrednosti, šifrirane z drugimi ključi, ne pojavi se več. Odjemalci pred ponovnim šifriranjem, med njim in po njem berejo iste podatke.

Napotki

  • Starejše varnostne kopije je mogoče odpreti le s starim ključem. Hranite ga tako dolgo kot te varnostne kopije.
  • Ključ ste odstranili prezgodaj? Če manjka ključ, ki ga še potrebuje kakšna vrednost, se prehod ne zažene in navede vsak prizadeti vir podatkov. Stari ključ znova vpišite pod RetiredKeys.
  • Izgubljenega ključa ni mogoče nadomestiti. Vrednosti, ki jih je šifriral, je treba vnesti znova: nize povezave v Datenquellen (viri podatkov), 2FA pa s ponovno nastavitvijo.
  • Vrstni red pri posodobitvi: najprej posodobite prehod, nato zamenjajte ključ – ne obojega v enem koraku.

Sorodne teme

sl/wiki/data-conectivity/database-gateway/operations/change-master-key.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille