Developer Guide

  • 04/03/2019
  • Public Content
Contents

Installation

Installing and Uninstalling a Trusted Application

The host application installs the trusted application into the Intel® Dynamic Application Loader (Intel® DAL) firmware via the Intel DAL host infrastructure. This needs to be performed only once. Once a trusted application has been loaded, it stays loaded even after a system has been reset or powered down.
The host application can uninstall the trusted application.
Intel DAL trusted applications cannot be copied to the trusted execution environment. They must be installed by the host application via the Intel® DAL Host Interface Service to the trusted execution environment.

Trusted Application Installation Flow

  1. The host application calls the function JHI_Install2 (see in the API reference) and passes the full path of the trusted application DALP file.
  2. The Intel DAL Host Interface Service verifies the DALP file's validity according to a specific schema. The same validation is performed by the DALP tool.
  3. The Intel DAL Host Interface Service filters the trusted application blobs (PACK files binary) for those trusted applications that share the same major firmware version (e.g., 9.x.x.x), that is the closest to the major firmware version burned on the machine and has the correct platform type.
  4. All compatible trusted application blobs are sorted from highest to lowest by firmware version and trusted application version.
  5. The Intel DAL Host Interface Service will attempt to download each of these blobs to the virtual machine (VM) until one of them is accepted by the VM.
  6. The Intel DAL Host Interface Service will not download trusted applications that are signed with Intel® Identity Protection Technology (Intel® IPT) enabled if Intel IPT is not enabled on the platform.
  7. The firmware is responsible for verifying the signature and compatibility of each trusted application. No security checks are performed by the Intel DAL Host Interface Service.
  8. If one trusted application is successfully downloaded, the trusted application installation is considered successful. The DALP file is stored in the Intel DAL Host Interface Service repository for future use. The application can use the to query the attributes of the loaded trusted applications (e.g., the trusted application version).
  9. If no trusted application loaded successfully, the application will receive a general error,
    JHI_INSTALL_FAILED
    . Currently there is no way for the application to understand why a trusted application blob was rejected by the VM.

Trusted Application Repository

The trusted application repository allows applications that do not have access to the DALP file to use other software to install a trusted application for them. For example, a browser plugin installer can install the trusted application when it installs the browser plugin; the plugin, which has no access to the file system, will be able to use the trusted application without the need to install it.
When a trusted application is successfully installed, the Intel DAL Host Interface Service stores the trusted application's DALP file in a directory known as the Trusted Application Repository. This allows the Intel DAL Host Interface Service to download a needed trusted application to the VM without the need for the application to use
JHI_Install2
for the installation. This means that applications can start using the trusted application by calling
JHI_CreateSession
immediately after calling
JHI_Initialize
, and then start communicating with their session using J
HI_SendAndRecv2
. Calling
JHI_GetAppletProperty
will also load the trusted application to the VM in the event that it hasn't been loaded.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804