IBM Cloud Docs
教程: 将 Secure Build Server 与数字电子钱包配合使用

教程: 将 Secure Build Server 与数字电子钱包配合使用

在本教程中,您使用 IBM Cloud® Hyper Protect Virtual Servers Secure Build Server 来构建数字电子钱包应用程序,然后使用 Hyper Protect Virtual Servers 在公共云中部署生成的应用程序。

有关安全地构建您自己的映像的信息,请参阅 保护映像构建

目录

本教程中提供了以下信息:

Secure Build Server 基本概念

您可以使用 Secure Build Server 在 IBM Cloud Hyper Protect Virtual Servers提供的安全封套内构建可信容器映像。 相关可调度单元组高度隔离,这意味着软件开发者必须使用特定 API 来访问 Secure Build Server。 云管理员和云提供者无权访问安全相关可调度单元组或其内容 (例如,已构建的容器映像) 中的安全构建服务器。 由安全构建服务器创建的应用程序映像 (与其他相关构建输出 (例如清单文件和加密注册文件)) 高度可信。 它是高度可信的,因为安全构建服务器以加密方式对应用程序映像进行签名,清单文件和签名密钥保存在安全相关可调度单元组中。

要使用 Hyper Protect Secure Build 服务器构建容器映像,必须完成以下步骤:

  • 设置安全构建服务器实例,然后使用 CLI 在此实例上启动构建。
  • Secure Build Server 从 GitHub 存储库中提取源代码,在本例中,从 Digital Wallet 存储库中提取源代码。
  • Secure Build Server 使用源代码的 Dockerfile 来构建容器映像。
  • Secure Build Server 对容器映像进行签名,并将容器映像推送到 IBM Container Registry 或 Docker Hub。 仅使用 DCT 对 docker.io 映像进行签名,并且在使用 IBM Cloud® Container Registry (ICR) 时必须使用 Red Hat 签名,因为 ICR 仅支持映像的 Red Hat 签名。 遵循 对可信内容的映像进行签名中列出的步骤。
  • Secure Build Server 将创建清单文件并对其进行签名。 清单文件用于验证映像的源和构建的完整性。 它包含从中构建映像的源代码以及构建日志。 您可以从安全构建服务器下载清单文件,例如,将其用于审计目的或将其传递给审计员。 清单文件由保存在安全封套内的签名密钥进行签名。
  • 安全构建服务器将创建加密注册文件,该文件可用于使用自带映像 (BYOI) 在 Hyper Protect Virtual Servers 上供应应用程序实例。

安全构建服务器
图 1。 Hyper Protect Secure Build 服务器

注册文件指定访问容器注册表所需的容器注册表,应用程序映像和凭证。 注册文件已加密,只能由 Hyper Protect Virtual Servers 进行解密。

您可以自行下载并使用加密的注册文件,也可以将其传递给使用该注册文件和 Hyper Protect Virtual Servers CLI 来供应具有映像的 Hyper Protect Virtual Servers 服务器实例的云管理员。 云管理员无法访问注册文件中包含的信息,即容器注册表凭证,因为注册文件已加密。 在为容器注册表正确设置了给定的访问控制并且未公开凭证的情况下,云管理无法下载或访问应用程序映像以及映像中包含的任何私钥。

数字钱包

由于数字钱包是黑客的目标,因此在用户也很容易访问的环境 (被称为 "热钱包") 中保护数字资产很重要。 受保护环境是特权管理员和外部威胁都不会损害数据,通过加密和其他机制的环境。 此外,必须在使用 "安全构建" 流程的安全环境中构建应用程序,以防止恶意参与者篡改应用程序代码和应用程序映像。 如果没有 "安全构建" 流程,那么恶意的内部人员或外部参与者可以尝试处理构建流程或构建环境。

此处提供了 "数字钱包" 应用程序 "安全比特币钱包" ,请参阅存储库中的 README.md 以获取更多信息。 该应用程序由 Electrum Bitcoin Client 后端和 Web 前端组成。 后端是 Electrum 的修改版本,作为 JSON RPC 服务器运行,通过与比特币网络交互来维护比特币钱包。 前端作为 Web 前端运行,在 Web 浏览器中与比特币用户进行交互。

准备工作

要完成本教程,您需要满足以下先决条件:

  • 创建 IBM Cloud 帐户。
  • 在工作站上下载并安装 IBM Cloud CLI。
  • 安装 GPG

任务流程

要完成此解决方案,请完成以下步骤:

  1. 设置 IBM Container Registry
  2. 设置 Hyper Protect Secure Build 服务器
  3. 使用 Hyper Protect Secure Build 服务器构建应用程序映像
  4. 使用 Hyper Protect Virtual Servers BYOI 部署映像,并在安全环境中运行应用程序

在此任务流期间,您将创建两个 Hyper Protect Virtual Servers 实例: 一个实例用于安全构建服务器,一个实例用于应用程序。

步骤 1: 设置 IBM Container Registry

对于本教程,您需要设置 IBM Container Registry 并创建新的名称空间。 容器注册表用于将构建的应用程序容器映像存储在新名称空间中。

1。使用以下命令登录到 IBM Cloud

ibmcloud login --sso
ibmcloud target -g default

2. 运行以下命令为您的用户标识创建 API 密钥。

ibmcloud iam api-key-create myapikey -d "API key for HPSB tutorial"

输出将显示已创建的 API 密钥。 记下 API Key 值,稍后在设置安全构建服务器时需要该值以提供 API 密钥。 以下片段显示示例输出:

Creating API key myapikey under <your account id> as <your user id>...
OK
API key myapikey was created

Please preserve the API key! It cannot be retrieved after it is created.

ID            ApiKey-...
Name          myapikey
Description   API key for HPSB tutorial
Created At    2021-...
API Key       xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Locked        false

3. 运行以下命令以安装容器注册表 CLI 插件并在容器注册表中创建新的名称空间 secureimages

ibmcloud plugin install container-registry
ibmcloud cr region-set us-south
ibmcloud cr namespace-add secureimages

步骤 2: 设置 Hyper Protect Secure Build 服务器

完成此过程中的步骤以设置安全构建服务器。

1. 通过运行以下命令来安装 IBM Cloud CLI HPVS 插件:

ibmcloud plugin install hpvs

安全构建服务器使用 Python 编写,并使用 Python 3.6.9进行测试。 要设置安全构建服务器,需要在工作站上安装 python3, pip3和安全构建服务器。

2. 通过运行以下命令,安装 python3 和 pip3:

sudo apt-get update
sudo apt-get install python3 python3-pip
python3 -m pip install -U pip

注: 本教程显示了 Ubuntu的命令。 在其他平台上,使用等效命令来安装或更新 python3 和 pip3。

3。使用以下命令在工作站上安装 Secure Build Server CLI:

git clone git@github.com:ibm-hyper-protect/secure-build-cli.git
cd secure-build-cli
pip3 install -r requirements.txt

4. 创建安全构建服务器配置。

在当前工作目录 (这是您在上一步中创建的目录 secure-build-cli) 中创建文件 sbs-config.json ,然后添加以下内容:

{
  "HOSTNAME": "sbs.example.com",  
  "CICD_PORT": "443",
  "IMAGE_TAG": "1.3.0.10",
  "CONTAINER_NAME": "SBContainer",
  "GITHUB_KEY_FILE": "~/.ssh/id_rsa",
  "GITHUB_URL": "git@github.com:IBM/secure-bitcoin-wallet.git",
  "GITHUB_BRANCH": "main",
  "IMAGE_TAG_PREFIX": "s390x-v1",
  "REPO_ID": "sbs",
  "DOCKER_REPO": "secureimages/secure-bitcoin-wallet",
  "DOCKER_USER": "iamapikey",
  "DOCKER_PASSWORD": "<your api key>",
  "DOCKER_RO_USER": "iamapikey",
  "DOCKER_RO_PASSWORD": "<your api key>",
  "DOCKER_CONTENT_TRUST_BASE": "False",
  "DOCKER_CONTENT_TRUST_BASE_SERVER": "",
  "DOCKER_BASE_SERVER": "docker.io",
  "DOCKER_PUSH_SERVER": "us.icr.io",
  "DOCKER_CONTENT_TRUST_PUSH_SERVER": "https://us.icr.io",
  "ENV_WHITELIST":  ["ZHSM", "APIKEY", "INSTANCE_ID", "IAM_ENDPOINT"],
  "ARG": {
    "NO_GRPC_BUILD": "1",
    "ACCESS_TOKEN": "********"
  }
}

