Šta je novo?

kriptovanje ili tako nekako

kralj

Čuven
Učlanjen(a)
03.05.2005
Poruke
114
Poena
620
Dali neko ima predlog za neki program kriptovanja, ako sam se dobro izrazio.
Naime imam program koji bih zastitio nekom sifrom, tako da prilikom njegove
instalacije je potreban moj nalog za aktivaciju tj. sifra na osnovu koje se
program moze dalje koristiti. Takodje u slucaju kopije programa da ista sifra
ne moze ponovo aktivirati program bez mog naloga.
Znate ono generisani broj itd.
Hvala
 
ti uvek mozes da ubacis neki staticnu sifru u tvoj program koja bi se trazila pre ulaska u glavni deo programa, ja sam naprimer u c# radio mdi aplikaciju koja pri startu trazi user i pass, ali sam u kodu napisao dve kombinacije i samo na njih se ulazi, to ti je jedan primer, ako sam te dobro shvatio...
... a to sto se tice kopiranja tvoje aplikacije, protiv toga se bori i Bill Gates, i ovako nam cela drzava radi na tri kopije Windowsa, nikog ne mozes da sprecis da
on nekom drugom da instalaciju...
... i da ti mozes svakom ko od tebe kupuje aplikaciju da u kod zapises posebni sifru samo za njega i ako naletis negde na neku kopiju, znas ko je distribuirao....

Srecno
 
Poslednja izmena:
@kralj
Trebao da u svoj program ubacis formiranje tzv "otiska" (fingerprint) masine na strani korisnika i uvedes obavezu da te svaki pojedini korisnik kontaktira kako bi na osnovu tog (nazovimo ga kompjuterskog) koda dobio od tebe odgovarajuci "aktivacioni", koji bi mu dalje omogucio nesmetani rad. Za tako nesto, najbolje je koristiti API funkcije. Recimo: GetVolumeInformation; GetComputerName; GetUserName i sl.
Rezultate tih API-a, izkombinuj i obradjuj kako ti volja ali ideja je da dobijes neki kod (recimo broj, mada moze i bilo sta drugo) koji nikakvom logikom nebi mogao da se provali. Dalje je, nadam se, jasno. Napravis drugi algoritam koji na osnovu tog "kompjuterskog" koda formira odnosno proverava valjanost, "aktivacionog" i stvar je resena.
Scenario: korisnik te pozove, izdiktira ti "kompjuterski" kod, ti mu na osnovu toga das "aktivacioni" koji on unese i time "otkljucava" aplikaciju.
Na ovaj nacin lako mozes da pratis sta se desava sa tvojim programim a kasnije i automatizujes postupak aktivacijom preko interneta (sto se vec, jel, naveliko koristi).
 
Explorer je napisao(la):
Rezultate tih API-a, izkombinuj i obradjuj kako ti volja ali ideja je da dobijes neki kod (recimo broj, mada moze i bilo sta drugo) koji nikakvom logikom nebi mogao da se provali.

Ahahahahahahahahah, :D:D:D slatko se nasmejah stvarno.

Ideja je dobra, koriste je mnogi ali nije neprovaljiva. Zapamtite ovo pravilo -- if it runs it can be cracked.
 
audiofreak je napisao(la):
Ahahahahahahahahah, :D:D:D slatko se nasmejah stvarno.
Bas mi je drago zbog tebe. Narocito zato sto si ponudio bolju ideju.
 
Freak je u pravu za ono "if it runs it can be cracked"
Recimo novi Earth 2160 je došao sa aktivacijom koja je zavisila od onog što si spomenuo - od korisničkog imena, Windowsa, vremenske zone i regiona.
A ja sam ga igrao na kompjuteru, pa vidi ;)
Tako da:
1. Ne podcenjuj mozgove koji slabo izlaze na vazduh :)
2. Savršena zaštita ne postoji (ko što već svi znaju, al nije naodmet spomenuti još jedared)
 
Najlakse je teoretisati

