Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
UNIVERZA V LJUBLJANI
FAKULTETA ZA ELEKTROTEHNIKO
JAKA ČADEŽ
MIKROKRMILNIŠKI STREŽNIK OPRAVIL
UNIVERZITETNO DIPLOMSKO DELO
Mentor: doc. dr. Boštjan Murovec
Ljubljana, 2005
Zahvala Zahvaljujem se mentorju doc. dr. Boštjanu Murovcu, univ. dipl. inž. el., ki mi je dajal smernice pri izdelavi diplomskega dela. Zahvaljujem se mag. Urošu Maliju za tehnično pomoč pri izdelavi diplomskega dela. Zahvaljujem se tudi staršem, ki sta me med študijem podpirala.
Jaka Čadež
- I -
KAZALO
1. Uvod....................................................................... 3
2. Izbira gradnikov sistema ...................................... 5
2.1. Bluetooth serijski modul .......................................................................................... 5 2.1.1. Bluetooth splošno ............................................................................................. 6
2.1.1.1 Zgodovinski razvoj bluetooth standarda ...................................................... 6 2.1.1.2 Splošne karakteristike tehnologije................................................................ 8 2.1.1.3 Bluetooth naprave......................................................................................... 9 2.1.1.4 Radijske specifikacije................................................................................. 11 2.1.1.5 Varnost ....................................................................................................... 12
2.1.2. Blu2i modul..................................................................................................... 15 2.1.2.1 Nastavitve Blu2i modula............................................................................. 16
2.2. Mikrokrmilnik ........................................................................................................ 19 2.3. Delovni pomnilnik (SRAM)................................................................................... 20 2.4. LCD prikazovalnik ................................................................................................. 22 2.5. Dlančnik ................................................................................................................. 22
2.5.1. Programiranje dlančnika................................................................................. 23
3. Varnost ................................................................ 25
3.1. Razvoj tajnopisja in njegov pomen ........................................................................ 26 3.1.1. Terminologija ................................................................................................. 26
3.2. Implementirana varnost v projektu......................................................................... 29
4. Mikrokrmilniški strežnik opravil ........................ 31
4.1. Prijava v sistem ...................................................................................................... 32 4.2. Kontrola opravil ..................................................................................................... 34 4.3. Profili uporabnikov................................................................................................. 36
4.3.1. Skupina brez administratorskih pravic ........................................................... 36 4.3.2. Skupina z administratorskimi pravicami oziroma administratorji sistema .... 37
4.3.2.1 Dodajanje novih uporabnikov .................................................................... 37 4.3.2.2 Pregled uporabnikov shranjenih v bazi podatkov ...................................... 39 4.3.2.3 Odstranjevanje uporabnikov iz baze podatkov .......................................... 40 4.3.2.4 Spreminjanje uporabnikov v bazi podatkov............................................... 40 4.3.2.5 Nastavljanje sistemskega časa.................................................................... 41 4.3.2.6 Spreminjanje opravil .................................................................................. 43
5. Zaključek ............................................................. 46
6. Dodatek A ............................................................ 49
7. Literatura ............................................................. 65
- III -
Seznam Slik
Slika 1.1: Bluetooth prenos podatkov v delu sistema Ultra Energy......................................... 4 Slika 2.1: Bluetooth modul blu2i – Ezurio............................................................................... 5 Slika 2.2: Bluetooth logotip, sestavljen iz črk B in H .............................................................. 7 Slika 2.3: Časovni potek razvoja Bluetootha. .......................................................................... 7 Slika 2.4: Arhitektura Bluetooth naprave................................................................................. 9 Slika 2.5: Protokolni sklad. .................................................................................................... 10 Slika2.6: Hitrost prenosa glede na oddaljenost. ..................................................................... 16 Slika 2.7 : Blokovni prikaz priklopa modula na PC............................................................... 17 Slika 2.8: TDK terminal za programiranje modula. ............................................................... 18 Slika 2.9: Mikrokrmilnik Atmel ATmega 32. ........................................................................ 19 Slika 2.10: M48T08 Timekeeper SRAM. Slika 2.11: Bločni diagram M48T08. ............. 20 Slika 2.12: FujitsuSiemens Pocket Loox 720......................................................................... 22 Slika 2.13: eMbedded Visual C++. ........................................................................................ 24 Slika 2.14: Simulator dlančnika. ............................................................................................ 24 Slika 3.1: Šifriranje in dešifriranje......................................................................................... 27 Slika 3.2: Šifriranje in dešifriranje s ključem......................................................................... 28 Slika 4.1: Vklop Bluetooth povezave na dlančniku. ............................................................. 31 Slika 4.2: Okno za prijavo v sistem........................................................................................ 32 Slika 4.3: Prijava v sistem. ..................................................................................................... 33 Slika 4.4:Okno za kontrolo opravil. ....................................................................................... 34 Slika 4.5: Postopek spremembe opravil. ................................................................................ 35 Slika 4.6: Prepoved uporabe administratorskih orodji. .......................................................... 36 Slika 4.7: Posodobitev polja z opravili................................................................................... 37 Slika 4.8: Omejitev dostopa glede na uro............................................................................... 38 Slika 4.9: Pregled uporabnikov shranjenih v bazi podatkov. ................................................. 39 Slika 4.10: Odstranjevanje uporabnikov iz baze podatkov. ................................................... 40 Slika 4.11: Spreminjanje uporabnikov v bazi podatkov......................................................... 41 Slika 4.12: Nastavljanje ure in datuma sistemskega časa. ..................................................... 42 Slika 4.13: Nastavljanje ure.................................................................................................... 42 Slika 4.14: Spustni seznam za nastavljanje datuma. .............................................................. 43 Slika 4.15: Seznam opravil iz MSO-ja. .................................................................................. 44 Slika 4.16: Sprememba, odstranitev in dodajanje opravila. ................................................... 45 Slika 4.17: Izguba pravice do opravila pri spremembi opravila............................................. 45
Povzetek
Diplomsko delo opisuje izdelavo in delovanje mikrokrmilniškega strežnika opravil, ki
omogoča krmiljenje naprav prek programa na dlančniku. Za povezavo med dlančnikom in
mikrokrmilniškim strežnikom opravil je uporabljena Bluetooth tehnologija. Predstavljen je
razvoj Bluetooth tehnologije, pregled njenega delovanja in implementiranih varnostnih
ukrepov pri prenosu podatkov.
Delo je razdeljeno na tri dele. V prvem delu so predstavljeni gradniki sistema, ki jih delimo
v dve skupini. V prvi skupini imamo Atmelov mikrokrmilnik, Timkeeper SRAM in Blu2i
Bluetooth modul. To so gradniki mikroprocesorskega strežnika opravil. V drugi skupini
imamo dlančnik, ki skupaj s programom, napisanim v eMbedded visual C++, tvori
uporabniški vmesnik za upravljanje mikrokrmilniškega strežnika opravil.
Varnost pri prenosu podatkov je predstavljena v drugem delu. Razložen je pomen varnosti
pri prenosu podatkov, osnovna terminologija in osnovni algoritmi zaščite. Predstavljeni so
tudi ukrepi za dosego varnosti sistema.
V zadnjem delu je opisano delovanje in upravljanje mikrokrmilniškega strežnika opravil.
Razložene so uporabniške skupine, postopek kreiranje novega uporabnika, dodeljevanje
pravic uporabnikom ter brisanje in spreminjanje uporabnikov. Razloženo je tudi delovanje
mikrokrmilniškega strežnika opravil pri posameznem postopku. Prikazan je postopek
dodajanja, spreminjanja in brisanja opravil.
Ključne besede: Bluetooth, mikrokrmilnik, kontrola dostopa, dlančnik, strežnik opravil
Abstract The thesis describes an embedded server used to control devices. The server holds a
complete user and task database controlled by an administrator who has the power to create
new users, grants them permission to control devices and takes care of the system clock. The
administrator can also add tasks, remove them from the database or change them therein,
depending on the devices that are connected to the server. A handheld PC is used as a user
interface. The program for a handheld PC is written in eMbedded visual C++. Bluetooth
technology is used as a linking technology between the embedded server and the handheld
computer. Bluetooth technology gives the server an operating range of 100 m.
Owing to the complete control over users and their right to control devices, the server can be
used to control devices that need a higher level of security. Therefore it can be used for the
entry control, control of alarm and other devices the control of which needs to be supervised.
With an embedded server it is possible to control up to eight devices.
The thesis is divided into three parts. The first part describes the components incorporated in
an embedded server, their basic specifications and functions.
The second part is about security at data exchange, its importance in the past and its
significant role in the network today. Further on, there is a description of measures taken to
assure the embedded server security.
The third part covers the usage of an embedded server for controlling in detail. It describes
how a new user is created, a task assigned to him, a task added, clock changed, and various
other functions. This part provides complete steps of each process.
Devices are controlled by means of an embedded server and provided that security is
implemented an unauthorized usage is prevented. The controlled devices can be simple
lights or more complex devices such as electric doors, vaults and the like. The embedded
server can be used on its own or incorporated into another application.
In addition, a log should be added to track all the activities on the server. It would also be
possible to incorporate voice access control. There are endless possibilities of further
development in view of individual customers’ requirements.
Key words: Bluetooth, microcontroller, handheld computer, embedded server to control devices
1.Uvod
- 3 -
1. Uvod
Osebni računalniki, dlančniki, mobilni telefoni in druge naprave so še pred dobrim
desetletjem uvrščali v razred tako imenovane »zabavne elektronike«. Danes si večina
podjetji ne prestavlja poslovanja brez teh naprav. Najsi bo to v proizvodnji, logistiki, trženju
ali vodenju podjetja brez elektronskih naprav preprosto več ne gre. Z naraščanjem
povpraševanja po »tehnoloških novotarijah« njihova ponudba raste iz dneva v dan. Tako ni
nič nenavadnega, če plačujemo z mobilnim telefonom, fotografiramo, brskamo po
svetovnem spletu ali na njem igramo priljubljeno igrico.
Z naraščanjem popularnosti se je izboljševala medsebojna kompatibilnost naštetih naprav.
Tako lahko slike posnete z digitalnim fotoaparatom shranimo na osebni računalnik, jih
uredimo, tiskamo ali shranimo, pošljemo po elektronski pošti itd. Slike lahko s tiskalnikom
tiskamo tudi neposredno iz fotoaparata.
Ker za prenos podatkov med napravami potrebujemo kabel in so konektorji pri različnih
proizvajalcih različni, so se leta 1994 pri Ericsson Mobile Communications odločili za
razvoj brezžičnega tehnologije. Tako je nastala Bluetooth tehnologija, ki so jo razvijalci
ponudili ostalim proizvajalcem brezplačno.
Čeprav je tehnologija na voljo že nekaj let, se je šele zdaj dovolj pocenila za množično
uporabo[4]. Tako se je cena Bluetooth radijskega integriranega vezja spustila z 20$ na 5$.
Zato se na trgu se pojavlja vse več naprav, ki so namenjene specifičnemu trgu in ne trgu
široke potrošnje.
Eden takih sistemov je Ultra Energy [5] (slika 1.1), Slovenskega podjetja Ultra, ki uporablja
za povezavo med senzorji nivoja tekočin ter bazno centralo Bluetooth tehnologijo.
1.Uvod
- 4 -
Slika 1.1: Bluetooth prenos podatkov v delu sistema Ultra Energy.
V primeru sistema Ultra Energy Bluetooth povezava nadomesti kable, ki bi jih bilo potrebno
položiti od bencinskega servisa do rezervoarjev.
Kot je za bencinske servise pomembna količina naftnih derivatov, shranjenih v rezervoarjih,
je za druga podjetja pomembna kontrola dostopa za zaposlene in goste. Zato smo si v
diplomski nalogi zastavili za cilj izgradnjo sistema, ki bo omogočal varno krmiljenje do
osmih naprav. Krmilimo lahko luči, elektronske ključavnice, električna vrata in druge
naprave, ki zahtevajo kontroliran dostop. Krmiljenje omogoča vklop in izklop naprav. S tem
se izognemo potrebi po magnetni kartici, saj lahko opravimo identifikacijo uporabnika kar
preko mobilnega telefona ali v našem primeru dlančnika.
V nadaljevanju bomo predstavili gradnike sistema, kjer so opisani posamezni gradniki
sistema in njihova naloga v sistemu. Sledi mu poglavje o varnosti. V njem so predstavljeni
načini zagotavljanja varnosti pri prenosu podatkov in implementirana varnost v standardu
Bluetooth. Na koncu je predstavljen še Mikrokrmilniški Strežnik Opravil (MSO).
Predstavljeno je njegovo delovanje in uporaba.
2. Izbira gradnikov sistema
- 5 -
2. Izbira gradnikov sistema
To poglavje predstavi posamezne komponente v sistemu in njihovo vlogo pri njegovem
delovanju.
2.1. Bluetooth serijski modul
Za komunikacijo smo si izbrali Bluetooth serijski modul blu2i proizvajalca Ezurio [6] (Slika
2.1).
Slika 2.1: Bluetooth modul blu2i – Ezurio.
Bluetooth modul nam zagotavlja povezavo med dlančnikom in mikrokrmilnikom. Sam
modul ponuja dosti več, kot potrebujemo v našem projektu. Ena od možnosti, ki jo ponuja, je
prenos zvoka, na podlagi katere bi se dalo narediti strežnik z glasovno kontrolo dostopa.
Pri izbiri modula prenosa podatkov smo se odločali med tehnologijo GSM in Bluetooth. Za
Bluetooth modul smo se odločili, ker je njegova uporaba brezplačna. To pomeni, da v
primerjavi z GSM, Bluetooth deluje v frekvenčnem pasu, za katerega licenca ni potrebna,
zato lahko vsakdo sprejema in oddaja v tem frekvenčnem pasu brezplačno.
2. Izbira gradnikov sistema
- 6 -
2.1.1. Bluetooth splošno
V tem poglavju je predstavljen zgodovinski razvoj Bluetooth standarda in nekaj osnovnih
značilnosti delovanja Bluetootha, ki so pomembne za naše diplomsko delo. Detajlne
specifikacije so opisane v specifikaciji Bluetooth standarda [10].
2.1.1.1 Zgodovinski razvoj bluetooth standarda
Leta 1994 so pri Ericsson Mobile Communications med prvimi opazili potrebo po
nadomestitvi povezovalnih kablov z brezžičnimi povezavami. Odločili so se za razvoj
nizkonapetostnega in poceni radijskega vmesnika, kratkega dosega med mobilnim telefonom
in dodatno opremo, tega so imenovali Multi-Communicator Link ali MC Link. Projekt je
dobil zagon, ko so inženirji odkrili, da lahko MC Link deluje v nizkofrekvenčnem območju,
ki ne potrebuje licence, kar je pomenilo, da ga bo lahko uporabljal kdorkoli, kjerkoli,
kadarkoli brezplačno. To je vodilo do razvoja sistema oddajnik-sprejemnik, integriranega v
mikrokrmilniku [1].
Kmalu so ugotovili, da ponuja tehnologija veliko več, kot je bilo sprva načrtovano, torej ne
samo povezovanje mobilnih telefonov in njihove dodatne opreme, temveč tudi povezovanje
drugih naprav. Ugotovili so, da je za prodor tehnologije na trg potrebno zagotoviti, da bodo
tudi druga podjetja uporabljala isto tehnologijo, zato so tehnologijo brezplačno dali na voljo
ostalim proizvajalcem.
Le-ta so pokazala veliko zanimanje za novost in 20. maja 1998 je pet podjetij Ericsson, IBM,
Intel, Nokia in Toshiba oznanilo skupni razvoj standarda za brezžično povezavo med
računalniki in telekomunikacijskimi napravami. Razvojno ime standarda je bilo Bluetooth,
organizacija, ki je stala za standardom se je imenovala Bluetooth Special Interest Group
(SIG).
Razvojno ime Bluetooth se je obdržalo. Ime je povezano z vikinškim kraljem Harald
Blåtandom, ki je vladal Danski od leta 935 do leta 985 našega štetja. Bluetooth je angleška
izpeljanka iz vikinške besede Blåtand [2] ali po naše modri zob. Kralj Harald je v času
svojega kraljevanja združil Dansko in Norveško in pripeljal krščanstvo v skandinavske
države. Njegov vnuk je bil edini kralj, ki je vladal velikemu imperiju Severnega morja
(Anglija, Danska, Norveška in del Švedske). Tako kot je kralj Harald združeval svoje
2. Izbira gradnikov sistema
- 7 -
kraljestvo, so si razvijalci standarda želeli, da bi Bluetooth združeval svet mobilne
tehnologije. Na sliki 1.1 je Bluetooth logotip, ki je sestavljen iz črk BH po Harald
Blåtandu[3].
Slika 2.2: Bluetooth logotip, sestavljen iz črk B in H
po danskem kralju Harald Blåtandu.
V pičlih petnajstih mesecih je Bluetooth SIG uspelo razviti standard in tako so 26. julija
1999 predstavili Bluetooth standard 1.0. Prvi razmah je Bluetooh standard doživel decembra
1999, ko so se SIG pridružili še 3Com, Lucent Technologies, Microsoft in Motorola. V
naslednjih letih se je v Bluetooth SIG včlanilo prek 2000 podjetji. Časovni potek razvoja
Bluetootha prikazuje slika 2.3.
Slika 2.3: Časovni potek razvoja Bluetootha.
2. Izbira gradnikov sistema
- 8 -
2.1.1.2 Splošne karakteristike tehnologije.
Kot je že omenjeno v kronološkem pregledu Bluetooth tehnologije, so bile zahteve pri
snovanju standarda:
•••• globalna uporabnost,
•••• prenos govora in podatkov,
•••• vzpostavljanje priložnostnih (ad-hoc) povezav,
•••• majhne dimenzije naprave,
•••• majhna porabo energije v primerjavi z drugimi napravami za podobno uporabo,
•••• uporaba prostega frekvenčnega pasu,
•••• neobčutljivost na radiofrekvenčne motnje,
•••• odprt standard in
•••• nizki stroški.
Omenjene zahteve so bile upoštevane, kar se kaže v karakteristikah:
•••• 1 Mbit/s oddajno-sprejemna hitrost,
•••• uporaba hitrega frekvenčnega skakanja (1600 skokov/s) in s tem dobra odpornost na
radiofrekvenčne motnje,
•••• adaptivno prilagajanje izhodne moči za zmanjšanje interferenc in porabe energije,
•••• uporaba enega vseobsežnega integriranega vezja oddajno-sprejemne enote, kar je
povezano z majhnimi stroški proizvodnje in dimenzijami,
•••• hitre potrditve sprejemov in s tem majhen odstotek režijskega prometa,
•••• šifriranje podatkov s 128-bitnim ključem,
•••• uporaba različnih paketnih tipov, ki omogočajo uporabo širokega nabora aplikacij,
•••• širok nabor hkratnih vzpostavitev sinhronih/asinhronih in simetričnih/asimetričnih
povezav,
•••• domet povezav je ali 1 m, 10 m ali 100 m, odvisno od izbire močnostnega razreda
naprave,
•••• uporaba unikatnega 48-bitnega naslova naprave, katerega zgradba je definirana po
seriji standardov IEEE 802,
2. Izbira gradnikov sistema
- 9 -
•••• delovanje v 2,4 GHz prostem frekvenčnem področju, ki je z določenimi omejitvami v
posameznih državah harmoniziran po celem svetu,
•••• uporaba 79 skakalnih frekvenc (nosilcev) pasovne širine 1 MHz, ki so razvrščene
skladno s standardom IEEE 802.11 in
•••• unikatno skakalno zaporedje vsakega omrežja
2.1.1.3 Bluetooth naprave
Pod pojmom Bluetooth naprava si ne predstavljamo samo Bluetooth modula, ki je ključnega
pomena za komunikacijo, ampak tudi vse pripadajoče komponente, ki tvorijo napravo, kot so
mobilni telefon, dlančnik, slušalke. Slika 2.4 prikazuje osnovni komunikacijski model.
Slika 2.4: Arhitektura Bluetooth naprave.
Sestavljen je iz analognega dela radijskega oddajnika, sprejemnika in iz digitalnega dela –
gostiteljski krmilnik (ang. Host Controller – HC). Komunikacija poteka modularno po
nivojih, pri čemer vsak naslednji sloj uporablja storitev prejšnjega. Ti sloji protokolov
sestavljajo protokolni sklad (ang. protocol stack), ki ga prikazuje slika 2.5 [8].
Bluetooth naprava
Bluetooth naprava
Krmilnik fizičnega vodila
Krmilnik fizičnega vodila
HCI Bluetooth
Radijski vmesnik
Krmilnik višjih slojev
Gostiteljski krmilni
vmesnik
Bluetooth modul Gostitelj
Osnovni pas
2. Izbira gradnikov sistema
- 10 -
Slika 2.5: Protokolni sklad.
Detajlni opis vseh slojev je podan v dokumentu Discovering Bluetooth [1]. V nadaljevanju
so predstavljeni sloji, ki so pomembni za delovanje sistema, ki je predmet te diplomske
naloge. To je povezava mikrokrmilniškega sistema za krmiljenje aktivatorjev z dlančnikom.
BT radio je najnižji sloj v BT tehnologiji. V osnovi je namenjen oblikovanju radijskega
signala, ki se v 2,4 GHz frekvenčnem pasu pošilja v eter. V njem so definirani oddajni
parametri (moč, modulacija, stranska sevanja, točnost nosilca, kanalska razporeditev, …) in
sprejemni parametri (občutljivost, intereferenčni in intermodulacijski parametri, …).
Osnovni pas (ang. Baseband) predstavlja fizični sloj tehnologije. Skrbi za vzpostavitev in
krmiljenje fizičnih in logičnih kanalov pri sinhronih in asinhronih povezavah, naslavljanje
naprav, različne tipe in formate paketov, odpravljanje napak, časovno dvosmerni prenos,
vzorec frekvenčnega skakanja in celoten potek komunikacije.
Protokol za upravljanje povezav (ang. Link Manager Protocol – LMP) skrbi za
konfiguracijo vzpostavljenih povezav, overovitev naprave in osebne identifikacijske
številke, šifriranje podatkov, preverjanje in popravljanje sinhronizacije, vzpostavitev
vodilnih oziroma podrejenih in čakalnih vlog, kontrolo moči in kvaliteto povezave.
Gostiteljski krmilni vmesnik (ang. Host Controler Interface – HCI) skrbi za fizično
povezavo med BT napravo in gostiteljem. Gre za povezavo krmilnika osnovnega pasu s
Govorni klic WAE OBEX WAP AT-
komande TCS-BIN SDP
UDP TCP IP PPP Protokol emulacije serijskih vrat Audio Protokol za krmiljenje logične povezave in prilagajanje
Gostiteljski krmilni vmesnik Protokol za upravljanje povezav Osnovni pas
BT radio
2. Izbira gradnikov sistema
- 11 -
krmilnikom upravljalnika povezav in krmilnikom fizične povezave BT naprave in gostitelja
(krmilni register).
Protokol za krmiljenje logične povezave in prilagajanje (ang. Logical Link Control and
Adaptation Protocol – L2CAP) skrbi za krmiljenje povezav in prilagoditev protokolov višjih
slojev s protokolom osnovnega pasu. Ureja in omogoča multipleksiranje, razporeditev ali
segmentacijo podatkov v manjše pakete, označevanje paketov, pripravo skupin odjemalcev,
ki lahko sočasno sprejemajo podatke, označuje uporabljene kanale in ponovno združevanje
paketov.
Protokol emulacije serijskih vrat (ang. Serial Cable Emulation Protocol- RFCOMM) je
transportni protokol, ki omogoča emulacijo serijskega vmesnika RS-232 prek protokola
L2CAP.
2.1.1.4 Radijske specifikacije
BT oprema deluje v 2,4 GHz frekvenčnem področju, ki je v večini držav rezervirano za
delovanje industrijskih, znanstvenih in medicinskih naprav. To območje imenujemo prosto
območje, saj zanj ni potrebno plačevati frekvenčnine. Uporabljeno frekvenčno območje od
2400,0 MHz do 2483,5 MHz je tudi v Sloveniji rezervirano kot prosto frekvenčno področje
[9] (Tabela 2.1).
Geografsko področje Regulirano frekvenčno področje Radiofrekvenčni kanali
2,4000 GHz–2,4835 GHz f = 2 402 + k MHz
k = 0, 1, 2 ..., 78
Spodnji varovalni pas Zgornji varovalni pas
ZDA, Evropa in večina
ostalih držav
2 MHz 3,5 MHz
Tabela 2.1: Frekvenčno področje delovanje ter robni varovalni pasovi.
Razdelitev frekvenčnih kanalov se deli na podlagi osnovne frekvence 2 402 MHz + k MHz,
pri čemer je k=0,1,...,78, torej obstaja 79 kanalov oz. nosilnih frekvenc. Razmik med kanali
2. Izbira gradnikov sistema
- 12 -
je 1 MHz, pri čemer imamo pri spodnji mejni frekvenci varnostni pas 2 MHz, pri zgornji
mejni frekvenci pa 3,5 MHz. Varnostni pas preprečuje morebitne motnje v sosednje
frekvenčne pasove oz. interferenco z radijskimi postajami v sosednjih območjih.
Kanal je predstavljen s psevdo-naključnim zaporedjem skakanja skozi vseh 79 nosilnih
frekvenc. Zaporedje (sekvenca) skakanja je unikatno za piko omrežje (ang. piconet) in je
določeno z naslovom nadrejene (ang. master) Bluetooth naprave. Faza skakalnega zaporedja
je določena z Bluetooth uro nadrejene naprave. Za modulacijo je uporabljena GFSK (ang.
Gaussian Frequency Shift Keying) frekvenčna modulacija. To pomeni, da vsak oddajni
simbol (logično »0« ali »1«) izrablja svojo frekvenco. Takšno delovanje poveča tudi varnost
pred vdori, saj zaporedje skakanja med frekvencami ne poznajo naprave, ki niso povezane v
piko omrežje [7].
2.1.1.5 Varnost
Varnost je pomembno poglavje v specifikaciji Bluetootha [11], še posebej, če se uporablja
pri prenosu podatkov pri mobilnem plačevanju ali ostalih storitvah, kot je npr. odpiranje vrat
v prostor, kamor imajo dostop samo pooblaščene osebe. Glavna mehanizma sta overitev
naprave omrežja in šifriranje s podatkovnim ključem. Dodatno varnost prenosa podatkov
nam zagotavlja tudi samo delovanje fizičnega sloja, saj tehnologija uporablja hitro
frekvenčno skakanje in avtomatsko prilagajanje izhodne moči. Če varnost ne bi bila
zagotovljena, standard ne bi bil tako razširjen.
Bluetooth standard deli povezave glede na stopnjo varnosti v tri razrede:
- brez varnosti, kar pomeni, da varnost ni zagotovljena na nobenem nivoju
protokolnega sklada,
- varnost na področju aplikacije je zagotovljena s strani same aplikacije, torej potem,
ko je med napravami že vzpostavljena povezava in
- varnost na nivoju povezave, ki je zagotovljena s samo izvedbo mrežne povezave. To
je najbolj varna vzpostavitev povezave.
2. Izbira gradnikov sistema
- 13 -
Šifriranje s podatkovnim ključem (Key Management)
Deluje z uporabo treh vrst ključev:
• OSEBNO IDENTIFIKACIJSKO ŠTEVILKO (PIN- Personal Identification
number), ki si jo izbere uporabnik. Številka mora biti dolga vsaj 48 bitov (4
decimalna števila). Ker je vsakokratna overovitev zamudna in nadležna, veliko
naprav dovoli shranitev PIN v pomnilnik.
• OSEBNI POVEZOVALNI KLJUČ, AVTENTIKACIJA (Private Link Key-
Private Authentication Keys). Preden lahko Bluetooth naprave uporabijo šifrirne
varnostne mehanizme, se morajo povezati (ang.pairing). Bluetooth naprave
uporabljajo tri vrste uporabniških ključev glede povezave med napravami. Vsi so
začasna 128 bitna števila, ki se ustvarijo sprotno pri vsaki povezavi. Uporabniški
ključi so: ključ naprave KA, kombinacijski ključ KAB in začasni ključ Kmaster. Vsem
trem ključem je skupno, da se pri generiranju uporablja naključno število. Za varno
izmenjavo naključnih števil se uporablja inicializacijski ključ.
Inicializacijski ključ se uporablja pri prenosu začetnih informacij za overitev
naprave. Generira se na osnovi osebnega identifikacijskega števila, ki ga poda
uporabnik, naslova naprave A in naključnega števila. Enako se inicializacijski ključ
ustvari na napravi B, kjer moramo vnesti enako osebno identifikacijsko številko
(PIN) kot na napravi A. Naprava A nato pošlje svoje naključno število napravi B. Na
podlagi naključnega števila, povezovalnega ključa in svojega naslova naprava B
izračuna 32 bitni podpisan odgovor (ang. signed response), ki ga skupaj s svojim
inicializacijskim ključem šifriranega pošlje napravi A. Hkrati naprava izračuna 96
bitno skrivno nadomestilo (ang. cipher offset), ki ostane skrito, in je potrebno pri
generiranju šifrirnega ključa. Naprava A nato preveri, če se odgovor ujema z želenim
odgovorom. Ko inicializacija uspe, se za povezovalni ključ običajno uporablja ključ
naprave KA ali kombinacijski ključ KAB. Slednja se razlikujeta glede sodelovanja
naprave A ali naprave A in B pri izračunu ključa. Začasni ključ Kmaster se uporablja za
povezovalni ključ v primeru, če želi vodilna naprava poslati več podrejenim
napravam enotno šifrirano sporočilo.
2. Izbira gradnikov sistema
- 14 -
• ŠIFRIRNI KLJUČ, ŠIFRIRANJE (Private Encryption Key) uporabimo, ko je
povezava med napravami vzpostavljena in so le-te dokazale svojo pristnost. Zahtevo
po šifriranju lahko sproži vodilna (ang. master) ali podrejena (ang. slave) naprava.
Ko se napravi dogovorita za dolžino ključa, vodilna naprava pošlje naključno število
podrejeni. Naprava A nato generira šifrirni ključ KC iz povezovalnega ključa,
skrivnega nadomesila (ang. cipher offset) in naključnega števila. S pomočjo tega
ključa je narejen končni podatkovni ključ (K), prek katerega neposredno šifriramo
izhodne podatke, ki jih oddajamo v eter. Celoten postopek se na sprejemni strani z
enakim podatkovnim ključem ponovi. V tabeli 2.2 so povzeti postopki overovitve in
izračun ključev.
Ključ/postopek Parametri za izračun Povezovalni ključ
• inicializacijski ključ
• ključ naprave (KA)
• kombinacijski ključ (KAB)
• začasni ključ (Kmaster)
PIN (8–128 bitov), naslov naprave (48 bitov), naključno število (128 bitov)
Naslov naprave (48 bitov), naključno število (128 bitov)
Naslov naprave (48 bitov), naključno število (128 bitov)
PIN (8–128 bitov), naključno število (128 bitov), število zlogov števila PIN
Postopek overitve naprave Naključno število naprave A, povezovalni ključ, naslov naprave B
Šifrirni ključ (KC) Naključno število, povezovalni ključ, skrivno nadomestilo (ang. cipher
offset)
Podatkovni ključ (K) Kc (8–128 bitov), naslov naprave A, naključno število, ura naprave
Tabela 2.2: Uporabljeni parametri za postopek overitve in izračun ključev.
Zaključimo, da je za varnost dobro poskrbljeno, saj imamo več prepletajočih se algoritmov
in parametrov (dolžine do 128 bitov), ki jih uporabljamo pri izračunu ključev in šifriranju
podatkov. Poleg ključev in algoritmov je varnost prenosa dodatno zagotovljena z
delovanjem fizičnega sloja, saj tehnologija uporablja hitro frekvenčno skakanje in
avtomatsko prilagajanje izhodne moči. Hitro frekvenčno skakanje s 1600 skoki/s onemogoča
enostavno prisluškovanje zaradi poravnave časovne in frekvenčne sinhronizacije na
naključno izbrano skakalno zaporedje. Z avtomatskim prilagajanjem izhodne moči, ki skrbi,
da oddajna naprava vedno oddaja z minimalno potrebno izhodno močjo, se območje
2. Izbira gradnikov sistema
- 15 -
prisluškovanja zmanjša pod 1/10/100 m (Ι./ΙΙ./ΙΙΙ. močnostni razred naprave), tako da je le
nekoliko večji od razdalje med oddajno in sprejemno napravo.
2.1.2. Blu2i modul
Za povezavo dlančnika in mikrokrmilnika smo se odločili za [6] Blu2i modul (slika 2.1), ki
je zasnovan za podjetja, ki želijo dodati brezžično povezavo kratkega dometa svojim
produktom. Ker ima modul že definirane Bluetooth protokolne sklade, ga lahko preprosto
nastavimo za želeno opravilo prek AT ukazov [12]. Osnovi podatki so zbrani v tabeli 2.3.
Bluetooth razred 1 razred
Bluetooth standard Bluetooth 2.0
Domet 250 m na prostem
Frekvenca od 2 400 GHz do 2 485 GHz
Max. oddajna moč +6 dBm
Min. oddajna moč +0 dBm
Sprejemna občutljivost boljša od – 90 dB
Ojačanje antene +2 dBi
Hitrost prenosa
podatkov do 300 Kbps
Serijski vmesnik RS 232- dvosmeren za podatke in ukaze (AT ukazi)
Serijski parametri Prenastavljeni 9600,n,8,1- Nastavljivi od 1200 bps do 961200 bps
Podpora DTR,DSR,DCD,RI,RTS,CTS
Dimenzije 22,0x34,0x7,6 mm,8 g
Poraba toka pod 36 mA pri pošiljanju/oddajanju
Temperaturni razpon -40 °C -85 °C
Napajanje 3,3 V- 7V
Vmesniški nivo 3,3 V TTL
Zvok Zvok se prenaša prek SCO kanalov PCM vmesnika pri 64 kbps.
PCM se lahko nastavi kot glavni ali pomožni
Profili Server-SPP(Full), DUN, Audio Gateway,Headset, Handsfree Client
Večuporabniški Maksimalno 7 uporabnikov
2. Izbira gradnikov sistema
- 16 -
vhodi/izhodi 8 x digitalni
2 x analogni(8 bitni)
Tabela 2.3: Osnovne lastnosti blu2i modula.
Slika2.6 prikazuje hitrost prenosa glede razdalje. Vidimo, da ima modul domet 250 m pri
serijski komunikaciji. V povezavi s Pocket Loox dlančnikom je domet samo 20 metrov, saj
ima Bluetooth modul v dlančniku domet 20 metrov.
Slika2.6: Hitrost prenosa glede na oddaljenost.
2.1.2.1 Nastavitve Blu2i modula
Modul se programira prek AT ukazov. Ker je CSR (ang. Cambridge Silicon Radio) BC2
nabor integriranih vezij v blu2i modulu omejen s pomnilnikom, to ni popolna implementacija
AT ukazov, kot jih poznamo iz modemov, vendar razlika ni bistvena. Modul je priklopljen
na osebni računalnik preko serijskih vrat, za programiranje pa je bil uporabljen TDK
terminal. Priklop na serijska vrata osebnega računalnika (Slika 2.7) uporabimo samo takrat,
ko želimo programirati modul. Nastavitve ostanejo shranjene, tudi ko modulu izklopimo
napajanje.
2. Izbira gradnikov sistema
- 17 -
Slika 2.7 : Blokovni prikaz priklopa modula na PC.
Najprej nastavimo modul, da je viden drugim napravam, povezljiv z njimi in da se
samodejno oglasi pri klicu. Nastavimo tudi overovitev in šifriranje za vhodne in izhodne
povezave ter osebno identifikacijsko številko (PIN). Za vsako uspešno vneseno nastavitev se
modul odzove z OK. V nasprotnem primeru ukaz ni bil pravilen in moramo postopek
ponoviti. Primer nastavitve modula prikazuje naslednje zaporedje ukazov; oznaka <cr>
pomeni znak za vrnitev terminalskega kazalca na začetek vrste (ang. carriage return).
• at <cr> – preverimo, če terminal deluje,
• ats0=-1 <cr> nastavimo register S0 na -1. S tem povemo modulu, naj se oglasi ob
klicu, pri tem pa NE pošlje klic/povezava odgovora,
• ats512=4 <cr> z nastavitvijo registra S512 na 4 nastavimo modul, da ga vidijo druge
naprave,
• ats500=1 <cr> overovitev izhodne povezave,
• ats501=1 <cr> šifriranje izhodne povezave,
• ats502=1 <cr> overovitev vhodne povezave,
• ats503=1<cr> šifriranje vhodne povezave,
• at+btk=»xxx«<cr> kjer je xxx osebna identifikacijska številka (PIN). S tem ukazom
določimo PIN številko naprave,
• at&w <cr> s tem ukazom shranimo spremembe v S registru v trajni spomin. Pred
potrditvijo spremembe niso shranjene in bi se ob izklopu modula
izgubile,
MAX 232
UART_TX
UART_RX
PC COM
Blu2i modul
RXD
TXD
T1in
R1out
T1out
R1in CTS
0 V
2. Izbira gradnikov sistema
- 18 -
• atz <cr> strojni ponovni zagon (ang. hardware reset) .
Slika 2.8 prikazuje TDK terminal, ki smo ga uporabili za programiranje modula.
Slika 2.8: TDK terminal za programiranje modula.
at OK ats0=1 OK ats512=4 OK ats536=1 OK at&w OK atz OK ati4 00809824EE3B OK
2. Izbira gradnikov sistema
- 19 -
2.2. Mikrokrmilnik
Uporabili smo Atmelov 8 bitni mikrokrmilnik ATmega 32 [13] (Slika 2.9) zaradi
preprostega načina programiranja in strojne opreme, ki jo krmilnik ponuja. Program, ki se
izvaja v mikrokrmilniku, je napisan v programskem jeziku Bascom AVR [19]. To je višji
programski jezik, ki izvira iz Basica in ima vgrajene knjižnice, ki omogočajo direkten dostop
do strojne opreme v mikrokrmilniku.
Slika 2.9: Mikrokrmilnik Atmel ATmega 32.
Pomembnejše lastnosti mikrokrmilnika:
- DIL ohišje dimenzij 52 mm x 14 mm x 5 mm,
- 32 kB programskega pomnilnika, 1024 B eeprom-a in 2 kB delovnega pomnilnika
(SRAM) ,
- hitro delovanje, saj deluje na 16 MHz in tako omogoča do 16 milijonov operacij na
sekundo,
- osem 10-bitnih analogno-digitalnih pretvornikov,
- štiri prosto programibilna vhodno-izhodna 8-bitna vrata, skupaj 32 v/i linij,
- od 4,5 V do 5,5 V napajanje,
- sposobnost programiranja v vezju (ang. in-circuit) preko štirih namenskih linij, kar
omogoča hitro programiranje in testiranje brez fizičnega premeščanja
mikrokrmilnika.
2. Izbira gradnikov sistema
- 20 -
Za programiranje je potreben še programator, ki omogoča programiranje v vezju, pri čemer
se uporabljajo linije MISO, MOSI, SCK, RESET, VCC in GND. Uporabljen programator
ima oznako STK 201.
2.3. Delovni pomnilnik (SRAM)
Ker je 2 kB delovnega pomnilnika v mikrokrmilniku za naš projekt premalo, smo ga
nadgradili s Timekeeper SRAM [14]. M48T08 Timekeeper RAM (slika 2.12) je 8K x 8
trajni statični RAM z vgrajeno uro. V RAM shranjujemo vse podatke o uporabnikih. Uro
uporabljamo pri dodelovanju pravic uporabnikom glede časa. Da ne pride do izgube
podatkov, ima SRAM vgrajeno baterijo (. ), ki poskrbi, da se podatki ne
izgubijo tudi, ko je prekinjeno zunanje napajanje SRAM. Ko napajalna napetost VCC pade
pod VSO1
(3 V), se Timkeeper RAM začne napajati iz pomožne baterije.
Slika 2.10: M48T08 Timekeeper SRAM. Slika 2.11: Bločni diagram M48T08.
Podatke beremo/shranjujemo v SRAM, tako da prek naslovnih vrat nastavimo želen naslov,
nato pa prek podatkovnih vrat beremo ali zapišemo vsebino na tem naslovu. Ali gre za
1 Napetost pri kateri se preklopi napajanje na pomožno baterijo.
2. Izbira gradnikov sistema
- 21 -
zapisovanje ali branje določimo z sponko W. Ker je naslovnih sponk 13 število sponk na
mikrokrmilniku pa omejeno uporabimo osem flip-flopov tipa D v integriranem vezju
74HC374. Delujejo tako, da prenesejo vrednost vhodov na izhod, ko na sponki CP (ang.
clock input) pride do prehoda iz nizkega v visoko stanje. Z uporabo dveh 74HC374
zmanjšamo število potrebnih sponk na mikrokrmilniku na deset. Tako najprej nastavimo
spodnjih osem bitov, ki jih zapišemo v 74HC374. Enako naredimo z zgornjimi biti. Tako
imamo dostop do vseh 13 naslovnih vrat s samo desetimi sponkami na mikrokrmilniku. Ko
nastavimo želen naslov SRAM uporabimo iste sponke mikrokrmilnika tudi za branje in
zapisovanje v SRAM.
Podobno kot zapisujemo podatke, nastavimo uro. Na naslovih SRAM od 1FF8 do 1FFF
vpišemo čas in datum. Če želimo dobiti uro ali datum, ga preberemo iz določenega naslova
(tabela 2.4).
Podatki
Naslov D7 D6 D5 D4 D3 D2 D1 D0
funkcija/obseg BCD
format
1FFF 10 let leto Leto 00-99
1FFE 0 0 0 10 m. mesec Mesec 01-12
1FFD 0 0 10 dni dan Dan 01-31
1FFC 0 FT 0 0 0 dan Dan v tednu 01-07
1FFB 0 10 ur ure Ura 00-23
1FFA 0 10 minut minute Minute 00-59
1FF9 ST 10 sekund sekunde Skunde 00-59
1FF8 W R S kalibriranje Kontrola
Tabela 2.4: Naslovi za nastavljanje ter branje ure.
S postavitvijo bita ST (ang. stop) na 0 zaženemo oscilator. Če je ST bit postavljen na 0 ura v
Timkeeper SRAM ne deluje, kar je uporabno, če ga ne uporabljamo dalj časa. R (ang. read)
bit postavimo na 1, ko želimo brati čas. S tem ustavimo posodabljanje urnega registra,
medtem ko beremo podatke. Podobno deluje W (ang. write) bit, ki ga postavimo na 1, ko
želimo zapisati podatke ali nastaviti čas.
2. Izbira gradnikov sistema
- 22 -
2.4. LCD prikazovalnik
LCD prikazovalnik nam je bil v veliko pomoč pri razhroščevanju programa. Z njim smo
nadzorovali potek izvajanja programa. Prikazovalnik je dvovrstični z možnostjo
prikazovanja šestnajstih znakov v vrstici. Pri izvajanju programa se nanj izpisuje ura in
datum. Prav tako se ob spremembi stanja izhodov, ki se uporabljajo za krmiljenje naprav,
izpiše uporabniško ime osebe, ki je zahtevala spremembo.
2.5. Dlančnik
Za krmiljenje smo uporabili dlančnik FujitsuSiemens Pocket Loox 720 [15] (Slika 2.12).
Slika 2.12: FujitsuSiemens Pocket Loox 720.
Deluje na operacijskem sistemu Windows MobileTM 2003. Dlančnik poganja 520 Mhz
Intelov PXA272 procesor. Zaslon je občutljiv na dotik in ima diagonalo 9 cm. Ločljivost
zaslona je 640 x 480 slikovnih elementov. Za povezovanje dlančnika z drugimi napravami
so na voljo štirje vmesniki.
• USB (ang. Universal Serial Bus) [17] vmesnik je najbolj pogosto uporabljen vmesnik
med dlančnikom in osebnim računalnikom. Je specifikacije 1.1 in sicer tako v
podrejenem (ang. slave) kot tudi nadrejenem (ang. master) delovanju. Podrejen
pomeni, ko imamo priklopljen dlančnik in osebni računalnik, da so vsi gonilniki
2. Izbira gradnikov sistema
- 23 -
nameščeni na osebnem računalniku, saj ima le ta vlogo nadrejenega. Redkost med
dlančniki je, da lahko delujejo nadrejeno. Zato je posebnost tega dlančnika, da lahko
nanj priklopimo »USB ključ«, zunanji disk, tipkovnico, miško in druge zunanje USB
enote. USB vmesnik smo uporabljali pri nalaganju našega programa na dlančnik.
• IrDA vmesnik se uporablja večinoma pri prenašanju podatkov med mobilnim
telefonom in dlančnikom. Pred prihodom Bluetootha je bil IrDA edini brezžični
vmesnik v mobilnem telefonu. Zaradi svoje cenenosti še zmeraj prevladuje, toda
Bluetooth ga počasi izpodriva. Ima veliko pomanjkljivost, saj morata biti naprave pri
prenosu podatkov medsebojno vidni in na maksimalni razdalji 30 cm.
• WLAN ali brezžična mreža se uporablja pri povezovanju dlančnika na internet in v
lokalno omrežje. Deluje pri frekvenci 2,4 Ghz, je specifikacije IEEE802.11b, kar
pomeni, da je hitrost prenosa 11 Mbps
• Bluetooth vmesnik je specifikacije 1.2 in močnostnega razreda II, kar pomeni
območje uporabe okoli 10 m. Mi smo od profilov uporabe uporabili profil serijskih
vrat (ang. Serial Port Profile).
2.5.1. Programiranje dlančnika
Programiranju na dlančniku bi bilo zamudno in nepraktično zaradi majhnega zaslona. Zato
se programiranje opravi na osebnem računalniku in prenese po USB vmesniku na dlančnik.
Za programiranje dlančnika smo uporabili Microsoft eMbedded Visual C++ 4.0 (Slika 2.13).
Pred tem je potrebno namestiti SDK (ang. Software Development Kit), ki nam omogoča
pisanje programov za Pocket PC 2003 v eMbedded Visual C++ 4.0. Tako eMbedded Visual
C++ 4.0 kot SDK sta brezplačna in ju lahko dobimo na Microsoftovi spletni strani [18].
eMbedded Visual C++ je po zasnovi enak Visual C++. Delno se razlikujeta po razredni
zasnovi (ang. declaration of the class). Iz tega sledi, da določeni ukazi, v enem delujejo, v
drugem ne.
2. Izbira gradnikov sistema
- 24 -
Slika 2.13: eMbedded Visual C++.
Razlika med njima je tudi, da ima eMbedded Visual C++ 4.0 možnosti simulatorja
dlančnika. Simulator nam je dal možnost spoznavanja programskega jezika in delovanja
samega dlančnika še pred nakupom. Simulator se je izkazal za zelo uporabnega pri učenju
programskega jezika, pri samemu projektu pa je bil neuporaben, saj nima možnosti uporabe
Bluetootha. Prehod pri programiranju iz simulatorja na dlančnik je preprost, saj ni potreba
spreminjati programske kode, ampak samo način, kako in kam naj se program prevede.
Slika 2.14: Simulator dlančnika.
3. Varnost
- 25 -
3. Varnost
Varnost omrežnih povezav je pereč problem današnjega časa. Kjerkoli pride do izmenjave
informacij, obstaja možnost prisluškovanja. Naj si bo to pri pogovoru med dvema osebama,
telefonskem pogovoru, pošiljanju pisem ali izmenjavi podatkov prek interneta.
Varnost konceptualno razdelimo na dve področji.
• Področje identifikacije - nič nam ne pomaga, da imamo zagotovljen varen
prenos podatkov, če jih posredujemo napačni osebi. Pri pogovoru z znano
osebo to ni problem, saj osebo vidimo in jo prepoznamo. Podobno deluje
identifikacija sogovornika po telefonu, kjer se zanašamo na razpoznavanje
glasu. Vse to se spremeni, če osebe ne poznamo. Pri srečanju z neznano
osebo se lahko v njeno istovetnost prepričamo na več načinov. Oseba se nam
lahko predstavi sama, predstavi nam jo prijatelj, ali nam pokaže osebni
dokument. Če se nam oseba predstavi sama, nimamo nobenega jamstva o
njeni poštenosti. Tu nam pomaga prijatelj, ki ga poznamo in mu zaupamo. Ta
osebo pozna in jamči zanjo. Ker je popolnoma jasno, da npr. carinik vseh
oseb, ki prečkajo mejni prehod, ne pozna niti nima toliko prijateljev, ki bi vse
osebe poznali, se mora zanašati na osebne dokumente, ki jih je izdala država,
katere državljan je oseba, ki prečka mejo. Mora pa se prepričati, da
dokumenti niso ponarejeni. To je mogoče samo, če pozna originalen
dokument, saj v nasprotnem primeru ne bi imel primerjave. To je samo nekaj
osnovnih primerov iz vsakdanjega življenja, predstavljamo pa si, da je
identifikacija prav tako pomembna pri plačevanju z čeki, bančno kartico ali
pri obisku zdravnika.
• Drugo področje bi lahko poimenovali zagotavljanje varnosti prenosa
informacij. Če se osebi pogovarjata na samotnem otoku in v bližini ni
nikogar, je ta varnost zagotovljena. Še varnejši bi bil njun pogovor, če bi se
pogovarjala v šifrah. Lahko si predstavljamo, da pri pogovoru čez cesto, ni
3. Varnost
- 26 -
nikakršne varnosti pri prenosu informacij, saj lahko vsak mimoidoči sliši
vsebino. Če že pri pogovoru čez cesto varnost prenosa ni zagotovljena, kako
naj bo pri telefonskem pogovoru v Avstralijo, ali plačevanju z bančnimi
karticami prek interneta.
Obe področji pokriva veda o tajnopisju (ang. cryprography). V nadaljevanju je opisan razvoj
vede in njen pomen. Prav tako je predstavljeno nekaj osnov o tajnopisju zakaj in kako
prihaja do zlorab. V nadaljevanju je predstavljen sistem varovanja, ki smo ga uporabili pri
našem projektu.
3.1. Razvoj tajnopisja in njegov pomen
Tajnopisje povezujemo z velikimi tajnostmi. Med obema svetovnima vojnama je igralo
pomembno vlogo pri odločanju izida bitk. V obdobje hladne vojne se je na področju
tajnopisja veliko razvijalo, ampak malo govorilo. Ob besedi tajnopisje si predstavljamo
vohune, ki spremljajo razvoj atomske bombe in o napredku obveščajo svojo državo. To je
držalo v obdobju pred prihodom računalnikov. Pravijo, da smo v obdobju informacijske
družbe. Informacijska družba brez tajnopisja preprosto ne mora delovati.
3.1.1. Terminologija
Pošiljatelj in prejemnik
Pošiljatelj želi poslati sporočilo prejemniku. Želi si, da bi sporočilo varno poslal. Želi
zagotoviti, da prisluškovalec ne more prebrati sporočila.
Sporočila in šifriranje
Sporočilo je navaden tekst (ang. plaintext). Prikrivanje sporočila, tako da skrijemo njegovo
vsebino, se imenuje šifriranje (ang. encryption). Tako dobimo šifrirano sporočilo (ang.
ciphertext). Dešifriranje (ang. decryption) uporabimo takrat, ko želimo iz šifriranega
sporočila dobiti navaden tekst (Slika 3.1).
3. Varnost
- 27 -
Slika 3.1: Šifriranje in dešifriranje.
Overovitev, celost in nezmožnost zanikanja
Da bi tajnopisju zagotovili zaupnost, mora pogosto vključevati tudi:
• Overovitev (ang. Authentication) Prejemnik sporočila se mora
prepričati o pristnosti pošiljatelja. Vsiljivec se ne more predstaviti kot
kdo drug.
• Celost (ang. Integrity) Prejemnik ima možnost preveriti, da sporočila
niso spremenili med prenosom. Vsiljivec ne more zamenjati
originalnega sporočila s svojim.
• Nezmožnost zanikanja (ang. Nonrepudatino) Pošiljatelj ne more
zanikati, da je poslal sporočilo.
Algoritmi in ključi
Algoritmi šifriranja ali šifra (ang. cipher) je matematična funkcija, ki se uporablja pri
šifriranju in dešifriranju. Če je varnost algoritma zasnovana tako, da je delovanje algoritma
skrivnost, mu rečemo zadrževalni (ang. restricted) algoritem. Uporabljali so ga predvsem v
preteklosti, saj je nezadosten z merili današnjih standardov. Predstavljajmo si skupino ljudi,
ki vsi vedo, kako algoritem deluje. Ko kdo od njih skupino zapusti, morajo ostali spremeniti
algoritem, saj bi v nasprotnem primeru oseba, ki je odšla, še naprej lahko dešifrirala njihova
sporočila. Kljub resni varnostni problematiki je ta način zelo razširjen v slabo zaščitenih
aplikacijah, za katere uporabnik ne ve, bodisi mu je vseeno. Tak izdelek ni primeren za
množično uporabo, saj bi prisluškovalec z nakupom izdelka lahko analiziral algoritem.
Navaden
tekst
Šifrirano
sporočilo
Šifriranje
Dešifriranj
3. Varnost
- 28 -
Moderno tajnopisje rešuje ta problem s ključem. Ključ je lahko poljubne vrednosti. Tako pri
šifriranju kot dešifriranju uporabljamo ta ključ (Slika 3.2). Ključ za šifriranje in dešifriranje
je lahko enak ali različen za vsako operacijo. Vsa varnost teh algoritmov je v ključu in ne v
samem algoritmu. To pomeni, da je lahko algoritem objavljen in je zaželeno, da ga
analizirajo strokovnjaki s področja šifriranja. Tak izdelek je primeren za množično uporabo.
Prisluškovalec lahko pozna algoritem, vendar mu to ne pomaga, če ne pozna ključa.
Slika 3.2: Šifriranje in dešifriranje s ključem.
Razlikujemo dva glavna tipa algoritmov s ključi (ang. key based algorithms): simetričnega
in algoritem javnega ključa (ang. public-key).
Simetričen algoritem, imenovan tudi navaden algoritem, je, ko lahko šifrirni ključ
izračunamo iz dešifrirnega ključa. Po navadi sta ključa celo enaka. Pošiljatelj in
prejemnik se morata predhodno dogovoriti o ključu, preden lahko varno
komunicirata.
Algoritem javnega ključa, imenovan tudi asimetričen algoritem, je zasnovan tako,
da se ključ za šifriranje razlikuje od tistega za dešifriranje. Prav tako dešifrirnega
ključa ne moremo v doglednem času izračunati iz šifrirnega. Algoritem javnega
ključa se imenuje zato, ker je šifrirni ključ lahko javen. Kdorkoli ga lahko uporabi za
šifriranje sporočila, toda samo določena oseba z pravim dešifrirnim ključem lahko
sporočilo dešifrira. Šifrirni ključ zato imenujemo javni, dešifrirnega pa privatni.
Najboljši šifrirni algoritmi so tisti, ki so objavljeni, so bili »napadeni« in so še zmeraj
»nezlomljivi«.
Šifrirni ključ
Dešifrirni ključ
Navaden tekst
Originalen navaden tekst Dešifriranje Šifrirano sporočilo Šifriranje
3. Varnost
- 29 -
Analiza šifriranja (ang. Cryptanalysis)
Bistvo šifriranja je, da ostane navaden tekst tajen prisluškovalcu, čeprav vemo, da ima
popoln dostop do komunikacije med pošiljateljem in prejemnikom. Analiza šifriranja je veda
o pridobitvi navadnega teksta brez poznavanja ključa.
Varnost algoritmov
Različni algoritmi ponujajo različne ravni zaščite. Odvisne so od tega, kako težko je
kodirano sporočilo dešifrirati brez poznavanja ključa. Če je strošek potreben za razbitje
algoritma večji od vrednosti šifriranega sporočila, velja algoritem šifriranja za varnega.
Algoritem je brezpogojno varen, če iz šifriranega sporočila ni mogoče dobiti navadnega
teksta. Samo algoritem enkratne podloge (ang. one-time-pad) velja za nezlomljivega pri
neomejenih virih. Vsi drugi so zlomljivi preprosto tako, da preizkusimo vse možne ključe in
preverjamo smiselnost sporočila. Za dobre algoritme štejemo tiste, ki so danes skoraj
nezlomljivi in bodo ostali tudi v prihodnosti s prihodom močnejših računalnikov [16].
3.2. Implementirana varnost v projektu
Pri prenosu podatkov med dlančnikom in Bluetooth modulom izkoriščamo varnost, ki jo
ponuja sam Bluetooth protokol. Ključno je, da imamo vključeno overovitev in šifriranje
vhodno izhodne povezave. Pri brezžični povezavi nikoli ne smemo popolnoma izključiti
možnosti prisluškovanja povezavi. Ko z dlančnikom začnemo postopek združevanja, se
lahko zgodi, da se prisluškovalec predstavi kot Blu2i modul. Dlančnik ne spozna, da gre za
prisluškovalca in opravi združitev s prisluškovalcem. Z overovitvijo prisluškovalcu
onemogočimo prevzem lažne identitete. Šifriranje podatkov nam zagotovi tajnost podatkov,
tudi ko prisluškovalec prisluškuje zvezi. Tako pri overovitvi kot pri šifriranju je
najpomembnejša osebna identifikacijska številka (PIN), na podlagi katere se računajo
povezovalni in šifrirni ključi. Pri izračunu ključev je PIN edini parameter, ki ga pri
kalkulaciji ključev poda uporabnik. Zato je izbira PIN zelo pomembna. Blu2i modul
3. Varnost
- 30 -
omogoča lastno izbiro PIN, toda ne omogoča določitev različnih PIN-ov različnim
uporabnikom.
Priporočajo je, da se za PIN ne uporablja splošnih števil, kot je npr. 0000. Priporočena
dolžina PIN je 64 bitov. PIN dolžine 40 bitov zagotavlja malo zaščite in ga je mogoče v
razmeroma kratkem času razbiti že z osebnim računalnikom. Priporočene najkrajše dolžine
PIN prikazuje tabela 3.1.
Nabor znakov Priporočena najkrajša dolžina PIN
0-9 (10 znakov) 19 znakov (=63 bitov)
0-9,A-Z (36 znakov) 12 znakov (=62 bitov)
0-0,A-Z,a-z (62 znakov) 11 znakov (=65 bitov)
ASCII (95 znakov) 10 znakov (=66 bitov) Tabela 3.1: Priporočena najkrajša dolžina PIN.
Dodatno varnost smo zagotovili s samo zasnovo aplikacije. Tako smo listo uporabnikov,
gesel, dostopov in opravil shranili v SRAM. Dlančnik teh podatkov ne shrani. Tako lahko
program za dlančnik objavimo na internetu, saj s tem ne bomo ogrozili varnosti aplikacije.
Analiza programa in njegovega delovanja nam brez uporabniškega imena ter gesla ne
koristita. Uporabnik mora poslati uporabniško ime in geslo na modul dostopa. Če se ujemata
s shranjenimi podatki v bazi, mikrokrmilniški strežnik opravil vrne seznam dovoljenih
opravil. Ko izberemo želeno opravilo ponovno najprej pošljmo uporabniško ime in geslo,
kar prepreči zlorabo, če bi bili spremenili program na dlančniku.
4. Mikrokrmilniški strežnik opravil
- 31 -
4. Mikrokrmilniški strežnik opravil
Preden lahko začnemo uporabljati mikrokrmilniški strežnik opravil, ga moramo povezati
(ang. paired) z dlančnikom. To storimo tako, da na dlančniku omogočimo Bluetooth
povezavo s klikom na Bluetooth ikono v spodnjem desnem robu ekrana.
Slika 4.1: Vklop Bluetooth povezave na dlančniku.
Ko je Bluetooth prižgan, ponovno kliknemo na ikono, samo da sedaj izberemo Bluetooth
upravitelja (ang. Bluetooth Manager). V meniju orodja (ang. Tools) izberemo povezane
naprave (ang. Paired devices). Pritisnemo tipko »dodaj«, izberemo napravo MSO
(mikrokrmilniški strežnik opravil) in vpišemo PIN. Nato zaženemo program Racces2. V
programu vpišemo svoje uporabniško ime in geslo, pritisnemo tipko »Potrdi«. Zažene se
postopek overovitve, kjer vnovič vpišemo PIN, ki se uporabi za izračun povezovalnega
ključa. Napravi sta overovljeni, dokler ne pride do ponovnega zagona MSO.
2 Program za dlančnik, ki smo ga napisali v eMbedded visual C++. Z njim dostopamo do MSO.
4. Mikrokrmilniški strežnik opravil
- 32 -
4.1. Prijava v sistem
Kot smo že omenili, so vsi podatki o uporabnikih in opravilih shranjeni v MSO. Neposredno
ob zagonu programa Racces opravil še nimamo na voljo. Za dostop do njih se moramo
prijaviti v sistem. V oknu »Uporabnik« (Slika 4.2) vpišemo svoje uporabniško ime in geslo.
Vnos potrdimo s tipko »Potrdi«. Dlančnik pošlje uporabniško ime in geslo v overovitev na
MSO, ki najprej pogleda, če ima v bazi vpisanega uporabnika. Če je uporabnik v bazi,
preveri še geslo, v nasprotnem primeru prekine operacijo. Če se uporabniško ime in geslo
ujemata, pošlje MSO dlančniku seznam pravic, dovoljenih opravil in njihove nazive (Slika
4.3).
Slika 4.2: Okno za prijavo v sistem.
4. Mikrokrmilniški strežnik opravil
- 33 -
Slika 4.3: Prijava v sistem.
Na dlančniku se v oknu Opravila prikažejo opravila ter njihova imena. Lahko se zgodi, da
nimamo dovoljenja za nobeno opravilo, zato ostane okno »Opravila« prazno. Če imamo
dodeljeno administratorsko pravico, lahko odpremo okno »Administrator«, v nasprotne
primeru nam program to prepreči.
DLANČNIK
Uporabniško ime Geslo
MSO
Baza podatkov
Uporabniško ime = =
Geslo Izhod
NE DA
= =
NE
DA
Seznam opravi Naziv opravil
Pravice
DLANČNIK
4. Mikrokrmilniški strežnik opravil
- 34 -
4.2. Kontrola opravil
Po uspešni prijavi v sistem se nam v oknu »Opravila« (Slika 4.4) prikažejo dovoljena
opravila. Maksimalno število vseh opravil je osem. Če je kvadratek pred opravilom
odkljukan, pomeni, da je opravilo vključeno. Želena opravila preprosto vključimo tako, da
odkljukamo kvadratke pred opravili in pritisnemo tipko »Potrdi«. S tem pošljemo ukaz na
MSO, ki opravila vključi. Pri prenosu ukazov najprej pošljemo uporabniško ime in geslo. S
tem se izognemo možnosti, da bi prišlo do neavtoriziranega dostopa. To pomeni, da lahko
poznamo sekvenco, ki se pošlje iz dlančnika na MSO, vendar je sistem brez uporabniškega
imena in gesla ne bo izvršil. MSO najprej pogleda, če ima uporabnika shranjenega v bazi
podatkov, preveri pravilnost gesla in šele nato izvrši spremembo opravil.
Slika 4.4:Okno za kontrolo opravil.
Obstaja možnost, da se uporabnik prijavi v sistem, nato pa programa nekaj časa ne uporablja.
S tem bi na dlančniku obdržal opravila, ki bi jih poskušal uporabiti tedaj, ko mu le-ta niso
dovoljena. Pojasnimo to na primeru.
Podjetje svojim uslužbencem zagotovi dostop v poslovne prostore med tednom, med
vikendom pa dostop v poslovne prostore ni dovoljen. Delavec bi lahko uporabil zvijačo in se
prijavil v sistem že v petek in tako dobil seznam dovoljenih opravil. Program v dlančniku bi
4. Mikrokrmilniški strežnik opravil
- 35 -
pustil prižgan do sobote. Tako bi v soboto imel na dlančniku naložen petkov seznam opravil,
ki se razlikujejo od sobotnega, ko vsa opravila niso dovoljena.
Sistem je zasnovan tako, da predvidi možnost take zlorabe in jo prepreči. Ko pogleda
pravilnost uporabniškega imena in gesla, preveri tudi, če je opravilo ob času zahtevka
dovoljeno (Slika 4.5).
Slika 4.5: Postopek spremembe opravil.
Zahtevek po spremembi opravila
Ali se uporabniško ime in geslo ujemata z shranjenimi v bazi podatkov?
NE DA
Ali je opravilo ob zahtevku dovoljeno? NE
DA
IZHOD
Izvršitev opravil
4. Mikrokrmilniški strežnik opravil
- 36 -
4.3. Profili uporabnikov
4.3.1. Skupina brez administratorskih pravic
To so uporabniki sistema, ki lahko spreminjajo stanja opravil v okvirih, ki jih dovoljuje ali
podana administrator. Ne morejo dodajati novih uporabnikov, spreminjati pravic, opravil in
ure. Imajo dostop samo do oken »Uporabnik« in »Opravila«, za ostale jim program to
prepreči (Slika 4.6).
Slika 4.6: Prepoved uporabe administratorskih orodji.
Za uporabnike je tak sistem preprost. Morajo se samo prijaviti v sistem in že lahko
spreminjajo stanja opravil. Tako ni potrebno usposabljanje uporabnikov za delo s sistemom.
Profil uporabnika brez administratorskih pravic je večinski profil uporabnikov. Tako imamo
po navadi samo enega ali dva uporabnika z administratorskimi pravicami.
4. Mikrokrmilniški strežnik opravil
- 37 -
4.3.2. Skupina z administratorskimi pravicami oziroma
administratorji sistema
Administratorji sistema skrbijo za dodajanje novih uporabnikov, odstranjevanje uporabnikov
iz sistema, spreminjanje sistemske ure in dodajanje in odstranjevanje opravil. Lahko tudi
spreminjamo stanja opravil. Administrator ima popoln nadzor nad MSO. V sistem se
administrator prijavi kot ostali uporabniki. Ko se administrator prijavi v sistem, MSO pošlje
dlančniku, da se je prijavil administrator. S tem se v programu na dlančniku odkleneta dve
podokni, ki sta za ostale uporabnike zaklenjeni.
4.3.2.1 Dodajanje novih uporabnikov
V MSO imamo lahko maksimalno 25 uporabnikov. Število administratorjev je pri tem
poljubno. Uporabnika se doda v oknu »Administrator«. Najprej pritisnemo gumb »Osveži«,
ki nam posodobi polje z opravili (Slika 4.7). Nato vpišemo uporabniško ime in geslo novega
uporabnika. Pri tem prisotnost uporabnika, katerega profil kreiramo, ni potrebna. Tako lahko
naredimo profil novemu uporabniku, ki ga osebno ne poznamo.
Slika 4.7: Posodobitev polja z opravili.
4. Mikrokrmilniški strežnik opravil
- 38 -
Uporabniško ime in geslo lahko imata maksimalno dolžino osem znakov. Ko vpišemo
uporabniško ime in geslo, določimo opravila, ki jih bo uporabnik opravljal. Če želimo, da bo
uporabnik imel administratorske pravice, odkljukamo okence pred »Administrator« v
nasprotnem primeru pustimo okence prazno.
Okence »Pon-Pet« pomeni od ponedeljka do petka. S tem uporabniku omogočimo dostop
samo od ponedeljka do petka ali ob delavnikih.
Pod okencem »Pon-Pet« imamo dve prazni okenci (Slika 4.8). V prvo vpišemo uro, od
katere je dovoljena sprememba opravil, v drugega pa do kdaj je dovoljena sprememba. Če
vpišemo od 8-16 pomeni, da ima uporabnik dovoljenje za spremembo opravil vsak dan od
osme ure zjutraj do četrte ure popoldne. Lahko dostop še dodatno omejimo z izbiro
»Pon-Pet«. S tem uporabniku dovolimo spremembo opravil samo od ponedeljka do petka.
Slika 4.8: Omejitev dostopa glede na uro.
Ko izpolnimo vsa želena okenca pritisnemo tipko »Dodaj«. S tem zaključimo vnos podatkov
na dlančniku in jih pošljemo na MSO. MSO jih doda v svojo bazo podatkov. Pri tem
moramo biti pazljivi, saj lahko pritisnemo tipko »Dodaj«, ko še nimamo vnesenih vseh
4. Mikrokrmilniški strežnik opravil
- 39 -
podatkov. V primeru, da se nam to zgodi, lahko uporabniško ime naknadno spremenimo ali
odstranimo.
4.3.2.2 Pregled uporabnikov shranjenih v bazi podatkov
Do uporabnikov shranjenih v bazi MSO pridemo s pritiskom na eno izmed puščic na dnu
ekrana (Slika 4.9). Če pritiskamo na desno puščico se pomikamo po bazi naprej, z levo pa
nazaj. Ko pridemo do zadnjega uporabnika, nam program avtomatsko preskoči na prvega.
Praznih mest v bazi nam program ne prikazuje.
Slika 4.9: Pregled uporabnikov shranjenih v bazi podatkov.
4. Mikrokrmilniški strežnik opravil
- 40 -
4.3.2.3 Odstranjevanje uporabnikov iz baze podatkov
Če želimo odstraniti uporabnika iz baze podatkov, ga moramo v bazi najprej poiskati. To
storimo s pritiskom na puščico v spodnjem delu zaslona. Puščico pritiskamo toliko časa, da
pridemo do uporabnika, ki ga želimo zbrisati. Ko smo izbrali uporabnika, pritisnemo tipko
»Odstrani« (Slika 4.10) in uporabnik se izbriše iz baze podatkov.
Slika 4.10: Odstranjevanje uporabnikov iz baze podatkov.
4.3.2.4 Spreminjanje uporabnikov v bazi podatkov
Ko uporabnika ne želimo izbrisati iz baze podatkov, lahko uporabniški profil samo
popravimo. To storimo, ko želimo nekemu uporabniku dodati ali odvzeti opravila. Lahko
tudi spremenimo geslo, če ga je uporabnik pozabil, ali ga želi spremeniti.
Ponovno moramo najprej uporabnika poiskati v bazi podatkov, kar storimo s puščicama na
dnu ekrana. Ko imamo uporabnikove podatke, ki jih želimo spremeniti na ekranu, preprosto
spremenimo podatke, ki jih želimo popraviti. Kot vidimo na Slika 4.11, smo spremenili
4. Mikrokrmilniški strežnik opravil
- 41 -
geslo, dodali opravila, in spremenili čas uporabnikovega dostopa. Prav tako smo spremenili
geslo. Ko opravimo vse spremembe, pritisnemo gumb »Spremeni« in spremembe se zapišejo
v MSO.
Slika 4.11: Spreminjanje uporabnikov v bazi podatkov.
4.3.2.5 Nastavljanje sistemskega časa
Timekeeper RAM v MSO ima poleg delovnega pomnilnika, v katerega zapisujemo podatke
o uporabnikih, tudi uro in datum. Datum in ura sta pomembna, ko ima uporabnik časovno in
dnevno omejen dostop. Uro in datum v MSO nastavimo prek programa na dlančniku (Slika
4.12).
4. Mikrokrmilniški strežnik opravil
- 42 -
Slika 4.12: Nastavljanje ure in datuma sistemskega časa.
Ker bi bilo nesmiselno, da bi vsak uporabnik lahko nastavljal sistemski čas, ima to pravico
samo administrator. Če bi vsak uporabnik imel pravico spreminjati sistemsko uro, bi
uporabniki, ki imajo časovno omejen dostop, preprosto spremenili uro in datum, na čas, ko
jim je dovoljen za izvajanje opravil.
Uro nastavimo tako, da se postavimo na polje,ki ga želimo spremeniti (Slika 4.13). Tako se
postavimo na polje »Ure« in nastavimo želeno uro. Podobno naredimo še z »Minutami« ter
»Sekundami«.
Slika 4.13: Nastavljanje ure.
Ure Minute Sekunde
4. Mikrokrmilniški strežnik opravil
- 43 -
Datum nastavimo tako kot uro, s spreminjanjem parametrov ali z izborom datuma iz
spustnega seznama (Slika 4.14). Spustni seznam dobimo s klikom na trikotnik v levem delu
datumskega polja. V spustnem seznamu preprosto izberemo želeni datum.
Slika 4.14: Spustni seznam za nastavljanje datuma.
Ko nastavimo želeno uro in datum pritisnemo tipko čas. S tem nastavimo nov čas na MSO.
Omenimo še, da čas, ki je nastavljen v programu dlančnika ob njegovem zagonu, ni
sistemski čas MSO temveč čas, ki je nastavljen na operacijskem sistemu dlančnika.
Sistemski čas nastavljen v MSO se nam izpisuje na LCD prikazovalniku.
4.3.2.6 Spreminjanje opravil
Spreminjanje opravil nam omogoča, da dodajamo, odvzemamo ali spreminjamo opravila.
Opravila lahko administrator spreminja v drugem oknu »Administrator«. Najprej moramo
pritisniti gumb »Osveži«, da dobimo seznam opravil, shranjenih v MSO (Slika 4.15).
4. Mikrokrmilniški strežnik opravil
- 44 -
Slika 4.15: Seznam opravil iz MSO-ja.
Opravila lahko potem poljubno spreminjamo. Če opravilo dodamo, spremenimo ali
odstranimo, moramo odkljukati okence »Spremeni« (Slika 4.16). Tudi če opravila ne
spremenimo in odkljukamo okence »Spremeni«, bo MSO to razumel kot spremembo
opravila. Z odkljukanjem okenca »Spremeni«, povemo MSO, da želimo opravilo spremeniti.
Nadomesti naj ga v bazi opravil MSO z opravilom napisanega v okencu pred odkljukanim
opravilom. Kot vidimo na sliki 6.15 opravilo zbrišemo/dodamo tako, da ga preprosto
zbrišemo/dodamo v okence »Opravila«. Ko smo vnesli vse podatke, pritisnemo gumb
»Shrani«, ki želena opravila pošlje MSO, da jih shrani v bazo opravil.
Ko dodamo novo opravilo, ga moramo dodeliti uporabnikom. Pravico do novega opravila
moramo dodati vsakemu uporabniku posebej, kot je opisano v poglavju 6.3.2.4
(Spreminjanje uporabnikov v bazi podatkov). Prav tako uporabnik izgubi pravico do
opravila, če je spremenjeno ali popravljeno (Slika 4.17). Predstavljajmo si, da opravilo, ki
odpira vhodna vrata podjetja nadomestimo z opravilom, ki odpira sef podjetja. Če pravice do
opravila, ki smo ga spremenili, uporabnikom ne bi odstranili, bi imeli vsi, ki so imeli vstop
do podjetja, tudi vstop do sefa.
4. Mikrokrmilniški strežnik opravil
- 45 -
Slika 4.16: Sprememba, odstranitev in dodajanje opravila.
Slika 4.17: Izguba pravice do opravila pri spremembi opravila.
5 .Zaključek
- 46 -
5. Zaključek
Cilj diplomske naloge je bil izdelati mikrokrmilniški strežnik opravil, ki se bodo krmilila iz
mobilnega telefona ali dlančnika. Za njuno povezavo je bil izbran Bluetooth standard.
Vsi izbrani gradniki so zadoščali zahtevam, zastavljenim na začetku izdelave diplomske
naloge. Sistem deluje in je bil testiran ob uporabi samo enega uporabnika hkrati.
Atmelov mikrokrmilnik skupaj s programom, napisanim v Bascomu, se je izkazal kot
zanesljiv in nezahteven za uporabo. Programiranje mikrokrmilnika v vezju nam je prihranilo
veliko časa, saj mikrokrmilnika ni bilo potrebno vzeti iz vezja za vsako programiranje.
Uporaba Bluetooth tehnologije v projektih pri nas še ni tako razširjena, zato je bilo Blu2i
modul težje dobiti kot mikrokrmilnik. Zaradi svoje majhnosti nam je spajkanje Blu2i
konektorja predstavljalo velik izziv, ki smo ga uspešno premostili. Po začetnih nevšečnostih
z nabavo in montažo se je Blu2i modul odlično izkazal. Motilo nas je le pomanjkanje
dokumentacije. Ugotovili smo, da se modul od svojega predhodnika razlikuje samo po
zunanjih dimenzijah, zato smo uporabili kar dokumentacijo TDK Blu2i modula3. S samim
delovanje modula nismo imeli težav.
Pri izbiri pomnilnika smo se sprva odločili za Atmelov 388 serijski EEPROM. Prednost
Atmelovega pomnilnika pred Timekeeperjevim SRAM je njegova cenenost in majhnost.
Shranjevanje na Atmelov pomnilnik bi bilo precej enostavnejše, saj so v Bascomu zanj že
napisane funkcije. Za Timkepeer SRAM smo se odločili zaradi vgrajene ure, ki bi bila pri
nadaljnjem razvoju modula nepogrešljiva. Velikost pomnilnika v Timkeeper SRAM je
zadostovala za naš projekt, saj smo zasedli samo 25% pomnilnika.
Mobilni telefon bi bil zaradi svoje razširjenosti primernejši za nalogo saj imamo mobilni
telefon že skoraj vsi. Toda programi za programiranje mobilnih telefonov so v večini
plačljivi, zato smo se odločili za dlančnik z operacijskim sistemom Pocket PC 2003.
Program EMbedded Visual C++ ter potrebne gonilnike smo brezplačno dobili na
Microsoftovi spletni strani.
Ker smo imeli pri projektu na voljo samo en dlančnik, bi bilo v nadaljnjem razvoju projekta
potrebno testirat, kako se MSO obnaša ob istočasni oddaji zahtevkov po spremembi opravila
3 TDK-jev modul Blu2i je prevzel in ga sedaj trži ter razvija Ezurio.
5. Zaključek
- 47 -
več uporabnikov. V tem primeru bi MSO sprejel prvega uporabnika, ki se prijavi v sistem,
ostali pa bi morali počakati, da le ta konča. Podobno deluje sistem z magnetnimi karticami,
ko le en uporabnik lahko potegne kartico skozi čitalnik.
Za celovitost MSO bi bilo potrebno beležiti prijave v sistem. Dnevnik prijav, bi nam dal
popoln pregled nad uporabo sistema. Tako bi beležili vse vstope v sistem, opravila in
morebitne poskuse zlorabe. V dnevnik bi se beležil tudi čas. S tem bi dobili popoln
kronološki pregled uporabe sistema. Z uporabo dnevnika, bi lahko še izboljšali varnost
sistema. Tako bi lahko zaklenili uporabniško ime, ko bi se uporabnik trikrat zmotil pri geslu.
Uporabniško ime bi bilo zaklenjeno, dokler ga administrator ne bi odklenil.
Lahko bi se beležile tudi ure prihodov in odhodov. Tako bi beležili prisotnost na delovnem
mestu.
Lahko bi rekli, da MSO opravil predstavlja nekakšno osnovo za izdelavo inteligentnih
instalacij4. Tako bi nam sistem poleg vklopov luči na našo zahtevo, lahko prižigal naključno.
S prižiganjem luči bi dajali vtis,da smo doma, kljub naši odsotnosti (zaščita pred vlomilci).
Področje inteligentnih instalacij, kamor lahko uvrstimo MSO, se je začelo razvijati šele pred
nekaj leti. S tem mislimo hišne inteligenčne instalacije v privatnih hišah, pisarnah, hotelih ali
kongresnih centrih. Tehnologija postaja cenovno dostopna, zato lahko v naslednjih letih
pričakujemo poplavo izdelkov, podobnih MSO.
4 Instalacije, ki so centralno krmiljenje in niso omejene samo na en tip instalacij. Tako z eno enoto lahko
krmilimo električne porabnike, ogrevalne/hladilne sisteme, alarmne sisteme, …
Dodatek A
- 49 -
6. Dodatek A
Program mikrokrmilnika $regfile = "m32def.dat" $crystal = 16000000 '$sim Declare Sub Shrani Declare Sub Bericas Declare Function Beri(dolzina As Byte , Naslovb As Word)as String Config Pinb.0 = Output Config Pinb.1 = Output Config Pind.7 = Output Config Pind.5 = Output Config Pind.4 = Output Config Pind.3 = Output Config Pinc.0 = Output Config Pinc.1 = Output Config Pinc.2 = Output Config Pinc.3 = Output Config Pinc.4 = Output Config Pinc.5 = Output Config Pinc.6 = Output Config Pinc.7 = Output Set Portd.4 Set Portd.3 Dim Naslov As Word Dim Nas As Word Dim Niz As String * 35 Dim Opravila As String * 11 Dim Izrama As String * 11 Dim Poslji As String * 100 Dim Posljio As String * 20 Dim Stanje As String * 10 Dim D As Byte Dim Vrednost As Byte Dim Naslovs As Byte Dim Naslovz As Byte Dim Crka As String * 1 Dim I As Byte Dim J As Byte Dim Dol As Byte Dim Prebrano As Byte , Vrednostp As Byte Dim Inic(8) As String * 2 Dim Scas(8) As String * 2 Dim Inic1 As String * 1 Dim Inic2 As String * 1 Dim Cas As Byte Dim T As Bit Dim K As Word Dim R As Byte Dim Uporabnik As String * 8 Dim Geslo As String * 8 Dim E As Byte Dim Dan As Byte Dim Od As Byte Dim Doo As Byte Dim Ura As Byte K = 1
Dodatek A
- 50 -
$baud = 9600 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2 Config Lcd = 16 * 2 Cls Config Serialin = Buffered , Size = 102 Config Serialout = Buffered , Size = 110 Enable Interrupts Inic1 = " " Wait 1 Do
Inic1 = Inkey() If Inic1 = "$" Then Inic1 = Inkey() If Inic1 = "$" Then 'Waitms 10 Print "" Print "OK"
'************************** Nastavimo uro************************** For I = 1 To 7 Step 1 Inic1 = Inkey() Inic2 = Inkey() If Inic2 = ":" Then Inic(i) = Inic1 Else 'Waitms 10 Inic(i) = Inic1 + Inic2 'Waitms 10 Inic1 = Inkey() End If Next I Inic1 = Inkey() Inic2 = Inkey() Inic(7) = Inic1 + Inic2 T = 1 Niz = "!" Naslov = 8184 ' ne spreminjaj Vrednost = 128 Gosub Shrani For J = 1 To 7 Step 1 Niz = "!" Naslov = 8184 + J Cas = Val(inic(j))
Dodatek A
- 51 -
Vrednost = Makebcd(cas) Gosub Shrani Next J Niz = "!" Naslov = 8184 'ne spreminjaj Vrednost = 0 Gosub Shrani T = 0 Do Inic1 = Inkey() Loop Until Inic1 <> " " '********************************------------------------------********************** Elseif Inic1 = "+" Then Print "" Print "OK" '*******************************Vpišemo opravilo***************************** Opravila = "" For I = 1 To 8 Step 1 Inic1 = Inkey() Opravila = Opravila + Inic1 Next I Niz = Opravila Naslov = 90 Gosub Shrani Inic1 = Inkey() Naslov = 0 J = 1 Niz = "" While J <= 8 Crka = Mid(opravila , J , 1) If Crka = "1" Then '********************* zbrišemo opravila pri uporabnikih************************** R = 0 While R < 25 Nas = R * 35 Nas = Nas + 21 Nas = Nas + J Nas = Nas + 100 Niz = "0" Naslov = Nas Gosub Shrani Incr R Wend '*************************************************************************** Niz = " " Naslov = J * 10 Gosub Shrani
Dodatek A
- 52 -
Niz = "" Do Inic1 = Inkey() If Inic1 = "+" Then Naslov = J * 10 Gosub Shrani Goto Novo Else Niz = Niz + Inic1 End If Loop Else Do Inic1 = Inkey() If Inic1 = "+" Then Goto Novo End If Loop End If Novo: Incr J Wend '****************************------------------***************************** Elseif Inic1 = "*" Then '****************************Dobimo opravila******************************** D = 8 Poslji = "" For J = 1 To 8 Step 1 Naslov = J * 10 Izrama = Beri(d , Naslov ) Poslji = Poslji + Izrama Next J Print "" Print Poslji '*************************************************************************** Elseif Inic1 = "%" Then Print "" Print "OK" '****************************Vpišemo uporabnike ***************************** Nas = 100 J = 0 Izrama = "!" D = 1
Dodatek A
- 53 -
Naslov = Nas While Izrama <> "%" Izrama = Beri(d , Naslov ) Naslov = Naslov + 34 Wend J = 1 Nas = Naslov - 35 Naslov = Nas + 1 Izrama = Beri(d , Naslov ) If Izrama = "%" Then Naslov = Nas + 35 Niz = "%%" Gosub Shrani End If While J <= 6 If J = 1 Then Naslov = Nas Niz = " " Gosub Shrani Naslov = Nas Elseif J = 2 Then Naslov = Nas + 10 Niz = " " Gosub Shrani Naslov = Nas + 10 Elseif J = 3 Then Naslov = Nas + 20 Niz = " " Gosub Shrani Naslov = Nas + 20 Elseif J = 4 Then Naslov = Nas + 22 Niz = " " Gosub Shrani Naslov = Nas + 22 Elseif J = 5 Then Naslov = Nas + 30 Niz = " " Gosub Shrani Naslov = Nas + 30 Elseif J = 6 Then Naslov = Nas + 32 Niz = " " Gosub Shrani Naslov = Nas + 32 End If Niz = "" Do Inic1 = Inkey() If Inic1 = "%" Then Gosub Shrani Goto Novo1 Else Niz = Niz + Inic1 End If Loop Novo1:
Dodatek A
- 54 -
Incr J Wend '*******************************------------------***************************** Elseif Inic1 = "!" Then '***************************Pošljemo uporabnike****************************
Inic1 = Inkey() Prazno: If Inic1 = "1" Then Incr K End If If Inic1 = "0" Then Decr K End If If K > 25 Then K = 0 End If Zac: Poslji = "" J = K * 35 Nas = 100 + J D = 1 Naslov = Nas Izrama = Beri(d , Naslov ) If Izrama = "%" Then D = 1 Naslov = Nas + 1 Izrama = Beri(d , Naslov ) If Izrama = "%" Then K = 0 Goto Zac End If If K = 0 Then K = 26 End If Goto Prazno End If Poslji = "" D = 8 Naslov = Nas Izrama = Beri(d , Naslov ) Poslji = Poslji + Izrama D = 8 Naslov = Nas + 10 Izrama = Beri(d , Naslov ) Poslji = Poslji + Izrama D = 2 Naslov = Nas + 20 Izrama = Beri(d , Naslov )
Dodatek A
- 55 -
Poslji = Poslji + Izrama D = 8 Naslov = Nas + 22 Izrama = Beri(d , Naslov ) Poslji = Poslji + Izrama D = 2 Naslov = Nas + 30 Izrama = Beri(d , Naslov ) Poslji = Poslji + Izrama D = 2 Naslov = Nas + 32 Izrama = Beri(d , Naslov ) Poslji = Poslji + Izrama Print "" Print Poslji '******************************-------------------***************************** Elseif Inic1 = "-" Then Print "" Print "OK" '**************************Popravimo uporabnika*************************** J = K * 35 Nas = 100 + J J = 1 While J <= 6 If J = 1 Then Naslov = Nas Niz = " " Gosub Shrani Naslov = Nas Elseif J = 2 Then Naslov = Nas + 10 Niz = " " Gosub Shrani Naslov = Nas + 10 Elseif J = 3 Then Naslov = Nas + 20 Niz = " " Gosub Shrani Naslov = Nas + 20 Elseif J = 4 Then Naslov = Nas + 22 Niz = " " Gosub Shrani Naslov = Nas + 22 Elseif J = 5 Then Naslov = Nas + 30 Niz = " " Gosub Shrani Naslov = Nas + 30 Elseif J = 6 Then Naslov = Nas + 32 Niz = " " Gosub Shrani Naslov = Nas + 32 End If Niz = ""
Dodatek A
- 56 -
Do Inic1 = Inkey() If Inic1 = "%" Then Gosub Shrani Goto Novo2 Else Niz = Niz + Inic1 End If Loop Novo2: Incr J Wend '*************************************************************************** Elseif Inic1 = "/" Then Print "" Print "OK" '*****************************Zbrišemo uporabnika*************************** J = K * 35 Nas = 100 + J Naslov = Nas Niz = "% " Gosub Shrani '************************************************************************** Elseif Inic1 = "?" Then '*****************************Pošljemo uporabnike*************************** Nas = 8000 J = 1 While J <= 2 If J = 1 Then Naslov = Nas Niz = " " Gosub Shrani Naslov = Nas Elseif J = 2 Then Naslov = Nas + 10 Niz = " " Gosub Shrani Naslov = Nas + 10 End If Niz = "" Do Inic1 = Inkey() If Inic1 = "?" Then Gosub Shrani
Dodatek A
- 57 -
Goto Novo3 Else Niz = Niz + Inic1 End If Loop Novo3: Incr J Wend D = 8 Naslov = 8000 Uporabnik = Beri(d , Naslov ) Naslov = 8010 Geslo = Beri(d , Naslov ) D = 8 Naslov = 8020 Stanje = Beri(d , Naslov ) '*************************************************************************** E = 0 While E <= 25 J = E * 35 Nas = 100 + J D = 8 Naslov = Nas Izrama = Beri(d , Naslov ) If Izrama = Uporabnik Then D = 8 Naslov = Nas + 10 Izrama = Beri(d , Naslov ) If Izrama = Geslo Then D = 1 Naslov = Nas + 21 Izrama = Beri(d , Naslov ) If Izrama = "1" Then Dan = Val(scas(4)) If Dan > 1 And Dan < 6 Then Goto Po End If Ne: Print "" Print "000000000" Goto Konec Else Po: D = 2 Naslov = Nas + 30 Izrama = Beri(d , Naslov ) Od = Val(izrama) If Izrama = " " Then Goto Pos End If D = 2 Naslov = Nas + 32 Izrama = Beri(d , Naslov ) Doo = Val(izrama)
Dodatek A
- 58 -
Ura = Val(scas(3)) If Ura < Od Or Ura > Doo Then Goto Ne End If Pos: Posljio = Stanje D = 8 Naslov = Nas + 22 Izrama = Beri(d , Naslov ) Posljio = Posljio + Izrama D = 1 Naslov = Nas + 20 Izrama = Beri(d , Naslov ) Posljio = Posljio + Izrama End If D = 9 Poslji = Posljio For J = 1 To 8 Step 1 Naslov = J * 10 Izrama = Beri(d , Naslov ) Poslji = Poslji + Izrama Next J Print "" Print Poslji Goto Konec End If End If Incr E Wend Konec: '****************************************************************************** Elseif Inic1 = "=" Then '*******************************Nastavimo izhode *************************** Nas = 8000 J = 1 While J <= 3 If J = 1 Then Naslov = Nas Niz = " " Gosub Shrani Naslov = Nas Elseif J = 2 Then Naslov = Nas + 10 Niz = " " Gosub Shrani Naslov = Nas + 10 Elseif J = 3 Then Naslov = Nas + 20 Niz = " " Gosub Shrani Naslov = Nas + 20 End If
Dodatek A
- 59 -
Niz = "" Do Inic1 = Inkey() If Inic1 = "=" Then Gosub Shrani Goto Novo4 Else Niz = Niz + Inic1 End If Loop Novo4: Incr J Wend D = 8 Naslov = 8000 Uporabnik = Beri(d , Naslov ) Naslov = 8010 Geslo = Beri(d , Naslov ) '*** E = 0 While E <= 25 J = E * 35 Nas = 100 + J D = 8 Naslov = Nas Izrama = Beri(d , Naslov ) If Izrama = Uporabnik Then D = 8 Naslov = Nas + 10 Izrama = Beri(d , Naslov ) If Izrama = Geslo Then D = 1 Naslov = Nas + 21 Izrama = Beri(d , Naslov ) If Izrama = "1" Then Dan = Val(scas(4)) If Dan > 1 And Dan < 6 Then Goto Po1 End If Ne1: Print "" Print "ERROR" Goto Konec1 Else Po1: D = 2 Naslov = Nas + 30 Izrama = Beri(d , Naslov ) Od = Val(izrama) If Izrama = " " Then Goto Pos1
Dodatek A
- 60 -
End If D = 2 Naslov = Nas + 32 Izrama = Beri(d , Naslov ) Doo = Val(izrama) Ura = Val(scas(3)) If Ura < Od Or Ura > Doo Then Goto Ne1 End If Pos1: End If D = 1 Naslov = 8020 Izrama = Beri(d , Naslov ) If Izrama = "1" Then Set Portc.0 Else Reset Portc.0 End If D = 1 Naslov = 8021 Izrama = Beri(d , Naslov ) If Izrama = "1" Then Set Portc.1 Else Reset Portc.1 End If D = 1 Naslov = 8022 Izrama = Beri(d , Naslov ) If Izrama = "1" Then Set Portc.2 Else Reset Portc.2 End If D = 1 Naslov = 8023 Izrama = Beri(d , Naslov ) If Izrama = "1" Then Set Portc.3 Else Reset Portc.3 End If D = 1 Naslov = 8024 Izrama = Beri(d , Naslov ) If Izrama = "1" Then Set Portc.4 Else Reset Portc.4 End If D = 1 Naslov = 8025 Izrama = Beri(d , Naslov ) If Izrama = "1" Then
Dodatek A
- 61 -
Set Portc.5 Else Reset Portc.5 End If D = 1 Naslov = 8026 Izrama = Beri(d , Naslov ) If Izrama = "1" Then Set Portc.6 Else Reset Portc.6 End If D = 1 Naslov = 8027 Izrama = Beri(d , Naslov ) If Izrama = "1" Then Set Portc.7 Else Reset Portc.7 End If Print "" Print "OK" Goto Konec1 End If End If Incr E Wend Konec1: '*************************************************************************** Else Do Inic1 = Inkey() Loop Until Inic1 <> " " End If End If Cls Upperline Lcd Scas(3) Lcd ":" Lcd Scas(2) Lcd ":" Lcd Scas(1) Wait 1 Gosub Bericas 'Naslov = 300 'D = 4 'Izrama = Beri(d , Naslov ) D = 1 Naslov = 123 Izrama = Beri(d , Naslov )
Dodatek A
- 62 -
Loop End '*************************************************************************** Sub Shrani Naslovs = 0 Naslovz = 0 I = 1 Dol = Len(niz) 'Incr Dol While I <= Dol If T = 0 Then Crka = Mid(niz , I , 1) Vrednost = Asc(crka) Else 'Incr Dol I = Dol End If Config Porta = Output Naslovs = Naslov Rotate Naslov , Left , 8 Naslovz = Naslov Rotate Naslov , Right , 8 Porta = Naslovs Set Portb.0 Reset Portb.0 Porta = Naslovz Set Portb.1 Reset Portb.1 Porta = Vrednost Reset Portd.3 Set Portd.3 Incr I Incr Naslov Wend End Sub Function Beri(dolzina As Byte , Naslovb As Word ) As String Naslovs = 0 Naslovz = 0 Beri = "" I = 1 While I <= Dolzina Config Porta = Output Naslovs = Naslovb
Dodatek A
- 63 -
Rotate Naslovb , Left , 8 Naslovz = Naslovb Rotate Naslovb , Right , 8 Porta = Naslovs Set Portb.0 Reset Portb.0 Porta = Naslovz Set Portb.1 Reset Portb.1 Config Porta = Input Reset Portd.4 Vrednostp = Pina Set Portd.4 Prebrano = Vrednostp Incr Naslovb Incr I Crka = Chr(prebrano) Beri = Beri + Crka Wend End Function Sub Bericas '****sub shrani******* Naslovs = 0 Naslovz = 0 Naslov = 8184 Vrednost = 64 Config Porta = Output Naslovs = Naslov Rotate Naslov , Left , 8 Naslovz = Naslov Rotate Naslov , Right , 8 Porta = Naslovs Set Portb.0 Reset Portb.0 Porta = Naslovz Set Portb.1 Reset Portb.1 Porta = Vrednost Reset Portd.3 Set Portd.3 '***************************-------------------------**************************** J = 1 Naslov = 8185 While J <= 7
Dodatek A
- 64 -
D = 1 Naslovs = 0 Naslovz = 0 Config Porta = Output Naslovs = Naslov Rotate Naslov , Left , 8 Naslovz = Naslov Rotate Naslov , Right , 8 Porta = Naslovs Set Portb.0 Reset Portb.0 Porta = Naslovz Set Portb.1 Reset Portb.1 Config Porta = Input Reset Portd.4 Vrednostp = Pina Set Portd.4 Prebrano = Vrednostp Scas(j) = Bcd(prebrano) Incr Naslov Incr J Wend Naslov = 8184 'ne spreminjaj Vrednost = 0 '****sub shrani******* Naslovs = 0 Naslovz = 0 Config Porta = Output Naslovs = Naslov Rotate Naslov , Left , 8 Naslovz = Naslov Rotate Naslov , Right , 8 Porta = Naslovs Set Portb.0 Reset Portb.0 Porta = Naslovz Set Portb.1 Reset Portb.1 Porta = Vrednost Reset Portd.3 Set Portd.3 End Sub
Dodatek A
- 65 -
7. Literatura
[1] M.Miller, Discovering Bluetooth, Sybex Inc., 2001
[2] Introducing Bluetooth, Media Wiley; http://media.wiley.com/product_data/excerpt/75/07645488/0764548875.pdf
[3] P. Hall, The Bluetooth Name and History, 2002 http://www.developer.com/ws/proto/print.php/10948_1433291_4
[4] M. Bichan, D. Daly, Bluetooth;
http://www.mit.edu/~ddaly/projects/bluetooth/index.html
[5] Ultra energy;
http://www.ultra.si/uploads/files/Wireless_ATG.pdf
[6] Ezurio Blu2i;
http://www.ezurio.com
[7] A. Hočevar, Tehnologija Bluetooth za brezžično komunikacijo, diplomsko delo,
Ljubljana, 2005.
[8] J. Dejak, Pregled delovanja Bluetooth tehnologije ter kvalifikacijskega in tipskega
postopka odobritve naprave, magistrsko delo, Ljubljana 2004
[9] Odredba o radijskih frekvencah, za katere ni potrebno pridobiti odločbe o dodelitvi
radijskih frekvenc, Ur. 1. RS št.91/01
[10] Bluetooth SIG;
http://www.bluetooth.org
[11] Threats and Security Measures, Bundesamt für Sicherheit in der Informationstechnik 2003 [12] Blu2i AT Command Set, Ezurio 2005
[13] Atmel AVR datasheet, Atmel Corporation, 2005; http://atmel.com/dyn/resources/prod_documents/doc2503.pdf
[14] Timekeeprs SRAM, STMicroelectronics,2004; http://www.st.com/stonline/products/literature/ds/2412/m48t58y.pdf
[15] Pocket Loox720, Fujitsu-Siemens; http://vilpublic.fujitsu-
siemens.com/vil/pc/vil/datenblaetter/handheld/ds_pocket_loox_700.pdf
[16] B. Schneir, Applied cryptography, second edition, John Wiley & Soons, Inc., 1996
[17] USB (ang. Universal Serial Bus); www.usb.org/developers
7. Literatura
- 66 -
[18] eMbedded Visual C++ 4.0, Microsoft;
http://www.microsoft.com/downloads/details.aspx?FamilyID=1dacdb3d-50d1-41b2-
a107-fa75ae960856&displaylang=en
[19] Bascom AVR manual, MCS Electronics; http://www.mcselec.com/download/avr/bascom-avr%20manual%201.11.7.pdf