Sziasztok!
Szeretnek egy USB kulcsot kesziteni. Valami olyant, amirol be lehet olvasni egy meretes jelszot, ami minden olvasas utan valtozik. Ezt mibol erdemes csinalni? Olcso pendrive?
Cikket tudtok hozza ajanlani?
Koszonom
- 9068 megtekintés
Hozzászólások
mihez kell? esetleg egy hardverkulcs?
vagy egy tokenre gondoltal?
- A hozzászóláshoz be kell jelentkezni
Tokenre gondoltam. Arra kellene, hogy egy bizonyos programot csak akkor lehessen elinditani, ha be van dugva a gepbe az USB eszkoz.
- A hozzászóláshoz be kell jelentkezni
Akkor neked hardverkulcs kell, amit nem lehet másolni.
- A hozzászóláshoz be kell jelentkezni
vagy OTP generátor. pl yubico (bár ezt meg kell "nyomni" h generáljon)
éppen nemrég hallottam, h valaki hasonló célra használt USB kütyüt, de nem ugrik be, h mi volt az. Talán DiskOnModule aminek van gyáriszáma?
- A hozzászóláshoz be kell jelentkezni
jelszot, ami minden olvasas utan valtozik
ez inkabb veletlenszam-generatornak tunik... vagy mi a problema/kerdes pontosan?
- A hozzászóláshoz be kell jelentkezni
Olyasmit kellene tudnia, hogy a gep kuld neki egy szamot. Pl 56. Erre az eszkoz visszakuldi az 56. primszam es az eddigi olvasasok szamanak osszeget.
Ennek orul a program es elindul.
- A hozzászóláshoz be kell jelentkezni
1. Egy USB-t támogató MCU-val simán megvalósíthatod, de akár egy normál MCU és egy Prolific vagy FTDI USB<->UART párosítást is alkalmazhatsz.
2. Valamilyen programozható smartcard (például JavaCard) és egy USB-s olvasó
3. Kész megoldást veszel, amihez kapsz egy libet és azt kell használnod
Azonban tudnod kell, hogy aki fel akarja törni a programot az nem a hardverkulcsot másolja le, hanem a programodban iktatja ki az ellenőrzést. Ha könyvtárat használsz, akkor egyszerűen ő valósítja meg az ellenőrzést, ha pedig bele van fordítva akkor legtöbbször egy egyszerű JE->JNE változtatás elég. Ma már olyan trükkök, mint random UPX verzió és header átírás sem segít.
Ha meg akarod keseríteni a dolgát, akkor ne egy eldöntendő kérdésre legyen válasz a hardverkulcstól. Például funkciók belépési pontjának kalkulációját végezze, függvény paramétereket illetve belső változókat/vagy azok változását határozza meg stb.. Így ha lépésről lépésre halad, akkor sem tudja biztosan hogy a másolt program egyszer nem fog majd lefagyni a hardverkulcs nélkül, ha épp egy olyan metódusba fut bele, ami nála nem fordult elő. Így nem képes a programot értékesíteni.
Ha nem talál hardverkulcsot, akkor jó ha a programodnak van egy demó verziója és olyankor az indul (de később mikor fut, akkor bizonyos korlátozásokat alkalmaz). A legnagyobb badarság kiírni a program elején, hogy "Nem találom a hardverkulcsot". Ilyenkor kb fél óra alatt törhető egy program (ha csak döntés van benne).
- A hozzászóláshoz be kell jelentkezni
Microchip PIC, USB-s verziót keress. Írhatsz bele egyszerű programot, pl. usb-sorosport emulációval. Amit kap adatként azt módosítva küldi vissza. Ezt ellenőrzi a programod.
Természetesen ha ASM-ben megkeresik a programodban az elágazást akkor hamar kulcs nélkül is működő lesz a program. Persze ez nem mindennapi művelet, de néha megéri.
- A hozzászóláshoz be kell jelentkezni
+1, ill. ugyanez Atmel/AVR vonalon is jatszhat. Ahhoz van minden nyilt fordito is meg lib is (avr-gcc, libc-avr). Egyszeru"en hasznalhato tipusok: AT90USB{8,16}2, AT90USB{64,128}{6,7}. De ha nem akarsz szivni az USB layerrel, akkor egy FT232RL + ATmega{8,328} is jo. Igaz, akkor csak UART-ot kapsz, nem altalanos USB device-t, de a celnak az is megfelel.
- A hozzászóláshoz be kell jelentkezni
az uart a celnak megfelel, viszont tobb vele a macera (ha van valami mas soros portos kutyu), a szegeny paraszt meg nem tudja beallitani normalisan hogy melyik port. Az USB-re meg gep oldalon libusb-vel vendor/hw id-re tudsz fixen hivatkozni es hasznalni, szinte 0% szopas mellett. Van olyan hw id, aminel az oprendszerek nem telepitenek semmi drivert igy helybol fel fogja ismerni minden mint valid device es a windows sem sikit hogy "jajj, nincs illesztoprogram"
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
Ha kiadhato a forras (szoval az algoritmus, de a hozza tartozo kulcs nem), akkor pl. egy Atmega8+vUSB megoldja minimalis ellenallas, dioda, kvarc, kondi, meg hasonlok alkalmazasaval. (vUSB lib ingyenes, ha nyiltta teszed, egyebkent meg fizetosen licencelheto)
Kicsit tisztessegesebb, ha valami ilyesmit hasznalsz:
http://www.ebay.com/itm/281183091904 (ez HW implementaciot hasznal, egy kicsit dragabb uC-en)
Persze fugg attol is, hogy milyen mennyisegben van ra szukseg. Ha csak 10 db kell, akkor rendelsz egy kesz megoldast. Ha 10k db. akkor meg megerheti a sajat fejlesztes, hogy minel olcsobb legyen.
Egyebkent igen, arra figyelni kell, hogy ne egy helyen ellenorizz, mert akkor semmit nem er, csak a legalis felhasznalot szivatod.
--
Why did the chicken cross the road?
It was trying to get a signal on its iPhone 4.
- A hozzászóláshoz be kell jelentkezni
orias +1
Minimalis programozoi tudassal megoldhato a feladat (a hardware-t meg ossze lehet vadaszni netrol mert semmi nem kell hozza csak usb kommunikacio, jo eselyel az adott UC gyartoi leirasaban is van ra tokeletesen felhasznalhato pelda az illesztesre)
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni
Az USB IC meg a sajat mikrokontroller jol hangzik, viszont marga nagy lesz a cucc, ha magamnak akarom elkesziteni. (Foleg hogy benan forrasztok). Olvastam, hogy bizonyos tipusu pendrive-okban at lehet programozni a mikrokontrollert.
Meg lehet ezt oldani hazilag, keves raforditott munkaval (max 1-2 nap)?
Ha mar lehet kapni 2cm-es pendrive-okat, akkor jo lenne abbol megcsinalni.
- A hozzászóláshoz be kell jelentkezni
Fentebb ajánlották, ugyanaz csak tokkal együtt.
http://www.ebay.com/itm/281343644906
Csak programoznod kell és kész is a cucc.
még 3-4db árából sem csinálod meg 0-ról kezdve.
Így pedig normálisan néz majd ki. Mint a "gyári".
- A hozzászóláshoz be kell jelentkezni
+1, kis tételnél (szerintem 50 darab környékéig) nem éri meg készíteni (főleg ha igényeses szeretné az ember), max akkor ha az embernek megvan hozzá a szaktudása, de a beleölt munkával bőven plusszos lenne. Vegyél ilyet kész cuccot, beprogramozod és örülsz neki:)
// Happy debugging, suckers
#define true (rand() > 10)
- A hozzászóláshoz be kell jelentkezni