Programmering

En introduksjon til Java Ring

Månedens kolonne er delt i to deler. Den første delen, nedfelt i denne artikkelen, gir historien til Java Ring og teknologien som ble brukt til å bygge den, samt en kort diskusjon om iButtons egnethet for sikkerhetsapplikasjoner og andre applikasjoner. Den andre delen demonstrerer hvordan du bruker Java Card 2.0 API med Java iButton og gir leseren en veldig tidlig titt på hvordan du kan designe et program, laste det ned og deretter kommunisere med et program som kjører på et Java-kort.

Det er i detaljene

Java Ring er et ekstremt sikkert Java-drevet elektronisk token med en kontinuerlig, uforanderlig sanntidsklokke og robust emballasje, som passer for mange applikasjoner. Juvelen til Java Ring er Java iButton - en million transistorer, pålitelig mikrocomputer med en chip, med en kraftig Java virtual machine (JVM) plassert i et robust og sikkert deksel i rustfritt stål. Designet for å være fullt kompatibel med Java Card 2.0-standarden (for mer informasjon om Java Card 2.0, se forrige måneds Java Developer kolonne, "Forstå Java Card 2.0") har prosessoren en høyhastighets 1024-biters modulær eksponentiator for RSA-kryptering, stor RAM- og ROM-minnekapasitet og en uforanderlig sanntidsklokke. Den pakkede modulen har bare en enkelt elektrisk kontakt og en jordretur, i samsvar med spesifikasjonene til Dallas Semiconductor 1-Wire-buss. Litiumstøttet, ikke-flyktig SRAM gir høy lese- / skrivehastighet og uovertruffen manipulasjonsmotstand gjennom nesten øyeblikkelig rydding av alt minne når temperering oppdages, en funksjon kjent som rask nullisering. Dataintegritet og klokkefunksjon opprettholdes i mer enn 10 år. Kapslingen med rustfritt stål med en diameter på 16 millimeter har plass til de større chipstørrelsene som trengs for opptil 128 kilobyte høyhastighets, ikke-flyktig statisk RAM. Den lille og ekstremt robuste emballasjen til modulen gjør at den kan festes til tilbehøret du ønsker, for å matche individuelle livsstiler, for eksempel nøkkelring, lommebok, klokke, halskjede, armbånd eller fingerring.

Historisk bakgrunn

Sommeren 1989 produserte Dallas Semiconductor Corp. de første innkapslede minneenhetene i rustfritt stål ved bruk av Dallas Semiconductor 1-Wire kommunikasjonsprotokoll. Innen 1990 hadde denne protokollen blitt raffinert og brukt i en rekke selvstendige minneenheter. Opprinnelig kalt "berøringsminne" -enheter, de ble senere omdøpt til "iButtons." Pakket som batterier, har iButtons bare en enkelt aktiv elektrisk kontakt på overflaten, med skallet i rustfritt stål som bakken.

Data kan leses fra eller skrives til minnet serielt gjennom en enkel og billig RS232C seriell portadapter, som også leverer strømmen som kreves for å utføre I / O. IButton-minnet kan leses eller skrives med en øyeblikkelig kontakt til "Blue Dot" -reseptoren som leveres av adapteren. Når den ikke er koblet til den serielle portadapteren, opprettholdes minnedata i NVRAM (non-volatile random access memory) av en levetid på litiumenergi som vil opprettholde minneinnholdet i minst 10 år. I motsetning til elektrisk slettbart programmerbart skrivebeskyttet minne (EEPROM), kan NVRAM iButton-minnet slettes og skrives om så ofte som nødvendig uten slitasje. Det kan også slettes eller skrives om ved de høye hastighetene som er typiske for komplementært metalloksyd halvlederhukommelse (CMOS), uten at det krever tidkrevende programmering av EEPROM.

Siden introduksjonen har iButton-minneenheter blitt distribuert i store mengder som robuste bærbare databærere, ofte under tøffe miljøforhold. Blant de store bruksområdene er som transportselskaper i Istanbul, Tyrkia; som vedlikeholdsrekordbærere på sidene av Ryder-lastebiler; og som postkasseidentifikatorer inne i postrommene til U.S. Postal Service utepostkasser. De bæres som øreringer av kyr i Canada for å holde vaksinasjonsjournaler, og de brukes av landbruksarbeidere i mange områder som robuste erstatninger for tidskort.

