javaring seminars report
#1

[attachment=992][attachment=993]
ABSTRACT
Password is a common mean of implementing security. Dallas Semiconductor has developed a new Java-based, computerized ring that will automatically unlock doors and log on to computers. This java based technique overcomes the deficiencies of the secret password. A Java Ring is a finger ring that contains a small microprocessor which runs JVM and is preloaded with applets. The jewel of Java Ring is Java iButton, which is a microchip enclosed in a secure package. There are many technologies similar to iButton. But there is no match for this technology. A Java Ring goes beyond a traditional smart card by providing real memory, more power, and a capacity for dynamic programming. iButtons have an advantage over smart cards in term of durability and longevity. There are different kinds of iButtons of which cryptographic iButtons require a special mention. Information is transferred between iButton and PC by means of blue dot receptor. A layer of software called TMEX is needed to interface iButtons to PCs and produce the desired information in the desired format. They find much applications in authentication and auditing trails. With a significant market penetration of 20 billion iButtons, we can expect an exponential growth in this technology. These devices will surely revolutionize the way we look at futureINTRODUCTION
A Portable Wearable Computer :

It seems that everything we access today is under lock and key. Even the devices we use are protected by passwords. It can be frustrating trying to keep with all of the passwords and keys needed to access any door or computer program. Dallas Semiconductor is developing a new Java-based, computerized ring that will automatically unlock doors and log on to computers. This mobile computer can become even more secure. You can keep the iButton with you wherever you go by wearing it as a closely guarded accessory - a watch, a key chain, a wallet, a ring - something you have spend your entire life practising how not to lose. Here are a few reasons why you might want to wear the iButton in the accessory that best fits your life style :

It is a safe place to keep the private keys to conduct transactions.
It overcomes the deficiencies of the secret password.
You eliminate keystroke with a quick, intentional press of the Blue Dot.
You keep your computer at hand versus lugging your everywhere you roam
You become part of the network economy
This steel-bound credential stands up to the hard knocks of everyday wear, including sessions in the swimming pool or clothes washer
What is Java Ring
A Java Ring is a finger ring that contains a small microprocessor with built-in capabilities for the user, a sort of smart card that is wearable on a finger. Sun Microsystem's Java Ring was introduced at their JavaOne Conference in 1998 and, instead of a gemstone, contained an inexpensive microprocessor in a stainless-steel iButton running a Java virtual machine and preloaded with applets (little application programs). The rings were built by Dallas Semiconductor.
Workstations at the conference had "ring readers" installed on them that downloaded information about the user from the conference registration system. This information was then used to enable a number of personalized services. For example, a robotic machine made coffee according to user preferences, which it downloaded when they snapped the ring into another "ring reader."
Although Java Rings aren't widely used yet, such rings or similar devices could have a number of real-world applications, such as starting your car and having all your vehicle's components (such as the seat, mirrors, and radio selections) automatically adjust to your preferences.
The Java Ring is an extremely secure Java-powered electronic token with a continuously running, unalterable real-time clock and rugged packaging, suitable for many applications. The jewel of the Java Ring is the Java iButton -- a one-million transistor, single chip trusted microcomputer with a powerful Java Virtual Machine (JVM) housed in a rugged and secure stainless-steel case.
The Java Ring is a stainless-steel ring, 16-millimeters (0.6 inches) in diameter, that houses a 1-million-transistor processor, called an iButton. The ring has 134 KB of RAM, 32 KB of ROM, a real-time clock and a Java virtual machine, which is a piece of software that recognizes the Java language and translates it for the user's computer system.
The Ring, first introduced at JavaOne Conference, has been tested at Celebration School, an innovative K-12 school just outside Orlando, FL. The rings given to students are programmed with Java applets that communicate with host applications on networked systems. Applets are small applications that are designed to be run within another application. The Java Ring is snapped into a reader, called a Blue Dot receptor, to allow communication between a host system and the Java Ring.
Designed to be fully compatible with the Java Card 2.0 standard the processor features a high-speed 1024-bit modular exponentiator fro RSA encryption, large RAM and ROM memory capacity, and an unalterable real time clock. The packaged module has only a single electric contact and a ground return, conforming to the specifications of the Dallas Semiconductor 1-Wire bus. Lithium-backed non-volatile SRAM offers high read/write speed and unparallel tamper resistance through near-instantaneous clearing of all memory when tampering is detected, a feature known as rapid zeroization. Data integrity and clock function are maintained for more than 10 years. The 16-millimeter diameter stainless steel enclosure accomodates the larger chip sizes needed for up to 128 kilobytes of high-speed nonvolatile static RAM. The small and extremely rugged packaging of the module allows it to attach to the accessory of your choice to match individual lifestyles, such as key fob, wallet, watch, necklace, bracelet, or finger ring!!!!!
HISTORICAL BACKGROUND
In the summer of 1989, Dallas Semiconductor Corp. produced the first stainless-steel-encapsulated memory devices utilising the Dallas Semiconductor 1-Wire communication protocol. By 1990, this protocol had been refined and employed in a variety of self contained memory devices. Originally called touch memory devices, they were later renamed iButtons. Packaged like batteries, iButtons have only a single electrical contact on the top surface, with the stainless steel shell serving as ground. The now famous Java Rings made their appearance at the conference (March 24-27), issued to attendees when they picked up their materials at registration. With one of these rings a user could communicate with the computers at the Hackers' Lab, help build a large fractal image at the show, or even get a cup of his or her favorite coffee.
Built by Dallas Semiconductor, the durable, wearable Java Ring is practically indestructible but not heavy or clumsy. The jewel of the ring is a relatively inexpensive device called an iButton, which contains a processor that runs a Java Virtual Machine.

At the conference, the Java Rings were preloaded with applets that could communicate with corresponding host applications on various networked systems installed at the show.

The first time an attendee snapped the ring's iButton into a ring reader attached to a workstation, an applet on the ring communicated with the host application on the system. The applet in turn downloaded the user's personal information from the conference registration system and allowed the user to select their preferred type of coffee (a process they called "personalizing" the ring). From there, the user could walk over to a "coffee factory," snap the ring into another reader, and the robotic coffee machine would make the brew based on the user's preference stored in the ring.
Data can be read from or written to the memory serially through a simple and inexpensive RS232C serial port adapter, which also supplies the power required to perform the I/O. The iButton memory can be read or written with a momentary contact to the "Blue Dot" receptor provided by the adapter. When not connected to the serial port adapter, memory data is maintained in non-volatile random access memory (NVRAM) by a lifetime lithium energy supply that will maintain the memory content for at least 10 years. Unlike electrically erasable programmable read-only memory (EEPROM), the NVRAM iButton memory can be erased and rewritten as often as necessary without wearing out. It can also be erased or rewritten at the high speeds typical of complementary metal oxide semiconductor (CMOS) memory, without requiring the time-consuming programming of EEPROM.
For those who attended the 1998 JavaOne Developer Conference at the Moscone Center in San Francisco last spring, the Java Ring was arguably the jewel in the crown of the four-day gathering. No other facility garnered quite such excitement, enthusiasm, and overall industry buzz. There were simply no bigger lines to be had than those to obtain the rings, to "personalize" them, and then to play the ring-based fractal game and enjoy a ring-driven respite of custom brewed coffee.

i-BUTTONS
An iButton is a microchip similar to those used in a smart card but housed in a round stainless steel button of 17.35mm x 3.1mm - 5.89mm in size (depending on the function). The iButton was invented and is still manufactured exclusively by Dallas Semiconductor mainly for applications in harsh and demanding environments.
A Java Ring--and any related device that houses an iButton with a Java Virtual Machine--goes beyond a traditional smart card by providing real memory, more power, and a capacity for dynamic programming. On top of these features, the ring provides a rugged environment, wear-tested for 10-year durability. You can drop it on the floor, step on it, forget to take it off while swimming and the data remains safe inside. Today iButtons are primarily used for authentication and auditing types of applications. Since they can store data, have a clock for time-stamping, and support for encryption and authentication, they are ideal for audit trails.
The Crypto iButton ensures both parties involved in a secure information exchange are truly authorized to communicate by rendering messages into unbreakable digital codes using its high-speed math accelerator. The Crypto iButton addresses both components of secure communication, authentication and safe transmission, making it ideal for Internet commerce and/or banking transactions. Like a smart card, an iButton does not have an internal power source. It requires connection to a reader (known as a Blue Dot Receptor) in order to be supplied with power and to receive input and send output. Unlike some smart cards, there are currently no contactless iButtons: they require physical contact with a reader to function.

Every iButton product is manufactured with a unique 8-byte serial number and carries a guarantee that no two parts will ever have the same number. Among the simplest iButtons are memory devices that can hold files and subdirectories and can be read and written like small floppy disks. In addition to these, there are iButtons with password-protected file areas for security applications, iButtons that count the number of times they have been rewritten for securing financial transactions, iButtons with temperature sensors (for food storage and transport), iButtons with continuously running date/time clocks, and even iButtons containing powerful microprocessors. There are iButtons that have an electronic ID (for physical access to buildings); and store e-cash (for purchases both in stores and via the web).
iButtons have an advantage over conventional smart cards in term of durability and longevity. The stainless steel casing gives iButton a far greater ability to survive in a range of temperatures -- all versions are functional from -40 C to +70 C -- and in a much harsher range of environments (such as exposure to salt water and long term exposure to physical impacts) than the plastic smart card. For e-commerce and personal ID usage, iButtons can be mounted on a range of personal accessories: watch, ring, key chain, or dog tag.

As of early 2000, Dallas Semiconductor had shipped over 27 million iButtons around the world. This figure is below that of smart cards because of a larger installed user base for smart cards, the comparatively high cost of iButtons, the fact that iButtons have a long life, and because Dallas Semiconductor has not licensed the patents for external manufacture. Thus far, the major successes for iButton have been in Turkey as an e-purse for the mass transit system; in Argentina and Brazil for parking meters; and in the United States as Blue Mailbox attachments that improve postal efficiency.
TYPES OF I BUTTONS
There are multiple different iButtons available. Each starts with a guaranteed-unique registration number engraved in the silicon. From there, iButtons branch out into three different types:
1. Memory iButton : 64K and beyond of computer memory stores typed text or digitized photos. Information can be updated as often as needed with a simple, momentary contact. Some memory iButtons contain a real-time clock to track the number of hours a system is turned on for maintenance and warranty purposes (DS1994); a temperature sensor for applications where spoilage is a concern, such as food transport (DS1921); or a transaction counter that allows the iButton to be used as a small change purse (DS1963).
2. Java-powered cryptographic iButton : A microprocessor and high-speed arithmetic accelerator generate the large numbers needed to encrypt and decrypt information. The Java-powered iButton adds its complete cryptographic circuitry to a Java Virtual Machine (VM) that is Java Card„¢ 2.0-compliant, enabling the world's large pool of Java programmers to tap into a powerful development tools to get an application up and running quickly. The Java-powered iButton's greatest promise lies in its capacity to interact with Internet applications to support strong remote authentication and remotely authorized financial transactions. In practical terms, that means you can jump into the age of electronic commerce with both feet: your messages are sent over the Internet scrambled and can only be unscrambled at the other end by someone with an authorized iButton. By establishing a means to transmit and protect user identity, the iButton becomes the user's digital credential.
3. Thermochron iButton : This iButton tracks time and temperature, keys to the freshness of many products. The Thermochron integrates a thermometer, a clock/calendar, a thermal history log, and 512 bytes of additional memory to store a shipping manifest.
Memory iButtons :
In a sense, all iButtons are memory buttons, as there are no iButtons without memory the concept of a mobile memory chip that communicates by touch remains fundamental to iButtons. As the iButton family has grown, however, memory iButtons are now distinguished from iButton chips with extended capabilities such as a microprocessor, clock and/or environmental sensors.
All memory iButtons have these characteristics:
Unique, factory-lasered serial number;
Low-cost, low-power 1-Wire interface
Ability to operate as mobile databases, in either standalone or network application designs
Memory iButtons can be divided into the following different categories:
1.The Address Only iButton - is our DS1990A and is our basis model. It contains 64bits of Read Only Memory (ROM) and is used in many different applications such as:
Access Control as a Key
Route Compliance as a Location Identifier
Inspection and Maintenance for Equipment Identification
2.NV RAM iButtons - are read/write devices and are available in sizes from 1K bits to 64K bits. They are used for applications that need data updated on a frequent basis. The memory is capable of being rewritten millions of times. In addition, the onboard lithium energy source is ideally suited for the typical iButton environment where electrical contact can be intermittent. Memory updates, once initiated, will always be completed because the power to finish the transfer is supplied by the lithium cell, not the reader/writer.
3.EPROM iButtons - are Add Only devices (write once read many). They are available in sizes from 1K bits to 64K bits and allow you to write to the button until the memory is full. The data can not be erased after it has been written to the button. EPROM iButtons are useful in application where the data needs to be permanent. They also give you the ability to write blocks of data to the device incrementally to build and store a record of activity over a period of time.
4.Uniqueware iButtons - are EPROM devices that are only available preprogrammed with customer-specific and write-protected data. Uniqueware data fills at least one but no more than the first four pages of a device, depending on the length of the customer-supplied data.
5.EEPROM iButtons - are read/write devices and are available in sizes from 256 bits to 4K bits. They are used for applications that need data updated on a less frequent basis than NVRAM type applications, but are usable for over 10 years. EEPROM iButtons are also less expensive than NVRAM devices, but have a lower write cycle limit

Java-powered Cryptographic iButtons :
The Crypto iButton, combines high processor performance, high-speed cryptographic primitives, and exceptional protection against physical and cryptographic attack. For example, the large integer modular exponentiation engine can perform 1024-bit modular exponentiations with a 1024-bit exponent in significantly less than a second. The ability to perform large integer modular exponentiations at high speed is central to RSA encryption, Diffie-Hellman key exchange, Digital Signature Standard (FIPS 186), and many other modern cryptographic operations.
The U.S. Postal Service's (USPS) Information Based Indicia Program Postal Security Device Specification, intended to permit printing of valid U.S. postage on any PC, provided the first opportunity to combine two areas of expertise when a secure microprocessor was designed into an iButton, resulting in crypto iButton.

