Trenutno dejavna stran: start » sl » Interna dokumentacija » Razširitve DokuWikija (WvdS) » WvdS Vault

WvdS Vault

Vault je edino mesto za skrivnosti upravljavca te družine paketov: shranjene šifrirano, z datumom poteka, rotacijo prek predaje in zapisnikom dostopov. Brez njega dostopni podatki ležijo na toliko mestih, kolikor je paketov. Paket je namenjen skrbnikom, ki morajo skrivnosti vnašati, menjavati in dokazovati njihovo uporabo.

Prvi koraki

Pogosta opravila

Kaj želite Za koga Kje to storite Navodila
vnesti ali spremeniti skrivnost uprava Uprava > Trezor Pet shem
načrtno zamenjati skrivnost uprava Uprava > Trezor Rotacija
zamenjati vir ključa uprava Zamenjava vira ključa
dokazati, kdo je kdaj dostopal uprava Uprava > Trezor Zapisnik dostopov
razumeti drugi dejavnik pred dostopom uprava Drugi dejavnik
vedeti, česa trezor ne opravlja uprava Česa trezor ne opravlja

Namen

Eno mesto za skrivnosti upravljavca te zbirke: shranjene šifrirano, z datumom poteka, rotacijo prek predaje in zapisnikom dostopov. Brez njega dostopni podatki ležijo na toliko mestih, kolikor je vtičnikov, v toliko oblikah, kolikor so si jih izmislili njihovi avtorji — in vsaj ena od njih je čisto besedilo v conf/local.php.

Prijavljena storitev (glej Core): vault.secrets. Vnosi ležijo prek Storage v data/dwdo/.

Ni manjkal šifrirni postopek — manjkalo je mesto. To je naloga tega vtičnika, in iz tega sledi meja v naslednjem razdelku.

Česa trezor izrecno ne opravlja

Meja stoji spredaj, ker je pri trezorju najpomembnejši podatek.

Pri privzetem viru ključa salt se glavni ključ izpelje iz instančne soli wikija. Ta sol leži pod data/meta/ — isti veji kot podatkovna zbirka trezorja pod data/dwdo/.

Izmerjeno, ne domnevano: običajna varnostna kopija mape data/ vsebuje ključ in šifrirano besedilo skupaj. Kdor ima ta arhiv, doseže skrivnosti. Pred tem ta vtičnik ne varuje.

Pred čim varuje, je vse na tej strani: stran, ki je izdala preveč, preširoko nastavljena pravica do datoteke, vtičnik, ki beleži lastno konfiguracijo, podatkovna zbirka, izročena razvijalcu.

Ta razred izpostavljenosti je mogoče povsem zapustiti z izbiro drugega vira ključa — glej Konfiguracija. env in file postavita ključ zunaj data/ in s tem zunaj varnostne kopije wikija.


Pet shem, ena odločitev upravljavca

Vtičnik, ki potrebuje geslo, ne dobi vrednosti, temveč napotilo. Kateri vir uporablja namestitev, s tem odloči upravljavec in ne avtor vsakega posameznega vtičnika.

Napotilo Pomen
vault:{oznaka} Vnos iz tega trezorja
env:{ime} Okoljska spremenljivka
file:{pot} Datoteka pod imenikom, nastavljenim v file_root
enc:… Vrednost, shranjena neposredno šifrirano
plain:… Čisto besedilo, izrecno označeno kot tako

Razreši se iz lastnega vtičnika prek SecretRef; izid razlikuje dva primera, ki ju ni dovoljeno zamešati:

Izid Pomen
null nič ni bilo nastavljeno
SecretRefException nekaj je bilo nastavljeno in se ni dalo unovčiti
To sta različni težavi. »Geslo ni shranjeno« je korak nastavitve, ki še manjka; »napotila ni mogoče unovčiti« je napaka v obstoječi nastavitvi. Sporočilo, ki oboje obravnava enako, pošlje upravljavca v napačno smer.

Konfiguracija

Nastavitev Privzeto Pomen
keysource salt Izvor glavnega ključa: salt, env ali file
keysource_ref prazno Ime spremenljivke za env, pot datoteke za file; pri salt brez učinka
file_root prazno Korenski imenik, v katerem morajo ostati napotila file:. Prazno shemo povsem izklopi
log_page_size 100 Vrstic na stran v zapisniku dostopov
log_keep_days 365 Starost, od katere zapisi dostopov potečejo; 0 jih ohrani trajno
file_root je privzeto prazen in s tem zaprt ob odpovedi. Napotilo je konfiguracija, ki jo dostavi upravljavec; brez korena, ki ga zapre, bi bil file: orodje za branje poljubnih datotek v preobleki skrivnosti.
salt je privzeti, ker ne potrebuje nastavitve — in je najšibkejši od treh. env in file je oba mogoče prekopirati na drug stroj in drug operacijski sistem. Prav ta zahteva izključuje na stroj vezane hrambe (DPAPI, TPM, obesek za ključe): trezor, katerega ključ ne more zapustiti računalnika, je po odpovedi stroja nepovrnljiv — varnostna kopija obstaja in je neberljiva.

