Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Koje kriptovanje u koju svrhu?

[es] :: MS SQL :: Koje kriptovanje u koju svrhu?

[ Pregleda: 2239 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

M E N E
borislav
Temerin

Član broj: 30434
Poruke: 231
*.nspoint.net.



+1 Profil

icon Koje kriptovanje u koju svrhu?26.01.2008. u 11:36 - pre 197 meseci
Nije da ne znam nista o tome, ali konkretno za SQL server ne znam kako da odradim...

Dakle, treba da zabelezim odredjene podatke u konfiguracionu tabelu. Server cita te podatke, da proveri neka podesavanja. Niko, pa ni admin servera, ne bi smeo da podatke sme da promeni.
Cini se da je to skolski primer asimetricnih kljuceva, tj, privatni i public kljuc. Ja bih koristio privatni kljuc, zapisao podatke, a zatim dozvolio da ih svako ko ima public kljuc moze citati (citanje nije sporno - cak i da te podatke procita neko neovlascen, nista strasno, jer su to konfiguracioni podaci, ali ne bi smeo niko da ih menja, ni u najgorem scenariju!)

Udaljena je lokacija.

Sta konkretno raditi? Kreirati kljuc ovde kod mene? Kreirati ga tamo, na udaljenom serveru?
Kako distribuirati public kljuc na server, a da private ostane kod mene.

Nasao sam na Netu nekih stvari u vezi toga, ali me zanimaju konkretni koraci. Ako je neko imao slican problem, neka me samo uputi da razmisljam i trazim u odgovarajucem pravcu.
Hvala
Uhvatili ste me nespremnog
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+711 Profil

icon Re: Koje kriptovanje u koju svrhu?26.01.2008. u 22:14 - pre 197 meseci
Ne moraš da distribuiraš nikakav ključ, samo dodaj jedno fingerprint polje u koga ćeš upisati kriptovan heš konfiguracionih podataka. Tako svi mogu da čitaju podatke, a ti ćeš moći da vidiš ako ih neko slučajno promeni upoređivanjem sa hešom iz tabele.
 
Odgovor na temu

M E N E
borislav
Temerin

Član broj: 30434
Poruke: 231
*.nspoint.net.



+1 Profil

icon Re: Koje kriptovanje u koju svrhu?28.01.2008. u 08:15 - pre 197 meseci
Uh, mislim da mi tako nesto ne odgovara.
Naime, ako ja sve ostavim da radi 500 km od mene, hocu da radi sve lepo, ali da ne mogu da se menjaju podaci. Napravim sproc za citanje konf podataka, u kojem koristim public key, a onemugucim pisanje, tako sto ne distribuiram private kljuc (moj). Tako kaze teorija, ali nisam sisguran kako u praksi to da odradim.
Uhvatili ste me nespremnog
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Koje kriptovanje u koju svrhu?29.01.2008. u 17:14 - pre 197 meseci
[Quote]Niko, pa ni admin servera, ne bi smeo da podatke sme da promeni.[/quote]
A kako mislis ovo da postignes?

Negde sam procitao nesto ovako:
Napravis trigger na tabeli koju stitis, koji ce bilo kakvu promenu (UPDATE, INSERT) da odbaci (Rollback) Nesto kao

CRAETE TRIGGER FOR UPDATE, DELETE, INSERT ON MyTable
AS
Rollback

To dakle ne dozvoljava ama bas nikakve promene. Kako da se prepozna nekakav 'kljuc', ili sifra uz koju bi se promena dozvolila.
Promenis malo trigger. Trazis da trigger procita nesto iz neke temp tabele. Na primer:

CREATE TABLE ##KljucnaTabela
(Kljuc varchar(15) NOT NULL
, SamoJednaRekord int NOT NULL DEFAULT=1 CHECK (SamoJednaRekord = 1)
)

INSERT INTO ##KljucnaTabela (Kljuc) VALUES ('tvoj tajni privatni kljuc koji niko ne zna pa ni DBA')


Modifikovani trigger bi bio ovako nesto (pseudo kod):

CRAETE TRIGGER FOR UPDATE, DELETE, INSERT ON MyTable
AS
DECLARE @PrivatniKljuc varchar(50)
@PrivatniKljuc = 'tvoj tajni privatni kljuc koji niko ne zna pa ni DBA'

IF @PrivatniKljuc = (SELECT Kljuc FROM ##KljucnaTabela) THEN
BEGIN
REturn -- izadji iz triggera, promene su OK
END
ELSE
BEGIN
Rollback -- ponisti promene i izadji i trigera
Return
END

Verovatno treba da proveris postojanje tabele ##KljucnaTabela, pre nego odradis IF.
Kad istestiras trigger, onda ga kriptujes kroz SQL, tako da ni DBA ne moze da ga vidi, niti iko drugi, ukljucujuci i tebe.

Tako samo ti znas da ce triger da prihvati promene ako prethodno kreiras globalnu temp tabelu i u nju uneses privatni kljuc.
Kad hoces da menjas podatke u tabeli, jednostavno kreiras temp tabelu i unseses kljuc. Onda najnormalnije uradis UPDATE/DELETE/INSERT, sta god hoces sa tvojom tabelom. Sve dok postoji globalna tabela, trigger ce dozvoliti promene. Na kraju obrisi tabelu. ne znam da li triger moze sam da obrise globalnu temp tabelu. Ako moze, super, pre Return DROP ##KljucnaTabela i sve je OK.

Naravno da DBA uvek moze da DROP trigger ili celu tabelu i da kreira novu, DBA moze svasta, ako hoce. Zato biras DBA kome mozes da verujes. Inace ceo posao nema smisla.




 
Odgovor na temu

M E N E
borislav
Temerin

Član broj: 30434
Poruke: 231
*.nspoint.net.



+1 Profil

icon Re: Koje kriptovanje u koju svrhu?30.01.2008. u 07:07 - pre 197 meseci
OK, ovo je interesantno, gotovo zabavno, resenje, hvala na njemu

ali, (ne mogu da odolim, a da se ne vratim na moju pricu :-) ), zar nije moguce da u jedno varbinary polje upisem kriptovanu vrednost podatka kojeg cuvam, da se taj podatak cita sa decryptbyasskey (ili kako se vec zove) pa jos da je taj key napravljen nekim glomaznim passwordom, a da se menja (taj podatak) sa encryptbyasskey + password + private key.
Ako nesto od ovoga ne distribuiram na taj server (private key - to ne znam kako se radi, ili password), da li on moze to da MENJA? Ne bi trebalo da moze, zar ne?

Uhvatili ste me nespremnog
 
Odgovor na temu

Zidar
Canada

Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Koje kriptovanje u koju svrhu?30.01.2008. u 15:13 - pre 197 meseci
Administracija baze (replikacije i distribucije) nije moja specijalnost Sve sto znam o tome je da DBA zaista sve moze, ako hoce.

 
Odgovor na temu

[es] :: MS SQL :: Koje kriptovanje u koju svrhu?

[ Pregleda: 2239 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.