symbian code signing or – how to implement a mobile code signing scheme

71
Symbian code signing or – how to implement a mobile code signing scheme

Upload: grace-daniela-short

Post on 24-Jan-2016

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Symbian code signing or – how to implement a mobile code signing scheme

Symbian code signing

or – how to implement a mobile code signing

scheme

Page 2: Symbian code signing or – how to implement a mobile code signing scheme

Overview – security I

• History of Symbian

• Why handset-based security• Stakeholders in mobile security

• Architectural goals of the Platform Security Model

• Pillars of the Platform Security Model

Page 3: Symbian code signing or – how to implement a mobile code signing scheme

Overview – security II

• The Native Software Installer

• Signing games

Page 4: Symbian code signing or – how to implement a mobile code signing scheme

About /me

• Tam HANNA– CEO, Tamoggemon

Ltd.– Runs web sites

about mobile computing

Page 5: Symbian code signing or – how to implement a mobile code signing scheme

History of Symbian

Page 6: Symbian code signing or – how to implement a mobile code signing scheme

EPOC

• Developed by Psion– Series5– Revo

• “Thrown out” to Symbian

Page 7: Symbian code signing or – how to implement a mobile code signing scheme

Series60

• First versions– Introduced on 7650

• S60v2 still common– Nokia N70

Page 8: Symbian code signing or – how to implement a mobile code signing scheme

S60v3

• Renamed due to virus problems

• Introduces mandatory signing– Binary break

• Three feature packs– Downward compatible

Page 9: Symbian code signing or – how to implement a mobile code signing scheme

S60v5

• S60v3 + touch– Lives along v3

• Very basic GUI

• Partially downward compatible– Apps run, but cant be

controlled due to lack of buttons

Page 10: Symbian code signing or – how to implement a mobile code signing scheme

Why handset-based security

Page 11: Symbian code signing or – how to implement a mobile code signing scheme

Different user perceptions

• Mobile phones are always on the user– More personal

• User feels that unit “is safe”– No large-scale outbreaks so far– User is unwilling to accept implications

of AV software

Page 12: Symbian code signing or – how to implement a mobile code signing scheme

Carriers can’t do it alone

• GSM / CDMA– Can be protected

• Bluetooth– Can’t really be protected by the carrier

• WiFi– Don’t even ask

Page 13: Symbian code signing or – how to implement a mobile code signing scheme

Users are stupid

• Cabir displayed THREE warning alerts– Perimeter security is not enough

• Users choose dancing pigs over security– Ed Felton

Page 14: Symbian code signing or – how to implement a mobile code signing scheme

StakeholdersStakeholders

Page 15: Symbian code signing or – how to implement a mobile code signing scheme

Carriers

• Don’t want to invest $$$– Don’t burden us with investments /

infrastructure

• Don’t want to deal with unhappy users– Keep them happy

• Gain revenue if users buy more apps– Feeling safe == more app sales

Page 16: Symbian code signing or – how to implement a mobile code signing scheme

Developers

• Want easy access to full OS features– Will move to other platform if not given

• Want simple development process

• Gain revenue if users buy more apps– Feeling safe == more app sales

• Less risk if bugs occur– Can’t access dangerous stuff

Page 17: Symbian code signing or – how to implement a mobile code signing scheme

OS vendor

• Doesn’t want large virus outbreaks– Bad PR

• Doesn’t want to piss off developers• Doesn’t want to piss off users

• Doesn’t care much about power users

Page 18: Symbian code signing or – how to implement a mobile code signing scheme

User

• Doesn’t want to be bugged– J2ME, anyone?

• Doesn’t want battery drain, etc– Caused by AV activity

• Wants cheap apps• Wants data to be safe

Page 19: Symbian code signing or – how to implement a mobile code signing scheme

User (power user)

• Wants full access to the system

• Wants powerful apps

