SlideShare une entreprise Scribd logo
1  sur  74
Télécharger pour lire hors ligne
The key to an open world
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. 19/03/15
SmartTrust WIB 1.3
R&D Mobile Communications – June 2004
Julien SIMON
j.simon@oberthurcs.com
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
The one-slide story
The WIB is (mostly)
a WAP browser,
running on a SIM Toolkit card.
WIB = Wireless Internet Browser
WAP = Wireless Application Protocol
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Outline
1. WAP overview
2. WIB & WIG
3. WIB commands
§  WML
§  SIM Toolkit commands
§  WIB-specific commands
4. Local Scripts
§  Local storage
§  Event & menu management
5. Plug-in
management
6. Plug-ins
§  General-purpose plug-ins
§  Secret key plug-ins
§  Public key plug-ins
§  Call Control applet
7. Conclusion
8. Appendices
§  WML
§  PKCS
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Wireless Application Protocol
§  WAP 1.0 was released in 1998 and evolved into 1.3.
§  WAP 1.x doesn’t support standard Internet protocols
and languages : a WAP gateway is required.
WAE: Application Environment
WSP: Session Protocol
WTP: Transaction Protocol
WTLS: Transaction Layer Security
WDP: Datagram Protocol
HTTP: Hyper Text Transfer Protocol
SSL: Secure Sockets Layer
TCP: Transmission Control Protocol
IP: Internet Protocol
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
WAP Architecture
WAP Gateway
Page encoder
Page
converter
Protocol Adapters
HTTP
Web Server
Content
CGI
Scripts
etc.
HTMLpages
WMLpages
WML = Wireless Markup Language
HTML = Hyper Text Markup Language
CGI = Common Gateway Interface
Telephony features are voluntarily omitted.
ME = Mobile Equipment
HTTP = Hyper Text Transfer Protocol
WSP = Wireless Session Protocol
WTP = Wireless Transaction Protocol
ME
WAP
browser
WSP/WTPConfig.
files
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Wireless Markup Language
§  The WAE supports the Wireless Markup Language (WML).
s It is similar to (but not a subset of) the Hyper Text Markup Language (HTML).
s WML is more dynamic than HTML: variables, etc.
§  The equivalent of an HTML page is a WML deck (transfer unit)
which contains one or more WML cards (display unit).
§  Because of the very limited bandwidth of current networks,
WML is translated into a very compact binary representation,
called bytecode.
s This bytecode has nothing to do with Java Card bytecode !
s A WAP device must be bytecode-aware in order to decode incoming decks
and encode outgoing messages.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
From WML to menu
<WML>
<CARD>
My SIM menu
<DO TYPE="ACCEPT" LABEL="Next">
<GO URL="#card2"/>
</DO>
</CARD>
<CARD NAME="card2">
<DO TYPE="ACCEPT">
<GO URL="?send=$type"/>
</DO>
Services
<SELECT KEY="type">
<OPTION VALUE="em">Email</OPTION>
<OPTION VALUE="ph">Phone</OPTION>
<OPTION VALUE="fx">Fax</OPTION>
</SELECT>
</CARD>
</WML>
004B050102020B4D
792053494D206D65
6E750600010B3F73
656E643D02747970
65042601085365727
66963657305456D61
696C02656D000550
686F6E65027068000
34661780266780006
000600
bytecode : 77 bytes
(-83%) My SIM menu
_____________
Next
Services
1> Email
2> Phone
3> Fax
____
OK
WML : 473 bytes
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
WAP (in)security
WML/HTML
Web server
WML
WML/HTML Bytecode
SSL
TCP WDP
GSM networkInternet
WTLS
There is no end-to-end security, because of the WTLS/SSL gateway.
This is the infamous “WAP gap” problem.
Can you really trust the operator and the security of its network ?
N
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
End-to-end security at application level
WML/HTML
Web server
WML
WML/HTML Bytecode
TCP/IP WDP
GSM networkInternet
Data is protected by the application,
i.e. the bytecode is encrypted/decrypted by the WAP browser (or
by an add-on) with user-level keys.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Move over, browser !
§  Moving the browser to the smartcard solves several issues.
1.  There is a HUGE installed base of cheap Phase 2+ phones
è users can use WAP now and give more money to the operator ! As
long as their phone supports what the WIB needs…
2.  Setting up WAP on the phone is a nightmare for the average human :
thus, no one uses it and the operator doesn’t make any money
è WIB set-up is pre-loaded at personalization and may be modified
OTA.
3.  Different phones have different browsers : the operator gets a subset of
the standard… and a superset of browser bugs
è a unique browser on all cards (no matter what the phone is).
4.  A smartcard offers better security (key storage, state-of-the art crypto,
etc.).
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
WAP-enabled smartcard
SMS-C
MESIM
WAP
Browser
Config.
files
OTA
server
WAP
gatewayProactive
commands
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
The Invasion of the Killer Browser
§  The services offered by a SIM Toolkit applet are defined by its
implementation and personalization.
§  Adding new services means replacing the applet with a newer
version, which usually means replacing the SIM card...
è The same services can be provided using local pages.
è The browser never changes : only the local pages are updated.
è Additional features may be added OTA using plug-ins (PKI, etc).
è The user may pull content from the network (Portal, WWW).
è The operator may push any kind of targeted content to the user.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
On second thought…
§  Some specific operator requirements cannot be – and will never
be – met by a generic browser… unless you develop a specific
plug-in for each of them. This defeats the purpose, doesn’t it ?
§  If the operator doesn’t have any specific requirement, a hand-
crafted SIM Toolkit Applet will always be smaller and faster than
a generic (read: bloated) browser.
§  Deploying a browser has major impacts on the operator network :
much more SMS traffic, WAP gateway, etc.
§  But hey, let marketing worry about that, right ?
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
A Band Of Browsers
§  SmartTrust Wireless Internet Browser.
§  SIM Alliance S@T browser.
§  3GPP USAT Interpreter :
s 21.112 & 31.11{2,3,4} Release 5 : architecture, protocol, core browser.
s 31.113 Release 6 : PKI plug-ins.
§  And let’s not forget proprietary browsers like the PICO.
§  These browsers all support the WML standard (or at least a
large subset of it) as well as proprietary extensions (S@TML,
SmartTrust WML, etc). This is similar to the Netscape/
Internet Exploder situation.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
So… what’s the big deal ?
§  A WAP browser really belongs on the phone, where
processing power and memory are plentiful.
§  A Java smartcard is just about the worst place to implement a
WAP browser.
s Minimal resources : 8-bit processor, 128 bytes of stack, around 1 Ko of RAM
storage, slow EEPROM writes.
s Cumbersome transport layer (03.40 / 03.48) :
small PDU size, high latency.
s Language / API issues.
§  Face it : the WIB is a Virtual Machine on top of the Java Card
Virtual Machine…
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
SmartTrust
« SmartTrust is a leading developer of infrastructure solutions
designed to provide mobile subscribers with easy to use and
secure personalized services. »
§  SmartTrust maintains the WIB specification, which is
implemented by a number of smartcard vendors.
§  SmartTrust provides server software :
- a WAP gateway for the WIB,
called Wireless Internet Gateway (WIG).
- an OTA management platform,
called Delivery Platform (DP).
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
WIB-WIG Communication
§  WIB and WIG talk to each other using the Short Message Service (SMS).
§  Concatenated messages may be used in both directions.
§  The WIB uses 3 Target Application Reference (TAR) values.
s  Pull TAR : WIB-initiated messages.
s  Push TAR : WIG-initiated messages.
s  Administrative TAR : WIG-initiated administrative messages.
s  1 extra TAR for Vodafone : the Data Download TAR, which manages the “OTA Script Executed” event.
§  All messages have a 03.48 security header, with one of these security levels:
s  L0 : no security.
s  L1 : authentication counter + 3DES MAC.
s  L2 : authentication counter + CRC-32 MAC + 3DES encryption.
s  L3 : authentication counter + ISO9797 MAC + 3DES encryption.
§  The 03.48 Proof Of Receipt (PoR) mechanism is not used : all messages are
commands.
§  In the future, other bearers than SMS may be used.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Pull Mode
MESIM
WIB
Config.
files
WIG
Web
server
1. SELECT ITEM
ENVELOPE
(MENU SELECTION)
Pull TAR
3. HTTP GET
5. ENVELOPE
4. HTTP reply
2. SEND SM
Wait
state
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Push Mode
MESIM
WIB
Config.
files
WIG
3. Proactive commands
Push TAR
2b. ENVELOPE
Web
server
1. HTTP POST
2a. HTTP reply
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
WIB Script
A WIB script is a
sequence of WIB
commands.
A script is run in order
until :
• the last command is
reached.
• the Exit command is
run.
• the Cancel button is
pressed.
• the Wait state is
entered.
The key to an open world
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. 19/03/15
WIB commands
WML
SIM Application Toolkit commands
WIB-specific commands
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
WIB Commands
§ The WIB supports a subset of standard WML
elements (see Appendix A) :
s Deck : <wml>…</wml>
s Card : <card>…</ card>
s Paragraph (unit of displayable text) : <p>…</ p>
s Text formatting : <br/>, <i>…</i>, <b>…</b>, <u>…</u>, etc.
s Variables : <setvar/>
s User input : <input/>
s User selection : <select/>, <option/>
s User Navigation : <do>…</do>, <go/>, <a>…</a>
§ All these commands are bytecode-encoded into TLVs.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
SIM Application Toolkit commands
§  The WIB supports the SIM Application Toolkit (SAT)
commands.
s  Some of the commands may be called explicitly in a WML page using the go href element.
s  Although the go element is used, no message is sent to the server : the command is
executed locally on the SIM.
s  Supported SAT Commands depend on the mobile.
§  The list of available commands is : Display Text, Get Input,
Launch Browser, Provide Local Information, Play Tone,
Refresh, Select Item, Send Short Message, Send USSD, Set
Idle Mode Text, Set Up Call, Timer Management.
§  All these commands are bytecode-encoded into TLVs.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
SAT : Send Short Message
A text SM is sent to MSISDN "0706754321“, using the specified Service Center
"+46705008999" (regardless of the default value in the mobile station).
<card>
<p>
<do type="vnd.smarttrust.extended">
<go href="http://server#wigSendSM('Hello!',,,
'0706754321', '+46705008999')"/>
</do>
</p>
</card>
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
SAT : Set Up Call
If the ME is not busy with another call, "0706754321“ is called.
No text is displayed and no automatic retry will be made.
<card>
<p>
<do type="vnd.smarttrust.extended">
<go href="http://server#wigSetupCall(00,,,,,'0706754321')"/>
</do>
</p>
</card>
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
SAT : Error Management
§  Because of ME diversity and application complexity, Error
Management is an important part of the WIB.
§  For all supported SIM Toolkit commands, a behavior and/or an
error code are defined for each TERMINAL RESPONSE value.
§  EF_ERROR_TEXT (6F02) stores the error message to be
displayed for a given error code.
s  If an error message contains the %D wildcard, a detailed error report will be displayed :
Error code, number of the WIB command, Terminal Response value / file identifier.
s  Error code 0xDF is generic : it’s the only mandatory entry in EF_ERROR_TEXT.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
WIB-specific commands
§  The WIB supports specific commands, which may originate from :
1. Explicit WML calls, using the go href element.
2. WML processing by the WIG.
§  The list of commands is :
s  Check Terminal Profile : check if specified bits are set in the Terminal Profile and jump.
s  Branch On Variable Value : relative jump (variable-based).
s  Execute Local Script : run a script stored on the SIM.
s  Exit : terminate the current script.
s  New Context : clear the variable table, partially or totally.
s  Plug-in : invoke a plug-in
s  Set Return Tar Value : set the destination of the next message submitted to the server.
s  Set Script Buffer Size To Variable.
s  Set Version Information to Variable : store WIB version and plug-in information in a variable.
s  Skip : direct relative jump.
s  Variable madness: Substring, Add/Subtract, Convert (HEX-BCD-base 10), Group/Ungroup, Swap Nibbles,
GSM-UCS2 conversion.
§  All these commands are bytecode-encoded into TLVs.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
WIB administrative commands
§  WIB 1.3 supports administrative commands, which deal
either with Local Scripts or with plug-ins.
§  They must be pushed to the Administrative TAR.
§  Get/Set Script Trigger Mode : event and menu management.
§  Get Menu : retrieve the current menu.
§  Get Script Info : retrieve the identifier and address of one or
several Local Scripts.
§  Install/Remove plug-in : activate/deactivate a plug-in.
§  All these commands are bytecode-encoded into TLVs.
The key to an open world
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. 19/03/15
Local Scripts
Local Storage
Script Addressing
Event management
Menu management
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Local Scripts
§  A WIB script may also be stored locally, i.e. “pre-loaded” on
the SIM in EF_Bytecode (6F03).
§  They may be used to provide “applet-like” features.
§  The Execution of a Local Script may be triggered by :
1.  An Execute Local Script WIB command.
2.  The selection of a menu entry associated to a Local Script.
3.  The occurrence of a SIM Toolkit event associated to a Local
Script.
4.  The expiration of a Timer associated to a Local Script using
the Timer Management SAT command.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Local Scripts and Menus
§  When the SIM card is activated, the WIB collects information
from EF_Menu (6F18) and EF_Menu_Title (6F1E) to build its
menu.
§  A menu entry is made of :
s  An item status,
s  A item identifier,
s  A menu ordinal,
s  An icon identifier,
s  A menu text.
§  The item identifier points to a Local Script.
§  Administrative commands : Get Menu, Get/Set Script Trigger
Mode, Get Script Info
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Local Scripts and Events
§  EF_EVENT_STARTUP (6F0B) lists the SIM Toolkit events the WIB
should listen to. A Local Script identifier is bound to each event.
§  At startup, the WIB reads EF_EVENT_STARTUP and registers the
events which are supported by the ME (according to TERMINAL
PROFILE).
§  When one of these events occurs, the matching Local Script is
executed.
s  If the WIB is already busy (or if the Wait For Response state is active), the event is queued.
If an event of the same type is already queued, the new one overrides it.
s  Queued events are processed according to their priority, i.e. the order in which they appear
in EF_EVENT_STARTUP.
§  Administrative commands : Get/Set Script Trigger Mode, Get
Script Info
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Script Addressing
§  Script Addressing is the conversion of a script identifier into a
bytecode “pointer” in EF_Bytecode.
§  The WIB may be configured in Absolute Addressing mode
or in Relative Addressing mode.
s The addressing mode is separately configurable for menu selection and events.
s The Timer Management and Execute Local Script commands always use the script
identifier listed in EF_SCRIPT_ADDRESS (6F1D).
§  Script identifiers and addresses may be retrieved using the
Get Script Info WIB administrative command.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Relative Script Addressing
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Absolute Addressing (1/2)
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Absolute Addressing (2/2)
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Plug-ins
Plug-in management
General purpose plug-ins
Cryptographic plug-ins
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Plug-in architecture
§  A plug-in is a normal SIM Toolkit applet.
s It extends the WIB by adding new features :
l  Data storage,
l  Cryptography : the WAP gap must be closed !
s It may be installed at personalization time.
s Plug-ins are usually small enough to be installed OTA.
§  A plug-in registers to the WIB using a Shareable interface.
s Registration takes place on Terminal Profile and Status events.
s A plug-in is identified by a text name.
§  When the WIB receives the Plug-In command :
s it uses the plug-in name to locate the appropriate applet.
s It invokes the plug-in using another Shareable interface.
§  The Shareable interfaces are not defined by SmartTrust.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Plug-In invocation
§  This example invokes the PKCS#1 plug-in through the Plug-In WIB command :
<setvar name="CES" value="&#x02;"/>
<setvar name="TTBS" value="&#x54;&#x65;&#x78;&#x74;"/>
<go href="http://server#wigObject(´P1´,´$(CES)$(TTBS)´,´STEXT
´)"/>
§  P1 : plug-in name.
§  CES : character-encoding scheme (02 = GSM).
§  TTBS : text to be signed.
§  STEXT : signature.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Plug-in administrative commands
§ Install Plug-in and Remove Plug-in have misleading
names.
§ They do not deal with applet installation and
removal : this is still performed using the Global
Platform commands (INSTALL LOAD, INSTALL
INSTALL, DELETE).
§ These commands deal with plug-in activation/
deactivation, i.e. whether an registered plug-in may
be invoked by the WIB or not.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
The (in)famous WIB plug-ins
§ General-purpose plug-ins
s Persistent Variables (Vodafone-specific) : data storage.
s User Data : secure data storage & display.
§ Cryptographic plug-ins
s Standard Security, Universal 3DES Signature : 3DES encryption/decryption/signature.
s PIN Management : key access condition management.
s PKCS#1, PKCS#7, Fingerprint : RSA signature.
s Asymmetric Decryption : RSA decryption.
s Public Key Retrieval (Vodafone-specific).
§ Call Control applet
s not a plug-in, but while we’re on the subject…
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Persistent Storage (VPS)
§  This is a Vodafone plug-in (Vodafone Generic 2
specification).
§  The WIB cannot store persistent information from one
script to another.
§  VPS allows the WIG to :
s  store data into a pre-defined transparent file (EF_VPS : 0x6000).
s  retrieve data from EF_VPS (trailing 0xFF’s not ignored).
s  retrieve text from EF_VPS (trailing 0xFF’s ignored).
§  It is intended for Vodafone use only and will not be
used to store user sensitive data such as credit card
numbers.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
User Data (UD)
§  These plug-ins are used to handle user-specific
information (User Data Objects) in a secure way.
s A User Data object is a TLV, containing a value and an alpha-identifier.
s The operator creates the data, which is stored in the
EF_USER_DATA_OBJECTS file (6F61).
s The user and the operator maintain the data.
s Data access is protected by a PIN.
§  Display User Data (DUDA) : display and update the value
of a Data Object.
§  Encrypted User Data (EUDA) : retrieve and encrypt
(3DES) the value of Data Objects.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Standard Security Plug-ins
§  3DES CBC encryption, without any user interaction (ENCR)
s  Input data : key index + unpadded data.
s  Input data is then zero-padded by the plug-in (0 to 7 bytes).
s  Output data : padded ciphered data, prefixed by a byte set to the padding length.
§  3DES CBC decryption, without any user interaction (DECR)
s  Input data : key index + padded ciphered data, prefixed by a byte set to the padding length..
s  Output data : unpadded data.
§  3DES CBC signature (SIGN)
s Input data : key index + data to be signed.
s The data is displayed to the user, who must verify CHV1.
s Output data : signature (MAC4).
§  3DES operations are performed using two 8-byte keys.
§  Key storage was out of scope but is now covered.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Universal 3DES Signature (USGN)
§  This plug-in is similar to the Standard Security SIGN plug-in.
§  3DES CBC signature :
s Input data :
l  key index
l  text to be signed (including variables encoded in UCS2)
l  text encoding (GSM / UCS2)
s Output data : signature (MAC4).
s The text is displayed to the user, who must verify CHV1.
§  The 3DES signature is performed using two 8-byte keys.
§  Key storage is out of scope.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
PKI plug-ins
§  WIB 1.3 supports several Public Key Infrastructure (PKI) plug-ins.
§  Decryption : Asymmetric Decryption (AD)
§  Digital signature (text) : PKCS#1 (P1)
§  Digital signature with time stamp (text) : PKCS#7 (P7)
§  Digital signature and non-repudiation (data) : Fingerprint (FP)
§  Public Key Retrieval (PKR)
§  The S3S plug-in (proprietary RSA signature) is dead.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
PKI plug-ins personalization
§ User dialogs are stored in transparent files, which are
defined by SmartTrust.
§ Key pairs are stored in proprietary transparent files.
s AD : one key pair for decryption, one key pair for unwrapping.
s FP : one key pair for non-repudiation, one key pair for authentication.
s P1 : one key pair for signature.
s P7 : one key pair for signature.
§ The WIM files (PKCS#15) could also have been used.
§ Access to each private key is protected by a PIN (PIN
Management plug-in).
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
PIN Management (PM)
§ All keys used by the crypto plug-ins are protected by
a PIN. A user may forget its value or block it.
§ PM provides administrative features for all these
PINs.
§  Change PIN : user operation
s  Private Key ID (Private key : Non-repudiation / Signature / Decryption / Unwrap).
s  Or: Symmetric Key ID.
§  Reset PIN : server operation
s  Key ID.
s  New PIN value, ciphered and MAC’ed (3DES CBC (2 keys) + SHA1 or ISO9797_ALG3).
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Asymmetric Decryption (AD)
§  This plug-in deciphers a PKCS#1 ciphertext :
s  Input data : Ciphertext + key number.
s  Output data : Cleartext, with padding.
1.  Display at most 16 bytes of the ciphertext
(optional).
2.  Ask the user to verify the PIN protecting the private
key.
3.  Decipher the ciphertext.
4.  Return the cleartext to the browser.
Decrypt: 1234
AB12 D3661 1F01
2354 5CE1 1010
B210
Cancel Ok
Enter
decryption PIN:
xxxxx
Cancel Ok
Wrong PIN,
2 attempts left
Enter
decryption PIN:
xxxxx
Cancel Ok
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
PKCS#1 (P1)
§  This plug-in performs an application-level digital
signature, which is output-compliant with PKCS#1
(see Appendix B).
§  It may be used to sign a small amount of displayable
text : “What-you-see-is-what-you-sign”
1.  Display to the text to be signed (GSM / UCS2)
2.  Ask the user to verify the PIN protecting the private
key.
3.  Sign the text.
4.  Return the signature to the browser.
I will accept
charging of
$23.43 for 23
roses.
Cancel Ok
Enter
signing PIN:
xxxxx
Cancel Ok
Wrong PIN,
2 attempts left
Enter
signing PIN:
xxxxx
Cancel Ok
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
PKCS#7 (P7)
§  This plug-in performs an application-level digital
signature, which is output-compliant with
PKCS#7 (see Appendix B).
s  It may be used to sign small amounts of displayable
text, i.e. text entered on the mobile phone or received in
a SMS, which also need to be time stamped.
s  It is mainly used for non-repudiation (similar to the
signText WAP operation).
1.  Display the text to be signed.
2.  Ask the user to verify the PIN protecting the
private key.
3.  Sign the text.
4.  Return the signature to the browser.
I will accept
charging of
$23.43 for 23
roses.
Cancel Ok
Enter
signing PIN:
xxxxx
Cancel Ok
Wrong PIN,
2 attempts left
Enter
signing PIN:
xxxxx
Cancel Ok
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Fingerprint (FP)
§  This plug-in performs an application-level digital
signature, which is output compliant with PKCS#1.
§  It may be used to sign :
s  “large” amounts of data, i.e. an e-mail message, a word-
processing document.
s  data that is not displayable on a mobile phone, i.e. random data
used during the set-up phase of a VPN (Virtual Private Network).
s  It is mainly used for authentication.
1.  Display at most 16 bytes of the data to be signed
(optional)
2.  Ask the user to verify the PIN protecting the private
key.
3.  Sign the text.
4.  Return the signature to the browser.
Authorize: 1234
AB12 D3661 1F01
2354 5CE1 1010
B210
Cancel Ok
Enter
signing PIN:
xxxxx
Cancel Ok
Wrong PIN,
2 attempts left
Enter
signing PIN:
xxxxx
Cancel Ok
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Public Key Retrieval (PKR)
•  This is a Vodafone plug-in (Vodafone Generic 2 specification).
•  It allows the WIG to read the Public Key associated to a given
Private Key (Non-repudiation / Signature / Decryption / Unwrap).
§  The plug-in also provides APDU commands to read Public Keys
and to generate key pairs. This may be used a Point Of Sale.
§  The output format is PKCS#1 compliant, i.e. the plug-in returns a
DER-encoded value of the RSAPublicKey ASN.1 type :
RSAPublicKey ::= SEQUENCE {
modulus INTEGER, -- n
publicExponent INTEGER -- e
}
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Call Control
§  ‘Call Control’ is a procedure defined in [51.014]. It is provisioned
using the ‘Call Control’ activation bit in the SIM Service Table.
§  When this service is activated, all dialed digit strings,
Supplementary Service (SS) control strings and Unstructured
Supplementary Service Data (USSD) strings are first passed to
the SIM before the ME sets up the call/SS/USSD.
§  The SIM also receives location information, network code, etc.
§  The SIM may allow, bar or modify the call/SS/USSD.
§  The SIM may replace a call/SS/USSD by another call/SS/USSD.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Call Control Script
§  This feature is implemented in a SIM Toolkit applet, which interprets a Call
Control script stored in EF_CALL_CONTROL_SCRIPT. The script is
updateable by OTA.
§  The script and the file are defined by a Vodafone specification.
§  The Call Control applet is not a WIB plug-in : it doesn’t receive WIB scripts.
§  It receives call details from the ME in a ENVELOPE (CALL CONTROL)
command.
§  Once the applet has processed the call, it replies to the ME.
§  Optionally, the applet stores the dialed number in EF_CALL_CONTROL and
triggers the WIB using the CALL CONTROL event. The WIB may then read
from EF_CALL_CONTROL and display a message to the user.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Call Control Script File
§  The Call Control script file contains a list of Case Objects, a Default Action
and an Error Action.
§ When the applet is triggered, it applies each Case object to the call details.
§ A Case Object contains :
§ A Test Object : call details, with wildcards.
§ An Action Object : allow / deny / modify the call details.
§  If the test described in the Test Object is true, the action described in the
Action Object is performed (possibly sending data to the WIB).
§  if not, move to the next Test Object.
§  If none of the Tests Objects apply to the call details, the Default Action is
performed.
§  If anything goes wrong (and it will !), the Error Action is performed.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Call Control example (1/2)
Here is a simple Case Object, which reroutes any phone number starting with
014138 to to 0141381700.
EF_CALL_CONTROL_SCRIPT :
70 1a // Case Object
71 06 // Test Object
06 04 // Address TLV (cf. 102.223)
81 10 14 83 // Does address start with 014138 ?
72 10 // Action Object (Don’t trigger the WIB)
30 30 30 30 30 32 // Event label (unused)
02 08 // Allowed with modifications
06 06 // Route call to an address
81 10 14 83 71 00 // Dial 0141381700
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
Call Control example (2/2)
Command :
a0 c2 00 00 17 // ENVELOPE command
d4 15 // CALL CONTROL event
82 02 82 81 // ME -> SIM
06 06 81 10 14 83 71 69 // The user dialed 0141381796
93 07 00 f1 10 00 01 00 01 // Location Information
(9F xx)
Response :
a0 c0 00 00 W(2:2) // GET RESPONSE command
[02 08 // Allowed with modifications
06 06 // Route call to an address
81 10 14 83 71 00] // Dial 0141381700
(90 00)
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
References
§ USAT Interpreter – http://www.3GPP.org/
§ SIM Alliance – http://www.SIMAlliance.org
§ SmartTrust – http://www.SmartTrust.com
§ PKCS – http://www.RSALabs.com
§ WAP – http://www.OpenMobileAlliance.com/
§ World Wide Web Consortium – http://www.w3.org/
The key to an open world
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. 19/03/15
Appendix A : WML
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
WML : user input
§  The input element defines an input field where the user may enter
information.
§  A $ character followed by (VARIABLENAME) indicates a variable reference.
§  This example will prompt the user to enter at most 20 digits :
<input title=“Please enter your phone number”
type=“text” name=“PHONE” format=“*N” maxlength=“20”/>
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
WML : variables (1/2)
§  The setvar element sets the value of a variable. Variable references used in
the value of an attribute are replaced on a byte-per-byte basis in the WIB.
§  A $ character followed by (VARIABLENAME) indicates a variable
substitution.
§  This example will display the text "Item: CD Price: $10“ :
<card>
<p>
<setvar name="ITEM" value="CD"/>
<setvar name="PRICE" value="10"/>
Item: $(ITEM) Price: $$$(PRICE)
</p>
</card>
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
WML : variables (2/2)
§  The WIB must support up to 252 variables per script.
s  Variable 0x00 is not allowed.
s  Variables 0x80, 0x81 and 0x82 are reserved for WIB use.
§  Variables may be GSM or UCS2 encoded.
§  Nested variables are not supported.
s  SmartTrust WML supports nested variables.
§  The WIB supports INSANE variable management features:
Substring, Add/Subtract, Convert (hex-BCD-decimal), Group/
Ungroup, Swap Nibbles, GSM-UCS2 conversion.
§  The SmartTrust specification recommends allocating 1 Ko of
EEPROM for variable storage.
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
WML : user selection
§  The select element defines and displays a set of optional list items from which
the user can select an item.
§  An option element is required for each item in the list. The name of the menu,
normally displayed by the mobile station, is specified by the title attribute.
§  This example will prompt the user to select one item and jumps to the
corresponding destination :
<select title="Please choose service" name="SELECTION">
<option value="Bank" onpick="#CARD2">Banking</option>
<option value="Gamble" onpick="#CARD3">Gambling</option>
<option value="blah“ onpick="http://server/
home.wml">[Home]</option>
</select>
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
WML : user navigation (1/2)
§  The anchor (or a) element binds a text section to a go element. A sequence of
anchors is presented to the user as a list of items, from which the user can select
one.
§  When the user has selected one item, the corresponding go is executed.
§  This example will prompt the user to select one item and jumps to the
corresponding destination :
Choose a service.
<anchor><go href="#CARD2"/>Banking</anchor>
<anchor><go href="#CARD3"/>Gambling</anchor>
<anchor><go href="http://server/home.wml"/>[Home]</anchor>
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
WML : user navigation (2/2)
§  The do element is a general mechanism for the user to act upon the current
card.
§  The go element declares a jump to :
s  a card in the deck,
s  A URL : this is equivalent to a GET/POST HTTP request.
§  The go element may also be used to perform WIB or WIG specific commands.
§  This example will prompt the user for a string, then passes the string to a web
server :
<input type="text" title="Enter name" />
<do type="accept">
<go method="post" href="http://server/page.jsp?f=$(NAME)"/>
</do>
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
WML : <go href> element
§  The go href element is used to perform a call to :
s  A SIM Toolkit command,
s  A WIB specific command,
s  A WIB plug-in,
§  The syntax is similar to a call to a WML Script subroutine.
§  The commands have different function names and different numbers of arguments.
§  The arguments are used for both input and output data.
<do type="vnd.smarttrust.extended">
<go href="http://server#functionname('arg1','arg2',...)"/>
</do>
The key to an open world
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. 19/03/15
Appendix B : PKCS
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
1. Hash the text to be signed (SHA1, 20-byte output).
2. Encode the hash in a DigestInfo ASN.1 type :
PKCS#1 : signature operation (1/2)
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
PKCS#1 : signature operation (2/2)
3. The message to sign must have the same length as the key modulus :
generate PS, a padding sequence of random non-zero bytes.
4. Build the message to sign :
M = 01 || PS || 00 || DigestInfo
5. Sign M with the private key (RSA modular exponentiation).
6. Output the result :
R = 01 || Modulus length || M
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
PKCS#7 : signature operation (1/2)
1. Hash the data to be signed (SHA1, 20-byte output).
2. Encode the hash in the following template :
3. Sign the template according to PKCS#1 (cf. PKCS#1 plug-in).
4. Output the result (with optional data).
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
PKCS#7 : signature operation (2/2)
§ Input data
s Text to be signed (1 to 160 bytes).
s Text encoding : GSM or UCS2.
s Option flags.
§ Output data
s Signature (I.e. DER-encoded value of the DigestInfo ASN.1 type).
s Text to be signed (optional).
s Hash of the public key (optional).
s URL of the public key certificate (optional).
s ICCID of the SIM card (optional).
s Message digest of the text to be signed (optional).
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
§  The signature operation is identical to the one performed by the
PKCS#1 plug-in.
§  Depending on the input flags, the output may include optional
data :
R = 01 || Modulus length || M
|| Total length || 80 || ICCID
|| 01 || Public key hash
|| URL
Fingerprint : signature operation (1/2)
‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved.
The key to an open world
19/03/15
§ Input data
s Data to be signed (DER-encoded value of the DigestInfo ASN.1
type).
s Option flags.
§ Output data
s Signature.
s Hash of the public key matching the private key (optional).
s URL of the public key certificate (optional).
s ICCID of the SIM card (optional).
Fingerprint : signature operation (2/2)

Contenu connexe

Tendances

IIJmio meeting 13 海外トラベルSIMはどうしていつものSIMと違うのか?
IIJmio meeting 13 海外トラベルSIMはどうしていつものSIMと違うのか?IIJmio meeting 13 海外トラベルSIMはどうしていつものSIMと違うのか?
IIJmio meeting 13 海外トラベルSIMはどうしていつものSIMと違うのか?techlog (Internet Initiative Japan Inc.)
 
AT&T View on LTE to 5G Network Migration
AT&T View on LTE to 5G Network Migration AT&T View on LTE to 5G Network Migration
AT&T View on LTE to 5G Network Migration Eiko Seidel
 
Volte troubleshooting
Volte troubleshootingVolte troubleshooting
Volte troubleshootingJamil Awan
 
Advanced: True Fixed-Mobile Convergence (FMC) with 5G
Advanced: True Fixed-Mobile Convergence (FMC) with 5GAdvanced: True Fixed-Mobile Convergence (FMC) with 5G
Advanced: True Fixed-Mobile Convergence (FMC) with 5G3G4G
 
Understanding Telecom SIM and USIM/ISIM for LTE
Understanding Telecom SIM and USIM/ISIM for LTEUnderstanding Telecom SIM and USIM/ISIM for LTE
Understanding Telecom SIM and USIM/ISIM for LTEntel
 
GIS Applied to Mobile Technology
GIS Applied to Mobile TechnologyGIS Applied to Mobile Technology
GIS Applied to Mobile TechnologyEsri
 
WiFi-integration into EPC
WiFi-integration into EPCWiFi-integration into EPC
WiFi-integration into EPCFranz Edler
 
5G Core Network - ZTE 5g Cloude ServCore
5G Core Network - ZTE 5g Cloude ServCore5G Core Network - ZTE 5g Cloude ServCore
5G Core Network - ZTE 5g Cloude ServCoreITU
 
Advanced: 5G NR RRC Inactive State
Advanced: 5G NR RRC Inactive StateAdvanced: 5G NR RRC Inactive State
Advanced: 5G NR RRC Inactive State3G4G
 
Lte network planning_huawei_pdf
Lte network planning_huawei_pdfLte network planning_huawei_pdf
Lte network planning_huawei_pdfNumanKapsal
 
Lte network planning huawei technologies
Lte network planning huawei technologiesLte network planning huawei technologies
Lte network planning huawei technologiesChaudary Imran
 
Beginners: UICC & SIM
Beginners: UICC & SIMBeginners: UICC & SIM
Beginners: UICC & SIM3G4G
 
Vo lte(eran8.1 03)
Vo lte(eran8.1 03)Vo lte(eran8.1 03)
Vo lte(eran8.1 03)Musa Ahmed
 
INTRODUCTION TO NETWORK OS
INTRODUCTION TO NETWORK OSINTRODUCTION TO NETWORK OS
INTRODUCTION TO NETWORK OSkinish kumar
 

Tendances (20)

IIJmio meeting 13 海外トラベルSIMはどうしていつものSIMと違うのか?
IIJmio meeting 13 海外トラベルSIMはどうしていつものSIMと違うのか?IIJmio meeting 13 海外トラベルSIMはどうしていつものSIMと違うのか?
IIJmio meeting 13 海外トラベルSIMはどうしていつものSIMと違うのか?
 
AT&T View on LTE to 5G Network Migration
AT&T View on LTE to 5G Network Migration AT&T View on LTE to 5G Network Migration
AT&T View on LTE to 5G Network Migration
 
Volte troubleshooting
Volte troubleshootingVolte troubleshooting
Volte troubleshooting
 
Advanced: True Fixed-Mobile Convergence (FMC) with 5G
Advanced: True Fixed-Mobile Convergence (FMC) with 5GAdvanced: True Fixed-Mobile Convergence (FMC) with 5G
Advanced: True Fixed-Mobile Convergence (FMC) with 5G
 
Worldwide attacks on SS7 network
Worldwide attacks on SS7 networkWorldwide attacks on SS7 network
Worldwide attacks on SS7 network
 
Understanding Telecom SIM and USIM/ISIM for LTE
Understanding Telecom SIM and USIM/ISIM for LTEUnderstanding Telecom SIM and USIM/ISIM for LTE
Understanding Telecom SIM and USIM/ISIM for LTE
 
clone sim card
clone sim cardclone sim card
clone sim card
 
GIS Applied to Mobile Technology
GIS Applied to Mobile TechnologyGIS Applied to Mobile Technology
GIS Applied to Mobile Technology
 
SS7 Vulnerabilities
SS7 VulnerabilitiesSS7 Vulnerabilities
SS7 Vulnerabilities
 
WiFi-integration into EPC
WiFi-integration into EPCWiFi-integration into EPC
WiFi-integration into EPC
 
5G Core Network - ZTE 5g Cloude ServCore
5G Core Network - ZTE 5g Cloude ServCore5G Core Network - ZTE 5g Cloude ServCore
5G Core Network - ZTE 5g Cloude ServCore
 
Advanced: 5G NR RRC Inactive State
Advanced: 5G NR RRC Inactive StateAdvanced: 5G NR RRC Inactive State
Advanced: 5G NR RRC Inactive State
 
Lte network planning_huawei_pdf
Lte network planning_huawei_pdfLte network planning_huawei_pdf
Lte network planning_huawei_pdf
 
Lte network planning huawei technologies
Lte network planning huawei technologiesLte network planning huawei technologies
Lte network planning huawei technologies
 
GSM fundamentals (Huawei)
GSM fundamentals (Huawei)GSM fundamentals (Huawei)
GSM fundamentals (Huawei)
 
Beginners: UICC & SIM
Beginners: UICC & SIMBeginners: UICC & SIM
Beginners: UICC & SIM
 
Vlan
VlanVlan
Vlan
 
Handover management
Handover managementHandover management
Handover management
 
Vo lte(eran8.1 03)
Vo lte(eran8.1 03)Vo lte(eran8.1 03)
Vo lte(eran8.1 03)
 
INTRODUCTION TO NETWORK OS
INTRODUCTION TO NETWORK OSINTRODUCTION TO NETWORK OS
INTRODUCTION TO NETWORK OS
 

Similaire à SmartTrust WIB 1.3

Security applications with Java Card
Security applications with Java CardSecurity applications with Java Card
Security applications with Java CardJulien SIMON
 
a-presentation-on-wireless-communication
 a-presentation-on-wireless-communication a-presentation-on-wireless-communication
a-presentation-on-wireless-communicationjhcid
 
Gsm pocket guide (acterna)
Gsm pocket guide (acterna)Gsm pocket guide (acterna)
Gsm pocket guide (acterna)Rida098
 
Mobile Bootcamp Presentation: Mobile Application Development Platforms
Mobile Bootcamp Presentation: Mobile Application Development PlatformsMobile Bootcamp Presentation: Mobile Application Development Platforms
Mobile Bootcamp Presentation: Mobile Application Development PlatformsWilfred Mutua Mworia
 
WebRTC Security
WebRTC SecurityWebRTC Security
WebRTC SecurityAlex Hunte
 
Security and identity management on WebRTC
Security and identity management on WebRTCSecurity and identity management on WebRTC
Security and identity management on WebRTCQuobis
 
Wireless application protocol
Wireless application protocolWireless application protocol
Wireless application protocolgit tech
 
[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten NohlCODE BLUE
 
Introduction to SMS, MMS, Modems & Gateways
Introduction to SMS, MMS, Modems & GatewaysIntroduction to SMS, MMS, Modems & Gateways
Introduction to SMS, MMS, Modems & Gatewaystawi123
 
44Con 2014: GreedyBTS - Hacking Adventures in GSM
44Con 2014: GreedyBTS - Hacking Adventures in GSM44Con 2014: GreedyBTS - Hacking Adventures in GSM
44Con 2014: GreedyBTS - Hacking Adventures in GSMiphonepentest
 
Project ppt
Project pptProject ppt
Project pptAshu0711
 
Connecting Stuff to Azure (IoT)
Connecting Stuff to Azure (IoT)Connecting Stuff to Azure (IoT)
Connecting Stuff to Azure (IoT)Mark Simms
 
Gsm anti theft system
Gsm anti theft systemGsm anti theft system
Gsm anti theft systemAshu0711
 
OpenBTS: Emergency GSM Messaging & Monitoring System for Civil Protection
OpenBTS: Emergency GSM Messaging & Monitoring System for Civil ProtectionOpenBTS: Emergency GSM Messaging & Monitoring System for Civil Protection
OpenBTS: Emergency GSM Messaging & Monitoring System for Civil ProtectionLuca Bongiorni
 
Identifying How WAP Can Be Used For Secure mBusiness
Identifying How WAP Can Be Used For Secure mBusinessIdentifying How WAP Can Be Used For Secure mBusiness
Identifying How WAP Can Be Used For Secure mBusinessOliver Pfaff
 
SMS based Wireless Digital Board with Voice Recognition Based on GSM
SMS based Wireless Digital Board with Voice Recognition Based on GSMSMS based Wireless Digital Board with Voice Recognition Based on GSM
SMS based Wireless Digital Board with Voice Recognition Based on GSMIRJET Journal
 

Similaire à SmartTrust WIB 1.3 (20)

Security applications with Java Card
Security applications with Java CardSecurity applications with Java Card
Security applications with Java Card
 
What is WAP?
What is WAP?What is WAP?
What is WAP?
 
a-presentation-on-wireless-communication
 a-presentation-on-wireless-communication a-presentation-on-wireless-communication
a-presentation-on-wireless-communication
 
Gsm pocket guide (acterna)
Gsm pocket guide (acterna)Gsm pocket guide (acterna)
Gsm pocket guide (acterna)
 
Mobile Bootcamp Presentation: Mobile Application Development Platforms
Mobile Bootcamp Presentation: Mobile Application Development PlatformsMobile Bootcamp Presentation: Mobile Application Development Platforms
Mobile Bootcamp Presentation: Mobile Application Development Platforms
 
WebRTC Security
WebRTC SecurityWebRTC Security
WebRTC Security
 
Security and identity management on WebRTC
Security and identity management on WebRTCSecurity and identity management on WebRTC
Security and identity management on WebRTC
 
Wireless application protocol
Wireless application protocolWireless application protocol
Wireless application protocol
 
[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl[cb22] Tales of 5G hacking by Karsten Nohl
[cb22] Tales of 5G hacking by Karsten Nohl
 
Introduction to SMS, MMS, Modems & Gateways
Introduction to SMS, MMS, Modems & GatewaysIntroduction to SMS, MMS, Modems & Gateways
Introduction to SMS, MMS, Modems & Gateways
 
44Con 2014: GreedyBTS - Hacking Adventures in GSM
44Con 2014: GreedyBTS - Hacking Adventures in GSM44Con 2014: GreedyBTS - Hacking Adventures in GSM
44Con 2014: GreedyBTS - Hacking Adventures in GSM
 
Project ppt
Project pptProject ppt
Project ppt
 
Connecting Stuff to Azure (IoT)
Connecting Stuff to Azure (IoT)Connecting Stuff to Azure (IoT)
Connecting Stuff to Azure (IoT)
 
Gsm anti theft system
Gsm anti theft systemGsm anti theft system
Gsm anti theft system
 
OpenBTS: Emergency GSM Messaging & Monitoring System for Civil Protection
OpenBTS: Emergency GSM Messaging & Monitoring System for Civil ProtectionOpenBTS: Emergency GSM Messaging & Monitoring System for Civil Protection
OpenBTS: Emergency GSM Messaging & Monitoring System for Civil Protection
 
Identifying How WAP Can Be Used For Secure mBusiness
Identifying How WAP Can Be Used For Secure mBusinessIdentifying How WAP Can Be Used For Secure mBusiness
Identifying How WAP Can Be Used For Secure mBusiness
 
Web rtc for iot, edge computing use cases
Web rtc for iot, edge computing use casesWeb rtc for iot, edge computing use cases
Web rtc for iot, edge computing use cases
 
SMS based Wireless Digital Board with Voice Recognition Based on GSM
SMS based Wireless Digital Board with Voice Recognition Based on GSMSMS based Wireless Digital Board with Voice Recognition Based on GSM
SMS based Wireless Digital Board with Voice Recognition Based on GSM
 
Wap01
Wap01Wap01
Wap01
 
wap.ppt
wap.pptwap.ppt
wap.ppt
 

Plus de Julien SIMON

An introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging FaceAn introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging FaceJulien SIMON
 
Reinventing Deep Learning
 with Hugging Face Transformers
Reinventing Deep Learning
 with Hugging Face TransformersReinventing Deep Learning
 with Hugging Face Transformers
Reinventing Deep Learning
 with Hugging Face TransformersJulien SIMON
 
Building NLP applications with Transformers
Building NLP applications with TransformersBuilding NLP applications with Transformers
Building NLP applications with TransformersJulien SIMON
 
Building Machine Learning Models Automatically (June 2020)
Building Machine Learning Models Automatically (June 2020)Building Machine Learning Models Automatically (June 2020)
Building Machine Learning Models Automatically (June 2020)Julien SIMON
 
Starting your AI/ML project right (May 2020)
Starting your AI/ML project right (May 2020)Starting your AI/ML project right (May 2020)
Starting your AI/ML project right (May 2020)Julien SIMON
 
Scale Machine Learning from zero to millions of users (April 2020)
Scale Machine Learning from zero to millions of users (April 2020)Scale Machine Learning from zero to millions of users (April 2020)
Scale Machine Learning from zero to millions of users (April 2020)Julien SIMON
 
An Introduction to Generative Adversarial Networks (April 2020)
An Introduction to Generative Adversarial Networks (April 2020)An Introduction to Generative Adversarial Networks (April 2020)
An Introduction to Generative Adversarial Networks (April 2020)Julien SIMON
 
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...Julien SIMON
 
AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)
AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)
AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)Julien SIMON
 
AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...
AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...
AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...Julien SIMON
 
A pragmatic introduction to natural language processing models (October 2019)
A pragmatic introduction to natural language processing models (October 2019)A pragmatic introduction to natural language processing models (October 2019)
A pragmatic introduction to natural language processing models (October 2019)Julien SIMON
 
Building smart applications with AWS AI services (October 2019)
Building smart applications with AWS AI services (October 2019)Building smart applications with AWS AI services (October 2019)
Building smart applications with AWS AI services (October 2019)Julien SIMON
 
Build, train and deploy ML models with SageMaker (October 2019)
Build, train and deploy ML models with SageMaker (October 2019)Build, train and deploy ML models with SageMaker (October 2019)
Build, train and deploy ML models with SageMaker (October 2019)Julien SIMON
 
The Future of AI (September 2019)
The Future of AI (September 2019)The Future of AI (September 2019)
The Future of AI (September 2019)Julien SIMON
 
Building Machine Learning Inference Pipelines at Scale (July 2019)
Building Machine Learning Inference Pipelines at Scale (July 2019)Building Machine Learning Inference Pipelines at Scale (July 2019)
Building Machine Learning Inference Pipelines at Scale (July 2019)Julien SIMON
 
Train and Deploy Machine Learning Workloads with AWS Container Services (July...
Train and Deploy Machine Learning Workloads with AWS Container Services (July...Train and Deploy Machine Learning Workloads with AWS Container Services (July...
Train and Deploy Machine Learning Workloads with AWS Container Services (July...Julien SIMON
 
Optimize your Machine Learning Workloads on AWS (July 2019)
Optimize your Machine Learning Workloads on AWS (July 2019)Optimize your Machine Learning Workloads on AWS (July 2019)
Optimize your Machine Learning Workloads on AWS (July 2019)Julien SIMON
 
Deep Learning on Amazon Sagemaker (July 2019)
Deep Learning on Amazon Sagemaker (July 2019)Deep Learning on Amazon Sagemaker (July 2019)
Deep Learning on Amazon Sagemaker (July 2019)Julien SIMON
 
Automate your Amazon SageMaker Workflows (July 2019)
Automate your Amazon SageMaker Workflows (July 2019)Automate your Amazon SageMaker Workflows (July 2019)
Automate your Amazon SageMaker Workflows (July 2019)Julien SIMON
 
Build, train and deploy ML models with Amazon SageMaker (May 2019)
Build, train and deploy ML models with Amazon SageMaker (May 2019)Build, train and deploy ML models with Amazon SageMaker (May 2019)
Build, train and deploy ML models with Amazon SageMaker (May 2019)Julien SIMON
 

Plus de Julien SIMON (20)

An introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging FaceAn introduction to computer vision with Hugging Face
An introduction to computer vision with Hugging Face
 
Reinventing Deep Learning
 with Hugging Face Transformers
Reinventing Deep Learning
 with Hugging Face TransformersReinventing Deep Learning
 with Hugging Face Transformers
Reinventing Deep Learning
 with Hugging Face Transformers
 
Building NLP applications with Transformers
Building NLP applications with TransformersBuilding NLP applications with Transformers
Building NLP applications with Transformers
 
Building Machine Learning Models Automatically (June 2020)
Building Machine Learning Models Automatically (June 2020)Building Machine Learning Models Automatically (June 2020)
Building Machine Learning Models Automatically (June 2020)
 
Starting your AI/ML project right (May 2020)
Starting your AI/ML project right (May 2020)Starting your AI/ML project right (May 2020)
Starting your AI/ML project right (May 2020)
 
Scale Machine Learning from zero to millions of users (April 2020)
Scale Machine Learning from zero to millions of users (April 2020)Scale Machine Learning from zero to millions of users (April 2020)
Scale Machine Learning from zero to millions of users (April 2020)
 
An Introduction to Generative Adversarial Networks (April 2020)
An Introduction to Generative Adversarial Networks (April 2020)An Introduction to Generative Adversarial Networks (April 2020)
An Introduction to Generative Adversarial Networks (April 2020)
 
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
AIM410R1 Deep learning applications with TensorFlow, featuring Fannie Mae (De...
 
AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)
AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)
AIM361 Optimizing machine learning models with Amazon SageMaker (December 2019)
 
AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...
AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...
AIM410R Deep Learning Applications with TensorFlow, featuring Mobileye (Decem...
 
A pragmatic introduction to natural language processing models (October 2019)
A pragmatic introduction to natural language processing models (October 2019)A pragmatic introduction to natural language processing models (October 2019)
A pragmatic introduction to natural language processing models (October 2019)
 
Building smart applications with AWS AI services (October 2019)
Building smart applications with AWS AI services (October 2019)Building smart applications with AWS AI services (October 2019)
Building smart applications with AWS AI services (October 2019)
 
Build, train and deploy ML models with SageMaker (October 2019)
Build, train and deploy ML models with SageMaker (October 2019)Build, train and deploy ML models with SageMaker (October 2019)
Build, train and deploy ML models with SageMaker (October 2019)
 
The Future of AI (September 2019)
The Future of AI (September 2019)The Future of AI (September 2019)
The Future of AI (September 2019)
 
Building Machine Learning Inference Pipelines at Scale (July 2019)
Building Machine Learning Inference Pipelines at Scale (July 2019)Building Machine Learning Inference Pipelines at Scale (July 2019)
Building Machine Learning Inference Pipelines at Scale (July 2019)
 
Train and Deploy Machine Learning Workloads with AWS Container Services (July...
Train and Deploy Machine Learning Workloads with AWS Container Services (July...Train and Deploy Machine Learning Workloads with AWS Container Services (July...
Train and Deploy Machine Learning Workloads with AWS Container Services (July...
 
Optimize your Machine Learning Workloads on AWS (July 2019)
Optimize your Machine Learning Workloads on AWS (July 2019)Optimize your Machine Learning Workloads on AWS (July 2019)
Optimize your Machine Learning Workloads on AWS (July 2019)
 
Deep Learning on Amazon Sagemaker (July 2019)
Deep Learning on Amazon Sagemaker (July 2019)Deep Learning on Amazon Sagemaker (July 2019)
Deep Learning on Amazon Sagemaker (July 2019)
 
Automate your Amazon SageMaker Workflows (July 2019)
Automate your Amazon SageMaker Workflows (July 2019)Automate your Amazon SageMaker Workflows (July 2019)
Automate your Amazon SageMaker Workflows (July 2019)
 
Build, train and deploy ML models with Amazon SageMaker (May 2019)
Build, train and deploy ML models with Amazon SageMaker (May 2019)Build, train and deploy ML models with Amazon SageMaker (May 2019)
Build, train and deploy ML models with Amazon SageMaker (May 2019)
 

Dernier

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 

Dernier (20)

Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 

SmartTrust WIB 1.3

  • 1. The key to an open world ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. 19/03/15 SmartTrust WIB 1.3 R&D Mobile Communications – June 2004 Julien SIMON j.simon@oberthurcs.com
  • 2. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 The one-slide story The WIB is (mostly) a WAP browser, running on a SIM Toolkit card. WIB = Wireless Internet Browser WAP = Wireless Application Protocol
  • 3. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Outline 1. WAP overview 2. WIB & WIG 3. WIB commands §  WML §  SIM Toolkit commands §  WIB-specific commands 4. Local Scripts §  Local storage §  Event & menu management 5. Plug-in management 6. Plug-ins §  General-purpose plug-ins §  Secret key plug-ins §  Public key plug-ins §  Call Control applet 7. Conclusion 8. Appendices §  WML §  PKCS
  • 4. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Wireless Application Protocol §  WAP 1.0 was released in 1998 and evolved into 1.3. §  WAP 1.x doesn’t support standard Internet protocols and languages : a WAP gateway is required. WAE: Application Environment WSP: Session Protocol WTP: Transaction Protocol WTLS: Transaction Layer Security WDP: Datagram Protocol HTTP: Hyper Text Transfer Protocol SSL: Secure Sockets Layer TCP: Transmission Control Protocol IP: Internet Protocol
  • 5. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 WAP Architecture WAP Gateway Page encoder Page converter Protocol Adapters HTTP Web Server Content CGI Scripts etc. HTMLpages WMLpages WML = Wireless Markup Language HTML = Hyper Text Markup Language CGI = Common Gateway Interface Telephony features are voluntarily omitted. ME = Mobile Equipment HTTP = Hyper Text Transfer Protocol WSP = Wireless Session Protocol WTP = Wireless Transaction Protocol ME WAP browser WSP/WTPConfig. files
  • 6. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Wireless Markup Language §  The WAE supports the Wireless Markup Language (WML). s It is similar to (but not a subset of) the Hyper Text Markup Language (HTML). s WML is more dynamic than HTML: variables, etc. §  The equivalent of an HTML page is a WML deck (transfer unit) which contains one or more WML cards (display unit). §  Because of the very limited bandwidth of current networks, WML is translated into a very compact binary representation, called bytecode. s This bytecode has nothing to do with Java Card bytecode ! s A WAP device must be bytecode-aware in order to decode incoming decks and encode outgoing messages.
  • 7. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 From WML to menu <WML> <CARD> My SIM menu <DO TYPE="ACCEPT" LABEL="Next"> <GO URL="#card2"/> </DO> </CARD> <CARD NAME="card2"> <DO TYPE="ACCEPT"> <GO URL="?send=$type"/> </DO> Services <SELECT KEY="type"> <OPTION VALUE="em">Email</OPTION> <OPTION VALUE="ph">Phone</OPTION> <OPTION VALUE="fx">Fax</OPTION> </SELECT> </CARD> </WML> 004B050102020B4D 792053494D206D65 6E750600010B3F73 656E643D02747970 65042601085365727 66963657305456D61 696C02656D000550 686F6E65027068000 34661780266780006 000600 bytecode : 77 bytes (-83%) My SIM menu _____________ Next Services 1> Email 2> Phone 3> Fax ____ OK WML : 473 bytes
  • 8. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 WAP (in)security WML/HTML Web server WML WML/HTML Bytecode SSL TCP WDP GSM networkInternet WTLS There is no end-to-end security, because of the WTLS/SSL gateway. This is the infamous “WAP gap” problem. Can you really trust the operator and the security of its network ? N
  • 9. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 End-to-end security at application level WML/HTML Web server WML WML/HTML Bytecode TCP/IP WDP GSM networkInternet Data is protected by the application, i.e. the bytecode is encrypted/decrypted by the WAP browser (or by an add-on) with user-level keys.
  • 10. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Move over, browser ! §  Moving the browser to the smartcard solves several issues. 1.  There is a HUGE installed base of cheap Phase 2+ phones è users can use WAP now and give more money to the operator ! As long as their phone supports what the WIB needs… 2.  Setting up WAP on the phone is a nightmare for the average human : thus, no one uses it and the operator doesn’t make any money è WIB set-up is pre-loaded at personalization and may be modified OTA. 3.  Different phones have different browsers : the operator gets a subset of the standard… and a superset of browser bugs è a unique browser on all cards (no matter what the phone is). 4.  A smartcard offers better security (key storage, state-of-the art crypto, etc.).
  • 11. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 WAP-enabled smartcard SMS-C MESIM WAP Browser Config. files OTA server WAP gatewayProactive commands
  • 12. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 The Invasion of the Killer Browser §  The services offered by a SIM Toolkit applet are defined by its implementation and personalization. §  Adding new services means replacing the applet with a newer version, which usually means replacing the SIM card... è The same services can be provided using local pages. è The browser never changes : only the local pages are updated. è Additional features may be added OTA using plug-ins (PKI, etc). è The user may pull content from the network (Portal, WWW). è The operator may push any kind of targeted content to the user.
  • 13. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 On second thought… §  Some specific operator requirements cannot be – and will never be – met by a generic browser… unless you develop a specific plug-in for each of them. This defeats the purpose, doesn’t it ? §  If the operator doesn’t have any specific requirement, a hand- crafted SIM Toolkit Applet will always be smaller and faster than a generic (read: bloated) browser. §  Deploying a browser has major impacts on the operator network : much more SMS traffic, WAP gateway, etc. §  But hey, let marketing worry about that, right ?
  • 14. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 A Band Of Browsers §  SmartTrust Wireless Internet Browser. §  SIM Alliance S@T browser. §  3GPP USAT Interpreter : s 21.112 & 31.11{2,3,4} Release 5 : architecture, protocol, core browser. s 31.113 Release 6 : PKI plug-ins. §  And let’s not forget proprietary browsers like the PICO. §  These browsers all support the WML standard (or at least a large subset of it) as well as proprietary extensions (S@TML, SmartTrust WML, etc). This is similar to the Netscape/ Internet Exploder situation.
  • 15. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 So… what’s the big deal ? §  A WAP browser really belongs on the phone, where processing power and memory are plentiful. §  A Java smartcard is just about the worst place to implement a WAP browser. s Minimal resources : 8-bit processor, 128 bytes of stack, around 1 Ko of RAM storage, slow EEPROM writes. s Cumbersome transport layer (03.40 / 03.48) : small PDU size, high latency. s Language / API issues. §  Face it : the WIB is a Virtual Machine on top of the Java Card Virtual Machine…
  • 16. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 SmartTrust « SmartTrust is a leading developer of infrastructure solutions designed to provide mobile subscribers with easy to use and secure personalized services. » §  SmartTrust maintains the WIB specification, which is implemented by a number of smartcard vendors. §  SmartTrust provides server software : - a WAP gateway for the WIB, called Wireless Internet Gateway (WIG). - an OTA management platform, called Delivery Platform (DP).
  • 17. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 WIB-WIG Communication §  WIB and WIG talk to each other using the Short Message Service (SMS). §  Concatenated messages may be used in both directions. §  The WIB uses 3 Target Application Reference (TAR) values. s  Pull TAR : WIB-initiated messages. s  Push TAR : WIG-initiated messages. s  Administrative TAR : WIG-initiated administrative messages. s  1 extra TAR for Vodafone : the Data Download TAR, which manages the “OTA Script Executed” event. §  All messages have a 03.48 security header, with one of these security levels: s  L0 : no security. s  L1 : authentication counter + 3DES MAC. s  L2 : authentication counter + CRC-32 MAC + 3DES encryption. s  L3 : authentication counter + ISO9797 MAC + 3DES encryption. §  The 03.48 Proof Of Receipt (PoR) mechanism is not used : all messages are commands. §  In the future, other bearers than SMS may be used.
  • 18. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Pull Mode MESIM WIB Config. files WIG Web server 1. SELECT ITEM ENVELOPE (MENU SELECTION) Pull TAR 3. HTTP GET 5. ENVELOPE 4. HTTP reply 2. SEND SM Wait state
  • 19. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Push Mode MESIM WIB Config. files WIG 3. Proactive commands Push TAR 2b. ENVELOPE Web server 1. HTTP POST 2a. HTTP reply
  • 20. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 WIB Script A WIB script is a sequence of WIB commands. A script is run in order until : • the last command is reached. • the Exit command is run. • the Cancel button is pressed. • the Wait state is entered.
  • 21. The key to an open world ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. 19/03/15 WIB commands WML SIM Application Toolkit commands WIB-specific commands
  • 22. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 WIB Commands § The WIB supports a subset of standard WML elements (see Appendix A) : s Deck : <wml>…</wml> s Card : <card>…</ card> s Paragraph (unit of displayable text) : <p>…</ p> s Text formatting : <br/>, <i>…</i>, <b>…</b>, <u>…</u>, etc. s Variables : <setvar/> s User input : <input/> s User selection : <select/>, <option/> s User Navigation : <do>…</do>, <go/>, <a>…</a> § All these commands are bytecode-encoded into TLVs.
  • 23. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 SIM Application Toolkit commands §  The WIB supports the SIM Application Toolkit (SAT) commands. s  Some of the commands may be called explicitly in a WML page using the go href element. s  Although the go element is used, no message is sent to the server : the command is executed locally on the SIM. s  Supported SAT Commands depend on the mobile. §  The list of available commands is : Display Text, Get Input, Launch Browser, Provide Local Information, Play Tone, Refresh, Select Item, Send Short Message, Send USSD, Set Idle Mode Text, Set Up Call, Timer Management. §  All these commands are bytecode-encoded into TLVs.
  • 24. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 SAT : Send Short Message A text SM is sent to MSISDN "0706754321“, using the specified Service Center "+46705008999" (regardless of the default value in the mobile station). <card> <p> <do type="vnd.smarttrust.extended"> <go href="http://server#wigSendSM('Hello!',,, '0706754321', '+46705008999')"/> </do> </p> </card>
  • 25. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 SAT : Set Up Call If the ME is not busy with another call, "0706754321“ is called. No text is displayed and no automatic retry will be made. <card> <p> <do type="vnd.smarttrust.extended"> <go href="http://server#wigSetupCall(00,,,,,'0706754321')"/> </do> </p> </card>
  • 26. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 SAT : Error Management §  Because of ME diversity and application complexity, Error Management is an important part of the WIB. §  For all supported SIM Toolkit commands, a behavior and/or an error code are defined for each TERMINAL RESPONSE value. §  EF_ERROR_TEXT (6F02) stores the error message to be displayed for a given error code. s  If an error message contains the %D wildcard, a detailed error report will be displayed : Error code, number of the WIB command, Terminal Response value / file identifier. s  Error code 0xDF is generic : it’s the only mandatory entry in EF_ERROR_TEXT.
  • 27. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 WIB-specific commands §  The WIB supports specific commands, which may originate from : 1. Explicit WML calls, using the go href element. 2. WML processing by the WIG. §  The list of commands is : s  Check Terminal Profile : check if specified bits are set in the Terminal Profile and jump. s  Branch On Variable Value : relative jump (variable-based). s  Execute Local Script : run a script stored on the SIM. s  Exit : terminate the current script. s  New Context : clear the variable table, partially or totally. s  Plug-in : invoke a plug-in s  Set Return Tar Value : set the destination of the next message submitted to the server. s  Set Script Buffer Size To Variable. s  Set Version Information to Variable : store WIB version and plug-in information in a variable. s  Skip : direct relative jump. s  Variable madness: Substring, Add/Subtract, Convert (HEX-BCD-base 10), Group/Ungroup, Swap Nibbles, GSM-UCS2 conversion. §  All these commands are bytecode-encoded into TLVs.
  • 28. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 WIB administrative commands §  WIB 1.3 supports administrative commands, which deal either with Local Scripts or with plug-ins. §  They must be pushed to the Administrative TAR. §  Get/Set Script Trigger Mode : event and menu management. §  Get Menu : retrieve the current menu. §  Get Script Info : retrieve the identifier and address of one or several Local Scripts. §  Install/Remove plug-in : activate/deactivate a plug-in. §  All these commands are bytecode-encoded into TLVs.
  • 29. The key to an open world ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. 19/03/15 Local Scripts Local Storage Script Addressing Event management Menu management
  • 30. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Local Scripts §  A WIB script may also be stored locally, i.e. “pre-loaded” on the SIM in EF_Bytecode (6F03). §  They may be used to provide “applet-like” features. §  The Execution of a Local Script may be triggered by : 1.  An Execute Local Script WIB command. 2.  The selection of a menu entry associated to a Local Script. 3.  The occurrence of a SIM Toolkit event associated to a Local Script. 4.  The expiration of a Timer associated to a Local Script using the Timer Management SAT command.
  • 31. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Local Scripts and Menus §  When the SIM card is activated, the WIB collects information from EF_Menu (6F18) and EF_Menu_Title (6F1E) to build its menu. §  A menu entry is made of : s  An item status, s  A item identifier, s  A menu ordinal, s  An icon identifier, s  A menu text. §  The item identifier points to a Local Script. §  Administrative commands : Get Menu, Get/Set Script Trigger Mode, Get Script Info
  • 32. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Local Scripts and Events §  EF_EVENT_STARTUP (6F0B) lists the SIM Toolkit events the WIB should listen to. A Local Script identifier is bound to each event. §  At startup, the WIB reads EF_EVENT_STARTUP and registers the events which are supported by the ME (according to TERMINAL PROFILE). §  When one of these events occurs, the matching Local Script is executed. s  If the WIB is already busy (or if the Wait For Response state is active), the event is queued. If an event of the same type is already queued, the new one overrides it. s  Queued events are processed according to their priority, i.e. the order in which they appear in EF_EVENT_STARTUP. §  Administrative commands : Get/Set Script Trigger Mode, Get Script Info
  • 33. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Script Addressing §  Script Addressing is the conversion of a script identifier into a bytecode “pointer” in EF_Bytecode. §  The WIB may be configured in Absolute Addressing mode or in Relative Addressing mode. s The addressing mode is separately configurable for menu selection and events. s The Timer Management and Execute Local Script commands always use the script identifier listed in EF_SCRIPT_ADDRESS (6F1D). §  Script identifiers and addresses may be retrieved using the Get Script Info WIB administrative command.
  • 34. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Relative Script Addressing
  • 35. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Absolute Addressing (1/2)
  • 36. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Absolute Addressing (2/2)
  • 37. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Plug-ins Plug-in management General purpose plug-ins Cryptographic plug-ins
  • 38. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Plug-in architecture §  A plug-in is a normal SIM Toolkit applet. s It extends the WIB by adding new features : l  Data storage, l  Cryptography : the WAP gap must be closed ! s It may be installed at personalization time. s Plug-ins are usually small enough to be installed OTA. §  A plug-in registers to the WIB using a Shareable interface. s Registration takes place on Terminal Profile and Status events. s A plug-in is identified by a text name. §  When the WIB receives the Plug-In command : s it uses the plug-in name to locate the appropriate applet. s It invokes the plug-in using another Shareable interface. §  The Shareable interfaces are not defined by SmartTrust.
  • 39. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Plug-In invocation §  This example invokes the PKCS#1 plug-in through the Plug-In WIB command : <setvar name="CES" value="&#x02;"/> <setvar name="TTBS" value="&#x54;&#x65;&#x78;&#x74;"/> <go href="http://server#wigObject(´P1´,´$(CES)$(TTBS)´,´STEXT ´)"/> §  P1 : plug-in name. §  CES : character-encoding scheme (02 = GSM). §  TTBS : text to be signed. §  STEXT : signature.
  • 40. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Plug-in administrative commands § Install Plug-in and Remove Plug-in have misleading names. § They do not deal with applet installation and removal : this is still performed using the Global Platform commands (INSTALL LOAD, INSTALL INSTALL, DELETE). § These commands deal with plug-in activation/ deactivation, i.e. whether an registered plug-in may be invoked by the WIB or not.
  • 41. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 The (in)famous WIB plug-ins § General-purpose plug-ins s Persistent Variables (Vodafone-specific) : data storage. s User Data : secure data storage & display. § Cryptographic plug-ins s Standard Security, Universal 3DES Signature : 3DES encryption/decryption/signature. s PIN Management : key access condition management. s PKCS#1, PKCS#7, Fingerprint : RSA signature. s Asymmetric Decryption : RSA decryption. s Public Key Retrieval (Vodafone-specific). § Call Control applet s not a plug-in, but while we’re on the subject…
  • 42. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Persistent Storage (VPS) §  This is a Vodafone plug-in (Vodafone Generic 2 specification). §  The WIB cannot store persistent information from one script to another. §  VPS allows the WIG to : s  store data into a pre-defined transparent file (EF_VPS : 0x6000). s  retrieve data from EF_VPS (trailing 0xFF’s not ignored). s  retrieve text from EF_VPS (trailing 0xFF’s ignored). §  It is intended for Vodafone use only and will not be used to store user sensitive data such as credit card numbers.
  • 43. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 User Data (UD) §  These plug-ins are used to handle user-specific information (User Data Objects) in a secure way. s A User Data object is a TLV, containing a value and an alpha-identifier. s The operator creates the data, which is stored in the EF_USER_DATA_OBJECTS file (6F61). s The user and the operator maintain the data. s Data access is protected by a PIN. §  Display User Data (DUDA) : display and update the value of a Data Object. §  Encrypted User Data (EUDA) : retrieve and encrypt (3DES) the value of Data Objects.
  • 44. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Standard Security Plug-ins §  3DES CBC encryption, without any user interaction (ENCR) s  Input data : key index + unpadded data. s  Input data is then zero-padded by the plug-in (0 to 7 bytes). s  Output data : padded ciphered data, prefixed by a byte set to the padding length. §  3DES CBC decryption, without any user interaction (DECR) s  Input data : key index + padded ciphered data, prefixed by a byte set to the padding length.. s  Output data : unpadded data. §  3DES CBC signature (SIGN) s Input data : key index + data to be signed. s The data is displayed to the user, who must verify CHV1. s Output data : signature (MAC4). §  3DES operations are performed using two 8-byte keys. §  Key storage was out of scope but is now covered.
  • 45. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Universal 3DES Signature (USGN) §  This plug-in is similar to the Standard Security SIGN plug-in. §  3DES CBC signature : s Input data : l  key index l  text to be signed (including variables encoded in UCS2) l  text encoding (GSM / UCS2) s Output data : signature (MAC4). s The text is displayed to the user, who must verify CHV1. §  The 3DES signature is performed using two 8-byte keys. §  Key storage is out of scope.
  • 46. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 PKI plug-ins §  WIB 1.3 supports several Public Key Infrastructure (PKI) plug-ins. §  Decryption : Asymmetric Decryption (AD) §  Digital signature (text) : PKCS#1 (P1) §  Digital signature with time stamp (text) : PKCS#7 (P7) §  Digital signature and non-repudiation (data) : Fingerprint (FP) §  Public Key Retrieval (PKR) §  The S3S plug-in (proprietary RSA signature) is dead.
  • 47. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 PKI plug-ins personalization § User dialogs are stored in transparent files, which are defined by SmartTrust. § Key pairs are stored in proprietary transparent files. s AD : one key pair for decryption, one key pair for unwrapping. s FP : one key pair for non-repudiation, one key pair for authentication. s P1 : one key pair for signature. s P7 : one key pair for signature. § The WIM files (PKCS#15) could also have been used. § Access to each private key is protected by a PIN (PIN Management plug-in).
  • 48. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 PIN Management (PM) § All keys used by the crypto plug-ins are protected by a PIN. A user may forget its value or block it. § PM provides administrative features for all these PINs. §  Change PIN : user operation s  Private Key ID (Private key : Non-repudiation / Signature / Decryption / Unwrap). s  Or: Symmetric Key ID. §  Reset PIN : server operation s  Key ID. s  New PIN value, ciphered and MAC’ed (3DES CBC (2 keys) + SHA1 or ISO9797_ALG3).
  • 49. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Asymmetric Decryption (AD) §  This plug-in deciphers a PKCS#1 ciphertext : s  Input data : Ciphertext + key number. s  Output data : Cleartext, with padding. 1.  Display at most 16 bytes of the ciphertext (optional). 2.  Ask the user to verify the PIN protecting the private key. 3.  Decipher the ciphertext. 4.  Return the cleartext to the browser. Decrypt: 1234 AB12 D3661 1F01 2354 5CE1 1010 B210 Cancel Ok Enter decryption PIN: xxxxx Cancel Ok Wrong PIN, 2 attempts left Enter decryption PIN: xxxxx Cancel Ok
  • 50. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 PKCS#1 (P1) §  This plug-in performs an application-level digital signature, which is output-compliant with PKCS#1 (see Appendix B). §  It may be used to sign a small amount of displayable text : “What-you-see-is-what-you-sign” 1.  Display to the text to be signed (GSM / UCS2) 2.  Ask the user to verify the PIN protecting the private key. 3.  Sign the text. 4.  Return the signature to the browser. I will accept charging of $23.43 for 23 roses. Cancel Ok Enter signing PIN: xxxxx Cancel Ok Wrong PIN, 2 attempts left Enter signing PIN: xxxxx Cancel Ok
  • 51. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 PKCS#7 (P7) §  This plug-in performs an application-level digital signature, which is output-compliant with PKCS#7 (see Appendix B). s  It may be used to sign small amounts of displayable text, i.e. text entered on the mobile phone or received in a SMS, which also need to be time stamped. s  It is mainly used for non-repudiation (similar to the signText WAP operation). 1.  Display the text to be signed. 2.  Ask the user to verify the PIN protecting the private key. 3.  Sign the text. 4.  Return the signature to the browser. I will accept charging of $23.43 for 23 roses. Cancel Ok Enter signing PIN: xxxxx Cancel Ok Wrong PIN, 2 attempts left Enter signing PIN: xxxxx Cancel Ok
  • 52. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Fingerprint (FP) §  This plug-in performs an application-level digital signature, which is output compliant with PKCS#1. §  It may be used to sign : s  “large” amounts of data, i.e. an e-mail message, a word- processing document. s  data that is not displayable on a mobile phone, i.e. random data used during the set-up phase of a VPN (Virtual Private Network). s  It is mainly used for authentication. 1.  Display at most 16 bytes of the data to be signed (optional) 2.  Ask the user to verify the PIN protecting the private key. 3.  Sign the text. 4.  Return the signature to the browser. Authorize: 1234 AB12 D3661 1F01 2354 5CE1 1010 B210 Cancel Ok Enter signing PIN: xxxxx Cancel Ok Wrong PIN, 2 attempts left Enter signing PIN: xxxxx Cancel Ok
  • 53. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Public Key Retrieval (PKR) •  This is a Vodafone plug-in (Vodafone Generic 2 specification). •  It allows the WIG to read the Public Key associated to a given Private Key (Non-repudiation / Signature / Decryption / Unwrap). §  The plug-in also provides APDU commands to read Public Keys and to generate key pairs. This may be used a Point Of Sale. §  The output format is PKCS#1 compliant, i.e. the plug-in returns a DER-encoded value of the RSAPublicKey ASN.1 type : RSAPublicKey ::= SEQUENCE { modulus INTEGER, -- n publicExponent INTEGER -- e }
  • 54. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Call Control §  ‘Call Control’ is a procedure defined in [51.014]. It is provisioned using the ‘Call Control’ activation bit in the SIM Service Table. §  When this service is activated, all dialed digit strings, Supplementary Service (SS) control strings and Unstructured Supplementary Service Data (USSD) strings are first passed to the SIM before the ME sets up the call/SS/USSD. §  The SIM also receives location information, network code, etc. §  The SIM may allow, bar or modify the call/SS/USSD. §  The SIM may replace a call/SS/USSD by another call/SS/USSD.
  • 55. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Call Control Script §  This feature is implemented in a SIM Toolkit applet, which interprets a Call Control script stored in EF_CALL_CONTROL_SCRIPT. The script is updateable by OTA. §  The script and the file are defined by a Vodafone specification. §  The Call Control applet is not a WIB plug-in : it doesn’t receive WIB scripts. §  It receives call details from the ME in a ENVELOPE (CALL CONTROL) command. §  Once the applet has processed the call, it replies to the ME. §  Optionally, the applet stores the dialed number in EF_CALL_CONTROL and triggers the WIB using the CALL CONTROL event. The WIB may then read from EF_CALL_CONTROL and display a message to the user.
  • 56. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Call Control Script File §  The Call Control script file contains a list of Case Objects, a Default Action and an Error Action. § When the applet is triggered, it applies each Case object to the call details. § A Case Object contains : § A Test Object : call details, with wildcards. § An Action Object : allow / deny / modify the call details. §  If the test described in the Test Object is true, the action described in the Action Object is performed (possibly sending data to the WIB). §  if not, move to the next Test Object. §  If none of the Tests Objects apply to the call details, the Default Action is performed. §  If anything goes wrong (and it will !), the Error Action is performed.
  • 57. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Call Control example (1/2) Here is a simple Case Object, which reroutes any phone number starting with 014138 to to 0141381700. EF_CALL_CONTROL_SCRIPT : 70 1a // Case Object 71 06 // Test Object 06 04 // Address TLV (cf. 102.223) 81 10 14 83 // Does address start with 014138 ? 72 10 // Action Object (Don’t trigger the WIB) 30 30 30 30 30 32 // Event label (unused) 02 08 // Allowed with modifications 06 06 // Route call to an address 81 10 14 83 71 00 // Dial 0141381700
  • 58. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 Call Control example (2/2) Command : a0 c2 00 00 17 // ENVELOPE command d4 15 // CALL CONTROL event 82 02 82 81 // ME -> SIM 06 06 81 10 14 83 71 69 // The user dialed 0141381796 93 07 00 f1 10 00 01 00 01 // Location Information (9F xx) Response : a0 c0 00 00 W(2:2) // GET RESPONSE command [02 08 // Allowed with modifications 06 06 // Route call to an address 81 10 14 83 71 00] // Dial 0141381700 (90 00)
  • 59. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 References § USAT Interpreter – http://www.3GPP.org/ § SIM Alliance – http://www.SIMAlliance.org § SmartTrust – http://www.SmartTrust.com § PKCS – http://www.RSALabs.com § WAP – http://www.OpenMobileAlliance.com/ § World Wide Web Consortium – http://www.w3.org/
  • 60. The key to an open world ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. 19/03/15 Appendix A : WML
  • 61. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 WML : user input §  The input element defines an input field where the user may enter information. §  A $ character followed by (VARIABLENAME) indicates a variable reference. §  This example will prompt the user to enter at most 20 digits : <input title=“Please enter your phone number” type=“text” name=“PHONE” format=“*N” maxlength=“20”/>
  • 62. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 WML : variables (1/2) §  The setvar element sets the value of a variable. Variable references used in the value of an attribute are replaced on a byte-per-byte basis in the WIB. §  A $ character followed by (VARIABLENAME) indicates a variable substitution. §  This example will display the text "Item: CD Price: $10“ : <card> <p> <setvar name="ITEM" value="CD"/> <setvar name="PRICE" value="10"/> Item: $(ITEM) Price: $$$(PRICE) </p> </card>
  • 63. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 WML : variables (2/2) §  The WIB must support up to 252 variables per script. s  Variable 0x00 is not allowed. s  Variables 0x80, 0x81 and 0x82 are reserved for WIB use. §  Variables may be GSM or UCS2 encoded. §  Nested variables are not supported. s  SmartTrust WML supports nested variables. §  The WIB supports INSANE variable management features: Substring, Add/Subtract, Convert (hex-BCD-decimal), Group/ Ungroup, Swap Nibbles, GSM-UCS2 conversion. §  The SmartTrust specification recommends allocating 1 Ko of EEPROM for variable storage.
  • 64. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 WML : user selection §  The select element defines and displays a set of optional list items from which the user can select an item. §  An option element is required for each item in the list. The name of the menu, normally displayed by the mobile station, is specified by the title attribute. §  This example will prompt the user to select one item and jumps to the corresponding destination : <select title="Please choose service" name="SELECTION"> <option value="Bank" onpick="#CARD2">Banking</option> <option value="Gamble" onpick="#CARD3">Gambling</option> <option value="blah“ onpick="http://server/ home.wml">[Home]</option> </select>
  • 65. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 WML : user navigation (1/2) §  The anchor (or a) element binds a text section to a go element. A sequence of anchors is presented to the user as a list of items, from which the user can select one. §  When the user has selected one item, the corresponding go is executed. §  This example will prompt the user to select one item and jumps to the corresponding destination : Choose a service. <anchor><go href="#CARD2"/>Banking</anchor> <anchor><go href="#CARD3"/>Gambling</anchor> <anchor><go href="http://server/home.wml"/>[Home]</anchor>
  • 66. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 WML : user navigation (2/2) §  The do element is a general mechanism for the user to act upon the current card. §  The go element declares a jump to : s  a card in the deck, s  A URL : this is equivalent to a GET/POST HTTP request. §  The go element may also be used to perform WIB or WIG specific commands. §  This example will prompt the user for a string, then passes the string to a web server : <input type="text" title="Enter name" /> <do type="accept"> <go method="post" href="http://server/page.jsp?f=$(NAME)"/> </do>
  • 67. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 WML : <go href> element §  The go href element is used to perform a call to : s  A SIM Toolkit command, s  A WIB specific command, s  A WIB plug-in, §  The syntax is similar to a call to a WML Script subroutine. §  The commands have different function names and different numbers of arguments. §  The arguments are used for both input and output data. <do type="vnd.smarttrust.extended"> <go href="http://server#functionname('arg1','arg2',...)"/> </do>
  • 68. The key to an open world ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. 19/03/15 Appendix B : PKCS
  • 69. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 1. Hash the text to be signed (SHA1, 20-byte output). 2. Encode the hash in a DigestInfo ASN.1 type : PKCS#1 : signature operation (1/2)
  • 70. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 PKCS#1 : signature operation (2/2) 3. The message to sign must have the same length as the key modulus : generate PS, a padding sequence of random non-zero bytes. 4. Build the message to sign : M = 01 || PS || 00 || DigestInfo 5. Sign M with the private key (RSA modular exponentiation). 6. Output the result : R = 01 || Modulus length || M
  • 71. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 PKCS#7 : signature operation (1/2) 1. Hash the data to be signed (SHA1, 20-byte output). 2. Encode the hash in the following template : 3. Sign the template according to PKCS#1 (cf. PKCS#1 plug-in). 4. Output the result (with optional data).
  • 72. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 PKCS#7 : signature operation (2/2) § Input data s Text to be signed (1 to 160 bytes). s Text encoding : GSM or UCS2. s Option flags. § Output data s Signature (I.e. DER-encoded value of the DigestInfo ASN.1 type). s Text to be signed (optional). s Hash of the public key (optional). s URL of the public key certificate (optional). s ICCID of the SIM card (optional). s Message digest of the text to be signed (optional).
  • 73. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 §  The signature operation is identical to the one performed by the PKCS#1 plug-in. §  Depending on the input flags, the output may include optional data : R = 01 || Modulus length || M || Total length || 80 || ICCID || 01 || Public key hash || URL Fingerprint : signature operation (1/2)
  • 74. ‹#›(SmartTrust Browser 1.3 - JS)Copyright © 2003 Oberthur Card Systems. All rights reserved. The key to an open world 19/03/15 § Input data s Data to be signed (DER-encoded value of the DigestInfo ASN.1 type). s Option flags. § Output data s Signature. s Hash of the public key matching the private key (optional). s URL of the public key certificate (optional). s ICCID of the SIM card (optional). Fingerprint : signature operation (2/2)