Я использую Debian Wheezy в своем Beaglebone Black. Использует ли OpenSSL аппаратный криптоускоритель по умолчанию? Если нет, как я могу включить его?
2 ответа
Это, вероятно, нет, нет. Вы можете проверить следующее:
openssl speed -evp aes-128-cbc
Если каждая строка показывает около 3 секунд, она не ускоряется. Вам нужно будет обновить ядро, скомпилировать cryptodev и вставить модуль, а затем скомпилировать OpenSSL с помощью cryptodev. Готовы? Поехали!
Сначала обновите ядро и установите заголовки (сначала проверьте текущую версию!)
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
Чтобы криптодев загружался постоянно, отредактируйте /etc /modules и добавьте строку, содержащую только криптодев в конце
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
Теперь у вас есть новая блестящая установка OpenVPN с использованием ускоренного OpenSSL!
/opt/openvpn/sbin/openvpn --version
Скачайте и cryptodev
.
Загрузите пакет исходного кода debian openssl
:
apt-get source openssl
Добавьте опции сборки -DHAVE_CRYPTODEV -DUSE_CRYPTDEV_DIGESTS, отредактировав CONFARGS в файле debian/rules.
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.