此文件定义您在后续步骤中创建的 Secure Build Server 实例的配置。

注释:

  • 将在生成证书并与安全构建服务器进行通信时使用的 HPSB 服务器的属性 HOSTNAME
  • 属性 GITHUB_KEY_FILE 指定包含 GitHub 帐户的 SSH 密钥的密钥文件 (在工作站上)。
  • 属性 DOCKER_REPO 标识要使用的名称空间 (您在步骤 1 中创建) 和容器映像名称。 指定在容器注册表中未使用或未分配的值。
  • 指定在步骤 1 中为属性 DOCKER_PASSWORDDOCKER_RO_PASSWORD创建的 API 密钥的值。
  • 指定属性 ACCESS_TOKEN的个人访问令牌的值。 构建过程使用 github.com 的个人访问令牌来避免由于其访问速率限制而导致构建失败。 有关更多信息,请参阅 创建个人访问令牌

有关属性的列表,请参阅 此处

5. 通过运行以下命令创建客户机证书和客户机 CA:

./build.py create-client-cert --env sbs-config.json

以下片段显示示例输出:

INFO:__main__:parameter file sbs-config.json renamed to sbs-config.json.2021-02-10_14-55-19.806993
INFO:root:client_certificate: generating client CA and certificate

客户机证书和 CA 用于在工作站上的 Secure Build Server CLI 与 Secure Build Server 实例之间进行安全通信。

此命令执行以下操作:

  • 它通过添加两个属性来更新文件 sbs-config.json : UUIDSECRET
  • 它将创建名为 .SBContainer-<uuid>.d的目录。 此目录包含创建的证书和密钥。

如果在运行此命令时在编辑器中打开了文件 sbs-config.json ,请重新装入更新后的文件。 请勿修改新属性 UUIDSECRET

6. 通过运行以下命令创建服务器证书和服务器 KEY:

./build.py create-server-cert --env sbs-config.json

以下片段显示示例输出:

INFO:root:server_certificate: using supplied pem files cert_directory=.SBContainer-3576faac-1a48-47dc-9702-6b46068cddf1 capath=./.SBContainer-3576faac-1a48-47dc-9702-6b46068cddf1.d/client-ca.pem cakeypath=./.SBContainer-3576faac-1a48-47dc-9702-6b46068cddf1.d/client-ca-key.pem
INFO:root:server_certificate: Generating server certificate
INFO:root:server_certificate: Successfully generated server CSR
INFO:root:server_certificate: Successfully generated server certificate

7. 运行以下命令以使用 base64-encoding:

./build.py instance-env --env sbs-config.json

以下片段显示了示例输出,包括 CLIENT_CRT , CLIENT_CA , SERVER_CRT 和 SERVER_KEY 的加密 base64-encoded 值,您在下一步中需要这些值

INFO:root:client_certificate: using supplied pem files client_crt_key=.SBContainer-3576faac-1a48-47dc-9702-6b46068cddf1 capath=./.SBContainer-3576faac-1a48-47dc-9702-6b46068cddf1.d/client-ca.pem cakeypath=./.SBContainer-3576faac-1a48-47dc-9702-6b46068cddf1.d/client-ca-key.pem
INFO:__main__:

****** Copy below environment variables and use in instance-create command. ******


-e CLIENT_CRT=...  -e CLIENT_CA=... -e SERVER_CRT=... -e SERVER_KEY=...

8. 供应 Secure Build Server 实例

首先,将安全构建映像的加密注册定义复制到名为 secure_build.asc的新文件中。 加密注册定义的内容位于 此处

然后,使用以下命令行来供应 Secure Build Server 的新实例。 插入从先前命令的输出中获取的环境变量 CLIENT_CRTCLIENT_CASERVER_CRTSERVER_KEY 的值。

ibmcloud hpvs instance-create SBContainer lite-s dal13 --rd-path "secure_build.asc" -i 1.3.0.10 --hostname sbs.example.com -e CLIENT_CRT=... -e CLIENT_CA=... -e SERVER_CRT=... -e SERVER_KEY=...