IButton-produktlinjen og dens mange applikasjoner er beskrevet på Dallas Semiconductors iButton-nettsted, som er oppført i seksjonen Ressurser. Hvert iButton-produkt er produsert med et unikt serienummer på 8 byte og har en garanti for at ingen deler vil ha det samme nummeret. Blant de enkleste iButtons er minneenheter som kan holde filer og underkataloger, og som kan leses og skrives som små disketter. I tillegg til disse er det iButtons med passordbeskyttede filområder for sikkerhetsapplikasjoner, iButtons som teller antall ganger de har blitt omskrevet for å sikre økonomiske transaksjoner, iButtons med temperatursensorer, iButtons med kontinuerlig løpende dato / klokkeslett, og til og med iButtons som inneholder kraftige mikroprosessorer.

Postsikkerhetsenheten

I over 10 år har Dallas Semiconductor også designet, laget og solgt en serie med svært sikre mikroprosessorer som brukes i satellitt-TV-avkodere, automatiske tellermaskiner, salgssteder og andre lignende applikasjoner som krever kryptografisk sikkerhet og høy motstand mot angrep fra hackere. US Postal Service (USPS) Informasjonsbasert Indicia Program Postal Security Device Specification, ment å tillate utskrift av gyldig amerikansk porto på hvilken som helst PC, ga den første muligheten til å kombinere to ekspertiseområder når en sikker mikroprosessor ble designet til en iButton.

Det resulterende produktet, kalt Crypto iButton, kombinerer høy prosessorytelse, høyhastighets kryptografiske primitiver og eksepsjonell beskyttelse mot fysisk og kryptografisk angrep. For eksempel kan det store heltallsmodulære eksponentieringsmotoren utføre 1024-biters modulære eksponentiasjoner med en 1024-biters eksponent på betydelig mindre enn et sekund. Evnen til å utføre store heltallsmodulære eksponentasjoner med høy hastighet er sentralt i RSA-kryptering, Diffie-Hellman-nøkkelutveksling, Digital Signature Standard (FIPS 186) og mange andre moderne kryptografiske operasjoner.

En avtale mellom Dallas Semiconductor og RSA Data Security Inc. gir en betalt lisens for alle som bruker Crypto iButton til å utføre RSA-kryptering og digitale signaturer, slik at det ikke kreves ytterligere lisensiering av RSA-krypteringsteknologien. Høy sikkerhet er gitt av muligheten til å slette innholdet i NVRAM ekstremt raskt. Denne funksjonen, rask nullstilling, er et krav for høysikkerhetsenheter som kan bli utsatt for angrep fra hackere. Som et resultat av høy sikkerhet forventes Crypto iButton å vinne FIPS 140-1 sikkerhetssertifisering av National Institute of Standards and Technology (NIST).

Et spesielt operativsystem ble designet og lagret i ROM-en til Crypto iButton for å støtte kryptografi og generelle finansielle transaksjoner - som de som kreves av Postal Service-programmet. Selv om det ikke er en virtuell Java-maskin, hadde E-Commerce-firmware designet for denne applikasjonen flere likhetspunkter med Java, inkludert en objektorientert design og en bytecode-tolk for å tolke og utføre Dallas Semiconductors spesialdesignede E-Commerce Script Language. En kompilator ble også skrevet for å kompilere språknivået på høyt nivå av skriptspråket til en bytekodeform som kunne tolkes av E-Commerce VM. Selv om E-Commerce firmware primært var ment for USPS-applikasjonen, støtter firmwaren en rekke generelle elektroniske handelsmodeller som passer for mange forskjellige applikasjoner. E-handels firmware støtter også kryptografiske protokoller for sikker informasjonsutveksling, for eksempel Simple Key-Management for Internet Protocol (SKIP) utviklet av Sun Microsystems Inc. E-Commerce iButton og SDK for programmering er beskrevet i detalj på Crypto iButton-hjemmesiden (se Ressurser).

Java-tilkoblingen

Med erfaring med å designe E-Commerce-operativsystemet og VM for Crypto iButton-maskinvareplattformen, kunne firmware-designteamet i Dallas Semiconductor lett sette pris på fordelene med et nytt operativsystem for Crypto iButton basert på Java. Med en Java iButton kan et stort antall eksisterende Java-programmerere enkelt lære å skrive appletter som kan kompileres med standardverktøyene som er tilgjengelige fra Sun Microsystems, lastet inn i Java iButton, og kjøre på forespørsel for å støtte et bredt utvalg av økonomiske applikasjoner. Java Card 2.0-spesifikasjonen ga muligheten til å implementere en nyttig versjon av JVM og kjøretidsmiljø med de begrensede ressursene som er tilgjengelige for en liten prosessor.

Crypto iButton gir også en utmerket maskinvareplattform for utføring av Java fordi den bruker NVRAM til program- og datalagring. Med 6 kilobyte eksisterende NVRAM og potensial for å utvide NVRAM-kapasiteten til så mye som 128 kilobyte i den eksisterende iButton-formfaktoren, kan Crypto iButton utføre Java med en relativt stor Java-stabel som ligger i NVRAM. Dette minnet fungerer som konvensjonelt høyhastighets RAM når prosessoren kjøres, og litiumenergien bevarer maskinens fullstendige tilstand mens Java Ring er koblet fra leseren. Det er derfor ikke noe krav om å håndtere vedvarende objekter på en spesiell måte - objekter vedvarer eller ikke, avhengig av omfanget, slik at programmereren har full kontroll over objektets utholdenhet. Som i vanlig Java inneholder Java iButton en søppelsamler som samler gjenstander som er utenfor omfanget og resirkulerer minnet for fremtidig bruk. Applets kan lastes og lastes ut fra Java iButton så ofte som nødvendig. Alle applettene som er lastet inn i en Java iButton, kjøres effektivt med null hastighet når som helst iButton ikke er i kontakt med en Blue Dot-reseptor.

Da Java Card 2.0-spesifikasjonen ble foreslått, ble Dallas Semiconductor en JavaSoft-lisensinnehaver. Avtalen krevde utvikling av en Java Card 2.0-implementering og også design av "pluss deler" som utnytter de unike mulighetene Crypto iButtons NVRAM gir, for eksempel muligheten til å støtte en ekte Java-stack og søppelinnsamling. Med tillegg av den kontinuerlig kjørende litiumdrevne klokken på dagen og den høyhastighets modulære eksponentieringsmotoren med stort heltall, lover Java iButton-implementeringen av Java Card 2.0 med pluss deler et spennende nytt funksjonssett for avansert Java-kort applikasjoner.

Å holde pengene dine trygge

Crypto iButton-maskinvareplattformen tilbyr et unikt sett med spesialfunksjoner som er uttrykkelig designet for å forhindre at private nøkler og annen konfidensiell informasjon blir tilgjengelig for hackere. Figur 1 viser en detalj av den interne konstruksjonen til Crypto iButton. Silisiumdysen som inneholder prosessoren, ROM og NVRAM-minne er metallurgisk bundet til barrieresubstratet som alle elektriske kontakter blir dannet gjennom. Dette barrieresubstratet og tredobbelte metallkonstruksjonsteknikker som brukes i silisiumfabrikasjonen, nekter effektivt tilgang til dataene som er lagret i NVRAM. Hvis det gjøres noe forsøk på å trenge gjennom disse barrierer, slettes NVRAM-data umiddelbart. Denne konstruksjonsteknikken og bruken av NVRAM for lagring av private nøkler og andre konfidensielle data gir en mye høyere grad av datasikkerhet enn den som EEPROM-minnet gir. Det faktum at kommunikasjonsveien mellom Crypto iButton og omverdenen er begrenset til en enkelt datalinje gir ekstra sikkerhet mot maskinvareangrep ved å begrense rekkevidden av signaler som er tilgjengelige for hackeren.

I tillegg drives selve prosessoren av en ustabilisert ringoscillator som opererer over et område på 10 til 20 megahertz, slik at klokkefrekvensen til prosessoren ikke er konstant og ikke kan bestemmes med eksterne midler. Dette skiller seg fra utformingen av alternative innretninger der prosessorens klokkesignal blir injisert av leseren og derfor nøyaktig bestemt av vertsprosessoren. Ekstern kontroll av klokken gir et verdifullt verktøy til hackere, siden de gjentatte ganger kan sykle en slik prosessor til samme punkt i utførelsen, ganske enkelt ved å bruke samme antall klokkesykluser. Kontroll av klokken gir også et middel til å indusere en beregningsfeil og derved oppnå informasjon som til slutt kan avsløre hemmelige krypteringsnøkler. En 32-kilohertz krystalloscillator brukes i Java iButton for å betjene tid på dagen med en konstant og velkontrollert frekvens som er uavhengig av prosessorens klokke.

Dallas Semiconductor har produsert mer enn 20 millioner fysisk sikre minner og datamaskiner med hard-shell emballasje optimalisert for personlig besittelse. Java iButton er derfor rett og slett den siste og mest komplekse etterkommer av en lang rekke produkter som har vist seg å være svært vellykkede på markedet. Med rustning i rustfritt stål tilbyr den den mest holdbare emballasjen for en klasse produkter som sannsynligvis vil lide tungt bruk og misbruk som personlige eiendeler. Formfaktoren iButton tillater feste til et bredt utvalg av personlig tilbehør som inkluderer ringer, urbånd, nøkkelhåndtak, lommebøker, armbånd og halskjeder, slik at brukeren kan velge en variant som passer hans eller hennes livsstil.

$config[zx-auto] not found$config[zx-overlay] not found