A special operating system was designed and stored in the ROM of the Crypto iButton to support cryptography and general-purpose financial transactions -- such as those required by the Postal Service program. While not a Java virtual machine, the E-Commerce firmware designed for this application had several points of similarity with Java, including an object-oriented design and a bytecode interpreter to interpret and execute Dallas Semiconductor's custom-designed E-Commerce Script Language. A compiler was also written to compile the high-level language representation of the Script Language to a bytecode form that could be interpreted by the E-Commerce VM.
The Crypto iButton also provides an excellent hardware platform for executing Java because it utilizes NVRAM for program and data storage. With 6 kilobytes of existing NVRAM and the potential to expand the NVRAM capacity to as much as 128 kilobytes in the existing iButton form factor, the Crypto iButton can execute Java with a relatively large Java stack situated in NVRAM. This memory acts as conventional high-speed RAM when the processor is executing, and the lithium energy preserves the complete state of the machine while the Java Ring is disconnected from the reader. There is therefore no requirement to deal with persistent objects in a special way -- objects persist or not depending on their scope so the programmer has complete control over object persistence. As in standard Java, the Java iButton contains a garbage collector that collects any objects that are out of scope and recycles the memory for future use. Applets can be loaded and unloaded from the Java iButton as often as needed. All the applets currently loaded in a Java iButton are effectively executing at zero speed any time the iButton is not in contact with a Blue Dot receptor.

The Crypto iButton hardware platform offers a unique set of special features expressly designed to prevent private keys and other confidential information from becoming available to hackers. Figure shows a detail of the internal construction of the Crypto iButton. The silicon die containing the processor, ROM, and NVRAM memory is metallurgically bonded to the barrier substrate through which all electrical contacts are made. This barrier substrate and the triple-layer metal construction techniques employed in the silicon fabrication effectively deny access to the data stored in the NVRAM. If any attempt is made to penetrate these barriers, the NVRAM data is immediately erased. This construction technique and the use of NVRAM for the storage of private keys and other confidential data provides a much higher degree of data security than that afforded by EEPROM memory. The fact that the communication path between the Crypto iButton and the outside world is limited to a single data line provides additional security against hardware attacks by limiting the range of signals accessible to the hacker.

Figure internal construction of cryptographic ibutton
In addition, the processor itself is driven by an unstabilized ring oscillator operating over a range of 10 to 20 megahertz, so that the clock frequency of the processor is not constant and cannot be determined by external means. This differs from the design of alternative devices in which the processor clock signal is injected by the reader and is therefore exactly determined by the host processor. External control of the clock provides a valuable tool to hackers, since they can repetitively cycle such a processor to the same point in its execution simply by applying the same number of clock cycles. Control of the clock also affords a means to induce a calculation error and thereby obtain information that can ultimately reveal secret encryption keys. A 32-kilohertz crystal oscillator is used in the Java iButton to operate the time-of-day clock at a constant and well-controlled frequency that is independent of the processor clock.

Thermochron iButtons :

A rugged, single-chip time and temperature logger, the iButton integrates a thermometer, real time clock and memory. Free development software displays and exports Internet-transmissible data formatted in both histogram and regular time-temp logging modes. The rugged Thermochron can attach to containers and travel with temperature-sensitive goods such as organic materials and chemicals. The Thermochron can stand-alone or network with audio/visual indicators, displays, hand-held or notebook computers.

BLUE DOT RECEPTOR
Information is transferred between your iButton and a PC with a momentary contact, at up to 142kbps. You simply touch your iButton to a Blue Dot receptor or other iButton probe, which is connected to a PC. The Blue Dot receptor is cabled to a 1-Wire adapter that is attached to the PCs serial or parallel port.

Fig. The blue dot receptor
The DS1402 Blue Dot receptor provides a convenient pipeline into the PC for iButton-to-PC communication. The receptor's cable connects to either a serial or parallel port, according to which adapter you choose. The receptor itself easily affixes to any accessible spot on the front of the PC. The user can elect a quick information transfer with a momentary touch of the iButton to the Blue Dot. Alternately, the iButton can be snapped into the Blue Dot and remain there, allowing hands-free operation.
Each receptor contains two Blue Dots to accommodate instances where multiple iButtons are required to complete a transaction. For example, a company's policy may require both an employee and a supervisor to authenticate access to sensitive information stored on a network server.
DS9092L Blue Dot Receptor with LED :
The DS9092L combines a Blue Dot receptor and an LED located in the middle of the data contact. Suited for applications in rugged environments, this receptor features a low-profile panel mount, vandal-resistant construction, and easy installation.
USB Port Adapter :
The DS9490R USB Port Adapter and DS1402D-DR8 Blue Dot Receptor connect to any standard Universal Serial Bus (USB) port. The DS9490R connects to the USB port and then the DS1402D-DR8 connects to the DS9490 through an RJ-11 connection.
The DS9490 USB Port Adapter comes in the following version:
DS9490R
USB port.Has internal 64-bit address. Communicates to all iButtons, can read but cannot write to DS198x EPROM iButtons. RJ11 out.
Parallel Port Adapter :

The DS1410E Parallel Port Adapter and DS1402D-DB8 Blue Dot Receptor combine to form an interface for the PC that consumes no resources. The parallel port signal lines pass through the DS1410E when iButton communication is not taking place. Peripherals (such as printers) can be reattached by first connecting the DS1410E to the PC parallel port, and then connecting the peripheral cable to the other end of the DS1410E.

Serial Port Adapter :
The DS9097U-09 Serial Port Adapter and DS1402D-DR8 Blue Dot receptor are an alternative interface combination. The DS9097U-09 attaches to the serial port in the same manner as the DS1410E attaches to the parallel port. The DS9097U-09 does not pass through the signal lines. Therefore, a serial port must be dedicated to perform iButton communication.
Other serial port adapters include:
DS9097 COM Port Adapter-RS232C converter, enables direct reading/writing of non-EPROM and reading of EPROM iButtons
DS9097E COM Port Adapter with EEPROM-enables reading/writing of EPROM-based iButtons, SRAM and other EEPROM-based devices
Other readers/probes :
We have two other probes available for communicating to iButtons through our adapters. The DS9092GT is a Handheld Touch Probe with tactile feedback. It can be connected to either the DS9490R USB port adapter or the DS9097U serial port adapters.
The DS1402-RP8 and DS1402-BP8 are Touch and Hold Probes that allow you to just touch a button or snap it in for hands free operation. The RP8 works with the serial port adapters and the BP8 works with the parallel port adapter. The DS1404 is a Touch and Hold Probe Cradle designed to hold either the RP8 or BP8 probe.

1-Wire Interface

By simply touching each of the two contacts we can communicate to any of the iButtons by using 1-Wire protocol. The 1-Wire interface has two communication speeds. Standard mode are at 16kbps and overdrive mode at 12kbps. 1-wire protocol is used for communication between PC and the blue dot receptor over the 1-wire Network. 1-Wire Network includes a system with a controlling software, wiring and connectors and iButtons.
Fig. The 1-wire interface

Fig. 1-Wire Network
1-wire protocol is used for communication between PC and the blue dot receptor over the 1-wire Network. 1-Wire Network includes a system with a controlling software, wiring and connectors and iButtons.
The Dallas Semiconductor 1-Wire bus is a simple signaling scheme that performs two-way communications between a single master and peripheral devices over a single connection. A powerful feature that all 1-Wire bus devices share is that each and every device, in a chip or an iButton, has a factory-lasered serial number that will never be repeated in any other device. That is to say, every device is unique. This allows any single device to be individually selected from among many that can be connected to the same bus wire. Because one, two, or even dozens of 1-Wire devices can share a single wire for communications, a binary searching algorithm is used to find each device in turn. Once each device serial number is known, any device can be uniquely selected for communication using that serial number to address it. The first part of any communication involves the bus master issuing a "reset" which synchronizes the entire bus. A slave device is then selected for subsequent communications. This can be done by selecting all slaves, selecting a specific slave (using the serial number of the device), or by discovering the next slave on the bus using a binary search algorithm. These commands are referred to collectively as "network" or ROM (Read-Only-Memory) commands. Once a specific device has been selected, all other devices drop out and ignore subsequent communications until the next reset is issued. Once a device is isolated for bus communication the master can issue device-specific commands to it, send data to it, or read data from it. Because each device type performs different functions and serves a different purpose, each has a unique protocol once it has been selected. Even though each device type may have different protocols and features, they all have the same selection process and follow the command flow as seen in Figure.

Fig. Typical 1-Wire Communication Flow
An integral part of the unique serial number in each slave is an 8-bit family code. This code is specific to the device model. Because each device model performs different functions, this code is used to select the protocol that will be used to control or interrogate it. Reset 1-Wire bus Select 1-Wire device(s) Perform a single device- specific operation.
The Address :
Each iButton has a unique and unalterable address that is laser etched onto its chip inside the can. The address can be used as a key or identifier for each iButton.

2700000095C33108

From these basics we have expanded the iButton product line into over 20 different products by adding different functionality to the basic button.Dallas Semiconductor's 1-Wire devices each have a 64-bit unique registration number in read-only-memory (ROM) that is used to address them individually by a 1-Wire master in a 1-Wire network. If the ROM numbers of the slave devices on the 1-Wire network are not known, then they can be discovered by using a search algorithm.

64-Bit Unique ROM 'Registration' Number :

MSB 64 ËœRegistration ËœROM Number LSB
8 bit CRC
MSB LSB 48-bit Serial Number
MSB LSB 8-bit Family Code
MSB LSB
The memory map for the 64-bit number occupies three sections each serving a slightly different purpose when read by a host processor. The first 8 bits identify the iButton's product family, information that the host requires to access different kinds of networked iButtons using the 1-Wire protocol. The middle 48 bits constitute the digitally unique serial number. The last 8 bits are CRC code that the host can use to verify error-free reading.
The iButton communicates with a processor using 1-Wire protocol through a hardware port interface. The port interface provides both the physical page link and handles the communication protocols that enable the processor to access iButton resources with simple commands.
Search Algorithm :
The search algorithm is a binary tree search where branches are followed until a device ROM number, or leaf, is found. Subsequent searches then take the other branch paths until all of the leaves present are discovered.

TMEX RUNTIME ENVIRONMENT (RTE)
A layer of software is required to interface iButtons to computers and produce the desired information in the desired format. For all iButtons, iButton-TMEX is a software platform on which to build applications. TMEX removes the tedious low-level programming of drivers and utilities.

The RTE installs the drivers and demo software for all iButtons and 1-Wire devices. TMEX's architecture follows the International Standards Organization (ISO) reference model of Open System Interconnection (OSI), a protocol with seven layers denoted as Physical, Link, Network, Transport, Session, Presentation, and Application.

The current release of TMEX RTE supports Microsoft 32-bit Windows. This includes Windows Me, 2000, 98, 95, NT 4.00, and NT 3.51.

iButton Viewer :

With the TMEX Windows installations you get the iButton Viewer, an application for exploring iButton features from your PC. Before using the Viewer, you need only connect a serial port kit (DS9097U + DS1402D-DR8) or a parallel port kit (DS1410E + DS1402D-DB8 ) to your PC. iButton Viewer automatically finds iButtons or 1-Wire chips on your system and displays their serial numbers with a description of relevant features and menu options. As the iButton family grows, iButton Viewer's capabilities will be expanded to include the new iButtons. The OneWireViewer supports a wider array of iButtons and 1-Wire devices.
JVM AND RESOURCES OF IBUTTON
The Java Virtual Machine :
The JVM used in Java Ring conforms to the Java Card 2.0 specification with additional capability for a superior Java operating environment Enhancements to the Java Card 2.0 spec include:
True 32-bit Java integers for straightforward computation
Automatic garbage collection for efficient reuse of memory space
Resizable commit buffer optimizes memory usage and allows for large atomic transactions
Add or delete applets in a secure manner to update applications after issuance
Large Java stack supports complex computation
Java-accessible True Time Clock time stamps transactions
Java-accessible unique 64-bit registration number supplements IP addresses to make the intermittent network of roaming iButtons globally addressable
Standard cryptographic classes include SHA-1 for secret key digital signatures (RSA and DES for R1.1)
Java-accessible random number generator seeds generation of cryptographic keys

The Computation Resources of the Java-powered iButton are :
¢ 0.6-micron CMOS process operates from supplies of 3V to 5V
¢ 800,000 transistors speed up the computationally intensive operations of public key cryptography
¢ High-speed processor core is self-clocked to prevent tampering with program execution
¢ 32kbyte ROM stores firmware for Java VM and operating system
¢ 6V SRAM writes in 100 nanoseconds to create a high performance operating environment for the Java Virtual Machine
¢ Math accelerator performs RSA encryption in less than one second using 1024-bit modulus and exponent
¢ Tamper-resistant True Time Clock used to time stamp transactions and impose expiration dates
¢ 1-Wire Net controller allows many iButtons to multi-drop on the same wire and communicate
¢ 1-Wire scratchpad buffer keeps each transaction with the iButton atomic even if the contact with a Blue Dot receptor is an intermittent hot connection

APPLICATIONS OF JAVA RING

Today iButtons are primarily used for authentication and auditing types of applications. Since they can store data, have a clock for time-stamping, and support for encryption and authentication, they are ideal for audit trails.

Tracking Snail Mail :
For example, the U.S. Post Office uses iButtons affixed to the inside door of every blue postal box standing on curbs across the country so it can track carrier, pick-up location, date, and time of mail retrieval.

Sturdy Data Trackers :
Since their introduction, iButtons have been deployed as rugged portable data carriers, often in harsh environmental conditions. They are worn as earrings by cows in Canada to hold vaccination records, and they are used by agricultural workers in many areas as sturdy substitutes for timecards.

Ryder Commercial Leasing & Services tracks millions of fuel transactions each year using a two-iButton system. One iButton stays on the side of a vehicle, digitally identifying it and its home base, and upon rental, stores the customer name and odometer reading as input keyed in from an attendant's hand-held touch probe. A second iButton attached to the fuel pump records the fuel transaction. At day's end all the information downloads into the shop's main computer.
THE JAVA RING EVENT
The primary elements of the Ring Event are:
¢ Personalization (adding your business card information to the ring)
¢ Playing the fractal game/checking business card Data on the ring
¢ Visiting the "Coffee Factory" for an automated cup of custom brewed java
Personalization

The personalization process was as simple as snapping the Java Ring into any nearby Blue Dot ring receptor . For your "first time," the client workstation asked you to enter your JavaOne Conference ID number and last name . With this information, a database record was then created, linking your particular ring to your conference enrollment data. If you'd already personalized your ring, the workstation detected that, mirroring your ring's business card data back to you, and then offering the chance to participate in the Conference.

