VIVID Runtime and Secured Content Delivery System on...

21
Confiden’al 1 VIVID Runtime and Secured Content Delivery System on Tizen Ariro Nagayama Acrodea Inc. TDC2013

Transcript of VIVID Runtime and Secured Content Delivery System on...

Page 1: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   1

VIVID Runtime and Secured Content Delivery System

on Tizen

Ariro Nagayama Acrodea Inc.

TDC2013

Page 2: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   2

Company Profile

Corporate Name: Acrodea Inc. (acro+idea=Acrodea) Established: July 2004 Consolidated Sales: 2,961 M Yen ($30M) FY2012 Employees: 167 Group Companies: AMS,Inc. Acrodea Korea Inc. Main business: Ø Smartphone Solutions Device DRM Ø Contents Services Social game development Ø Middleware Solutions VIVID Runtime/VIVID UI

Page 3: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   3

ü Native application executables can be treated as data by utilizing VIVID Runtime. ü By encrypting data with our ARG, even if the data is extracted, it will not execute on an unauthorized terminal. ü For this reason, native applications can be distributed in an encrypted format with our DRM processing. ü Acrodea intends to monetize this business at the electronic delivery platform for DRM-protected native applications.

Presentation summary

Page 4: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   4

1. VIVID Runtime

Page 5: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   5

To enable the same application binary to be executed on any mobile terminal.

What is “VIVID Runtime”?

•  VIVID Runtime = Program Execution Environment

•  The same binary program operates without any underlying OS dependence.

•  Offers full C++ functionality across multiple environments.

•  No Game Engine Dependence

•  Dynamically linked shared libraries are also supported.

Page 6: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   6

Features

Improves software portability, lowers cost and fosters consistency on multiple platforms

Brings application development advantages

Provides an attractive platform to both mobile operators and handset makers

Development process non-reliant upon handset environment

Page 7: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   7

VIVID Runtime Architecture on Tizen

Linux Kernel

Kern

el

Multimedia

Cor

e

Graphics & UI System Base

Tize

n

OpenSLES

Low

API

EGL Extension

Application (portable binary) (*.rpk)

Run

time

OpenGLES

OpenAL lib

Hig

h AP

I

More..

2D & 3D lib

Network lib

Object relocator

Laun

cher

Dynamic extension resolver

Object loader

Object parser

Apps

OpenKODE

Library (portable binary) (*.so)

Page 8: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   8

Tizen APIs Cover VIVID Runtime Requirement

The following native APIs are used to link functions when porting with VIVID Runtime.

- OpenKODE => Base-Libc & POSIX API

- OpenKODE Extension => System–Sensor–Accelerometer

- OpenSLES => Multimedia–Audio IO–Audio Output

- Launcher /Loader => UI-OpenGL

Page 9: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   9

VIVID Runtime Application on Tizen

Launcher

VIVID Runtime thread

Executable File + Resources

API

VIVID Runtime application

OpenGLES

OpenSLES

OpenKODE

More.. Touch / Sensor events (System APIs)

Window rendering (UI APIs)

Audio output (Multimedia APIs)

Touchscreen and sensor events generated from Tizen are transferred to Runtime apps via Runtime’s OpenKODE interface. Expressions related to visual graphics and audio are sent to UI and multimedia APIs, respectively.

Page 10: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   10

Architecture: Additional Native Bindings

Providing a plug-in system for defining additional native functions that should be available for the portable application.

Application Loader Module

To be efficiently exposed to the ported side, e.g, GPS and accelerometer

Enables additional hardware capabilities

•  Function discovery at runtime using dlopen() / dlsym() style calls

•  Direct .so linking (optional)

Dynamic linking

Page 11: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   11

ü  Dev environment with debugger can be built without IP fees. ü  Open platform provides public releases of all notices. ü  No charges are assessed for information.

Dev Environment with Ready Access

Selection of Development Environment

Any dev platform may be used, if the compiler (gcc) supports elf objects. Developers can work in their accustomed environment.

Page 12: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   12

Dev Environment’s 4 Main Features

Objective C/C++, ECMAScript are supported. Built-in support for shared libraries (SysVr4-style shared objects)

Desktop ARM Simulator

Easy Porting

Integration Kit *For Device Manufacturers.

Software Development Kit

Page 13: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   13

Porting: Typical Application Development Process

Application development

• Develop using Eclipse IDE • Test and debug using ARM Simulator environment

Packaging

• Create application package • Executable • External dependencies • Data files • Privileges

• Signing and certification

Testing

• Install and test on a developer provisioning profile installed on the handset

• Use the stress-testing tools in the ARM simulator

Provisioning

• Submit to the provisioning authority for approval process Approval

Page 14: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   14

Typical Integration Process Overview

OpenKODE •  Implement OpenKODE, EGL and other media abstraction APIs on the target handset •  Use the provided conformance tests to verify API functionality

Application loader module porting •  Integration test with provided test suite of binary portable applications

Additional native function bindings •  Expose any non-standard functionality via custom native binding plug-ins

Final testing

Page 15: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   15

2. Secured Content Delivery System

Page 16: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   16

•  Content distribution server features content management and content encryption facilities. •  Distribution server encrypts automatically. •  Content data generates “rights object” with encryption key generated on basis of User ID. •  App authenticates at content usage, based on User ID.    ⇒ User with Unauthorized ID cannot use downloaded content. •  ID is unique to user.    ⇒ User ID unique to service or unique to terminal (IMSI, IMEI, etc) is used.

Acrodea Content Delivery System Overview

Distribution Server

Device

Content

Content encryption based on Key

Content

CP App

ID

Send encryption key Unusable, even if copied to another device.

Download

For example: IMSI / IMEI Selectable by service

Content

Encryption module

Encr

yptio

n m

odul

e (D

RM

feat

ure)

Content (e.g.

Vivid Runtime RPK) Env

Mgmt User Mgmt

Content Management

Register Admin/Developer Site Provisioning

Page 17: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   17

ü  Protection from illicit copying of video/audio ü  Designed to protect downloaded content ü  Data and apps are all subject to encryption as data ü  Device ID detected to confirm device

Billing Server

Content Distribution Server

Device

ID

Billing Key generated on device ID basis

.exe .so

Send device ID for DL request

Send device ID for billing

Billing Key

App (.rpk)

Game Content

Download

Acrodea DRM for Game Apps

Encryption Module

Executables

Resources

Encryption (CP)

Encryption module

Encryption module

Game Content

CP Register

Page 18: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   18

DRM Feature Comparison

w/Acrodea DRM w/o Acrodea DRM

Scope of DRM Premium (pay) and free apps, content files

Premium (pay) apps only

Encryption Apps and content encrypted App data is not encrypted

DRM settings per handset

DRM keys are uniquely identified by IMSI (or IMEI, MAC address, etc.)

Google ID used; not handset discrete

Network connection at app launch

Not required Required

Copy protection Encryption prevents copying Root permission access enables copying

Page 19: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   19

Dalvik Dalvik/NDK iPhone

C/C++ development

Objective-C development

DRM (Encryption)

3rd party SDK support

IDE environment Eclipse Visual Studio

Eclipse Eclipse X-Code

OS abstraction

VM/Native Native VM VM/Native Native

Performance High Mid/Low High/Mid High

Features Comparison Table

Page 20: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   20

Tizen game demo

Page 21: VIVID Runtime and Secured Content Delivery System on Tizendownload.tizen.org/misc/media/conference2013/... · API OpenSLES Extension EGL Application (portable binary) (*.rpk) me OpenGLES

Confiden'al   21

Thank you! Contact to: [email protected]