DAC iOS/tvOS SDK

Preface

Device Authentication Service (a.k.a DAS), provides a secure authentication service based on the DRM/CA of the device. Its main purpose is to offer an authentication mechanism to the backend which can be leveraged to build a trusted exchange of information. DAS authenticates devices using a message generated client-side that could leverage the DRM accessible from the application or other mechanism available in the device.

In the client device, Device Authentication Client(a.k.a as DAC) acts as client side component(DRM/CA) for realizing the DAS functionality at sysem level.

What’s new in V5.0.0 release?

  • Wrapped the libraries in XCFramework to ease integration with application.
  • Added tvOS target in application.
  • Integrated latest CCL libraries and hardening libraries for iOS & tvOS target.
  • Added driver source code in the SDK.

SDK Content Overview

SDK is built and delivered as XCFramework for iOS device, tvOS device & tvOS simulator. There will be 2 variant of XCFramework:

  • DAS_Debug.xcframework : This will contain debug version of libraries.
  • DAS_Release.xcframework : This will contain release version of libraries.

Note: Framework for iOS simulator is not supported at the moment.

Application Content Overview

This section gives an overview of DAS Application contents.

Item Directory Description
Common code Common This directory contains common application code for iOS and tvOS.
Custom Gateway CustomGW This directory contains the implementation of custom Gateway APIs overriding the default API implementation inside447 framework.
iOS target DASApplication-iOS This is iOS device target.
iOS target DASApplication-iOSTests This is iOS device target for unit test.
tvOS target DASApplication-tvOS This is tvOS device target.
tvOS target DASApplication-tvOSTests This is tvOS device target for unit test.
projects DASApplication.xcodeproj Application XCode project.

XCode project setting

  • Bitcode options should be disabled.

Build & Run DAS application in Xcode

DAS Application XCode project DASApplication.xcodeproj, has been configured to build and generate the .ipa for iOS device, tvOS device and tvOS simulator. Application can be launched for iOS device, tvOS device and tvOS simulator using XCode.
Also DAS Application project is configured to pick the SDK framework file from application root directory, so need to copy the framework files DAS_Debug.xcframework and DAS_Release.xcframework first before attempting to build the application.

Note: iOS simulator is not supported at the moment.

Validated environment

Xcode project for DAS application has been developed and tested in the below environment

  • XCode: Version 12.4
  • iOS deployement target: iOS-14.4
  • ProductName: Mac OS X
  • ProductVersion: 10.15.7

How to test in Reference DAS Application

When Reference application is launched, Text Fields with pre-filled input values (for convenience) and Action Buttons for following functionalities are presented to user:

  • Get License
  • Encrypt
  • Decrypt
  • Sign
  • Verify
  • Reset

Following sequence of operations are executed with these pre-filled input values and intermediate output values: Get License -> Encrypt -> Decrypt -> Sign -> Verify

Testing DAS factory reset

After successfully initializing the DAS, you have the option to reset the storage by utilizing the Reset action button.

Get License -> Reset

This action will effectively erase all persisted data in the file system path. Consequently, if the device had been provisioned prior to this reset, it will be necessary to re-provision the device upon relaunching the application.

Trouble shooting

By default, Release XCFramework (with release version of libraries) are linked with application. Link the Debug XCFramework with the application to capture the log in problematic scenarios.
Share the logs to Nagra R&D team to analyse the issue.

Anti-debug functionality is enabled in the libraries which will crash or hangs the application if debugger is detected.

Change History

5.1.1, 25 Aug 2022

  • Removed provisioning server url parameter from das_session_open() API.
  • Introduced new API das_set_provisioning_server_url().
  • Updated the documentation.
  • De-coupled Application and DAS framework for Authenticate & Secure Key Exchange with Gateway server. Application to implement this in application layer without involving DAS Framework.
  • Improved Sample application code.

5.1.0, 16 Feb 2022

  • Refactored the DAS APIs for React Native utility.
  • Updated documentation.
  • Code quality improvements.

5.0.0, 18 Nov 2021

  • Wrapped the libraries in XCFramework to ease integration with application.
  • Added tvOS target in application.
  • Integrated latest CCL libraries and latest hardening libraries.
  • Added driver source code in the SDK.

1.1.1, 14 October 2020

  • Added new API to setup Provisioning URL.
  • Removed the default setting of Provisioning URL.
  • Added support in logger module to profile the performance.

1.0.1, 19 June 2018

  • Removed the DAC property related API.
  • Modified the default value populated in the input field of iOS DACApp.
  • Production PVS used by default.

1.0.0, 07 June 2018

  • First version of DAC for iOS.