【SGX系列教程】(一)Intel-SGX SDK在ubuntu22.04下安装全流程

发布时间:2024年01月24日

一.概述

??Intel Software Guard Extensions (Intel SGX) 是一项由英特尔提供的技术,旨在保护应用程序开发人员选择的代码和数据免受泄露或修改。

1.1 SGX三大组件

??Linux Intel SGX 软件栈由 IntelSGX 驱动程序Intel SGX SDK Intel SGX 平台软件 (PSW) 组成。

  1. Intel? SGX Software Development Kit (SDK): 这个SDK帮助软件开发人员创建使用Intel SGX技术的应用程序。它提供了一组工具、库和文档,使开发人员能够在应用程序中利用SGX的安全功能,包括创建和管理SGX enclaves(安全容器)、进行加密操作和进行远程验证等。

  2. Intel? SGX Platform Software (PSW) for Linux* OS: 这个软件提供了在Linux操作系统上运行Intel SGX应用程序所需的软件模块。它包括驱动程序、库和运行时组件,为SGX应用程序提供了必要的运行环境和安全保护机制。PSW负责管理SGX enclaves的创建加载执行,并提供与硬件的接口交互,以实现SGX的安全功能

  3. Intel? SGX Data Center Attestation Primitives (DCAP) for Linux* OS: 这个软件提供了在数据中心环境中进行SGXIntel应用程序验证的软件模块。DCAP为应用程序提供了进行数据中心内的验证和信任建立所需的功能。它包括用于生成验证传输证明数据的API和工具,确保SGX enclaves的真实性和完整性,并帮助应用程序与远程系统进行安全交互。

??这些软件组件共同构成了Intel SGX技术的开发和运行环境。SDK提供了开发SGX应用程序所需的工具和资源,PSW为应用程序提供了在Linux操作系统上运行的基础设施,而DCAP为数据中心内的SGX应用程序提供了验证和信任建立的支持。这些组件协同工作,使开发人员能够利用Intel SGX的安全功能来保护和保障应用程序的安全性。

1.2 SGXDataCenterAttestationPrimitives

??SGXDataCenterAttestationPrimitives驱动程序专门针对支持Flexible Launch Control (FLC)和Intel AES New Instructions (AES-NI)的平台。FLC是一种安全特性,有助于保护SGX enclave启动过程的完整性,而AES-NI为加密操作提供了硬件加速
??该驱动程序为数据中心环境中的Intel SGX enclave提供了证明能力。它支持两种类型的证明:

  1. 基于椭圆曲线数字签名算法(ECDSA)的证明:ECDSA是一种广泛使用的公钥密码算法。它允许生成和验证数字签名,用于证明SGX enclave的真实性和完整性。

  2. 基于增强隐私识别(EPID)的证明:EPID是一种保护隐私的证明方案,允许远程方验证SGX enclave的完整性,同时不泄露被验证平台的身份。EPID-based的证明旨在提供强大的安全保证同时保持隐私。

??SGXDataCenterAttestationPrimitives项目提供了在Linux SGX软件栈中支持这些证明机制所需的组件和功能。它使在支持SGX的平台上运行的应用程序能够建立信任,并与远程系统或服务进行安全交互。

二.安装流程

?? 尽管官方文档给了较为详细的安装教程,但是由于官方文档是英文的,并且有太多琐碎的细节,对于新手小白并不友好。因此将本人亲自安装使用的全流程进行总结,并将持续进行源码分析,与大家共享;下面将按照以下顺序详细介绍Intel SGX SDK的安装、测试、使用的全流程,助力每一个小白能够轻松上手Intel SGX的使用开发,本文以ubuntu22.04系统为例。

  1. 检查服务器是否支持SGX;
  2. sgx硬件/软件开启;
  3. sgx dirver驱动安装;
  4. sgx sdk安装;
  5. sgx psw安装;
  6. demo测试;
  7. Sample源码分析;

2.1 检查服务器是否支持SGX

?? 由于SGX的使用需要Intel CPU的硬件支持,因此在安装SDK和测试使用之前,需要先检测当前CPU是否支持SGX功能,若支持则需要先开启CPU的SGX。

方法1:使用cpuid命令查看是否支持SGX:

cpuid --one-cpu | grep -i sgx

