Beaglebone Black OpenSSL 加密加速

fte*_*tes 6 ssl cryptography openssl hardware-acceleration beaglebone

我在 Beaglebone Black 上运行 Debian Wheezy。默认情况下,OpenSSL 是否使用硬件加密加速器?如果没有,我该如何启用它?

小智 5

可能不是,不是。您可以通过以下方式进行检查:

openssl speed -evp aes-128-cbc
Run Code Online (Sandbox Code Playgroud)

如果每行显示大约 3 秒,则不是硬件加速。您需要更新内核,编译cryptodev 并插入模块,然后使用cryptodev 编译OpenSSL。准备好?我们走吧!

首先,更新您的内核并安装头文件(首先检查当前版本!)

sudo aptitude install linux-image-3.18.5-bone1 
sudo aptitude install linux-headers-3.18.5-bone1
Run Code Online (Sandbox Code Playgroud)

现在下载并编译cryptodev(同样,当您阅读本文时,1.7 可能不是最新的)

wget http://download.gna.org/cryptodev-linux/cryptodev-linux-1.7.tar.gz
tar zxf cryptodev-linux-1.7.tar.gz 
cd cryptodev-linux-1.7/
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

现在你需要注册并插入cryptodev模块

sudo depmod -a
sudo modprobe cryptodev
Run Code Online (Sandbox Code Playgroud)

现在检查它是否已加载 - 这应该输出一个包含 cryptodev 的列表!

lsmod
Run Code Online (Sandbox Code Playgroud)

要永久加载 cryptodev,请编辑 /etc/modules 并在末尾添加仅包含 cryptodev 的行

sudo sh -c 'echo cryptodev>>/etc/modules'
Run Code Online (Sandbox Code Playgroud)

现在是下载和编译 OpenSSL 的时候了(检查您的版本)!

cd ~
wget https://www.openssl.org/source/openssl-1.0.2.tar.gz
tar zxf openssl-1.0.2.tar.gz
cd openssl-1.0.2/
ls
./config -DHAVE_CRYPTODEV -DUSE_CRYPTDEV_DIGESTS
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

检查您的版本和速度 - 您应该看到 0.10 - 0.15 秒

/usr/local/ssl/bin/openssl version
/usr/local/ssl/bin/openssl speed -evp aes-128-cbc
Run Code Online (Sandbox Code Playgroud)

现在你可能想要的是 OpenVPN,但是一个预先打包的 OpenVPN 不会使用这个新编译的 OpenSSL,所以是时候自己重新编译了。.

cd ~
wget http://swupdate.openvpn.org/community/releases/openvpn-2.3.6.tar.xz
tar xvf openvpn-2.3.6.tar.xz 
cd openvpn-2.3.6/
./configure --prefix=/opt/openvpn OPENSSL_SSL_LIBS="-L/usr/local/ssl/lib/ -lssl" OPENSSL_SSL_CFLAGS="-I/usr/local/ssl/include/" OPENSSL_CRYPTO_LIBS="-L/usr/local/ssl/lib/ -lcrypto" OPENSSL_CRYPTO_CFLAGS="-I/usr/local/ssl/include/"
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

您现在已经使用硬件加速的 OpenSSL 获得了全新的 OpenVPN 安装!

/opt/openvpn/sbin/openvpn --version
Run Code Online (Sandbox Code Playgroud)