U.S. patent application number 09/844246 was filed with the patent office on 2002-10-31 for method and system for establishing a remote connection to a personal security device.
Invention is credited to Audebert, Yves Louis Gabriel, Clemot, Olivier.
Application Number | 20020162021 09/844246 |
Document ID | / |
Family ID | 25292214 |
Filed Date | 2002-10-31 |
United States Patent
Application |
20020162021 |
Kind Code |
A1 |
Audebert, Yves Louis Gabriel ;
et al. |
October 31, 2002 |
Method and system for establishing a remote connection to a
personal security device
Abstract
System and method for establishing a remote connection over a
network with a personal security device connected to a local client
without using a local APDU interface or local cryptography.
Inventors: |
Audebert, Yves Louis Gabriel;
(Los Gatos, CA) ; Clemot, Olivier; (Fremont,
CA) |
Correspondence
Address: |
STEVENS, DAVIS, MILLER & MOSHER, LLP
1615 L Street, N.W., Suite 850
Washington
DC
20036
US
|
Family ID: |
25292214 |
Appl. No.: |
09/844246 |
Filed: |
April 30, 2001 |
Current U.S.
Class: |
726/4 ;
713/150 |
Current CPC
Class: |
H04L 63/20 20130101;
H04L 63/0428 20130101; H04L 69/32 20130101; H04L 12/4633 20130101;
H04L 63/0807 20130101; H04L 63/0853 20130101; H04L 9/40 20220501;
G06Q 20/3672 20130101; G06F 21/6218 20130101; H04W 12/06 20130101;
H04L 67/141 20130101; H04L 63/10 20130101; H04L 69/08 20130101;
H04L 63/0876 20130101 |
Class at
Publication: |
713/201 ;
713/150 |
International
Class: |
H04L 009/00 |
Claims
What is claimed:
1. A system for establishing a remote communications pipe between a
PSD and a remote computer system over a network using a client as a
host to said PSD, said system comprising: at least one local client
further comprising means for functionally connecting to a PSD
Interface and said network, wherein said client is functionally
communicating over said network with said remote computer system
and further comprising; client communications means for
transmitting and receiving messages over said network using a
packet based communications protocol, and for transmitting and
receiving APDUs through said PSD Interface; first client data
processing means for receiving incoming messages using said client
communications means and separating encapsulated APDUs from said
incoming message packets and routing said APDUs through said PSD
Interface; and second client data processing means for
encapsulating said APDUs received through said PSD Interface into
outgoing message packets and transmitting said outgoing message
packets over said network using said client communications
means.
2. The system according to claim 1 further comprising; at least one
PSD comprising means for functionally connecting to said PSD
Interface and wherein said PSD is functionally communicating
through said Interface; and further comprising; PSD communications
means for transmitting and receiving APDU messages through said PSD
Interface; and PSD processing means for interpreting said APDU
messages, executing commands included in said APDU messages and
transmitting responses in said APDU format through said PSD
Interface using said communications means, and memory storage means
for storing at least one unique identifier.
3. The system according to claim 1 further comprising; at least one
remote computer system comprising means for functionally connecting
to said network and wherein said remote computer system is
functionally communicating with said client; and further
comprising; server communications means for transmitting and
receiving messages over said network using said packet
communications protocol; first server data processing means for
receiving requests from at least one applications level program,
translating said requests into APDU format and transmitting said
APDU formatted requests to a second server data processing means,
second server data processing means for encapsulating said APDUs
receiving from said first server data processing means Into
outgoing message packets and transmitting said outgoing message
packets over said network using said server communications means,
third server data processing means for receiving incoming messages
using said server communications means and separating encapsulated
APDUs from said incoming message packets and routing said APDUs to
a forth server data processing means; and forth server data
processing means for receiving and translating said APDUs sent by
said third server data processing means into another message format
and transmitting said translated message to at least one
applications level program.
4. The system according to claim 1 wherein said network is a public
network.
5. The system according to claim 1 wherein said network Is a
private network.
6. The system according to claim 1 wherein said protocol is an open
communications protocol.
7. The system according to claim 1 wherein said protocol is a
secure communications protocol.
8. A system for establishing a secure remote communications pipe
between a PSD and a remote computer system over a network using a
client as a host to said PSD, said system comprising: at least one
local client further comprising means for functionally connecting
to a PSD Interface, wherein said client is functionally
communicating over said network with said remote computer system;
and further comprising; client communications means for
transmitting and receiving messages over said network using a
packet based communications protocol, and for transmitting and
receiving APDUs through said PSD Interface; and first client data
processing means for receiving incoming messages using said client
communications means and separating encapsulated APDUs from said
incoming message packets and routing said APDUs through said PSD
Interface; and second client data processing means for
encapsulating said APDUs received through said PSD Interface into
outgoing message packets and transmitting said outgoing message
packets over said network using said communications means.
9. The system according to claim 8 further comprising; at least one
PSD comprising means for functionally connecting to said PSD
Interface and functionally communicating through said Interface;
and further comprising; PSD communications means for transmitting
and receiving encrypted APDU messages through said PSD interface;
first PSD processing means for decrypting incoming encrypted APDU
messages using stored cryptographic information; second PSD
processing means for interpreting said APDU messages, executing
commands included in said APDU messages; third PSD processing means
for encrypting outgoing APDU response messages using stored
cryptographic information and transmitting said responses in said
APDU format through said PSD interface using said communications
means; and memory storage means for storing at least one unique
identifier and at least one cryptographic key.
10. The system according to claim 8 further comprising; at least
one remote computer system comprising means for functionally
connecting to said network, wherein said remote computer system is
functionally communicating with said client; and further
comprising; server communications means for transmitting and
receiving messages over said network using said packet
communications protocol; first server data processing means for
receiving requests from at least one applications level program,
translating said requests into APDU format and transmitting said
APDU formatted requests to a cryptography server data processing
means; second server data processing means for encapsulating said
APDUs receiving from said cryptography data processing means into
outgoing message packets and transmitting said outgoing message
packets over said network using said server communications means;
third server data processing means for receiving incoming messages
using said server communications means and separating encapsulated
APDUs from said incoming message packets and routing said APDUs to
a cryptography data processing means; forth server data processing
means for receiving and translating said APDUs sent by said
cryptography processing means into another message format and
transmitting said translated message to at least one applications
level program; and cryptography data processing means for
encrypting outgoing APDUs received from said first server data
processing means and sending the encrypted APDUs to said second
server data processing means and for decrypting incoming encrypted
APDUs received from said third server data processing means and
sending the decrypted APDUs to said forth server data processing
means.
11. The system according to claim 8 wherein said network is a
public network.
12. The system according to claim 8 wherein said network is a
private network.
13. The system according to claim 8 wherein said protocol is an
open communications protocol.
14. The system according to claim 8 wherein said protocol is a
secure communications protocol.
15. The system according to claim 1 or 8 wherein said network is a
hardwired network.
16. The system according to claim 1 or 8 wherein said network is a
digital cellular network.
17. The system according to claim 1 or 8 wherein said network is a
wireless network.
18. The system according to claim 1 or 8 wherein said network is an
optical network.
19. The system according to claim 1 or 8 wherein said network is a
telephone acoustical network.
20. A method of establishing a communications pipe between a PSD
and a remote computer system over a network using a client as a
host to said PSD, wherein said client and said remote computer
system are in functional communications using a packet based
communications protocol over said network, said method comprising:
generating a request to access said PSD on said remote computer
system, wherein said request is in a non-native protocol for
communicating with said PSD and said request is generated by an API
Level Program, converting said request from said non-native
protocol to an APDU formatted protocol using a first server data
processing means, encapsulating said APDU formatted protocol into
said packet based communications messages producing an encapsulated
APDU message, using a second server data processing means,
transmitting said encapsulated message over said network using said
packet based communications protocol, receiving said encapsulated
message sent over said network by said client, processing said
message using a first data processing means to separate said
encapsulated APDU message, routing said APDU message through a
hardware device port assigned to a PSD Interface, wherein said PSD
Interface is in processing communication with said PSD, receiving
said APDU message through said PSD Interface by said PSD and
processing said APDU message using a first internal PS1 data
processing means, generating a response message in APDU format by
said PSD using a second internal PSD data processing means and
transmitting said response through said PSD Interface, receiving
said APDU response message through said PSD Interface by said
client and encapsulating said APDU response message into said
packet based communications message producing an encapsulated APDU
message, using a second data processing means, transmitting said
encapsulated message over said network using said packet based
communications protocol, receiving said encapsulated message sent
over said network by said remote computer system, processing said
message using a third server data processing means to separate said
encapsulated APDU message, converting said response message from
said APDU formatted protocol using a forth server data processing
means, and forwarding said response to at least one API Level
Program.
21. The method according to claim 20 wherein said network is a
public network.
22. The method according to claim 20 wherein said network is a
private network.
23. The method according to claim 20 wherein said protocol is an
open communications protocol.
24. The method according to claim 20 wherein said protocol is a
secure communications protocol.
25. The method according to claim 20 wherein said communications
pipe is initiated automatically upon connection of said PSD to said
local client.
26. The method according to claim 20 wherein said communications
pipe is initiated by a client requesting access to information
contained on one or more networked clients.
27. The method according to claim 20 wherein said communications
pipe is initiated by a client requesting access to information
contained on one or more networked remote computer systems.
28. The method according to claim 20 wherein said communications
pipe is initiated by one or more networked remote computer systems
requesting access to said PSD.
29. A method of establishing a secure communications pipe between a
PSD and a remote computer system over a network using a client as a
host to said PSD, wherein said client and said remote computer
system are in functional communications using a packet based
communications protocol over said network, said method comprising:
generating a request to access said PSD on said remote computer
system, wherein said request is in a non-native protocol for
communicating with said PSD and said request is generated by an API
Level Program, converting said request from said non-native
protocol to an APDU formatted protocol using a first server data
processing means, and sending said APDU formatted protocol to a
cryptography data processing means, receiving and encrypting said
APDUs formatted protocol using cryptography data processing means
and sending the encrypted APDUs to said second server data
processing means, wherein said encryption method is
pre-established, encapsulating said encrypted APDUs into said
packet based communications messages producing an encapsulated and
encrypted APDU message, using a second server data processing
means, transmitting said encapsulated message over said network
using said packet based communications protocol, receiving said
encapsulated message sent over said network by said client,
processing said message using a first data processing means to
separate said encapsulated and encrypted APDU message, routing said
APDU message through a hardware device port assigned to a PSD
Interface, wherein said PSD Interface is in processing
communication with said PSD, receiving said APDU message through
said PSD Interface by said PSD and decrypting said APDU message
using an internal PSD data cryptography means, wherein said
cryptography means is pre-established, and sending decrypted APDU
messages to a first internal PSD data processing means, receiving
said APDU message from said internal PSD data cryptography means
and processing said APDU message using said first internal PSD data
processing means, generating a response message in APDU format by
said PSD using a second internal PSD data processing means,
encrypting the APDU response message using said internal PSD data
cryptography means and transmitting said response through said PSD
Interface, receiving said APDU response message through said PSD
Interface by said client and encapsulating said APDU response
message into said packet based communications message producing an
encapsulated APDU message, using a second data processing means,
transmitting said encapsulated message over said network using said
packet based communications protocol, receiving said encapsulated
message sent over said network by said remote computer system,
processing said message using a third server data processing means
to separate said encapsulated and encrypted APDU message,
decrypting said encrypted APDUs receiving from said third server
data processing means using said cryptography data processing means
and sending the decrypted APDUs to said forth server data
processing means, converting said response message from said APDU
formatted protocol using a forth server data processing means, and
forwarding said response to at least one API Level Program.
30. The method according to claim 29 wherein said network is a
public network.
31. The method according to claim 29 wherein said network is a
private network.
32. The method according to claim 29 wherein said protocol is an
open communications protocol.
33. The method according to claim 29 wherein said protocol is a
secure communications protocol.
34. The method according to claim 29 wherein said secure
communications pipe is initiated by a client requesting access to
information contained on one or more networked clients.
35. The method according to claim 29 wherein said secure
communications pipe is initiated by a client requesting access to
information contained on one or more networked remote computer
systems.
36. The method according to claim 29 wherein said secure
communications pipe is initiated by one or more networked remote
computer systems requesting access to said PSD.
37. The method according to claim 20 or 29 wherein said network is
a hardwired network.
38. The method according to claim 20 or 29 wherein said network is
a digital cellular network.
39. The method according to claim 20 or 29 wherein said network is
a wireless network.
40. The method according to claim 20 or 29 wherein said network is
an optical network.
41. The method according to claim 20 or 29 wherein said network is
a telephone acoustical network.
Description
FIELD OF INVENTION
[0001] The present invention relates to a data processing method
and system for establishing a communications path (the "pipe") over
a communications network between a Personal Security Device (PSD)
and a Remote Computer System in a way that does not require
localized APDU generation to communicate with a PSD nor discloses
the security mechanisms implemented in the PSD to a local Client
computer.
BACKGROUND OF INVENTION
[0002] The current art involving the use of personal security
devices (PSD), for example, smart cards, subscriber identity module
(SIM) cards, biometric devices, or combinations thereof, requires
specialized messaging software or firmware to be installed on a
local Client in which the PSD is connected. These specialized
routines are used to translate from higher level messaging formats
into low-level messaging packets and are generally known in the art
as an Application Protocol Data Unit (APDU) Interface. Installing
and maintaining APDU Interfaces for a large number of local Clients
can be a substantial and costly challenge in a multi-user
organization. In addition, Client resources such as disk space,
memory and computing resources are unnecessarily tied up by the
software, which could be better utilized for other purposes.
[0003] Another significant limitation of the current art is that
security mechanisms are implemented on a local Client to gain
access to secure functions contained within a connected PSD. In a
typical secure transaction with a PSD, a cryptographic key are
generated in the local Client using API level software, which are
subsequently translated into APDU format using an APDU Interface
and sent to the PSD to access the Intended secure function.
[0004] The potential exposure of secure information weakens the
basic functionality of current PSDs, which is to protect private
keys and other proprietary information from being unnecessarily
disclosed. The limitations of the current art are such that
localized key generating mechanisms, APDU interface software and
transactions involving this software are potentially vulnerable to
compromise by unauthorized programs running on the local Client or
by other illicit means intending to monitor the key generation
process and thus gaining access to security codes, algorithms and
other sensitive data contained within the PSD or elsewhere, These
limitations are magnified in a multi-user environment where the
ability to control unauthorized access to local Clients and
vulnerable software contained therein are limited.
SUMMARY OF INVENTION
[0005] This invention resides in a method of generating a
communications pipe between a personal security device (PSD) and a
Remote Computer System over a network without requiring APDU
interface software and/or security mechanism to be installed on a
local Client in which a PSD is connected. The improvements
comprising relocation of APDU interface and security mechanisms
from local Clients in which the PSD is connected to one or more
Remote Computer Systems; using a local Client as a host which
allows a connected PSD to communicate with one or more Remote
Computer Systems over a network. By moving APDU interface and
security mechanisms from numerous local Clients to a few secure
Remote Computer Systems, the overall data processing system is much
easier to maintain and significantly less susceptible to
unauthorized access or compromise.
[0006] The communications pipe generation may be initiated
automatically upon connection of a PSD to a local client, by a
client side request for access to information contained on another
networked client or remote computer system, or by a remote computer
system requesting access to a PSD.
[0007] In this invention, APDUs are encapsulated into a common
communications protocols, such as TCP/IP, WAP, etc. which are used
to communicate between one or more Clients with one or more Remote
Computer Systems. A program installed on each local Client and each
Remote Computer System separates the incoming low-level APDUs from
the incoming message packets and routes the APDUs to a connected
PSD via its hardware device interface. In a multi-tasking operating
environment, the Client is free to perform other data processing
functions while transactions between a PSD and a Remote Computer
System using the pipe execute in the background. In situations
where a firewall may mask individual client network addresses,
remote computer based pipe software should be installed on the
proxy server. Other solutions common to virtual private networking
may also be employed.
[0008] For purposes of this invention a client may be any
intelligent device such as a personal computer, laptop, cellular
telephone, personal data assistant (PDA), etc. which provides the
network communications interface between a PSD and a remote
computer system. A remote computer system includes any intelligent
device which provides the necessary APDU communications interface
between networked devices and a PSD.
[0009] In the first embodiment of the invention, a communications
pipe is formed when a Remote Computer System generates the proper
APDUs which are encapsulated into an agreed upon communications
protocol, transmitted (broadcast for general polling or specific IP
address of Client) over a network, invoking a reply by one or more
PSDs which are subsequently received by the requesting Remote
Computer System. The latter described pipe formation process is
equivalent to a handshake between a PSD and a Remote Computer
System.
[0010] This embodiment of the invention is useful in determining
the status, identification and other derived information related to
responding PSDs. For example, an APDU formatted polling command may
be transmitted from the Remote Computer System over a network to
all PSDs capable of receiving the command requesting each PSD to
return its unique identification number or other some other
non-proprietary information. Based on the replies received, it is
possible to determine which PSDs are active, their relative
location, length of time each PSD has been active, network traffic
information, etc. This embodiment of the invention does not require
the use of secure communications protocols.
[0011] In a second embodiment of the invention, referred to as
secure pipe generation, security mechanisms are employed to protect
against unauthorized disclosure of proprietary information. The
secure pipe generation process is equivalent to the pipe generating
process described above but includes the added steps of generating
cryptographically secured APDUs, which are then encapsulated into a
secure communications protocol, examples of which include TCP/IP
with secure socket layer (SSL) encryption, IPsec, etc, to generate
a secure pipe between a Remote Computer System and a PSD.
[0012] In this embodiment of the invention, APDUs are encrypted
using the proper keys to unlock secure applications and data
contained within the secure domain of a PSD. Response APDUs
containing sensitive or proprietary information are likewise
encrypted by the PSD and decrypted by the Remote Computer
System.
[0013] The cryptographically secured APDUs are encapsulated into
outgoing message packets using the agreed communications secure
protocol, sent over a network and routed through the PSD hardware
interface by the Client and into the PSD as before. This embodiment
of the invention is useful in initializing a PSD, personalizing a
PSD, accessing secure information contained within a PSD, changing,
upgrading or deleting proprietary algorithms or data contained in a
PSD, authenticating an end user, etc.
BRIEF DESCRIPTION OF DRAWINGS
[0014] A more complete understanding of the present invention may
be accomplished by referring to the following Detailed Description
and claims, when viewed in conjunction with the following
drawings:
[0015] FIG. 1--is a generalized system block diagram for
implementing present invention;
[0016] FIG. 2--is a detailed block diagram depicting initiating a
remote pipe where non-proprietary information is being
requested;
[0017] FIG. 3--is a detailed block diagram depicting establishing a
remote pipe where non-proprietary Information is being
requested;
[0018] FIG. 4A--is a generalized system block diagram for
implementing present invention which includes software-based
security mechanisms;
[0019] FIG. 4B--is a generalized system block diagram for
implementing present invention which includes HSM based security
mechanisms;
[0020] FIG. 5--is a detailed block diagram depicting initiating a
secure remote pipe; and
[0021] FIG. 6--is a detailed block diagram depicting establishing a
secure remote pipe.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENT
[0022] This invention provides a method and system to establish a
remote communications pipe over a network between a Remote Computer
System and a personal security device connected to a host local
Client. In this invention, personal security devices (PSD) are
intelligent devices such as smart cards, biometric devices,
subscriber identification module (SIM) cards, or combinations
thereof having a microprocessor, runtime operating environment, an
input/output communication port, memory storage including
nonvolatile memory and random access memory and embedded software
applications.
[0023] Two embodiments of the invention are described; the first
embodiment in which security mechanisms are not employed and the
second embodiment where security mechanisms are employed.
[0024] Referring now to FIG. 1, a generalized system block diagram
of the invention is depicted. The various layers shown are based on
the Open System Interconnection model (OSI.) For simplicity,
certain layers common to both the Client and Remote Computer System
are not shown and should be assumed to be present and incorporated
into adjacent layers. The layers common to both a Client and Remote
Computer System include:
[0025] an Applications Layer 90 which generally contains higher
level software applications (e.g. word processor) and a user
interface and such as a graphical user interface (GUI);
[0026] an Applications Programming Interface level (API) 100 for
processing and manipulating data for use by either higher or lower
level applications;
[0027] a Communications Layer 105 which contains communications
programs including secure communications capabilities, which enable
a Client to communicate with a Remote Computer System to exchange
information in an agreed upon protocol and visa versa;
[0028] an Operating System Layer 110 or equivalent runtime
environment, which controls the allocation and usage of hardware
resources such as memory, central processing unit (CPU) time, disk
space, hardware I/O port assignments, peripheral device
management;
[0029] a Hardware Driver Layer 120 which permits the operating
system to communicate and control physical devices connected to the
Client's or Remote Computer System's hardware I/O bus; and a
Physical Device Layer 130 where network interface cards (NIC) 140
provide the physical connections to a telecommunications network
45. Other hardware devices may also be connected at this level
80.
Client Specific Features
[0030] A specialized program contained within the API Level 100 of
the Client and referred to as a pipe Client 15, interacts with
Communications Programs contained within the Communications Layer
105. The pipe Client 15 functions to separate-encapsulated APDU
requests from incoming messaging packets received from a network 45
for processing by a locally connected PSD 40. Alternately, outbound
APDU responses generated by a locally connected PSD 40, are
processed by the pipe Client for encapsulation into an agreed upon
communications protocol by Communications Programs contained within
the communications layer 105.
[0031] A software driver contained within the communications layer
105 of the Client and referred to as a PSD Software Interface 20
directs incoming APDUs communicated by the Pipe Client 15 into the
I/O device port connecting the PSD Hardware Device Interface 25 to
the locally connected PSD 40. Outgoing APDUs generated by the PSD
are communicated through the PSD Hardware Device Interface 25
through the 110 device port to the PSD Software Interface 20 and
subsequently communicated to the Pipe Client 15.
Remote Computer System Specific Features
[0032] A first specialized program contained within the API Level
100 of the Remote Computer System 50 and referred to as an APDU
interface 55, translates higher level messaging formats into
low-level APDU protocols required to communicate with a PSD 40.
Alternately, the APDU interface 55 translates incoming APDU
responses received from a PSD 40 into higher level messaging
formats used by programs in the API Level 55 and Applications Level
90 of the Remote Computer System.
[0033] A second specialized program contained within the API Level
100 of the Remote Computer System 50 and referred to as a Pipe
Server 70, interacts with Communications Programs contained within
the Communications Layer 105. The Pipe Server 70 functions to
separate encapsulated APDU requests from incoming messaging packets
received from a network 45 for processing by the APDU Interface 55.
Alternately, outbound APDU requests translated by the APDU
Interface 55, are processed by the pipe server for encapsulation
into an agreed upon communications protocol by Communications
Programs contained within the communications layer 105.
Other Inventive Features
[0034] The connection 30 between the PSD 40 and PSD Hardware
Interface 25 includes but is not limited to traditional electrical
or optical fiber connections or wireless means including optical,
radio, acoustical, magnetic, or electromechanical. Likewise the
connection 75 between the Client 10 and the network 45, and the
connection 75 between the Remote Computer System 50 and the network
45 may be accomplished analogously.
[0035] The network, shown generally at 45, includes both public and
private telecommunications networks connected by traditional
electrical, optical, electro-acoustical (DTMF) or by other wireless
means. Any mutually agreed upon communications protocol capable of
encapsulating APDU commands may be employed to establish a
communications pipe including open or secure communications
protocols.
[0036] Referring now to FIG. 2, depicts initiating a communications
pipe between the Remote Computer System 50 and the PSD 40 connected
to a client. In this depiction, Remote Computer System 50 is
sending a request to PSD 40 for non-proprietary embedded
information 35, for example an identification number. PSD 40 is
connected 30 to the local Client 10 using PSD Interface 25. PSD
Interface 25 communicates with the Client 10 via hardware device
port 5.
[0037] To initiate a remote pipe between Remote Computer System 50
and PSD 40, Remote Computer System 50 generates a request 200 by
way of API programs 100 which is translated into APDU format 220 by
the APDU Interface 55 and sent to the Pipe Server 70 for message
encapsulation. The encapsulated APOUs are then sent 210 to the
Communications Programs 105 for incorporation into outgoing message
packets 230.
[0038] The message packets 230 containing the encapsulated APDUs
are transmitted 75 over the network 45 via a network interface card
(I/O) 130. The Client 10, receives the message packets 240
containing the encapsulated APDUs which are received from the
network 45 via a network interface card (I/O) 130 installed on the
local Client. The incoming messages are processed by Client-side
Communications Programs 105 and routed 250 into the Pipe Client 15
for APDU extraction. The extracted APDUs are sent 260 through
hardware device port 5, routed 270 into the PSD Interface 25 and
sent to PSD 40 via connection 30 for processing within PSD domain
35.
[0039] Alternative requests to form a communications pipe 75
between a Remote Computer System 50 and a PSD 40 may be initiated
by Client 10 requesting access to information contained on one or
more networked local clients, by connecting a PSD 40 to PSD
Interface 25 which initiates a request to form a communications
pipe 75, or by another remote computer system requesting access to
PSD 40.
[0040] Referring now to FIG. 3, depicts a PSD response which
establishes the communications pipe between PSD 40 and Remote
Computer System 50. In this depiction, the request previously
received is processed within the PSD domain 35, which generates a
response message. The PSD response is sent in APDU format from PSD
40 through connection 30 and into PSD interface 25. The PSD
response is then routed 370 through hardware device port 5 and sent
360 to the Pipe Client 15 for processing and encapsulation. The
resulting message packets are then sent 350 to the Client-side
Communications Programs 105 for incorporation into outgoing message
packets 340. The message packets 340 containing the encapsulated
APDUs are transmitted 75 over the network 45 via a network
interface card (I/O) 130.
[0041] The Remote Computer System 50 receives the message packets
330 containing the encapsulated APDUs, which are received from the
network 45 via a network interface card (I/O) 130 installed on the
Remote Computer System. The incoming messages are processed by
server-side Communications Programs 105 and routed 310 into the
Pipe Server 70 for APDU extraction. The extracted APDUs are sent
320 to the APDU Interface 55 for processing and translation into a
higher-level format and sent 300 to API Level programs 100 for
processing and further transactions with the PSD 40 if desired.
[0042] Referring now to FIG. 4A, a generalized system block diagram
of one implementation of a secure communications pipe. The general
system block diagram includes an additional software-based
cryptography module 470 installed on the Remote Computer System,
which is not shown in FIG. 1.
[0043] FIG. 4B depicts an alternative to using software-based
security mechanisms. In this alternative embodiment of the
invention, a Hardware Security Module (HSM) 440 Is employed to
perform cryptographic functions. To access the HSM a software
driver referred to as an HSM S/W Interface 475, is included in the
API Level 100. The HSM software driver communicates with a physical
device interface included in the Physical Device Layer 130. The
physical device interface is installed on the I/O bus of the Remote
Computer System, and is referred to as an HSM H/W Interface 485.
The HSM module 440 is connected 430 to the HSM H/W Interface a
manner analogous to the PSD connection to the PSD Interface
previously described. The use of HSM technologies provides
end-to-end security, which further reduces the possibility of
unauthorized disclosure of cryptographic or sensitive
information.
[0044] Both APDU messaging security mechanisms shown in FIGS. 4A
& 4B are used to generate cryptographic keys necessary to
unlock secure functions and data contained within the secure domain
of a PSD, encrypt outgoing APDUs and decrypt incoming encrypted
APDUs. The security mechanisms employed in generating a secure pipe
may include synchronous, asynchronous or any combination of
cryptography methods.
[0045] Secure communications protocols used to communicate over a
network are accomplished by Communications Programs contained
within the Communications Layer 105. Cryptography used in
generating secure communications may employ the security mechanisms
described for APDU messaging, employ separate mechanisms or employ
any combination thereof.
[0046] Referring now to FIG. 5, depicts the initiating a secure
pipe between the Remote Computer System and the PSD 40 connected to
Client 10. In this depiction, Remote Computer System 50 is sending
a secure request to PSD 40 for proprietary embedded information 35,
for example an authentication password. PSD 40 is connected 30 to
the local Client 10 using PSD Interface 25. PSD Interface 25
communicates with the Client 10 via hardware device port 5.
[0047] To initiate a remote secure pipe between Remote Computer
System 50 and PSD 40, a request 500 is generated on Remote Computer
System 50 to access PSD 40 by way of API programs 100 which are
translated into APDU format by the APDU Interface 55. The APDUs are
then sent 520 to a Security Module 525 for encryption using a
pre-established cryptography method. The proper cryptographic
parameters may be determined by using a look-up table or database,
which cross-references the PSD's unique internal identification
information with one or more codes necessary to implement the
appointed cryptography method.
[0048] The encrypted APDUs are then routed 510 to the Pipe Server
70 for message encapsulation. The encapsulated APDUs are then sent
530 to the Communications Programs 105 for processing, encryption
using a pre-established secure communications protocol and
incorporation into outgoing message packets 535. The secure message
packets 535 containing the encrypted and encapsulated APDUs are
transmitted 75 over the network 45 via a network interface card
(I/O) 130.
[0049] The Client 10, receives the message packets 540 containing
the encrypted and encapsulated APDUs which are received from the
network 45 via a network interface card (I/O) 130 installed on the
local Client.
[0050] The incoming encrypted message packets are decrypted and
processed using the pre-established cryptography employed in the
secure communications protocol by client-side Communications
Programs contained in the Communications Layer 105. The unencrypted
message packets still containing the encrypted APDUs are routed 550
into the Pipe Client 15 for APDU extraction. The extracted APDUs
are sent 560 through hardware device port 5, routed 570 into the
PSD Interface 25 and sent to PSD 40 via connection 30 for
decryption and processing within the secure domain 35 of the PSD
40. Using a pre-established cryptography method, incoming secure
ARDUs are decrypted and requests processed.
[0051] Referring now to FIG. 6, depicts a PSD secure response,
which establishes the secure communications pipe between PSD 40 and
Remote Computer System 50. In this depiction, the secure request
previously received is processed within the secure domain 35 of the
PSD 40, which causes the PSD to generate a secure response message
using a pre-established cryptography method.
[0052] The PSD secure response is sent in APDU format from PSD 40
through connection 30 and into PSD interface 25. The PSD secure
response is then routed 670 through hardware device port 5 and sent
660 to the Pipe Client 15 for processing and encapsulation. The
resulting message packets are then sent 650 to the Client-side
Communications Programs 105 for processing, encryption using a
pre-established secure communications protocol and incorporation
into outgoing message packets 640. The message packets 640
containing the encapsulated APDUs are transmitted 75 over the
network 45 via a network interface card (I/O) 130.
[0053] The Remote Computer System 50, receives the message packets
635 containing the encapsulated APDUs from the network 45 via a
network interface card (I/O) 130 installed on the Remote Computer
System. The incoming messages are processed and decrypted using the
pre-established cryptography method employed in the secure
communications protocol by the server-side Communications Programs
105 and routed 610 into the Pipe Server 70 for secure APDU
extraction. The extracted secure APDUs are sent 630 to the Security
Module 625 for decryption of the secure APDUs using the
pre-established cryptography method. The decrypted APDUs are then
routed 620 to the APDU Interface 55 for processing and translation
into a higher-level format and sent 600 to API Level programs 100
for processing and further transactions with the PSD 40 if desired.
This step establishes the secure "pipe" to communicate with the
PSD. The secure pipe is maintained until the Remote Computer System
signals the Client to close the hardware interface port 5.
[0054] No limitation is intended in the number of PSDs and Clients
forming secure pipes 75 with one or more Remote Computer Systems
50; nor should any limitation on the number of Remote Computer
Systems 50 available for generating secure pipes 75 be construed
from the drawings. Lastly, no limitation is intended concerning the
initiating event to establish a communications pipe.
[0055] The foregoing described embodiments of the invention are
provided as illustrations and descriptions. They are not intended
to limit the invention to precise form described. In particular, It
is contemplated that functional implementation of the invention
described herein may be implemented equivalently in hardware,
software, firmware, and/or other available functional components or
building blocks. Other variations and embodiments are possible in
light of above teachings, and it is not intended that this Detailed
Description limit the scope of invention, but rather by the claims
following herein.
* * * * *