The simple act of initially snapping the Java Ring into the Blue Dot receptor instantly enabled it as a wearable personal data repository -- demonstrating potentials as diverse as the storage of medical records, financial information, and even digital imagery. Once connected to the Blue Dot, a preloaded business card applet was selected on the ring -- to which your JavaOne Conference registration data was seamlessly downloaded and stored. The entire process involved a complex series of computational steps, and yet from the user perspective, personalization was literally "just a snap."

Fractal Game

After you'd personalized your Java Ring, your attention likely turned to the fractal game. Here, the ring was dynamically assigned the x,y coordinates of a randomly placed fractal "tile" (a 3x3 pixel area). The many tile coordinates were stored and allocated using a JavaSpaces data area. Once assigned a tile location, your preloaded, ring-based fractal applet computed the colors of each pixel, uploading the data to the server.The fractal game integrated concepts that are vital to demonstrating the power and the promise of Java technology. Not only was the ring itself generating the individual pixel colors of each person's fractal tile, but the other components of the facility comprised a multitiered, Enterprise-like application. The entire setup included a wearable, computational client (the Java Ring), client systems, and a back-end server. And within that hardware framework were found ring-based Java applets, servlets, JavaSpaces, JDBC, and an Oracle database.

The components of the fractal game simulated, on a prototypic level, principles inherent to automated work-flow, distributed computing, ultra-small computational devices, facilitated database access, and multiplatform hardware integration. And yet, once more, rising above all of that complexity, was the simple act of plugging in the Java Ring.

Coffee Factory
After one too many late-night coding sessions, or long afternoon technical seminars, a visit to the Java technology-powered coffee factory was often just what the doctor ordered. And once again, the ease of use and seeming simplicity of the area often belied the elegance and complexity behind the scenes.

Back when you first personalized your ring, you were asked to select one of eight possible bean-based brews. That selection was then stored within the Java Ring's business card applet. So in order to receive your automated cup of custom brewed java, once more all you had to do was plug your ring into the Blue Dot receptor!

The coffee machine itself, manufactured by Cyberonics, Inc., was entirely driven by Java technology -- from the moving parts, to the scheduling, to the tracking. But the facility went well beyond simple automated manufacturing. It also demonstrated key principles of cyber-cash, and agent-driven negotiation and manufacturing.

During the personalization of your Java Ring, you were assigned 999 "cyber-beans" with which to purchase cups-a-joe (the default price being 250 beans per cup). Once at the coffee factory, the Java client application would ask you how much you were willing to pay for a cup, and then whether you'd be willing to sell your place in line, and for how much. With that information, a virtual agent was set in place. Your agent would then negotiate with other agents in line, expediting your coffee purchase, both in terms of price and waiting time -- in effect, dynamically tailoring the manufacturing output to the highest bidder.

Perhaps this all seems much ado about nothing for a simple cup of coffee, but the principles go much deeper -- to the very heart of secure cyber-cash transacting, automated buying, selling, and bidding, and even to the futuristic possibilities of "negotiated manufacturing."
The iButton is ideal for any application where information needs to travel with a person or object. Affixed to a badge, key fob, watch, or ring, an iButton can grant its owner access to a building, a PC, a piece of equipment, or a vehicle. Attached to a work tote, it can measure a variety of processes to improve efficiency, such as manufacturing, delivery, and maintenance. Some versions of the iButton can be used to store cash for small transactions, such as transit systems, parking lots, and vending machines. The iButton can also be used as an electronic asset tag to store information needed to keep track of valuable capital equipment.

JAVA RING - THE TIDAL WAVE OF FUTURE

Cute trick or tidal wave of the future Just think of the possibilities. A Java Ring (and potentially any of several personal devices, such as a key chain or watch) contains a processor compatible with Java Card 2.0, a Java Virtual Machine, sizeable RAM and ROM memory capacity, and a real-time clock. Most importantly, the iButton supports multiple applets that can be loaded dynamically. Freed from the usual constraints of connectivity, this ring lets you roam the world and bring with you your personal preferences--your computing environment, your medical information, your choices of colors or coffee.

For example, imagine starting your car with your ring: the seats and mirrors adjust automatically, your favorite radio station begins to play, and when you pull out into the street, the car "knows" your driving habits. A Java Ring--and any related device that houses an iButton with a Java Virtual Machine--goes beyond a traditional smart card by providing real memory, more power, and a capacity for dynamic programming. On top of these features, the ring provides a rugged environment, wear-tested for 10-year durability. You can drop it on the floor, step on it, forget to take it off while swimming, and the "knuckletop" remains safe inside.
The show's over, and by now the Java Rings from the JavaOne conference have made their way home to all parts of the globe with their, uh, ringmasters. Currently these ringmasters may be a relatively select group, perhaps wearing the rings as tokens to get conversations started at parties, or as mementos of the 1998 show. But any day now, these wearable, durable little computers and their cousin devices may be brewing us coffee and driving us to work.

Now, with the close of the JavaOne Conference, a whole new generation of Java Ring developers have been set loose upon the world. Dallas Semiconductor, the manufacturer of the Java Card 2.0 iButton (the heart of the Java Ring), reports an incredible buzz out in the field. Their pre-Java-Card iButtons have already established a significant market penetration -- with 20 million buttons found worldwide. And now, the far more dynamic, programmable, and secure Java Card iButtons are seen as a major portion of Dallas Semiconductor's future manufacturing efforts -- with 100,000 new Java Card iButtons already in production.
The future of the Java Ring, and the associated technologies demonstrated at the JavaOne Conference, are clearly limited only by the imagination of the developer community. And from the enthusiasm seen at the JavaOne Conference, those horizons have only just begun to be explored.

CONCLUSION
Dallas Semiconductor has produced more than 20 million physically-secure memories and computers with hard-shell packaging optimized for personal possession. The Java iButton, therefore, is simply the latest and most complex descendant of a long line of products that have proven themselves to be highly successful in the marketplace. With its stainless steel armor, it offers the most durable packaging for a class of products that likely will suffer heavy use and abuse as personal possessions. The iButton form factor permits attachment to a wide variety of personal accessories that includes rings, watchbands, keyfobs, wallets, bracelets, and necklaces, so the user can select a variation that suits his or her lifestyle.

With a 32-kilobyte Java Card Environment (JCE) and I/O subsystem in mask-programmed ROM, a continuously running true-time clock, and 6 kilobytes of NVRAM memory with expansion potential up to 128 kilobytes, the Java iButton supports a true Java stack, full-length 32-bit Java integers, and garbage collection. This feature mix provides support for relatively high-end Java applets with substantial computing requirements.

While the Java iButton can readily support the commerce models that have traditionally been the province of credit cards, its greatest promise appears to lie in its capacity to interact with Internet applications to support strong remote authentication and remotely authorized financial transactions. The use of Java promotes compatibility with these applications by providing a common language for all application programming.

At the Java Internet Business Expo held last August, Sun Microsystems' CEO Scott McNealy displayed an early prototype of the Java Ring, using it to open a presentation door on stage. That powerful symbolism of Java being embedded in all shapes and sizes and opening doors to the future now provides the "magic" driving force for the Java Ring. Along with Java Cards, the Java Ring stands poised to open the doors of opportunity for truly personal computing in the information age.
Since their introduction, iButton memory devices have been deployed in vast quantities as rugged portable data carriers, often in harsh environmental conditions. Among the large-scale uses are as transit fare carriers in Istanbul, Turkey; as maintenance record carriers on the sides of Ryder trucks; and as mailbox identifiers inside the mail compartments of the U.S. Postal Service's outdoor mailboxes. They are worn as earrings by cows in Canada to hold vaccination records, and they are used by agricultural workers in many areas as rugged substitutes for timecards.
Mobile computing is beginning to break the chains that tie us to our desks, but many of today's mobile devices can still be a bit awkward to carry around. In the next age of computing, we will see an explosion of computer parts across our bodies, rather than across our desktops. Digital jewelry, designed to supplement the personal computer, will be the evolution in digital technology that makes computer elements entirely compatible with the human form.


REFERENCES

¢ Dallas Semiconductor's iButton Web site http://ibutton
¢ Crypto iButton home page http://ibuttoncrypto.html
¢ An Introduction to the Java Ring: http://javaworldjavaworld/jw-04-1998/jw-04-javadev.html
¢ Giving Currency to the Java Card API: http://javaworldjavaworld/jw-02-1998/jw-02-javacard.html
¢ iButtons: The First Ready-to-Buy Java Card API Devices: http://javaworldjavaworld/jw-04-1998/jw-04-ibuttons.html http://javaworldjavaworld/javaone98/j1-98-embedded.html http://ibuttonjava.html http://ibuttondevkit
¢ The Java Ring Event : http://java.sunInsideTheJavaRingEvent.html
¢ http://howstuffworks.com

CONTENTS
¢ Introduction 1
¢ Historical Background 4
¢ iButtons 6
¢ Types of iButtons 8
¢ Memory iButtons
¢ Thermochron iButtons
¢ Cryptographic iButtons
¢ Blue Dot Receptor 15
¢ TMEX Run time Environment 22
¢ JVM and Resources of iButton 23
¢ Applications of Java Ring 25
¢ Java Ring Event 26
¢ Java Ring “The Tidal Wave of Future 30
¢ Conclusion 32
¢ References 34

ACKNOWLEDGEMENT
I express my sincere gratitude to Dr. Agnisarman Namboodiri, Head of Department of Information Technology and Computer Science , for his guidance and support to shape this paper in a systematic way.
I am also greatly indebted to Mr. Saheer H. and
Ms. S.S. Deepa, Department of IT for their valuable suggestions in the preparation of the paper.
In addition I would like to thank all staff members of IT department and all my friends of S7 IT for their suggestions and constrictive criticism.

.
Reply
#2
[attachment=2694]

JAVA RING
JAVA RINGS..
OUTLINE
HISTORICAL BACKGROUND


In the summer of 1989, Dallas Semiconductor Corp.
produced the first stainless-steel-encapsulated memory
devices utilizing the Dallas Semiconductor 1-Wire
communication protocol.

By 1990, this protocol had been refined and employed
in a variety of self-contained memory devices.

Originally called "touch memory" devices, they were
later renamed iButtons

One of the first impressive devices powered by the Java Card
technology came in the form  of now famous Java Rings at the
  Sun's JavaOne conference, in March 1998.

WHAT IS JAVA RING ??

The Java Ring is a stainless-steel ring, 16-millimeters (0.6 inches) in diameter that houses a 1-million-transistor processor, called an iButton

The Java Ring is a tiny wearable computer with 134kilobytes of RAM.

RAM has 6KB of data memory and to 32KB 0f program memory

6KB may not sound like much, but it is 20 percent more memory
than the first computer ever used .

Even 6 K is enough to hold your secret codes, your credit cards
numbers, your driver license, other wallet contents, and even some electronic cash. The ring can also store a few important URLs.

CONTD..

The Java Ring is a wearable computer that can be used to
authenticate users to services on the Internet. A user only has to
push the ring on her finger on a Java Ring reader for about a
second.

The key issue about a wearable computer is not whether it is a ring
or another form factor: the deciding point is that we will always
have it with us. Many aspects of computing change once there
is no need to go to a special room to get at the computer.

INSIDE JAVARING


JAVA VIRTUAL MACHINE
134KB RAM
32KB ROM
REAL TIME CLOCK
IBUTTON
BLUE DOT RECEPTOR
CONTD..

JAVA VIRTUAL MACHINE

JVM is the piece of software that recognises java language and translate the byte code, which is used by system connected to java ring via reader.

134KB of RAM
* It is used to store program and data.
* The NVRAM offers high R/W speed and also provides temper resistance through instantaneous clearing of all memory when tempering is detected. This process called as Rapid Zeroization.
* Energy provided by lithium backup preserves complete state of machine when java ring is disconnected from user.

CONTD..
* Performs garbage collection to deal with the objects which are out of scope and recycle memory.
* Applets can be loaded or unloaded from java iButton
32KB of ROM
* Special kind of operating system called E-commerce based on java and JVM is stored in the ROM. This is because it is not supposed to be altered by the user.
* Operating system handles all operations happening in iButton.
REAL TIME CLOCK
* It gives exact time of the day. It can run upto 10 years by energy provided by lithium backup.
* Processor clock frequency is not constant and cannot be determined by external means.


iButton

The jewel of the Java Ring is the Java iButton

The iButton is a computer chip enclosed in a 16mm thick stainless steel can. Because of this unique and durable container, up-to-date information can travel with a person or object anywhere they go.

Designed to be fully compatible with the Java Card 2.0 standard  the processor features a high-speed , large RAM and ROM memory capacity, and an unalterable real-time clock.

It is small and portable enough to attach to a key fob, ring, watch, or other personal items

iButton components

An iButton uses its stainless steel

can :
It is an electronic communications
interface. Each can has a data contact,
called the 'lid', and a ground contact,
called the 'base'. Each of these contacts
is connected to the silicon chip inside.

Grommet :

The two contacts are separated by a polypropylene grommet.

Layout of iButton










By simply touching the iButton to the two contacts described
above,we can communicate with it through our 1-Wire protocol.

The 1-Wire interface has two communication speeds: standard
mode at 16kbps, and overdrive mode at 142kbps

Information is transferred between your iButton and a PC with a
momentary contact at up to 142kbps. You simply touch your
iButton to a Blue Dot receptor or other iButton probe, which is
connected to a PC.

iButton-Types
Blue Dot Receptor







The R/W operation in java ring is done by blue dot receptor provided by RS232 serial port adapter.

DS1402D-DR8 is a 1-wire network cable designed to connect to any serial or USB 1-wire port that has up to two buttons simultaneously.



Confidential data is stored in Non Volatile RAM memory.
Barrier substrate and triple layer technique deny unauthorized access to NVRAM confidential data.
If any unauthorized access penetrates the two layers, its detected by security processor and data is erased immediately. This is called as Rapid Zeroization.
The communication between iButton and outside world is limited to single line provides security against hard ware attacks.
Processor clock frequency is not constant and cannot be determined by external means.


Authentication is crucial to most applications, since billing and privacy is based on it.
A very easy and convenient way for users.
It is more secure than using passwords, since passwords are short or can be guessed.
It is easier for administrators to maintain the security infrastructure, since only password can be forgotten.
A ring is a personal thing that the user and only the user carries along anytime and anywhere, so that she can authenticate herself in every situation.
It is possible to use a tag on the key ring or a watch instead of a ring.
It can be used as portable data carrier often in harsh environment condition.
APPLICATIONS

Some of the applications of Java ring are in:

e-banking to get the account balance of customer.

Configuring our car components according to preferences.

