В подсистеме Device Mapper ядра Linux готовится появление поддержки inline-шифрования — механизма DM-INLINECRYPT, который, как ожидается, войдёт в состав Linux 7.2.
Inline encryption представляет собой аппаратно-ускоренное шифрование данных непосредственно на уровне накопителя или контроллера памяти, без необходимости выполнять криптографические операции средствами центрального процессора. Подобный механизм уже используется в Android и мобильных SoC, а также поддерживается современными NVMe-накопителями и UFS-устройствами.
Новый слой DM-INLINECRYPT позволит использовать inline encryption совместно с device-mapper — инфраструктурой, лежащей в основе dm-crypt, LVM, Android dynamic partitions и других подсистем блочного ввода-вывода Linux. До сих пор inline encryption плохо сочеталось с составными device-mapper-конфигурациями, поскольку криптографические параметры терялись или не передавались между виртуальными блочными устройствами.
Разработчики предлагают специальную dm-цель (dm-inlinecrypt), которая будет передавать параметры аппаратного шифрования нижележащим устройствам, сохраняя совместимость с существующим стеком хранения Linux.
Ожидается, что механизм окажется особенно полезен:
- на смартфонах и ARM-устройствах;
- в Android-системах;
- на серверах с NVMe-накопителями, поддерживающими inline crypto;
- в сценариях с высокой нагрузкой на CPU и I/O.
В обсуждении также отмечается, что inline encryption позволяет уменьшить энергопотребление и снизить нагрузку на процессор по сравнению с традиционным dm-crypt, особенно на мобильных устройствах.
Пока работа находится на стадии публикации RFC-патчей и обсуждения архитектуры. В текущем виде решение ориентировано прежде всего на интеграцию с существующей Linux block layer crypto API (blk-crypto), используемой Android и файловыми системами F2FS и ext4.
Исходные обсуждения и патчи опубликованы в списке рассылки linux-block, а краткий обзор изменений появился на Phoronix.
Перемещено CrX из kernel