@Voodoo
Tri API funkcije, koje sam pomenuo, nisu jedino sto coveku stoji na raspolaganju. Znas i sam da postoji mnogo drugih kojima je moguce iscitavati sve i svasta u vezi sistema. Sve zavisi od toga koliko je covek mastovit i koliko mu je stalo da se potrudi. Ja nigde nisam tvrdio da je ono sto sam postovao "savrsena zastita" vec da je moguce generisati jedan kod (u zavisnosti od drugog) a da pri tome oni nemaju nikakve ociglede veze, sto ce kralju biti dovoljno.
Prost primer: neka je kompjuterski kod 123456789 a aktivacioni 515 reci mi kako sam ja do toga dosao? Istom logikom sam od 987654321 dobio aktivacioni kod 167. A uz malu promenu mogao sam da, za prvi broj dobijem kod 954 a za drugi 271. Mozda bi ti pomoglo da primenis sistem zastite za Earth 2160. ;) Slobodno pozovi audiofreak-a u pomoc :d.

Drugo, kakve veze ima Earth 2160 sa onim sto ce covek raditi. Iako kralj nigde nije naveo tip softvera koji ima nameru da pravi, verujem da ce ciljne grupe biti nebo i zemlja. Isto ce se verovatno odnositi i na nacin distribucije kao i sam tip aplikacije. Ni po kojoj osnovi te dve stvari nisu za poredjenje. Aktivacija preko interneta, koju sam naveo na kraju, je samo prirodan nastavak ideje do cega nikada ne mora da dodje. Procitaj ponovo scenario koji sam naveo.

Trece, ako mislis da ovo sto sam napisao nije dobro, slobodno predlozi coveku nesto bolje. Po prirodi nisam sujetan i ne prezam od toga da prihvatim tudju ideju ako vidim da je kvalitetnija od moje. A to se odnosi i na audiofreak-a.

EDIT:
Dodao bih nesto. Od momenta postavljanja ovog thread-a, kralj ne samo da nije imao nikakvo pitanje ili komentar na odgovore, vec se ni jednom nije logovao na bench. Pocinjem da se pitam da li je njemu sve ovo, uopste, bitno u zivotu. Ako nije, ni ja ne vidim razloga da se nesto posebno cimam oko toga. A argumentaciju na temu sigurnosti pojedinih resenja za zastitu mozemo nastaviti i na nekom drugom mestu.
 
Poslednja izmena:
Već smo navikli na to, neko baci kosku i gleda kako se ostali članovi ujedaju :d
 
Explorer je napisao(la):
Prost primer: neka je kompjuterski kod 123456789 a aktivacioni 515 reci mi kako sam ja do toga dosao? Istom logikom sam od 987654321 dobio aktivacioni kod 167. A uz malu promenu mogao sam da, za prvi broj dobijem kod 954 a za drugi 271. Mozda bi ti pomoglo da primenis sistem zastite za Earth 2160. ;) Slobodno pozovi audiofreak-a u pomoc :d.
Džaba tebi što imaš fensi algoritam za preračunavanje kodova ako proveru vršiš na samo jednom mestu. Uvek može da se disasembluje program, nađe poruka o pogrešno unetom kodu, vidi odakle se skočilo tu i patchuje program tako da se umesto na grešku skače ne uspešnu registraciju (obično zamenom jnz u jz ili obratno).
 
Voodoo_NBGD je napisao(la):
Već smo navikli na to, neko baci kosku i gleda kako se ostali članovi ujedaju :d
Da li stvarno mislis da mi je to bila namera?

jddipqd je napisao(la):
Džaba tebi što imaš fensi algoritam za preračunavanje kodova ako proveru vršiš na samo jednom mestu. Uvek može da se disasembluje program, nađe poruka o pogrešno unetom kodu, vidi odakle se skočilo tu i patchuje program tako da se umesto na grešku skače ne uspešnu registraciju (obično zamenom jnz u jz ili obratno).
"Algoritam" uopste nije fensi, skrpio sam ga u Excel-u za cirka dva-tri minuta cisto kao argument. Da ponovim, predlog koji sam naveo kralju ne predstavlja moju tvrdnju da sam nasao "savrsenu zastitu" vec nesto za sta verujem da ce coveku biti dovoljno za pocetak.
 
Poslednja izmena:
Explorer je napisao(la):
Bas mi je drago zbog tebe. Narocito zato sto si ponudio bolju ideju.

audiofreak je napisao(la):
Ideja je dobra, koriste je mnogi ali nije neprovaljiva.

Kao sto vidis ja nisam cak ni rekao da je tvoja ideja losa, niti sam rekao da ja imam bolju. Kao sto jddipqd rece, Džaba tebi što imaš fensi algoritam za preračunavanje kodova ako proveru vršiš na samo jednom mestu.