Opening door to prevent entry of unauthorized users.

Used by students at celebration school outside orlando to store electronic cash, unlock doors, take attendance and to store medical information









CONCLUSION

The Java Ring, therefore, is simply the latest and most complex descendant of a long line of products that have proven themselves to be highly successful in the marketplace. With its stainless steel armour, it offers the most durable packaging for a class of products that likely will suffer heavy use and abuse as personal possessions. The iButton form factor permits attachment to a wide variety of personal accessories that includes rings, watchbands, key fobs, wallets, bracelets, and necklaces, so the user can select a variation that suits his or her lifestyle.
Reply
#3
please read http://studentbank.in/report-JavaRing-seminars-report for more about javaring seminar report
[attachment=2698]

JAVA RING

A Java Ring is a finger ring that contains a small microprocessor with built-in capabilities for the user, a sort of smart card that is wearable on a finger. Sun Microsystem's Java Ring was introduced at their JavaOne Conference in 1998 and, instead of a gemstone, contained an inexpensive microprocessor in a stainless-steel iButton running a Java virtual machine and preloaded with applets (little application programs). The rings were built by Dallas Semiconductor.
Workstations at the conference had "ring readers" installed on them that downloaded information about the user from the conference registration system. This information was then used to enable a number of personalized services. For example, a robotic machine made coffee according to user preferences, which it downloaded when they snapped the ring into another "ring reader."
Although Java Rings aren't widely used yet, such rings or similar devices could have a number of real-world applications, such as starting your car and having all your vehicle's components (such as the seat, mirrors, and radio selections) automatically adjust to your preferences.
The JavaRing is a tiny wearable computer with 6 kilobytes of RAM. Six K may not sound like much, but it is 20 percent more memory than the first computer I ever used (back in high school in 1973): an ancient (even at the time) Danish second-generation computer called Gier. The Gier took up an entire room and now I can carry more computer power on my finger.
Even 6 K is enough to hold your secret codes, your credit cards numbers, your driver license, other wallet contents, and even some electronic cash. The ring can also store a few important URLs. Indeed, one of the current JavaRing demos is the ability for me to walk up to any computer in the world that has a JavaRing reader and have my home page loaded simply by touching the ring to the reader (see the photo).

The JavaRing is a tiny wearable computer with 6 kilobytes of RAM. Six K may not sound like much, but it is 20 percent more memory than the first computer I ever used (back in high school in 1973): an ancient (even at the time) Danish second-generation computer called Gier. The Gier took up an entire room and now I can carry more computer power on my finger.
Even 6 K is enough to hold your secret codes, your credit cards numbers, your driver license, other wallet contents, and even some electronic cash. The ring can also store a few important URLs. Indeed, one of the current JavaRing demos is the ability for me to walk up to any computer in the world that has a JavaRing reader and have my home page loaded simply by touching the ring to the reader (see the photo).


The current JavaRing is admittedly mainly a demo, though it does perform useful tasks such as opening locked doors for authorized personnel. In the future, it will obviously be possible to build rings with much more memory than 6 K, and many more applications will be implemented.
From a user interface perspective, one can also hope that future rings will be designed by jewelry designers and look less nerdy. Also, it would be possible to gain the same functionality in a watch or a belt buckle. The key issue about a wearable computer is not whether it is a ring or another form factor: the deciding point is that you will always have it with you. Many aspects of computing change once there is no need to go to a special room to get at the computer.







An Introduction to Java Card Technology - Part 2, The Java Card Applet






By C. Enrique Ortiz, September 2003



Part 1 of this article covered the high-level aspects of Java Card technology - what smart cards are, the elements of a Java Card application, the communication aspects, and a summary of the different Java Card technology specifications. In this part we focus on the development aspects of Java Card applets: the typical steps when developing a Java Card application, the Sun Java Card Development kit, and the Java Card and Java Card RMI APIs.


Developing a Java Card Application
The typical steps when creating a Java Card application are:
Write the Java source.
Compile your source.
Convert the class files into a Converted Applet (CAP) file.
Verify that the CAP is valid; this step is optional.
Install the CAP file.
The first two steps are the same as when developing traditional programs in the Java programming language: write .java files and compile them into .class files. Once you have created Java Card class files, though, the process changes.
The Java Card Virtual Machine (JCVM) is split into an off-card JVM and an on-card JVM. This split moves expensive operations off-card and allows for a small memory footprint on the card itself, but it results in extra steps when developing Java Card applications.


Before the Java Card classes can be loaded into a Java Card device, they must be converted to the standard CAP file format, and then optionally verified:
Conversion entails transforming each Java package into a CAP file, which contains the combined binary representation of classes and interfaces in a package. Conversion is an off-card operation.
Verification is an optional process to validate the CAP file for structure, valid bytecode subset, and inter-package dependencies. You may want to do verification on third-party vendor packages that you use, or if your converter tool comes from a third-party vendor. Verification is typically an off-card operation, but some card products may include an on-board verifier.
Once verified, the CAP file is ready to be installed on the Java Card device.
The Sun Java Card Development Kit
You can write Java Card applets, and even test them without a smart card or card reader, using the Sun Java Card Development Kit. This kit includes all the basic tools you need to develop and test Java Card applets:
The Java Card Workstation Development Environment (JCWDE), a convenient, easy to use Java Card simulation tool that allows developers to execute class files directly, without having to convert and install CAP files. The JCWDE can be integrated with a debugger and IDEs.
Starting with version 2.2.1 of the development kit, JCWDE supports Java Card RMI (JCRMI). Note that the JCWDE is not a full-blown Java Card simulator. It does not support a number of JCRE features, such as package installation, applet instance creation, firewalls, and transactions. Please refer to the development kit's User's Guide for more information.
The C-language Java Card Runtime Environment (C-JCRE), an executable reference implementation written in C. The C-JCRE is a fully compliant implementation of the Java Card APIs, VM, and Runtime Environment. It enables a developer to test the behavior of its applets in a workstation environment accurately.
The C-JCRE has a few limitations: it supports up to eight remote references that can be returned during a card session, up to 16 remote objects that can be simultaneously exported, up to eight parameters of array type in remote methods, up to 32 supported Java packages, and up to 16 Java Card applets. For more information on these limitations, refer to the Java Card Development Kit User's Guide.
The Java Card converter tool, for generating CAP files.
The Java Card verifier, for optionally checking the validity of CAP and export files.
An apdutool for sending and receiving Application Protocol Data Units (APDUs). This is how you send APDUs to your Java Card applet during testing. You can create script files that the apdutool reads, to send APDUs to the C-JCRE or JCWDE.
A capdump tool for dumping the contents of CAP, and exp2text to print EXP files.
A scriptgen tool, to convert CAP files into APDU script files. This tool is also referred to as the off-card installer.
Supporting libraries (class files and export files for the Java Card API), documentation, and samples.
While the Sun Java Card Development kit allows you to write and test Java Card applets, deploying a real end-to-end smart-card application requires tools not included in the development kit, for example the use of terminal-side APIs such as the OpenCard and Global Platform APIs. It may also require the use of tools such as Subscriber Identification Module (SIM) toolkits to help you manage the SIMs.


Table 1 shows the directory structure of the toolkit (the Windows version), as well as the contents of the bin directory that contains the development tools.



Figure 1a. Development Kit Directory Structure Figure 1b. Contents of bin directory
Now let's revisit the Java Card development steps, this time with the Sun Java Card Development kit in mind:
Write the Java source using your favorite editor or IDE.
Compile your source using your favorite compiler or IDE.
Optionally, test your Java Card applet using the JCWDE simulator. Recall that the JCWDE is not a full-blown simulator.
Convert the class files into a Converted Applet (CAP) file using the converter tool in the toolkit's bin directory. Note that, in addition to class files, another input to the converter tool are export files, which provide information about packages that are imported (referenced) by your application; these are packages also loaded in the card. Export files are also an output of the converter tool.
Optionally, verify the CAP for validity. This step includes using the verifycap script to verify the validity of the CAP file, using verifyexp to verify the export files, and using verifyrev to verify the binary compatibility between package revisions. Tools verifycap, verifyexp, and verifyrev scripts are all found in the bin directory.
Install the CAP file. Use the scriptgen tool to convert the CAP file into an (installation) APDU script file. Then use the apdutool to send the script file (installation APDU commands and CAP file) to the C-JCRE, or a JCRE on the Java Card device. The JCRE stores the CAP file in the card's memory.
The following figure summarizes these steps. Note that each Java Card vendor provides its own tools, but the steps for developing a Java Card applet generally are the same across development kits:

Figure 2. Java Card Development Steps
(click for larger image)
For more information on how to use Sun's Java Card Development Kit, refer to the Java Card Development Kit User's Guide, found in the kit's doc directory. Another excellent reference is the article "Using the Java Card Development Kit."


Writing a Card-Side Java Card Applet
You can write Java Card applets (javacard.framework.Applet) using either of two models: the traditional Java Card API, or the Java Card Remote Method Invocation (JCRMI) API.
Using the Java Card API
Developing a Java Card applet is a two-step process:
Defining the command and response APDUs that serve as the interface between the host application and the applet
Writing the Java Card applet itself
First, let's look at the structure of a Java Card applet.
Applet Structure
Listing 1 shows how a typical Java Card applet is constructed:
import javacard.framework.*
...
public class MyApplet extends Applet {
// Definitions of APDU-related instruction codes
...
MyApplet() {...} // Constructor
// Life-cycle methods
install() {...}
select() {...}
deselect() {...}
process() {...}
// Private methods
...
}


Listing 1. Structure of a Java Card Applet
A Java Card applet customarily defines its APDU-related instructions, its constructor, then the Java Card applet life-cycle methods: install(), select(), deselect(), and process(). Finally, it defines any appropriate private methods.
Defining APDU Instructions
Different Java Card applications have different interface (APDU) requirements. A credit-card applet may support ways to validate a PIN number, make credit and debit transactions, and check the account's balance. A health insurance applet may provide access to health insurance information, coverage limits, doctors, patient information, and so on. The exact APDUs that you define depend on your application's requirements.
As an example, let's work through parts of the classical Wallet credit-card example. You can find the complete source code for this and other examples under samples directory in the Sun Java Card Development kit.
We'll start by defining an APDU command that queries for the current-balance figure stored in the Java Card device. Note that in a real credit card application we would also define credit and debit commands. We'll assign our Get Balance APDU an instruction class of 0x80 and an instruction of 0x30. The Get Balance APDU doesn't need any instruction parameters or a data field, and the expected response consists of two bytes that contain the balance. The next table describes the Get Balance APDU command:
Table 1 - The Get Balance APDU Command
Name CLA INS P1 P2 Lc Data Field Le (size of response)
Get Balance 0x80 0x30 0 0 N/A N/A 2

While the Get Balance command doesn't define incoming data, some command APDUs will. As an example, let's define a Verify PIN APDU command that validates a PIN number that is passed from the card-reader. The next table defines the Verify APDU:
Table 2 - The Verify APDU Command
Name CLA INS P1 P2 Lc Data Field Le (size of response)
Verify PIN 0x80 0x20 0 0 PIN Len PIN Value N/A

Note that the Le field, the size of the response is N/A. This is because there is no application-specific response to Verify PIN; success or failure is indicated via the status words in the response APDU.
To facilitate APDU processing, the javacard.framework.ISO7816 interface defines a number of constants we can use to retrieve the various APDU fields from the input buffer that is passed to the applet via the process() method:
...
byte cla = buf[ISO7816.OFFSET_CLA];
byte ins = buf[ISO7816.OFFSET_INS];
byte p1 = buf[ISO7816.OFFSET_P1];
byte p2 = buf[ISO7816.OFFSET_P2];
byte lc = buf[ISO7816.OFFSET_LC];
...
// Get APDU data, by copying lc bytes from OFFSET_CDATA, into
// reusable buffer databuf.
Util.arrayCopy(buf, ISO7816.OFFSET_CDATA, databuf, 0, lc);
...


Listing 2. Using the ISO-7816-4 Constants
Now we'll define the class (CLA) and the instructions (INS) for the Get Balance and Verify commands, the size of the get balance response, and the error return code if the PIN verification fails.
...
// MyApplet APDU definitions
final static byte MyAPPLET_CLA = (byte)0x80;
final static byte VERIFY_INS = (byte)0x20;
final static byte GET_BALANCE_INS = (byte) 0x30;
final static short GET_BALANCE_RESPONSE_SZ = 2;
// Exception (return code) if PIN verify fails.
final static short SW_PINVERIFY_FAILED = (short)0x6900;
...


Listing 3. Applet's APDU Definitions
Next, let's define the applet constructor, and the lifecycle methods.
The Constructor
Define a private constructor that initializes the object's state. This constructor is called from the install() method; in other words, the constructor is called only once during the lifetime of the applet:
/**
* Private Constructor.
*/
private MyApplet() {
super();

// ... Allocate all objects needed during the applet's
// lifetime.
ownerPin = new OwnerPIN(PIN_TRY_LIMIT, MAX_PIN_SIZE);
...
// Register this applet instance with the JCRE.
register();
}


Listing 4. The Applet Constructor
In this example we use a javacard.framework.OwnerPIN, an object that represents a personal identification number; this object will exist for the lifetime of the Java Card Applet. Recall from "Managing Memory and Objects" in Part 1 that in a Java Card environment, arrays and primitive types should be declared at object declaration, and that you should minimize object instantiation in favor of object reuse. Create objects only once during the applet lifetime. An easy way to do so is to create the objects in the constructor, and invoke this constructor from the install() method - which itself is invoked only once during the applet lifetime. To promote reuse, objects should remain in scope or adequately referenced for the life of the applet, and the values of their member variables reset appropriately before reuse. Because a garbage collector is not always available, an application may never reclaim the storage allocated to objects that go out of extent.
The install() Method
The JCRE invokes install() during the installation process. You must override this method inherited from the javacard.framework.Applet class, and your install() method must instantiate the applet, as here:
/**
* Installs the Applet. Creates an instance of MyApplet. The
* JCRE calls this static method during applet installation.
* @param bArray install parameter array.
* @param bOffset where install data begins.
* @param bLength install parameter data length.
* @throw ISOException if the install method fails.
*/
public static void install(byte[] bArray, short bOffset, byte bLength)
throws ISOException {
// Instantiate MyApplet
new MyApplet();
...
}


