10
Mobile Web Security Bootstrap A labs.ericsson.com API http://labs.ericsson.com/apis/mobile-web-security-bootstrap/

Mobile Web Security Bootstrap on Ericsson Labs

Embed Size (px)

DESCRIPTION

The Mobile Web Security Bootstrap (MWSB) API can be used to establish shared secret keys between an application server and a mobile web client. The key can be used to secure mobile applications that, for instance, require authentication, data confidentiality and integrity, and single sign on.

Citation preview

Page 1: Mobile Web Security Bootstrap on Ericsson Labs

Mobile Web

Security

Bootstrap

A labs.ericsson.com APIhttp://labs.ericsson.com/apis/mobile-web-security-bootstrap/

Page 2: Mobile Web Security Bootstrap on Ericsson Labs

© Ericsson AB 2010 | Page 2

ericsson labs APIs

Maps & positioning

Mobile Mobile

LocationLocationMobile Mobile

MapsMaps

Web Web

MapsMaps

communication

AsyncAsync

VoiceVoice

SMS Send & SMS Send &

ReceiveReceiveMobile Mobile

PushPushGroup Voice Group Voice

MixerMixer

security

Mobile Web Security Mobile Web Security

BootstrapBootstrap CAPTCHACAPTCHAOauth2 Oauth2

FrameworkFramework

Identity Management Identity Management

FrameworkFrameworkKey Management Key Management

ServiceService

Web technologies

Web Web

ConnectivityConnectivity EventSourceEventSourceWeb Background Web Background

ServiceService

Web Device Web Device

ConnectivityConnectivityDistributed Distributed

Shared MemoryShared Memory

Web RealWeb Real--Time Time

CommunicationCommunication

Mobile Mobile

IdentificationIdentification

User & network information

Mobile Network Mobile Network

LookLook--upup

Network Network

ProbeProbe

Machine learning

Cluster Cluster

ConstructorConstructor

Media and graphics

Face Face

DetectorDetector TextText--toto--SpeechSpeech

Tag ToolTag ToolMobile Sensor Mobile Sensor

Actuator LinkActuator Link

NFC & sensors

Sensor NetworkingSensor Networking

Application PlatformApplication Platform

Page 3: Mobile Web Security Bootstrap on Ericsson Labs

© Ericsson AB 2010 | Page 3

Mobile Web Security

Bootstrap

› The SIM is commonly used for getting cellular access, mobile connectivity and access to some mobile services

› The SIM proven security features can also be used for securing any mobile web applications

› This service provides an API for establishing a secret key between mobile web clients and web applications

Page 4: Mobile Web Security Bootstrap on Ericsson Labs

© Ericsson AB 2010 | Page 4

Why Mobile Web Security

Bootstrap?

› Security – As secure as SIM

› Standard – Based on industry standard

› Acceptance – Many standardized applications

› Convenience – Transparent to users

› Extensibility – Any applications can exploit the SIM

Page 5: Mobile Web Security Bootstrap on Ericsson Labs

© Ericsson AB 2010 | Page 5

Main Features

› Based on 3GPP industry standardGeneric Bootstrapping Architecture

› Client and server Web/Java APIs available and documented with examples

› HTTP interfaces

› Soft client available to allow focusing on the development of the network side of the web application

Page 6: Mobile Web Security Bootstrap on Ericsson Labs

© Ericsson AB 2010 | Page 6

Overview

MobileWeb Client

BootstrapClient

Mobile Web Client

SubscriberDatabase

BootstrapServer

MWSB

Mobile Web

Security Bootstrap

HTTP

NetworkApplication

NetworkApplication

Mobile WebApplication Server

HTTP

› Ub interface – Mobile client uses API to bootstrap a master secret key

› Ua interface – Mobile Web Client uses API to derive application-specific master key

› Zn interface – Mobile Web Application Server uses API to obtain the corresponding application-specific master key

At the end of the API usage transactions the client and server share an application-specific secret-key

Ub

ZnUa

*

Page 7: Mobile Web Security Bootstrap on Ericsson Labs

© Ericsson AB 2010 | Page 7

// Create soft client with user identity and permanent key

GbaClient softclient = new GbaClient(myID, myKey);

// Bootstrap client with master key. btid is the handler.

String btid = softclient.bootstrap();

// Derive application-specific key to be shared with app server

byte[] appKey = softclient.getKsNaf(app_Fqdn);

// Use the app key for HTTP Digest Authentication

boolean authResult = runUaHttpDigest(app_URL, btid, appKey);

Java Client API

› Soft Client API provided for focusing on server application

› Example showing how to establish a shared key

Page 8: Mobile Web Security Bootstrap on Ericsson Labs

© Ericsson AB 2010 | Page 8

// Applicatin Servlet doGet()

// Create application context with Labs authorization API key

GbaNaf app = new GbaNaf(myFqdn, myApiKey)

// Parse GET authorization headers & fetch btid (key Handler)

Authorization authz = Authorization.parse(authorizationHeader);

String btid = authz.getUsername();

// Derive the application-specific key to be shared with client

appKey = app.getKsNaf(btid);

// Use the shared key to authenticate the mobile client

Digest.verify(authorization, appKey)

Java Server API

› API towards mobile client and API towards MWSB

› Servlet example showing how to establish a shared key

Page 9: Mobile Web Security Bootstrap on Ericsson Labs

© Ericsson AB 2010 | Page 9

Possible applications

Authentication

Identity Management

Single Sign-On

ConfidentialityIntegrity

Key Management

Page 10: Mobile Web Security Bootstrap on Ericsson Labs

© Ericsson AB 2010 | Page 10