Crypto API — это криптографический фреймворк в ядре Linux для различных частей ядра, которые имеют дело с криптографией, таких как IPsec и dm-crypt . Он был представлен в версии ядра 2.5.45 [1] и с тех пор был расширен, включив в себя по существу все популярные блочные шифры и хэш-функции .
Интерфейсы пользовательского пространства
Многие платформы, которые обеспечивают аппаратное ускорение шифрования AES, предоставляют это программам через расширение архитектуры набора инструкций (ISA) различных чипсетов (например, набор инструкций AES для x86 ). При такой реализации любая программа ( в режиме ядра или в пространстве пользователя ) может использовать эти функции напрямую.
Однако некоторые платформы, такие как процессоры ARM Kirkwood SheevaPlug и AMD Geode , не реализованы как расширения ISA и доступны только через драйверы режима ядра. Для того чтобы приложения пользовательского режима, использующие шифрование, такие как wolfSSL , OpenSSL или GnuTLS , могли воспользоваться таким ускорением, они должны взаимодействовать с ядром. [2]
- АФ_АЛГ
- Интерфейс на основе netlink , который добавляет
AF_ALG
семейство адресов; [3] он был объединен с версией 2.6.38 основной ветки ядра Linux . [4] [5] Когда-то существовал плагин для OpenSSL для поддержки AF_ALG, [6] который был представлен для объединения. [7] В версии 1.1.0 OpenSSL получил еще один патч для AF_ALG, предоставленный Intel. [8] wolfSSL может использовать AF_ALG и cryptodev [9]
- криптодев
- Интерфейс OpenBSD Cryptographic Framework
/dev/crypto
OpenBSD был перенесен на Linux, [10] [11] [12], но так и не был объединен.
Смотрите также
Ссылки
- ^ "Разработка ядра". LWN.net . 2002. Получено 29.09.2013 .
- ^ Сяо, Юань; Ли, Мэнъюань; Чэнь, Саньчуань; Чжан, Иньцянь (2017-10-30). "STACCO: Дифференциальный анализ трассировок сторонних каналов для обнаружения уязвимостей SSL/TLS в защищенных анклавах". Труды конференции ACM SIGSAC 2017 года по компьютерной и коммуникационной безопасности . CCS '17. Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники. стр. 859–874. arXiv : 1707.03473 . doi :10.1145/3133956.3134016. ISBN 978-1-4503-4946-8.
- ↑ Эдж, Джейк (20 октября 2010 г.). «API шифрования пользовательского пространства на основе сетевых ссылок». LWN.net . Получено 29 декабря 2011 г.
- ^ Изменения Linux_2_6_38
- ^
03c8efc Архивировано 15.04.2013 в archive.today
fe869cd Архивировано 15.04.2013 в archive.today
8ff5909 Архивировано 15.04.2013 в archive.today
- ^ Markus (2011-10-22). "OpenSSL - AF_ALG". Архивировано из оригинала 28 сентября 2011 года . Получено 29 декабря 2011 года .
- ^ Markus nepenthesdev на gmail.com (2011-07-03). "#2554: Patch: AF_ALG dynamic engine for linux >= 2.6.38". OpenSSL . Архивировано из оригинала 2016-04-09 . Получено 29 декабря 2011 .
- ^ clucey (2016-02-17). "ALG: Добавить движок AFALG". OpenSSL . Получено 31 августа 2016 г. .
- ↑ Джейкоб (19 декабря 2018 г.). «AF_ALG + Cryptodev-linux» . Проверено 10 марта 2020 г.
- ^ Людвиг, Михал. "CryptoDev для Linux" . Получено 29 декабря 2011 г.
- ^ Mavrogiannopoulos, Nikos. "cryptodev-linux". Архивировано из оригинала 20 марта 2012 года . Получено 12 января 2012 года .
- ↑ Эдж, Джейк (25 августа 2010 г.). «API для доступа из пространства пользователя к криптографии ядра». LWN.net . Получено 29 декабря 2011 г.