Kratak kurs kriptografije - 1. deo

Da, u nastavku cemo objasniti dve najcesce primene asimetricne kriptografije:
1. Bezbedno surfovanje internetom (https)
2. Primenu asimetricne kriptografije sa kriptografskim smart karticama (vasa bankovna kartica, vasa licna karta sa cipom, i sve ostlao sto ima onaj cip) :)

Necemo ulaziti u detalje implementacije https-a, vec cemo samo objasniti sta je digitalni sertifikat, i kako se on koristi u https-u.
Sto se tice druge tacke, takodje necemo detaljno obradjivati kako rade kriptografske smart kartice, vec samo sta rade, i kako nam sve to obezbedjuje da neko drugi ne moze da podigne kesh sa naseg racuna.

Jer, nije mi ciljna da IT inzenjere ucim necemu sto vec, uglavnom ,znaju, vec da ljudi koji zele da malo vise nauce o necemu sto svakodnevno koriste i vidjaju.

Spremni? :)
 
HTTPS

- napomena: definicije i opise koje cu iznositi su daleko od kompletnih definicija i opisa, uprosceni su sto je moguce vise radi lakseg razumevanja -

Da bi vas racunar (konkretno, web browser) mogao da komunicira sa drugim racunarom (nekim tamo serverom, sa kojeg ucitava neki web sajt), situacija je ista ko i u stvarnom svetu: moraju da govore isti jezik. Moraju da koriste isti protokol.
Protokoli (skup pravila) koje dva racunara koriste u medjusobnoj komunikaciji su prilicno komplikovani, i sastoje se od vise slojeva, vise delova, i svaki od njih ima neka svoja pravila. I svaki od tih delova ima svoje prednosti i mane.
I sve se, uvek i oduve, svodilo na pricu kako izbalansirati: kako napraviti protokol koji ce omoguciti da komunikacija bude brza, a da istovermeno bude i pouzdana.
Kada je internet kreiran, u pocetku je to bilo samo za akademske svrhe, pa se nije puno polagalo na bezbednost, i odluceno je da se internet komunikacija obavlja preko prilicno nebezbednog protkola, zvanog HTTP.
Medjutim, ubrzo je internet poceo da dobija sve vecu komercijalnu upotrebu, i samim tim je postao meta kriminalaca. U medjuvremenu, internet se toliko rasirio, da je bilo nemoguce ukinuti HTTP, i zameniti ga sa necim drugim (iako je bilo dosta dobrih predloga kako da se to izvede - ali nije bilo finansijski isplativo).
Zato su pozvali u pomoc njeno velicanstvo kriptografiju, i onda su resili da unaprede postojeci HTTP protokol, i da mu dodaju jos jedno slovo: S (Security). I tako sada imamo HTTPS protokol (vidite gore, da i krstarica koristi https).

Sta je to HTTPS? I po cemu se on razlikuje od obicnog HTTP-a?

Da ne tupim puno, da uprostim definiciju, HTTPS se razlikuje od HTTP-a po jednoj, nama najbitnijoj, stvari: koristi digitalni sertifikat, koji mu omogucuje takozvano "uspostavljanje sigurnog kanala kroz koji protice kompletna komunikacija u enkriptovanom obliku".
Sa druge strane, kada dva racunara koriste HTTP protokol, oni ne koriste taj sigurni kanal, i poruke izmedju dva racunara nisu enkriptovane - i veoma jednostavne za presretanje, menjanje, i tako to.

Jedna mala napomena u kriptografiji: uvek se pretpostavlja da se komunikacioni kanal prisluskuje. Zato komunikacija mora biti enkriptovana.

Primetili ste da sam pomenuo jedan pojam: "digitalni sertifikat". Pretpostavljate li, mozda, sta bi to moglo da bude?
 
tvoj lični ključ pretpostavljam

Mozemo ga tako nazvati, dobra ti je logika. Hajde da objasnimo malo detaljnije celu tu pricu oko sertifikata:

Ovde cemo uvesti jedan novi pojam: Certification Authority: CA (slicno kao ona robna marka) :)
Na srpskom se to zove Sertifikaciono telo - o ono je ovlasceno da moze da izdaje digitane sertifikate.
Asimetricna kriptografija ne bi bila u prakticnom svetu izvodljiva, da nije necega sto se zove treca strana od poverenja.

Zasto? Pa zato sto u kriptografiji, kao sto ste pretpostavili, postoji jedno veliko sarenilo, i u vidu kriptografskih algoritama, i u vidu hash funkcija, i u vidu svega ostalog. Neko mora da sve to standardizuje. Neko mora da garantuje da je vas par kljuceva (privatni i javni) kreiran po dobrom protokolu i sa dobrim algoritmom. Neko mora da obezbedi jos puno bitnih stvari, kako bi cela ta prica mogla da zazivi u realnom svetu.
E, taj neko je CA.
CA mora da ispuni jako puno standarda i pravila (definisanih Zakonom), da bi moglo da bude CA. I necemo sada o tome, neko drugi brine o tome, ono sto mi kao korisnici treba da znamo je sledece:

CA je zaduzen da kreira nas par kljuceva, i da na osnovu toga, kreira nas digitalni sertifikat.
Postoji vise vrsta digitalnih sertifikata: neki se koriste da se "potpisu" web sajtovi, neki se koriste da se "potpisu" obicni programi koji se izvrsavaju na racunaru ili na mobilnom telefonu, a neki se koriste i za nasu licnu autentikaciju.

Da bi se ostvario HTTPS protokol, situacija je sledeca:
1. Ja sam kreirao neki sajt, i zelim da se mom sajtu pristupa preko HTTPS-a. Da bih to ostvario, moram da zatrazim od nekog adekvatnog CA i dobijem (naravno, i da platim za to) svoj digitalni sertifikat.
2. Na web serveru, na kojem se vrti moj web sajt, postavljam taj sertifikat - i to je to! Nista drugo, i nista prostije.

Sada, korisnici koji bi pristupali mom sajtu, pristupaju tako sto web adresa ne pocinje sa http://blablabla.com vec sa https://blablabla.com, a u web browseru vidite katanac levo od https-a.
Web Browser (ne znam koji koristite, ja trenutno kuckam sa Firefox-a), kada pristupa tom sajtu, vrsi proveru kvaliteta digitalnog sertifikata, i to:
1. proverava algoritme
2. proverava ko je izdao sertifikat (ko je CA)
3. proverava validnost sertifikata (svaki sertifikat ima rok trajanja: od odredjenog datuma, do odredjenog datuma).
Ako je sve u redu - web sajt ce se otvoriti. Ako nije, dobicete upozorenje da pristupate web sajtu sa problematicnim sertifikatom.
Jel vam se desilo to nekada, da ste dobili to upozorenje?

P.S.

Pogledajte ovaj goolge-ov izvestaj, i nemojte da se zaprepastite kada vidite koji sve ozbiljni sajtovi ne koriste HTTPS :) Meni, licno, je ovo frapantno!
https://transparencyreport.google.com/https/top-sites
 
Poslednja izmena:
Ako je sve u redu - web sajt ce se otvoriti. Ako nije, dobicete upozorenje da pristupate web sajtu sa problematicnim sertifikatom.
Jel vam se desilo to nekada, da ste dobili to upozorenje?

Da, webmail server na fakultetu izbacuje precrtan https, jer im je istekao sertifikat, i to odavno :lol:
Opasnost lezi tu sto ako te browser na takvom sajtu upozori (sa tim precrtanim https), ti ne znas da li je to zato sto je sertifikat istekao (iako znas da jeste istekao), ili zato sto neko pokusava da ti podvali lazni sertifikat kako bi mogao da dekriptuje sav saobracaj i da te spijunira kako bi radio i da se koristi obicni HTTP (ako je MITM napad u toku). :D
 
