From this article, we will continue to publish a series of articles that will be issued in Java on a smart card.
Let's make a basic introduction to you by this. Just have a smart card, a read card
Machines and a set of software that can communicate with smart cards, you can start using practical applications.
developed. Introduction of this article includes: compliance with ISO7816 standard smart card management software;
Use the GemPlus reader and Gemplus smart card from the smart card; a profit
The application program of the memory function of the card can be used. The subsequent article will introduce the smart cards produced by the factory.
And will also involve the standard of the smart card.
As a special series, this article will make a pavement work for the next discussion. here,
We will discuss a new standard called OpenCard.
The subsequent article will be involved in the peacekeeping card and electric wallet. At the end, we will introduce you to your smart card.
Basic frame structure of the pieces.
Non-theory is in the Javaone meeting in April (speaking to four tests related to this technique), it is still huge
The network is new to the station or CNN, and the smart card has a big wave. In this article, we will use real intelligence.
Capacity card instance shows you the true intelligent card. This skill will allow you to open a smart card Java application
The order.
Our discussion focus is on the two smart cards: save smart cards, it can be seen
There are small-class readable and writable magnetic disks available eliminated.
The handler card, it can be seen with a mini-type computer with an input port. After the article
Will be more introduced to the instrument card.
The exquisite situation in this article is in that we will create a simple prototype for reading and writing smart cards. We want to discuss
A medical department card, which will keep all the drugs in all the drugs, check the insurance, the prescription, etc.
Information. And we will spread around the square card. In this series of articles, you will pay attention to
A common topic of the card, that is, an all-time issue. The security mentioned here is the main thing to prevent the abuse of the card.
Insert or ActiveX Components and other means of non-acquisition data. For this purpose, this paper is related to the data of the read and write smart card.
The model will give you a safe, a storing storage.
What is the smart card?
You can make a smart card as a credit card with a brain. Its brain
It is a small embedded meter coefficient. This kind of core can be
The program has a task or a storage of some data, but it should be successful:
The core is only small, its processing can be more than your desktop
Machine.
Before the purpose, the smart card is only used for telegraphs, transport, banks and health care, but I am grateful to many developers. In the near future, I will come.
It will be seen that the smart card should be used in the internet application. Smart card has been in the day
This and European Guangguang is applicable, and it has been welcomed in the United States. In fact, in the United States
The intelligent card industry has recently born three more meaningful events:
PC / SC
Microsoft jointly launched a few company to be called PC / SC
Smart card application standard, personal computer and smart card for Win32 platform
Real now intervals. PC / SC does not support non-Win32 system platform, or Xu
Microsoft will never do it. I will discuss this after I will discuss this.
The OpenCard frame OpenCard is an open-plated standard, which supports a smart card
Application is on the platform of the network meter, POS, desktop, and lap.
Reality interoperability. OpenCard Xuke provides a 100% pure Java's smart card application program. through
The usual intelligence card should be used to help the pure Java, because they must
External inter-communication or a program library on the guest household. ( of course not
OpenCard, I can still use 100% pure Java, but it is necessary to the development of the smart card.
Customize an interface from the head. OpenCard also provided an interface to PC / SC,
Get the developer to make the device on the existing Win32 platform.
Javacard
Javacard is the first to Schlumberger, and it has been determined by JavaSoft to be
A standard. Schlumberger is only available in the market in the city. Java intelligence
Card, and the company is the first manufacturer of Javacard. As a pole
The potential to occupy the intelligent card standard of the intensive place, Javacard includes the standard class
Library and API, make Java small should be directly connected to the intelligence of ISO7816 standard
Can card. Javacard is provided with different application procedures to be safe and related to the core.
Operation environment.
Note:
Although this article is intelligent card main question, but more important is that you should never be in this kind.
The device is above. From my perspective, I am more preferred to produce Dallassemiconductor
Pinch Button® device. It is like a small portable credit card, but it is more easy.
why ? Because you no longer need to take the wallet from a few cards to choose it.
One, iButton is in your hand. Yes, it is a ring. Do not touch
Type smart card (herein, see below), I think ibutton this like beads
The product of the treasure ornament will be able to make a graph. Please see the reference information for details, please refer to Ibutton.
Let's talk about it, in August, the Java Internet Business Expo (Jibe) exhibition in New York,
Java CommerceTeam show 揓 avary defeat? / P>
What is the use of a smart card?
What is the good place to use a smart card? Ok, answer this next
Problem:
1. The smart card is more reliable than the magnetic card
2. Smart cards can save a hundred times more than the data of the magnetic card
3. Smart card is more difficult to be broken than magnetic cards
4. Smart card can be processed or returned
5. Smart cards can be widely used in industrial applications and provide multiple functions
can
6. The smart card is compatible with the portable electronical equipment, such as calls, PCs or
Personal Number Assistant (PDA)
7. The smart card is unbroken (Bi, there is a piece of calculation)
Machine chip)
Type of smart card
As mentioned earlier, this article will focus on two types of smart cards:
Storage and handling. But it is a total of five types of intelligence.
card:
Storage smart card
Processing smart card
electronic wallet
Security card
Javacard
The smart card is a portable part of the hardware, which must be helping other equipment.
Can get an interview with some kind of display device or a network. Card
Insert the card reader, this is often referred to as a smart card terminal; it can also be connected to RF
Wave is now.
The smart card is in two ways to read the reader or the reader.
Touching a smart card: When the chip in front of the smart card is connected to the reader
There are only information between the two.
No touch smart card: This kind of information is passed through the antenna, save
The movement of the hand worker or unplugged the smart card. With no contactless
Card, you only need to go to the reading reader, then the post-information transfer will be automatically entered. This kind of class
The type of smart card can be used for speed requirements, or unbalanced
Application Environment.
Some manufacturers have started producing these two types of smart cards.
Create an open environment for the intelligent card application
For the way of opening a smart card, you only need these few things: one
Smart card reader, software with reader communication, with insert reading
Cartoon letter of the reader, is thereafter there must be a smart card and the relevant hardware device.
The intelligent card reader is transdermatic with the smart card, or to open one
The application program that is running on a smart card, you must have an reader. This
The reader makes the application program can be accepted from the smart card or send a command. In the city
There are many types of readers on the field, which is the most flowing in the SERIAL, PCCard and Keyboard models. (Keyboard model always does not disconnect, our expectations
The PC factory can directly provide this product directly before June 1998. )
The serial reader is supported in this article.
A serial reader is connected to the serial port of the computer. Please note that the generation mentioned here
The code is similar to the PCCard type reader; many lapcons have built PCCard
Port. Each factory has provided self-heritable agreements to read
Output data. Once you can exchange information with readers, you can use one
Agreement with a credit card to communicate with the APDU format and the smart card.
(Related to the APDU format.) If you want to buy a reader, please
揋 Emplus smart card readers in reading test information? / P>
Software with readers
The smart card listed in this article needs to be equipped with some face-oriented pairs.
The class of icons.
They are:
Comply with the ISO command class of the 7816 advisory communication
Class with reader communication
Transform data into a factory-specific class
Software for testing the program
Smart card and related hardware equipment
As mentioned in front of this article, it is similar to the following example.
Application procedure, you must have a set of hardware and a few wisdom of smart cards
Can card. You can buy smart cards from Gemplus and Schlumberger.
.
If you have read readers, you have to use it, but also
The interface class will be discussed. The front face has been told, in the intelligent card
Before the communication, we must first call the reader first. And just like the existing
A variety of smart cards, such as today has been a lot of readers.
Heavy intelligent card standard
The smart card should be programs to make people confused.
Problem. Based on our examples is the application and reading
Communication, after the reader, by the reader with a standard agreement with the intelligent card communication. and this
The standard is the 7816 protocol in the international standardized group.
It's like a lot of new technologies, it's a lot of more than a smart card.
Technical standards for eye flowers. Some of these standards are initially stepped in
After the solution, you will have a big handset to hold the base of the intelligent card application.
Technical points. The special standards for some systems must also be held. I
Take this direction, the entire set of standards? Is it horizontal? And? Longitudinal? Two parts:
The horizontal standard can be used in the application program, while the longitudinal standard is only
Suitable for specific systems.
Transverse standard ISO 7816 - Describes to the smart card underlayer interface standard. This standard definition smart card
What is the password stream between readers and smart cards.
PC / SC - Defining Win3.1 / Win95 / NT Machine and Smart Card
The standard of the letter.
OCF - defining communication standard between Java should use the environment and smart card, the standard is complete
All Java interfaces. (Soon, the OCF will allow the initiator to output to OCF, and
For this, this developer will no longer use PC / SC. )
Javacard - describes Javacard and the standard it supported. Vertical
MONDEX - the data campaign in intelligent card. Mondex is not allowed to survive in the card
The cashier outside the film.
Visacash - This borrowing card can be used to track cards on the server.
Proton - another form of electron currency card
MPCOS-EMV - this is a unicomotic smart card, which allows you to realize your own currency
Or a token.
I often feel suspiciency, I don't understand: for this small small plastic
The cartridge, why do you have a lot of documents to describe its standard, and
Can you hold a lot of knowledge to send it?
Because of the development of the intelligent card, you should seek high-degree expertise.
On the field, it is necessary to support the product of Beans. This product should be used in transverse
Metal to achieve longitudinal standard. This means you can use all kinds of horizontal
The beans product is issued to the standard combination, just like OpenCard,
One application program is used to use its several commercial standards or it should
Used.
Java should be used or a communication between Java applications and smart cards
Do you know how to connect all hardware. Now we need
If you use some API, these APIs can be used as a smart card from the application program.
The reader issued a command. (After reading the reader, play with the smart card, as a
The information transfer medium between the application to the smart card. ) Smart card reader shift
Move the piping of the gold belonging with the smart card. Smart card is made
After processing, the reader will be given, and the reader will pass the procedure. under
The problem of the surface is that when these data flows from the application program to the smart card, they
Where is it? As mentioned earlier, the application is used to communicate with the reader.
The reader will use the standards described above and the intelligent card communication. Basically, with
The development of smart card technology, ISO has launched a smart card standard. The standard definition
The mechanical and electrical characteristics of the intelligent card and the standard with the intelligent card communication. ISO
The standard related document is listed in the reference material. Unfortunately, ISOs have no standards that can be meticomatic communication with readers. Therefore, it is sent to the smart card.
A order, first you have to find a collection of intelligent cards, will make this order
Use the ISO command package to encapsulate, then then this package is later in a formula suitable for readers.
. The following cases are all made to have all the trivial things.
Application Procotols Data Units (APDUS)
Based unit with intelligent card exchange information is an APDU package. From application program
Layers passing the command message, plus from the smart card to the application program
The response message is called Application Procotols Data Units (APDU). With smart card
The communication with the reader is implemented in an APDU form. An APDU package can be seen in the package
The whole instruction or the responded data package. For this, the function of this, ISO7816
There is a part of the family to define a good role in APDU.
The APDU includes the following domain:
Order APDU Format CLA INS P1 P2 LC Data LE Back APDU Ground Data SW1 SW2
The lower side is a class and its functionality that supports APDU transmission:
Command - Sealing Mission APDU
Response - Sealing Back APDU
IsoCardReader - Regulates an interface. Every device must be implemented
Join
IsoCommand - configures is IsoCommand and is executed from ISOCARDReader interface
This order and intelligent card communication
SUN opened Java Electronic Commerce Framework (JECF),
This is the expansion of the core Java platform, it allows the developer to relax quickly and fast
Use electron application. JECF provides a few classes with intelligent card communication.
The smart cards in our discussion have a read data and write numbers.
According to the order. It is named GFM card by GEMPLUS. You can use it
Type smart cards, just want them to support ISO7816 standards and you understand their A
PDU command format. It is still necessary to do a bit of programming. The memory of the GFM card is 64
A bit or 8/2 is single. You must read data with an algorithm of the model 8.
In other words, you cannot do a length of 1K to a GFM card. Us
The Java code provided here complete this function. Some new smart cards are greater
Single bit read and write unit. Therefore, it is written in a string? 123456789 敚? You must
Send two commands for appropriate category. (Yes, the smart card is so difficult to edit
Process. This limit is also a promise when the storage card and the handler type card integrates.
Disappear.
To read the string of the string on the top, you should send an EAD? Command. This
Two commands are written in the next surface according to the APDU. Used Java read and write smart cards in our example. The value in the lower surface shows how to group
APDU. The structure of the APDU is determined in the GCM programming.
Location of Data Upper Lower
256 0x00 0x00
1023 0x00 0x00
3093 0x00 0x00
Shake PPER? And 搇 搇 是 是 地地 高 位 and low-bit bytes.
Several examples may be helpful in clarity. This table's Upper and Lower values
Provide a certain address for storing data. We are discussed to the GPM896 intelligent cartoon
The two ways of letters are:
IsoCommand (0,0xd0,0, upper, limited, 8); // Write 8 bytes Tothe Address
IsoCommand (0,0xB0, 0, Upper, Lower, 8); // r 8 8 bytes from
The address
Communication between the browser and the smart card
The existence of three local interfaces is lacking on the main issuer group.
Solution, can not be able to make a while, if you are in Java open environment
Developers provide an API that is easy to remember. If the sales of the fruit is supported
JNi, at least the interface can keep it, you don't have to make a large amount of time to tie the interface
set. Of course, you must write a small amount of local code, but there is a uniform interface
It is worthless. I tried all three APIs, and I finally happened that JNI is more than it.
It is more likely to be simple, and it is easy to implement. Quanhe Hotjava
It is best, this you can sign the class with the servant communication, then
Use them, more than two other navigers are much less. Sun is closest
It also announced the help of the browser company to realize the new JDK / JVM recommendation.
The pre-face discussion surroundes if and a hardware device communication that does not support JDK
. In the next few articles, we will no longer use? Local interface 敚?
Use a work standard with the intelligent card communication. I chose this standard
The quasi is the OpenCard standard with the PC / SC bridge. I will use OpenCard instead of PC / SC book
Write a application, what is it?
As a developer, you have a variety of choices. Talking about this is a good
Things, but this can also lead to inconsistency in the cost increase and functionality.
Especially when the API you choose is not supported by multiple platforms. For example, you decided
Write the PC / SC Standard Book Write the Win32 Series Pace Application Procedure. in case
Your application program is a customer use and will be used on WebTV,
Your choice is completely wrong. A message will be flashing on the display:
? Waiting for the Pentium version to be WEBTV. ? Smart card is used outside the Win32 table and CE unit
The market above the market. Then what should you like? Use the OpenCard standard to abandon the lack of the Internet Explorer. In fact, I think it will puminate all APIs.
Like a single platform is a very implied choice.
Recommended application
Now you should start writing a more real value of smart card applications
Order. In the coming, I went to see the doctor, and he recommended a specific treatment.
Treat, we may be in the face:
Doctors have to ask for your office card.
The card is inserted into the reader, and the doctor checks to see you before. (For complexion
People who have a history of medical treatment may need a special family system. )
Doctors are noted that the same time in the same time, a doctor is taking care of you, and both of them
There is a bad reaction to the drug. Because this doctor will lose to the smart card before this
Enter another medicine. (Identification results are: smart cards can pass medicine
Pharmacy. )
You are now able to take the card to the pharmacy and insert the reader in that there.
The pharmacter reads out your medicine house.
If you think that the pharmacist is more solving medicine than medical students, he believes that medical students should be rewarded.
The drug opened. The pharmacy teacher calls the doctor, and the phone number is included in the wisdom.
The record of the card can be recorded. After the short-term discussion, two people reached a result.
And update the records in the card.
Pharmacist fills in your medicine, and take the proposal of the hospital from the card, and
Trunk with the Advantaged Advancement.
The hospital is verified that you are a true member, the drug is self-emphasis on the hand of the doctor, and
Data on the new card.
The pharmacter took you 5 US dollars.
Is this not a more secure system? When is it better than a more
In the case of the system, it is currently the time of paper and pen, and people act as one of them.
Connection points of the diverse meter system system. In fact, in Germany, medical treatment-sensitive card has been
It is used.
Advantages of intelligence
For more than a comparative office, the card is called, the smart card is given to the bottom.
What good is it? Listed by them in the next side:
When you want to change the data in the card, out the door, or to the new medical treatment
Various prescriptions that can be opened in front of the treatment treatment.
Medical treatments that are time to pay in the urgency or ER worker needs
History history.
Details of the medical treatment history, including time, location and degree
interest.
It can be used to give the data to a specific person, and it is also possible to choose from
Where is it updated by data.
For the benefit of the above, we need to open a application
The program allows us to read data to the smart card with a safe form. in case
Have a hardware device, we need to write a specific string or from the smart card
read out. These things that must be transferred through callstrings.java are completed. This
Some original categories provide great convenience for the programming of the smart card.
We also added a beans style event handler to use to know the use of households.
Insertion of the smart card. (This is the final change to thank Jecf
High-level high-level open people Dan Guinab. )
Consider the code segment from rwstring.java:
Import java.commerce.smartcards. *; packages form Jecf to Supportsmart Cards
Import java.commerce.gemplus. *;
Import java.commerce.DeviceManager. *;
Import java.awt.event. *;
/ **
* Read and Write Gemplus Memory Cards. The Following Cards
* Aresuted:
* GFM 4K
* /
Public class rwstring {
Public static void main (string args []) {
WriteString WS = New WriteString (ARGS);
}
}
Class WriteString IMPLEments ActionListener {
IsocardReader isoreader = null;
Int portnumber;
String DeviceName;
Public WRITESTRING (String Args []) {
// process the arguments
For (int i = 0; i IF (args [i] .equals ("- port")) { Portnumber = 0; } else if (args [i] .Equals ("- device")) { DeviceName = New String (args [ i]); } else if (args [i] .equals ("- help")) { System.out.println ("USAGE: STRING -Port # -Device com1 or / dev / ttya "); System.exit (0); } } SmartCardDetector Scdetector = New SmartCardDetector (1000); Scdetector.AddActionListener (this); Scdetector.StartDetection (); } Public void actionPerformed (ActionEvent ActionEvent) { System.out.println ("Action Performed:" ActionEvent; Try { // Open the Requested Port Number SmartCardReader Scr = New SmartCardReader (); Isoreader = scr.getDefault (); Isoreader.BegincardardSession (GemplusserialReader.gfm); Cardstrings.writegfmstring ("01234567", isoreader; System.out.println (Cardstrings.Readgfmstring (isoreader); Isoreader.endcardSession (); } catch (exception e) { System.out.println ("Exception" E); E.PrintStackTrace (); } finally { Try { Isoreader.endcardSession (); } catch (exception efinally) { System.out.println ("COULD NOT POWER) Down Card Perform Manual Reset "); } } } } The Cardstrings class provides a part for reading writing a string to the smart card. law. These strings are started in two bytes in the memory store in the smart card. The length field, followed by six empty bytes, and then the back is a string data. For those who have been developed by the truthful starting smart card, they must It is necessary to face a challenge, that is, the method of repairing CardString, completing Java's read and write. This kind of work is more flexible than the read-write string. If it is now the writing of Java objects, you don't have to consider the grid to store data. formula. I want to ask a simple question from a big family to put the string. Stored into the smart card. The following example is a complete data read and write application. Order, it applies to GCR400 readers and GEMPLUS GFM smart cards. Only one point of attachment Once work, it can support its type reader. But you don't have to worry That kind of work, because of the next month, we will provide one with OpenCard. This kind of work is made. This OpenCard will quickly become the standard of this industry. Package java.commerce.memorycards; Import java.io.ioException; Import java.commerce.smartcards. *; Import java.commerce.gemplus. *; Public class cardstrings { / ** * Write a string, Since the card is MODULO 8 and WE ARE * NOT USING SERIALIZED Objects - The First Two Bytes Are THE * Length Followed by Six Spare Bytes. Strings Longer Than 4096 - 48 * bits will be truncated. * / Public Static Void Writegfmstring (String S, IsocardReader isoreader) { IsoCommand WCMD; IsoCardinputstream Winput; INT UPPER, LOWER; Short Length = (Short) s.ley (); // length of the input string System.out.println ("Length IS" Length); Try { // Write the Control Section Out WCMD = New IsoCommand (0, 0xD0, 0, 0, 8, 0); // Save the Length Wcmd.data.writeshort (Length); System.out.Println ("Write out the length"); Winput = wcmd.execute (isoreader, New gemplusreaderfailurehandler ()); // Write the string OUT INT whOLEAMOUNT = Length / 8; // Groups of 8 Int remainder = length% 8; // remainder // write the string out groups of 8 For (int L = 1; l <= wholeamount; l ) { System.out.println ("Writing 8 Bytes AT" (l * 8)); Upper = (l * 8) >> 8; Lower = (l * 8) & 0xff; WCMD = New IsoCommand (0, 0xD0, Upper, Lower, 8,0); INT INDEX = ((L-1) * 8); Wcmd.data.writestring (S.Substring (INDEX), 8); System.out.println ("Write Out Bytes AT" Index); Winput = wcmd.execute (isoreader, New gemplusreaderfailurehandler ()); } // Write the remainder out Upper = ((WHOLEAMOUNT 1) * 8) >> 8; Lower = ((WHOLEAMOUNT 1) * 8) & 0xFF; WCMD = New IsoCommand (0, 0xD0, Upper, Lower, Remainder, 0); INT INDEX = (Wholeamount * 8); Wcmd.data.writeString (S.Substring (Index), Remainder; Winput = wcmd.execute (isoreader, New gemplusreaderfailurehandler ()); } catch (exception e) { System.out.println ("Exception" E); E.PrintStackTrace (); } } / ** * Read A String, Since The Card Is MODULO 8 and WE Are * NOT USING SERIALIZED Objects - The First Two Bytes Are THE * Length Followed by Six Spare Bytes. Strings Longer Than 4096 - 48 * bits will be truncated. * / Public Static String Readgfmstring (isocardReader isoreader) { IsoCommand rcmd; IsoCardinputStream Rinput; INT UPPER, LOWER; Short Length; StringBuffer SB = new stringbuffer (); Try { // read the control section Rcmd = new isocommand (0, 0xB0, 0, 0, 0, 8); // read the length Rinput = rcmd.execute (isoreader, New GemplusReaderfailurehandler )); Length = (short) rinput.readshort (); System.out.println ("The Length IS:" Length; // read the string INT wholaamount = length / 8; // groups Of 8 Int remainder = length% 8; // Remainder // read the string in groups of 8 For (int L = 1; l <= wholeamount; l ) { System.out.println ("Reading 8 Bytes AT" (l * 8)); Upper = (l * 8) >> 8; Lower = (l * 8) & 0xff; Rcmd = new isocommand (0, 0xB0, Upper, Lower, 0, 8); Rinput = rcmd.execute (isoreader, New GemplusReaderfailurehand LER ()); Sb.append (Rinput.ReadString (8)); System.out.println ("String to this point:" sb.toString ()); } // read the remainder Upper = ((WHOLEAMOUNT 1) * 8) >> 8; Lower = ((WHOLEAMOUNT 1) * 8) & 0xFF; RCMD = New IsoCommand (0, 0xB0, Upper, Lower, 0, 8); Rinput = rcmd.execute (isoreader, New GemplusReaderfailurehandler )); Sb.append (Rinput.Readstring (remainder); System.out.println ("String to this point:" sb.toString ()); } catch (exception e) { System.out.println ("Exception" E); E.PrintStackTrace (); Return (NULL); } Return (sb.toString ()); } } After the article In the back of the article, we will discuss this question: medical students How can I add an entry in your smart card to a full sign? Name, this is a square card to play its actual role. This application must also provide the function of displaying the history of your office card. This kind of function can be used The household is used, and it can also be provided to the pharmacist or a tight rescue person. again Plus your past medical treatment history with a warning of the colors, and Social diseases such as chronic diseases, your intelligence, the square card will provide a number of applications where applications. in conclusion This article is a paved work for this series of articles related to the smart card. . This series of special questions in JavaWorld includes four articles. Will be made by this article If you are available, I hope to benefit to your application procedure in your smart card. . I will use Java Electronic Commerce Framework (JECF) as a construction The basis of the order of the order. JECF provides several classes for simplification and intelligent cards. Approach The large number of codes and examples in the order come from JECF. You can find it from the entrance To download the JECF, it has been included in the support of the smart card.