Listing 5. The install() Applet Life-Cycle Method
The install() method must directly or indirectly call the register() method to complete the installation; failing to do so will cause installation to fail. In our sample, the constructor calls register().
The select() Method
The JCRE invokes select() to notify the applet that it has been selected for APDU processing. You don't have to implement this method unless you want to provide session initialization or personalization. The select() method must return true to indicate that it is ready to process incoming APDUs, or false to decline selection. The default implementation by javacard.framework.Applet class returns true.
/**
* Called by the JCRE to inform this applet that it has been
* selected. Perform any initialization that may be required to
* process APDU commands. This method returns a boolean to
* indicate whether it is ready to accept incoming APDU commands
* via its process() method.
* @return If this method returns false, it indicates to the JCRE
* that this Applet declines to be selected.
*/
public boolean select() {
// Perform any applet-specific session initialization.
return true;
}


Listing 6. The select() Applet Life-Cycle Method
The deselect() Method
The JCRE invokes deselect() to notify the applet that it has been deselected. You don't have to implement this method unless you want to provide session cleanup. The default implementation by the javacard.framework.Applet class does nothing.
/**
* Called by the JCRE to inform this currently selected applet
* it is being deselected on this logical channel. Performs
* the session cleanup.
*/
public void deselect() {
// Perform appropriate cleanup.
ownerPin.reset();
}


Listing 7. The deselect() Applet Life-Cycle Method
In our example, we reset the PIN.
The process() Method - Working with APDUs
Once an applet has been selected it is ready to receive command APDUs, as described in the "Life-Cycle of a Java Card Applet" section of Part 1.
Recall that APDU commands are sent to the card from a host-side (client) application, as illustrated next:

Figure 3. APDU Commands and Responses Flow Between a Host Application and a Java Card Applet
(click for larger image)
Each time the JCRE receives an APDU command (from the host application via the card-reader, or the apdutool if using the Sun Java Card Development kit) it calls the applet's process() method, passing it the incoming command as an argument (this argument in the APDU command input buffer). The process() method then:
Extracts the APDU CLA and INS fields
Retrieves the application-specific P1, P2, and data fields
Processes the APDU data
Generates and sends a response
Returns gracefully, or throws the appropriate ISO exception
At that point, the JCRE sends the appropriate status words back to the host application, via the card reader.
Listing 8 shows a sample process() method.
/**
* Called by the JCRE to process an incoming APDU command. An
* applet is expected to perform the action requested and return
* response data if any to the terminal.
*
* Upon normal return from this method the JCRE sends the ISO-
* 7816-4-defined success status (90 00) in the APDU response. If
* this method throws an ISOException the JCRE sends the
* associated reason code as the response status instead.
* @param apdu is the incoming APDU.
* @throw ISOException if the process method fails.
*/
public void process(APDU apdu) throws ISOException {

// Get the incoming APDU buffer.
byte[] buffer = apdu.getBuffer();

// Get the CLA; mask out the logical-channel info.
buffer[ISO7816.OFFSET_CLA] =
(byte)(buffer[ISO7816.OFFSET_CLA] & (byte)0xFC);

// If INS is Select, return - no need to process select
// here.

if ((buffer[ISO7816.OFFSET_CLA] == 0) &&
(buffer[ISO7816.OFFSET_INS] == (byte)(0xA4)) )
return;

// If unrecognized class, return "unsupported class."
if (buffer[ISO7816.OFFSET_CLA] != MyAPPLET_CLA)
ISOException.throwIt(ISO7816.SW_CLA_NOT_SUPPORTED);

// Process (application-specific) APDU commands aimed at
// MyApplet.
switch (buffer[ISO7816.OFFSET_INS]) {

case VERIFY_INS:
verify(apdu);
break;

case GET_BALANCE_INS:
getBalance(apdu);
break;

default:
ISOException.throwIt(ISO7816.SW_INS_NOT_SUPPORTED);
break;
}
}


Listing 8. The process() Applet Life-cycle Method
Our process() method invokes the getBalance() and verify() methods. Listing 9 shows the getBalance() method, which processes the get balance APDU and returns the balance stored in the card.
/**
* Retrieves and returns the balance stored in this card.
* @param apdu is the incoming APDU.
*/
private void getBalance(APDU apdu) {

// Get the incoming APDU buffer.
byte[] buffer = apdu.getBuffer();

// Set the data transfer direction to outbound and obtain
// the expected length of response (Le).
short le = apdu.setOutgoing();

// If the expected size is incorrect, send a wrong-length
// status word.

if (le != GET_BALANCE_RESPONSE_SZ)
ISOException.throwIt(ISO7816.SW_WRONG_LENGTH);

// Set the actual number of bytes in the response data field.
apdu.setOutgoingLength((byte)GET_BALANCE_RESPONSE_SZ);

// Set the response data field; split the balance into 2
// separate bytes.
buffer[0] = (byte)(balance >> 8);
buffer[1] = (byte)(balance & 0xFF);

// Send the 2-byte balance starting at the offset in the APDU
// buffer.

apdu.sendBytes((short)0, (short)GET_BALANCE_RESPONSE_SZ);
}


Listing 9. Processing the Get Balance APDU
The getBalance() method gets a reference to the APDU buffer by calling the APDU.getBuffer() method. Before returning the response (the current balance), the applet must set the JCRE mode to send by invoking the APDU.setOutgoing() method, which conveniently returns the size of the expected response. We must also set the actual number of bytes in the response data field, by calling APDU.setOutgoingLenth(). The response in the APDU buffer is actually sent by calling APDU.sendBytes().
Applets don't directly send return codes (status words); the JCRE takes care of that, once the applet invokes APDU.setOutgoing() and supplies any requested information. The values of the status words vary depending on how the process() method returns to the JCRE. If all has gone well, the JCRE will return 9000, which indicates no error. Your applet can return an error code by throwing one of the exceptions defined in the ISO7816 interface, or an application-specific value. In Listing 9, method getBalance() throws an ISO7816.SW_WRONG_LENGTH code if the size of the expected response is incorrect. For the valid status code values refer to the definition of the ISO7816 interface, or to the section "The Response APDU" in this article's first installment.
Now let's look at the verify() method, in Listing 10. Because we defined the verify PIN APDU command to contain data, the verify() method must call the APDU.setIncomingAndReceive() method, which sets the JCRE to receive mode, then receives the incoming data.

/**
* Validates (verifies) the Owner's PIN number.
* @param apdu is the incoming APDU.
*/
private void verify(APDU apdu) {

// Get the incoming APDU buffer.
byte[] buffer = apdu.getBuffer();

// Get the PIN data.
byte bytesRead = (byte)apdu.setIncomingAndReceive();

// Check/verify the PIN number. Read bytesRead number of PIN
// bytes into the APDU buffer at the offset
// ISO7816.OFFSET_CDATA.
if (ownerPin.check(buffer, ISO7816.OFFSET_CDATA, byteRead)
== false )
ISOException.throwIt(SW_PINVERIFY_FAILED);
}



Listing 10. Processing the Verify APDU
The method gets a reference to the APDU buffer by calling APDU.getBuffer(), calls APDU.setIncomingAndReceive() to receive the command data, gets the PIN data from the incoming APDU buffer, and verifies the PIN. A verification failure causes the status code 6900 to be sent back to the host application.
Sometimes there's more incoming data than can fit in the APDU buffer, and the applet must read the data in chunks until there is no more data to be read. In such cases, we must first invoke APDU.setIncomingAndReceive(), then call APDU.receiveBytes() repeatedly until no more data is available. Listing 11 shows how to read large amounts of incoming data.
...
byte[] buffer = apdu.getBuffer();
short bytes_left = (short) buffer[ISO.OFFSET_LC];
short readCount = apdu.setIncomingAndReceive();
while (bytes_left > 0) {

// Process received data in buffer; copy chunk to temp buf.
Util.arrayCopy(buffer, ISO.OFFSET_CDATA, tbuf, 0, readCount);
bytes_left -= readCount;
// Get more data

readCount = apdu.receiveBytes(ISO.OFFSET_CDDATA);
}
...


Listing 11. Reading Large Amounts of Incoming Data
As each chunk is read, the applet could append it to another buffer, or just process it.
Using the Java Card RMI API
The second model you can follow for programming Java Card applets is the Java Card RMI (JCRMI), which is based on the J2SE RMI distributed-object model.
This approach provides an object-centric model, in which the APDU communication and handling you saw on the preceding section are abstracted; instead, you deal with objects. This simplifies the programming and integration of Java Card technology-based devices.
In the RMI model a server application creates and makes accessible remote objects, and a client application obtains remote references to the server's remote objects, and then invokes remote methods on them. In JCRMI, the Java Card applet is the server, and the host application is the client.
Brief Introduction to Java Card RMI
Two packages provide the support for Java Card RMI:
java.rmi defines a subset of the Java 2 Standard Edition java.rmi package. It defines the Remote interface and the RemoteException class. None of the traditional java.rmi classes are included.

javacard.framework.service defines Java Card applet services classes, including RMI services classes CardRemoteObject and the RMIService.

Class CardRemoteObject defines two methods to enable and disable the remote access of an object from outside the card. Class RMIService processes RMI requests (translates incoming command APDUs to remote method invocations).
Writing a JCRMI application is similar to writing a typical RMI-based application:
Define as an interface the behavior of the remote class.
Write the server implementation of the remote class, and supporting classes.
Write a client program that uses the remote service, and supporting classes.
Note that JCRMI does not change the fundamental structure or life-cycle of applets, as you'll see shortly.
The Remote Interface
The first step in creating a remote service is to define its visible behavior. The remote interfaces define the services your applet provides. As in standard J2SE RMI, all Java Card RMI remote interfaces must extend the java.rmi.Remote interface. To illustrate, here is a remote interface that exposes a method to get the balance stored in the card:
import java.rmi.*;
import javacard.framework.*;

public interface MyRemoteInterface extends Remote {
...
public short getBalance() throws RemoteException;
...
// A complete credit card application would also define other
// methods such as credit() and debit() methods.
...
}


Listing 12. The Remote Interface
MyRemoteInterface defines the remote methods, in our example a getBalance() method, to retrieve the balance that is stored in the smart card. Note that except for the Java Card-specific imports, this remote interface looks exactly like a standard RMI remote interface.
The Server Implementation
The next step is implementing the server's behavior. The server implementation comprises the Java Card applet, the implementation of any remote interfaces you've defined, and any related classes specific to your application.
The Java Card Applet
The Java Card applet is the JCRMI server, and the owner of remote objects that are available to host (client) applications. The structure of a typical Java Card RMI applet is illustrated in the next figure:


Figure 4. Structure of a Typical Java Card RMI Applet
When compared to an applet that processes APDU messages explicitly, the JCRMI-based applet is more of an object container. As you can see in Figure 4, the JCRMI-based applet has one or more remote objects, an APDU Dispatcher, and an RMIService that receives APDUs and translates them into remote method calls. Java Card remote classes can extend the CardRemoteObject class, to export the object automatically, making it visible for remote use.
JCRMI applets must extend javacard.framework.Applet, follow the standard applet structure, and define appropriate life-cycle methods. It must install and register itself, and dispatch APDUs. The next code snippet illustrates the typical structure of a JCRMI-based applet:
public class MyApplet extends javacard.framework.Applet {

private Dispatcher disp;
private RemoteService serv;
private Remote myRemoteInterface;

/**
* Construct the applet. Here instantiate the remote
* implementation(s), the APDU Dispatcher, and the
* RMIService. Before returning, register the applet.
*/
public MyApplet () {
// Create the implementation for my applet.
myRemoteInterface = new MyRemoteInterfaceImpl();
// Create a new Dispatcher that can hold a maximum of 1
// service, the RMIService.
disp = new Dispatcher((short)1);
// Create the RMIService
serv = new RMIService(myRemoteInterface);

disp.addService(serv, Dispatcher.PROCESS_COMMAND);
// Complete the registration process
register();
}
...


The applet creates a Dispatcher, and an RMIService to process incoming JCRMI APDUs.


...
/**
* Installs the Applet. Creates an instance of MyApplet.
* The JCRE calls this static method during applet
* installation.
* @param bArray install parameter array.
* @param bOffset where install data begins.
* @param bLength install parameter data length.
*/
public static void install(byte[] aid, short s, byte b) {
new MyApplet();
}



In the Java Card environment, the lifetime of the JVM is the lifetime of the physical card, and not all Java Card implementations provide a garbage collector, so you need to minimize memory allocations. Create objects at installation time so memory is allocated to them only once.


/**
* Called by the JCRE to process an incoming APDU command. An
* applet is expected to perform the action requested and
* return response data, if any.
*
* This JCRMI version of the applet dispatches remote
* invocation APDUs by invoking the Dispatcher.
*
* Upon normal return from this method the JCRE sends the ISO-
* 7816-4-defined success status (90 00) in the APDU response.
* If this method throws an ISOException, the JCRE sends the
* associated reason code as the response status instead.
* @param apdu is the incoming APDU.
* @throw ISOException if the install method fails.
*/
public void process(APDU apdu) throws ISOException {
// Dispatch the incoming command APDU to the RMIService.
disp.process(apdu);
}


The applet's process() method receives an APDU command and dispatches it to the RMIService, which processes the command by translating it into an RMI call and subsequent response.


}


Listing 13. The Java Card RMI Applet
Implementing the Remote Object
Implementing a JCRMI remote object is similar to implementing standard J2SE RMI remote objects. The main difference is that in JCRMI your remote object has the option of extending CardRemoteObject (in addition to implementing your remote interface).
CardRemoteObject, which defines two methods, export() and unexport(), to enable and disable respectively access to an object from outside the card. By extending CardRemoteObject, you automatically export all the methods of your remote object. If you decide not to extend CardRemoteObject, you will be responsible for exporting them by calling CardRemoteObject.export().
import java.rmi.RemoteException;
import javacard.framework.service.CardRemoteObject;
import javacard.framework.Util;
import javacard.framework.UserException;
/**
* Provides the implementation for MyRemoteInterface.
*/
public class MyRemoteImpl extends CardRemoteObject implements MyRemoteInterface {
/** The balance. */
private short balance = 0;

/**
* The Constructor invokes the superclass constructor,
* which exports this remote implementation.
*/
public MyRemoteImpl() {
super(); // make this remote object visible
}

/**
* This method returns the balance.
* @return the stored balance.
* @throws RemoteException if a JCRMI exception is
* encountered
*/
public short getBalance() throws RemoteException {
return balance;
}

// Other methods
...
}


