Ej zdravo
Nadam se da ste dobro i zdravo i tako to.
Elem kako pratim podosta IT foruma i web sjedišta IT provinijencije doznadoh da google promovira novu uslugu Klikni na poveznice. I ono pitam se šta je novo, postoji dropbox, MS SkyDrive i sijaset slični servisa, ali eto dokoni ljudi se kao mlade na gumnu uskomešaše, da ja ostajem na dropboxu, propast će dropbox, ja odo na googlo i tako to... bezveze.
Iole promoćurnom IT korisniku koji imade zercu soli u glavi ako detaljno iščita uvjete korištenja jasno je da svi pružatelji usluga gledaju sadržaje, možda ne osobno ali nekakav algoritam malo skenira i fino indeksira.
Ajmo napisati nekakve načine kojima bi makar otežali goreposmenutim pružateljima usluga "špijunska dejstva".
__________________
This charming man
Zadnje uređivanje grogo bolger : 26.04.2012. at 11:03.
Ja bi koristio isto neku enkricpiju za podatke, ali naravno, "oblak" mi se ni ne sviđa upravo zato jer ekipa na tome drži i važne stvari koje možda ne bi trebalo. Drugim riječima, na to treba staavljat samo ono što možeš i javno objaviti bez posljedica. Ako baš moraš... neku enkripciju (anubis recimo) i onda je to to.
__________________
I am immortal. No man is my equal. I have the blood of kings going through my veins
Enkripcija podataka u bazi podataka postavlja određena ograničenja na pristup podacima u bazi podataka. Npr. nije moguće indeksirati i pretraživati enkriptirane podatke, a to može biti ozbiljni nedostatak.
Kad bi mene pitali, podatke bi enkriptirao sa AES koji je simetrični algoritam, a to znači i brži. AES ključeve nekamo treba spremiti, idealno bi bilo u bazu podataka jer u nju pristup imaju svi, ali ako ih se spremi u nekriptiranom obliku, onda opet nikakva korist od toga, jer će ih moći koristiti svi. Kao rješenje tog problema koristio bih i RSA koji je asimetrični algoritam za kriptiranje AES ključeva koji bi se onda spremali u bazu podataka. Korisnik ako želi vidjeti podatke, mora imati privatni RSA ključ kako bi dešifrirao AES ključ. To je cijela filozofija. Java i .NET imaju podršku za AES128, AES192, AES256, te za RSA do 4096 bita veličinu ključa, a to bi se prema današnjim standardima moglo zvati sigurnim.
Drugi dio priče o kojoj bi se moglo govoriti je korištenje više različitih AES ključeva u bazi podataka. Primjer, ako se sve podatke u bazi podataka enkriptira samo jednim AES ključem, onda svatko tko zna taj ključ može čitati sve podatke. Ponekad to nije dobro, pa je potrebno definirati AES ključ za svakog korisnika pojedinačno ili ako se radi o nekakvim timovima/grupama, zajednički AES ključ za tim/grupu. Posebna priča je hijerarhijski pristup podacima na više hijerarhijskih razina. Sve to komplicira bazu podataka jer pravo na jedan podatak ima više korisnika s različitim AES ključevima, pa će često zbog toga u pitanje doći i normalizacija podataka, jer više ne mora vrijediti pravilo da je jedan podatak zapisan samo na jednom mjestu.
Sve u svemu jedno jako komplicirano područje koje je danas prilično neistraženo.
Jedina "secure" varianta clouda je, da mozes imati u cloudu dovoljno prava, da se sam zastitis od providera. jedan takav scenarij bi bio:
- iznajimis server (infrastrucutre as a service)
- upotrebis neki open source software za transparentu enkripciju diskova. recimo truecrypt
- u truecrypt drive dodas kljuceve za vpn. recimo openvpn.
- konektas se iz svog racunala sa openvpnom do truecrypt diska na serveru. recimo putem ftp-a ili windows smb (tu ne trebas enkripcije jer imas vec openvpn), sto znaci da mozes imati D: u my computer isto ko imas C:
na ovaj nacin je:
- promet izmedju tvog racunala i clouda enkriptan
- enkriptan je sa kljucem, koji je opet enkriptan sa truecryptom za kojega znas lozinku samo ti
- svi podaci su enkriptirani sa truecryptom za kojega znas lozinku samo ti
a sto se tice spideroak-a: nisam siguran a mislim, da oni nude samo enkripciju do njihovih servera, a sta se dogadja tamo niko nezna.
Moguće je enkripcijom zaštiti podatke na tuđem računalu bez da se pristupa tuđom hardveru i softveru, čak je moguće na tuđem računalu sigurno spremiti ključ za šifriranje i dešifriranje i tom ključu neće moći pristupati vlasnik tog tuđeg računala.
Dovoljne su dvije stvari:
1. simetrični algoritam za enkripciju sadržaja - zbog brzine enkripcije/dekripcije
2. asimetrični algoritam za zaštitu ključa iz točke 1 - privatni ključ moguće spremiti u datoteku i zaštiti je passwordom, koristiti neki postojeći format kao što je x.509 ili izmisliti svoj.
Aplikacije treba napisati tako da sva logika bude na klijentu (nema pohranjenih procedura) i da tuđi kompjutor bude samo spremište podataka. Samo CRUD i ništa više. Bazu podataka (ili nekakvi file na serveru) treba prilagoditi zahtjevima modernih algoritama za enkripciju.