我在 Beaglebone Black 上运行 Debian Wheezy。OpenSSL 默认使用硬件加密加速器吗?如果没有,我该如何启用它?
答案1
可能不是。你可以检查以下内容:
openssl speed -evp aes-128-cbc
如果每行显示大约 3 秒,则不是硬件加速。您需要更新内核,编译 cryptodev 并插入模块,然后使用 cryptodev 编译 OpenSSL。准备好了吗?我们开始吧!
首先,更新您的内核并安装标题(首先检查当前版本!)
sudo aptitude install linux-image-3.18.5-bone1
sudo aptitude install linux-headers-3.18.5-bone1
现在下载并编译 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
现在您需要注册并插入 cryptodev 模块
sudo depmod -a
sudo modprobe cryptodev
现在检查它是否已加载 - 这应该输出一个包含 cryptodev 的列表!
lsmod
要使 cryptodev 永久加载,请编辑 /etc/modules 并在末尾添加仅包含 cryptodev 的行
sudo sh -c 'echo cryptodev>>/etc/modules'
现在是时候下载并编译 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
检查你的版本和速度 - 你应该看到 0.10 - 0.15 秒的时间
/usr/local/ssl/bin/openssl version
/usr/local/ssl/bin/openssl speed -evp aes-128-cbc
现在您可能需要的是 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
您现在已经获得了一个使用硬件加速 OpenSSL 的全新 OpenVPN 安装!
/opt/openvpn/sbin/openvpn --version
答案2
下载并构建cryptodev
。
下载debianopenssl
源码包:
apt-get source openssl
通过编辑添加构建选项 -DHAVE_CRYPTODEV -DUSE_CRYPTDEV_DIGESTS会议在文件中debian/规则。
CONFARGS = -DHAVE_CRYPTODEV -DUSE_CRYPTDEV_DIGESTS --prefix=/usr --openssldir=/usr/lib/ssl --libdir=lib/$(DEB_HOST_MULTIARCH) no-idea no-mdc2 no-rc5 zlib enable-tlsext no-ssl2
构建 Debian 包
dpkg-buildpackage -us -uc
现在您有了自己的带硬件加速的 openssl deb 包。只需安装并测试它。
openssl speed -evp aes-128-cbc
您不需要编译 openvpn。