Key features of the Arm TrustZone CryptoIsland family
Rich set of cryptographic services
The CryptoIsland family can provide local and remote entities access to a rich set of cryptographic functions. This covers all major symmetric and asymmetric ciphers, as well as hash functions and a true random number generation, based on a physical source of entropy. The cryptography interface is based on the publicly available MbedTLS APIs, for which there is a free, open source implementation. The use of MbedTLS allows developers to smoothly switch between software based implementation to a hardware accelerated implementation.
Optional mitigation of attacks against implementation related vulnerabilities and tamper attempts
The CryptoIsland family can optionally include mitigation of threats, that are aimed at exploiting vulnerabilities related to the physical implementation of the silicon. An example of this could be exposure of secrets through the power consumed by the IC or by the electromagnetic field it emits. The CryptoIsland can also mitigate attempts to compromise assets through the induction of faults, or through more invasive techniques (including tampering with the IC package).
Assets management with elaborated policy
The CryptoIsland family manages different types of assets. Assets are a combination of a “payload” and a “policy” associated with it. The “policy” defines aspects related to the lifecycle of the assets. Examples could include, usage related lifecycle state dependency, usage and modification related authentication, cryptographic usage restrictions, modification related policy and many others.
Physical connectivity to SoC entities serving multiple domains/subsystems
The CryptoIsland can be physically connected (SoC architecture wise) to more than one bus fabric, thus creating a physical distinction between service requestors, which is easy to use. That physical distinction can be used to form simple and robust isolation, in access to assets and the usage policy in general.
The CryptoIsland products allow trust establishment in security related processes occurring at early IC production stages (for example, at wafer sort). These processes may include, provisioning of sensitive information to be persistent in the “raw” IC, or export of identity by the IC. As part of the product deliverables, there are means to base the trustworthiness of these processes on technology, shifting the trust away from the manufacturing environment.
An IC (and later a device) has different states in its lifecycle. It starts with the silicon fabrication, moving on to device assembly, the distribution chain (for example, VARs), various deployment contexts (for example, consumer / enterprise / infrastructure), re-purposing, decommissioning, diagnostic and probably more. Each state has its own unique needs, which impact the security policy that must be applied. That policy typically impacts aspects like code validation, debug, resources/features availability and many more. The CryptoIsland family allows an integrator to define the desired lifecycle and the associated policy with the different states it includes. The security solution will then enforce that pre-defined policy, while leaving room for some “future proofing”.
Code updates for the security subsystem and for other code running entities
The CryptoIsland family is responsible for securing code updates, for both the CryptoIsland subsystem and other entities running code in the system. This addresses the need to use strong cryptography, while assuring the efficiency (for example, loading time) and flexibility of the process is maintained. Aspects like code confidentiality and freshness of code are also addressed.
While ease of debug is critical for timely development and identification of issues, we must prevent it from being exploited to compromise assets. The CryptoIsland family allows authentication of entities attempting to debug a design, verifying the debug rights that were granted at a fine granularity of control. The products also allow association of debug resources with the different credentials (roots-of-trust) stored on die (owned by different entities), thus allowing protection of assets between entities in the value chain.
This debug session authorization mentioned here is of course rollback protected, limited to a target device and limited in the duration of its validity.
The CryptoIsland family allows an IC/Device exchanging hands within the value chain and then getting deployed, to securely attest to the authenticity of various aspects of its behavior and deployment context (starting with its identity, its SW status, logs that it collects and more). Because the ability to trust a service and its underlying devices is critical for various stakeholders, this capability is quite critical.
The CryptoIsland family can respond to “alarm” signals generated internally (within the CryptoIsland) or coming from outside the CryptoIsland boundaries (for example, from sensors and detectors embedded at the SoC/IC/device level). The potential response can vary greatly and the system integrator is tasked with deciding what response to select out of the options provided.