Listing 14. The Remote Object Implementation
Flow of a Completed Java Card RMI Application
Let's summarize the flow of a JCRMI application. The client (host) application makes RMI calls by passing RMI APDUs to the on-card JCRE, which in turn forwards these APDUs to the appropriate JCRMI applet. This applet dispatches the received APDU to the RMIService, which in turn processes the APDU and translates it into an RMI call. The typical flow of a JCRMI applet is illustrated here:


Figure 5. Flow of a Java Card RMI-Based Applet
In a nutshell, JCRMI provides a distributed object model mechanism on top of the APDU-based messaging model. JCRMI messages are encapsulated within APDU messages passed to the RMIService, which is responsible of decoding APDU commands, and translating these into method invocations and responses. This allows the server and the client to communicate, passing method information, arguments, and return values back and forth.


Summary
This second part of An Introduction to Java Card Technology covered the development aspects of Java Card applets: the structure of a Java Card applet, the Sun Java Card Development kit, and the APIs and programming models that are available to you to write applets: the Java Card API, and the Java Card RMI API.
The next and last installment, Part 3, will cover host applications, and some of the Java APIs that are available for writing them: the OpenCard Framework, the Java Card RMI Client API, and the Security and Trust Services API (SATSA) for J2ME.
Smart cards with Java Card technology are the most portable and secure way of carrying digital personal information and computational capabilities - a very powerful and needed technology in today's digital world.


Links of Interest
The following references can be found in the Java Card Development Kit (JCDK):
Java Card 2.2 Application Programming Interface
Java Card 2.2 Runtime Environment (JCRE) Specification
Java Card 2.2 Development Kit User's Guide
Java Card 2.2 Virtual Machine Specification
Java Card Applet Developer's Guide
Java Card Programming Notes
Java Card Technology for Smart Cards: Architecture and Programmer's Guide by Zhiqun Chen
Developing a Java Card Applet


Acknowledgements
Many thanks to members of the Java Card team: Florian Tournier, Eduard de Jong, Oscar A. Montemayor, and Victor Olkhovets, and to Richard Marejka and Brian Christeson for their great contributions and feedback to this article.


About the Author: C. Enrique Ortiz, an independent wireless consultant who specializes in end-to-end wireless enterprise software. He is an active participant in the wireless Java community, and is the co-author of the Mobile Information Device Profile for J2ME published by John Wiley and Sons. Enrique holds a B.S. in Computer Science from the University of Puerto Rico and has over 13 years of industry experience.






