Commit Graph

482 Commits

Author SHA1 Message Date
Huang, Haitao bc7ad59f3d update dcap commit 2024-10-12 02:39:16 +00:00
Huang, Haitao ba5f448b05 switch dcap_source submodule to canonical_packaging_dev branch
Signed-off-by: Huang, Haitao <haitao.huang@intel.com>
2024-10-12 02:39:16 +00:00
Zhang, Lili Z e38040bb98 Add target to build sdk from source code.
Note: Most of the original commit has merged except for applying
0001-Add-Wno-stringop-overflow.patch.
Do we still need this?

Signed-off-by: Zhang, Lili Z <lili.z.zhang@intel.com>
2024-10-12 02:35:16 +00:00
Xiangquan Liu e55d4f2e23 Update build system to link system libcrypto
Add pkgconf as a prerequisite for Ubuntu build

Signed-off-by: Xiangquan Liu <xiangquan.liu@intel.com>
2024-10-12 02:30:45 +00:00
Xiangquan, Liu ba4bae5d1f Fix psw build failures caused by SDK installation path changes (#987)
Signed-off-by: Liu, Xiangquan <xiangquan.liu@intel.com>
2024-10-10 19:49:48 +00:00
Li Xun 7385e10ce1 Correct ipp-crypto submodule branch name (#1060)
Only change branch name displayed in `.gitmodules`.
No change to submodule commit or source code.

Signed-off-by: Li, Xun <xun.li@intel.com>
2024-10-08 10:13:33 +08:00
Li Xun d5a2c9cf69 Fix broken link in README (#1054)
Signed-off-by: Li, Xun <xun.li@intel.com>
sgx_2.25
2024-09-27 18:30:14 +08:00
Li, Xun 9fafc27e8f Linux 2.25 Open Source Gold Release
Upgraded to OpenSSL 3.0.14.
Upgraded Intel(R) Integrated Performance Primitives (IPP) Cryptography library to version
  2021.12.1.
Supported FIPS 140-3 Certifiable IPP Crypto based Trusted Library.
Upgraded Intel SGX Architecture Enclaves based on new IPP crypto library.
Upgraded Intel DCAP Quote Verification Enclave to integrate OpenSSL/SgxSSL 3.0.14.
Removed Intel DCAP PCCS from repository.
Added Ubuntu* 24.04 LTS 64-bit Server support.
Fixed bug.

Note that PCCS is not available from this release. Please follow DCAP installation guide to use
`PCCSAdminTool` to retrieve the attestation collaterals or use old version PCCS.

Signed-off-by: Li, Xun <xun.li@intel.com>
2024-09-26 15:34:56 +08:00
Sharzy c1ceb4fe14 Fix misused tabs in Makefiles (#1018)
Signed-off-by: SharzyL <me@sharzy.in>
2024-07-02 08:49:57 +08:00
Jo Van Bulck 29321db180 Fix assembler call frame information (CFI) directives
Current macros emit an ENDBR instruction between the function label and
corresponding cfi_start, which confuses binary analysis tools like llvm-bolt.

Also add missing cfi_start/end directives for other assembly functions.

See also: https://sourceware.org/binutils/docs/as/CFI-directives.html

Signed-off-by: Jo Van Bulck <jo.vanbulck@cs.kuleuven.be>
2024-06-03 12:47:00 +08:00
Zhang, Lili Z d1c3b8a70d Fix Debian 12 build.
Signed-off-by: Zhang, Lili Z <lili.z.zhang@intel.com>
2024-05-30 08:47:41 +08:00
He, Jing J 80a6625c49 add action scripts
Signed-off-by: He, Jing J <jing.j.he@intel.com>
2024-05-06 10:48:09 +08:00
Li, Xun a53adeaab7 Linux 2.24 Open Source Gold Release
Upgraded to OpenSSL 3.0.13.
Upgraded to Intel(R) Integrated Performance Primitives (IPP) Cryptography library
  version 2021.11.
Upgraded to Protobuf 3.23.2.
Upgraded MbedTLS to 3.5.2.
Upgraded Intel DCAP Ring3 Abstraction Layer (R3AAL) library to support ConfigFS-TSM
  as communication channel between host and guest for TDX remote attestation.
Upgraded Intel DCAP Quote Verification Enclave to integrate OpenSSL/SgxSSL 3.0.13.
Upgraded new TDX attestation result “TD_RELAUNCH_ADVISED” in Intel DCAP Quote
  Verification Library (QVL) and Appraisal Engine.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
sgx_2.24
2024-04-26 15:24:15 +08:00
Zhang Lili 05851b21a1 Update reproducible README to add the links of AEs' README files.
Signed-off-by: Zhang Lili <lili.z.zhang@intel.com>
2024-04-03 16:47:17 +08:00
Zhang Lili 3e65daae2c Update LE XML files.
Signed-off-by: Zhang Lili <lili.z.zhang@intel.com>
2024-04-03 16:47:17 +08:00
Li, Xun 242644c777 Update external/dcap_source submodule
Signed-off-by: Li, Xun <xun.li@intel.com>
sgx_2.23
2024-01-18 15:19:20 +08:00
Li, Xun cd6c2a8b81 Linux 2.23 Open Source Gold Release
Supported new OS: Ubuntu* 23.10 64-bit Server version.
Upgraded to OpenSSL 3.0.12.
Upgraded MbedTLS to 3.5.0.
Added SM2 encrypt/decrypt algorithm to the GM/SM (PRC National Commercial
  Cryptographic Algorithms) sample code.
Introduced the Intel® DCAP Appraisal Engine within quote verification library,
  empowering users to evaluate verification results against diverse policies.
Upgraded Intel SGX Quote Verification Enclave to integrate OpenSSL/SgxSSL 3.0.12.
Added Rust wrapper for quote provider library APIs.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
2024-01-17 16:33:35 +08:00
Li, Xun 8a22317709 Linux 2.22 Open Source Gold Release
Upgraded to OpenSSL 3.0.10.
Added interoperable RA-TLS support which follows CCC design.
Enhanced Protect File System performance and added additional dependency
  `libsgx_pthread.a`.
Added the Constant Time instruction Decoder (CTD) into the default AEX-Notify
  mitigation handler in order to prevent the introduction of any additional
  subtle sidechannel leakages within the default handler.
Added Mistletoe 3 mitigations to the IPP Cryptography Library to the AES-ECB,
  AESGCM, and AES-CMAC algorithms. These have been incorporated transparently
  into the `sgx_tcrypto` library.
Resigned all Intel® SGX Architecture Enclaves.
Upgraded Intel SGX Quote Verification Enclave to integrate OpenSSL/SgxSSL 3.0.10.
Added Attestation Library support for Intel(R) TDX Migration TD.
Added Rust wrapper for low-level Quote Generation APIs.
Enabled `SE_TRACE` log in release binary.
Updated Rust QVL wrapper to use native Rust structure for quote verification
  collateral.
Added a limitation in the DCAP QVL to only allow the user to set the QvE load
  policy once.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
sgx_2.22
2023-10-24 11:05:23 +08:00
Scott Constable 8be98b1acb Added a constant-time instruction decoder to supplement the default AEX-Notify mitigation. (#960)
Added a constant-time instruction decoder to supplement the default AEX-Notify mitigation.

Signed-off-by: Scott Constable <scott.d.constable@intel.com>
2023-10-20 14:38:23 +08:00
Michael Spiegel f656e74afd Fix memory leak in sign_tool.cpp (#971)
Ownership of the parser is transferred from measure_enclave() to load_enclave(). load_enclave() passes the parser by reference to the CLoader constructor. CLoader cannot be responsible for deleting the parser. The parser must be deleted at the end of load_enclave().

Signed-off-by: Michael Spiegel <michael.m.spiegel@gmail.com>
2023-09-05 14:59:20 +08:00
Zhang, Lili Z f47d0e5a01 Linux 2.21 Open Source Gold Release
Upgraded to OpenSSL 1.1.1u.
Introduced Intel(R) TDX 1.4 and 1.5 support
Upgraded Ring3 Abstraction Layer (R3AAL) library to support
Intel(R) TDX MVP 6.2 kernel
Enhanced quote verification performance in multi-thread scenarios
Fixed bugs.

Signed-off-by: Zhang, Lili Z <lili.z.zhang@intel.com>
sgx_2.21
2023-08-22 10:10:14 +08:00
lzha101 a1eeccba5a Update AEX-Notify default handler. (#959)
Signed-off-by: Zhang, Lili Z <lili.z.zhang@intel.com>
2023-08-04 14:33:48 +08:00
Camila Fonseca 4b888cda73 Fixed minor typo in key definitions (#951)
* Fixed minor typo in sgx_tseal.h and key definitions.

---------

Signed-off-by: Camila Fonseca inrymail@gmail.com
2023-07-21 14:45:09 +08:00
henrywang8atfbdotcom bf9990776d Do traditional Ocall if g_uswitchless_handle is uninitialized
Global object initialization (init_global_object) happens before
g_uswitchless_handle is initialized (via sl_init_switchless).
Some ctors invoke syscalls via switchless ocalls. This causes
init_tswitchless_ocall_mngr to be invoked with sl_call_once
prematurely, returning -1. Subsequent invokations will always return -1, such
that switchless ocalls never happen. A simple solution is to fallback
to traditional ocalls until g_uswitchless_handle has been
initialized.
2023-07-21 14:42:34 +08:00
Li, Xun e7bbc158fa Linux 2.20 Open Source Gold Release
Supported the AEX (Asynchronous Enclave Exit) Notify feature.
Supported Mbed-TLS Cryptography library (excluding SSL/TLS portion) in Enclave.
Applied patches to OpenSSL 1.1.1t, fixed CVE-2023-1255, CVE-2023-0465 and
  CVE-2023-0466.
Upgraded to Intel(R) Integrated Performance Primitives (IPP) Cryptography
  library version 2021.7.
Upgraded Intel SGX Quote Verification Enclave to integrate updated SgxSSL.
Enhanced the attestation local cache functionality by giving users the option
  to provide their own cache file.
Enabled QPL/QCNL log in DCAP samples.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
sgx_2.20
2023-07-21 10:11:26 +08:00
lingyuji 1efe23c20e Add support for AESM command line option --supported_attestation_types
Signed-off-by: lingyuji <lingyu.jiang@intel.com>
2023-04-06 14:50:06 +08:00
volcano 33a1ec185f Fix integer overflow bug
Signed-off-by: volcano <volcano_dr@163.com>
2023-04-03 15:12:53 +08:00
Costy Blokh 0471aaef86 enable atomic operations in std::shared_ptr 2023-03-30 11:01:18 +08:00
volcano0dr d3fd8b4511 Fix wrong parameter when calling mm_dealloc
Signed-off-by: volcano0dr <volcano_dr@163.com>
2023-03-16 16:34:00 +08:00
Li, Xun 1bf092a389 Linux 2.19 Open Source Gold Release
Supported the Key Separation and Sharing (KSS) feature in Simulation mode.
Upgraded to OpenSSL 1.1.1t.
Upgraded Intel(R) SGX Quote Verification Enclave to integrate SgxSSL/OpenSSL
  version 1.1.1t.
Added new API in quote verification library to extract FMSPC
  (Family-Model-SteppingPlatform-CustomSKU) value from ECDSA quote.
Added Rust support for SGX ECDSA quote generation.
Added Linux kernel 5.19 support in TDX R3AAL (Ring 3 Attestation Abstraction Layer).
Removed Protobuf in TDX QGS (Quote Generation Service) and R3AAL (Ring 3
  Attestation Abstraction Layer).
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
sgx_2.19
2023-03-10 09:06:21 +08:00
Andy Zhao d5e10dfbd7 Merge pull request #931 from intel/update_license
Update license of Intel signed architecture enclaves
2023-01-13 19:21:09 +08:00
Li, Xun 42cb30a7cd Update license of Intel signed architecture enclaves
Now they are licensed under the 3-clause BSD license.

Signed-off-by: Li, Xun <xun.li@intel.com>
2023-01-13 13:22:00 +08:00
Li, Xun 607a226fc3 Linux 2.18.1 Open Source Gold Release
Fixed enclave load failure in environments where no symbolic links, /dev/sgx/{enclave,
provision} are created to point to the default SGX device nodes exported by kernel,
/dev/{sgx_enclave, sgx_provision}, respectively.

Signed-off-by: Li, Xun <xun.li@intel.com>
2023-01-13 13:18:07 +08:00
volcano 984f3c9fe8 Fix number of layout entry for global_data_t (#924)
Signed-off-by: volcano0dr <volcano_dr@163.com>
2023-01-05 17:03:23 +08:00
volcano 387e220401 Fix missing mm_modify_permissions in sim mode (#928)
Signed-off-by: volcano0dr <volcano_dr@163.com>
2023-01-05 17:02:50 +08:00
Maja Kądziołka 3be7be4060 Fix data races around g_enclave_state (#889)
Before this commit, the memory access within `do_init_enclave` setting
`g_enclave_state` to `ENCLAVE_INIT_DONE` was entirely unsynchronized.
This could cause the compiler to reorder this access, performing it
earlier than actually written. This would effectively unlock the memory
being initialized for use within other threads before the initialization
is finished.

The issue isn't entirely theoretical, as such an optimization could for
example allow to make one of the calls to `memset_s` a tailcall. The
only thing preventing this is the difficulty of proving that the memset
doesn't alias `g_enclave_state`.

One way to fix this would be to access `g_enclave_state` with C11
atomics of ordering `acq_rel` or stronger. However, the freestanding
environment of the SDK doesn't support C11 atomics. Thus we use the
existing assembly wrappers, which are sufficient as achieving `acq_rel`
semantics in x86 assembly doesn't require any special instructions.

To make it less likely that a similar flaw is reintroduced, we remove
the `extern` declaration of `g_enclave_state` from the header files.

Signed-off-by: Maja Kądziołka <maya@invisiblethingslab.com>
2023-01-05 13:57:46 +08:00
volcano ec0a8ed3f8 Support KSS on simulation mode (#885)
* Support KSS on simulation mode

Signed-off-by: volcano0dr <volcano_dr@163.com>
2022-12-21 10:36:32 +08:00
Haitao Huang 131434961a Merge pull request #922 from intel/docker_build_fix
PSW: fix docker build and psw bin installer for urts version update
2022-12-15 12:10:52 -06:00
Haitao Huang a504531ce9 Docker build: expose new kernel sgx dev nodes
Signed-off-by: Haitao Huang <haitao.huang@linux.intel.com>
2022-12-14 21:49:41 -08:00
Haitao Huang 816df5c360 PSW: fix docker build and psw bin installer for urts version update
Signed-off-by: Haitao Huang <haitao.huang@linux.intel.com>
2022-12-14 21:49:41 -08:00
Haitao Huang 2fef5c1288 Merge pull request #919 from JunjunGu1/fix-driver-node
merge the fix for driver node detection
2022-12-14 10:08:31 -06:00
JunjunGu1 c37095cf6a merge the fix for driver node detection
Signed-off-by: JunjunGu1 <junjun.gu@intel.com>
2022-12-13 11:05:44 +08:00
Li, Xun 4cab878689 Fix submodule branch
Signed-off-by: Li, Xun <xun.li@intel.com>
2022-11-30 09:32:54 +08:00
Muhammad El-Hindi ef38c57bba Removed uncessary creation of apply_patch file 2022-11-30 09:05:27 +08:00
Muhammad El-Hindi a597187c5f Check if dnnl preparation step is required 2022-11-30 09:05:27 +08:00
melhindi e20be7e459 Update Makefile of dnnl for unattended installs
The proposed change makes it easier to perform unattended installations in e.g. docker containers or VMs.
The `git am` command applies patches and attempts to commit the changes.
Yet, in order to commit git requires `user.name` and `user.email` to be configured, which are both usually not set in containers or VMs.

Based on my testing it is enough to simply apply the patch to avoid git asking for the user's name and email.

Signed-off-by: Muhammad El-Hindi muhammad.el-hindi@cs.tu-darmstadt.com
2022-11-30 09:05:27 +08:00
Li, Xun b0af6e75ac Linux 2.18 Open Source Gold Release
Along with the latest processor microcode address CVE-2022-21233.
  Modified the Switchless library to have mitigations for the associated issue.
Added support for the Linux kernel APIs for the Enclave Dynamic Memory
  Management (EDMM) features that are available with the Linux kernel v6.0 or
  later. Refer to the SGX SDK developer reference for details on new trusted
  APIs and enclave configuration for the EDMM features.
Enabled C++17 within SGX SDK.
Supported AMX (Advanced Matrix Extensions) in Enclave.
Replace hardcoded Enclave signing keys in all sample projects with dynamically
generated keys.
Added a new API to allow user to configure enclave internal cache size in the
  Protected File System library.
Upgraded to OpenSSL 1.1.1q and upgraded Intel(R) SGX Quote Verification Enclave
  to integrate SgxSSL/OpenSSL version 1.1.1q.
Supported new OS: Ubuntu* 22.04 LTS 64-bit Server version, CentOS* 8.3 64bits,
  Red Hat* Enterprise Linux* Server 8.6 (for x86_64), SUSE* Linux* Enterprise
  Server 15.4 64bits, Debian* 10 and Anolis* OS 8.6.
Upgraded Intel SGX QE3 to make it backward compatible.
Improved ECDSA quote generation and verification performance by caching PCK
  certificates and collaterals in memory and disk drive.
Added Java support for quote verification library.
Added new APIs to unify Intel SGX and TDX quote verification in Quote
  Verification Library.
Added Advisory ID in ECDSA quote verification supplemental data.
Added Intel TDX support in RA-TLS (Remote Attestation based TLS) library.
Improved TDX quote generation throughput in vsock mode.
Added Rust support for TDX quote generation.
Fixed bugs.

Signed-off-by: Li, Xun <xun.li@intel.com>
sgx_2.18
2022-11-24 13:48:25 +08:00
Henry Wang 4887b30b51 Fix pthread_self for untrusted threads that Ecall
Only threads created inside Enclave have pthread_info_tls.m_pthread set. If some untrusted thread does Ecall and then pthread_self() within Enclave, it will return NULL. This errorneous return value ends up causing thread synchronization errors inside the Enclave.
2022-09-06 10:12:03 +08:00
melhindi ced74d68f6 Enable parallelization of build in dnnl make file (#845)
the current Makefile does not use the special `$(MAKE)` command, instead `make` is hard coded.
This prevents the use of the `-j` flag, making the build slow.

Signed-off-by: Muhammad El-Hindi <muhammad.el-hindi@cs.tu-darmstadt.com>
2022-08-26 14:53:16 +08:00
Qiu Feng e151e2a6dd Remove AE debugInfo packages to pass build on some distros (#876)
* Remove AE debugInfo packages to pass build on some distros
* Update DCAP submodule commit reference
2022-08-26 14:22:31 +08:00