在这里插入图片描述

  • 如果输出为空,则表示不支持,可以使用simulation mode,但该模式不能用于发布版环境。
  • 如果输出中包含SGX_LC: SGX launch config supported = true,则支持DCAP(数据中心标记基元,即远程认证服务)功能。FLC 即 Flexible Launch Control。
  • 上述输出中SGX1 supported = true表示SGX已经开启。

方法2:使用代码test-sgx.c测试是否支持SGX:

  • 下载源码:

git clone https://github.com/ethernity-cloud/mvp-pox-node.git

  • 进入目录:

cd mvp-pox-node

  • 执行程序:

./utils/linux/test-sgx

如果输出下面类似的结果表示已经开启成功:
在这里插入图片描述
如果sgx 1 supported不为1,至少MaxEnclaveSize_64是大于0的。

2.2 sgx硬件/软件开启方法

首先检查BIOS是以UEFI模式启动的,不能以legacy模式启动,因为:

  • 在 Legacy 模式下启动的系统无法执行软件启用,因为该过程取决于 EFI 变量。
  • 可以通过在 UEFI 模式下启动 Linux Live CD,然后执行软件启用来启用 Legacy 模式系统。 英特尔 SGX 启用发生在平台级别,而不是操作系统级别。
  • EFI 文件系统,如果您的 Linux 系统以 UEFI 模式启动,则默认情况下应安装该文件系统。

方法1:BIOS 启动SGX:

不同的BIOS操作不同,示例如下:

  • BIOS下enable SGX:【System Configuration】 → BIOS/Platform Configuration (RBSU) → System Options → Processor Options → Intel Software Guard Extensions (SGX)】→ 启动。
  • 如果在BIOS中没有设置SGX的地方,且芯片是支持SGX的,可以升级BIOS版本或者找服务器售后了解情况。

方法2:软启动 SGX:

?? 如果SGX在BIOS中提示“软件控制”,则可以使用下面的软起动方法启动SGX。具体说明可以参考:无法在 BIOS 或通过软件应用程序启用英特尔? Software Guard Extensions(英特尔? SGX)
?? 这里通过一段C程序软启动系统SGX,非常简单!

gcc sgx_enable.c -o sgx_enable
./sgx_enable

  • 执行之后重启设备,即可启动!!!

2.3 sgx dirver驱动安装;

2.3.1 linux-sgx-driver驱动程序

??linux-sgx-driver项目是Linux Intel SGX软件栈的另一个外部驱动程序,用于支持没有Flexible Launch Control (FLC)的平台上的增强隐私识别(EPID)基于证明,直到驱动程序上游过程完成为止。
??这个驱动程序可以用于支持早期的 SGX-capable 的CPU,这些CPU没有Flexible Launch Control (FLC)功能。然而,请注意该驱动程序的ABI与上游的SGX内核补丁不同。因此,将使用该驱动程序的软件迁移到未来支持SGX的内核可能需要额外的工作量。
??对于那些不支持FLC的平台,linux-sgx-driver项目提供了所需的驱动程序功能,以支持EPID基于证明的功能。EPID是一种隐私保护的证明方案,允许远程方验证SGX enclave的完整性,同时不泄露被验证平台的身份。
??这个驱动程序允许在不支持FLC的平台上进行SGX enclave的EPID证明。它提供了必要的组件和功能,使这些平台上的应用程序能够与远程系统或服务建立安全信任,并进行受保护的通信。
??与SGXDataCenterAttestationPrimitives项目类似,linux-sgx-driver项目也是一个临时解决方案,直到驱动程序被合并到官方Linux内核中。这些驱动程序为使用Intel SGX技术的应用程序提供了在非FLC平台上进行EPID证明的能力。

2.3.2 Intel SGX Support in the Linux Kernel(linux内核支持SGX)

??自从 Linux 内核版本 5.11 发布以来,主线 Linux 内核已经内置了 Intel SGX 支持。内核内置的 Intel SGX 驱动程序需要平台支持并配置为灵活启动控制(flexible launch control - FLC)。因此推荐尽可能使用带有 Intel SGX 支持的主线linux内核。

