Open Future318 opened 2 years ago
Hi, Is this a local machine or cloud? Are you running your own PCCS? Can you show its output?
Run the server on local machine. PCCS show some outputs And a different error occurred. Is this error related to the config file.
etc/sgx_default_qcnl.conf
has been modified
Please try setting use_secure_cert
to false in sgx_default_qcnl.conf
.
I modified the setting, but it didn't work. The error message has changed.
This seems to be similar to https://github.com/edgelesssys/ego/issues/158#issuecomment-1203816437. Maybe it can be fixed by updating the BIOS.
@Wyh19980916 it seems that sgx_default_qcnl.conf
is using JSON format, so the format you're using does not match the syntax I guess. I have adapted the parameters to match the JSON syntax though it still does not work for me. Below is the output of the entire /etc/sgx_default_qcnl.conf
file:
{
// *** ATTENTION : This file is in JSON format so the keys are case sensitive. Don't change them.
//PCCS server address
"pccs_url": "https://localhost:8081/sgx/certification/v3/",
// To accept insecure HTTPS certificate, set this option to false
"use_secure_cert": false,
// You can use the Intel PCS or another PCCS to get quote verification collateral. Retrieval of PCK
// Certificates will always use the PCCS described in PCCS_URL. When COLLATERAL_SERVICE is not defined, both
// PCK Certs and verification collateral will be retrieved using PCCS_URL
//"collateral_service": "https://api.trustedservices.intel.com/sgx/certification/v3/",
// If you use a PCCS service to get the quote verification collateral, you can specify which PCCS API version is to be used.
// The legacy 3.0 API will return CRLs in HEX encoded DER format and the sgx_ql_qve_collateral_t.version will be set to 3.0, while
// the new 3.1 API will return raw DER format and the sgx_ql_qve_collateral_t.version will be set to 3.1. The PCCS_API_VERSION
// setting is ignored if COLLATERAL_SERVICE is set to the Intel PCS. In this case, the PCCS_API_VERSION is forced to be 3.1
// internally. Currently, only values of 3.0 and 3.1 are valid. Note, if you set this to 3.1, the PCCS use to retrieve
// verification collateral must support the new 3.1 APIs.
"pccs_api_version": "3.0",
// Maximum retry times for QCNL. If RETRY is not defined or set to 0, no retry will be performed.
// It will first wait one second and then for all forthcoming retries it will double the waiting time.
// By using RETRY_DELAY you disable this exponential backoff algorithm
"retry_times": 6,
// Sleep this amount of seconds before each retry when a transfer has failed with a transient error
"retry_delay": 10,
// If LOCAL_PCK_URL is defined, the QCNL will try to retrieve PCK cert chain from LOCAL_PCK_URL first,
// and failover to PCCS_URL as in legacy mode.
//"local_pck_url": "http://localhost:8081/sgx/certification/v3/",
// If LOCAL_PCK_URL is not defined, the QCNL will cache PCK certificates in memory by default.
// The cached PCK certificates will expire after PCK_CACHE_EXPIRE_HOURS hours.
"pck_cache_expire_hours": 168
// You can add custom request headers and parameters to the get certificate API.
// But the default PCCS implementation just ignores them.
//,"custom_request_options" : {
// "get_cert" : {
// "headers": {
// "head1": "value1"
// },
// "params": {
// "param1": "value1",
// "param2": "value2"
// }
// }
//}
}
@EErikas Thanks.But I think both formats do the same thing. I have modified the file as you said,but it still prompts the same error message.https://community.intel.com/t5/Intel-Software-Guard-Extensions/Error-No-cache-data-for-this-platform/m-p/1397969#M5380 propose a solution.If you solve the problem, please tell me. My server BIOS information is as follows
@Wyh19980916 Please run https://github.com/edgelesssys/sgx-troubleshoot and copy and paste the full output. Maybe I can then identify what might be wrong.
Firstly,I run the program and it output logs are as follow.
SGX troubleshooter by Edgeless Systems (build timestamp: 1660496020)
/etc/sgx_default_qcnl.conf
{
// *** ATTENTION : This file is in JSON format so the keys are case sensitive. Don't change them.
//PCCS server address
"pccs_url": "https://localhost:8081/sgx/certification/v3/",
// To accept insecure HTTPS certificate, set this option to false
"use_secure_cert": false,
// You can use the Intel PCS or another PCCS to get quote verification collateral. Retrieval of PCK
// Certificates will always use the PCCS described in PCCS_URL. When COLLATERAL_SERVICE is not defined, both
// PCK Certs and verification collateral will be retrieved using PCCS_URL
//"collateral_service": "https://api.trustedservices.intel.com/sgx/certification/v3/",
// If you use a PCCS service to get the quote verification collateral, you can specify which PCCS API version is to be used.
// The legacy 3.0 API will return CRLs in HEX encoded DER format and the sgx_ql_qve_collateral_t.version will be set to 3.0, while
// the new 3.1 API will return raw DER format and the sgx_ql_qve_collateral_t.version will be set to 3.1. The PCCS_API_VERSION
// setting is ignored if COLLATERAL_SERVICE is set to the Intel PCS. In this case, the PCCS_API_VERSION is forced to be 3.1
// internally. Currently, only values of 3.0 and 3.1 are valid. Note, if you set this to 3.1, the PCCS use to retrieve
// verification collateral must support the new 3.1 APIs.
//"pccs_api_version": "3.1",
// Maximum retry times for QCNL. If RETRY is not defined or set to 0, no retry will be performed.
// It will first wait one second and then for all forthcoming retries it will double the waiting time.
// By using RETRY_DELAY you disable this exponential backoff algorithm
"retry_times": 6,
// Sleep this amount of seconds before each retry when a transfer has failed with a transient error
"retry_delay": 10,
// If LOCAL_PCK_URL is defined, the QCNL will try to retrieve PCK cert chain from LOCAL_PCK_URL first,
// and failover to PCCS_URL as in legacy mode.
//"local_pck_url": "http://localhost:8081/sgx/certification/v3/",
// If LOCAL_PCK_URL is not defined, the QCNL will cache PCK certificates in memory by default.
// The cached PCK certificates will expire after PCK_CACHE_EXPIRE_HOURS hours.
"pck_cache_expire_hours": 168
// You can add custom request headers and parameters to the get certificate API.
// But the default PCCS implementation just ignores them.
//,"custom_request_options" : {
// "get_cert" : {
// "headers": {
// "head1": "value1"
// },
// "params": {
// "param1": "value1",
// "param2": "value2"
// }
// }
//}
}
lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 46 bits physical, 57 bits virtual
CPU(s): 24
On-line CPU(s) list: 0-23
Thread(s) per core: 2
Core(s) per socket: 12
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 106
Model name: Intel(R) Xeon(R) Silver 4310 CPU @ 2.10GHz
Stepping: 6
CPU MHz: 800.000
CPU max MHz: 3300.0000
CPU min MHz: 800.0000
BogoMIPS: 4200.00
Virtualization: VT-x
L1d cache: 576 KiB
L1i cache: 384 KiB
L2 cache: 15 MiB
L3 cache: 18 MiB
NUMA node0 CPU(s): 0-23
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Mitigation; Clear CPU buffers; SMT vulnerable
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2: Mitigation; Enhanced IBRS, IBPB conditional, RSB filling
Vulnerability Srbds: Not affected
Vulnerability Tsx async abort: Not affected
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmp
erf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 invpcid_single
intel_ppin ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust sgx bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb intel_pt avx51
2cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local split_lock_detect wbnoinvd dtherm ida arat pln pts avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx5
12_bitalg tme avx512_vpopcntdq la57 rdpid sgx_lc fsrm md_clear pconfig flush_l1d arch_capabilities
sh -c dmesg | grep microcode
[ 0.000000] microcode: microcode updated early to revision 0xd000363, date = 2022-03-30
[ 1.810276] microcode: sig=0x606a6, pf=0x1, revision=0xd000363
[ 1.810420] microcode: Microcode Update Driver: v2.2.
sh -c lsmod | grep -i sgx
graphene_sgx 16384 0
isgx 57344 0
sh -c dmesg | grep -i sgx
[ 1.651752] sgx: EPC section 0x2000c00000-0x207f7fffff
[582828.898903] isgx: loading out-of-tree module taints kernel.
[582828.899024] isgx: module verification failed: signature and/or required key missing - tainting kernel
[582828.900899] intel_sgx: Intel SGX Driver v2.11.0
[582828.900935] UBSAN: shift-out-of-bounds in /root/linux-sgx-driver/sgx_main.c:224:11
[582828.901027] sgx_drv_probe.cold+0x165/0x51e [isgx]
[582828.901116] ? sgx_get_unmapped_area+0xa0/0xa0 [isgx]
[582828.901138] init_sgx_module+0x2f/0x90 [isgx]
[582828.901394] intel_sgx INT0E0C:00: EPC bank 0x2000c00000-0x207f800000
[582828.931209] intel_sgx: second initialization call skipped
[583052.613319] ksgxswapd: done
[583052.667774] intel_sgx: second release call skipped
[583053.558417] intel_sgx: Intel SGX Driver v2.11.0
[583053.558456] UBSAN: shift-out-of-bounds in /root/linux-sgx-driver/sgx_main.c:224:11
[583053.558547] sgx_drv_probe.cold+0x165/0x51e [isgx]
[583053.558636] ? sgx_get_unmapped_area+0xa0/0xa0 [isgx]
[583053.558657] init_sgx_module+0x2f/0x90 [isgx]
[583053.558994] intel_sgx INT0E0C:00: EPC bank 0x2000c00000-0x207f800000
[583053.589763] intel_sgx: second initialization call skipped
[583053.605680] gsgx: Graphene SGX Driver v0.10-2.1
service aesmd status
● aesmd.service - Intel(R) Architectural Enclave Service Manager
Loaded: loaded (/lib/systemd/system/aesmd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-07-28 09:29:48 CST; 2 weeks 3 days ago
Main PID: 293306 (aesm_service)
Tasks: 4 (limit: 151666)
Memory: 2.4M
CGroup: /system.slice/aesmd.service
└─293306 /opt/intel/sgx-aesm-service/aesm/aesm_service
7月 28 09:29:48 sdibc-Super-Server systemd[1]: Starting Intel(R) Architectural Enclave Service Manager...
7月 28 09:29:48 sdibc-Super-Server aesm_service[293305]: aesm_service: warning: Turn to daemon. Use "--no-daemon" option to execute in foreground.
7月 28 09:29:48 sdibc-Super-Server systemd[1]: Started Intel(R) Architectural Enclave Service Manager.
7月 28 09:29:48 sdibc-Super-Server aesm_service[293306]: [get_qpl_handle ../qe_logic.cpp:294] Cannot open Quote Provider Library libdcap_quoteprov.so.1 and libdcap_quoteprov.so
7月 28 09:29:48 sdibc-Super-Server aesm_service[293306]: The server sock is 0x55e7ba9683e0
8月 15 08:43:36 sdibc-Super-Server aesm_service[293306]: [get_platform_quote_cert_data ../qe_logic.cpp:378] Error returned from the p_sgx_get_quote_config API. 0xe019
sh -c apt list --installed | grep -e sgx -e dcap
gramine-dcap-ratls-dcap/stable,now 1.2-1 amd64 [installed,automatic]
gramine-dcap-ratls-epid/stable,now 1.2-1 amd64 [installed,automatic]
gramine-dcap/stable,now 1.2-1 amd64 [installed]
libsgx-ae-epid/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
libsgx-ae-id-enclave/unknown,now 1.14.100.3-focal1 amd64 [installed,automatic]
libsgx-ae-le/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
libsgx-ae-pce/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
libsgx-ae-qe3/unknown,now 1.14.100.3-focal1 amd64 [installed,automatic]
libsgx-ae-qve/unknown,now 1.14.100.3-focal1 amd64 [installed,automatic]
libsgx-aesm-ecdsa-plugin/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
libsgx-aesm-epid-plugin/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
libsgx-aesm-launch-plugin/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
libsgx-aesm-pce-plugin/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
libsgx-aesm-quote-ex-plugin/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
libsgx-dcap-default-qpl/unknown,now 1.14.100.3-focal1 amd64 [installed]
libsgx-dcap-ql/unknown,now 1.14.100.3-focal1 amd64 [installed]
libsgx-dcap-quote-verify/unknown,now 1.14.100.3-focal1 amd64 [installed,automatic]
libsgx-enclave-common/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
libsgx-epid/unknown,now 2.17.100.3-focal1 amd64 [installed]
libsgx-launch/unknown,now 2.17.100.3-focal1 amd64 [installed]
libsgx-pce-logic/unknown,now 1.14.100.3-focal1 amd64 [installed,automatic]
libsgx-qe3-logic/unknown,now 1.14.100.3-focal1 amd64 [installed,automatic]
libsgx-quote-ex/unknown,now 2.17.100.3-focal1 amd64 [installed]
libsgx-urts/unknown,now 2.17.100.3-focal1 amd64 [installed,upgradable to: 2.17.100.3-focal1]
sgx-aesm-service/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
sgx-dcap-pccs/unknown,now 1.14.100.3-focal1 amd64 [installed]
stdbuf -oL ./testapp_host enclave.signed
2022-08-15T08:45:19+0800.243719Z [(H)WARN] tid(0x7fba9bf73280) | Failed to load libsgx_dcap_ql.so
[/openenclave/host/sgx/sgxquote.c:_load_sgx_dcap_ql_impl:385]
2022-08-15T08:45:19+0800.243744Z [(H)WARN] tid(0x7fba9bf73280) | Alternative quoting library will be needed. [/openenclave/host/sgx/sgxquote.c:_load_sgx_dcap_ql_impl:392]
CPUSVN: 05080c0cffff00000000000000000000
2022-08-15T08:45:21+0800.856629Z [(H)ERROR] tid(0x7fba9bf73280) | SGX quote-ex failure: sgx_init_quote_ex(local_buffer) returned SGX_ERROR_PLATFORM_CERT_UNAVAILABLE
(oe_result_t=OE_SGX_QUOTE_LIBRARY_ERROR) [/openenclave/host/sgx/sgxquote.c:oe_sgx_qe_get_target_info:676]
2022-08-15T08:45:21+0800.856674Z [(H)ERROR] tid(0x7fba9bf73280) | :OE_SGX_QUOTE_LIBRARY_ERROR [/openenclave/host/sgx/quote.c:sgx_get_qetarget_info:37]
2022-08-15T08:45:21+0800.856732Z [(E)ERROR] tid(0x7fba9bf73280) | enclave.signed::OE_SGX_QUOTE_LIBRARY_ERROR [/openenclave/enclave/core/sgx/report.c:oe_get_remote_report:283]
2022-08-15T08:45:21+0800.856767Z [(E)ERROR] tid(0x7fba9bf73280) | enclave.signed::OE_SGX_QUOTE_LIBRARY_ERROR [/openenclave/enclave/core/sgx/report.c:_oe_get_report_internal:388]
2022-08-15T08:45:21+0800.856805Z [(E)ERROR] tid(0x7fba9bf73280) | enclave.signed::OE_SGX_QUOTE_LIBRARY_ERROR [/openenclave/enclave/core/sgx/report.c:oe_get_report_v2_internal:443]
2022-08-15T08:45:21+0800.856864Z [(E)ERROR] tid(0x7fba9bf73280) | enclave.signed:SGX Plugin _get_report(): failed to get ecdsa report. OE_SGX_QUOTE_LIBRARY_ERROR (oe_result_t=OE_SGX_QUOTE_LIBRARY_ERROR) [/openenclave/enclave/sgx/attester.c:_get_report:324]
2022-08-15T08:45:21+0800.856914Z [(E)ERROR] tid(0x7fba9bf73280) | enclave.signed::OE_SGX_QUOTE_LIBRARY_ERROR [/openenclave/enclave/sgx/report.c:oe_get_report_v2:192]
ERROR: get remote report: OE_SGX_QUOTE_LIBRARY_ERROR
stdbuf -oL ./testapp_host enclave.signed
2022-08-15T08:45:21+0800.958067Z [(H)WARN] tid(0x7f89c4c51280) | Failed to load libsgx_dcap_ql.so
[/openenclave/host/sgx/sgxquote.c:_load_sgx_dcap_ql_impl:385]
2022-08-15T08:45:21+0800.958094Z [(H)WARN] tid(0x7f89c4c51280) | Alternative quoting library will be needed. [/openenclave/host/sgx/sgxquote.c:_load_sgx_dcap_ql_impl:392]
CPUSVN: 05080c0cffff00000000000000000000
2022-08-15T08:45:22+0800.871744Z [(H)ERROR] tid(0x7f89c4c51280) | SGX quote-ex failure: sgx_init_quote_ex(local_buffer) returned SGX_ERROR_PLATFORM_CERT_UNAVAILABLE
(oe_result_t=OE_SGX_QUOTE_LIBRARY_ERROR) [/openenclave/host/sgx/sgxquote.c:oe_sgx_qe_get_target_info:676]
2022-08-15T08:45:22+0800.871789Z [(H)ERROR] tid(0x7f89c4c51280) | :OE_SGX_QUOTE_LIBRARY_ERROR [/openenclave/host/sgx/quote.c:sgx_get_qetarget_info:37]
ERROR: get remote report: OE_SGX_QUOTE_LIBRARY_ERROR
It looks likes missing dynamic link file. But libsgx_dcap_ql.so.1 exists in /usr/lib/x86_64-linux-gnu. I use ln -s libsgx_dcap_ql.so.1 libsgx_dcap_ql.so
to create link and run the program again.
SGX troubleshooter by Edgeless Systems (build timestamp: 1660496020)
flag provided but not defined: -test-allcd
Usage of ./sgx-troubleshoot:
-test-all
run all extended tests
-test-docker
run the SGX test enclave in a Docker container
-test-enclave
run the SGX test enclave
-test-pccs
test connection to the configured PCCS
-v verbose output
root@sdibc-Super-Server:~#
root@sdibc-Super-Server:~# ./sgx-troubleshoot -v -test-all
SGX troubleshooter by Edgeless Systems (build timestamp: 1660496020)
/etc/sgx_default_qcnl.conf
{
// *** ATTENTION : This file is in JSON format so the keys are case sensitive. Don't change them.
//PCCS server address
"pccs_url": "https://localhost:8081/sgx/certification/v3/",
// To accept insecure HTTPS certificate, set this option to false
"use_secure_cert": false,
// You can use the Intel PCS or another PCCS to get quote verification collateral. Retrieval of PCK
// Certificates will always use the PCCS described in PCCS_URL. When COLLATERAL_SERVICE is not defined, both
// PCK Certs and verification collateral will be retrieved using PCCS_URL
//"collateral_service": "https://api.trustedservices.intel.com/sgx/certification/v3/",
// If you use a PCCS service to get the quote verification collateral, you can specify which PCCS API version is to be used.
// The legacy 3.0 API will return CRLs in HEX encoded DER format and the sgx_ql_qve_collateral_t.version will be set to 3.0, while
// the new 3.1 API will return raw DER format and the sgx_ql_qve_collateral_t.version will be set to 3.1. The PCCS_API_VERSION
// setting is ignored if COLLATERAL_SERVICE is set to the Intel PCS. In this case, the PCCS_API_VERSION is forced to be 3.1
// internally. Currently, only values of 3.0 and 3.1 are valid. Note, if you set this to 3.1, the PCCS use to retrieve
// verification collateral must support the new 3.1 APIs.
//"pccs_api_version": "3.1",
// Maximum retry times for QCNL. If RETRY is not defined or set to 0, no retry will be performed.
// It will first wait one second and then for all forthcoming retries it will double the waiting time.
// By using RETRY_DELAY you disable this exponential backoff algorithm
"retry_times": 6,
// Sleep this amount of seconds before each retry when a transfer has failed with a transient error
"retry_delay": 10,
// If LOCAL_PCK_URL is defined, the QCNL will try to retrieve PCK cert chain from LOCAL_PCK_URL first,
// and failover to PCCS_URL as in legacy mode.
//"local_pck_url": "http://localhost:8081/sgx/certification/v3/",
// If LOCAL_PCK_URL is not defined, the QCNL will cache PCK certificates in memory by default.
// The cached PCK certificates will expire after PCK_CACHE_EXPIRE_HOURS hours.
"pck_cache_expire_hours": 168
// You can add custom request headers and parameters to the get certificate API.
// But the default PCCS implementation just ignores them.
//,"custom_request_options" : {
// "get_cert" : {
// "headers": {
// "head1": "value1"
// },
// "params": {
// "param1": "value1",
// "param2": "value2"
// }
// }
//}
}
lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 46 bits physical, 57 bits virtual
CPU(s): 24
On-line CPU(s) list: 0-23
Thread(s) per core: 2
Core(s) per socket: 12
Socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 106
Model name: Intel(R) Xeon(R) Silver 4310 CPU @ 2.10GHz
Stepping: 6
CPU MHz: 800.000
CPU max MHz: 3300.0000
CPU min MHz: 800.0000
BogoMIPS: 4200.00
Virtualization: VT-x
L1d cache: 576 KiB
L1i cache: 384 KiB
L2 cache: 15 MiB
L3 cache: 18 MiB
NUMA node0 CPU(s): 0-23
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Mitigation; Clear CPU buffers; SMT vulnerable
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2: Mitigation; Enhanced IBRS, IBPB conditional, RSB filling
Vulnerability Srbds: Not affected
Vulnerability Tsx async abort: Not affected
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmp
erf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 invpcid_single
intel_ppin ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust sgx bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a avx512f avx512dq rdseed adx smap avx512ifma clflushopt clwb intel_pt avx51
2cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local split_lock_detect wbnoinvd dtherm ida arat pln pts avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx5
12_bitalg tme avx512_vpopcntdq la57 rdpid sgx_lc fsrm md_clear pconfig flush_l1d arch_capabilities
sh -c dmesg | grep microcode
[ 0.000000] microcode: microcode updated early to revision 0xd000363, date = 2022-03-30
[ 1.810276] microcode: sig=0x606a6, pf=0x1, revision=0xd000363
[ 1.810420] microcode: Microcode Update Driver: v2.2.
sh -c lsmod | grep -i sgx
graphene_sgx 16384 0
isgx 57344 0
sh -c dmesg | grep -i sgx
[ 1.651752] sgx: EPC section 0x2000c00000-0x207f7fffff
[582828.898903] isgx: loading out-of-tree module taints kernel.
[582828.899024] isgx: module verification failed: signature and/or required key missing - tainting kernel
[582828.900899] intel_sgx: Intel SGX Driver v2.11.0
[582828.900935] UBSAN: shift-out-of-bounds in /root/linux-sgx-driver/sgx_main.c:224:11
[582828.901027] sgx_drv_probe.cold+0x165/0x51e [isgx]
[582828.901116] ? sgx_get_unmapped_area+0xa0/0xa0 [isgx]
[582828.901138] init_sgx_module+0x2f/0x90 [isgx]
[582828.901394] intel_sgx INT0E0C:00: EPC bank 0x2000c00000-0x207f800000
[582828.931209] intel_sgx: second initialization call skipped
[583052.613319] ksgxswapd: done
[583052.667774] intel_sgx: second release call skipped
[583053.558417] intel_sgx: Intel SGX Driver v2.11.0
[583053.558456] UBSAN: shift-out-of-bounds in /root/linux-sgx-driver/sgx_main.c:224:11
[583053.558547] sgx_drv_probe.cold+0x165/0x51e [isgx]
[583053.558636] ? sgx_get_unmapped_area+0xa0/0xa0 [isgx]
[583053.558657] init_sgx_module+0x2f/0x90 [isgx]
[583053.558994] intel_sgx INT0E0C:00: EPC bank 0x2000c00000-0x207f800000
[583053.589763] intel_sgx: second initialization call skipped
[583053.605680] gsgx: Graphene SGX Driver v0.10-2.1
service aesmd status
● aesmd.service - Intel(R) Architectural Enclave Service Manager
Loaded: loaded (/lib/systemd/system/aesmd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2022-07-28 09:29:48 CST; 2 weeks 3 days ago
Main PID: 293306 (aesm_service)
Tasks: 4 (limit: 151666)
Memory: 3.2M
CGroup: /system.slice/aesmd.service
└─293306 /opt/intel/sgx-aesm-service/aesm/aesm_service
7月 28 09:29:48 sdibc-Super-Server systemd[1]: Starting Intel(R) Architectural Enclave Service Manager...
7月 28 09:29:48 sdibc-Super-Server aesm_service[293305]: aesm_service: warning: Turn to daemon. Use "--no-daemon" option to execute in foreground.
7月 28 09:29:48 sdibc-Super-Server systemd[1]: Started Intel(R) Architectural Enclave Service Manager.
7月 28 09:29:48 sdibc-Super-Server aesm_service[293306]: [get_qpl_handle ../qe_logic.cpp:294] Cannot open Quote Provider Library libdcap_quoteprov.so.1 and libdcap_quoteprov.so
7月 28 09:29:48 sdibc-Super-Server aesm_service[293306]: The server sock is 0x55e7ba9683e0
8月 15 08:43:36 sdibc-Super-Server aesm_service[293306]: [get_platform_quote_cert_data ../qe_logic.cpp:378] Error returned from the p_sgx_get_quote_config API. 0xe019
8月 15 08:45:21 sdibc-Super-Server aesm_service[293306]: [get_platform_quote_cert_data ../qe_logic.cpp:378] Error returned from the p_sgx_get_quote_config API. 0xe011
8月 15 08:45:22 sdibc-Super-Server aesm_service[293306]: [get_platform_quote_cert_data ../qe_logic.cpp:378] Error returned from the p_sgx_get_quote_config API. 0xe011
8月 15 09:10:43 sdibc-Super-Server aesm_service[293306]: [get_platform_quote_cert_data ../qe_logic.cpp:378] Error returned from the p_sgx_get_quote_config API. 0xe011
8月 15 09:10:44 sdibc-Super-Server aesm_service[293306]: [get_platform_quote_cert_data ../qe_logic.cpp:378] Error returned from the p_sgx_get_quote_config API. 0xe011
sh -c apt list --installed | grep -e sgx -e dcap
gramine-dcap-ratls-dcap/stable,now 1.2-1 amd64 [installed,automatic]
gramine-dcap-ratls-epid/stable,now 1.2-1 amd64 [installed,automatic]
gramine-dcap/stable,now 1.2-1 amd64 [installed]
libsgx-ae-epid/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
libsgx-ae-id-enclave/unknown,now 1.14.100.3-focal1 amd64 [installed,automatic]
libsgx-ae-le/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
libsgx-ae-pce/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
libsgx-ae-qe3/unknown,now 1.14.100.3-focal1 amd64 [installed,automatic]
libsgx-ae-qve/unknown,now 1.14.100.3-focal1 amd64 [installed,automatic]
libsgx-aesm-ecdsa-plugin/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
libsgx-aesm-epid-plugin/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
libsgx-aesm-launch-plugin/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
libsgx-aesm-pce-plugin/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
libsgx-aesm-quote-ex-plugin/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
libsgx-dcap-default-qpl/unknown,now 1.14.100.3-focal1 amd64 [installed]
libsgx-dcap-ql/unknown,now 1.14.100.3-focal1 amd64 [installed]
libsgx-dcap-quote-verify/unknown,now 1.14.100.3-focal1 amd64 [installed,automatic]
libsgx-enclave-common/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
libsgx-epid/unknown,now 2.17.100.3-focal1 amd64 [installed]
libsgx-launch/unknown,now 2.17.100.3-focal1 amd64 [installed]
libsgx-pce-logic/unknown,now 1.14.100.3-focal1 amd64 [installed,automatic]
libsgx-qe3-logic/unknown,now 1.14.100.3-focal1 amd64 [installed,automatic]
libsgx-quote-ex/unknown,now 2.17.100.3-focal1 amd64 [installed]
libsgx-urts/unknown,now 2.17.100.3-focal1 amd64 [installed,upgradable to: 2.17.100.3-focal1]
sgx-aesm-service/unknown,now 2.17.100.3-focal1 amd64 [installed,automatic]
sgx-dcap-pccs/unknown,now 1.14.100.3-focal1 amd64 [installed]
stdbuf -oL ./testapp_host enclave.signed
CPUSVN: 05080c0cffff00000000000000000000
[get_platform_quote_cert_data ../qe_logic.cpp:378] Error returned from the p_sgx_get_quote_config API. 0xe011
2022-08-15T09:12:49+0800.605114Z [(H)ERROR] tid(0x7f26a5319280) | quote3_error_t=SGX_QL_NO_PLATFORM_CERT_DATA
(oe_result_t=OE_PLATFORM_ERROR) [/openenclave/host/sgx/sgxquote.c:oe_sgx_qe_get_target_info:706]
2022-08-15T09:12:49+0800.605159Z [(H)ERROR] tid(0x7f26a5319280) | :OE_PLATFORM_ERROR [/openenclave/host/sgx/quote.c:sgx_get_qetarget_info:37]
2022-08-15T09:12:49+0800.605220Z [(E)ERROR] tid(0x7f26a5319280) | enclave.signed::OE_PLATFORM_ERROR [/openenclave/enclave/core/sgx/report.c:oe_get_remote_report:283]
2022-08-15T09:12:49+0800.605258Z [(E)ERROR] tid(0x7f26a5319280) | enclave.signed::OE_PLATFORM_ERROR [/openenclave/enclave/core/sgx/report.c:_oe_get_report_internal:388]
2022-08-15T09:12:49+0800.605296Z [(E)ERROR] tid(0x7f26a5319280) | enclave.signed::OE_PLATFORM_ERROR [/openenclave/enclave/core/sgx/report.c:oe_get_report_v2_internal:443]
2022-08-15T09:12:49+0800.605351Z [(E)ERROR] tid(0x7f26a5319280) | enclave.signed:SGX Plugin _get_report(): failed to get ecdsa report. OE_PLATFORM_ERROR (oe_result_t=OE_PLATFORM_ERROR) [/openenclave/enclave/sgx/attester.c:_get_report:324]
2022-08-15T09:12:49+0800.605387Z [(E)ERROR] tid(0x7f26a5319280) | enclave.signed::OE_PLATFORM_ERROR [/openenclave/enclave/sgx/report.c:oe_get_report_v2:192]
ERROR: get remote report: OE_PLATFORM_ERROR
stdbuf -oL ./testapp_host enclave.signed
CPUSVN: 05080c0cffff00000000000000000000
[get_platform_quote_cert_data ../qe_logic.cpp:378] Error returned from the p_sgx_get_quote_config API. 0xe011
2022-08-15T09:12:50+0800.632893Z [(H)ERROR] tid(0x7f9d01e02280) | quote3_error_t=SGX_QL_NO_PLATFORM_CERT_DATA
(oe_result_t=OE_PLATFORM_ERROR) [/openenclave/host/sgx/sgxquote.c:oe_sgx_qe_get_target_info:706]
2022-08-15T09:12:50+0800.632935Z [(H)ERROR] tid(0x7f9d01e02280) | :OE_PLATFORM_ERROR [/openenclave/host/sgx/quote.c:sgx_get_qetarget_info:37]
ERROR: get remote report: OE_PLATFORM_ERROR
Use docker logs pccs
, the output of two program runs is the same.
2022-08-15 00:45:21.989 [info]: Client Request-ID : d9af6be30899497aba2c5066202a16e2
2022-08-15 00:45:22.864 [info]: Request-ID is : b36cf9b66bee493e8656355153bfcb4c
2022-08-15 00:45:22.866 [error]: Error: No cache data for this platform.
at Proxy.getPckCertFromPCS (/opt/intel/pccs/services/logic/commonCacheLogic.js:86:11)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at async LazyCachingMode.getPckCertFromPCS (/opt/intel/pccs/services/caching_modes/cachingMode.js:126:12)
at async Proxy.getPckCert (/opt/intel/pccs/services/pckcertService.js:115:16)
at async getPckCert (/opt/intel/pccs/controllers/pckcertController.js:77:25)
2022-08-15 00:45:22.869 [info]: 172.17.0.1 - - [15/Aug/2022:00:45:22 +0000] "GET /sgx/certification/v3/pckcert?qeid=7DC215DC377C9B160ABBC0AA2C0E919C&encrypted_ppid=1F9B2278C5AA6DE4AEAF781D3D0C60C4CBB8A77826357DDBD463232D7322F74BDB19028A818EAE6ED37A34F84C2BB271A6988F4CBF431B9D3BAD09061FE11F0DE7BA4C1C7D452CFA3B10A2C6990711DA4B8F59D2C78C94BCB2CE9A83D916299076D0AD6776900D0CA9513C7FEFA2E99616BC839CA97A218F21DD0C94175DC9BCB8CCB4E58A3A9ACDCFB064B0E568FF033B1F293635EA3BF162496976D2B7FBB25424CF03464AF60A52EAE0A4359D023404AAC5FA4A207D542B492FE2ECEF3F76EB2A3131A14D8E9FA7F0C527F70EE4297210003B4051FBB24D1441307A9B04BDC22AAD692A916510A60F739AFCDA23DA9689AFBEC993C94B8F096C3D36270CB77D04DA89294DD5883657C50F482BF6C78ED733E49017DD205C139970ECEB51FC1F58C9BA89D13AB692F59C56FA673D761616E8ACAEF2745BC0526B2EAA5146A71F3B8B844A54FE66DBA36463B76A4A6E6A157FC5A290103FCFBC3BF35F28984AA3AED48DD4E22D2E7C186506F81A81AA8122DF2788A08216ADF2092C94FC65F6&cpusvn=05080C0CFFFF00000000000000000000&pcesvn=0D00&pceid=0000 HTTP/1.1" 404 32 "-" "-"
2022-08-15 01:00:01.062 [info]: Request-ID is : 4d2f7c6c149b4ff893a43ad387dc76e2
2022-08-15 01:00:01.878 [info]: Request-ID is : d676836344374e818f8dbce887c0dd21
2022-08-15 01:00:03.721 [info]: Scheduled cache refresh is completed successfully.
2022-08-15 01:10:42.628 [info]: Client Request-ID : e2e983c2c8444491b25e61ead956aa0b
2022-08-15 01:10:43.535 [info]: Request-ID is : 4be70ae5553f412eae6d3955dfce2a61
2022-08-15 01:10:43.536 [error]: Error: No cache data for this platform.
at Proxy.getPckCertFromPCS (/opt/intel/pccs/services/logic/commonCacheLogic.js:86:11)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
at async LazyCachingMode.getPckCertFromPCS (/opt/intel/pccs/services/caching_modes/cachingMode.js:126:12)
at async Proxy.getPckCert (/opt/intel/pccs/services/pckcertService.js:115:16)
at async getPckCert (/opt/intel/pccs/controllers/pckcertController.js:77:25)
2022-08-15 01:10:43.539 [info]: 172.17.0.1 - - [15/Aug/2022:01:10:43 +0000] "GET /sgx/certification/v3/pckcert?qeid=7DC215DC377C9B160ABBC0AA2C0E919C&encrypted_ppid=1F9B2278C5AA6DE4AEAF781D3D0C60C4CBB8A77826357DDBD463232D7322F74BDB19028A818EAE6ED37A34F84C2BB271A6988F4CBF431B9D3BAD09061FE11F0DE7BA4C1C7D452CFA3B10A2C6990711DA4B8F59D2C78C94BCB2CE9A83D916299076D0AD6776900D0CA9513C7FEFA2E99616BC839CA97A218F21DD0C94175DC9BCB8CCB4E58A3A9ACDCFB064B0E568FF033B1F293635EA3BF162496976D2B7FBB25424CF03464AF60A52EAE0A4359D023404AAC5FA4A207D542B492FE2ECEF3F76EB2A3131A14D8E9FA7F0C527F70EE4297210003B4051FBB24D1441307A9B04BDC22AAD692A916510A60F739AFCDA23DA9689AFBEC993C94B8F096C3D36270CB77D04DA89294DD5883657C50F482BF6C78ED733E49017DD205C139970ECEB51FC1F58C9BA89D13AB692F59C56FA673D761616E8ACAEF2745BC0526B2EAA5146A71F3B8B844A54FE66DBA36463B76A4A6E6A157FC5A290103FCFBC3BF35F28984AA3AED48DD4E22D2E7C186506F81A81AA8122DF2788A08216ADF2092C94FC65F6&cpusvn=05080C0CFFFF00000000000000000000&pcesvn=0D00&pceid=0000 HTTP/1.1" 404 32 "-" "-"
According to sdibc-Super-Server aesm_service[293306]: [get_qpl_handle ../qe_logic.cpp:294] Cannot open Quote Provider Library libdcap_quoteprov.so.1 and libdcap_quoteprov.so
.Is the problem caused by this library?
The tool's output is truncated at the end. Can you post the rest, too?
As a side note:
sh -c lsmod | grep -i sgx graphene_sgx 16384 0 isgx 57344 0
You should uninstall these two drivers because they aren't required on an SGX-FLC machine with kernel >= 5.11. But it's probably unrelated to your problem.
I waited for ten minutes,but the tool stopped printing after this error .
Okay. Can you post the output of just ./sgx-troubleshoot
without arguments then?
root@sdibc-Super-Server:~# ./sgx-troubleshoot
SGX troubleshooter by Edgeless Systems (build timestamp: 1660496020)
CPU name Intel(R) Xeon(R) Silver 4310 CPU @ 2.10GHz
CPU supports SGX true
CPU supports SGX-FLC true
SGX enabled in BIOS/Hypervisor true
SGX2 true
EPC size MiB 2028
SMT/Hyper-threading true
uname Linux sdibc-Super-Server 5.15.0-41-generic #44~20.04.1-Ubuntu SMP Fri Jun 24 13:27:29 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Cloud
/dev mount options rw,nosuid,relatime,size=64711284k,nr_inodes=16177821,mode=755,inode64
Current user root
Users of group sgx_prv aesmd
AESM status active
AESM socket Srwxrwxrwx
Value of SGX_AESM_ADDR (not set)
PCCS URL https://localhost:8081/sgx/certification/v3/
PCCS use secure cert false
PCSS API version
PCCS connection not tested
sys_vendor Supermicro
board_vendor Supermicro
board_name X12DPi-N6
board_version 1.00
bios_vendor American Megatrends International, LLC.
bios_version 1.1c
bios_date 08/30/2021
bios_release 5.22
/dev drwxr-xr-x
/dev/sgx drwxr-xr-x
/dev/sgx_enclave Dcrw-rw-rw-
/dev/sgx/enclave Lrwxrwxrwx ../sgx_enclave
/dev/sgx_provision Dcrw-rw----
/dev/sgx/provision Lrwxrwxrwx ../sgx_provision
/dev/isgx Dcrw-rw-rw-
Quote providers:
/usr/lib/x86_64-linux-gnu/libdcap_quoteprov.so => /usr/lib/x86_64-linux-gnu/libdcap_quoteprov.so.1.13.100.3
/usr/lib/x86_64-linux-gnu/libdcap_quoteprov.so.1
/usr/lib/x86_64-linux-gnu/libdcap_quoteprov.so.1.13.100.3
For full diagnostics, run: ./sgx-troubleshoot -v -test-all
That's all output.
According to the ouput, the bios_version is 1.1c. There seems to be an update to 1.2a: https://www.supermicro.com/en/support/resources/downloadcenter/firmware/MBD-X12DPi-N6 This might fix the problem.
I have some questions.When I use EGO to compile the program, it can only use GOROOT, or can i use GOPATH like go. Maybe I might need to use go mod to manage dependency
Since Go 1.16 you need to set GO111MODULE=off to use GOPATH. This should work with EGo, too.
The BIOS has been updated to the latest version, but the issue remains the same.
Do you use the Docker image that we provide as PCCS? I just updated it. It now prints more error messages. You can update it with
docker pull ghcr.io/edgelesssys/pccs
Then start a new container of it, run the remote attestation sample or the sgx-troubleshoot tool and look at the PCCS output.
I have updated the docker image,and these are the output.
2022-08-25 02:19:25.084 [info]: Client Request-ID : 4da341c9acfa4bdb80ae6c6952d02be7
2022-08-25 02:19:25.929 [info]: Request-ID is : e2891898034f486ea5633cfa57e748a4
2022-08-25 02:19:25.930 [error]: Intel PCS server returns error(404).
2022-08-25 02:19:25.930 [error]: Intel PCS server returns error. Error code : 404
2022-08-25 02:19:25.930 [error]: Error: No cache data for this platform.
at Proxy.getPckCertFromPCS (/opt/intel/pccs/services/logic/commonCacheLogic.js:92:11)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async LazyCachingMode.getPckCertFromPCS (/opt/intel/pccs/services/caching_modes/cachingMode.js:126:12)
at async Proxy.getPckCert (/opt/intel/pccs/services/pckcertService.js:115:16)
at async getPckCert (/opt/intel/pccs/controllers/pckcertController.js:77:25)
2022-08-25 02:19:25.933 [info]: 172.17.0.1 - - [25/Aug/2022:02:19:25 +0000] "GET /sgx/certification/v3/pckcert?qeid=DE0F8D65522EA9C0BBD80BC29F107806&encrypted_ppid=9C31076EF92DE5320E939AA464AA606850C9108A796DA219F2A6307B643C6D2631850F4A99049029079CB18B401574B1D49D401448F1020A9A4CBE6E72C20BA2BA2329A28264259F99A8C2A34763C0EC5FCD0760F1D2FED89664C04B984EABDAC85FD6BEC85C1AF6983CA353B0DB6AAF12F82FF22AAC43E618E9B327884D87EF94274C7F8C65D25EF47FEB804CA9BABEB6629F4B9050891A9BAD6AE40123B45A9AA015E0C4B168A1D3A2BF29F1892851193E0880D0DB9FE30E7275B42775A8C059B34EF9FA0A77AB6B0AA06BFBE9C457CA1DE302A60905B18BD5238643D338A41498F1BB49CA95EF5CEF891032194B5858FE7AE763FA7BFFCB1D6B07944C721C8889EF1315E5D6A17C9A110D1480F4F19BF2555EB8196375E058B3943B2F44A0B2D3E269461AA977F78AFC0C12CE57E50CFDE564184B44D25E816B16191BEE0593D3686E2E1FC445EAFFC172EC880F0FB269AC7AB60496AB3443F6BF02013DAE293710D3A6C87FECA374439B1EAFBA11B3B5D945C5A0361890FAEBA7B9367B35&cpusvn=09090F0EFFFF00000000000000000000&pcesvn=0D00&pceid=0000 HTTP/1.1" 404 32 "-" "-"
Please follow the instructions at https://www.supermicro.com/manuals/other/X12DP_X12SP_Intel_SGX_Support.pdf
If this doesn't fix the problem, you may need to register your platform as described in https://download.01.org/intel-sgx/latest/dcap-latest/linux/docs/Intel_SGX_DCAP_Multipackage_SW.pdf
I'v installed ego using release binary and run helloworld successfully. But I got error while running remote-attestation and attestation-tls exmaple. Please help me to solve this problem.Thanks