Understanding the Permission and Access Control Model for Tizen Application Sandboxing. Onur Aciicmez & Andrew Blaich, Samsung



Similar documents
Tizen Web Runtime Update. Ming Jin Samsung Electronics

Introduction to Tizen SDK Alpha. Taiho Choi Samsung Electronics

Getting Started with Tizen SDK : How to develop a Web app. Hong Gyungpyo 洪 競 杓 Samsung Electronics Co., Ltd

Development Techniques for Native/Hybrid Tizen Apps. Presenter Matti Pakarinen

My IC Customizer: Descriptors of Skins and Webapps for third party User Guide

Emerging Mobile Platforms: Firefox OS and Tizen

Drupal CMS for marketing sites

HTML5 Applications Made Easy on Tizen IVI. Brian Jones / Jimmy Huang

Getting Started with Android Programming (5 days) with Android 4.3 Jelly Bean

Developer's Cookbook. Building Applications with. The Android. the Android SDK. A Addison-Wesley. James Steele Nelson To

Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin

Appointment Router Salesforce.com Web- to- Lead Integration Guide. Date: January 19, 2011

The Ubuntu phone and the road to convergence. David UbuCon Berlin, Oct 2015

WebSphere Business Monitor V7.0 Script adapter lab

Wakanda Studio Features

Chapter 5 Configuring the Remote Access Web Portal

ITG Software Engineering

SharePoint How To s / Team Sites 1of 6

603: Enhancing mobile device experience with NetScaler MobileStream Hands-on Lab Exercise Guide

ThirtySix Software WRITE ONCE. APPROVE ONCE. USE EVERYWHERE. SMARTDOCS SHAREPOINT CONFIGURATION GUIDE THIRTYSIX SOFTWARE

Samsung KNOX EMM Authentication Services. SDK Quick Start Guide

DNNCentric Custom Form Creator. User Manual

Vizit 4.1 Installation Guide

MASTERTAG DEVELOPER GUIDE

Thomas Röthlisberger IT Security Analyst

ENABLE LOGON/LOGOFF AUDITING

Creating a generic user-password application profile

Colligo Engage Windows App 7.0. Administrator s Guide

For details about using automatic user provisioning with Salesforce, see Configuring user provisioning for Salesforce.

Configuring Salesforce

Portals and Hosted Files

28 What s New in IGSS V9. Speaker Notes INSIGHT AND OVERVIEW

Version 1.0 January Xerox Phaser 3635MFP Extensible Interface Platform

Shipbeat Magento Module. Installation and user guide

LICENTIA. InvoiceXpress Integration

Getting Started Guide

The Smart Forms Web Part allows you to quickly add new forms to SharePoint pages, here s how:

Export Server Object Extension and Export Task Install guide. (V1.1) Author: Domenico Ciavarella ( )

X-POS GUIDE. v3.4 INSTALLATION SmartOSC and X-POS

Tizen Technical Overview 枪 晦 随 鬴 缃 拜 枋 幞 垖 幁 穧 幤

Top Navigation menu - Tabs. User Guide 1. &

An overview of configuring WebEx for single sign-on. To configure the WebEx application for single-sign on from the cloud service (an overview)

ultimo theme Update Guide Copyright Infortis All rights reserved

Tizen Core APIs: A Core Framework Layer To Build In-House Applications. Jin-Woo Jeong

User Guide for Smart Former Gold (v. 1.0) by IToris Inc. team

Using GitHub for Rally Apps (Mac Version)

FileMaker Server 11. FileMaker Server Help

SAMSUNG SMARTTV: HOW-TO TO CREATING INSECURE DEVICE IN TODAY S WORLD. Sergey Belov

Introduction to TIZEN SDK

Cloud Administration Guide for Service Cloud. August 2015 E

NetWrix SQL Server Change Reporter. Quick Start Guide

FileMaker Server 10 Help

Introduction to Tizen and Tizen Mobile Architecture. Seokjae Jeong, Samsung Electronics

MBLOX RESELLER GUIDE. User guide

isupplier PORTAL ACCESS SYSTEM REQUIREMENTS

SHIPSTATION / MIVA MERCHANT SETUP GUIDE

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.

