SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
HKG18-402: Secure Key Services in
OP-TEE
Etienne Carrière, STMicroelectronics
Agenda
● Overview of Secure Key Services
● What is OP-TEE?
● Which Client Interface?
● Implementation: the SKS
● What’s next?
HSM, SE, TPM, TEE: Secure Services
● Hardware Security Module (HSM)
● Secure Elements as Smartcard, SIM cards.
https://www.globalplatform.org/mediaguideSE.asp
● Trusted Platform Modules (TPM devices)
https://trustedcomputinggroup.org/work-groups/trusted-platform-module/
● Trusted Execution Environment (TEE)
Several standards including the GPD TEE
https://www.globalplatform.org/specificationsdevice.asp Pictures: source wikipedia
(public domain) and ARM ©
HSM, SE, TPM, TEE: Secure Keys
HSMs, SEs, TPMs provide secure key management services:
● Key materials and cryptographic operations are very hard to tamper with.
● Client can import, generate, derive keys and cipher, sign, authenticate data.
● Secure keys have usage constraints.
● Use of secure keys may require user authentication.
How can the open source help in secure key management services?
TEEs as OP-TEE are suitable to propose such HSM services.
Sadly there is no uniform interface on which OP-TEE could build such a service.
Agenda
● Overview of Secure Key Services
● What is OP-TEE?
● Which Client Interface?
● Implementation: the SKS
● What’s next?
● Open source Trusted Execution Environment for Armv7/Armv8-A platforms.
● OP-TEE relies on the GPD TEE Client API specifications
● OP-TEE relies on the GPD TEE Internal Core API specifications.
What is OP-TEE?
https://www.globalplatform.org/specificationsdevice.asp
What is OP-TEE?
OP-TEE relies on the GPD TEE Client and Internal Core API specifications
Step 1: Client opens a session toward a trusted application (TA).
➥ Trusted application identifies client and returns a session handle.
Step 2: Client invokes TA commands each with up to 4 parameters.
➥ Trusted application checks the 32bit command ID and its parameters.
➥ Trusted application executes the command.
➥ Trusted application returns a status, eventually output data.
Step 3: Client closes the session.
What is OP-TEE?
GPD TEE Internal Core API functions for secure storage and cryptography:
● Secure Storage relates functions
TEE_CreatePersistentObject(), TEE_OpenPersistentObject(),
TEE_CloseAndDeletePersistentObject1(), TEE_ReadObjectData(),
TEE_WriteObjectData(), TEE_TruncateObjectData(), TEE_SeekObjectData().
● Cryptographic operations functions
TEE_DigestInit/Update/DoFinal(), TEE_CipherInit/Update/DoFinal(),
TEE_MACInit/Update/ComputeFinal/CompareFinal(), TEE_DeriveKey(),
TEE_AEInit/AEUpdateAAD/AEUpdateAAD/AEEncryptFinal/AEDecryptFinal(),
TEE_AsymmetricEncrypt/Decrypt/SignDigest/VerifyDigest(), TEE_GenerateKey().
Agenda
● Overview of Secure Key Services
● What is OP-TEE?
● Which Client Interface?
● Implementation: the SKS
● What’s next?
Secure Key Services: Which Client Interface?
Userland Applications Bootloader
… also for Trusted Applications?
Kernel crypto
services
Secure Key Services: Which Client Interface?
Linux kernel services:
● OP-TEE could register transformation providers to the Linux kernel Crypto API.
https://www.kernel.org/doc/html/v4.15/crypto/index.html
● Requires integration of the kernel client API in OP-TEE Linux driver.
Bootloader clients
● An OP-TEE portable client library to leverage TEE from bootloaders?
● OP-TEE secure storage currently relies on physical media access through
REE. Secure key service at boot implies TEE supplicant services in the
bootloader.
Secure Key Services: Which Client Interface?
Userland clients: which API?
● Mainly proprietary libraries and interfaces in vendor solutions.
● TPM Interface (https://trustedcomputinggroup.org/tpm-library-specification)
○ TPM already comes with an integration framework (TSS).
○ TPM lacks secure time to bound object time validity.
● Android Keystore (https://developer.android.com/.../keystore.html)
○ Very rich featured API but requires some of the Android support.
● PKCS #11/Cryptoki (https://www.oasis-open.org/committees/pkcs11)
○ Quite rich and extendable interface.
● Others libraries or APIs defined in the open source community?
Secure Key Services: Which Client Interface?
Lot of convergence of Android Keystore and PKCS #11 APIs:
● Crypto algorithms, operations atomicity, objects generic attributes.
PKCS #11:
● Referenced in many frameworks (i.e simalliance, amazon-freertos, linuxonibm).
● User authentication is restricted to a Security Officer and a single user.
● Flexible for extensions of object attributes and crypto schemes.
Android Keystore (far not exhaustive):
● More key attributes and rich binding with client application identity.
● Attestation of keys and device information using certificates.
Agenda
● Overview of Secure Key Services
● What is OP-TEE?
● Which Client Interface?
● Implementation: the SKS
● What’s next?
PKCS #11 API userland library
➔ github.com/OP-TEE/optee_client/libsks/
Trusted Application: the SKS TA
➔ github.com/OP-TEE/optee_os/ta_services/secure_key_services/
OP-TEE regression test environment
➔ github.com/OP-TEE/optee_test/host/xtest/regression_xxxx.c
OP-TEE SKS Proposal
OP-TEE SKS Proposal
First start by a workbase delivery:
● Very reduced cryptographic support (AES flavors, maybe a bit of RSA or ECC).
● Reduced set of PKCS #11 functions.
● Integration with Linux userland applications only.
Then will come more cryptographic support.
Then will come kernel and bootloader interfaces.
Then will come extended object attributes?
Contributions will be welcome!
OP-TEE SKS Proposal
PKCS #11 Cryptographic Token - https://www.oasis-open.org/committees/pkcs11/
Latest as of today (March 2018) is the Specifications Version 2.40 Plus Errata 01:
● The Interface Base Specification defines the functions and most ABI.
● The Current Mechanisms Specification lists mechanisms and their parameters.
● The Interface Historical Mechanisms lists historical mechanisms (i.e DES).
● Three C/C++ code header files:
SKS TA API
● PKCS #11 defines API functions and their arguments.
➥ The SKS TA API defines one command per PKCS #11 function.
TA command parameters reflect the PKCS #11 function arguments.
C_InitToken() ⟶ SKS_CMD_CK_INIT_TOKEN
C_CreateObject() ⟶ SKS_CMD_IMPORT_OBJECT
C_EncryptInit() ⟶ SKS_CMD_ENCRYPT_INIT
C_EncryptUpdate() ⟶ SKS_CMD_ENCRYPT_UPDATE
C_EncryptFinal() ⟶ SKS_CMD_ENCRYPT_FINAL
C_CloseSession() ⟶ SKS_CMD_CK_CLOSE_SESSION
SKS TA API
Objects: An object is a collection of attributes
● Class and type in class, i.e a symmetric key for an AES processing.
● Secret object secret value(s), i.e an AES key value.
● Identification means: label, ID, and very few others.
● Storage attributes: persistent, non modifiable, etc...
● Use constraints: allowed operations, time validity, user authentication, etc...
CKA_CLASS, CKA_KEY_TYPE, CKA_VALUE, CKA_LABEL, CKA_ID, CKA_START_DATE, CKA_END_DATE,
CKA_TOKEN, CKA_PRIVATE, CKA_ENCRYPT, CKA_DECRYPT, CKA_DERIVE, CKA_SIGN, CKA_VERIFY,
CKA_EXTRACTABLE, CKA_SENSITIVE, CKA_MODIFIABLE, CKA_COPYABLE, CKA_DESTROYABLE,
CKA_MECHANISM_TYPE, CKA_ALLOWED_MECHANISMS, CKA_UNWRAP_TEMPLATE, etc...
Objects: An object is a collection of attributes.
An attribute is a triplet attribute-ID/value-byte-size/value-data.
SKS TA API
Representation of an object in the PKCS#11 ABI
Representation of an object in the SKS TA ABI
SKS TA API
Mechanisms are cryptographic operation schemes defined by:
● An identification number;
● Formatted parameters required to initialize a crypto operation;
● Ability to execute processing modes or functions (i.e encrypt, sign, derive).
Examples of PKCS #11 mechanisms:
● AES MAC: CKM_AES_MAC, no parameter, supports sign and verify.
● AES CBC: CKM_AES_CBC, requires an IV, supports encryption and decryption.
● AES GCM: CKM_AES_GCM, requires an IV, an AAD and a tag size, can be used
to encrypt and decrypt Authenticated Encryption (AE) messages.
Format of mechanism parameters in the PKCS #11 and SKS TA ABIs
SKS TA API
⇩
AES MAC
has no
parameter
AES CBC
needs a
16-byte IV⇩
⇩
AES GCM
requires a
structured
parameters
set
Processing functions follow the same sequence in the SKS trusted application:
● Get/check parameters.
● Check function against session state.
● Prepare created key (if any) attribute list.
● Check created key (if any) against session state.
● Check created key (if any) against function.
● Check used key (if any) against session state.
● Check used key (if any) against function.
● Process requested crypto operation ➞ wrap to GPD TEE crypto API.
● Register created key (if any).
● Return a status and an object handle or processed data.
SKS TA: Processing
C_GenerateKey()
C_DeriveKey()
C_EncryptInit()
C_VerifyUpdate()
...
Agenda
● Overview of Secure Key Services
● What is OP-TEE?
● Which Client Interface?
● Implementation: the SKS
● What’s next?
Current Status
As of March 2018:
● Proposed an API for the TA that reflects the PKCS #11 API.
● Supports token info retrieve and sessions functions.
● Supports persistent storage of keys and token state.
● Import and generation of generic secrets and AES keys.
● AES in modes ECB, CBC, CTS, CTR, GCM and CCM.
● SHAxxx HMACs, AES CMAC, AES CBC MAC.
● Several token management and set/get attributes functions are not supported.
● Test environment still weak.
What’s Next - Short Term
● Enhance the tests and constraints on client parameters.
Existing PKCS #11 test frameworks?
● Consider delivery in OP-TEE 3.1.0 if mature enough.
● Contributions will be welcome to enhance the set of
crypto algorithms and mature the implementation.
What’s Next - Long Term
● Issue #1: certificate support
○ Current OP-TEE does not provide any certificate support.
○ Secure parsing of X.509 certificates is known to be touchy.
● How to provision the SKS key database with platform secrets (i.e OTP fuses)?
● Interface keys and operations deported in a more secure backend HSM/SE?
● Consider convergences with an Android keystore solution.
● Looking forward PKCS #11 Version 3.0 (cryptsoft.com).
What’s Next
● Integrate in a filesystem encryption setup
○ May requires SKS TA services at boot stage (on going work by Igor
Opaniuk for a portable OP-TEE client library).
○ Requires the OP-TEE kernel client API in the Linux optee driver.
○ SKS TA can be a transformation providers in the Linux Crypto API.
What’s Next - Short Term
Provisioning and token ownership
● Clarify the provisioning sequences.
● How should we handle several PKCS #11 tokens?
● Can we create on request provisioned tokens with
delegated ownership?
Release the SKS TA during long lasting operations
● An OP-TEE TA is not reentrant.
● Could the SKS TA delegate a crypto processing to a TA
instance?
Thank You
etienne.carriere@linaro.org [github: @etienne-lms]
#HKG18
HKG18 keynotes and videos on: connect.linaro.org
For further information: www.linaro.org
Some extra slides...
● Attribute CKA_CLASS
CKO_DATA, CKO_CERTIFICATE, CKO_PUBLIC_KEY, CKO_PRIVATE_KEY,
CKO_SECRET_KEY, CKO_HW_FEATURE, CKO_DOMAIN_PARAMETERS,
CKO_MECHANISM, CKO_OTP_KEY, CKO_VENDOR_DEFINED.
● Attribute CKA_KEY_TYPE
CKK_RSA, CKK_DSA, CKK_DH, CKK_EC, CKK_AES, CKK_SHA256_HMAC,
CKK_HOTP, CKK_DES3, CKK_GENERIC_SECRET, and more.
● Attribute CKA_CERTIFICATE_TYPE
CKC_X_509, CKC_X_509_ATTR_CERT, CKC_WTLS, CKC_VENDOR_DEFINED
PKCS #11 Attributes (1/3)
PKCS #11 Attributes (2/3)
● Boolean Attributes
CKA_TOKEN CKA_PRIVATE CKA_ALWAYS_AUTHENTICATE
CKA_ENCRYPT CKA_DECRYPT CKA_DERIVE
CKA_WRAP CKA_UNWRAP
CKA_SIGN CKA_SIGN_RECOVER
CKA_VERIFY CKA_VERIFY_RECOVER
CKA_EXTRACTABLE CKA_NEVER_EXTRACTABLE
CKA_SENSITIVE CKA_ALWAYS_SENSITIVE
CKA_MODIFIABLE CKA_COPYABLE CKA_DESTROYABLE
CKA_LOCAL CKA_TRUSTED CKA_WRAP_WITH_TRUSTED
PKCS #11 Attributes (3/3)
● Other Attributes
CKA_VALUE, CKA_VALUE_LEN,
CKA_LABEL, CKA_OBJECT_ID, CKA_APPLICATION, CKA_ID,
CKA_START_DATE, CKA_END_DATE,
CKA_WRAP_TEMPLATE, CKA_UNWRAP_TEMPLATE, CKA_DERIVE_TEMPLATE,
CKA_MODULUS, CKA_PRIVATE_EXPONENT, CKA_PRIME, CKA_EC_PARAMS, etc…,
CKA_CERTIFICATE_CATEGORY, CKA_ISSUER, CKA_SERIAL_NUMBER, etc…,
CKA_OTP_FORMAT, CKA_OTP_LENGTHCKA_OTP_TIME_INTERVAL,
CKA_KEY_GEN_MECHANISM, CKA_LOCAL,
CKA_MECHANISM_TYPE, CKA_ALLOWED_MECHANISMS,
CKA_VENDOR_DEFINED
Android Keystore: Object Attributes
● Same common attributes as PKCS #11 for algo/function constraints on keys.
● PIN/password assignment per key.
● Key wrapped inside the secure device.
● Secret can be bound to boot stages.
● Specific encrypt/sign and decrypt/verify expiration dates.
● Bandwidth restrictions, access count restrictions.
https://source.android.com/security/keystore/tags
Android Keystore: Object Attributes
Tag::PURPOSE Tag::ALGORITHM Tag::KEY_SIZE
Tag::UNIQUE_ID Tag::APPLICATION_DATA Tag::APPLICATION_ID
Tag::BLOB_USAGE_REQUIREMENTS Tag::BOOTLOADER_ONLY
Tag::MAX_USES_PER_BOOT Tag::MIN_SECONDS_BETWEEN_OPS
Tag::USER_SECURE_ID Tag::USER_AUTH_TYPE Tag::NO_AUTH_REQUIRED
Tag::ORIGINATION_EXPIRE_DATETIME Tag::USAGE_EXPIRE_DATETIME
…
https://source.android.com/security/keystore/tags
Android Keystore: API Functions
● Import/export raw symmetric keys and formated asymmetric keys.
● Generate and derive keys and usual ciphering and/or authentication algo.
● Attest a key: export a certificate for a given key.
● Attest a device hardware information in a certificate.
addRngEntropy(), getHardwareFeatures(),
generateKey(), importKey(), getKeyCharacteristics(),
exportKey(), deleteKey(), deleteAllKeys(), destroyAttestationIds(),
begin(), update(), finish(), abort().
https://source.android.com/security/keystore/implementer-ref
End of extras
etienne.carriere@linaro.org
#HKG18
HKG18 keynotes and videos on: connect.linaro.org
For further information: www.linaro.org

Mais conteúdo relacionado

Mais procurados

LCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLinaro
 
LCA14: LCA14-502: The way to a generic TrustZone® solution
LCA14: LCA14-502: The way to a generic TrustZone® solutionLCA14: LCA14-502: The way to a generic TrustZone® solution
LCA14: LCA14-502: The way to a generic TrustZone® solutionLinaro
 
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Linaro
 
LAS16-504: Secure Storage updates in OP-TEE
LAS16-504: Secure Storage updates in OP-TEELAS16-504: Secure Storage updates in OP-TEE
LAS16-504: Secure Storage updates in OP-TEELinaro
 
Lcu14 306 - OP-TEE Future Enhancements
Lcu14 306 - OP-TEE Future EnhancementsLcu14 306 - OP-TEE Future Enhancements
Lcu14 306 - OP-TEE Future EnhancementsLinaro
 
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1Linaro
 
LAS16 111 - Raspberry pi3, op-tee and jtag debugging
LAS16 111 - Raspberry pi3, op-tee and jtag debuggingLAS16 111 - Raspberry pi3, op-tee and jtag debugging
LAS16 111 - Raspberry pi3, op-tee and jtag debugging96Boards
 
Introduction to Optee (26 may 2016)
Introduction to Optee (26 may 2016)Introduction to Optee (26 may 2016)
Introduction to Optee (26 may 2016)Yannick Gicquel
 
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3Linaro
 
BUD17-416: Benchmark and profiling in OP-TEE
BUD17-416: Benchmark and profiling in OP-TEE BUD17-416: Benchmark and profiling in OP-TEE
BUD17-416: Benchmark and profiling in OP-TEE Linaro
 
BUD17-400: Secure Data Path with OPTEE
BUD17-400: Secure Data Path with OPTEE BUD17-400: Secure Data Path with OPTEE
BUD17-400: Secure Data Path with OPTEE Linaro
 
SFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARM
SFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARMSFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARM
SFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARMLinaro
 
LCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted FirmwareLCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted FirmwareLinaro
 
LCA14: LCA14-418: Testing a secure framework
LCA14: LCA14-418: Testing a secure frameworkLCA14: LCA14-418: Testing a secure framework
LCA14: LCA14-418: Testing a secure frameworkLinaro
 
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLinaro
 
LCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted FirmwareLCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted FirmwareLinaro
 
LAS16-406: Android Widevine on OP-TEE
LAS16-406: Android Widevine on OP-TEELAS16-406: Android Widevine on OP-TEE
LAS16-406: Android Widevine on OP-TEELinaro
 
OPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialOPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialDalton Valadares
 
Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_Linaro
 

Mais procurados (20)

LCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platform
 
LCA14: LCA14-502: The way to a generic TrustZone® solution
LCA14: LCA14-502: The way to a generic TrustZone® solutionLCA14: LCA14-502: The way to a generic TrustZone® solution
LCA14: LCA14-502: The way to a generic TrustZone® solution
 
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
 
LAS16-504: Secure Storage updates in OP-TEE
LAS16-504: Secure Storage updates in OP-TEELAS16-504: Secure Storage updates in OP-TEE
LAS16-504: Secure Storage updates in OP-TEE
 
Lcu14 306 - OP-TEE Future Enhancements
Lcu14 306 - OP-TEE Future EnhancementsLcu14 306 - OP-TEE Future Enhancements
Lcu14 306 - OP-TEE Future Enhancements
 
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
BKK16-201 Play Ready OPTEE Integration with Secure Video Path lhg-1
 
LAS16 111 - Raspberry pi3, op-tee and jtag debugging
LAS16 111 - Raspberry pi3, op-tee and jtag debuggingLAS16 111 - Raspberry pi3, op-tee and jtag debugging
LAS16 111 - Raspberry pi3, op-tee and jtag debugging
 
Introduction to Optee (26 may 2016)
Introduction to Optee (26 may 2016)Introduction to Optee (26 may 2016)
Introduction to Optee (26 may 2016)
 
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
LAS16-111: Easing Access to ARM TrustZone – OP-TEE and Raspberry Pi 3
 
BUD17-416: Benchmark and profiling in OP-TEE
BUD17-416: Benchmark and profiling in OP-TEE BUD17-416: Benchmark and profiling in OP-TEE
BUD17-416: Benchmark and profiling in OP-TEE
 
BUD17-400: Secure Data Path with OPTEE
BUD17-400: Secure Data Path with OPTEE BUD17-400: Secure Data Path with OPTEE
BUD17-400: Secure Data Path with OPTEE
 
SFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARM
SFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARMSFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARM
SFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARM
 
LCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted FirmwareLCU14 500 ARM Trusted Firmware
LCU14 500 ARM Trusted Firmware
 
LCA14: LCA14-418: Testing a secure framework
LCA14: LCA14-418: Testing a secure frameworkLCA14: LCA14-418: Testing a secure framework
LCA14: LCA14-418: Testing a secure framework
 
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to EmbeddedLAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
LAS16-402: ARM Trusted Firmware – from Enterprise to Embedded
 
LCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted FirmwareLCU13: An Introduction to ARM Trusted Firmware
LCU13: An Introduction to ARM Trusted Firmware
 
Embedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernelEmbedded Linux Kernel - Build your custom kernel
Embedded Linux Kernel - Build your custom kernel
 
LAS16-406: Android Widevine on OP-TEE
LAS16-406: Android Widevine on OP-TEELAS16-406: Android Widevine on OP-TEE
LAS16-406: Android Widevine on OP-TEE
 
OPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build TutorialOPTEE on QEMU - Build Tutorial
OPTEE on QEMU - Build Tutorial
 
Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_Trusted firmware deep_dive_v1.0_
Trusted firmware deep_dive_v1.0_
 

Semelhante a HKG18-402 - Build secure key management services in OP-TEE

Securing the Internet of Things - Hank Chavers
Securing the Internet of Things - Hank ChaversSecuring the Internet of Things - Hank Chavers
Securing the Internet of Things - Hank ChaversWithTheBest
 
Application Security
Application SecurityApplication Security
Application Securityflorinc
 
Mitigating Java Deserialization attacks from within the JVM (improved version)
Mitigating Java Deserialization attacks from within the JVM (improved version)Mitigating Java Deserialization attacks from within the JVM (improved version)
Mitigating Java Deserialization attacks from within the JVM (improved version)Apostolos Giannakidis
 
Dpdk: rte_security: An update and introducing PDCP
Dpdk: rte_security: An update and introducing PDCPDpdk: rte_security: An update and introducing PDCP
Dpdk: rte_security: An update and introducing PDCPHemant Agrawal
 
FIPS 140-2 Validations in a Secure Enclave
FIPS 140-2 Validations in a Secure EnclaveFIPS 140-2 Validations in a Secure Enclave
FIPS 140-2 Validations in a Secure EnclavewolfSSL
 
Efficient Spark Analytics on Encrypted Data with Gidon Gershinsky
 Efficient Spark Analytics on Encrypted Data with Gidon Gershinsky Efficient Spark Analytics on Encrypted Data with Gidon Gershinsky
Efficient Spark Analytics on Encrypted Data with Gidon GershinskyDatabricks
 
ADRecon BH USA 2018 : Arsenal and DEF CON 26 Demo Labs Presentation
ADRecon BH USA 2018 : Arsenal and DEF CON 26 Demo Labs PresentationADRecon BH USA 2018 : Arsenal and DEF CON 26 Demo Labs Presentation
ADRecon BH USA 2018 : Arsenal and DEF CON 26 Demo Labs Presentationprashant3535
 
Securing Millions of Devices
Securing Millions of DevicesSecuring Millions of Devices
Securing Millions of DevicesKai Hudalla
 
LAS16-306: Exploring the Open Trusted Protocol
LAS16-306: Exploring the Open Trusted ProtocolLAS16-306: Exploring the Open Trusted Protocol
LAS16-306: Exploring the Open Trusted ProtocolLinaro
 
DPDK IPSec Security Gateway Application
DPDK IPSec Security Gateway ApplicationDPDK IPSec Security Gateway Application
DPDK IPSec Security Gateway ApplicationMichelle Holley
 
004 - Logging in the Cloud -- hide01.ir.pptx
004 - Logging in the Cloud  --  hide01.ir.pptx004 - Logging in the Cloud  --  hide01.ir.pptx
004 - Logging in the Cloud -- hide01.ir.pptxnitinscribd
 
Design Summit - Security Roadmap - Keenan Brock, Alberto Bellotti
Design Summit - Security Roadmap - Keenan Brock, Alberto BellottiDesign Summit - Security Roadmap - Keenan Brock, Alberto Bellotti
Design Summit - Security Roadmap - Keenan Brock, Alberto BellottiManageIQ
 
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...MongoDB
 
DPDK Summit 2015 - Intel - Keith Wiles
DPDK Summit 2015 - Intel - Keith WilesDPDK Summit 2015 - Intel - Keith Wiles
DPDK Summit 2015 - Intel - Keith WilesJim St. Leger
 
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...OpenNebula Project
 
OpenNebulaConf 2019 - Crytek: A Video gaming Edge Implementation "on the shou...
OpenNebulaConf 2019 - Crytek: A Video gaming Edge Implementation "on the shou...OpenNebulaConf 2019 - Crytek: A Video gaming Edge Implementation "on the shou...
OpenNebulaConf 2019 - Crytek: A Video gaming Edge Implementation "on the shou...Dmytro Korzhevin
 

Semelhante a HKG18-402 - Build secure key management services in OP-TEE (20)

Secure Your Encryption with HSM
Secure Your Encryption with HSMSecure Your Encryption with HSM
Secure Your Encryption with HSM
 
Securing the Internet of Things - Hank Chavers
Securing the Internet of Things - Hank ChaversSecuring the Internet of Things - Hank Chavers
Securing the Internet of Things - Hank Chavers
 
Application Security
Application SecurityApplication Security
Application Security
 
Mitigating Java Deserialization attacks from within the JVM (improved version)
Mitigating Java Deserialization attacks from within the JVM (improved version)Mitigating Java Deserialization attacks from within the JVM (improved version)
Mitigating Java Deserialization attacks from within the JVM (improved version)
 
Dpdk: rte_security: An update and introducing PDCP
Dpdk: rte_security: An update and introducing PDCPDpdk: rte_security: An update and introducing PDCP
Dpdk: rte_security: An update and introducing PDCP
 
FIPS 140-2 Validations in a Secure Enclave
FIPS 140-2 Validations in a Secure EnclaveFIPS 140-2 Validations in a Secure Enclave
FIPS 140-2 Validations in a Secure Enclave
 
App Security and Securing App
App Security and Securing AppApp Security and Securing App
App Security and Securing App
 
Deep Dive In To Kerberos
Deep Dive In To KerberosDeep Dive In To Kerberos
Deep Dive In To Kerberos
 
Efficient Spark Analytics on Encrypted Data with Gidon Gershinsky
 Efficient Spark Analytics on Encrypted Data with Gidon Gershinsky Efficient Spark Analytics on Encrypted Data with Gidon Gershinsky
Efficient Spark Analytics on Encrypted Data with Gidon Gershinsky
 
ADRecon BH USA 2018 : Arsenal and DEF CON 26 Demo Labs Presentation
ADRecon BH USA 2018 : Arsenal and DEF CON 26 Demo Labs PresentationADRecon BH USA 2018 : Arsenal and DEF CON 26 Demo Labs Presentation
ADRecon BH USA 2018 : Arsenal and DEF CON 26 Demo Labs Presentation
 
Securing Millions of Devices
Securing Millions of DevicesSecuring Millions of Devices
Securing Millions of Devices
 
LAS16-306: Exploring the Open Trusted Protocol
LAS16-306: Exploring the Open Trusted ProtocolLAS16-306: Exploring the Open Trusted Protocol
LAS16-306: Exploring the Open Trusted Protocol
 
DPDK IPSec Security Gateway Application
DPDK IPSec Security Gateway ApplicationDPDK IPSec Security Gateway Application
DPDK IPSec Security Gateway Application
 
004 - Logging in the Cloud -- hide01.ir.pptx
004 - Logging in the Cloud  --  hide01.ir.pptx004 - Logging in the Cloud  --  hide01.ir.pptx
004 - Logging in the Cloud -- hide01.ir.pptx
 
OpenStack Keystone
OpenStack KeystoneOpenStack Keystone
OpenStack Keystone
 
Design Summit - Security Roadmap - Keenan Brock, Alberto Bellotti
Design Summit - Security Roadmap - Keenan Brock, Alberto BellottiDesign Summit - Security Roadmap - Keenan Brock, Alberto Bellotti
Design Summit - Security Roadmap - Keenan Brock, Alberto Bellotti
 
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
MongoDB .local Bengaluru 2019: New Encryption Capabilities in MongoDB 4.2: A ...
 
DPDK Summit 2015 - Intel - Keith Wiles
DPDK Summit 2015 - Intel - Keith WilesDPDK Summit 2015 - Intel - Keith Wiles
DPDK Summit 2015 - Intel - Keith Wiles
 
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
OpenNebulaConf2019 - Crytek: A Video gaming Edge Implementation "on the shoul...
 
OpenNebulaConf 2019 - Crytek: A Video gaming Edge Implementation "on the shou...
OpenNebulaConf 2019 - Crytek: A Video gaming Edge Implementation "on the shou...OpenNebulaConf 2019 - Crytek: A Video gaming Edge Implementation "on the shou...
OpenNebulaConf 2019 - Crytek: A Video gaming Edge Implementation "on the shou...
 

Mais de Linaro

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloLinaro
 
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaLinaro
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraLinaro
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaLinaro
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018Linaro
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018Linaro
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...Linaro
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Linaro
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Linaro
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteLinaro
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopLinaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allLinaro
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorLinaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMULinaro
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MLinaro
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation Linaro
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootLinaro
 

Mais de Linaro (20)

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
 
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qa
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8M
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
 

Último

Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Bhuvaneswari Subramani
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusZilliz
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Orbitshub
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 

Último (20)

Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 

HKG18-402 - Build secure key management services in OP-TEE

  • 1. HKG18-402: Secure Key Services in OP-TEE Etienne Carrière, STMicroelectronics
  • 2. Agenda ● Overview of Secure Key Services ● What is OP-TEE? ● Which Client Interface? ● Implementation: the SKS ● What’s next?
  • 3. HSM, SE, TPM, TEE: Secure Services ● Hardware Security Module (HSM) ● Secure Elements as Smartcard, SIM cards. https://www.globalplatform.org/mediaguideSE.asp ● Trusted Platform Modules (TPM devices) https://trustedcomputinggroup.org/work-groups/trusted-platform-module/ ● Trusted Execution Environment (TEE) Several standards including the GPD TEE https://www.globalplatform.org/specificationsdevice.asp Pictures: source wikipedia (public domain) and ARM ©
  • 4. HSM, SE, TPM, TEE: Secure Keys HSMs, SEs, TPMs provide secure key management services: ● Key materials and cryptographic operations are very hard to tamper with. ● Client can import, generate, derive keys and cipher, sign, authenticate data. ● Secure keys have usage constraints. ● Use of secure keys may require user authentication. How can the open source help in secure key management services? TEEs as OP-TEE are suitable to propose such HSM services. Sadly there is no uniform interface on which OP-TEE could build such a service.
  • 5. Agenda ● Overview of Secure Key Services ● What is OP-TEE? ● Which Client Interface? ● Implementation: the SKS ● What’s next?
  • 6. ● Open source Trusted Execution Environment for Armv7/Armv8-A platforms. ● OP-TEE relies on the GPD TEE Client API specifications ● OP-TEE relies on the GPD TEE Internal Core API specifications. What is OP-TEE? https://www.globalplatform.org/specificationsdevice.asp
  • 7. What is OP-TEE? OP-TEE relies on the GPD TEE Client and Internal Core API specifications Step 1: Client opens a session toward a trusted application (TA). ➥ Trusted application identifies client and returns a session handle. Step 2: Client invokes TA commands each with up to 4 parameters. ➥ Trusted application checks the 32bit command ID and its parameters. ➥ Trusted application executes the command. ➥ Trusted application returns a status, eventually output data. Step 3: Client closes the session.
  • 8. What is OP-TEE? GPD TEE Internal Core API functions for secure storage and cryptography: ● Secure Storage relates functions TEE_CreatePersistentObject(), TEE_OpenPersistentObject(), TEE_CloseAndDeletePersistentObject1(), TEE_ReadObjectData(), TEE_WriteObjectData(), TEE_TruncateObjectData(), TEE_SeekObjectData(). ● Cryptographic operations functions TEE_DigestInit/Update/DoFinal(), TEE_CipherInit/Update/DoFinal(), TEE_MACInit/Update/ComputeFinal/CompareFinal(), TEE_DeriveKey(), TEE_AEInit/AEUpdateAAD/AEUpdateAAD/AEEncryptFinal/AEDecryptFinal(), TEE_AsymmetricEncrypt/Decrypt/SignDigest/VerifyDigest(), TEE_GenerateKey().
  • 9. Agenda ● Overview of Secure Key Services ● What is OP-TEE? ● Which Client Interface? ● Implementation: the SKS ● What’s next?
  • 10. Secure Key Services: Which Client Interface? Userland Applications Bootloader … also for Trusted Applications? Kernel crypto services
  • 11. Secure Key Services: Which Client Interface? Linux kernel services: ● OP-TEE could register transformation providers to the Linux kernel Crypto API. https://www.kernel.org/doc/html/v4.15/crypto/index.html ● Requires integration of the kernel client API in OP-TEE Linux driver. Bootloader clients ● An OP-TEE portable client library to leverage TEE from bootloaders? ● OP-TEE secure storage currently relies on physical media access through REE. Secure key service at boot implies TEE supplicant services in the bootloader.
  • 12. Secure Key Services: Which Client Interface? Userland clients: which API? ● Mainly proprietary libraries and interfaces in vendor solutions. ● TPM Interface (https://trustedcomputinggroup.org/tpm-library-specification) ○ TPM already comes with an integration framework (TSS). ○ TPM lacks secure time to bound object time validity. ● Android Keystore (https://developer.android.com/.../keystore.html) ○ Very rich featured API but requires some of the Android support. ● PKCS #11/Cryptoki (https://www.oasis-open.org/committees/pkcs11) ○ Quite rich and extendable interface. ● Others libraries or APIs defined in the open source community?
  • 13. Secure Key Services: Which Client Interface? Lot of convergence of Android Keystore and PKCS #11 APIs: ● Crypto algorithms, operations atomicity, objects generic attributes. PKCS #11: ● Referenced in many frameworks (i.e simalliance, amazon-freertos, linuxonibm). ● User authentication is restricted to a Security Officer and a single user. ● Flexible for extensions of object attributes and crypto schemes. Android Keystore (far not exhaustive): ● More key attributes and rich binding with client application identity. ● Attestation of keys and device information using certificates.
  • 14. Agenda ● Overview of Secure Key Services ● What is OP-TEE? ● Which Client Interface? ● Implementation: the SKS ● What’s next?
  • 15. PKCS #11 API userland library ➔ github.com/OP-TEE/optee_client/libsks/ Trusted Application: the SKS TA ➔ github.com/OP-TEE/optee_os/ta_services/secure_key_services/ OP-TEE regression test environment ➔ github.com/OP-TEE/optee_test/host/xtest/regression_xxxx.c OP-TEE SKS Proposal
  • 16. OP-TEE SKS Proposal First start by a workbase delivery: ● Very reduced cryptographic support (AES flavors, maybe a bit of RSA or ECC). ● Reduced set of PKCS #11 functions. ● Integration with Linux userland applications only. Then will come more cryptographic support. Then will come kernel and bootloader interfaces. Then will come extended object attributes? Contributions will be welcome!
  • 17. OP-TEE SKS Proposal PKCS #11 Cryptographic Token - https://www.oasis-open.org/committees/pkcs11/ Latest as of today (March 2018) is the Specifications Version 2.40 Plus Errata 01: ● The Interface Base Specification defines the functions and most ABI. ● The Current Mechanisms Specification lists mechanisms and their parameters. ● The Interface Historical Mechanisms lists historical mechanisms (i.e DES). ● Three C/C++ code header files:
  • 18. SKS TA API ● PKCS #11 defines API functions and their arguments. ➥ The SKS TA API defines one command per PKCS #11 function. TA command parameters reflect the PKCS #11 function arguments. C_InitToken() ⟶ SKS_CMD_CK_INIT_TOKEN C_CreateObject() ⟶ SKS_CMD_IMPORT_OBJECT C_EncryptInit() ⟶ SKS_CMD_ENCRYPT_INIT C_EncryptUpdate() ⟶ SKS_CMD_ENCRYPT_UPDATE C_EncryptFinal() ⟶ SKS_CMD_ENCRYPT_FINAL C_CloseSession() ⟶ SKS_CMD_CK_CLOSE_SESSION
  • 19. SKS TA API Objects: An object is a collection of attributes ● Class and type in class, i.e a symmetric key for an AES processing. ● Secret object secret value(s), i.e an AES key value. ● Identification means: label, ID, and very few others. ● Storage attributes: persistent, non modifiable, etc... ● Use constraints: allowed operations, time validity, user authentication, etc... CKA_CLASS, CKA_KEY_TYPE, CKA_VALUE, CKA_LABEL, CKA_ID, CKA_START_DATE, CKA_END_DATE, CKA_TOKEN, CKA_PRIVATE, CKA_ENCRYPT, CKA_DECRYPT, CKA_DERIVE, CKA_SIGN, CKA_VERIFY, CKA_EXTRACTABLE, CKA_SENSITIVE, CKA_MODIFIABLE, CKA_COPYABLE, CKA_DESTROYABLE, CKA_MECHANISM_TYPE, CKA_ALLOWED_MECHANISMS, CKA_UNWRAP_TEMPLATE, etc...
  • 20. Objects: An object is a collection of attributes. An attribute is a triplet attribute-ID/value-byte-size/value-data. SKS TA API Representation of an object in the PKCS#11 ABI Representation of an object in the SKS TA ABI
  • 21. SKS TA API Mechanisms are cryptographic operation schemes defined by: ● An identification number; ● Formatted parameters required to initialize a crypto operation; ● Ability to execute processing modes or functions (i.e encrypt, sign, derive). Examples of PKCS #11 mechanisms: ● AES MAC: CKM_AES_MAC, no parameter, supports sign and verify. ● AES CBC: CKM_AES_CBC, requires an IV, supports encryption and decryption. ● AES GCM: CKM_AES_GCM, requires an IV, an AAD and a tag size, can be used to encrypt and decrypt Authenticated Encryption (AE) messages.
  • 22. Format of mechanism parameters in the PKCS #11 and SKS TA ABIs SKS TA API ⇩ AES MAC has no parameter AES CBC needs a 16-byte IV⇩ ⇩ AES GCM requires a structured parameters set
  • 23. Processing functions follow the same sequence in the SKS trusted application: ● Get/check parameters. ● Check function against session state. ● Prepare created key (if any) attribute list. ● Check created key (if any) against session state. ● Check created key (if any) against function. ● Check used key (if any) against session state. ● Check used key (if any) against function. ● Process requested crypto operation ➞ wrap to GPD TEE crypto API. ● Register created key (if any). ● Return a status and an object handle or processed data. SKS TA: Processing C_GenerateKey() C_DeriveKey() C_EncryptInit() C_VerifyUpdate() ...
  • 24. Agenda ● Overview of Secure Key Services ● What is OP-TEE? ● Which Client Interface? ● Implementation: the SKS ● What’s next?
  • 25. Current Status As of March 2018: ● Proposed an API for the TA that reflects the PKCS #11 API. ● Supports token info retrieve and sessions functions. ● Supports persistent storage of keys and token state. ● Import and generation of generic secrets and AES keys. ● AES in modes ECB, CBC, CTS, CTR, GCM and CCM. ● SHAxxx HMACs, AES CMAC, AES CBC MAC. ● Several token management and set/get attributes functions are not supported. ● Test environment still weak.
  • 26. What’s Next - Short Term ● Enhance the tests and constraints on client parameters. Existing PKCS #11 test frameworks? ● Consider delivery in OP-TEE 3.1.0 if mature enough. ● Contributions will be welcome to enhance the set of crypto algorithms and mature the implementation.
  • 27. What’s Next - Long Term ● Issue #1: certificate support ○ Current OP-TEE does not provide any certificate support. ○ Secure parsing of X.509 certificates is known to be touchy. ● How to provision the SKS key database with platform secrets (i.e OTP fuses)? ● Interface keys and operations deported in a more secure backend HSM/SE? ● Consider convergences with an Android keystore solution. ● Looking forward PKCS #11 Version 3.0 (cryptsoft.com).
  • 28. What’s Next ● Integrate in a filesystem encryption setup ○ May requires SKS TA services at boot stage (on going work by Igor Opaniuk for a portable OP-TEE client library). ○ Requires the OP-TEE kernel client API in the Linux optee driver. ○ SKS TA can be a transformation providers in the Linux Crypto API.
  • 29. What’s Next - Short Term Provisioning and token ownership ● Clarify the provisioning sequences. ● How should we handle several PKCS #11 tokens? ● Can we create on request provisioned tokens with delegated ownership? Release the SKS TA during long lasting operations ● An OP-TEE TA is not reentrant. ● Could the SKS TA delegate a crypto processing to a TA instance?
  • 30. Thank You etienne.carriere@linaro.org [github: @etienne-lms] #HKG18 HKG18 keynotes and videos on: connect.linaro.org For further information: www.linaro.org
  • 32. ● Attribute CKA_CLASS CKO_DATA, CKO_CERTIFICATE, CKO_PUBLIC_KEY, CKO_PRIVATE_KEY, CKO_SECRET_KEY, CKO_HW_FEATURE, CKO_DOMAIN_PARAMETERS, CKO_MECHANISM, CKO_OTP_KEY, CKO_VENDOR_DEFINED. ● Attribute CKA_KEY_TYPE CKK_RSA, CKK_DSA, CKK_DH, CKK_EC, CKK_AES, CKK_SHA256_HMAC, CKK_HOTP, CKK_DES3, CKK_GENERIC_SECRET, and more. ● Attribute CKA_CERTIFICATE_TYPE CKC_X_509, CKC_X_509_ATTR_CERT, CKC_WTLS, CKC_VENDOR_DEFINED PKCS #11 Attributes (1/3)
  • 33. PKCS #11 Attributes (2/3) ● Boolean Attributes CKA_TOKEN CKA_PRIVATE CKA_ALWAYS_AUTHENTICATE CKA_ENCRYPT CKA_DECRYPT CKA_DERIVE CKA_WRAP CKA_UNWRAP CKA_SIGN CKA_SIGN_RECOVER CKA_VERIFY CKA_VERIFY_RECOVER CKA_EXTRACTABLE CKA_NEVER_EXTRACTABLE CKA_SENSITIVE CKA_ALWAYS_SENSITIVE CKA_MODIFIABLE CKA_COPYABLE CKA_DESTROYABLE CKA_LOCAL CKA_TRUSTED CKA_WRAP_WITH_TRUSTED
  • 34. PKCS #11 Attributes (3/3) ● Other Attributes CKA_VALUE, CKA_VALUE_LEN, CKA_LABEL, CKA_OBJECT_ID, CKA_APPLICATION, CKA_ID, CKA_START_DATE, CKA_END_DATE, CKA_WRAP_TEMPLATE, CKA_UNWRAP_TEMPLATE, CKA_DERIVE_TEMPLATE, CKA_MODULUS, CKA_PRIVATE_EXPONENT, CKA_PRIME, CKA_EC_PARAMS, etc…, CKA_CERTIFICATE_CATEGORY, CKA_ISSUER, CKA_SERIAL_NUMBER, etc…, CKA_OTP_FORMAT, CKA_OTP_LENGTHCKA_OTP_TIME_INTERVAL, CKA_KEY_GEN_MECHANISM, CKA_LOCAL, CKA_MECHANISM_TYPE, CKA_ALLOWED_MECHANISMS, CKA_VENDOR_DEFINED
  • 35. Android Keystore: Object Attributes ● Same common attributes as PKCS #11 for algo/function constraints on keys. ● PIN/password assignment per key. ● Key wrapped inside the secure device. ● Secret can be bound to boot stages. ● Specific encrypt/sign and decrypt/verify expiration dates. ● Bandwidth restrictions, access count restrictions. https://source.android.com/security/keystore/tags
  • 36. Android Keystore: Object Attributes Tag::PURPOSE Tag::ALGORITHM Tag::KEY_SIZE Tag::UNIQUE_ID Tag::APPLICATION_DATA Tag::APPLICATION_ID Tag::BLOB_USAGE_REQUIREMENTS Tag::BOOTLOADER_ONLY Tag::MAX_USES_PER_BOOT Tag::MIN_SECONDS_BETWEEN_OPS Tag::USER_SECURE_ID Tag::USER_AUTH_TYPE Tag::NO_AUTH_REQUIRED Tag::ORIGINATION_EXPIRE_DATETIME Tag::USAGE_EXPIRE_DATETIME … https://source.android.com/security/keystore/tags
  • 37. Android Keystore: API Functions ● Import/export raw symmetric keys and formated asymmetric keys. ● Generate and derive keys and usual ciphering and/or authentication algo. ● Attest a key: export a certificate for a given key. ● Attest a device hardware information in a certificate. addRngEntropy(), getHardwareFeatures(), generateKey(), importKey(), getKeyCharacteristics(), exportKey(), deleteKey(), deleteAllKeys(), destroyAttestationIds(), begin(), update(), finish(), abort(). https://source.android.com/security/keystore/implementer-ref
  • 38. End of extras etienne.carriere@linaro.org #HKG18 HKG18 keynotes and videos on: connect.linaro.org For further information: www.linaro.org