鲲鹏社区首页
中文
注册
如何在Web场景下使用KAE

如何在Web场景下使用KAE

BoostKit

发表于 2023/09/06

0

本节的实操过程需要使用鲲鹏平台,开发者可以使用自备的鲲鹏平台进行学习和体验。

环境要求

KAE支持的软硬件环境要求如下:

项目

类别

要求

硬件

服务器

TaiShan服务器(鲲鹏920处理器)

软件

iBMC

iBMC V365及以上版本

BIOS

BIOS V105及以上版本

操作系统

(1)CentOS 7.6 4.14.0-115.el7a.0.1.aarch64 version

(2)SUSE 15.1 4.12.14-195-default.aarch64 version

(3)EulerOS 2.8 4.19.36-vhulk1907.1.0.h410.eulerosv2r8.aarch64 version

(4)NeoKylin 7.6 4.14.0-115.5.1.el7a.06.aarch64 version

(5)BCLinux-R7-U6-Server-aarch64 version

(6)Kylin 4.0.2 (juniper) 4.15.0-70-generic version

(7)Kylin release 4.0.2 (SP2) 4.19.36-vhulk1907.1.0.h403.ky4.aarch64 version

(8)UniKylin Linux release 3(Core) 4.18.0-80.ky3.kb21.hw.aarch64 version

(9)Ubuntu 18.04.1 LTS 4.15.0-29-generic version

(10)openEuler 20.03 LTS 4.19.90-2003.4.0.0036.oe1.aarch64 version

(11)openEuler 20.03 LTS-SP1 4.19.90-2012.4.0.0053.oe1.aarch64 version

为保证KAE能够正常工作,同时可以直观的体验KAE带来的性能提升,本文使用鲲鹏处理器为硬件平台,openEuler为操作系统来测试验证KAE的加速效果,请检查您的安装环境,确保测试环境达到推荐配置要求。

安装KAE

安装鲲鹏加速引擎KAE需要执行下面几个关键步骤,安装成功后,通过OpenSSL调用KAE,可以简单验证KAE的性能提升效果。

步骤 1 申请并安装KAE License。

安装鲲鹏加速引擎KAE之前需要先申请并导入相应的License,License安装成功之后,操作系统才能识别到加速器设备。License申请和安装的详细操作可参考《华为服务器iBMC许可证 使用指导》。

(1)获取License。

(2)安装License。

a. 通过浏览器登录服务器的iBMC,依次单击“iBMC管理 > 许可证管理 > 安装”。

b. 重启服务器。

c. 查看操作系统中是否有KAE加速器设备。

lspci | grep HPRE
lspci | grep RDE
lspci | grep ZIP
lspci | grep SEC

若运行以上命令后没有任何回显信息打印,说明操作系统中没有KAE加速器设备,请检查License是否安装。

步骤 2 编译安装OpenSSL 1.1.1a。

安装前请先确认是否已安装以下组件:

① 已安装与系统版本对应的kernel-devel。可以通过uname -r命令查询当前内核版本号。

② 已安装perl、bzip2。可以通过perl --version,bzip2 --version命令查询是否已安装。

 已安装GCC、make工具,不同GCC版本下呈现出的性能数据存在差异,推荐使用7.4.1及以上版本,make推荐使用3.82及以上版本。可以通过gcc --version,make --version命令查询是否已安装。

④ 已安装automake、autoconf、libtool相关软件。可以通过automake --version,autoconf --version,libtool --version命令查询是否已安装。

(1)获取OpenSSL源码包(OpenSSL为1.1.1a及以上版本),将源码包拷贝到自定义路径下。

获取链接:https://www.openssl.org/source/old/1.1.1/

(2)解压缩后,在OpenSSL源码目录下,编译安装OpenSSL。

本文使用OpenSSL的默认安装路径“/usr/local”,您也可以通过“./config --prefix”指定安装路径。“-Wl,-rpath”参数用来指定OpenSSL运行时依赖libcrypto、libssl库的路径。

./config -Wl,-rpath,/usr/local/lib
make
make install

(3)设置环境变量。

如果开发者指定安装路径,则下面命令中的“/usr/local/lib/engines-1.1”应根据实际安装路径进行修改。

export OPENSSL_ENGINES=/usr/local/lib/engines-1.1

(4)安装后检查。

a. 执行cd命令,进入到“/usr/local/bin”目录下。

b. 查看OpenSSL版本信息。

./openssl version

显示OpenSSL版本号内容说明安装成功。

步骤 3 安装鲲鹏加速引擎KAE。

KAE的安装方式有RPM包安装、DEB包安装和源码安装3种,本文以RPM包安装方式为例,其他安装方式请参见《鲲鹏加速引擎 开发指南(KAE加解密)》。

