Color scheme: Light
You are here: start » sl » Dokumentacija » Integracija podatkov in dostop do podatkov » Gonilnik WKL OData ODBC » Koncepti gonilnika OData ODBC » Varnostni model in meje zaupanja

Varnostni model in meje zaupanja

graph TD
    subgraph P["Delovno mesto: proces aplikacije, pravice uporabnika Windows"]
        A["Aplikacija (Access, DAO, ADO.NET)"] -->|"klic ODBC"| D["Gonilnik Wkl OData"]
        D -->|"bere in shranjuje ključ oziroma geslo"| C["Upravitelj poverilnic Windows (za vsakega uporabnika)"]
        D -->|"sledenje, samo če je vklopljeno"| T["Datoteka sledenja"]
    end
    D -->|"HTTPS: zahteva s prijavo, sejo, identiteto, transakcijo"| S["Storitev OData preveri prijavo in pravice"]
    S -->|"stavek pod prijavo podatkovne zbirke"| B[("Podatkovna zbirka")]

Slika: Gonilnik se izvaja v procesu aplikacije. Med delovnim mestom in storitvijo je omrežna meja, ki jo ščiti TLS; med storitvijo in podatkovno zbirko meja, na kateri storitev odloča, kaj se izvede. Puščice kažejo, kam se pošiljajo prijavni podatki in stavki.

Gonilnik ni varnostni filter. Kaj sme klicatelj brati, spreminjati ali izvajati, odloča izključno storitev; aplikacija, ki gonilnik obide in se na storitev obrne neposredno prek HTTP, ima enake pravice. Gonilnik ščiti prijavne podatke, ki jih hrani, in podatke na poti. Ta stran opisuje, katere ukrepe za to izvede gonilnik, katere mora izvesti storitev, kako preverite vsak ukrep in katera tveganja ostanejo.

Ključne funkcije

  • Nobenih gesel in ključev v datoteki Access: prijava Windows in shranjeni osebni ključ ne potrebujeta vrednosti v nizu povezave.
  • Skrivnosti samo šifrirano ali lokalno: geslo, osebni ključ in seja se pošiljajo samo prek https ali na lokalni računalnik; sicer gonilnik povezavo prekine, preden karkoli pošlje.
  • Skrivnosti samo na naslove povezave: naslednje strani, naslovi iz dokumenta metapodatkov in preusmeritve na drug računalnik ne dobijo prijavnih podatkov, niti prijave Windows.
  • Preverjanje potrdil brez izklopa: potrdilo, ki mu Windows ne zaupa, konča povezavo z 08S01.
  • Seja 2FA samo v delovnem pomnilniku: konča se s procesom.

Osnovni pojmi

Varovane dobrine

Varovana dobrinaKdo jo hraniPosledica izgube
Osebni ključ, geslo prijaveupravitelj poverilnic uporabnika ali niz povezaveTretja oseba se prijavi kot ta oseba, dokler ključ ni zaklenjen ali geslo spremenjeno
Ključ storitve (APIKEY, APIKEYENV)niz povezave ali spremenljivka okoljaTretja oseba dobi pravice ključa; ključ ni vezan na osebo, temveč na program
Seja 2FAdelovni pomnilnik procesaTretja oseba, ki pozna tudi prvi faktor, lahko obide 2FA, dokler seja ne poteče
Poslovni podatki na potipovezava TLSprisluškovanje ali spreminjanje zahtev in odgovorov
Poslovni podatki v sledenjudatoteka, če je vklopljenostavki, vrednosti filtrov in prijavna imena kot navadno besedilo (glejte sledenje)

Odgovornost med gonilnikom in storitvijo

