SlideShare ist ein Scribd-Unternehmen logo
1 von 74
Downloaden Sie, um offline zu lesen
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)

Weitere ähnliche Inhalte

Was ist angesagt?

MPLS-TP (MPLS Transport Profile)
MPLS-TP (MPLS Transport Profile)MPLS-TP (MPLS Transport Profile)
MPLS-TP (MPLS Transport Profile)Shivlu Jain
 
2G / 3G / 4G / IMS / 5G Overview with Focus on Core Network
2G / 3G / 4G / IMS / 5G Overview with Focus on Core Network2G / 3G / 4G / IMS / 5G Overview with Focus on Core Network
2G / 3G / 4G / IMS / 5G Overview with Focus on Core NetworkHamidreza Bolhasani
 
volte ims network architecture
volte ims network architecturevolte ims network architecture
volte ims network architectureVikas Shokeen
 
IIJmio meeting 26 プライベートLTEとパブリックLTEの相互運用における問題とその解決
IIJmio meeting 26 プライベートLTEとパブリックLTEの相互運用における問題とその解決IIJmio meeting 26 プライベートLTEとパブリックLTEの相互運用における問題とその解決
IIJmio meeting 26 プライベートLTEとパブリックLTEの相互運用における問題とその解決techlog (Internet Initiative Japan Inc.)
 
Attacks you can't combat: vulnerabilities of most robust MNOs
Attacks you can't combat: vulnerabilities of most robust MNOsAttacks you can't combat: vulnerabilities of most robust MNOs
Attacks you can't combat: vulnerabilities of most robust MNOsPositiveTechnologies
 
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
 
Accelerate SDN/NFV Network ~ネットワーク高速化のアレコレ~ - OpenStack最新情報セミナー 2016年3月
Accelerate SDN/NFV Network ~ネットワーク高速化のアレコレ~ - OpenStack最新情報セミナー 2016年3月 Accelerate SDN/NFV Network ~ネットワーク高速化のアレコレ~ - OpenStack最新情報セミナー 2016年3月
Accelerate SDN/NFV Network ~ネットワーク高速化のアレコレ~ - OpenStack最新情報セミナー 2016年3月 VirtualTech Japan Inc.
 
Protecting Data In Motion with MACsec - Gijs Willemse - Rambus Design Summit ...
Protecting Data In Motion with MACsec - Gijs Willemse - Rambus Design Summit ...Protecting Data In Motion with MACsec - Gijs Willemse - Rambus Design Summit ...
Protecting Data In Motion with MACsec - Gijs Willemse - Rambus Design Summit ...Rambus
 
How to Intercept a Conversation Held on the Other Side of the Planet
How to Intercept a Conversation Held on the Other Side of the PlanetHow to Intercept a Conversation Held on the Other Side of the Planet
How to Intercept a Conversation Held on the Other Side of the PlanetPositive Hack Days
 
International roaming technical view
International roaming technical viewInternational roaming technical view
International roaming technical viewRawand Jaf
 
VoLTE Flows and CS network
VoLTE Flows and CS networkVoLTE Flows and CS network
VoLTE Flows and CS networkKarel Berkovec
 
176960775-Huawei-MA5600T.pdf
176960775-Huawei-MA5600T.pdf176960775-Huawei-MA5600T.pdf
176960775-Huawei-MA5600T.pdftaha karram
 
Signalling in EPC/LTE
Signalling in EPC/LTESignalling in EPC/LTE
Signalling in EPC/LTELeliwa
 

Was ist angesagt? (20)

IIJmio meeting 31 音声通信の世界
IIJmio meeting 31 音声通信の世界IIJmio meeting 31 音声通信の世界
IIJmio meeting 31 音声通信の世界
 
MPLS-TP (MPLS Transport Profile)
MPLS-TP (MPLS Transport Profile)MPLS-TP (MPLS Transport Profile)
MPLS-TP (MPLS Transport Profile)
 
2G / 3G / 4G / IMS / 5G Overview with Focus on Core Network
2G / 3G / 4G / IMS / 5G Overview with Focus on Core Network2G / 3G / 4G / IMS / 5G Overview with Focus on Core Network
2G / 3G / 4G / IMS / 5G Overview with Focus on Core Network
 
volte ims network architecture
volte ims network architecturevolte ims network architecture
volte ims network architecture
 