??对于特殊用例,还有两个其他的内核空间选项可供选择:

  1. 如果您的发行版内核版本早于 5.11 或不支持内核内置的 Intel SGX,您可以使用 Intel SGX DCAP 驱动程序作为临时解决方案,然后过渡到 5.11 或更高版本的内核。它提供了接近主线内核的接口,也需要平台支持并配置为 FLC。

  2. 如果您需要在不支持 FLC 的平台上使用 Intel SGX,Intel SGX for Linux OS 驱动程序项目提供了一个非内核驱动程序(out-of-tree driver)。该驱动程序用于支持在仅支持传统启动控制的平台上运行 Intel SGX enclave。它也可以安装在配置了 FLC 的平台上,但这些平台只能加载符合传统启动控制策略的生产 enclave。

??注意:尽管Intel SGX SDK和平台软件与所有这些驱动程序兼容,但传统的非FLC驱动程序和Intel SGX DCAP驱动程序仅针对关键的安全修复进行更新。由于 out-of-tree 实现的限制,主线内核中实现的新特性或功能无法移植到传统的非FLC驱动程序或Intel SGX DCAP驱动程序。

2.3.3 Platform Uses Legacy Launch

??传统启动(Legacy Launch)是指在平台配置中,需要由Intel签名的启动信封提供一个启动令牌。平台(可以是虚拟机或裸机平台)是否需要传统启动取决于两个因素

  • 平台硬件和配置:所有配置了Intel? SGX支持的平台都有能力支持传统启动;然而,只有支持Intel? SGX启动配置 – Launch Configuration(在CPUID[7].ECX[SGX_LC]中详细说明,其中SGX_LC位为第30位)并配置了Intel? SGX启动控制(在IA32_FEATURE_CONTROL MSR中的第17位指定,由BIOS配置)的平台才能在不使用传统启动的情况下运行。详细信息请参阅Intel?软件开发手册。

  • Linux内核中的Intel? SGX支持:可以通过对内核打补丁或安装驱动程序来在Linux内核中支持Intel? SGX。此外,目前有两个支持的Intel? SGX驱动程序。因此,有三种选项来配置Intel? SGX启动平台:

  1. 内核驱动程序:内核已经打了补丁以支持Intel? SGX。这只能在能够支持Intel? SGX启动配置并启用了该功能的平台上运行。

  2. DCAP驱动程序:DCAP驱动程序是Linux内核模式驱动程序,模拟了内核驱动程序的解决方案。与内核驱动程序类似,DCAP驱动程序只能在能够支持Intel? SGX启动配置并启用了该功能的平台上运行。

  3. Out-of-Tree驱动程序:Out-of-Tree驱动程序的命名有些不准确,因为DCAP驱动程序也是提供的Out-of-Tree驱动程序;然而,该驱动程序可以在所有平台上运行,无论是否支持或启用了Intel? SGX启动配置。因此,它支持传统启动。它有一个接口,在初始化一个信封时需要提供一个启动令牌。有关Intel? SGX启动令牌的更多信息,请参阅Intel?软件开发手册。

2.3.4 Launch Control

??为了配置运行Intel SGX Enclaves的平台,了解Launch Control是非常重要的,它是控制和限制Intel SGX enclaves启动的方法。Launch Control为应用程序提供令牌,允许它们启动enclaves。Launch Control有两种特征配置方式:

  1. Flexible Launch Control:支持Intel SGX Launch Control的平台,包括虚拟机,可以通过内核模式驱动程序配置为特定的enclave签名者。在许多情况下,驱动程序会为每个加载的enclave动态重新配置launch control,使enclave无需有效的Launch Token即可运行(有关Launch Token的更多信息,请参阅Intel? 64和IA-32 Architectures Software Developer Manuals)。

  2. Legacy Launch Control:不支持Intel SGX Launch Control或未通过BIOS配置为Flexible Launch Control的平台仍然可以使用传统(Legacy) Launch Control加载enclave。在这种模式下,需要使用Intel签名的Launch Enclave为驱动程序提供Launch Token以加载enclave。此外,必须将enclave所有者的MRSIGNER(所有者公共签名密钥的哈希值)添加到Intel的Launch Policy List中,以在release模式下运行enclave(有关Legacy Launch Control和添加MRSIGNER到Launch Policy List的更多详细信息,请参阅Intel? SGX Request License页面)。

??需要注意的是,Legacy Launch Control限制了哪些enclave可以在release模式下运行,但是它允许enclave在SGX debug模式下运行,而不管enclave所有者的MRSIGNER是否已添加到Launch Policy中。SGX debug模式允许开发和调试测试签名的debug enclaves。有关SGX debug模式enclave的更多信息,请参阅Intel? 64和IA-32 Architectures Software Developer Manuals。

