Natrag   Forum.hr > Informatička tehnologija > Za napredne korisnike

Za napredne korisnike Hardcore geeks here
Podforumi: Linux, Programiranje, Networking

Odgovor
 
Tematski alati Opcije prikaza
Old 25.04.2012., 21:11   #1
Kako osigurati podatke u oblaku

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".

Zadnje uređivanje grogo bolger : 26.04.2012. at 11:03.
grogo bolger is offline  
Odgovori s citatom
Old 25.04.2012., 21:16   #2
Moj omiljeni arhiver na MS win platformi 7zip, nedavno otkrih da imade zgodnu odliku štono bi se reklo fičr, dakle ima šifriranje arhiva.

Evo zgodna web stranica sa uputama.

http://www.medicalnerds.com/how-to-e...ly-using-7zip/

Ako stavite dobru kvalietnu lozinku, čisto sumnjam da bi netko moga priviriti u vašu arhivu.



p.s. zapišite lozinku kemijskom na papir

p.p.s radi se o AES http://en.wikipedia.org/wiki/Advance...ption_Standard

koristi je američka vlada, to može značiti da je sigurna i da možda ima kakav back door

Zadnje uređivanje grogo bolger : 25.04.2012. at 21:21.
grogo bolger is offline  
Odgovori s citatom
Old 25.04.2012., 21:40   #3
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.
__________________
Only those who attempt the absurd can achieve the impossible
red_shrike is offline  
Odgovori s citatom
Old 25.04.2012., 21:42   #4
daj poveznicu i upute, ovo mora biti korisna tema.
grogo bolger is offline  
Odgovori s citatom
Old 25.04.2012., 21:58   #5
AES na 7z je dobar i za internacionalni terorizam
sa 8 i više znakova(random malih velikih slova i brojeva) treba najmanje 6 godina na mom kompu

big brother ne spava
__________________
i am done contemplating imponderables
i_meni_dosadno is offline  
Odgovori s citatom
Old 26.04.2012., 07:32   #6
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.
GemsBond is offline  
Odgovori s citatom
Old 26.04.2012., 11:09   #7
ajmo dalje:

http://www.gnupg.org/gph/en/manual.html

opensource inačica PGP alata, dakle radi se o asimetričnom šifriranju, dakle imamo javni i privatni ključ.

Ima za win platformu nekakav GUI omotač pa ću staviti kasnije.
grogo bolger is offline  
Odgovori s citatom
Old 26.04.2012., 17:47   #8
Zlocesti cloud xD
Preci mozda na SpiderOak koji se dici zero knowledge policyjem? :-D
__________________
// Evil needs candy too. \\
kronoss is offline  
Odgovori s citatom
Old 26.04.2012., 18:52   #9
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.
andr35 is offline  
Odgovori s citatom
Old 26.04.2012., 19:56   #10
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.
GemsBond is offline  
Odgovori s citatom
Old 26.04.2012., 20:03   #11
Korištenje API-ja za enkripciju, dekripciju nije komplicirano, evo primjer koda u javi koji kriptira AES algoritmom:

Kod:
    public byte[] encrypt(byte[] dataToEncrypt, byte[] key, byte[] initializationVector) throws Exception
    {
    	if (dataToEncrypt == null) return null;
    	
    	byte[] encryptedBytes = null;
    	try
    	{
    	    SecretKey secretKey = new SecretKeySpec(key, _algorithm);
    	    Cipher cipher = Cipher.getInstance(_cipher);	        	        	    
	    cipher.init(Cipher.ENCRYPT_MODE, secretKey, new IvParameterSpec(initializationVector));
	    encryptedBytes = cipher.doFinal(dataToEncrypt);			
    	}
        catch (Exception ex)
        {
            throw ex;
        }	        	            	
        return encryptedBytes;
    }
i .NET-u:
Kod:
        public byte[] Encrypt(byte[] dataToEncrypt, byte[] key, byte[] initializationVector)
        {
            if (dataToEncrypt == null) return null;

            Aes aes = null;

            byte[] encryptedData = null;
            try
            {
                aes = new AesCryptoServiceProvider();
                aes.Mode = CipherMode.CBC;
                aes.Padding = PaddingMode.PKCS7;
                ICryptoTransform encryptor = aes.CreateEncryptor(key, initializationVector);
                MemoryStream memoryStream = null;
                CryptoStream cryptoStream = null;

                memoryStream = new MemoryStream();
                cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write);
                cryptoStream.Write(dataToEncrypt, 0, dataToEncrypt.Length);
                cryptoStream.FlushFinalBlock();
                encryptedData = memoryStream.ToArray();
            }
            catch
            {
                try
                {
                    aes = new AesManaged();
                    aes.Mode = CipherMode.CBC;
                    aes.Padding = PaddingMode.PKCS7;
                    ICryptoTransform encryptor = aes.CreateEncryptor(key, initializationVector);
                    MemoryStream memoryStream = null;
                    CryptoStream cryptoStream = null;

                    memoryStream = new MemoryStream();
                    cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write);
                    cryptoStream.Write(dataToEncrypt, 0, dataToEncrypt.Length);
                    cryptoStream.FlushFinalBlock();
                    encryptedData = memoryStream.ToArray();
                }
                catch (Exception ex)
                {
                    encryptedData = null;
                    throw new Exception(ex.Message);
                }
            }
            return encryptedData;
        }
GemsBond is offline  
Odgovori s citatom
Old 27.04.2012., 18:56   #12
Kako sam gore već natuknuo openPGP je free inačica komercijalnog alata npr. symantec pgp

A ovdje je zgodna priča poveznica na wiki

A evo i njemački gui http://www.gpg4win.org/about.html

Šta švaba napravi mora da valja!
grogo bolger is offline  
Odgovori s citatom
Odgovor


Tematski alati
Opcije prikaza

Kreni na podforum




Sva vremena su GMT +2. Trenutno vrijeme je: 07:43.