• (Gets f##ed most of the time)

Page 20: Symbian code signing or – how to implement a mobile code signing scheme

Architectural goals of PSM

Page 21: Symbian code signing or – how to implement a mobile code signing scheme

Ensure Understandability

• Users are the weakest point of secure systems

• Users don’t understand technology

• DON’T offload decisions to them– No IE-like prompts

Page 22: Symbian code signing or – how to implement a mobile code signing scheme

Support open phones

• Successful app market == Successful OS

• Minimize impact on legitimate developers– But keep jerks out

Page 23: Symbian code signing or – how to implement a mobile code signing scheme

Protect the network

• Carriers want their networks to be safe

• Software may NEVER damage the network– More carriers will use the OS– Larger market

Page 24: Symbian code signing or – how to implement a mobile code signing scheme

Be light-weight

• Preserve CPU cycles

• Don’t do unnecessary checks– Less than 40% of API is “managed”– Access rights are computed at start-up

of the app

Page 25: Symbian code signing or – how to implement a mobile code signing scheme

Provide a basis for trust

• Make users trust their phones– More app sales– More OS sales

• Everybody benefits

Page 26: Symbian code signing or – how to implement a mobile code signing scheme

The pillars of PSM

Page 27: Symbian code signing or – how to implement a mobile code signing scheme

The Process - I

• Mobile phone users are usually “authorized”– No multi-user phones– PIN Authentication

• User-based rights management doesn’t make sense

Page 28: Symbian code signing or – how to implement a mobile code signing scheme

The Process - II

• Processes are the smallest sensible unit

• The Process is the Unit of TrustThe Process is the Unit of Trust

• 1 process = 1 app

• Processes are divided into tiers

Page 29: Symbian code signing or – how to implement a mobile code signing scheme

Sig

ned

stu

ffT

CE

TC

BU

nsig

ned

stu

ff

Kernel F32

Software installer

System services

Page 30: Symbian code signing or – how to implement a mobile code signing scheme

The capability

• A capability is a token which A capability is a token which must be presented to gain must be presented to gain access to a privileged serviceaccess to a privileged service

• Come in three classes– TCB– System– User

Page 31: Symbian code signing or – how to implement a mobile code signing scheme

The capability - II

• TCB Capabilities: TCB

• Granted to TCB processes only

• Lets them do things nobody else can

Page 32: Symbian code signing or – how to implement a mobile code signing scheme

The capability - III

• System Capabilities– Not meaningful to user– Granted by a signing house

• User Capabilities– “Not really dangerous”– Granted by user (like J2ME)

Page 33: Symbian code signing or – how to implement a mobile code signing scheme

Data caging

• Access to some folders is restricted

• Provides “secure storage”

• But: MMC/SD readers

Page 34: Symbian code signing or – how to implement a mobile code signing scheme

Data caging - II

PathPath ReadRead WriteWrite

/sys AllFiles TCB

/resource - TCB

/private/mySID

- -

/private/notMe

AllFiles AllFiles

/other - -

Page 35: Symbian code signing or – how to implement a mobile code signing scheme

Capabilities

An overview

Page 36: Symbian code signing or – how to implement a mobile code signing scheme

Capability eekers

• 1 capability? 2000 capabilities?

• Granularity must be set up reasonable

• Symbian has 20 capabilities

Page 37: Symbian code signing or – how to implement a mobile code signing scheme

TCB

• Write to executables• Write to read-only rsrc files

• Not usually given out – MANUFACTURER

Page 38: Symbian code signing or – how to implement a mobile code signing scheme

AllFiles

• Read access to the entire FS

• Not usually given out - MANUFACTURER– Caused the death of third-party file

managers

Page 39: Symbian code signing or – how to implement a mobile code signing scheme

DRM

• Access to DRM-protected content

• Not usually given out – MANUFACTURER

Page 40: Symbian code signing or – how to implement a mobile code signing scheme

CommDD

• Direct access to Wifi, etc hardware / drivers

Page 41: Symbian code signing or – how to implement a mobile code signing scheme

DiskAdmin

• Mount, unmount file systems

Page 42: Symbian code signing or – how to implement a mobile code signing scheme

MultimediaDD

• Direct access to camera, etc drivers

• “Priority multimedia access”

Page 43: Symbian code signing or – how to implement a mobile code signing scheme

NetworkControl

• Control network protocols

• E.G. Close all TCP/IP links• Set network defaults

Page 44: Symbian code signing or – how to implement a mobile code signing scheme

PowerMgmt

• Kill processes• Turn off box• Disable peripherals

Page 45: Symbian code signing or – how to implement a mobile code signing scheme

ProtServ

• Register protected server– Name with ! At the beginning

Page 46: Symbian code signing or – how to implement a mobile code signing scheme

ReadDeviceData

• Read data like:– PIN– List of installed apps

Page 47: Symbian code signing or – how to implement a mobile code signing scheme

SurroundingsDD

• GPS / biometrics driver access

Page 48: Symbian code signing or – how to implement a mobile code signing scheme

SwEvent

• Handle and dispatch key, pointer events GLOBALLY

Page 49: Symbian code signing or – how to implement a mobile code signing scheme

TrustedUI

• Display trusted dialogs

Page 50: Symbian code signing or – how to implement a mobile code signing scheme

WriteDeviceData

• Change things like:– Time zone– Device lock– System Time

Page 51: Symbian code signing or – how to implement a mobile code signing scheme

LocalServices

• Access to BT, IR, …– May NOT cost user $$$

• USER-granted

Page 52: Symbian code signing or – how to implement a mobile code signing scheme

Location

• Access to GPS coordinates

• USER-granted

Page 53: Symbian code signing or – how to implement a mobile code signing scheme

NetworkServices

• Access to GSM/EVDO– Might cost user $$$

• USER-granted

Page 54: Symbian code signing or – how to implement a mobile code signing scheme

ReadUserData

• Contacts• Messages• Appointments

• USER-granted

Page 55: Symbian code signing or – how to implement a mobile code signing scheme

UserEnvironment

• Access to recording, etc at API level

• USER-granted

Page 56: Symbian code signing or – how to implement a mobile code signing scheme

WriteUserData

• Write access to “user data”

• Depends on device

• USER-granted

Page 57: Symbian code signing or – how to implement a mobile code signing scheme

Capability Capability inheritanceinheritance

Page 58: Symbian code signing or – how to implement a mobile code signing scheme

Who cares / Why care?

• My capabilities are limited?

• I can spawn a process from another DLL

• It has more privileges than I do

• Uh-Oh!

Page 59: Symbian code signing or – how to implement a mobile code signing scheme

Direct loading of DLL

• Don’t allow DLLs to import malicious code

EXE DLL

C1

C2

C1

C2

C3

Dynamic load ok

Page 60: Symbian code signing or – how to implement a mobile code signing scheme

Dynamic loading - II

EXE DLL

C1

C2

C1

Dynamic load NOT ok

Page 61: Symbian code signing or – how to implement a mobile code signing scheme

The native software installer

Page 62: Symbian code signing or – how to implement a mobile code signing scheme

What does he do?

• Acts as gatekeeper between apps and system

• Performs signature check• Performs capability check• Handles file moving

Page 63: Symbian code signing or – how to implement a mobile code signing scheme

The signature chain

C1

C2

C3

Page 64: Symbian code signing or – how to implement a mobile code signing scheme

But: who manages the trust?

• Somebody has access to the “root” certs

• This somebody: signing house

Page 65: Symbian code signing or – how to implement a mobile code signing scheme

Signing gamesSigning games

Page 66: Symbian code signing or – how to implement a mobile code signing scheme

Open Signed Online

Page 67: Symbian code signing or – how to implement a mobile code signing scheme

The publisher ID

• Binds ID to company– Given out by Trust Center

• Elementary “trust token”

• Needed for successive signings

Page 68: Symbian code signing or – how to implement a mobile code signing scheme

Developer certificate

• Limited by IMEI

• Allows self-signing for testing purposes

Page 69: Symbian code signing or – how to implement a mobile code signing scheme

Express signed

• Gives “full signing”– But not all capabilities

• Not every app is checked

• Lower cost (approx 20$)

Page 70: Symbian code signing or – how to implement a mobile code signing scheme

Certified signed

• Thorough checks

• Gives almost every capability

• High cost (at least 200$)

Page 71: Symbian code signing or – how to implement a mobile code signing scheme

The end

Questions?Answers at

[email protected] by Julius Kusuma, Cimexus of Canberra, adactio, 3dh3m,

Snowmanradio, zephyris, Paul Goyette, Agnostic Preachers Kid