详情页标题前

阿里云ECS云服务器使用Enclave构建机密计算环境-云淘科技

详情页1

本文介绍如何使用阿里云虚拟化Enclave创建一个可信的隔离空间,从而保护您的应用程序和数据的安全。

背景信息

数据一般分为三种形态:静态数据、传输中的数据以及使用中的数据。前两者可以通过加密等方式来保障数据安全;而使用中的数据的安全性保障十分困难,目前一般使用机密计算(Confidential Computing)来保护使用中的数据的安全性。

阿里云虚拟化Enclave在ECS实例内部提供一个可信的隔离空间,将合法软件的安全操作封装在一个Enclave中,保障您的代码和数据的机密性与完整性,不受恶意软件的攻击。

说明

阿里云虚拟化Enclave正在邀测中。您可以提交工单申请使用。

阿里云虚拟化Enclave适用于对敏感和机密数据有强保护需求的业务,例如金融服务、互联网、医疗等。

Enclave的工作原理

使用阿里云虚拟化Enclave构建机密计算环境的工作原理,是在ECS实例(即主VM)内切分计算资源(包括vCPU和内存),创建一个Enclave VM(简称EVM)作为可信执行环境。EVM的安全性保障体现在以下几方面:

  • 由底层虚拟化技术提供安全隔离,EVM和主VM之间隔离,并且和其他ECS实例也隔离。

  • EVM运行独立的、定制化的可信操作系统,没有持久化存储、交互式连接或外部网络通路,仅允许通过本地安全信道(基于vsock)与主VM进行通信,最大程度缩小攻击面。您可以将涉及机密数据的应用放入EVM中运行,通过安全调用的形式与运行在主VM上的应用进行交互。

阿里云虚拟化Enclave的工作原理图如下所示。

阿里云ECS云服务器使用Enclave构建机密计算环境-云淘科技

阿里云虚拟化Enclave提供的安全性由多个方面结合实现。底层基于带有TPM/TCM芯片的第三代神龙架构,且为EVM提供vTPM/vTCM设备来增强其安全性和可信能力;上层提供高兼容性的SDK,方便您快速搭建Enclave环境并使用。在可信证明能力方面,您可以对运行在机密执行环境中的代码进行验证,例如借助SDK,机密应用可在运行时生成证明材料(包括平台、应用信息、签名等),再通过远程证明服务端(可结合KMS)验证证明材料的有效性。当主VM切分资源给EVM,并且EVM开始运行时,底层会执行资源访问隔离,确保主VM无法访问这些已经切分出去的vCPU或内存资源,保障EVM的正常运行和私密性。

阿里云虚拟化Enclave功能的架构图如下所示。

阿里云ECS云服务器使用Enclave构建机密计算环境-云淘科技

使用限制

  • 仅g7、c7、r7支持阿里云虚拟化Enclave。

  • 每台ECS实例只允许创建一个Enclave。

  • 使用Enclave前,您必须至少为主VM保留一个处理器物理核以及部分内存,剩余的处理器和内存资源可以灵活地分配给Enclave。如果您开启了超线程,则代表保留了属于一个物理核的两个处理器超线程,因此启用Enclave特性的ECS实例至少需要具备4 vCPU。

其他通用限制,请参见使用限制。