Uostalom, Intel koristi FlexLM za zastitu svojih kompajlera pa se i pored kompleksnosti same zastite (koja je inace provaljena i za koje uredno postoje i generatori licenci) crack same aplikacije svodi na promenu jednog jedinog bajta. Da ne pominjem primere tipa Cubase SX koji je zasticen hardverskim dongle-om i ima provere na bukvalno 1,000 mesta u programu ciji su delovi cak kriptovani pa su ljudi seli i napisali drajver koji emulira hardverski dongle i to radi.

Ali ako vec hoces bolju ideju dacu ti je:

1. Napisi sopstveni jednostavan programski jezik
2. Pisi program u tom jeziku
3. Kompajliraj ga u izvrsni fajl koji sadrzi interpreter za jezik i sam kod koji je samo gomila nerazumljivih bajtova za svakog ko ga posmatra.

To jeste malo teze ali je 99.99% neprovaljivo. Primer je http://www.semware.com/ i njihov TSE Editor.

Oko jedne stvari se slazem, vecina korisnika nece moci da provali ni najobicniju zastitu tako da je jedino pitanje koliko je to nekome bitno i koliko je spreman da ulozi vremena u razvoj solidne zastite. Naravno, i popularnost programa koji se stiti utice na to.
 
A ja se vec ponadao da sam bio jasan i da smo na ovo stavili tacku.

Hajde da prvo ovo pomenem.
Moj reply na tvoj post je bio cist sarkazam. Smejati se necemu sto predstavlja konkretan odgovor na postavljeno pitanje/problem, smatram za vrlo neuljudno. Zbog toga je i moj reply bio takav. Iako je ovo forum i svi smo mi ovde pod nadimcima, pa samim tim i tudje reci nekako imaju manju tezinu i manje pogadjaju, ja bar nikada tako nebih odreagovao.


A sad da predjem na konkretniji deo.
Ocigledno je da nije dobro shvacen razlog ZASTO sam ja predlozio bas to sto sam, kralju, predlozio. A to nije bez znacaja. Da nebih ispao bandoglav, mrgud i svadjalica (jer u zivotu nisam takav), probacu jos jednom, malo opsirnije, da pojasnim razloge.

Tehnika koju sam predlozio ne podrazumeva poznavanje samo odredjenog programskog jezika vec je primenjiva na vecinu koji se danas koriste. Odavno je poznato da nije neprovaljiva. Tu nema niceg novog ali ja to nigde nisam ni tvrdio, zar ne? Ideja u recenici koju si kvotovao je nesto drugo. Uz dovoljno eksperimentisanja moguce je postici da se, i na identicnim konfiguracijama, sa identicnim verzijama OS-a, dobiju razlicite sifre. Za postizanje tog cilja nije potreban prevelik napor ili bogato iskustvo. Licnog sam misljenja da ce to, u njegovom slucaju, biti vise nego dovljno. Pod "njegovim slucajem" podrazumevam pretpostavku da se radi o aplikaciji koja pokrivaju sferu knjigovodstva i/ili trgovine, a velika vecina ljudi sa kojima ce se sretati ne ume valjano ni shortcut da izvuce a kamoli nesto vise. Izvinjavam se ako sam ovim nekog uvredio, ali govorim iz cistog licnog iskustva.

Postoji, naravno, verovatnoca da sam u pretpostavci i pogresio ali kralj nigde nije naveo o kakvoj se aplikaciji radi. Primera radi, ako je to neki tool koji ima nameru da prodaje putem interneta, i to se pokaze kao korisna stvar, moj predlog ce se pokazati kao nedovoljan. Vrlo brzo ce neko iz, lupam, TSRH-a kreirati patch ili jednostavno krekovati program i dalje ga siriti takvog.

Sve to shto ste jddipqd i ti naveli (da ne ponavljam) stoji ali veliko je pitanje da li ce program, koji je naveo da ima, ikada doziveti toliku popularnost da bi uopste nekome, ko to zna (a ne zna bas svako), stalo da se bavi razbijanjem zastite. Ovo je, bar po mom vidjenju stvari, prilicno bitno. U svom predlogu ciljao sam na prakticnost primene u okviru realnih okolnosti a ne na ideal.
Vidim da se bar u ovome slazemo.

Nadam se da je ovo sto sam izneo u dovoljnoj meri pojasnilo stvari i da nece vise biti potrebe da se ponavljam.

Pozdrav
 
Poslednja izmena:
Ali ako vec hoces bolju ideju dacu ti je:

1. Napisi sopstveni jednostavan programski jezik
2. Pisi program u tom jeziku
3. Kompajliraj ga u izvrsni fajl koji sadrzi interpreter za jezik i sam kod koji je samo gomila nerazumljivih bajtova za svakog ko ga posmatra.

Ovo mnogo liči na priču o PS (Type1) fontovima, koji su na kraju "provaljeni" ;)
 
Staticka provera (tj. u okviru jednog racunara, na osnovu jednog fixnog algoritma vezanog za hardver) ne donosi vajde; nesto vise moze da se postigne jedino dinamickim menjanjem enkriptovanih kljuceva koji se tokom rada programa dobijaju sa udaljenog servera (a ako se ne dobijaju, ne radi ni program). Potpis odnosno enkripcija se takodje smenjuju, lupam, svakih sat vremena ili tako nesto i sa svakim kljucem se predaje deo narednog kljuca, itd, itd. Ni to nije 100% sigurno i treba uloziti u izradu tog programa na serveru koji opsluzuje klijente, ali barem je bolje od vezivanja za generisanje nekakvog glupog serijskog broja. S vremena na vreme menjati algoritam i kupcima besplatno davati apdejt na novu verziju, a gasiti distribuciju kljuceva za stare verzije. Kako se net sve vise bazira na broadbandu, mislim da ce se zastite sve vise okretati ka takvim vrstama online provera.
 
Poslednja izmena:
Razmena DSA kljuceva asimetricnim RSA kriptovanjem izmedju servera i klijenta moze da bude jedno resenje...
 
Mislim da je najbolje resenje i verovatno najskuplje koriscenje HASP-a (mislim da se tako zove). To je naime mali uredjaj koji se prikljucuje na USB ili parelelni port i u tvom programu ubacis proveru da li je utaknut, proveris sta je u njemu zapisano itd. Medjutim i za ovo ima leka, emulacija driver-a itd. Znam da je ranije moglo da se po nekoliko nakaci serijski jedan na drugi (mislim na paralelne) itd. Ali ovo je opet najskuplje resenje i svakako podize cenu aplikacije i to kako za tebe tako i za krajnjeg korisnika.
 
Explorer je napisao(la):
Sve to shto ste jddipqd i ti naveli (da ne ponavljam) stoji ali veliko je pitanje da li ce program, koji je naveo da ima, ikada doziveti toliku popularnost da bi uopste nekome, ko to zna (a ne zna bas svako), stalo da se bavi razbijanjem zastite. Ovo je, bar po mom vidjenju stvari, prilicno bitno. U svom predlogu ciljao sam na prakticnost primene u okviru realnih okolnosti a ne na ideal. Vidim da se bar u ovome slazemo.

Dobro, i to je nesto. Da ne ulazim u to zasto mi drzis lekcije iz pristojnosti -- da si bolje pogledao sta sam iz tvog posta citirao i podebljao (i mozda upotrebio logiku?) bilo bi ti jasno zasto sam se smejao. Da se ne mucis, to je ovaj deo recenice:

...koji nikakvom logikom nebi mogao da se provali.

Mozda gresim, ali tvoja recenica ciji je ovo deo, meni zvuci kao tvrdnja. Pri tom, ne samo da je tvrdnja neodrziva (jer sve moze da se provali pre ili kasnije), nego je i besmislena jer da bi se takva zastita smislila neophodna je logika pa bi i prevazilazenje doticne zastite zahtevalo jednaku ako ne i malo vecu dozu logike sto je u suprotnosti sa tvojim stavom da "nikakva logika" tu ne bi pomogla.

Nadam se da sam sad objasnio zasto sam se smejao i da necu morati da se ponavljam? :D
 
audiofreak je napisao(la):
Mozda gresim ...
Da, gresis. Podebljaj samom sebi i sve ostalo sto sam naveo.
 
Explorer je napisao(la):
Da, gresis. Podebljaj samom sebi i sve ostalo sto sam naveo.

Mogu i da podebljavam i da tanjim do mile volje ali ne pomaze -- sustina je da ti je tvrdnja neodrziva, da pozivanje na logiku u tom kontekstu zvuci smesno i time rusi kredibilitet svega ostalog sto si napisao. Uostalom nisam jedini koji se javio da kaze da to sto si napisao ne stoji, prema tome bice ipak da ti gresis.
 
Nazad
Vrh Dno