IIJmio meeting 18 eSIMとMVNO
IIJmio meeting 18 eSIMとMVNOIIJmio meeting 18 eSIMとMVNO
IIJmio meeting 18 eSIMとMVNO
 
IIJmio meeting 26 プライベートLTEとパブリックLTEの相互運用における問題とその解決
IIJmio meeting 26 プライベートLTEとパブリックLTEの相互運用における問題とその解決IIJmio meeting 26 プライベートLTEとパブリックLTEの相互運用における問題とその解決
IIJmio meeting 26 プライベートLTEとパブリックLTEの相互運用における問題とその解決
 
IIJmio meeting 31 SIMフリースマホの昔と今
IIJmio meeting 31 SIMフリースマホの昔と今IIJmio meeting 31 SIMフリースマホの昔と今
IIJmio meeting 31 SIMフリースマホの昔と今
 
IIJmio meeting 7 MVNOとSIMフリー端末の問題について
IIJmio meeting 7 MVNOとSIMフリー端末の問題についてIIJmio meeting 7 MVNOとSIMフリー端末の問題について
IIJmio meeting 7 MVNOとSIMフリー端末の問題について
 
Attacks you can't combat: vulnerabilities of most robust MNOs
Attacks you can't combat: vulnerabilities of most robust MNOsAttacks you can't combat: vulnerabilities of most robust MNOs
Attacks you can't combat: vulnerabilities of most robust MNOs
 
IIJmio meeting 16 スマートフォンがつながる仕組み
IIJmio meeting 16 スマートフォンがつながる仕組みIIJmio meeting 16 スマートフォンがつながる仕組み
IIJmio meeting 16 スマートフォンがつながる仕組み
 
開幕SIMがB41に入れない仕組みについて
開幕SIMがB41に入れない仕組みについて開幕SIMがB41に入れない仕組みについて
開幕SIMがB41に入れない仕組みについて
 
VoLTE flows - basics
VoLTE flows - basicsVoLTE flows - basics
VoLTE flows - basics
 
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
 
Accelerate SDN/NFV Network ~ネットワーク高速化のアレコレ~ - OpenStack最新情報セミナー 2016年3月
Accelerate SDN/NFV Network ~ネットワーク高速化のアレコレ~ - OpenStack最新情報セミナー 2016年3月 Accelerate SDN/NFV Network ~ネットワーク高速化のアレコレ~ - OpenStack最新情報セミナー 2016年3月
Accelerate SDN/NFV Network ~ネットワーク高速化のアレコレ~ - OpenStack最新情報セミナー 2016年3月
 
Protecting Data In Motion with MACsec - Gijs Willemse - Rambus Design Summit ...
Protecting Data In Motion with MACsec - Gijs Willemse - Rambus Design Summit ...Protecting Data In Motion with MACsec - Gijs Willemse - Rambus Design Summit ...
Protecting Data In Motion with MACsec - Gijs Willemse - Rambus Design Summit ...
 
How to Intercept a Conversation Held on the Other Side of the Planet
How to Intercept a Conversation Held on the Other Side of the PlanetHow to Intercept a Conversation Held on the Other Side of the Planet
How to Intercept a Conversation Held on the Other Side of the Planet
 
International roaming technical view
International roaming technical viewInternational roaming technical view
International roaming technical view
 
VoLTE Flows and CS network
VoLTE Flows and CS networkVoLTE Flows and CS network
VoLTE Flows and CS network
 
176960775-Huawei-MA5600T.pdf
176960775-Huawei-MA5600T.pdf176960775-Huawei-MA5600T.pdf
176960775-Huawei-MA5600T.pdf
 
Signalling in EPC/LTE
Signalling in EPC/LTESignalling in EPC/LTE
Signalling in EPC/LTE
 

Ähnlich wie SmartTrust WIB 1.3

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
 
CellSIM OS Overview 1.0
CellSIM OS Overview 1.0CellSIM OS Overview 1.0
CellSIM OS Overview 1.0Vladimir Nagin
 
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
 

Ähnlich wie SmartTrust WIB 1.3 (20)

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)
 
CellSIM OS Overview 1.0
CellSIM OS Overview 1.0CellSIM OS Overview 1.0
CellSIM OS Overview 1.0
 
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
 
wap01.ppt
wap01.pptwap01.ppt
wap01.ppt
 

Mehr von 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
 

Mehr von 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)
 

Kürzlich hochgeladen

Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 

Kürzlich hochgeladen (20)

Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 

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)