Da, webmail server na fakultetu izbacuje precrtan https, jer im je istekao sertifikat, i to odavno :lol:
Opasnost lezi tu sto ako te browser na takvom sajtu upozori (sa tim precrtanim https), ti ne znas da li je to zato sto je sertifikat istekao (iako znas da jeste istekao), ili zato sto neko pokusava da ti podvali lazni sertifikat kako bi mogao da dekriptuje sav saobracaj i da te spijunira kako bi radio i da se koristi obicni HTTP (ako je MITM napad u toku). :D

Bas tako! Upravo to i jeste jedan od dva glavna cilja cele ove price: da ljudi znaju sustinski zasto je to pretnja, kada vide "precrtani katanac" ili kada dobiju takvu vrstu upozorenja.
I to ne samo za web sajtove, vec i kada instaliraju neke aplikacije na racunar-telefon: slicna logika je i pri proveri POREKLA APLIKACIJE: svaka ozbiljna firma, kada napravi program, digitalno ga potpise, i kada pokusate da instalirate, vas operativni sistem ce proveriti digitalni poptis (sertifikat), i ako ne valja, izbacice upozorenje, ili cak potpuno blokirati instalaicju.
 
Drago mi je :) Idemo dalje...nastavak ove price, vodi nas u sledecu primenu kriptografije, a to su smart kartice, ili kako glasi njihovo puno ime:

KRIPTOGRAFSKE SMART KARTICE

Kada se izvrsava neka kriptografska operacija (enkripcija ili dekripcija, ili izvrsenje hash funkcije, ili nesto cetvrto....), zapravo se obradjuju podaci. U toku obrade podataka, ti podaci su u jednom trenutku dostupni u nekoj vrsti "otvorene" forme, i neko ko je veoma vest i ima pristup racunaru na kome se kriptografska operacija izvrsava, moze doci do tih otvorenih podataka (ukrasti vam privatni kljuc, ili sertifikat, ili izmeniti poruku, ili uraditi bilo koju drugu vrstu napada na sigurnost).

Kako bi se to sprecilo, izmisljene su kriptografske smart kartice. Primer kirptografskih smart karica su skoro sve vrste kartice sa cipom (licna karta sa cipom, vasa kreditna ili debitna kartica, i sve u toj formi).
A sta je, zapravo, karakteristika te kriptografske smart kartice?
Pa ona je, zapravo, mini-komjupter: ima svoj procesor, svoj RAM, i svoju malu, stalnu memoriju (kao sto je na velikom kompjuteru hard disk).
Pored toga, ima i neku vrstu operativnog sistema, i ugradjenih (instaliranih) programa za izvrsenje svih bitnih kriptografskih operacija.
Jedino sto kriptografska kartica nema, to je napajanje energijom: ona je "mrtva" dok se ne ubaci u bankomat, ili u citac kartica: tada dobija napajanje, i tada moze poceti sa radom.

Kada odete u banku, i zatrazite da vam izdaju kreditnu ili debitnu karticu, kako zapravo ide procedura (skraceno, i uprosceno, prava procedura je jako slozena i rigorozna)?
1. Banka salje firmi koja izdaje kartice (VIZA, MASTER, MAESTRO, AmericanExpress....) zahtev za izradom odredjene vrste kriptografske smart kartice.
2. Firma prima zahtev, i kreira vas par kljuceva (privatni i javni).
3. Koristeci vas privatni kljuc, kreira se vas digitalni sertifikat, koji ce se koristiti u procesu "prijavljivanja" (autentikacije) na bankomat, i podizanja novca.
4. Vas sertifikat se kriptuje SIMETRICNOM kriptografijom.
5. Firma uzima blanko karticu, i na nju smesta vas sertifikat, i vas javni kljuc.
6. Kljuc koji je koriscen u tacki 4. (kriptovanje vaseg sertifikata simetricnom kriptografijom), je, zapravo, vas PIN. Postoji posebna prica i procedura oko nacina kreiranja i distribucije PIN-a, do vas, ali ono sto vi vidite, jeste da PIN dobijate u onoj posebnoj koverti, na onom posebnom papiru. Ono sto je zanimljivo jeste da je sve to kreirano automatski, sistemom kompjutera i automatizovanih masina (mozemo ih zvati i mini-roboti), i da niko ziv nije video vas PIN od trenutka kada je kreiran i vas sertifikat kriptovan sa njim, do trenutka kada vi otvorite kovertu i procitate ga. Ceo proces je automatizovan, bez ucesca ljudi (osim postara koji donese kovertu).