SBContainer 定义要创建的实例的名称, lite-s 是定价计划, dal13 是位置-您可以使用其他位置。 请确保使用映像标记 1.3.0.10 ,因为此标记引用了最新版本的安全构建服务器。 sbs.example.comsbs-config.json 文件中指定的服务器主机名。 有关可用定价套餐以及区域和数据中心的更多信息,请参阅 此处

9. 显示 Secure Build Server 实例。

要查看有关安全构建服务器实例和您已供应的其他 Hyper Protect Virtual Servers 实例的信息,请使用以下命令行:

ibmcloud hpvs instances

此命令显示有关您已供应的 Hyper Protect Virtual Servers 实例的详细信息。

以下片段显示正在供应的安全构建服务器实例的示例输出:

Name                     SBContainer
CRN                      crn:v1:bluemix:public:hpvs:dal13:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx::
Location                 dal13
Cloud tags
Cloud state              provisioning
. . .
Last operation           create in progress
Last image update        not available
Created                  not available

以下片段显示了已成功供应且可用于后续步骤的 Secure Build Server 实例的示例输出。 记下属性 Public IP address的值:

Name                  SBContainer
CRN                   crn:v1:bluemix:public:hpvs:dal13:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx::
Location              dal13
Cloud tags
Cloud state           active
Server status         running
Plan                  Free
Public IP address     <public IP address>
Internal IP address   <private IP address>
Boot disk             25 GiB
Data disk             25 GiB
Memory                2048 MiB
Processors            1 vCPUs
Image type            self-provided
Image OS              self-defined
Image name            de.icr.io/zaas-hpvsop-prod/secure-docker-build:1.3.0.10
Environment           CLIENT_CA=...
                      CLIENT_CRT=...
                      SERVER_CRT=...
                      SERVER_KEY=...
Last operation        create succeeded
Last image update     -
Created               2022-...

10. 更新 /etc/hosts 文件

使用新主机名进行更新 (在证书到期的情况下,无需更新主机名)。

步骤 3: 使用 Secure Build Server 构建应用程序映像

现在,构建应用程序容器映像。

1. 检查 Secure Build Server 实例的状态。

运行以下命令以检查 Secure Build Server 实例的状态:

./build.py status --env sbs-config.json

以下片段显示了示例输出。 在此,命令成功完成,并且 status 字段为空。

INFO:__main__:status: response={
    "status": ""
}

以下片段显示了命令未成功完成的情况的示例输出。 此消息通常指示未正确设置 /etc/hosts :

