鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

创建Java/Python工程

安全计算应用支持创建Java、Python工程,并提供代码样例进行下载。

Java高级语言的简单性,跨平台与可移植等特性和对大数据、微服务等技术的支持,使得大量应用基于Java进行开发,为了满足对于数据安全的需求,方便快速将Java应用迁移到安全的TEE环境中,机密OS提供运行Java应用的环境。

操作步骤

  1. 单击左侧树快捷功能区按钮,或者单击应用开发区域右侧的按钮,打开“鲲鹏应用工程”页面,如图1所示。
    图1 鲲鹏应用工程
  2. 单击“安全计算应用”,打开“安全计算应用”页面,如图2所示。
    图2 安全计算应用
  3. 单击“Java/Python应用”,打开“Java/Python应用”页面,在左侧任务类型中选择“创建工程”,工程类别选择“Java工程”或“Python工程”,选择需要的工程样例,并进行其他参数配置。如图3图4所示。
    图3 创建Java工程
    图4 创建Python工程
  4. 单击“下一步”配置目标节点,配置时可以使用已有服务器或使用新增服务器,新增服务器需要输入IP地址、SSH端口、用户名、密码和存放目录;选择暂不部署将默认不部署SDK。如图5所示。
    图5 配置目标节点

    用户在配置新增目标节点时,必须注意,需是运行在物理机上,ARM架构下的openEuler 20.03 LTS SP1或Kylin V10操作系统,并且拥有管理员权限的目标节点。

  5. 选择是否部署SDK,部署时可选择不同的部署方式,比如在线部署、离线部署或不部署如图6所示。
    图6 部署SDK

    若安全计算应用SDK部署失败,请参见安全计算应用SDK部署失败的解决方法进行处理。

    表1 Java/Python工程配置参数说明

    参数

    说明

    任务类型

    任务类型可选:

    • 创建工程
    • Java/Python应用改造

    工程类别

    工程类别可选:

    • Java工程
    • Python工程

    工程样例

    提供的工程样例。

    • Hello World
    • Titanic
      说明:
      • 选择Java工程,提供Hello World工程样例,使用鲲鹏机密计算高级语言开发的Java Hello World参考实现。
      • 选择Python工程,提供Titanic工程样例,使用Python机器学习库对泰坦尼克号生存数据进行预测的参考实现。

    工程名称

    默认生成一个工程名称。格式为“xxx_ProjectN”,可修改。

    创建的Java/Python工程名称。

    说明:

    工程名称只能由字母、数字、“.”、“-”、“+”、“()”和“_”组成,长度为1~64个字符且不能以“.”开头。

    工程位置

    默认生成一个工程位置,格式为“C:\Users\username\KunpengProject”,可修改。

    创建的Java/Python工程存储路径。

    (可选)签名私钥

    导入签名私钥。

    (可选)签名证书

    导入签名证书。

    部署服务器

    • 使用已有服务器
    • 使用新增服务器
    • 暂不部署
    说明:

    选择“使用新增服务器”添加的服务器会自动添加到目标服务器管理中。

    IP地址

    允许进行操作的目标节点IP地址。

    SSH端口

    目标节点的SSH端口号。

    用户名

    允许进行操作的目标节点用户。

    密码

    输入目标节点账户的密码。

    记住密码

    勾选后可记住当前服务器用户名密码。

    存放目录

    目标节点存放目录。

    说明:

    工具会读写存放目录下的内容,避免造成用户内容丢失,建议使用空目录。

    部署SDK

    选择SDK部署方式。

    • 在线部署
      • kunpeng-sc-devel
      • kunpeng-sc
    • 离线部署
      • kunpeng-sc-devel
      • kunpeng-sc
    • 不部署
      说明:
      • 选择在线部署方式,服务器必须能连接外网,若隔离网络环境下就需要通过代理方式访问外网,具体请参见配置代理
      • 选择离线部署方式,将从本地导入SDK,可前往下载地址去下载SDK到本地并上传。
      • 选择不部署,将不部署SDK。
  6. 单击“创建工程”后,弹出提示框,确认是否打开TrustZone功能开关,若已打开开关,请勾选“已打开”,单击“确认”按钮,如图7所示。
    图7 TrustZone功能开关
    工程创建过程中,会校验相关配置,如图8图9所示。
    图8 Java/Python工程创建成功
    图9 Java/Python工程创建失败

    创建Python工程,需要安装依赖的第三方库。

  7. SDK部署完成后,需要部署Java/Python运行环境。
    • 部署Java运行环境。
      1. 解压文件。
        1
        tar -zxvf /user/local/kunpeng-sc/java/bisheng-jdk-8u372-tee-aarch64.tar.gz
        
      2. 复制目录。
        1
        cp -r /usr/local/kunpeng-sc/java/bisheng-jdk-8u372-tee-aarch64/jdk /usr/local/kunpeng-sc-devel/utils/pack-App
        
      3. 将已申请的证书、证书对应的私钥放入“/usr/local/kunpeng-sc-devel/utils/pack-App/pack_tools”目录中,并分别命名为ta_cert.der、private_key.pem。
      4. 进入pack-App目录,执行以下命令生成jdk.sec文件。
        1
        2
        cd /usr/local/kunpeng-sc-devel/utils/pack-App
        python3 pack.py jdk
        
      5. 将Java环境安装到TEE内。
        1
        tee_teleport -s jdk.sec -t java
        
    • 部署Python运行环境。
      1. 解压文件。
        1
        tar -zxvf /user/local/kunpeng-sc/python/Python-3.6.15-tee-aarch.tar.gz
        
      2. 复制目录。
        1
        cp -r /usr/local/kunpeng-sc/python/Python-3.6.15-tee-aarch64/python /usr/local/kunpeng-sc-devel/utils/pack-App
        
      3. 将已申请的证书、证书对应的私钥放入“/usr/local/kunpeng-sc-devel/utils/pack-App/pack_tools”目录中,并分别命名为ta_cert.der、private_key.pem。
      4. 进入pack-App目录,执行以下命令生成python.sec文件。
        1
        2
        cd /usr/local/kunpeng-sc-devel/utils/pack-App
        python3 pack.py python
        
      5. 将Python环境安装到TEE内。
        1
        tee_teleport -s python.sec -t python
        

      若需要安装Java、Python的第三方库,可以使用“tee_teleport”命令进行安装,“tee_teleport”的参数使用说明可参考表2

      表2 参数说明

      参数

      参数说明

      返回值

      install(-s)

      安装TEE侧Java或Python运行时环境

      安装成功返回0,安装失败返回-1

      uninstall(-u)

      卸载TEE侧Java或Python运行时环境,需要指定type

      安装成功返回0,安装失败返回-1

      type(-t)

      指定安装类型,为Java、Python或Py3rd,需配合-s参数使用

      -

      import(-m)

      安装TEE侧Java或Python的三方库

      安装成功返回0,安装失败返回-1

      create(-c)

      创建TEE侧应用运行目录和sessionID

      创建成功返回0,创建失败返回-1

      id(-i)

      指定sessionID,使用run/input/output/destroy时需指定

      -

      run(-r)

      运行应用,需要绑定sessionID

      运行成功返回0,运行失败返回-1

      input(-n)

      向TEE侧输入数据,可配合-d参数使用(需使用相对路径)

      运行成功返回0,运行失败返回-1

      output(-o)

      从TEE侧将数据输出到REE侧,可配合-v参数使用

      运行成功返回0,运行失败返回-1

      destroy(-e)

      销毁Java或Python应用的数据、目录和sessionID,需指定sessionID

      运行成功返回0,运行失败返回-1

      delete(-d)

      删除TEE侧应用的子文件或子目录

      运行成功返回0,运行失败返回-1

      query(-q)

      查询TEE侧应用的子文件或子目录是否存在

      所查询的文件或目录存在返回0,不存在返回1,运行失败返回-1

      parameter(-p)

      传入应用运行所需的参数

      -

      rename(-a)

      指定输入文件的路径

      -

      save(-v)

      指定输出文件的路径

      -

      help(-h)

      打印使用方式

      -

      以下为使用示例:

       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      11
      12
      13
      tee_teleport -s jre.sec -t java   #安装Java
      tee_teleport -s python.sec -t python   #安装Python
      tee_teleport -u -t Java   #卸载Java
      tee_teleport -u -t python   #卸载Python
      tee_teleport -m third.sec -t python   #安装三方库
      tee_teleport -c test.sec   #安装应用,会在当前目录生成sessionID.txt
      tee_teleport -r TeeJava.class -i sessionID.txt   #运行应用
      tee_teleport -n data_dir -i sessionID.txt   #文件输入
      tee_teleport -o data_dir -i sessionID.txt   #文件输出
      tee_teleport -e -i sessionID.txt   #卸载应用
      tee_teleport -d output/tee.log -i sessionID.txt   #删除文件
      tee_teleport -q output/tee.log -i sessionID.txt   #查询文件
      tee_teleport -c test.sec -r TeeJava.class -n data_dir -o output/tee.log -e   #一次性安装、执行、输入、卸载
      
  8. 运行环境已部署完成,Java/python工程创建成功后,单击“打开工程”,可直接在本窗口打开工程。
    图10 查看Java/Python工程