Pored sertifikata, jos nekih pratecih stvari se smesta na karticu, uglavnom da bi se olaksala i obezbedila jos bolja autentikacija. O tim detaljima necemo, jer su nisu bitni za nas kao krajnje korisnike, ni za razumevanje ove problematike.

Sta je sa licnom kartom sa cipom?
Pa ista prica: MUP Srbije je ovlasceno sertifikaciono telo (CA) i ono je kreiralo vas digitalni sertifikat i smestilo ga na karticu. Pored toga, na karticu su smesteni i vasi podaci o mestu i adresi prebivalista, i jos ponesto.
I tu imamo (kao i na vecini smart kartica) dve vrste memorije: onu koja se moze menjati (kao sto su kada promenite adresu, upise vam se na cip), i oni koji se ne mogu menjati (vas sertifikat, vas javni kljuc, i druge vazne kriptografske stvari).

Inace, ideja koriscenja licnih karti sa cipom, nije uopste u mogucnosti da se pormeni adresa samo promenom na licnoj karti.
Ideja je u tome da svaki gradjanin ima svoj digitalni sertifikat - kako bi mogao da se elektronski autentifikuje i kako bi mogao da razne birokratske zayebancije zavrsi od kuce, sa racunara.
Medjutim, zbog lose drzavne uprave i politike koja je takva kakva je, licne karte se ne primenjuju ni 2% koliko bi mogle da se primene.

A ljudi i dalje misle da je to zig zveri - ali to je vec kategorija za psihopatologiju :D

Je li jasna prica primene kriptografije na smart kartice? :)
 
Ako je sve jasno - ja nemam vise sta da dodam :)
Sad ste vi na redu, da postavljate pitanja....ili kreirajte neki scenario...ili, sta god! :)

Cilj ovog kursa je upravo razumevanje osnova kriptografije, i njene primene u svakodnevnom zivotu.

Cekam pitanja....slobodno, pustite masti na volju...pitajte sta god vas interesuje u vezi ovoga, jer sada kada imate predznanje, lakse cu da vam objasnim i odgovorim :)
 
i meni sve jasno, al' sad treba ovo da apsolviram, pa tek onda da znam sta da pitam :cool:
i hvala tebi, Frederice, na podeljenom znanju sa nama :zag: svaka cast, druze! :klap:

sad ce cetvrtak-petak, malo da se olabavimo, pa da mi djaci uparimo sveskice, pa tek ce onda i tebi biti jasno sta je nama jasno :lol:
 
@Redmond: odlicno!

To je to. S tim da si ti ovde dodao jos jedan dodatan korak koji bi pokrio i tajnost poruke, sto nije bio zadatak, zadatak je bio samo da demonstriramo upotrebu asimetricne kriptografije i hash funkcije da realizujemo digitalni potpis.
Ali odlicno je sto si ubacio jos i zastitu tajnosti - znaci da si shvatio sustinu cele price :)

Ovo sto smo opisali u ovom primeru zove se genralni protokol digitalnog potpisa.
U praksi, u svakodnevnom zivotu i bukvalno svakodnevnoj upotrebi, on se realizuje malo drugacijim mehanizmom, ali ovo je generalni princip i generalna logika koja stoji iza toga.
Je li svima jasno kako je ovim protokolom obezbedjena autenticnost, konzistentnost poruke, i neporecivost potpisa?
Zamislite sada da objasnjavate nekom ko ne zna, pa pokisajte da objasnite sada kako su ova tri principa ispostovana?

P.S.
Bravo, Lunjo, to je to :)