Online sales management software Quick store setup. v 1.1.3

Extending Tizen Native Framework with Node.js

Firewall Builder Architecture Overview

Centrify Mobile Authentication Services for Samsung KNOX

KUB Website Troubleshooting

Tizen Architecture. Sunil Saxena, Intel Hobum (Vincent) Kwon, Samsung

Chapter 6 Virtual Private Networking Using SSL Connections

Developing Offline Web Application

App: HomeBound 1.1 ( Device: Samsung GT-S5302 Android 2.3.6

RSA SecurID Ready Implementation Guide

Tutorial JavaScript: Switching panels using a radio button

DreamFactory & Modus Create Case Study

Performance Testing for Ajax Applications

Windows Azure Pack Installation and Initial Configuration

JTouch Mobile Extension for Joomla! User Guide

Developing Microsoft SharePoint Server 2013 Core Solutions

Signatures. Advanced User s Guide. Version 2.0

Developing ASP.NET MVC 4 Web Applications MOC 20486

Ipswitch Client Installation Guide

Making Web Application using Tizen Web UI Framework. Koeun Choi

Magento module Documentation

TOP 5 Defects & Tips. page 1 / 11

Quick Start Guide Mobile Entrée 4

5.1 Features Denver CO 80202

Developer Tutorial Version 1. 0 February 2015

Quick Start Guide. Installation and Setup

Embedded BI made easy

Setting up an MS SQL Server for IGSS

User Guide. Version 1.0

Web based training for field technicians can be arranged by calling These Documents are required for a successful install:

How To Use Titanium Studio

Site Configuration Mobile Entrée 4

RSA SecurID Ready Implementation Guide

Configuring. SugarCRM. Chapter 121

1: 2: : 3.1: 3.2: 4: 5: & CAPTCHA

tibbr Now, the Information Finds You.

About ZPanel. About the framework. The purpose of this guide. Page 1. Author: Bobby Allen Version: 1.1

Application Deployment in SCCM 2012

14.1. bs^ir^qfkd=obcib`qflk= Ñçê=emI=rkfuI=~åÇ=léÉåsjp=eçëíë

Learn how to create web enabled (browser) forms in InfoPath 2013 and publish them in SharePoint InfoPath 2013 Web Enabled (Browser) forms

Building WebRTC Solutions with the Avaya WebRTC Collaboration Environment Snap-in. Joel Ezell Lead Architect, Collaboration Environment R&D

Google Analytics Playbook. Version 0.92

Transcription:

Understanding the Permission and Access Control Model for Tizen Application Sandboing Onur Aciicmez & Andrew Blaich, Samsung

Motivation Tizen Architecture The Tizen application model is based on Web technologies: HTML5 + JS + CSS + Web APIs Tizen WRT supports Tizen widgets and multiple APIs: W3C, non-w3c (e.g. WebGL) and Tizen Web API Web-Runtime is the application that handles widget installation and eecution Security of WRT and widgets is crucial for the ecosystem Our talk: Overview of Tizen Security Framework and SMACK (Simplified Mandatory Access Control Kernel) Widget access control and permissions WebRunTime access control enforcement Widget Sandbo 2

Overview of Tizen Security Framework SMACK as the main system-level access control mechanism Web Runtime enforces fine-grained controls over Tizen WebApps SMACK-based process sandbo over widget processes 3

Contents Overview of the Tizen Security Framework SMACK Overview Widget Permissions and Access Control Model Feature Declarations in Manifest Prompt Types ccess Request Policy (WARP) Sample Manifest and Policy Files Setting Security Configurations in Tizen SDK Access Control Enforcements on Tizen WebApps WRT Access Control Engine SMACK Sandbo Conclusions 4

SMACK Overview Simplified Mandatory Access Control Kernel Linu Security Module included in the Linu Kernel SMACK Terms: Subject an active entity that performs the access Object a passive entity that is accessed Access Label an access attempt from Subject to Object a security tag applied to subjects (i.e., processes) and objects (i.e., filesystem objects, sockets, processes). Used to identify the entity SMACK 5

SMACK Overview SMACK Labels: Two label types: process labels and object labels Etended file attributes to store SMACK label configuration SMACK64: XATTR for file-system objects SMACK64EXEC: XATTR for eecutables. Becomes process label upon eec() SMACK Accesses: Subject Access SMACK Engine request subject label subject label object label Access Rule Set Object object label Allow / Deny response 6

SMACK Overview SMACK Rules: Rule format: [subjectlabel] [objectlabel] [access(rwa)] /usr/bin/cat SMACK64EXEC = catapp /home/user/documents/file1.tt SMACK64 = myfile Eample Rule to allow cat to read file1.tt catapp myfile r Rule to allow cat to read & write file1.tt catapp myfile rw 7

Widget Permissions and Access Control Model A subset of the JavaScript APIs supported in Tizen are considered restricted Restricted refers to any JS function that can access the private data on a device such as location, contacts, calendar, etc. Widgets need authorization to invoke restricted APIs Permission declarations and authorization: Declaration in manifest file: <feature> element for device APIs <access> element for network resources Authorization: prompt type decision according to WRT ACE policy user confirmations 8

Widget Permissions and Access Control Model Developers must declare in the manifest file of a widget, which features the widget wants access to. Feature Declaration template from W3C <widget mlns="http://www.w3.org/ns/widgets"> <feature name = "http://eample.com/api/contact" required = "false"/> </widget> Feature Declaration implementation for Tizen <widget mlns="http://www.w3.org/ns/widgets" mlns:tizen="http:///ns/widgets" version="1.0" > <feature name="http:///api/contact required="false"/> </widget> 9

Widget Permissions and Access Control Model API Group Feature / Device Capability API Functions Time http:///api/time http:///api/time.read http:///api/time.write All All ecept setcurrentdatetime() setcurrentdatetime() JavaScript: var current_dt = tizen.time.getcurrentdatetime(); var is_leap = tizen.time.isleapyear(current_dt.getfullyear()); if (is_leap) console.log("this year is a leap year."); Manifest File: <feature name="http:///api/tizen"/> <feature name="http:///api/time.read"/> *See Appendi for the full Tizen Web API list 10

Widget Permissions and Access Control Model W3C ccess Request Policy (WARP) All network accesses by widgets are denied by default A widget must declare in its manifest which network resources it will access (such as XMLHttpRequest, iframe, img, script, etc.) <access> element in config.ml. Developers can specify protocols, domains, and sub-domains. <widget mlns="http://www.w3.org/ns/widgets">...... <access origin="https://eample.net"/> <access origin="http://eample.com"/>... </widget> <access origin="http://eample.org" subdomains="true"/> <access origin="http://eample.org:8080" subdomains="false"/> <access origin="*" /> 11

Widget Permissions and Access Control Model Sample Manifest file: <?ml version="1.0" encoding="utf-8"?> <widget mlns="http://www.w3.org/ns/widgets" mlns:tizen="http:///ns/widgets" version="1.0" id="http://yourdomain.com/samplecontact" viewmodes="fullscreen"> <icon src="icon.png"/> <name>samplecontact</name> <content src="inde.html"/> <description>sample application for Tizen contact module.</description> <license/> <feature name="http:///api/tizen" required="true"/> <feature name="http:///api/contact" required="true"/> <feature name="http:///api/contact.read" required="true"/> <feature name="http:///api/contact.write" required="true"/> <access origin="http://jquerymobile.com" subdomains="true"/> </widget> 12

Widget Permissions and Access Control Model A feature will be granted by the WRT based on the policy and the confirmation of the user to various prompt types Various types of prompts are available (table) WRT ACE Policy specifies which prompt type will be used in a specific situation Blanket Prompt Session Prompt One-Shot Prompt Permit Deny Prompt Types is prompted for confirmation the first time the API function is called by the widget, but once confirmed, prompting is never again required. is prompted once per session. must be prompted each time the restricted API is invoked. Use of the device capability is always permitted, without asking the user. Use of the device capability is always denied 13

Widget Permissions and Access Control Model The type of prompt for each API is determined by the policy Policies are driven by Operators and Device Manufacturers s can affect a policy through preference configuration, but only in a more restricted way Blanket Prompt Session Prompt One-Shot Prompt 14

Widget Permissions and Access Control Model Sample Tizen Policy File <policy-set id="tizen-policy" combine="first-matching-target > <policy id="tizen-policy-trusted" description="tizen's policy for trusted domain" combine="permit-overrides > <rule effect= prompt-session"> <! rules for specific resources --> <condition combine="and"> <condition combine="or"> <resource-match attr="device-cap" func="equal" match="xmlhttprequest" /> <resource-match attr="device-cap" func="equal match="eternalnetworkaccess" /> <resource-match attr="device-cap" func="equal" match="messaging.send" /> </condition> <environment-match attr="roaming" match="true" /> </condition> </rule> <rule effect= permit" /> <! all other matches --> </policy> </policy-set> 15

Setting Security Configurations in Tizen SDK Tizen SDK supports feature selection Developers need to manually choose which features their applications require A check bo on the left of a feature name indicates the "required" attribute. If this is checked, config.ml is as follows. <feature name="http:///api/accelerometer" required="true"/> Add Feature Dialog Bo allows a feature to be added in one of 3 ways: Internal: It is possible to select a feature from a fied list. Feature name: A URL with a feature definition should be entered. File: A name of a file with a feature definition (*.ml, *.widlprocml) should be entered. 16

Setting Security Configurations in Tizen SDK Applications CANNOT access eternal network resources by default (WARP - W3C Access Requests Policy). Developers must request permissions for their widget to retrieve network resources. You can enter multiple URLs using the Add button. For each URL, you can indicate if you want to allow a widget to access the subdomains for a URL. The "Allow subdomain" column contents can be toggled with a mouse click. Manifest file: <access origin="http://jquerymobile.com subdomains="true"/> 17

Access Control Enforcements on Tizen WebApps Tizen WRT supports Tizen WebApps and multiple APIs: W3C APIs, and non-w3c APIs like WebGL and Tizen Web API WRT has a multi-process model WebKit based Widget instances are eecuted in separate processes Provides runtime isolation and allows the system to enforce custom process-level containment (sandbo) on each instance Two levels of access control enforcements WRT Access Control Engine(ACE): Fine grained access control on JS APIs Application Sandbo via SMACK: Process-level containment by the kernel on system calls 18

Access Control Enforcements on Tizen WebApps Access Control Engine (ACE) General Design Policy Enforcement Point (PEP) Subject Advocate Policy Information Point (PIP) Policy Evaluator (PDP) Eternal Library glib Web Runtime libml Policy Translator Verdict Manager PEP: ACE interface for WRT PIP: Responsible for obtaining attribute values from WRT, Resource Information and OS PDP: Policy Decision Point, evaluates policies; Interacts with the user if necessary Policy Translator: Parses policies (XML) Verdict Manager: Responsible for caching the verdicts 19

Access Control Enforcements on Tizen WebApps ACE Policy Evaluation General Flow: 20

Access Control Enforcements on Tizen WebApps Widget Process Sandbo via SMACK The SMACK Policy File is updated with the appropriate rules for a widget during the install, update, or uninstall operations, as well as at run-time. The rules are based on the device features a widget requests in the manifest file packaged with a widget, user confirmations, and security files on the system that describe what labels and permissions are needed for each device feature. Access is made to a device feature corresponding files on the system have been labeled Widget requests access to a device feature Intercept system calls with SMACK ACE System Linu Kernel SMACK LSM No: denied by ACE Return result to WRT Yes: allowed by ACE Check access rights in the SMACK Policy File Allow or Deny access based on the subject, object, permission 3-tuple 21

Year Year Year Access Control Enforcements on Tizen WebApps Why do we sandbo widget processes? WebKit vulnerability analysis results CVE: Common Vulnerabilities and Eposures CVE mean score for WebKit Total CVEs for WebKit Total CVEs High Medium Low 22

Access Control Enforcements on Tizen WebApps Why do we sandbo widget processes? WebKit vulnerability analysis results 23

Access Control Enforcements on Tizen WebApps Widget Sandbo via SMACK: Each widget runs in a different security domain (they have unique SMACK labels) A widget process cannot access the files of another widget, system files (such as a contacts database), or communicate with other processes (such as a telephony daemon) unless the required SMACK rules are in place. SMACK rules for a widget are configured: during install, uninstall, and update operations by Package Manager at runtime by the WRT Security Server. as a result of user prompts according to which features are granted to that widget AppStore Client WRT Access Control Parental Mode /com.tizen. widgeta Install widget Certificate Policy-based Access Control Local Resource Control Package Manager Parental Mode Certificate Parental Mode /com.tizen. widgetb SMACK rules and labels during (un)install/update WRT Security Server Widget B Certificate Policy-based Access Control Local Resource Control SMACK config SMACK rules generated at run-time Permission Requests System Files AUL fork() eec() WRT Initializer Parental Mode Widget N Certificate Policy-based Access Control Local Resource Control setlabel() read/write /com.tizen. widgetn Launch widget MenuScreen Tizen Access Control System Daemons (tel, message, dnet,..) Security Server Permission check 24

Access Control Enforcements on Tizen WebApps SMACK Sandbo Eample Flow: contains the following code snippet: addressbook = tizen.contact.getdefaultaddressbook(); addressbook.find(); Read access to the Contacts DB file Assume device policy requires blanket prompt (*depends on the actual policy on the device) SDK App Store Application package Certification Code signing Dev Site Develop Developer Upload addressbook.find() Purchase Manifest AppStore Client SMACK policy Install widget Prompt Package Manager h p:// zen.org/api/ zen h p:// zen.org/api/contact.read Yes Label for : widgeta Rule: widgeta contacts r WRT Initializer Parental Mode Certificate Policy-based Access Control Local Resource Control Launch widget AUL Set label to widgeta com.tizen.widgeta com.tizen.widgetb Contacts DB Menu Screen Other System Files 25

Access Control Enforcements on Tizen WebApps SMACK Sandbo Eample Flow: contains this code snippet addressbook = tizen.contact.getdefaultaddressbook(); addressbook.find(); Read access to contacts DB file Assume device policy requires blanket prompt (*depends on the actual policy on the device) SDK App Store Application package Certification Code signing Dev Site Develop Developer Upload addressbook.find() Purchase Manifest AppStore Client SMACK policy Install widget Prompt Package Manager h p:// zen.org/api/ zen h p:// zen.org/api/contact.read Yes Label for : widgeta Rule: widgeta contacts r WRT Initializer Parental Mode Certificate Policy-based Access Control Local Resource Control Launch widget AUL Set label to widgeta com.tizen.widgeta com.tizen.widgetb Contacts DB Menu Screen Other System Files 26

Access Control Enforcements on Tizen WebApps SMACK Sandbo Eample Flow: contains this code snippet addressbook = tizen.contact.getdefaultaddressbook(); addressbook.find(); Read access to contacts DB file Assume device policy requires blanket prompt (*depends on the actual policy on the device) SDK App Store Application package Certification Code signing Dev Site Develop Developer Upload addressbook.find() Purchase Manifest AppStore Client SMACK policy Install widget Prompt Package Manager h p:// zen.org/api/ zen h p:// zen.org/api/contact.read Yes Label for : widgeta Rule: widgeta contacts r WRT Initializer Parental Mode Certificate Policy-based Access Control Local Resource Control Launch widget AUL Set label to widgeta com.tizen.widgeta com.tizen.widgetb Contacts DB Menu Screen Other System Files 27

Access Control Enforcements on Tizen WebApps SMACK Sandbo Eample Flow: contains this code snippet addressbook = tizen.contact.getdefaultaddressbook(); addressbook.find(); Read access to contacts DB file Assume device policy requires blanket prompt (*depends on the actual policy on the device) SDK App Store Application package Certification Code signing Dev Site Develop Developer Upload addressbook.find() Purchase Manifest AppStore Client SMACK policy Install widget Prompt Package Manager h p:// zen.org/api/ zen h p:// zen.org/api/contact.read Yes Label for : widgeta Rule: widgeta contacts r WRT Initializer Parental Mode Certificate Policy-based Access Control Local Resource Control Launch widget AUL Set label to widgeta com.tizen.widgeta com.tizen.widgetb Contacts DB Menu Screen Other System Files 28

Access Control Enforcements on Tizen WebApps SMACK Sandbo Eample Flow: contains this code snippet addressbook = tizen.contact.getdefaultaddressbook(); addressbook.find(); Read access to contacts DB file Assume device policy requires blanket prompt (*depends on the actual policy on the device) SDK App Store Application package Certification Code signing Dev Site Develop Developer Upload addressbook.find() Purchase Manifest AppStore Client SMACK policy Install widget Prompt Package Manager h p:// zen.org/api/ zen h p:// zen.org/api/contact.read Yes Label for : widgeta Rule: widgeta contacts r WRT Initializer Parental Mode Certificate Policy-based Access Control Local Resource Control Launch widget AUL Set label to widgeta com.tizen.widgeta com.tizen.widgetb Contacts DB Menu Screen Other System Files 29

Access Control Enforcements on Tizen WebApps SMACK Sandbo Eample Flow: contains this code snippet addressbook = tizen.contact.getdefaultaddressbook(); addressbook.find(); Read access to contacts DB file Assume device policy requires blanket prompt (*depends on the actual policy on the device) SDK App Store Application package Certification Code signing Dev Site Develop Developer Upload addressbook.find() Purchase Manifest AppStore Client SMACK policy Install widget Prompt Package Manager h p:// zen.org/api/ zen h p:// zen.org/api/contact.read Yes Label for : widgeta Rule: widgeta contacts r WRT Initializer Parental Mode Certificate Policy-based Access Control Local Resource Control Launch widget AUL Set label to widgeta com.tizen.widgeta com.tizen.widgetb Contacts DB Menu Screen Other System Files 30

Access Control Enforcements on Tizen WebApps SMACK Sandbo Eample Flow: contains this code snippet addressbook = tizen.contact.getdefaultaddressbook(); addressbook.find(); Read access to contacts DB file Assume device policy requires blanket prompt (*depends on the actual policy on the device) SDK App Store Application package Certification Code signing Dev Site Develop Developer Upload addressbook.find() Purchase Manifest AppStore Client SMACK policy Install widget Prompt Package Manager h p:// zen.org/api/ zen h p:// zen.org/api/contact.read Yes Label for : widgeta Rule: widgeta contacts r WRT Initializer Parental Mode Certificate Policy-based Access Control Local Resource Control Launch widget AUL Set label to widgeta com.tizen.widgeta com.tizen.widgetb Contacts DB Menu Screen Other System Files 31

Access Control Enforcements on Tizen WebApps SMACK Sandbo Eample Flow: contains this code snippet addressbook = tizen.contact.getdefaultaddressbook(); addressbook.find(); Read access to contacts DB file Assume device policy requires blanket prompt (*depends on the actual policy on the device) SDK App Store Application package Certification Code signing Dev Site Develop Developer Upload addressbook.find() Purchase Manifest AppStore Client SMACK policy Install widget Prompt Package Manager h p:// zen.org/api/ zen h p:// zen.org/api/contact.read Yes Label for : widgeta Rule: widgeta contacts r WRT Initializer Parental Mode Certificate Policy-based Access Control Local Resource Control Launch widget AUL Set label to widgeta com.tizen.widgeta com.tizen.widgetb Contacts DB Menu Screen Other System Files 32

Access Control Enforcements on Tizen WebApps SMACK Sandbo Eample Flow: contains this code snippet addressbook = tizen.contact.getdefaultaddressbook(); addressbook.find(); Read access to contacts DB file Assume device policy requires blanket prompt (*depends on the actual policy on the device) SDK App Store Application package Certification Code signing Dev Site Develop Developer Upload addressbook.find() Purchase Manifest AppStore Client SMACK policy Install widget Prompt Package Manager h p:// zen.org/api/ zen h p:// zen.org/api/contact.read Yes Label for : widgeta Rule: widgeta contacts r WRT Initializer Parental Mode Certificate Policy-based Access Control Local Resource Control Launch widget AUL Set label to widgeta com.tizen.widgeta com.tizen.widgetb Contacts DB Menu Screen Other System Files 33

Access Control Enforcements on Tizen WebApps SMACK Sandbo Eample Flow: contains this code snippet addressbook = tizen.contact.getdefaultaddressbook(); addressbook.find(); Read access to contacts DB file Assume device policy requires blanket prompt (*depends on the actual policy on the device) SDK App Store Application package Certification Code signing Dev Site Develop Developer Upload addressbook.find() Purchase Manifest AppStore Client SMACK policy Install widget Prompt Package Manager h p:// zen.org/api/ zen h p:// zen.org/api/contact.read Yes Label for : widgeta Rule: widgeta contacts r WRT Initializer Parental Mode Certificate Policy-based Access Control Local Resource Control Launch widget AUL Set label to widgeta com.tizen.widgeta com.tizen.widgetb Contacts DB Menu Screen Other System Files 34

Access Control Enforcements on Tizen WebApps SMACK Sandbo Eample Flow: contains this code snippet addressbook = tizen.contact.getdefaultaddressbook(); addressbook.find(); Read access to contacts DB file Assume device policy requires blanket prompt (*depends on the actual policy on the device) SDK App Store Application package Certification Code signing Dev Site Develop Developer Upload addressbook.find() Purchase Manifest AppStore Client SMACK policy Install widget Prompt Package Manager h p:// zen.org/api/ zen h p:// zen.org/api/contact.read Yes Label for : widgeta Rule: widgeta contacts r WRT Initializer Parental Mode Certificate Policy-based Access Control Local Resource Control Launch widget AUL Set label to widgeta com.tizen.widgeta com.tizen.widgetb Contacts DB Menu Screen Other System Files 35

Access Control Enforcements on Tizen WebApps SMACK Sandbo Eample Flow: contains this code snippet addressbook = tizen.contact.getdefaultaddressbook(); addressbook.find(); Read access to contacts DB file Assume device policy requires blanket prompt (*depends on the actual policy on the device) SDK App Store Application package Certification Code signing Dev Site Develop Developer Upload addressbook.find() Purchase Manifest AppStore Client SMACK policy Install widget Prompt Package Manager h p:// zen.org/api/ zen h p:// zen.org/api/contact.read Yes Label for : widgeta Rule: widgeta contacts r O WRT Initializer Parental Mode Certificate Policy-based Access Control Local Resource Control Launch widget AUL Set label to widgeta O com.tizen.widgeta com.tizen.widgetb Contacts DB Menu Screen Other System Files 36

Conclusions To developers: You need to declare the required features in the manifest The current SDK does not support automatic manifest configuration Features need to be defined manually Declare the minimum set of features you really need Helps to better protect the device and user data Pay attention to proper error handling in your application Calls to device features may be denied by the Security system Never assume a call will succeed 38

Thank You! More Developer Information: http:// https://developer./documentation

Appendi Tizen APIs API Group Tizen Alarm Application Bluetooth Calendar Feature / Device Capability http:///api/tizen http:///api/alarm http:///api/alarm.read http:///api/alarm.write http:///api/application http:///api/application.read http:///api/application.kill http:///api/application.launch http:///api/bluetooth http:///api/bluetooth.spp http:///api/bluetooth.gap http:///api/calendar http:///api/calendar.write API Group Call Contact Filesystem Geocoder Feature / Device Capability http:///api/call http:///api/call.simple http:///api/call.history http:///api/call.history.read http:///api/call.history.write http:///api/contact http:///api/contact.read http:///api/contact.write http:///api/filesystem http:///api/filesystem.read http:///api/filesystem.write http:///api/geocoder http:///api/calendar.read 40

Appendi Tizen APIs API Group Media Content Messaging NFC SystemInfo Time LBS Map POI Route Feature / Device Capability http:///api/mediacontent http:///api/mediacontent.read http:///api/messaging http:///api/messaging.send http:///api/messaging.read http:///api/messaging.write http:///api/nfc http:///api/nfc.tag http:///api/nfc.p2p http:///api/nfc.se http:///api/systeminfo http:///api/time http:///api/time.read http:///api/time.write http:///api/lbs.map http:///api/lbs.poi http:///api/lbs.route Developer Information: https://developer./documentation 41