PreverjanjeGonilnikStoritev
Kdo je prijavljenposreduje prijavojo preveri (geslo, ključ, prijava Windows, 2FA)
Katere tabele kdo vidiprikaže, kar navaja $metadatav $metadata navede samo, kar sme klicatelj brati
Ali je sprememba dovoljenajo prevededovoli ali zavrne (403)
Ali se lastni stavek SQL (prepustna pot) sme izvestiga ne preverja in ne razvrščanaslov navede samo klicateljem, ki smejo pošiljati stavke, in odloča za vsak stavek; podatkovni prehod Wkl.Data.Gateway pri tem vsak navedeni objekt preveri glede na pravice klicatelja (preverjeni stavki)
Kako dolgo velja sejajo hrani, dokler se proces izvajadoloči veljavnost in zavrne potečeno
Ali se uporablja TLSgesla, ključe in seje pošilja samo prek https ali lokalnoponuja https z zaupanja vrednim potrdilom

Gonilnik posredovanega stavka namerno ne preverja: ali je dopusten, je odvisno od dovoljenj, s katerimi bi se izvedel v podatkovni zbirki, te pa pozna samo storitev. Preverjanje v gonilniku bi bilo poleg tega neučinkovito, ker lahko vsak, ki doseže storitev, stavek pošlje tudi brez gonilnika.

Prijavni podatki na delovnem mestu

Shranjeni ključ in shranjeno geslo. Če uporabnik v pogovornem oknu izbere “Shrani ključ” oziroma “Shrani geslo”, gonilnik vrednost shrani v upravitelj poverilnic Windows – kot splošno poverilnico z obstojnostjo “lokalni računalnik” (Microsoft: CREDENTIALW, Persist). Iz tega sledi:

  • Vrednost velja samo za ta račun Windows na tem računalniku in se ne seli s profilom, shranjenim na strežniku.
  • Windows jo ščiti s prijavo uporabnika. Drug uporabnik istega računalnika je ne prebere.
  • Vsak program, ki se izvaja z istim računom Windows, jo lahko prebere. Upravitelj poverilnic ne ločuje po programih. Zlonamerna programska oprema v računu uporabnika tako doseže ključ prav tako, kot lahko doseže storitev.

Niz povezave. PWD in APIKEY sta shranjena kot navadno besedilo povsod, kjer je shranjen niz: v datoteki Access, če povezava shrani geslo (dbAttachSavePWD), v programu ali v viru podatkov, ki ga aplikacija zapiše sama. Pogovorno okno za nastavitev gonilnika nikoli ne zapiše gesla v vir podatkov.

Seja 2FA. Gonilnik jo hrani v delovnem pomnilniku procesa, za vsako storitev in prijavo, in je nikamor ne zapiše: ne v vrnjeni niz povezave, ne v sledenje, ne na disk. S koncem procesa je ni več.

Prijavni podatki na poti

PraviloUčinekPreverjanje
Geslo, osebni ključ in seja samo prek https ali na lokalni računalnik – na URL in na PASSTHROUGHPrek http na drug računalnik povezava ne uspe, preden je zahteva poslana: 28000. Če storitev prek http zahteva 2FA, gonilnik ne pošlje ne kode ne seje in javi 28000vzpostavite povezavo z URL=http://<drug-računalnik>/…;AUTH=KEY: napaka, v sledenju ni zahteve
Prijavni podatki samo na shemo, računalnik in vrata naslovov, ki jih navaja povezava (URL, PASSTHROUGH)Naslednja stran, naslov prepustne poti iz $metadata ali naslov za 2FA na drugem izvoru ne dobi prijavnih podatkovsledenje: “Schluessel und Kennwort gehen nicht an …” (Ključ in geslo ne gresta na …)
Preverjanje potrdila v shrambah potrdil WindowsPotrdilo, ki mu ni zaupano, povzroči 08S01 z razlogom (“UntrustedRoot”) in se ne ponoviglejte 08S01 "UntrustedRoot"
Preusmeritvi (3xx) sledi gonilnik sam, ne knjižnica HTTP: samo pri branju in samo na istem izvoru, največ petkratPreusmeritev na drug računalnik, druga vrata ali drugo shemo se prekine z 08S01 in sporočilom, ki navaja cilj; tja se nič ne pošlje. Preusmerjena sprememba se ne ponoviglejte "Storitev preusmerja na …"
Prijava Windows (Negotiate) samo na zahtevo storitve in samo na naslove povezaveGonilnik odgovori na izziv 401 Negotiate ali NTLM samo, če pride s sheme, računalnika in vrat naslova URL ali PASSTHROUGH; drug računalnik prijave Windows ne dobi, njegov izziv pa se konča z 28000sledenje: “Die Windows-Anmeldung geht nicht an …” (Prijava Windows ne gre na …)