2.3.5 三种驱动安装方式(基本都支持第一种:linux内核支持,直接跳过驱动安装部分,可不用看了)

??当使用Intel? SGX时,有三种不同的驱动程序可供选择:

  1. 内核驱动程序(/dev/{sgx_enclave, sgx_provision}):主线内核版本5.11或更高版本包括SGX内核驱动程序。内核驱动程序要求平台支持并配置为Flexible Launch Control

key tips:

  • 此驱动程序包含在主线内核版本5.11或更高版本中。
  • 它要求平台支持并配置为Flexible Launch Control
  • 内核驱动程序是推荐的选择(本机安装的是ubuntu22.04,linux内核是6.5.0-14-generic,亲测好用!)。
  • 它与内核进行本地集成,并利用后续内核版本支持的新功能,如EDMM(Enclave Dynamic Memory Management)、SGX KVM、SGX cgroups和NUMA感知的EPC(Enclave Page Cache)分配。
  1. DCAP驱动程序(/dev/{sgx_enclave, sgx_provision}):DCAP驱动程序的目标是提供接口接近于内核驱动程序,以便为没有将Intel SGX驱动程序集成到内核中的Linux操作系统提供Intel SGX支持。该驱动程序也需要平台支持并配置为 Flexible Launch Control 。由于该驱动程序支持的是一个外部实现,它不包括后续内核版本支持的新功能,如EDMM、SGX KVM、SGX cgroups和NUMA感知EPC分配。该驱动程序仅针对必要的安全修复进行更新。在可能的情况下,应使用内核驱动程序。

key tips:

  • DCAP(Data Center Attestation Primitives)驱动程序的目标是为没有在内核中集成Intel? SGX驱动程序的Linux操作系统提供类似的接口。
  • 类似于内核驱动程序,它要求平台支持并配置为Flexible Launch Control
  • 然而,DCAP驱动程序是一个外部实现,可能不包含较新内核版本支持的最新功能。它主要用于必要的安全修复。
  • 如果可用,建议使用内核驱动程序而不是DCAP驱动程序。

??DCAP驱动是推荐在Linux内核版本4.15到5.6之间(包括这两个版本)以及支持并配置了Flexible Launch Control的平台上使用的驱动程序。在使用SGX In-Kernel驱动程序的5.11或更高版本内核上安装DCAP驱动程序时,会出现构建错误消息:“无法安装带有内核内SGX支持的DCAP SGX驱动程序”。这个错误消息表示在启用了SGX In-Kernel驱动程序的情况下,无法安装DCAP驱动程序。因此,在使用5.11或更高版本的内核时,您应该选择使用SGX In-Kernel驱动程序而不是DCAP驱动程序。
??如果您的内核版本是5.11或更高版本,并且已启用了SGX In-Kernel驱动程序,那么您不需要安装DCAP驱动程序。您可以继续使用内核自带的SGX支持。请注意,在使用SGX In-Kernel驱动程序的情况下,建议使用的内核版本是5.11或更高版本,并且在支持Flexible Launch Control的平台上进行配置。如果您的平台不支持Flexible Launch Control或未进行配置,则可能无法正常使用SGX功能。

  1. 非内核驱动程序(/dev/isgx)(Out-of-Tree驱动):该驱动程序用于支持在仅支持Legacy Launch Control的平台上运行Intel? SGX enclaves。它也可以安装在配置为 Flexible Launch Control的平台上,但是这些平台只能加载符合Legacy Launch Control策略的enclave。

key tips:

  • 此驱动程序用于支持在仅支持Legacy Launch Control的平台上运行Intel? SGX enclaves。
  • 它也可以安装在配置为Flexible Launch Control的平台上,但在这种情况下,这些平台只能加载符合Legacy Launch Control策略的enclave。
  • 非内核驱动程序用于平台不具备原生Flexible Launch Control支持的情况。

??对于不支持或未配置Flexible Launch Control的平台,建议使用Out-of-Tree驱动程序。不建议在启用了FLC的平台上安装传统的Out-of-Tree驱动程序。如果在运行Kernel 5.11或更高版本的FLC平台上安装传统的Out-of-Tree驱动程序,安装会成功,但是Intel SGX PSW仅使用内核内驱动程序。
??此处可以下载别人已经已经编译好的驱动程序,具体流程如下:

  • step1: 从该地址下载驱动文件,可以使用wget命令下载,并且根据自己的linux版本找到对应的文件下载,这里是ubuntu22.04版本。