通过工具集使用Enclave

  1. 安装Enclave Runtime工具集。

    Enclave Runtime工具集负责在主VM上管理Enclave的生命周期,包括Enclave的启动和终止。您可以通过以下任一方式安装:

    • 在创建ECS实例时勾选Enclave,自动安装Enclave Runtime工具集。阿里云ECS云服务器使用Enclave构建机密计算环境-云淘科技

      说明

      通过OpenAPI创建Enclave机密计算的ECS实例时,只能调用RunInstances实现,CreateInstance目前不支持设置机密计算模式参数(SecurityOptions.ConfidentialComputingMode)。

    • 在创建ECS实例后,运行以下命令,在主VM中安装Enclave Runtime工具集。

      sudo rpmkeys --import http://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7
      sudo yum install -y alinux-release-experimentals
      sudo yum install -y https://enclave.oss-cn-hangzhou.aliyuncs.com/de-platform-runtime-0.1.0-1.2.al7.x86_64.rpm

    安装Enclave Runtime后,本地服务会尝试自动拉起Enclave,默认的Enclave镜像存储于/usr/local/share/dragonfly/image.bin,您可以修改配置文件/etc/enclave.conf来变更镜像存储所在路径。配置文件还提供了更多的配置选项,包括分配给Enclave的vCPU和内存资源等。

  2. 初次手动安装后,运行以下命令将Enclave镜像下载保存到本地。

    wget -O /usr/local/share/dragonfly/image.bin \
      https://enclave-cn-shenzhen.oss-cn-shenzhen.aliyuncs.com/download/linux/enclave_image/x86_64/0.1.0/image-0.1.0.bin
  3. 运行systemctl命令,对Enclave进行操作。

    systemctl status de_platform_service # 查看运行状态
    systemctl start de_platform_service # 启动服务
    systemctl restart de_platform_service # 重启服务
    systemctl stop de_platform_service # 关闭服务

通过SDK使用Enclave

阿里云虚拟化Enclave提供了SDK,让您在启用了Enclave的ECS实例上开发自己的应用。阿里云虚拟化Enclave还提供了一组与SGX-SDK兼容的API接口定义和代码库,如果您已经有SGX应用,则只需经过少量迁移工作即可将应用运行在Enclave平台上。

  1. 在开发环境中准备以下Dockerfile文件。

    FROM registry.cn-hangzhou.aliyuncs.com/alinux/aliyunlinux
    RUN rpmkeys --import http://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7 \
        && yum install -y alinux-release-experimentals \
        && yum install -y devtoolset-9 wget openssl-devel zlib-devel patch git cmake3 \
          https://enclave.oss-cn-hangzhou.aliyuncs.com/de-platform-runtime-0.1.0-1.2.al7.x86_64.rpm \
          https://enclave.oss-cn-hangzhou.aliyuncs.com/teesdk-0.1.0-1.1.al7.x86_64.rpm \
        && yum clean all -y \
        && wget -O /devtoolset9_enable.sh \
          https://enclave.oss-cn-hangzhou.aliyuncs.com/devtoolset9_enable.sh \
        && chmod +x /devtoolset9_enable.sh
    WORKDIR /opt/app-root/src
    ENTRYPOINT ["/devtoolset9_enable.sh"]
  2. 运行以下命令,利用docker创建Enclave镜像。

    docker build -t deenclave/sdk-builder .

    执行成功后,自动生成名为deenclave/sdk-builder的镜像。您只需使用该镜像,即可进行DE Enclave的应用构建。阿里云提供了SDK示例供您参考。

SDK示例一:启动容器构建应用

阿里云提供了SDK示例程序,位于/opt/alibaba/teesdk/desdk/examples/SampleMath。该示例程序接收外部输入的两个平面坐标点,并在Enclave内计算两点之间的直线距离,最后将计算结果输出至控制台。您可以按照以下步骤完成示例操作。

  1. 运行以下命令,通过构建的docker镜像deenclave/sdk-builder启动容器。

    docker run -it \
      -v /opt/alibaba/teesdk/desdk/examples/SampleMath:/opt/app-root/src:z \
      deenclave/sdk-builder
  2. 在启动后的容器实例内,运行以下命令配置环境变量。

    source /opt/alibaba/teesdk/desdk/environment
  3. 在启动后的容器实例内,运行cmake命令对示例代码执行构建。

    cmake3 -B build && \
    cmake3 --build build

    构建成功后,应用和Enclave所在路径分别为/opt/app-root/src/build/SampleMath/App/app和/opt/app-root/src/build/SampleMath/Enclave/enclave.signed.so。

  4. 将应用上传至主VM。

  5. 在主VM上启动Enclave,并执行示例代码SampleMath,然后查看执行结果。

    [root@AliYun ~]# ./app
    A(3,4) -> B(1,8) -> 4.47214
    A(6,9) -> B(6,2) -> 7
    A(3,3) -> B(7,5) -> 4.47214