Ključ storitve sledi istim pravilom izvora, pošlje pa se tudi prek http na drug računalnik. Kdor uporablja APIKEY ali APIKEYENV, mora https zagotoviti sam.

Potekla seja, ponovitev in transakcija

  • Seja poteče med delom. Storitev naslednjo zahtevo zavrne z 401 in izzivom Wkl-Totp, preden karkoli izvede. Gonilnik vpraša za novo kodo in isto zahtevo enkrat pošlje znova – pri spremembi z istim Idempotency-Key in v isti transakciji. Aplikacija brez pogovornega okna dobi 28000; koda, podana s TOTP=, velja samo za prvi izziv.
  • Povezava se prekine. Gonilnik zahtevo ponovi po 1 in 3 sekundah: bralne zahteve vedno, spremembe z istim Idempotency-Key. Če storitev ta ključ upošteva, drugi zapis ne nastane. Pretočnega prepustnega stavka ne ponovi nikoli; aplikacija dobi 08S01.
  • Transakcija poteče. Če storitev transakcijo po svojem času nedejavnosti razveljavi, SQLEndTran s potrditvijo (Commit) javi 40001; nič iz transakcije ni shranjeno. Glejte Transakcije.

Te tri zaveze veljajo samo, če storitev zahtevo zavrne, preden jo izvede, in upošteva Idempotency-Key (glejte Zahteve za storitev OData). Storitev, ki glavo prezre, lahko po prekinitvi povezave zapis ustvari dvakrat; gonilnik tega ne prepozna.

Preostala tveganja

Meje ukrepov, ki jih morate pri uporabi poznati in sami ublažiti.

Preostalo tveganjeVzrokPogoj, pod katerim nastopiUblažitev
Ni preverjanja preklicanih potrdilGonilnik ne poizveduje po seznamih preklicev in OCSP (privzeta nastavitev knjižnice HTTP, ki je gonilnik ne spreminja)Potrdilo storitve je bilo preklicano, a je še veljavno in zaupanoUporabljajte potrdila s kratko veljavnostjo; ukradenemu potrdilu na delovnih mestih dodatno odvzemite zaupanje
Ni pripenjanja potrdil (pinning)Velja vsako potrdilo, ki mu Windows zaupaOveritelj, ki mu delovno mesto zaupa, izda napačno potrdilo, na primer naprava za pregledovanje TLS v omrežju podjetjaUpravljajte shrambe zaupanja delovnih mest
Shranjeni prijavni podatki so berljivi za vse programe uporabnikalastnost upravitelja poverilnicZlonamerna programska oprema se izvaja v računu uporabnikaKljuče naj vam izdajo s potekom in, kjer je mogoče, z vezavo na omrežje; zahtevajte 2FA
Sledenje vsebuje poslovne podatkenamerno, služi iskanju napakvklopljeno in ne izbrisanoglejte sledenje
Nepodpisan ali zamenjan DLLgonilnik je DLL v procesu aplikacije; ali je različica podpisana, pokažejo lastnosti datotekeNadzor aplikacij (AppLocker, WDAC) zahteva podpis ali nekdo zamenja DLL v namestitveni mapiNamestitveno mapo naj lahko spreminjajo samo skrbniki; namestitveni paket namesti v Program Files, kjer to velja. Pri nastavitvi samo za enega uporabnika je DLL v mapi, ki jo uporabnik lahko spreminja sam

Ukrepi te strani zadevajo gonilnik. Varnost celotnega sistema, ki ga sestavljajo gonilnik, storitev in podatkovna zbirka, je enako odvisna od storitve in podatkovne zbirke.

Sorodne teme

sl/wiki/data-conectivity/odata-odbc/concepts/security-and-trust-boundaries.txt · Last modified: by Wolfgang van der Stille