(1)获取RPM安装包kae_1.3.11_openEuler20.03LTS_SP1.zip,将安装包拷贝到自定义路径下。

获取路径:https://gitee.com/kunpengcompute/KAE/releases

(2)解压后安装加速驱动软件包。

rpm -ivh *.rpm

(3)手动加载加速器到内核。

a. 查询已载入内核的uacce驱动模块。

lsmod | grep uacce

b. 加载uacce、hisi_sec2、hisi_hpre、hisi_rde驱动到内核。

modprobe uacce
modprobe hisi_sec2
modprobe hisi_hpre
modprobe hisi_rde

c. 再次查询已载入内核的uacce驱动模块。

lsmod | grep uacce

有以下加载的模块显示则表示加载成功。

uacce 36864 3 hisi_sec2,hisi_qm,hisi_hpre,hisi_rde

步骤 4 查看KAE加速引擎是否已安装成功。

rpm -qa uacce hisi_sec2 hisi_hpre hisi_rde

显示如下信息,表明KAE已安装成功。

hisi_sec2-1.3.11-1.openEuler20.03LTS_SP1.aarch64
uacce-1.3.11-1.openEuler20.03LTS_SP1.aarch64
hisi_hpre-1.3.11-1.openEuler20.03LTS_SP1.aarch64
hisi_rde-1.3.11-1.openEuler20.03LTS_SP1.aarch64

步骤 5 通过OpenSSL调用KAE验证RSA2048算法性能,确认鲲鹏加速引擎KAE是否已生效。

(1)使用加速器前,执行以下命令,并查看执行结果。

cd /usr/local/bin/
./openssl speed rsa2048

回显信息如下:

                 sign    verify    sign/s verify/s 
rsa 2048 bits 0.001381s 0.000035s    724.1  28601.0

(2)使用KAE后,执行以下命令,并查看执行结果。

./openssl speed -engine kae rsa2048

回显信息如下:

engine "kae" set.
                 sign    verify   sign/s verify/s
rsa 2048 bits 0.000175s 0.000021s 5730.1 46591.8

通过RSA性能命令可以看到指定KAE之后,签名性能从724.1 sign/s提升到5730.1sign/s,RSA的性能得到明显提升。

(3)在测试RSA2048算法性能的过程中,可以打开新的命令行终端,执行以下命令查看KAE资源队列值(默认值为256),数值减少则说明KAE已生效。

cat /sys/class/uacce/hisi_hpre-*/attrs/available_instances

或者

watch -d cat /sys/class/uacce/hisi_hpre-*/attrs/available_instances

回显信息中KAE资源队列值从256变为255,说明RSA算法消耗了HPRE加速器一个硬件单元队列,说明KAE已生效。

----结束

配置OpenSSL调用KAE

将鲲鹏加速引擎KAE内容写入OpenSSL配置文件openssl.cnf中,以实现KAE的调用。OpenSSL配置文件默认在“/usr/local/ssl/”路径下。

步骤 1 新建OpenSSL配置文件openssl.cnf。

vi /home/openssl.cnf

步骤 2 按“i”进入编辑模式,将KAE加速器相关内容写入OpenSSL配置文件。

openssl_conf=openssl_def
[openssl_def]
engines=engine_section
[engine_section]
kae=kae_section
[kae_section]
engine_id=kae
dynamic_path=/usr/local/lib/engines-1.1/kae.so
default_algorithms=ALL
init=1

步骤 3 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

步骤 4 在profile文件中配置OpenSSL的环境变量。

(1)打开profile文件。

vi /etc/profile

(2)按“i”进入编辑模式,添加如下内容。

export OPENSSL_CONF=/home/openssl.cnf

(3)按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。

步骤 5 使环境变量生效。

source /etc/profile

----结束

测试验证KAE加速效果

通过测试Web场景下RSA2048算法同步和异步性能验证KAE加速效果。

测试RSA2048算法性能有两种方式:同步性能测试和异步性能测试。因为已配置OpenSSL的环境变量,性能测试命令中不需要指定KAE引擎即可调用KAE加速库。

(1)同步性能测试

openssl speed -elapsed rsa2048

(2)异步性能测试。

openssl speed -elapsed -async_jobs 36 rsa2048

在测试过程中,同时使用以下两个命令中的任何一个查看KAE资源队列值(默认值为256),数值减少则说明KAE加速生效。

cat /sys/class/uacce/hisi_hpre-*/attrs/available_instances

或者

watch -d cat /sys/class/uacce/hisi_hpre-*/attrs/available_instances

回显信息如下,可以看到KAE资源队列值从256变为255,说明RSA算法消耗了HPRE加速器一个硬件单元队列,说明KAE加速生效。

255
256

本页内容