wget https://download.01.org/intel-sgx/latest/linux-latest/distro/ubuntu22.04-server/sgx_linux_x64_driver_2.11.54c9c4c.bin

  • step2: 到下载文件夹下输入下面命令,以赋予.bin文件的执行权限。

chmod 777 sgx_linux_x64_driver_2.11.54c9c4c.bin

  • step3: 运行该bin文件,完成驱动安装.

sudo ./sgx_linux_x64_driver_2.11.54c9c4c.bin

总结:需要根据平台的能力和配置选择适合的驱动程序。内核驱动程序是推荐且功能最丰富的选项,DCAP驱动程序可用于没有在内核中集成Intel? SGX驱动程序的系统。非内核驱动程序适用于仅支持Legacy Launch Control的平台。

2.4 sgx sdk安装

2.4.1 准备阶段

  • step1: 使用以下命令安装构建英特尔? SGX SDK 所需的工具:

sudo apt-get install build-essential ocaml ocamlbuild automake autoconf libtool wget python-is-python3 libssl-dev git cmake perl

?? 注意:要构建 Intel? SGX SDK,gcc 版本需要为 7.3 或更高版本,glibc 版本需要为 2.27 或更高版本。

  • step2: 安装编译SGX PSW要用到的工具:

sudo apt-get install libssl-dev libcurl4-openssl-dev protobuf-compiler libprotobuf-dev debhelper cmake reprepro unzip pkgconf libboost-dev libboost-system-dev libboost-thread-dev lsb-release libsystemd0

  • step3: 从仓库获取源码,到下载文件夹下,输入:

git clone https://github.com/intel/linux-sgx.git 或 git clone https://gitee.com/mirrors/linux-sgx.git(国内镜像)
cd linux-sgx && make preparation

