创建匿名投票工程

应用开发安全计算应用中,支持创建包含CA、TA应用并基于RSA和AES加密的匿名投票工程。基于鲲鹏TEE安全计算开发,在保证数据隐私安全的情况下,完成匿名投票,在REE侧可以看到用户是否已投票,但无法获取其投票选项,并且最终的投票结果和统计信息会在web页面中显示。

操作步骤

  1. 单击左侧树快捷功能区按钮,或者单击应用开发区域右侧的按钮,打开“鲲鹏应用工程”页面,如图1所示。

    图1 鲲鹏应用工程

  2. 单击“安全计算应用”,打开“安全计算应用”页面,如图2所示。

    图2 安全计算应用

  3. 单击“TEE GP应用”,打开“TEE GP应用”页面,在左侧工程类别中选择“模板工程”,然后选择“匿名投票”,并进行其他参数配置。

    图3 创建匿名投票工程

  4. 单击“下一步”配置目标节点,配置时可以使用已有服务器或使用新增服务器,新增服务器需要输入IP地址、SSH端口、用户名、密码和存放目录;选择暂不部署将默认不部署SDK。如图4所示。

    图4 配置目标节点

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

  5. 选择是否在创建工程时同时部署SDK,选择“是”在部署时可选择不同的部署方式,比如在线部署、离线部署如图5所示。参数配置完成后,单击“创建工程”,创建匿名投票工程。

    图5 部署SDK

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

    表1 TEE GP应用工程配置参数说明

    参数

    说明

    工程类别

    工程类别可选:

    • 模板工程
      • CA工程
      • TA工程
      • RSA工程
      • 机密数据保存
      • 匿名投票
      • 证书签发
    • 空工程
      说明:
      • CA工程运行在REE侧环境下,TA工程运行在TEE侧环境下,RSA工程基于CA、TA工程进行安全通信。
      • 机密数据保存工程包含CA、TA工程, 使用TEE安全存储接口保存机密数据
      • 匿名投票工程包含CA、TA工程,基于RSA和AES加密。
      • 证书签发工程包含CA、TA工程,基于RSA、SM2算法进行证书签发。

      使用依赖:

      1. 确保已安装kunpeng-sc(机密数据保存工程、匿名投票工程还需确保安装 kunpeng-sc-devel,证书签发工程还需确保安装机密计算SDK和kunpeng-sc-devel。)
      2. 确保tzdriver正常加载,执行 lsmod | grep tzdriver
      3. 确保守护进程正常启动,执行 ps -ef| grep teecd

    工程名称

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

    创建工程的名称。

    说明:
    • N为递增的数字,从1开始。
    • 工程名称只能由字母、数字、“.”、“-”、“+”、“()”和“_”组成,长度为1~64个字符且不能以“.”开头。

    工程位置

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

    创建工程的存储路径。

    (可选)签名私钥

    导入签名私钥文件。

    (可选)Config二进制

    导入Config二进制文件。

    部署服务器

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

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

    IP地址

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

    SSH端口

    目标节点的SSH端口号。

    用户名

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

    密码

    目标节点用户名密码。

    记住密码

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

    存放目录

    目标节点存放目录。

    说明:

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

    创建工程时同时部署SDK

    选择“是”部署SDK。

    选择“否”不部署SDK。

    部署SDK

    选择SDK部署方式。

    • 在线部署
      • kunpeng-sc
      • kunpeng-sc-devel
    • 离线部署
      • kunpeng-sc
      • kunpeng-sc-devel
        说明:
        • 选择在线部署方式,服务器必须能连接外网,若隔离网络环境下就需要通过代理方式访问外网,具体请参见配置代理
        • 选择离线部署方式,将从本地导入SDK,可前往下载地址去下载SDK到本地并上传。

  6. 匿名投票工程创建成功后,单击“打开工程”,可直接在本窗口打开工程。

    图6 打开匿名投票工程
    图7 查看匿名投票工程

  7. 创建成功后的工程可使用编译调试工具进行编译调试。详细参考工程文件夹中的README文件。

    图8 secret-vote_README

    编译完成后请参见运行安全计算应用工程指导,将编译生成的文件拷贝至指定目录。

    浏览器中输入目标服务器IP地址和端口号,打开“匿名投票应用”页面。

  8. 打开“匿名投票应用”页面,进行匿名投票前需要进行用户登录,在页面中输入用户名和密码。

    图9 用户登录

  9. 登录成功后,打开投票页面,选择需要投票的选项,单击“投票”,完成匿名投票。

    图10 匿名投票

  10. 投票完成后,投票结果和统计信息会在页面中显示,可以看到各选项所投票人次以及所占比例。

    图11 投票结果
    • 匿名投票目前仅支持单选投票。
    • 用户登出成功后,再次登录匿名投票应用,能查看之前已投票结果。