Zamenjava vira ključa

Zamenjava je podprta in sama po sebi nenevarna: vsaka vrednost nosi prstni odtis ključa, pod katerim je bila šifrirana, nikoli ključa samega. Obstoječi vnosi se zato še naprej dešifrirajo, novi zapisi pa uporabljajo novi vir.

Vrstni red je zavezujoč:

  1. Spremenite nastavitev.
  2. Na upravnem zaslonu izvedite ponovno šifriranje.
  3. Šele nato odstranite staro ključno gradivo.

Zaslon prek keyUsage() javi, koliko vnosov še leži pod starim prstnim odtisom. To so natanko tisti, ki bi ob prezgodnji odstranitvi postali neberljivi.


Rotacija: dva predala, štirje koraki

Vnos ima dva predala. Nova vrednost se najprej pripravi in pri tem ničesar ne preklopi; šele prevzem jo naredi za veljavno vrednost.

  • stage() — pripraviti novo vrednost, tekoče delovanje še naprej uporablja staro
  • promote() — pripravljeno vrednost narediti za veljavno
Vrstni red se glasi pripraviti → preveriti → prevzeti → preklicati pri ponudniku. Vsak drug vrstni red ima okno, v katerem je odgovor napačen.

Zapisnik dostopov

Za vsako branje, pisanje in prevzem ena vrstica z izvajalcem, vnosom, opravilom in izidom — in nikoli vrednost. To je razlika med trezorjem in šifrirano datoteko.

Storitev vault.secrets izdaja izključno branje (read(), has()) in veže izvajalca. Vtičnik, ki potrebuje geslo, s tem ne more niti rotirati nobenega niti branja pripisati komu drugemu.

Pospravljanje teče prek izvajanja opravil indekserja, torej pri običajnih klicih strani. Na wikiju brez prometa zapisi zato preprosto ostanejo.


Drugi dejavnik pred vsakim dostopom do skrivnega gradiva

Zavarovano prek Identity Plugin Contract v1 (opis pogodbe): most do=wkvault_stepup s trdno vgrajenim seznamom kategorij.

Kategorija Velja za
create Ustvariti vnos
rotate Pripraviti vrednost
delete Izbrisati vnos
rekey Zamenjati vir ključa in vse na novo šifrirati

Preverja se dvakrat — pri branju, ko se zaslon riše, in znova ob pošiljanju — in v obeh primerih dodatno k seznamu dostopov DokuWikija, nikoli namesto njega. Brez wkidentity se paket vede nespremenjeno.

Most nikoli ne sprejme zahteve, ki jo dostavi klicatelj, temveč le ime z lastnega seznama; neznano ime da zavrnitev, nikoli »ni zahteve«.

Od 9. avgusta 2026 tudi »brisanje« nosi rang nevarnosti. Prej je najbolj uničujoče dejanje paketa stalo na rangu gumba, ki ga ne določa noben slogovni list — bilo je s tem neoblikovano in ni nosilo nobenega vidnega znaka, tik ob poudarjenem »prevzemi«. Manjkajoča označba je videti kot odločitev, in to ni bila.

Pogoji

  • PHP 8.2 ali novejši.
  • Core za prijavo storitve in Storage za vnose — oba obvezna, ne po izbiri.
  • Skrbniške pravice za upravni zaslon.

Shema ustvari dve tabeli, „vault.secret“ in „vault.zugriff“, vsako idempotentno. Pika sodi k imenu in ločuje modul, odkar vsi moduli hranijo svoje tabele v skupni podatkovni zbirki; v SQL mora vedno stati v narekovajih, ker jo SQLite sicer bere kot ločilo podatkovne zbirke in tabele ne najde.


Meje

  • Privzeti vir ključa si deli varnostno kopijo s podatki — glej zgoraj.
  • Potekla skrivnost se še naprej izdaja. Potek je poziv, ne zavarovanje: zavrniti izdajo na določen dan bi hkrati ustavilo pošiljanje pošte, podatkovne zbirke in dostop do repozitorija, in to iz upravnega razloga.
  • Priprava ničesar ne preklopi. To stori le prevzem. To je gradbena oblika, ne pomanjkljivost.
  • Trezor pri ponudniku ne more ničesar preklicati. Dokončati rotacijo z razveljavitvijo stare dostopne pravice ostaja naloga upravljavca.
  • Izgubljeno ključno gradivo pomeni izgubljene vrednosti. Poti obnovitve po zasnovi ni.
  • Pospravljanje je odvisno od indekserja wikija.

Podatki o paketu

Vtičnik: wkvault
Imenski prostor: lib/plugins/wkvault/
Avtor: Wolfgang van der Stille Wolfgang.van.der.Stille@gmail.com (The White Knight Labs)
Licenca: GPL 2

sl/wiki/dwe/wkvault/start.txt · Zadnja sprememba: uporabnika 0.0.0.0