izvini moram da se vratim malo unazad i osvrnem na ovaj moj pokusaj resavanja problema.
rekao si da sam obezbedio i tajnost poruke, zar tajnost nije obezbedjena samo enkriptovanjem Betinim javnim kljucem posto samo ona moze da ga otkljuca svojim privatnim kljucem? zar nije ono moje enkriptovanje same poruke privatnim kljucem bilo suvisno?
 
izvini moram da se vratim malo unazad i osvrnem na ovaj moj pokusaj resavanja problema.
rekao si da sam obezbedio i tajnost poruke, zar tajnost nije obezbedjena samo enkriptovanjem Betinim javnim kljucem posto samo ona moze da ga otkljuca svojim privatnim kljucem? zar nije ono moje enkriptovanje same poruke privatnim kljucem bilo suvisno?

Da, u pravu si, ja nisam bio pazljiv kada sam citao.
Tajnost je vec obezbedjena enkripcijom sa Betinim javnim kljucem, tako da je ovaj korak sasvim suvisan.

Odlicno, svidja mi se kada me ispravljaju :)

I...nije valjda da niko nije cuo za Enigmu? :) Jeste gledali "Imitation Game", sa Benedict Cumberbatch-om? :)
 
Da, u pravu si, ja nisam bio pazljiv kada sam citao.
Tajnost je vec obezbedjena enkripcijom sa Betinim javnim kljucem, tako da je ovaj korak sasvim suvisan.

Odlicno, svidja mi se kada me ispravljaju :)

I...nije valjda da niko nije cuo za Enigmu? :) Jeste gledali "Imitation Game", sa Benedict Cumberbatch-om? :)

da gledao sam mada sa malim prekidima :), Enigma bese ona nemacka masina za enkriptovanje koju nisu mogli da provale pa su angazovali Alana Tjuringa...
 
da gledao sam mada sa malim prekidima :), Enigma bese ona nemacka masina za enkriptovanje koju nisu mogli da provale pa su angazovali Alana Tjuringa...

Da. Sad, oko Enigme postoje dve varijante kako je provaljena: prva varijanta je ona na filmu, a druga varijanta je da nije uopste provaljena, vec da su britanski obavestajci uspeli da se infiltriraju u nemacke redove i da ukradu knjigu kljuceva.
Nacin rada Enigme nije uopste tajna - algoritam je vrlo prost - takozvana supstutuciona sifra.
Ono sto je bilo zayebano u to vreme, jeste, sto je tako konstruisana mogla da svaku rec sifruje na toliko puno nacina da bez pomoci racunara, nije bilo teoretske sanse da se "pogodi".

Hocemo li malo da prodistukujemo o tome sta je supstituciona sifra? I o njenim varijacijama?
 
Hajde da za trenutak zaboravimo bitove, i vratimo se u tekst na svakodnevnom nivou, i da objasnimo metodu supstitucije:

Kao sto joj samo ime kaze, u pitanju je jednostavna zamena slova, sa nekim drugim slovima. Na primer, umesto slova A, u sifratu ce biti slovo M, umesto slova B bice slovo T, i tako dalje.
Sad, ne treba biti veliki strucnjak, pa provaliti ovakvu sifru - pogotovo ako je tekst dugacak, i znamo na kojem je jeziku napisan, onda znamo i verovatnocu (ucestalost) ponavljanja odredjenih slova u odredjenom jeziku - cak i bez neke velike matematike, moze da se prostim posmatranjem i nagadjanjem desifruje tekst koji je ovako sifrovan.

Medjutim, sta bi bilo ako bismo svako drugo slovo sifovali po nekoj drugoj logici? E, to bi vec bilo zanimljivo, i mnogo teze za provaliti :)

To, upravo, radi enigma - komplikuje jednostavnu supstituciju, i pravi je prilicno zamrsenom za bilo kakvo desifrovanje bez pomoci racunara.

Posto me mrzi da kuckam, na ovom sajtu imate prilicno lepo objasnjenje kako radi enigma, pa nakon sto procitate, tu sam za pitanja i diskusiju :)

https://nepotrebnoznanje.wordpress.com/2010/03/23/kako-funkcionise-enigma/
 

Back
Top