INFO:__main__:build: status NewConnectionError e=HTTPSConnectionPool(host='test.ibm.com', port=443): Max retries exceeded with url: /image (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f3f00dc0780>: Failed to establish a new connection: [Errno 111] Connection refused',))

2. 初始化 Secure Build Server 实例的配置。

使用以下命令来初始化 Secure Build Server 实例的配置:

./build.py init --env sbs-config.json

以下命令显示命令的示例输出:

INFO:__main__:init: response={
    "status": "OK"
}

3. 构建应用程序映像。

要构建应用程序映像,请运行以下命令:

./build.py build --env sbs-config.json

此命令在 Secure Build Server 实例上启动构建。 它显示以下输出:

INFO:__main__:build: response={
    "status": "OK: async build started"
}

4. 检查构建的状态。

使用以下命令来显示构建的状态:

./build.py status --env sbs-config.json

您可以重复此命令以更新最新的构建状态。

对于正在进行的构建,将显示以下示例输出:

INFO:__main__:status: response={
    "build_image_tag": "1.3.0.10",
    "build_name": "",
    "image_tag": "",
    "manifest_key_gen": "",
    "manifest_public_key": "",
    "status": "github cloned"
}

以下示例输出适用于由于容器注册表登录问题而失败的构建:

INFO:__main__:status: response={
    "build_image_tag": "1.3.0.9",
    "build_name": "",
    "image_tag": "",
    "manifest_key_gen": "",
    "manifest_public_key": "",
    "root_ssh_enabled": false,
    "status": "exiting due to a non-zero return value: 1, cmd: docker login --username <USERNAME> --password <PASSWORD> docker.io"
}

5。请检查构建日志。

要显示构建日志,请运行以下命令:

./build.py log --log build --env sbs-config.json

此命令显示构建日志。 您可以在构建期间重复运行此命令,以查看构建日志的最新更新。

6。请等待构建完成。

再次运行以下命令以显示构建的状态:

./build.py status --env sbs-config.json

以下是成功完成的构建的示例输出 (由 success 状态指示):

INFO:__main__:status: response={
    "build_image_tag": "1.3.0.10",
    "build_name": "us.icr.io.secureimages.secure-bitcoin-wallet.s390x-v1-ad52e76.2021-02-10_15-37-37.178350",
    "image_tag": "s390x-v1-ad52e76",
    "manifest_key_gen": "soft_crypto",
    "manifest_public_key": "manifest.us.icr.io.secureimages.secure-bitcoin-wallet.s390x-v1-ad52e76.2021-02-10_15-37-37.178350-public.pem",
    "status": "success"
}

记录 image_tag 属性。 由构建根据您在配置文件中定义的映像标记前缀生成的映像标记。 稍后使用此映像标记来供应应用程序实例。

Secure Build Server 构建成功,对应用程序的容器映像进行了签名,并将其推送到容器注册表 (您可以在容器注册表中看到具有映像标记的映像 secureimages)。 安全构建服务器还创建了清单文件和加密注册文件,可用于供应应用程序实例。

清单文件

安全构建服务器为每个成功构建创建一个签名清单文件以进行审计。 您可以验证构建和构建映像的源和完整性,也可以将清单文件传递给审计员以执行此操作。 对于本教程,这是自主的,接下来的两个步骤是可选的,可以跳过。

7. 下载清单文件。

使用以下命令从 Secure Build Server 实例下载清单文件:

./build.py get-manifest --env sbs-config.json  --verify-manifest

以下片段显示了该命令显示的示例输出:

INFO:__main__:get-manifest manifest_name: manifest.us.icr.io.secureimages.secure-bitcoin-wallet.s390x-v1-ad52e76.2021-02-10_15-37-37.178350
INFO:__main__:verify_manifest: manifest_name=manifest.us.icr.io.secureimages.secure-bitcoin-wallet.s390x-v1-ad52e76.2021-02-10_15-37-37.178350 test=0
INFO:__main__:verify=OK

该命令将一组文件下载并存储在当前工作目录中,例如:

-rwxrwxrwx 1 user user 3021932 Feb 10 16:37 manifest.us.icr.io.secureimages.secure-bitcoin-wallet.s390x-v1-ad52e76.2021-02-10_15-37-37.178350.tbz
-rwxrwxrwx 1 user user     512 Feb 10 16:37 manifest.us.icr.io.secureimages.secure-bitcoin-wallet.s390x-v1-ad52e76.2021-02-10_15-37-37.178350.sig

8. 抽取清单文件。

通过运行以下命令,解压缩在上一步中检索到的归档文件:

tar -xvf manifest.us.icr.io.secureimages.secure-bitcoin-wallet.s390x-v1-ad52e76.2021-02-10_15-37-37.178350.sig.tbz

这将抽取以下预期输出:

manifest.us.icr.io.secureimages.secure-bitcoin-wallet.s390x-v1-ad52e76.2021-02-10_15-37-37.178350.tbz
manifest.us.icr.io.secureimages.secure-bitcoin-wallet.s390x-v1-ad52e76.2021-02-10_15-37-37.178350.sig

解压缩清单文件的内容:

tar -xvf manifest.us.icr.io.secureimages.secure-bitcoin-wallet.s390x-v1-ad52e76.2021-02-10_15-37-37.178350.tbz

这将创建 git 目录 (包括用于构建的应用程序 Git 存储库的快照) 和数据目录,其中包含文件 build.json (包含构建状态) 和 build.log。

保存 Hyper Protect Secure Build 服务器实例的状态

作为可选步骤 (您可以跳过此步骤) ,您可以从 Secure Build Server 实例下载状态映像。 要在另一个新的 Secure Build Server 实例中构建映像 (例如,在原始实例被删除或损坏后) ,您需要状态映像来恢复 Secure Build Server 实例的签名密钥和其他内部状态。 请参阅 此处 以获取有关如何复原状态映像以及如何将状态映像保存到 Cloud Object Storage的信息。 在本教程中,您仅下载状态映像,因此它在当前工作目录中可用,以供以后使用。

9. 检索状态映像。

要下载状态映像,请运行以下命令:

./build.py get-state-image --env sbs-config.json

此命令在当前目录中创建加密文件,并在输出中打印文件名,例如:

INFO:__main__:state:name: us.icr.io.secureimages.secure-bitcoin-wallet.s390x-v1-ad52e76.2021-02-10_15-37-37.178350

步骤 4: 使用 Hyper Protect Virtual Servers BYOI 部署应用程序,并在安全环境中运行应用程序

现在是时候部署和运行新构建的应用程序了。 为此,请下载在构建期间创建的加密注册文件,并使用 Hyper Protect Virtual Servers BYOI 功能部件为应用程序供应 Hyper Protect Virtual Servers 实例。

1. 检索已加密的注册文件

首先,下载应用程序容器映像的加密注册文件:

./build.py get-config-json --env sbs-config.json --key-id secure-build-ad52e76-1

此命令将创建 GPG 密钥以对文件进行签名。 参数 key-id 用于生成密钥 UID。 提供包含在步骤 3 中检索的图像标记的唯一值,例如 secure-build-ad52e76-1:

当命令运行时,系统会多次询问您是否需要口令。 首先,输入口令两次以创建密钥,然后再次对文件进行签名。

此命令将在当前目录中创建文件 sbs.enc 文件,并打印以下输出:

INFO:__main__:a json config file has been written to sbs.enc.

加密注册文件 sbs.enc 包含 Hyper Protect Virtual Servers 用于向应用程序的容器映像供应服务器实例的信息。 该文件包含 repository_name 以及容器注册表凭证。 当文件已加密时,您可以将其传递给云管理员 (例如,供应服务实例) ,而不公开此信息。

2. 为应用程序创建 Hyper Protect Virtual Servers 实例。

使用 Hyper Protect Virtual Servers BYOI 功能部件为应用程序容器映像供应 Hyper Protect Virtual Servers 实例。 为此,您需要步骤 10 中的图像标记。

运行以下命令以供应 Hyper Protect Virtual Servers 实例:

image_tag=s390x-v1-ad52e76
ibmcloud hpvs instance-create securewallet lite-s dal13 --rd-path sbs.enc --hostname sbs.example.com -i $image_tag

securewallet 定义要创建的实例的名称, lite-s 是定价计划, dal13 是位置-您可以对这些参数使用不同的值。

此命令启动实例供应并显示以下输出:

OK
Provisioning request for service instance 'crn:v1:bluemix:public:hpvs:dal13:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx::' was accepted.
 To check the provisioning status run:
 ibmcloud hpvs instance crn:v1:bluemix:public:hpvs:dal13:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx::

使用输出中列出的命令来检查服务实例的供应状态:

ibmcloud hpvs instance crn:v1:bluemix:public:hpvs:dal13:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx::

等待直到成功供应服务实例。 供应 Hyper Protect Virtual Servers 实例后,可以在 IBM Cloud 资源列表中查看该实例。

ibmcloud hpvs instance 命令将打印有关包含其公共 IP 地址的实例的详细信息。 记下这个 IP 地址,继续到我们教程的最后一步。

3. 运行并使用 Secure Bitcoin Wallet 应用程序。

现在,您可以使用 "安全比特币电子钱包" 应用程序: 在浏览器窗口中,打开 URL https://<your instance's public IP address>/electrum

遵循 此处 的描述和指示信息以使用电子钱包。

以下是电子钱包的示例截屏:

Secure Bitcoin Wallet on IBM LinuxONE
图 2。 IBM LinuxONE
上的安全比特币电子钱包

摘要

您已成功使用 Secure Build Server 来构建 Secure Bitcoin 电子钱包应用程序。 您的构建在安全的相关可调度单元组中运行,这将保护构建环境,构建过程以及来自恶意内部或外部参与者的构建输出。 您使用 Hyper Protect Virtual Servers BYOI 功能在安全封套中设置安全比特币电子钱包实例,以保护电子钱包免受威胁和黑客攻击。

参考