SDK示例二:通过Attestation生成证明材料

Attestation是一个认证的过程,您可以通过它来确保运行在Enclave中的镜像、操作系统和应用程序代码没有被修改或篡改。您可以在自己的Enclave应用代码内调用SDK提供的API接口生成证明材料,并将证明材料上传至远程证明服务进行验证,远程证明服务会将验证结果返回给调用者。

阿里云提供了以下示例,您可以使用与SDK示例一中SampleMath相同的方式构建并运行这些示例。

  • 生成证明材料的示例程序,位置在/opt/alibaba/teesdk/desdk/examples/QuoteGenerationSample。

  • 验证证明材料的示例程序,位置在/opt/alibaba/teesdk/desdk/examples/QuoteVerificationSample。

腾讯云1折,限时活动,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/150627.html

(0)
上一篇 2023年12月9日 下午4:35
下一篇 2023年12月9日 下午4:35
详情页2

相关推荐

  • 阿里云人工智能平台PAIRetinaNet优化案例2:结合Blade和Custom C++ Operator优化模型-云淘科技

    为了使检测模型后处理部分更加高效,您可以采用TorchScript Custom C++ Operators将Python代码实现的逻辑替换成高效的C++实现,然后再导出TorchScript模型进行Blade优化。本文介绍如何使用Blade对TorchScript Custom C++ Operator实现的后处理逻辑的检测模型进行优化。 背景信息 Ret…

    阿里云人工智能平台PAI 2023年12月10日
  • 阿里云日志服务SLS数据转换-云淘科技

    在使用统计图表进行格式化展示前,您可以通过数据转换对查询分析结果进行处理。例如合并多个查询分析结果、对查询分析结果进行分类等。 注意 仅统计图表(Pro版本)支持设置数据转换。日志服务支持的统计图表(Pro版本),请参见图表类型。 每个数据转换存在唯一的ID,采用字母T+大写字母的格式,例如TA、TB。 在设置数据转换前,必须已执行查询分析操作。更多信息,请…

    2023年12月10日
  • 阿里云容器服务ACK产品优势-云淘科技

    本文介绍容器服务ACK的优势以及自建Kubernetes的劣势。 ACK的优势 优势 说明 强大的集群管理 三种集群形态:ACK专有集群、ACK托管集群、ACK Serverless集群。 ACK托管集群的管控节点默认为3个可用区的高可用部署。 单集群支持千量级ECS节点。详细配额,请参见配额限制。 支持跨可用区集群以及注册外部集群。关于注册集群的介绍,请参…

    阿里云容器服务 2023年12月9日
  • 阿里云日志服务SLS无数据告警-云淘科技

    您可以使用无数据告警功能,用于避免采集过程中数据丢失无感知问题。 例如您创建了一个告警监控规则用于监控各个主机的CPU指标,并希望发生如下情况时,收到告警通知。 CPU使用率超过95%。 查询和分析结果中无数据。 具体配置如下所示: 查询统计:* | select promql_query_range(‘cpu_util’) from metrics lim…

    2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云日志服务SLS开启智能存储分层-云淘科技

    日志服务提供智能分层存储功能,降低您长周期存储的成本,并同时保证日志的查询、分析、可视化、告警、投递和加工等能力不受影响。分层存储数据的存储费用按照存储空间计费,数据转换不会产生费用。 功能说明 日志服务提供热存储、低频存储(原冷存储)和归档存储功能。 您可以在Logstore属性页面,开启智能分层存储功能,将热存储的数据转为低频存储或归档存储。 您可以在开…

    2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。