Programmering

En introduktion til Java Ring

Denne måneds kolonne er opdelt i to dele. Den første del, der er indeholdt i denne artikel, giver historien om Java Ring og teknologien, der blev brugt til at bygge den, samt en kort diskussion af iButton's egnethed til sikkerhedsapplikationer og andre applikationer. Anden del demonstrerer, hvordan man bruger Java Card 2.0 API med Java iButton og giver læseren et meget tidligt kig på, hvordan man designer et program, downloader det og derefter kommunikerer med et program, der kører på et Java-kort.

Det er i detaljerne

Java Ring er et ekstremt sikkert Java-drevet elektronisk token med et kontinuerligt kørende, uforanderligt realtidsur og robust emballage, der passer til mange applikationer. Juvelen i Java Ring er Java iButton - en million transistor, single-chip betroet mikrocomputer med en kraftfuld Java virtuel maskine (JVM), der er anbragt i en robust og sikker kasse af rustfrit stål. Designet til at være fuldt kompatibel med Java Card 2.0-standarden (for mere om Java Card 2.0, se sidste måneds Java-udvikler kolonne, "Forståelse af Java Card 2.0"), har processoren en 1024-bit modulær eksponentiator med høj hastighed til RSA-kryptering, stor RAM- og ROM-hukommelseskapacitet og et uforanderligt realtidsur. Det pakkede modul har kun en enkelt elektrisk kontakt og en jordretur, der overholder specifikationerne for Dallas Semiconductor 1-Wire-bus. Lithium-backed ikke-flygtig SRAM tilbyder høj læse / skrivehastighed og uovertruffen manipulationsmodstand gennem næsten øjeblikkelig rydning af al hukommelse, når temperering registreres, en funktion kendt som hurtig nulstilling. Dataintegritet og urfunktion opretholdes i mere end 10 år. Kapslingen i rustfrit stål med en diameter på 16 millimeter rummer de større chipstørrelser, der er nødvendige for op til 128 kilobyte højhastigheds ikke-flygtigt statisk RAM. Modulets lille og ekstremt robuste emballage gør det muligt at fastgøre det tilbehør, du vælger, for at matche individuelle livsstiler, såsom nøglering, tegnebog, ur, halskæde, armbånd eller fingerring.

Historisk baggrund

I sommeren 1989 producerede Dallas Semiconductor Corp. de første indkapslede hukommelsesenheder i rustfrit stål ved hjælp af Dallas Semiconductor 1-Wire kommunikationsprotokol. I 1990 var denne protokol blevet raffineret og anvendt i en række selvstændige hukommelsesenheder. Oprindeligt kaldet "berøringshukommelse" -enheder blev de senere omdøbt til "iButtons." Pakket som batterier har iButtons kun en enkelt aktiv elektrisk kontakt på den øverste overflade, hvor skallen i rustfrit stål fungerer som jord.

Data kan læses fra eller skrives til hukommelsen serielt gennem en enkel og billig RS232C seriel portadapter, som også leverer den krævede strøm til at udføre I / O. IButton-hukommelsen kan læses eller skrives med en øjeblikkelig kontakt til "Blue Dot" -receptoren fra adapteren. Når den ikke er tilsluttet den serielle portadapter, opretholdes hukommelsesdata i ikke-flygtig tilfældig adgangshukommelse (NVRAM) af en levetid på litiumenergi, der opretholder hukommelsesindholdet i mindst 10 år. I modsætning til elektrisk sletbar programmerbar skrivehukommelse (EEPROM) kan NVRAM iButton-hukommelsen slettes og omskrives så ofte som nødvendigt uden at blive slidt. Det kan også slettes eller omskrives ved de høje hastigheder, der er typiske for komplementær metaloxid halvlederhukommelse (CMOS) uden at kræve den tidskrævende programmering af EEPROM.

Siden introduktionen er iButton-hukommelsesenheder blevet implementeret i store mængder som robuste bærbare databærere, ofte under barske miljøforhold. Blandt de store anvendelser er som transportfartsselskaber i Istanbul, Tyrkiet; som vedligeholdelsesregistreringsbærere på siderne af Ryder-lastbiler; og som postkasseidentifikatorer inde i postrummene i US Postal Service's udendørs postkasser. De bæres som øreringe af køer i Canada for at holde vaccinationsoptegnelser, og de bruges af landbrugsarbejdere i mange områder som robuste erstatninger for tidskort.

IButton-produktlinjen og dens mange applikationer er beskrevet på Dallas Semiconductors iButton-websted, som er angivet i afsnittet Ressourcer. Hvert iButton-produkt er fremstillet med et unikt 8-byte serienummer og har en garanti for, at ingen to dele nogensinde vil have det samme nummer. Blandt de enkleste iButtons er hukommelsesenheder, der kan indeholde filer og underkataloger, og som kan læses og skrives som små disketter. Ud over disse er der iButtons med adgangskodebeskyttede filområder til sikkerhedsapplikationer, iButtons, der tæller antallet af gange, de er blevet omskrevet til sikring af økonomiske transaktioner, iButtons med temperatursensorer, iButtons med kontinuerligt kørende dato- / tidsure og endda iKnapper, der indeholder kraftige mikroprocessorer.

Postsikkerhedsenheden

I over 10 år har Dallas Semiconductor også designet, lavet og solgt en række meget sikre mikroprocessorer, der bruges i satellit-tv-afkodningsapparater, automatiske kasseautomater, terminaler på salgsstedet og andre lignende applikationer, der kræver kryptografisk sikkerhed og høj modstand mod angreb fra hackere. US Postal Service (USPS) Information Based Indicia Program Postal Security Device Specification, der er beregnet til at tillade udskrivning af gyldig amerikansk porto på enhver pc, gav den første mulighed for at kombinere to ekspertiseområder, når en sikker mikroprocessor blev designet til en iButton.

Det resulterende produkt, der hedder Crypto iButton, kombinerer høj processorydelse, højhastigheds kryptografiske primitiver og ekstraordinær beskyttelse mod fysiske og kryptografiske angreb. For eksempel kan det store heltal modulære eksponentieringsmotor udføre 1024-bit modulære eksponentieringer med en 1024-bit eksponent på betydeligt mindre end et sekund. Evnen til at udføre store heltal modulære eksponentieringer ved høj hastighed er central for RSA-kryptering, Diffie-Hellman-nøgleudveksling, Digital Signature Standard (FIPS 186) og mange andre moderne kryptografiske operationer.

En aftale mellem Dallas Semiconductor og RSA Data Security Inc. giver en betalt licens til alle, der bruger Crypto iButton til at udføre RSA-kryptering og digitale signaturer, så der ikke kræves yderligere licensering af RSA-krypteringsteknologi. Høj sikkerhed ydes af evnen til at slette indholdet af NVRAM ekstremt hurtigt. Denne funktion, hurtig nulstilling, er et krav til enheder med høj sikkerhed, der kan blive udsat for angreb fra hackere. Som et resultat af dens høje sikkerhed forventes Crypto iButton at vinde FIPS 140-1 sikkerhedscertificering af National Institute of Standards and Technology (NIST).

Et specielt operativsystem blev designet og lagret i ROM'en i Crypto iButton til understøttelse af kryptografi og generelle finansielle transaktioner - såsom dem, der kræves af Postal Service-programmet. Selvom det ikke var en virtuel Java-maskine, havde E-Commerce-firmwaren designet til denne applikation flere ligheder med Java, herunder et objektorienteret design og en bytecode-tolk til at fortolke og udføre Dallas Semiconductors specialdesignede E-Commerce Script Language. En kompilator blev også skrevet for at kompilere script-sprogets højtstående sprogrepræsentation til en bytecode-form, der kunne fortolkes af E-Commerce VM. Selvom E-Commerce-firmwaren primært var beregnet til USPS-applikationen, understøtter firmwaren en række generelle elektroniske handelsmodeller, der passer til mange forskellige applikationer. E-Commerce-firmwaren understøtter også kryptografiske protokoller til sikker informationsudveksling såsom Simple Key-Management for Internet Protocol (SKIP) udviklet af Sun Microsystems Inc. E-Commerce iButton og SDK til programmering af den er beskrevet detaljeret på Crypto iButton-hjemmesiden (se Ressourcer).

Java-forbindelsen

Med erfaring med at designe E-Commerce-operativsystemet og VM til Crypto iButton-hardwareplatformen kunne firmware-designteamet hos Dallas Semiconductor let sætte pris på fordelene ved et nyt operativsystem til Crypto iButton baseret på Java. Med en Java iButton kunne et stort antal eksisterende Java-programmører let lære at skrive applets, der kunne kompileres med de standardværktøjer, der er tilgængelige fra Sun Microsystems, indlæst i Java iButton og køre efter behov for at understøtte en lang række økonomiske applikationer. Java Card 2.0-specifikationen gav mulighed for at implementere en nyttig version af JVM- og runtime-miljøet med de begrænsede ressourcer til rådighed for en lille processor.

Crypto iButton giver også en fremragende hardwareplatform til udførelse af Java, fordi den bruger NVRAM til program- og datalagring. Med 6 kilobyte eksisterende NVRAM og potentialet til at udvide NVRAM-kapaciteten til så meget som 128 kilobyte i den eksisterende iButton-formfaktor, kan Crypto iButton udføre Java med en relativt stor Java-stak beliggende i NVRAM. Denne hukommelse fungerer som konventionel RAM med høj hastighed, når processoren udføres, og lithiumenergien bevarer maskinens komplette tilstand, mens Java-ringen er afbrudt fra læseren. Der er derfor ikke noget krav om at håndtere vedvarende objekter på en særlig måde - objekter vedvarer eller ikke afhængigt af deres omfang, så programmøren har fuld kontrol over objektets vedholdenhed. Som i standard Java indeholder Java iButton en affaldssamler, der samler objekter, der er uden for anvendelsesområdet, og genbruger hukommelsen til fremtidig brug. Applets kan indlæses og aflades fra Java iButton så ofte som nødvendigt. Alle de applets, der aktuelt er indlæst i en Java iButton, udføres effektivt med nul hastighed, når som helst iButton ikke er i kontakt med en Blue Dot-receptor.

Da Java Card 2.0-specifikationen blev foreslået, blev Dallas Semiconductor en JavaSoft-licenshaver. Aftalen opfordrede til udvikling af en Java Card 2.0-implementering og også til design af "plus portioner", der udnytter de unikke muligheder, som Crypto iButtons NVRAM giver, såsom evnen til at understøtte en ægte Java-stak og affaldssamling. Med tilføjelsen af ​​det kontinuerligt kørende lithium-drevne ur på dagen og den hurtige, modulære eksponentieringsmotor med stort heltal, giver Java iButton-implementeringen af ​​Java Card 2.0 med plusdele et spændende nyt funktionssæt til avanceret Java-kort applikationer.

At holde dine penge sikre

Crypto iButton-hardwareplatformen tilbyder et unikt sæt specielle funktioner, der udtrykkeligt er designet til at forhindre, at private nøgler og andre fortrolige oplysninger bliver tilgængelige for hackere. Figur 1 viser en detalje af den interne konstruktion af Crypto iButton. Siliciumformen, der indeholder processor-, ROM- og NVRAM-hukommelsen, er metallurgisk bundet til barrieresubstratet, gennem hvilket alle elektriske kontakter er dannet. Dette barrieresubstrat og de tredobbelte metalkonstruktionsteknikker, der anvendes i siliciumfabrikationen, nægter effektivt adgang til de data, der er lagret i NVRAM. Hvis der gøres et forsøg på at trænge igennem disse barrierer, slettes NVRAM-data straks. Denne konstruktionsteknik og brugen af ​​NVRAM til opbevaring af private nøgler og andre fortrolige data giver en meget højere grad af datasikkerhed end den, EEPROM-hukommelsen giver. Det faktum, at kommunikationsstien mellem Crypto iButton og omverdenen er begrænset til en enkelt datalinje, giver yderligere sikkerhed mod hardwareangreb ved at begrænse rækkevidden af ​​signaler, der er tilgængelige for hackeren.

Derudover drives selve processoren af ​​en ustabiliseret ringoscillator, der arbejder over et interval på 10 til 20 megahertz, så processorens tidsfrekvens ikke er konstant og ikke kan bestemmes ved hjælp af eksterne midler. Dette adskiller sig fra designet af alternative enheder, hvor processorens uretsignal indsprøjtes af læseren og derfor nøjagtigt bestemmes af værtsprocessoren. Ekstern kontrol af uret giver et værdifuldt værktøj til hackere, da de gentagne gange kan cykle en sådan processor til det samme punkt i dens udførelse ved blot at anvende det samme antal urcyklusser. Kontrol af uret giver også et middel til at inducere en beregningsfejl og derved opnå information, der i sidste ende kan afsløre hemmelige krypteringsnøgler. En 32-kilohertz krystaloscillator bruges i Java iButton til at betjene uret på dagen med en konstant og velkontrolleret frekvens, der er uafhængig af processorens ur.

Dallas Semiconductor har produceret mere end 20 millioner fysisk sikre minder og computere med hard-shell emballage optimeret til personlig besiddelse. Java iButton er derfor simpelthen den nyeste og mest komplekse efterkommer af en lang række produkter, der har vist sig at være meget succesrige på markedet. Med rustning i rustfrit stål tilbyder den den mest holdbare emballage til en klasse produkter, der sandsynligvis vil lide hårdt og misbrug som personlige ejendele. IButton-formfaktoren tillader fastgørelse til en lang række personlige tilbehør, der inkluderer ringe, urbånd, nøgleringe, tegnebøger, armbånd og halskæder, så brugeren kan vælge en variant, der passer til hans eller hendes livsstil.