昇腾社区首页
中文
注册

开启Client端TLS认证

  • Server端和Client端必须同步开启或关闭TLS认证,否则Client端和Server端会连接失败。
  • 多用户访问MindIO ACP服务时,每个用户使用的证书可以是不同的,但是都需要由同一个CA签发。
  • MindSpore不涉及TLS认证,默认不开启。

前提条件

MindIO ACP已经安装成功。

表1 Client端使用TLS认证所需文件列表

文件

说明

CA文件

一个自签名的证书,可以签发其它证书。格式为:PEM(*.crt)。需要与Server端的CA文件相同。

Client端的证书

由CA签发的证书,保证在有效期内。格式为:PEM chain(*.pem)。

Client端的证书对应的私钥文件

要与Client端证书对应,安装者要知道这个私钥文件的口令。格式为:PEM encrypted(*.pem)。

seceasy_encrypt文件

安全加密工具。可参见表1

操作步骤

  1. 准备加密仓目录。

    同一个用户可以使用多个不同的证书。一个用户首次准备Client证书时,需要进行此步操作,之后再次为此用户准备证书时,不需要再次准备加密仓目录。

    1. 每个用户需要一个私有的加密仓目录,可以在用户的主目录下创建一个新目录作为加密仓,为了安全,将新创建的目录权限设置为0700,禁止其它用户访问。
      mkdir ~/crypt_repo
      chmod 0700 ~/crypt_repo
    2. 将seceasy_encrypt文件复制到创建的加密仓目录,确保seceasy_encrypt文件有执行权限,将权限设置为0500。
      cp {安装包解压路径}/seceasy_encrypt ~/crypt_repo/
      chmod 0500 ~/crypt_repo/seceasy_encrypt
  2. 生成加密口令文件。

    为了防止Client端私钥的口令泄露,对口令进行加密后保存在文件中用于给Client进程使用。

    1. 进入加密仓目录,执行命令。
      cd ~/crypt_repo/
      ./seceasy_encrypt --enctrypt 1 2
    2. 输入私钥口令。
      please input the password to encrypt {私钥口令}
      please input the password to encrypt again {私钥口令}
      encrypted: {Base64-Encoded-Data}

      连续两次输出相同的私钥口令后,工具输出Base64编码后的数据。

    3. 保存加密后的口令文件。

      复制上一步输出的Base64编码数据,保存到一个新文件中作为口令文件。

      echo "{Base64-Encoded-Data}" > password.txt
  3. 调用初始化接口。

    修改框架代码,在使用MindIO ACP服务之前初始化。

    torch_mindio.initialize(tls_open=True,                                       # 此参数设置为True,表示启动TLS认证
                            cert_path='/home/certs/client.pem',                  # 此参数设置为Client证书的路径
                            ca_path='/home/certs/ca.crt',                        # 此参数设置为CA的路径
                            pri_key_path='/home/keys/client_key.pem',            # 此参数设置为私钥的路径
                            pmt_path='/home/sec_dir/tools/pmt',                  # 此参数设置为加密仓pmt路径
                            key_pass_path='{user.homedir}/crypt_repo/password.txt') # 此参数设置为加密仓目录中的“tools/pmt”路径
  4. 设置环境变量。

    Client端要使用TLS功能,需要依赖一个环境变量,在启动Client进程的时候,需要提前设置环境变量。

    export HSECEASY_PATH={Python安装目录}/lib/python3.7/site-packages/torch_mindio