corda/sgx-jvm/remote-attestation
2018-04-24 14:18:11 +01:00
..
attestation-challenger Upgrade to Kotlin 1.2 API. (#770) 2018-04-24 14:18:11 +01:00
attestation-common Upgrade to Kotlin 1.2 API. (#770) 2018-04-24 14:18:11 +01:00
attestation-host Upgrade to Kotlin 1.2 API. (#770) 2018-04-24 14:18:11 +01:00
attestation-server Upgrade to Kotlin 1.2 API. (#770) 2018-04-24 14:18:11 +01:00
enclave Introduced copyright in all source files. (#519) 2018-03-06 17:29:21 +00:00
gradle/wrapper Introduced copyright in all source files. (#519) 2018-03-06 17:29:21 +00:00
host Introduced copyright in all source files. (#519) 2018-03-06 17:29:21 +00:00
ias-proxy Upgrade to Kotlin 1.2 API. (#770) 2018-04-24 14:18:11 +01:00
build.gradle Upgrade to Kotlin 1.2 API. (#770) 2018-04-24 14:18:11 +01:00
challenger-flow.png Remote Attestation Phase 2 (#235) 2017-12-22 14:42:42 +00:00
gradlew ENT-1074 - Proof-of-concept ISV for SGX remote attestation (#161) 2017-12-12 13:34:26 +00:00
gradlew.bat ENT-1074 - Proof-of-concept ISV for SGX remote attestation (#161) 2017-12-12 13:34:26 +00:00
README-Phase2.md Remote Attestation Phase 2 (#235) 2017-12-22 14:42:42 +00:00
README.md Remote Attestation Phase 2 (#235) 2017-12-22 14:42:42 +00:00
settings.gradle Introduced copyright in all source files. (#519) 2018-03-06 17:29:21 +00:00

Remote Attestation

Flow between Challenger, Host, ISV and IAS

Project Organisation

  • Enclave

    The enclave (enclave/) is responsible for initialising and coordinating the remote attestation process from the client side, and will eventually operate on a secret provisioned from the challenger (once successfully attested by Intel's Attestation Service).

  • Host

    The host JVM (host/) is running in an untrusted environment and facilitates the communication between the challenger and its enclave. To coordinate with the enclave, the host uses a native JNI library (in host/native/)

  • Challenger

    The challenger JVM does not require SGX-enabled hardware and is essentially the party asking the host to prove that it has spun up a program in an enclave on trusted hardware (that cannot be tampered with), so that consequently, it can provision an encrypted secret to said enclave.

  • IAS Proxy

    The proxy is responsible for talking to the Intel Attestation Service over mutual TLS to verify attestation evidence received from the host. The proxy needs a client certificate and a service provider identifier (SPID) issued by Intel. In turn, it will forward any received proof from Intel to the host and challenger, making it possible for the challenger to trust the host and thus provision the secret. The proof is signed with Intel's root certificate.

Getting Started

To get started, run the following commands in sgx-jvm:

> source environment
> sx help

Further documentation is available in sgx-jvm/tools/sx/README.md.