?? 上面的代码make preparation将触发脚本download_prebuilt.sh下载预构建的二进制文件。您可能需要为wget脚本使用的工具设置 https 代理(如export https_proxy=http://test-proxy:test-port) 此处可能会因为网络原因执行失败,多次尝试make preparation后一般会成功。

  • step4: 把准备好的工具列表添加到全局变量中,方便之后编译工作的展开。到linux-sgx文件夹下,输入以下命令:

sudo cp external/toolset/{current_distr}/* /usr/local/bin

?? 注意:即使您之前将之前的操作工具复制到/usr/local/bin,上述操作也是必须的。它确保在以后的构建中使用更新的操作工具。将{current_distr}替换为当前的操作系统(如: ubuntu22.04)。再用下面这个语句检查是不是添加成功:

which ar as ld objcopy objdump ranlib

  • step5: 编译SGX SDK和SGX SDK安装工具(installer),进入linux-sgx文件夹,输入以下命令:

sudo make sdk

?? 运行完成后,再输入以下命令(安装工具):

sudo make sdk_install_pkg

?? 成功运行的话,在linux-sgx/linux/installer/bin文件夹下会有一个sgx_linux_x64_sdk_${version}.bin文件生成。

在这里插入图片描述

2.4.2 sdk安装

  • step1: 安装好需要用到的工具,输入以下命令:

sudo apt-get install build-essential python

  • step2: 安装sdk,进入linux-sgx文件夹,输入以下两条命令:

cd linux/installer/bin
sudo ./sgx_linux_x64_sdk_${version}.bin
注意:运行第二条命令时,它询问是否安装在当前文件夹的时候,最好选择“no”,然后输入/opt/intel/, 即将SGX SDK安装在/opt/intel/文件夹下。

  • step3: 安装完成后,根据提示输入source命令(根据提示输入source命令):

source ${sgx-sdk-install-path}/environment
本机: source /opt/intel/sgxsdk/environment

2.4.3 测试sdk是否安装成功(注意模拟模式下不需要SGX PSW包)

?? 在安装Intel SGX PSW包之前,我们先用模拟模式测试SGX SDK包是否安装正常。在模拟模式下编译并运行每个代码示例,以确保SGX SDK包运行良好:

$ cd ${sgx-sdk-install-path}/SampleCode/LocalAttestation
$ make SGX_MODE=SIM
The project has been built in simulation debug mode.

$ cd bin
$ ./app

但是,在执行make SGX_MODE=SIM编译过程中,报如下错误:
在这里插入图片描述
可以看出是SDK依赖库没有找到,但是sdk程序已经按照了,发现该库安装后在/opt/intel/sgxsdk/lib64/libsgx_uae_service_sim.so路径下,只是系统并不知道该库路径,因此将该库路径添加到系统配置中,也就是添加到/etc/ld.so.conf配置文件中(可以通过include的方式添加到其他一类文件中)。
在这里插入图片描述
添加完成后更新一下库链接:

ldconfig

再次编译(make SGX_MODE=SIM)、执行(./app)就没错误了,执行结果如下:

在这里插入图片描述

2.5 psw安装

?? SGX PSW 提供 3 项服务:启动基于 EPID 的证明算法无关的证明。从 2.8 版本开始,SGX PSW 被分成更小的软件包,用户可以选择安装哪些功能和服务。有两种方法可以安装所需的软件包:使用单个软件包或使用构建系统生成的本地repo。建议使用本地repo(本项目就采用本地repo,仅介绍该种方法),因为系统将自动解决依赖关系。目前,我们支持基于.deb和.rpm的repos。

2.5.1 使用默认配置构建SGX PSW:

make psw
make psw_install_pkg

执行之后会在/home/hututu/intel-sgx/linux-sgx/linux/installer/bin路径下生成sgx_linux_x64_psw_2.23.100.2.bin文件,如下图:
在这里插入图片描述

2.5.2 在相应文件夹中使用make命令构建每个Architecture Enclave

cd psw/ae/le
make

2.5.3 调用安装程序(执行sgx_linux_x64_psw_2.23.100.2.bin)

cd linux/installer/bin
./sgx_linux_x64_psw_2.23.100.2.bin

注意:需要执行该sgx_linux_x64_psw_2.23.100.2.bin文件之后,才会安装aesmd 服务:

在这里插入图片描述

2.5.4 命令行运行以下命令添加下载Intel sgx psw的下载路径(将以下库添加到源中):

echo ‘deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu jammy main’ | sudo tee /etc/apt/sources.list.d/intel-sgx.list

注意,ubuntu18中是bionic,20是focal,22是jammy,可以对应修改。

2.5.5 进入如下网址下载密钥intel-sgx-deb.key(获取 Debian 存储库公钥并将其添加到 apt 用于验证软件包的受信任密钥列表中):

https://download.01.org/intel-sgx/sgx_repo/ubuntu/

2.5.6 进入下载目录,通过如下命令添加进仓库:

sudo apt-key add intel-sgx-deb.key

运行后等一会儿看到【ok】就是运行成功。
在这里插入图片描述

2.5.7 更新一下apt-get的列表:

sudo apt-get update

如果系统报错deb无法识别,进入/etc/apt/sources.list.d目录,修改intel-sgx.list文件,去掉deb [arch=amd64] https://download.01.org/intel-sgx/sgx_repo/ubuntu focal main两侧的引号。

2.5.8 分别安装SGX PSW 提供的3个服务:

分别是launchEPID-based attestationAlgorithm agnostic attestation,输入以下命令:

启动服务:sudo apt-get install libsgx-launch libsgx-urts -y
基于EPID的认证服务:sudo apt-get install libsgx-epid libsgx-urts -y
与算法无关的证明服务:sudo apt-get install libsgx-quote-ex libsgx-urts -y
基于 DCAP ECDSA 的服务:sudo apt-get install libsgx-dcap-ql -y

2.5.9 demo测试psw是否安装成功

在硬件模式下编译并运行代码示例:

  • 首先准备一下编译环境,输入如下命令

source /opt/intel/sgxsdk/environment

  • 编译、执行:

cd ${sgx-sdk-install-path}/SampleCode/LocalAttestation
make
cd bin
./app

执行结果:
在这里插入图片描述

三.启动或停止 aesmd 服务

?? 英特尔? SGX PSW 安装程序会在您的计算机中安装 aesmd 服务,该服务在特殊的 Linux 帐户中运行aesmd。

停止服务:$ sudo service aesmd stop
启动服务:$ sudo service aesmd start
重新启动服务:$ sudo service aesmd restart
查看状态:$ sudo service aesmd status

在这里插入图片描述
在这里插入图片描述

四.SampleCode分析

参考文档

文章来源:https://blog.csdn.net/weixin_42700740/article/details/135715283
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。