Как проверить включено ли шифрование AES-NI в Linux
Intel Advanced Encryption Standard (AES) или новые инструкции (AES-NI) включают быстро аппаратное шифрование и дешифрование для OpenSSL, SSH, VPN Linux / Unix / OSX полное шифрование диска и многое другое. Как проверить поддержку Intel или AMD AES-NI моей Linux системе и включена ли она, в Linux, включая OpenSSL?
Расширенный стандарт шифрования Набор команд (или Intel Advanced Encryption Standard New Instructions — «AES-NI») позволяет Intel / AMD и другим процессорам, выполнять быстрое аппаратное шифрование и дешифрование.»AES-NI» является расширением множества архитектуры инструкций x86 для микропроцессоров Intel и от AMD. Это увеличивает скорость приложений, выполняющих шифрование и дешифрование с использованием AES. Несколько серверов и ноутбуков производители поставили с конфигурацией в BIOS AES-NI — отключено. Возможно, потребуется обновление BIOS , чтобы включить или изменить данную настройку BIOS. Поддерживаются следующие процессоры:
- Intel Westmere / Westmere-EP (Xeon 56xx) / Clarkdale (за исключением Core i3, Pentium и Celeron) / Arrandale (за исключением Celeron, Pentium, Core i3, Core i5-4XXM).
- Intel Sandy Bridge процессоры (кроме Pentium, Celeron, Core i3).
- Мобильный Intel Core i7 и Core i5.
- Intel Ivy Bridge процессоры i5, все i7, Xeon и i3-2115C только.
- Процессоры Intel Haswell (все, кроме i3-4000m, Pentium и Celeron).
AMD Bulldozer / Piledriver / каток / Jaguar / Puma, основанные процессоры. - Процессоры Geode LX AMD.
- VIA PadLock (другой набор команд, чем Intel AES-NI, но делает то же самое).
- ARM — выбран ALLWINNER и Broadcom с помощью процессора безопасности.
Пожалуйста, обратите внимание, что поддержка AES-NI включается автоматически, если обнаруженный процессор из списка поддерживаемых, описано выше.
Для получения списка процессоров, поддерживающих AES-NI, см Intel / AMD АРК / ARM / VIA официальные сайты и документацию.
Как я узнать, что процессор имеет набор команд AES / AES-NI?
Чтобы узнать тип процессора и тип архитектуры:
1 |
# lscpu |
Введите следующую команду, чтобы убедиться, что в процессор установлена инструкция AES и включена в BIOS:
1 |
# grep -o aes /proc/cpuinfo |
ИЛИ
1 |
# grep -m1 -o aes /proc/cpuinfo |
Примеры:
Вывод команды aes означает, что у меня поддержка AES-NI включена на Linux.
1 |
# grep -m1 -o aes /proc/cpuinfo |
результат
1 |
aes |
Пустой вывод означает, что поддержка AES отключена
Как я могу проверить, что все мои процессоры поддерживают AES NI?
Результат выполнения следующих двух команд должен быть такой же:
1 2 |
# lscpu | grep '^CPU(s):' 32 |
или
1 2 |
# grep -o aes /proc/cpuinfo | wc -l 32 |
или
1 |
# sort -u /proc/crypto | grep module |
Результат
1 2 3 4 5 6 |
module : aesni_intel module : aes_x86_64 module : crc32_pclmul module : crct10dif_pclmul module : ghash_clmulni_intel module : kernel |
Включен Intel AES-NI для OpenSSL?
1 |
$ openssl engine |
Результат команды для VIA, если AES поддерживается
1 2 |
(padlock) VIA PadLock (no-RNG, no-ACE) (dynamic) Dynamic engine loading support |
Результат команды на Intel, с поддержкой AES-NI
1 2 3 |
$ openssl engine (aesni) Intel AES-NI engine (dynamic) Dynamic engine loading support |
Тест: AES-NI процессоров против процессора без поддержки AES-NI / Packlock
В этом примере, SERVERA имеет AES-NI и SERVERB не имеет поддержку аппаратного шифрования:
1 2 3 4 5 |
$ dd if=/dev/zero count=1000 bs=1M | ssh -l user -c aes128-cbc serverA "cat >/dev/null" Password: 1000+0 records in 1000+0 records out 1048576000 bytes (1.0 GB) copied, 10.6691 s, 98.3 MB/s |
и
1 2 3 4 5 |
$ dd if=/dev/zero count=1000 bs=1M | ssh -l user -c aes128-cbc serverB "cat >/dev/null" user@localhost's password: 1000+0 records in 1000+0 records out 1048576000 bytes (1.0 GB) copied, 31.6675 s, 33.1 MB/s |
Тест: Производительность OpenSSL?
Опять выполните следующие команды на обоих системах:
1 |
# openssl speed |
ИЛИ
1 |
# openssl speed aes-128-cbc |
Популярные Linux или Unix / BSD приложения, которые лучше работают с AES-NI с высокой скоростью шифрования / дешифрования:
- dm-crypt шифрование диска
- 7-Zip приложение.
- Chrome Google и Firefox браузеров
- Во FreeBSD OpenCrypto API т.е. AESNI драйвер ZFS и других файловых систем.
- OpenSSL 1.0.1 и выше.
- TrueCrypt 7.0 и выше или VeraCrypt.
- Citrix XenClient 1.0 и выше.
- GCC 4.4+, Intel C / C ++ компилятор 11.1+, Clang 3.3+ и более.
- Библиотеки для golang, Java, СНБ, OpenSSL и более.
- Linux и BSD брандмауэры и VPN особенно легко использовать pfsense, IPCop и более.
- Операционная система на базе Linux, * BSD, Unix, Microsoft, Android, IOS, Apple OS X и более.
Администрирование серверов Unix-ОС, подробнее [email protected]