Websim
Websim
Key words: Smart Cards, GSM SIMs, Web Servers, Security Infrastructure
Abstract: We describe the WebSIM, an approach that integrates GSM SIMs into the
Internet. The underlying idea is to implement a Web Server inside a SIM, and
to allow for transparent access to it from the Internet.
The contribution of our approach is that a SIM, which is currently a security
module (smart card) fitted in a GSM mobile phone, becomes also a personal
security server in the Internet. Like any other server in the Internet, it speaks
TCP/IP and processes HTTP requests, e.g. for accessing certain SIM services
(e.g. authentication) via CGI scripts.
The Internet connectivity of a SIM inside a mobile phone can be achieved by
having a proxy host tunnel IP packets to the SIM over SMS.
,IZHFRXOGQ
WSUHGLFWWKH:HEZKDWJRRGDUHZH"
Bob Lucky, Vice President Bellcore, 1995
1. INTRODUCTION
1
2 Scott Guthery, Roger Kehr, Joachim Posegga
has gone into wondering what the mobile telephone network can bring to the
Web.
Secure, reliable authentication, which is a basic prerequisite for billing
customers for services on a large scale, still has no globally accepted
solution. Various attempts have been made to provide the required security
technology for the Internet, but none of them has widely succeeded so far.
All approaches have in practice either been considered as too insecure, or too
hard to establish on the user’s side. With its strong similarity to the
ubiquitous credit card, a smart card is a compelling component, but the
required infrastructure for smart-card-based solutions has been found to be
difficult and costly to set up.
GSM, on the other hand, provides a widely used security infrastructure,
in the form of symmetric keys distributed in subscriber identity modules
(SIMs). More than 250 million GSM subscribers carry around these reduced
size smart cards in their mobile phones. Mobile phones can thus be seen as
“wireless card readers”, with the add-on of providing an I/O channel to a
user for applications running inside the SIM.
The theme of the current work is that while the Web is bringing its
content to the mobile phone, the mobile phone can bring its trust to the Web.
The idea is to provide the authentication and authorization capabilities from
the GSM SIM to Web-based applications in a Web-friendly way; viz. as a
Web server. Such a WebSIM, like any other server in the Internet, speaks
TCP/IP and is transparently accessible from Internet hosts via HTTP.
Specific services offered by server-enabled SIMs, such as authentication, can
be implemented on the SIM using CGI scripts.
,17(51(7 +773
&XVWRPHU·V
0(
+773
:HE6,0
identical to communicating with any Web server running in the Internet (cf.
Figure 1), and the SIM can be transparently accessed from the Internet via
HTTP, e.g. for authentication purposes.
Running a Web server in a SIM is less of a problem than one might think
– in fact, such servers for standard (non-GSM) smart cards were introduced
in [Rees 99]. Clearly, a Web server in a SIM is expected not to host large
amounts of information or HTML documents but to provide a convenient
interface to services of the SIM. These services, most of which will probably
be security-related, can then be accessed via the standard protocol of the
Web, HTTP, and implemented as server-side scripts on the SIM.
It is explicitly not an objective to implement versions of standard Internet
services and protocols that are in full compliance with the specifications that
define them. While fully compliant implementations of existing standards
are certainly desirable, we are willing to give a little on full compliance,
implementing only a strict subset of the specification, in order to realize an
efficient yet useful smart-card implementation. This design philosophy could
4 Scott Guthery, Roger Kehr, Joachim Posegga
be summarized as “It’s not how well the dog sings but that the dog sings at
all.”
A stripped-down version of the HTTP 1.0 protocol, which covers just the
absolutely necessary part and allows only for one connection at a time, can
easily be implemented with an application of less than 10K bytes inside the
SIM. In particular, we can very elegantly implement this functionality as an
applet on top of a GSM SIM Toolkit platform (ETSI GSM 02.19, 03.19) and
then use the Toolkit’s interpreter for server-side scripting. This also allows
for interaction with the user of the SIM’s mobile phone, since SIM Toolkit
also provides an appropriate API for I/O (GSM 11.14).
2.2 Networking
Customer’s ME
INTERNET (GSM 11.14
compliant)
606 +773
IP
606 +773
SIM
WebSIM
Proxy
KWWSZHEVLPGWUGGHVLJQ $&
This HTTP request can initiate the signing of the data in brackets in the
SIM of the named GSM phone. After processing of the request, which might
consist of running other SIM-internal applications or commands, the result is
sent back to the originating Internet host. Thus, integrating the capabilities of
the GSM SIM into Internet applications is just like communicating with any
other Web server on the Internet.
2.3 Implementation
a) KWWSZHEVLPGWUGGHLQIR
Returns information about LAI and LAC of the SIM (GSM 11.14
PROVIDE LOCAL INFO)
b) KWWSZHEVLPGWUGGHVL LWHPLWHPLWHP
Prompts the user of the phone with a GSM 11.14 SELECT ITEM
command offering the choices listed in brackets, separated by “,”. Each
item is interpreted as a string, and the overall length of all strings must
not exceed 120 bytes. The user’s choice is returned.
c) KWWSZHEVLPGWUGGHJL SURPSW
Runs the GSM11.14 GET INPUT command and returns the text that has
been entered.
d) KWWSZHEVLPGWUGGHGW WH[W
Runs the GSM11.14 DISPLAY TEXT with the argument supplied.
1
Access to the server is restricted.
Submitted for CARDIS 2000 7
e) KWWSZHEVLPGWUGGHVLJQ DEFGHI
Encrypts the argument (interpreted as a string of hexadecimal characters)
and returns the result.
For the sake of simplicity, the length of the arguments (given in brackets)
is restricted to fit into one SMS.
The proxy is a Linux laptop running an Apache Web server with a couple
of CGI scripts. These CGI scripts (implemented in Perl) take an incoming
HTTP request, embed it in an SMS message and send it off to the specified
phone number.
Sending of SMS is done through a GSM mobile that is attached to the
laptop with a PCMCIA modem card, which is used for sending and receiving
SMS2. Short messages are sent by turning the modem into TPDU mode
(GSM 07.05), using a tag that causes the message to go directly to the Web
Server application in the destination SIM (cf. GSM 03.48 and GSM 11.14).
Receiving SMS messages is detected by a separate process, looping on
the laptop, that continuously polls the attached mobile for incoming short
messages which are responses to pending HTTP requests. If an incoming
short message is detected, it is fetched, and the HTTP response is extracted
and TCP/IP-encapsulated and returned to the Internet client that sent the
corresponding request.
The Web server runs as an applet on the SIM Toolkit platform (GSM
03.19) in a Schlumberger Simera SIM. The applet is written in Java, and its
size is currently about 7K bytes of Java byte codes. For the sake of
simplicity, the applet makes the following restrictions:
a) an HTTP-request must not exceed one SMS, and one SMS can contain
only one request.
b) the card handles only one request at a time, i.e. there is no session
management inside the card.
Both restrictions can easily be overcome if necessary.
We did not space-optimize the applet code at all; and we believe that it
can be stripped down to a size of about 5K bytes. Importantly, adding new
2
A more efficient variant would be to connect the proxy directly to the network’s short
message service centre (SMSC) which is the store-and-forward point for all SMS
messages.
8 Scott Guthery, Roger Kehr, Joachim Posegga
commands to the server Applet does not significantly increase its size: HTTP
can be seen as a general-purpose application-launching protocol, and once
the basic HTTP-handling functionality is implemented, adding an extra
command increases the applet only slightly: the difference between an applet
providing only the SELECT ITEM command and the version handling the
five commands above is only a few hundred bytes.
/$,
/$&&
The WebSIM is not an application per se: it opens up the SIM to the
Internet and provides an Internet-compliant interface to SIM services. Thus,
it is a horizontal technology (more precisely, a middleware) that supports
"dot com" style applications.
We sketch a few of these applications for different domains below. Much
more is possible and, in fact, the most promising aspect is that the WebSIM
is a very convenient middleware for integration into Internet applications.
Rather than having to deal with a different interface to a SIM each time,
Internet applications can access and activate these applets in their own
language, HTTP.
provided, and the Internet bookshop can now launch a simple HTTP request
such as
http://www.../+49000.../si=(***Bookshop:,Confirm%20USD20”,Cancel,...)
Assume Alice wants to authenticate Bob over the Internet. Oscar is Bob’s
GSM operator and has issued a WebSIM SIMB to Bob. Consider the
following basic skeleton of a protocol:
In step 1, Bob gives Alice the phone number of his SIM. Alice then sends
a random number (challenge) to the SIMB in step 2. The SIMB returns a hash
10 Scott Guthery, Roger Kehr, Joachim Posegga
of a secret key Ki, the random number RAND, and the SIM’s IMSI3 to Alice
in step 3.
Alice can now send the response she got in step 3 to Oscar the operator,
who can verify the result. Oscar knows the hash algorithm, the secret key Ki,
and he can associate the phone number with the IMSI that was used in the
encryption. Note that nobody besides Oscar needs to know Ki and hash.
Note also that the messages of step 4 and 5 should be sent over a secure
channel, e.g. by using https://... between Alice and Oscar.
Such a protocol can easily be refined to meet various authentication
requirements, such as including an explicit conformation from Bob, or
adding a time stamp (for instance, one taken from the SMS), etc. It is a
classical challenge/response authentication which can be applied to many
scenarios (home banking, access control, etc.), and it can easily be adapted
to provide, for instance, a session key for other purposes. For security
reasons, the scenario can also be used with keys other than Ki, or with a key
derived from Ki.
Essentially, this scenario is based on the principle that the mobile phone
can be used as a “wireless” card reader containing an authentication token
and that the GSM security infrastructure can easily be accessed from the
Internet.
Another nice example for using a WebSIM is the following one. Assume
pushing your doorbell at home results in a request such as:
KWWSZHEVLPGWUGGHVL 2SHQ&DOO,QWHUFRP&DQFHO
If you are standing in front of your door and have pushed the doorbell
button, you will of course select “Open” on the menu appearing on your
phone. If not, you can select to be connected with your home's intercom or
you can simply cancel the request if you don’t want to be disturbed.
In the case that you are connected to the intercom (which, in turn, is
bridged to your mobile handset) you can converse with your visitor. If the
situation so warrants, you can open the door remotely even if you aren't at
home.
3
IMSI = International Mobile Subscriber Identity number.
Submitted for CARDIS 2000 11
There are a number of SIM services local to the mobile handset that
would be much easier to handle with Web interfaces. One example is
management of the SIM-internal phone book, which can be very
conveniently updated using a Web browser if the WebSIM understands
HTTP POST methods.
4. CONCLUSION
KWWSZHEVLPGWUGGHVLJQ $&
would initiate the identity application running in the WebSIM of the named
GSM phone.
12 Scott Guthery, Roger Kehr, Joachim Posegga
5. REFERENCES
[Barber 99] J. Barber, "The Smart Card URL Programming Interface," Gemplus Developer
Conference, June, 21 - 22, CNIT Conference Center, Paris-La Defense, France. 1999.
[Becker 99] C.B. Becker, B. Patil and E. Qaddoura, IP Mobility Architecture Framework,
IETF-Draft, October, 1999.
[Campbell 99] A. Campbell, J. Gomez, C-Y. Wan, Z. Turanyi, and A. Valko, Cellular IP,
IETF-Draft, October, 1999.
[Di Giorgio 99] Rinaldo Di Giorgio, An introduction to the URL programming interface, Java
World, September 1999.
[GSM 02.19] Digital cellular telecommunications system (Phase 2+, Release 98): Subscriber
Identity Module Application Programming Interface (SIM API); Service description;
Stage 2. European Telecommunications Standards Institute, Sophia Antipolis, France.
Unpublished Draft. 1999.
[GSM 03.19] Digital cellular telecommunications system (Phase 2+); Subscriber Identity
Module Application Programming Interface (SIM API); SIM API for Java Card™ ; Stage
2. European Telecommunications Standards Institute, Sophia Antipolis, France.
Unpublished Draft. 1999
[GSM 03.60] Digital cellular telecommunications system (Phase 2+); Genheral Packet Radio
Service (GPRS); Service description; Stage 2. European Telecommunications Standards
Institute, Sophia Antipolis, France. Available from http://www.etsi.org/. 1999.
[GSM 11.11] European digital cellular telecommunications system (Phase 2); Specification of
the Subscriber Identity Module - Mobile Equipment (SIM-ME) interface (GSM 11.11).
European Telecommunications Standards Institute, Sophia Antipolis, France. Available
from http://www.etsi.org/. 1998.
Submitted for CARDIS 2000 13
[GSM 11.14] European Digital cellular telecommunications system (Phase 2+): Specification
of the SIM application toolkit for the Subscriber Identity Module-Mobile Equipment
(SIM-ME) interface (GSM 11.14). European Telecommunications Standards Institute,
Sophia Antipolis, France. Available from http://www.etsi.org/. 1998.
[Guthery 00] S. Guthery, J. Posegga, Y. Baudoin, J. Rees, "IP and ARP over ISO 7816-3",
IETF Internet-Draft, February, 1, 2000.
[Rees 99] Jim Rees and Peter Honeyman: Webcard: a Java Card web server. CITI Technical
Report 99-3, Center for Information Technology Integration, University of Michigan.
October 1999. http://www.citi.umich.edu/projects/sinciti/smart card/webcard/citi-tr-99-
3.html
[RFC 2616] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, Leach, and T. Berners-
Lee: Hypertext Transfer Protocol -- HTTP/1.1, June, 1999
[Vaha-Sipila 99] A. Vaha-Sipila, URLs for GSM Short Message Service, IETF-Draft, May
19, 1999.