Oracle is reviewing the Sun product roadmap and will provide guidance to customers in accordance with Oracle's standard product communication policies. Any resulting features and timing of release of such features as determined by Oracle's review of roadmaps, are at the sole discretion of Oracle. All product roadmap information, whether communicated by Sun Microsystems or by Oracle, does not represent a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. It is intended for information purposes only, and may not be incorporated into any contract.
Reply
#4
1. Introduction
Java Ring is a secure, durable, wearable Java-powered electronic token. It is a tiny wearable computer with 6 kilobytes of RAM. 6 K is enough to hold your secret codes, your credit cards numbers, your driver license, other wallet contents, and even some electronic cash. The ring can also store a few important URLs. Indeed, one of the current Java Ring demos is the ability for us to walk up to any computer in the world that has a Java Ring reader and have our home page loaded simply by touching the ring to the reader .
From a user interface perspective, one can also hope that future rings will be designed by jewelry designers and look less nerdy. Also, it would be possible to gain the same functionality in a watch or a belt buckle. The key issue about a wearable computer is not whether it is a ring or another form factor: The deciding point is that you will always have it with you. Many aspects of computing change once there is no need to go to a special room to get at the computer. It's in the details the Java Ring is an extremely secure Java-powered electronic token with a continuously running, unalterable real-time clock and rugged packaging, suitable for many applications.
The jewel of the Java Ring is the Java iButton -- a one-million transistor, single-chip trusted microcomputer with a powerful Java virtual machine (JVM) housed in a rugged and secure stainless-steel case. Designed to be fully compatible with the Java Card 2.0 standard. The processor features a high-speed 1024-bit modular exponentiator for RSA encryption, large RAM and ROM memory capacity, and an unalterable realtime clock. The packaged module has only a single electrical contact and a ground return, conforming to the specifications of the Dallas Semiconductor 1-Wire bus. Lithium-backed non-volatile SRAM offers high read/write speed and unparalleled tamper resistance through near-instantaneous clearing of all memory when tempering is detected, a feature known as rapid zeroization. Data integrity and clock function are maintained for more than 10 years. The 16-millimeter diameter stainless steel enclosure accommodates the larger chip sizes needed for up to 128 kilobytes of high-speed nonvolatile static RAM. The small and extremely rugged packaging of the module allows it to attach to the accessory of your choice to match individual lifestyles, such as a key fob, wallet, watch, necklace, bracelet, or finger ring.
2. Historical background
In the summer of 1989, Dallas Semiconductor Corp. produced the first stainless-steel-encapsulated memory devices utilizing the Dallas Semiconductor 1-Wire communication protocol. By 1990, this protocol had been refined and employed in a variety of self-contained memory devices. Originally called "touch memory" devices, they were later renamed "iButtons." Packaged like batteries, iButtons have only a single active electrical contact on the top surface, with the stainless steel shell serving as ground.
Data can be read from or written to the memory serially through a simple and inexpensive RS232C serial port adapter, which also supplies the power required to perform the I/O. The iButton memory can be read or written with a momentary contact to the "Blue Dot" receptor provided by the adapter. When not connected to the serial port adapter, memory data is maintained in non-volatile random access memory (NVRAM) by a lifetime lithium energy supply that will maintain the memory content for at least 10 years. Unlike electrically erasable programmable read-only memory (EEPROM), the NVRAM iButton memory can be erased and rewritten as often as necessary without wearing out. It can also be erased or rewritten at the high speeds typical of complementary metal oxide semiconductor (CMOS) memory, without requiring the time-consuming programming of EEPROM.
Since their introduction, iButton memory devices have been deployed in vast quantities as rugged portable data carriers, often in harsh environmental conditions. Among the large-scale uses are as transit fare carriers in Istanbul, Turkey; as maintenance record carriers on the sides of Ryder trucks; and as mailbox identifiers inside the mail compartments of the U.S. Postal Service's outdoor mailboxes. They are worn as earrings by cows in Canada to hold vaccination records, and they are used by agricultural workers in many areas as rugged substitutes for timecards.
Every iButton product is manufactured with a unique 8-byte serial number and carries a guarantee that no two parts will ever have the same number. Among the simplest iButtons are memory devices that can hold files and subdirectories and can be read and written like small floppy disks. In addition to these, there are iButtons with password-protected file areas for security applications, iButtons that count the number of times they have been rewritten for securing financial transactions, iButtons with temperature sensors, iButtons with continuously running date/time clocks, and even iButtons containing powerful microprocessors.
3. The postal security device
For over 10 years, Dallas Semiconductor also has been designing, making, and selling a line of highly secure microprocessors that are used in satellite TV descramblers, automatic teller machines, point-of-sale terminals, and other similar applications requiring cryptographic security and high resistance to attack by hackers. The U.S. Postal Service's (USPS) Information Based Indicia Program Postal Security Device Specification, intended to permit printing of valid U.S. postage on any PC, provided the first opportunity to combine two areas of expertise when a secure microprocessor was designed into an iButton.
The resulting product, named the Crypto iButton, combines high processor performance, high-speed cryptographic primitives, and exceptional protection against physical and cryptographic attack.
For example, the large integer modular exponentiation engine can perform 1024-bit modular exponentiations with a 1024-bit exponent in significantly less than a second. The ability to perform large integer modular exponentiations at high speed is central to RSA encryption, Diffie-Hellman key exchange, Digital Signature Standard (FIPS 186), and many other modern cryptographic operations.
An agreement between Dallas Semiconductor and RSA Data Security Inc. provides a paid-up license for anyone using the Crypto iButton to perform RSA encryption and digital signatures so that no further licensing of the RSA encryption technology is required. High security is afforded by the ability to erase the contents of NVRAM extremely quickly. This feature, rapid zeroization, is a requirement for high security devices that may be subjected to attacks by hackers. As a result of its high security, the Crypto iButton is expected to win the FIPS 140-1 security certification by the National Institute of Standards and Technology (NIST).
A special operating system was designed and stored in the ROM of the Crypto iButton to support cryptography and general-purpose financial transactions -- such as those required by the Postal Service program. While not a Java virtual machine, the E-Commerce firmware designed for this application had several points of similarity with Java, including an object-oriented design and a bytecode interpreter to interpret and execute Dallas Semiconductor's custom-designed E-Commerce Script Language.
A compiler was also written to compile the high-level language representation of the Script Language to a bytecode form that could be interpreted by the E-Commerce VM. Although the E-Commerce firmware was intended primarily for the USPS application, the firmware supports a variety of general electronic commerce models that are suitable for many different applications.
The E-Commerce firmware also supports cryptographic protocols for secure information exchange such as the Simple Key-Management for Internet Protocol (SKIP) developed by Sun Microsystems Inc.
3.1 Java-Powered Cryptographic iButton
Cryptographic iButton provides secure end-to-end Internet transactions“including granting conditional access to Web pages, signing documents, encrypting sensitive files, securing email and conducting financial transactions safely“even if the client computer, software and communication links are not trustworthy. When PC software and hardware are hacked, information remains safe in the physically secure iButton chip.
Making Life More Convenient and Secure
A physically secure co-processor to a terminal, PC, workstation, or server, the crypto iButton opens up a whole new world of convenience. It connects to the 250 million existing computers with an inexpensive Blue Dot receptor. By simply pressing your Blue Dot with your iButton, you can:
¢ Be granted access privileges to sensitive information on a conditionally accessed Web page using PKI challenge/response authentication.
¢ Sign documents so the recipient can be certain of their origin.
¢ Encrypt and decrypt messages, securing email for the intended eyes only.
¢ Conduct hassle-free monetary transactions“print your own electronic postage stamps or print, write, and sign your own electronic checks.
The Crypto iButton's Extraordinary Security
The National Institute of Standards (NIST) and the Communications Security Establishment (CSE) has validated a version of the crypto iButton for protection of sensitive, unclassified information. FIPS 140-1 validation assures government agencies that the products provide a trusted, physically secure module to properly protect secure information.
As a starting point for the iButton's extraordinary security, the stainless steel case of the device provides clear visual evidence of tampering. The monolithic chip includes up to 134K of SRAM that is specially designed so that it will rapidly erase its contents as a tamper response to an intrusion. Rapid erasing of the SRAM memory is known as zeroization. Any attempts to uncover the private keys within the SRAM are thwarted because attackers have to both penetrate the iButton's barriers and read its contents in less than the time it takes to erase its private keys.
Specific intrusions that result in zeroization include:
¢ Opening the case
¢ Removing the chip's metallurgically bonded substrate barricade
¢ Micro-probing the chip
¢ Subjecting the chip to temperature extremes
In addition, if excessive voltage is encountered, the sole I/O pin is designed to fuse and render the chip inoperable.
As a further security measure, the cryptographic iButton contains a True Time Clock that is a tamper-evident real-time clock. "True Time" differs from real time in that it is set by a reputable agent and its time cannot be reset and is forever increasing. This clock can be used to time stamp transactions. It can also be used to impose expiration dates for inspection intervals, whereby the iButton is required to periodically check in with a host.
The crypto iButton is among the least counterfeitable devices ever made by man. In response to tampering, the crypto iButton would rather erase the key than reveal its secrets. Would-be thieves cannot copy what they do not know“the private key.
4. The Java Card applet model
The Java Ring is in fact a Java smart card, and the ring's virtual machine is based on the Java virtual machine (JVM) that was proposed as the Java Card 2.0 standard. The Java Card architecture has taken client/server architectures to a new place -- one where the "server" is a small piece of software on an extremely small system, and the client is a potentially huge piece of software on a potentially much larger system. The network protocol is encapsulated in packets that are called application program data units, or APDUs for short.
Unlike packets in the TCP/IP world, these APDU packets don't carry any sort of addressing information. Instead, they are implicitly addressed to the computer on the other end of the serial link. However, like their big-brother packets in the TCP/IP world, APDUs do carry a few bytes that are common to all packets. These can be used by the smart card infrastructure to decide when to send the APDUs to the server on the smart card, and when to interpret them directly.
The smart card runtime code gets the first crack at decoding the APDUs as they arrive on the serial interface. Further, there are predefined APDUs that tell the runtime to select an applet, delete applets, load applets, and so on. Thus, errant applets are simply deleted by the developer once it's ascertained that they aren't responding correctly to the APDUs they receive.
The applet sits in a virtual loop, like a network service waiting for packets to arrive on its network interface. The method that handles this loop is named process and is one of four required smart card applet methods. The other three are install, select, and deselect.
The install method must instantiate a new object that represents the applet. Like the main method in a Java application class, the install method is static so that it can be invoked by the smart card JVM before an object exists (it's invoked directly from the class definition).
In the simplest sense, the select and deselect methods tell the applet to either "get ready" or "go to sleep." Actually, the select method has the option of refusing to be selected.
For example, a personal identification number (PIN) or some other authorizing information might need to be passed from the client program to the method (by way of the APDU) before the applet would allow itself to be selected.
The deselect method, on the other hand, doesn't have the ability to deny being deselected -- it provides more of a courtesy to the applet, telling it that it won't be getting any more packets. When a smart card is yanked from the reader before the client is finished, the deselect method isn't even called. The next thing the applet will see will be another invocation of select.
The APDU one could just dump an object or two and have them show up in the ring. But object support isn't part of the package. Instead you get a byte array that you can copy data into, send, receive, and then copy the data back out of.
5. The Java connection
With experience designing the E-Commerce operating system and VM for the Crypto iButton hardware platform, the firmware design team at Dallas Semiconductor could readily appreciate the advantages of a new operating system for the Crypto iButton based on Java. With a Java iButton, a vast number of existing Java programmers could easily learn to write applets that could be compiled with the standard tools available from Sun Microsystems, loaded into the Java iButton, and run on demand to support a wide variety of financial applications. The Java Card 2.0 specification provided the opportunity to implement a useful version of the JVM and runtime environment with the limited resources available to a small processor.
Java Ring
The Crypto iButton also provides an excellent hardware platform for executing Java because it utilizes NVRAM for program and data storage. With 6 kilobytes of existing NVRAM and the potential to expand the NVRAM capacity to as much as 128 kilobytes in the existing iButton form factor, the Crypto iButton can execute Java with a relatively large Java stack situated in NVRAM. This memory acts as conventional high-speed RAM when the processor is executing, and the lithium energy preserves the complete state of the machine while the Java Ring is disconnected from the reader. There is therefore no requirement to deal with persistent objects in a special way -- objects persist or not depending on their scope so the programmer has complete control over object persistence.
As in standard Java, the Java iButton contains a garbage collector that collects any objects that are out of scope and recycles the memory for future use. Applets can be loaded and unloaded from the Java iButton as often as needed. All the applets currently loaded in a Java iButton are effectively executing at zero speed any time the iButton is not in contact with a Blue Dot receptor.
As the Java Card 2.0 specification was proposed, Dallas Semiconductor became a JavaSoft licensee. The agreement called for the development of a Java Card 2.0 implementation and also for the design of "plus portions" that take advantage of the unique capabilities afforded by the Crypto iButtons NVRAM, such as the ability to support a true Java stack and garbage collection.
With the addition of the continuously running lithium-powered time-of-day clock and the high-speed, large-integer modular exponentiation engine, the Java iButton implementation of Java Card 2.0 with plus portions promises an exciting new feature set for advanced Java Card applications.
6. How to keep your money safe?
The Crypto iButton hardware platform offers a unique set of special features expressly designed to prevent private keys and other confidential information from becoming available to hackers. Figure 1 shows a detail of the internal construction of the Crypto iButton.
The silicon die containing the processor, ROM, and NVRAM memory is metallurgically bonded to the barrier substrate through which all electrical contacts are made. This barrier substrate and the triple-layer metal construction techniques employed in the silicon fabrication effectively deny access to the data stored in the NVRAM.
If any attempt is made to penetrate these barriers, the NVRAM data is immediately erased. This construction technique and the use of NVRAM for the storage of private keys and other confidential data provides a much higher degree of data security than that afforded by EEPROM memory. The fact that the communication path between the Crypto iButton and the outside world is limited to a single data line provides additional security against hardware attacks by limiting the range of signals accessible to the hacker.
In addition, the processor itself is driven by an unstabilized ring oscillator operating over a range of 10 to 20 megahertz, so that the clock frequency of the processor is not constant and cannot be determined by external means. This differs from the design of alternative devices in which the processor clock signal is injected by the reader and is therefore exactly determined by the host processor.
External control of the clock provides a valuable tool to hackers, since they can repetitively cycle such a processor to the same point in its execution simply by applying the same number of clock cycles. Control of the clock also affords a means to induce a calculation error and thereby obtain information that can ultimately reveal secret encryption keys. A 32-kilohertz crystal oscillator is used in the Java iButton to operate the time-of-day clock at a constant and well-controlled frequency that is independent of the processor clock.
7. Conclusion
The Java iButton is simply the latest and most complex descendant of a long line of products that have proven themselves to be highly successful in the marketplace. With its stainless steel armor, it offers the most durable packaging for a class of products that likely will suffer heavy use and abuse as personal possessions. The iButton form factor permits attachment to a wide variety of personal accessories that includes rings, watchbands, keyfobs, wallets, bracelets, and necklaces, so the user can select a variation that suits his or her lifestyle.
While the Java iButton can readily support the commerce models that have traditionally been the province of credit cards, its greatest promise appears to lie in its capacity to interact with Internet applications to support strong remote authentication and remotely authorized financial transactions. The use of Java promotes compatibility with these applications by providing a common language for all application programming.
The powerful symbolism of Java being embedded in all shapes and sizes and opening doors to the future now provides the "magic" driving force for the Java Ring. Along with Java Cards, the Java Ring stands poised to open the doors of opportunity for truly personal computing in the information age.
8. Bibliography
http://javaworldjavaworld
http://ibutton.com
http://ibuttoncrypto.html
http://useitpapers/javaring.html
please read http://studentbank.in/report-javaring-se...port--5547
http://studentbank.in/report-javaring-seminars-report
for getting technical report and presentation of java ring
Reply
#5
Submitted by
Manjunath Mulimani

[attachment=9522]
ABSTRACT
A Java Ring is a finger ring that contains a small microprocessor with built-in capabilities for the user, a sort of smart card that is wearable on a finger. Sun Microsystems’s Java Ring was introduced at their Java One Conference in 1998 and, instead of a gemstone, contained an inexpensive microprocessor in a stainlesssteel iButton running a Java virtual machine and preloaded with applets (little application programs). The rings were built by Dallas Semiconductor. Workstations at the conference had "ring readers" installed on them that downloaded information about the user from the conference registration system.This information was then used to enable a number of personalized
services.
For example, a robotic machine made coffee according to user preferences, which it downloaded when they snapped the ring into another "ring reader."The Java Ring is an extremely secure Java-powered electronic token with a continuously running, unalterable real-time clock and rugged packaging, suitable for many applications. The jewel of the Java Ring is the Java iButton -- a onemillion transistor, single chip trusted microcomputer with a powerful Java Virtual Machine (JVM) housed in a rugged and sec
1. INTRODUCTION
The Java Ring is a stainless-steel ring, 16-millimeters (0.6 inches) in diameter that houses a 1-million-transistor processor, called an iButton. The ring has 134 KB of RAM, 32 KB of ROM, a real-time clock and a Java virtual machine, which is a piece of software that recognizes the Java language and translates it for the user's computer system.
At Celebration School, the rings have been programmed to store electronic cash to pay for lunches, automatically unlock doors, take attendance, store a student's medical information and allow students to check out books. All of this information is stored on the ring's iButton. Students simply press the signet of their Java Ring against the Blue Dot receptor, and the system connected to the receptor performs the function that the applet instructs it to. In the future, the Java Ring may start your car.Mobile computing is beginning to break the chains that tie us to our desks, but many of today's mobile devices can still be a bit awkward to carry around. In the next age of computing, we will see an explosion of computer parts across our bodies, rather than across our desktops. Digital jewelry, designed to supplement the personal computer,will be the evolution in digital technology that makes computer elements entirely compatible with the human form.
The Java Ring, first introduced at Java One Conference, has been tested at Celebration School, an innovative K-12 school just outside Orlando; FL.The rings given to students are programmed with Java applets that communicate with host applications on networked systems. Applets are small applications that are designed to be run within another application. The Java Ring is snapped into a reader, called a Blue Dot receptor,to allow communication between a host system and the Java Ring.
2. HISTORY
In the summer of 1989, Dallas Semiconductor Corp. produced the first stainless-steelencapsulated memory devices utilizing the Dallas Semiconductor 1-Wire communication protocol. By 1990, this protocol had been refined and employed in a variety of self-contained memory devices. Originally called "touch memory" devices,they were later renamed "iButtons." Packaged like batteries, iButtons have only a single active electrical contact on the top surface, with the stainless steel shell serving as ground.Data can be read from or written to the memory serially through a simple and inexpensive RS232C serial port adapter, which also supplies the power required to perform the I/O. The iButton memory can be read or written with a momentary contact to the "Blue Dot" receptor provided by the adapter. When not connected to the serial port adapter, memory data is maintained in non-volatile random access memory (NVRAM) by a lifetime lithium energy supply that will maintain the memory content for at least 10 years. Unlike electrically erasable programmable read-only memory (EEPROM), the NVRAM iButton memory can be erased and rewritten as often as necessary without wearing out. It can also be erased or rewritten at the high speeds typical of complementary metal oxide semiconductor (CMOS) memory, without requiring the time-consuming programming of EEPROM.
Since their introduction, iButton memory devices have been deployed in vast quantities as rugged portable data carriers, often in harsh environmental conditions. Among the large-scale uses are as transit fare carriers in Istanbul, Turkey; as maintenance record carriers on the sides of Ryder trucks; and as mailbox identifiers inside the mail compartments of the U.S. Postal Service's outdoor mailboxes. They are worn as earrings by cows in Canada to hold vaccination records, and they are used by agricultural workers in many areas as rugged substitutes for timecards.The iButton product line and its many applications are described at Dallas Semiconductor's iButton Web site, which is listed in the Resources section. Every iButton product is manufactured with a unique 8-byte serial number and carries a guarantee that no two parts will ever have the same number. Among the simplest
iButtons are memory devices that can hold files and subdirectories and can be read and written like small floppy disks. In addition to these, there are iButtons with passwordprotected file areas for security applications, iButtons that count the number of times they have been rewritten for securing financial transactions, iButtons with temperature
sensors, iButtons with continuously running date/time clocks, and even iButtons containing powerful microprocessors. The java ring was first introduced in the year 1998, in the java one conference .the ring was built by the Dalas semiconductor corporation.
2.1 The postal security device
For over 10 years, Dallas Semiconductor also has been designing, making, and selling a line of highly secure microprocessors that are used in satellite TV descramblers,automatic teller machines, point-of-sale terminals, and other similar applications requiring cryptographic security and high resistance to attack by hackers. The U.S. Postal Service's (USPS) Information Based Indicia Program Postal Security Device Specification, intended to permit printing of valid U.S. postage on any PC, provided the first opportunity to combine two areas of expertise when a secure microprocessor was designed into an iButton the resulting product, named the Crypto iButton, combines high processor performance, high-speed cryptographic primitives, and exceptional protection against physical and cryptographic attack. For example, the large integer modular exponentiation engine can perform 1024-bit modular exponentiations with a 1024-bit exponent in significantly less than a second. The ability to perform large integer modular exponentiations at high speedis central to RSA encryption, Diffie-Hellman key exchange, Digital Signature Standard (FIPS 186), and many other moderncryptographic operations.
An agreement between Dallas Semiconductor and RSA Data Security Inc. provides a paid-up license for anyone using the Crypto iButton to perform RSA encryption and digital signatures so that no further licensing of the RSA encryption technology is required. High security is afforded by the ability to erase the contents of NVRAM extremely quickly. This feature, rapid zeroization, is a requirement for high security devices that may be subjected to attacks by hackers. As a result of its high security, the Crypto iButton is expected to win the FIPS 140-1 security certification by the National Institute of Standards and Technology (NIST).A special operating system was designed and stored in the ROM of the Crypto iButton to support cryptography and general-purpose financial transactions -- such as those
required by the Postal Service program. While not a Java virtual machine, the ECommerce
firmware designed for this application had several points of similarity with Java, including an object-oriented design and a bytecode interpreter to interpret and execute Dallas Semiconductor's custom-designed E-Commerce Script Language. A compiler was also written to compile the high-level language representation of the Script Language to a bytecode form that could be interpreted by the E-Commerce VM. Although the E-Commerce firmware was intended primarily for the USPS application,the firmware supports a variety of general electronic commerce models that are suitable for many different applications. The E-Commerce firmware also supports cryptographic protocols for secure information exchange such as the Simple Key-Management for Internet Protocol (SKIP) developed by Sun Microsystems Inc. The E-Commerce iButton and the SDK for programming it are described in detail on the Crypto iButton home page.
Reply
#6
Submitted by
Y.SWARNALATHA

[attachment=10015]
1. INTRODUCTION
The Java Ring is a stainless-steel ring, 16-millimeters (0.6 inches) in diameter that
houses a 1-million-transistor processor, called an iButton. The ring has 134 KB of
RAM, 32 KB of ROM, a real-time clock and a Java virtual machine, which is a piece
of software that recognizes the Java language and translates it for the user's computer
system.
At Celebration School, the rings have been programmed to store electronic cash to pay
for lunches, automatically unlock doors, take attendance, store a student's medical
information and allow students to check out books. All of this information is stored on
the ring's iButton. Students simply press the signet of their Java Ring against the Blue
Dot receptor, and the system connected to the receptor performs the function that the
applet instructs it to. In the future, the Java Ring may start your car.
Mobile computing is beginning to break the chains that tie us to our desks, but many of
today's mobile devices can still be a bit awkward to carry around. In the next age of
computing, we will see an explosion of computer parts across our bodies, rather than
across our desktops. Digital jewelry, designed to supplement the personal computer,
will be the evolution in digital technology that makes computer elements entirely
compatible with the human form.
The Java Ring, first introduced at Java One Conference, has been tested at Celebration
School, an innovative K-12 school just outside Orlando; FL.The rings given to students
are programmed with Java applets that communicate with host applications on
networked systems. Applets are small applications that are designed to be run within
another application. The Java Ring is snapped into a reader, called a Blue Dot receptor,
to allow communication between a host system and the Java Ring.
2. HISTORY
In the summer of 1989, Dallas Semiconductor Corp. produced the first stainless-steel-
encapsulated memory devices utilizing the Dallas Semiconductor 1-Wire communication
communication protocol. By 1990, this protocol had been refined and employed in a
variety of self-contained memory devices. Originally called "touch memory" devices,
they were later renamed "iButtons." Packaged like batteries, iButtons have only a single
active electrical contact on the top surface, with the stainless steel shell serving as
ground.
Data can be read from or written to the memory serially through a simple and
inexpensive RS232C serial port adapter, which also supplies the power required to
perform the I/O. The iButton memory can be read or written with a momentary contact
to the "Blue Dot" receptor provided by the adapter. When not connected to the serial
port adapter, memory data is maintained in non-volatile random access memory
(NVRAM) by a lifetime lithium energy supply that will maintain the memory content
for at least 10 years. Unlike electrically erasable programmable read-only memory
(EEPROM), the NVRAM iButton memory can be erased and rewritten as often as
necessary without wearing out. It can also be erased or rewritten at the high speeds
typical of complementary metal oxide semiconductor (CMOS) memory, without
requiring the time-consuming programming of EEPROM.
Since their introduction, iButton memory devices have been deployed in vast quantities
as rugged portable data carriers, often in harsh environmental conditions. Among the
large-scale uses are as transit fare carriers in Istanbul, Turkey; as maintenance record
carriers on the sides of Ryder trucks; and as mailbox identifiers inside the mail
compartments of the U.S. Postal Service's outdoor mailboxes. They are worn as earrings
by cows in Canada to hold vaccination records, and they are used by agricultural
workers in many areas as rugged substitutes for timecards.



Reply
#7
[attachment=12418]
ABSTRACT:
A Java Ring is a finger ring that contains a small microprocessor which runs JVM and is preloaded with applets. The jewel of Java Ring is Java iButton, which is a microchip enclosed in a secure package. There are many technologies similar to iButton. But there is no match for this technology. A Java Ring goes beyond a traditional smart card by providing real memory, more power, and a capacity for dynamic programming.
1 INTRODUCTION
A Java Ring is a finger ring that contains a small microprocessor with built-in capabilities for the user, a sort of smart card that is wearable on a finger. Sun Microsystem's Java Ring was introduced at their JavaOne Conference in 1998 and, instead of a gemstone, contained an inexpensive microprocessor in a stainless-steel iButton running a Java virtual machine and preloaded with applets.
Workstations at the conference had "ring readers" installed on them that downloaded information about the user from the conference registration system. This information was then used to enable a number of personalized services. For example, a robotic machine made coffee according to user preferences, which it downloaded when they snapped the ring into another "ring reader." Java Rings could have a number of real-world applications, such as starting your car and having all your vehicle's components (such as the seat, mirrors, and radio selections) automatically adjust to your preferences.
2.HISTORY
In the summer of 1989, Dallas Semiconductor Corp. produced the first stainless-steel-encapsulated memory devices utilising the Dallas Semiconductor 1-Wire communication protocol. By 1990, this protocol had been refined and employed in a variety of self contained memory devices. Originally called touch memory devices, they were later renamed iButtons. Packaged.
like batteries, iButtons have only a single electrical contact on the top surface, with the stainless steel shell serving as ground. With one of these rings a user could communicate with the computers at the Hackers' Lab, help build a large fractal image at the show, or even get a cup of his or her favorite coffee.
Built by Dallas Semiconductor, the durable, wearable Java Ring is practically indestructible but not heavy or clumsy.
The jewel of the ring is a relatively inexpensive device called an iButton, which contains a processor that runs a Java Virtual Machine.
The first time an attendee snapped the ring's iButton into a ring reader attached to a workstation, an applet on the ring communicated with the host application on the system. The applet in turn downloaded the user's personal information from the conference registration system and allowed the user to select their preferred type of coffee (a process they called "personalizing" the ring). From there, the user could walk over to a "coffee factory," snap the ring into another reader, and the robotic coffee machine would make the brew based on the user's preference stored in the ring.
3.COMPONENTS
I-BUTTONS

An iButton is a microchip. The iButton was invented by Dallas Semiconductor mainly for applications in harsh and demanding environments.
On top of these features, the ring provides a rugged environment, wear-tested for 10-year durability. You can drop it on the floor, step on it, forget to take it off while swimming and the data remains safe inside. Today iButtons are primarily used for authentication and auditing types of application.
Every iButton product is manufactured with a unique 8-byte serial number and carries a guarantee that no two parts will ever have the same number. Among the simplest iButtons are memory devices that can hold files and subdirectories and can be read and written like small floppy disks. In addition to these, there are iButtons with password-protected file areas for security applications, iButtons that count the number of times they have been rewritten for securing financial transactions, iButtons with temperature sensors (for food storage and transport), iButtons with continuously running date/time clocks, and even iButtons containing powerful microprocessors. There are iButtons that have an electronic ID and store e-cash .
iButtons have an advantage over conventional smart cards in term of durability and longevity
TYPES OF I-BUTTON:
There are multiple different iButtons available. Each starts with a guaranteed-unique registration number engraved in the silicon. From there, iButtons branch out into three different types:
1. Memory iButton :
2. Java-powered cryptographic iButton 3. Thermochron iButton :
4. Uniqueware iButtons -
5. EEPROM iButtons
a) BLUE DOT RECEPTOR
Information is transferred between your iButton and a PC with a momentary contact, at up to 142kbps. You simply touch your iButton to a Blue Dot receptor or other iButton probe, which is connected to a PC. The Blue Dot receptor is cabled to a 1-Wire adapter that is attached to the PCs serial or parallel port.
The DS1402 Blue Dot receptor provides a convenient pipeline into the PC for iButton-to-PC communication. The receptor's cable connects to either a serial or parallel port, according to which adapter you choose. The receptor itself easily affixes to any accessible spot on the front of the PC. The user can elect a quick information transfer with a momentary touch of the iButton to the Blue Dot. Alternately, the iButton can be snapped into the Blue Dot and remain there, allowing hands-free operation.
Each receptor contains two Blue Dots to accommodate instances where multiple iButtons are required to complete a transaction.
RTE
A layer of software is required to interface iButtons to computers and produce the desired information in the desired format. For all iButtons, iButton-TMEX is a software platform on which to build applications. TMEX removes the tedious low-level programming of drivers and utilities.
The RTE installs the drivers and demo software for all iButtons and 1-Wire devices. TMEX's architecture follows the International Standards Organization (ISO) reference model of Open System Interconnection (OSI), a protocol with seven layers denoted as Physical, Link, Network, Transport, Session, Presentation, and Application.
The current release of TMEX RTE supports Microsoft 32-bit Windows. This includes Windows Me, 2000, 98, 95, NT 4.00.
c) JAVA VIRUAL MACHINE
Java ring is programmed with java application program and applets ,that communicate with the host application on the networked system. applets are the small application that is designed to run on the another application system. The java virtual machine is the piece of software that recognizes the java language and translate the byte code ,which is used by the system which is connected to the java ring via ring reader.
At Celebration School, the rings have been programmed to store electronic cash to pay
for lunches, automatically unlock doors, take attendance, store a student's medical
information and allow students to check out books. All of this information is stored on
the ring's iButton. Students simply press the signet of their Java Ring against the Blue
Dot receptor, and the system connected to the receptor performs the function that the applet instructs it to. In the future, the Java Ring may start your car. Mobile computing is beginning to break the chains that tie us to our desks, but many of today's mobile devices can still be a bit awkward to carry around. In the next age of computing, we will see an explosion of computer parts across our bodies, rather than across our desktops. Digital jewelry, designed to supplement the personal computer, will be the evolution in digital technology that makes computer elements entirely compatible with the human form.
d)RAM
Java ring contains 134kb of non-volatile random access memory. Program and data is stored in this non-volatile random access memory .This non-volatile random access memory offers high read/write speed and also provides `temper resistance through instantaneous clearing of all memory when tempering is detected. this process is called rapid zeroization. The NVRAM iButton memory can be erased or rewritten as often as necessary without wearing out. High security is offered by the ability to erase the content of NVRAM extremely quickly.
e)ROM
The java ring contains 32kb of ROM .A special kind of operating system called E- Commerce operating system which is based on java and JVM is stored in the ROM. This operating system handles all the operation which is happening in the iButton. It is stored in ROM because it is not supposed to be altered by the user. The Crypto iButton hardware platform offers a unique set of special features expressly designed to prevent private keys and other confidential information from becoming
available to hackers .
4.WORKING
Ring is programmed with the applets and the programming is done according to our application and this will specific for the specific user. All information of the user is stored in the java ring.
simply has to press the signet of the java ring against the blue dot receptor and the system connected to the receptor performs the function that the applets instruct it to.java ring has the user profile and the same profile is present in the door embedded system also, when the user press the signet of the java ring against the java ring reader which is embedded at the handle of the door the data is transferred from the ring to door system. if the profile is authentic means user is authentic to open the door the applets president in the ring instruct the door to open. Information is transferred between iButton and a PC with a momentary contact, at up to 142K bits per second.
5.APPLICATIONS OF JAVA RING
Today iButtons are primarily used for authentication and auditing types of applications.
a)Tracking Snail Mail
For example, the U.S. Post Office uses iButtons affixed to the inside door of every blue postal box standing on curbs across the country so it can track carrier, pick-up location, date, and time of mail retrieval.
b)Sturdy Data Trackers
Since their introduction, iButtons have been deployed as rugged portable data carriers, often in harsh environmental conditions. They are worn as earrings by cows in Canada to hold vaccination records, and they are used by agricultural workers in many areas as sturdy substitutes for timecards.
6. THE JAVA RING EVENT
The primary elements of the Ring Event are:
a)Personalization
b)Playing the fractal game/checking business card Data on the ring
c)Visiting the "Coffee Factory" for an automated cup of custom brewed java
Personalization
The personalization process was as simple as snapping the Java Ring into any nearby Blue Dot ring receptor . For your "first time," the client workstation asked you to enter your JavaOne Conference ID number and last name . With this information, a database record was then created, linking your particular
Fractal Game
Here, the ring was dynamically assigned the x,y coordinates of a randomly placed fractal "tile" (a 3x3 pixel area). The many tile coordinates were stored and allocated using a JavaSpaces data area. Once assigned a tile location, your preloaded, ring-based fractal applet computed the colors of each pixel, uploading the data to the server.The fractal game integrated concepts that are vital to demonstrating the power and the promise of Java technology
Coffee Factory
coffee factory was often just what the doctor ordered. And once again, the ease of use and seeming simplicity of the area often belied the elegance and complexity behind the scenes.
Back when you first personalized your ring, you were asked to select one of eight possible bean-based brews. That selection was then stored within the Java Ring's business card applet. So in order to receive.
7.ADVANTAGES OF JAVA RING
a)an orderly network where evry device has access to the token and the opportunity to transmit.
b)under vheavy network load performs better than a start topology.
c)To manage the connectivity between the computers it doesnot need network server.
8.DISADVANTAGES OF JAVA RING
A)one malfunctioning workstation can throw can throw away the entire network.
b)moves,adds and changes of devices can affect the entire network.
c)It is slower than an Ethernet network.
9.CONCLUSION
Dallas Semiconductor has produced more than 20 million physically-secure memories and computers with hard-shell packaging optimized for personal possession. The Java iButton, therefore, is simply the latest and most complex descendant of a long line of products that have proven themselves to be highly successful in the marketplace

Reply
#8
please refer following pages to get full seminar report ,ppt and reference article about Java Ring technology
http://studentbank.in/report-java-ring--10336
http://studentbank.in/report-java-ring
http://studentbank.in/report-javaring-se...port--5547
http://studentbank.in/report-java-ring-a...port--2823
http://studentbank.in/report-java-ring-ppt
http://studentbank.in/report-javaring
http://studentbank.in/report-javaring-seminars-report
Reply
#9
Java Ring


[attachment=18377]

1. INTRODUCTION
The Java Ring is a stainless-steel ring, 16-millimeters (0.6 inches) in diameter that houses a 1-million-transistor processor, called an iButton. The ring has 134 KB of RAM, 32 KB of ROM, a real-time clock and a Java virtual machine, which is a piece of software that recognizes the Java language and translates it for the user's computer system.

At Celebration School, the rings have been programmed to store electronic cash to pay for lunches, automatically unlock doors, take attendance, store a student's medical information and allow students to check out books. All of this information is stored on the ring's iButton. Students simply press the signet of their Java Ring against the Blue Dot receptor, and the system connected to the receptor performs the function that the applet instructs it to. In the future, the Java Ring may start your car. Mobile computing is beginning to break the chains that tie us to our desks, but many of today's mobile devices can still be a bit awkward to carry around. In the next age of computing, we will see an explosion of computer parts across our bodies, rather than across our desktops. Digital jewelry, designed to supplement the personal computer, will be the evolution in digital technology that makes computer elements entirely compatible with thehuman form.



HISTORY
In the summer of 1989, Dallas Semiconductor Corp. produced the first stainless-steel- encapsulated memory devices utilizing the Dallas Semiconductor 1-Wire communication protocol. By 1990, this protocol had been refined and employed in a variety of self-contained memory devices. Originally called "touch memory" devices, they were later renamed "iButtons." Packaged like batteries, iButtons have only a single active electrical contact on the top surface, with the stainless steel shell serving as ground.
Data can be read from or written to the memory serially through a simple and inexpensive RS232C serial port adapter, which also supplies the power required to perform the I/O. The iButton memory can be read or written with a momentary contact to the "Blue Dot" receptor provided by the adapter. When not connected to the serial port adapter, memory data is maintained in non-volatile random access memory (NVRAM) by a lifetime lithium energy supply that will maintain the memory content for at least 10 years. Unlike electrically erasable programmable read-only memory (EEPROM), the NVRAM iButton memory can be erased and rewritten as often as necessary without wearing out. It can also be erased or rewritten at the high speeds typical of complementary metal oxide semiconductor (CMOS) memory, without requiring the time-consuming programming of EEPROM.


3. COMPONENTS


The main components of the java ring are following:-
JAVA VIRTUAL MACHINE(JVM)
134KB OF RAM
32KB OF RAM
REAL TIME CLOCK
IB U TT OO N
BLUE DOT RECEPTOR
3.1. JAVA VIRUAL MACHINE
Java ring is programmed with java application program and applets ,that communicate with the host application on the networked system. applets are the small application that is designed to run on the another application system. The java virtual machine is the piece of software that recognizes the java language and translate the byte code ,which is used by the system which is connected to the java ring via ring reader.
At Celebration School, the rings have been programmed to store electronic cash to pay for lunches, automatically unlock doors, take attendance, store a student's medical information and allow students to check out books. All of this information is stored on the ring's iButton. Students simply press the signet of their Java Ring against the Blue Dot receptor, and the system connected to the receptor performs the function that the applet instructs it to. In the future, the Java Ring may start your car.








Reply

Important Note..!

If you are not satisfied with above reply ,..Please

ASK HERE

So that we will collect data for you and will made reply to the request....OR try below "QUICK REPLY" box to add a reply to this page
Popular Searches: listing, a z listing infopark, seminario do betel, param dhillon, param dharam songs, seminario direitos humanos, javaring ieee format pdf,

[-]
Quick Reply
Message
Type your reply to this message here.

Image Verification
Please enter the text contained within the image into the text box below it. This process is used to prevent automated spam bots.
Image Verification
(case insensitive)

Possibly Related Threads...
Thread Author Replies Views Last Post
  blast seminars report electronics seminars 6 14,693 09-09-2017, 04:08 PM
Last Post: jaseela123d
  Electronics seminars lists10 computer science crazy 169 91,348 28-03-2015, 10:07 AM
Last Post: seminar report asees
  gsm pdf and final seminars report suvendu9238 10 11,517 19-11-2014, 09:34 PM
Last Post: jaseela123d
  optical switching seminars report electronics seminars 7 10,302 29-04-2013, 10:55 AM
Last Post: computer topic
  memristor seminars report project report tiger 21 22,417 25-01-2013, 12:02 PM
Last Post: seminar details
Smile smart note taker seminars full report [email protected] 59 30,679 25-01-2013, 12:00 PM
Last Post: seminar details
  iris scanning seminars report electronics seminars 7 11,564 17-12-2012, 11:36 AM
Last Post: seminar details
  IMAGE AUTHENTICATION TECHNIQUES seminars report electronics seminars 6 8,561 15-11-2012, 12:24 PM
Last Post: seminar details
  FOUNDATION FIELDBUS seminars report seminar surveyer 3 3,780 09-11-2012, 11:15 AM
Last Post: seminar details
  NanoTechnology-The Next Science Frontier seminars report electronics seminars 10 10,503 07-06-2012, 05:51 PM
Last Post: seminar details

Forum Jump: