The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"В OpenSSH добавлена защита от атак по сторонним каналам"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"В OpenSSH добавлена защита от атак по сторонним каналам"  +/
Сообщение от opennews (??), 22-Июн-19, 09:09 
Дэмиен Миллер (djm @) добавил (https://marc.info/?l=openbsd-cvs&m=156109087822676&w=2) в OpenSSH улучшение, которое должно помочь защитить от различных атак по сторонним каналам, таким как Spectre, Meltdown (https://www.opennet.me/opennews/art.shtml?num=47856), RowHammer (https://www.opennet.me/opennews/art.shtml?num=41340) и RAMBleed (https://rambleed.com/). Добавленная защита призвана предотвратить восстановление приватного ключа, находящегося в оперативной памяти, пользуясь утечками данных по сторонним каналам.


Суть защиты в том, что приватные ключи, в моменты, когда они не используются, зашифровываются с помощью симметричного ключа, который получен из относительно большого «предварительного ключа» (prekey), состоящего из случайных данных (в настоящее время его размер - 16 КБ).
С точки зрения реализации, приватные ключи шифруются при загрузке в память, а затем автоматически и прозрачно расшифровываются при использовании для подписей или при сохранении/сериализации.


Для успешной атаки злоумышленники должны восстановить весь prekey с высокой точностью, прежде чем они смогут попытаться расшифровать защищённый приватный ключ. Однако нынешнее поколение атак имеет такую частоту ошибок восстановления битов, что совокупность этих ошибок делают корректное восстановление предварительного ключа маловероятным.

URL: https://undeadly.org/cgi?action=article;sid=20190621081455
Новость: https://www.opennet.me/opennews/art.shtml?num=50929

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "В OpenSSH добавлена защита от атак по сторонним каналам"  –9 +/
Сообщение от Аноним (-), 22-Июн-19, 09:09 
...и создали новый класс уязвимостей...
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "В OpenSSH добавлена защита от атак по сторонним каналам"  +/
Сообщение от Аноним (2), 22-Июн-19, 09:49 
Ваше второе имя Капитан Очевидность? ;)
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "В OpenSSH добавлена защита от атак по сторонним каналам"  +3 +/
Сообщение от Fedd (ok), 22-Июн-19, 11:20 
Там и без шифрования восстановить маловероятно
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "В OpenSSH добавлена защита от атак по сторонним каналам"  –2 +/
Сообщение от Анонм (?), 22-Июн-19, 14:20 
Надо еще по cron'у пинать сигналом на перешифрование новым ключом с частотой выше, чем можно вычитать
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "В OpenSSH добавлена защита от атак по сторонним каналам"  +2 +/
Сообщение от pda (?), 22-Июн-19, 15:39 
Перешифровывать не обязательно, некоторые алгоритмы обладают частичной гомоморфностью. По идее можно покумекать и как-нибудь циклицески домножать (rsa вроде как раз гомоморфен к умножению) ключ и шифротекст на какое-нибудь значение, чтобы синхронно измменять их.

Надо будет подумать на досуге.

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "В OpenSSH добавлена защита от атак по сторонним каналам"  +1 +/
Сообщение от Онанимус (?), 22-Июн-19, 22:22 
Ну как, подумали?
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "В OpenSSH добавлена защита от атак по сторонним каналам"  +4 +/
Сообщение от pda (?), 23-Июн-19, 00:35 
Подумал. И пока выходит что сложные схемы городить вообще нет смысла. Конечно это нарушает заповедь "не изобретать собственную криптографию", но одноразовый шифроблокнот видится мне достаточно простым и надёжным.

Шаг 1. Надо увеличть размер секретных данных, чтобы осложнить их извлечение по сторонним каналам. Для этого выделяем буфер в скажем 16 кб (размер взять из исходного поста), в конец помещаются секретные данные, а начало заполняется с crng. Теперь блоками равными длине секретных данных мы последовательно ксорим эти блоки, а в конце ксорим сами данные.

[мусор1][мусор2][мусор2]...[секрет] т.е. в итоге [скрытый секрет] = мусор1 ^ мусор 2 ^ мусор3 ^ ...

Т.е. мы добились того, что для чтения секретных данных нужно получить весь 16 к блок. На этот моменте не параноики могут и успокоиться. Просто достаточно вспомнить сколько времени потребуется на кражу такого объяма. А ведь можно увеличить длину буфера до 64 кб, мегабайта и т.д.

Но мы параноики.

Шаг 2. Выделяем второй буфер той же длины и заполняем его с crng. Затем ксорим с первым буфером и записываем результат в первый. Т.е. теперь перед восстановлением секрета его надо ксорить со вторым буфером.

Шаг 3. Запускаем фоновый поток, который каждые n секунд будет заполнять третий буфер той же длины с crng и ксорить одновременно и первый и второй. Третий буфер после этого должен очищаться. Из-за свойств xor мы всё ещё будем способны восстановить секрет имея в наличии только два буфера.

На этом всё. Есть надёжные реализации crng. Одноразовые шифроблокноты доказанно не взламываемые. Вычислительная сложность копеечная (кроме crng). Все операции выполняются за константное время.

Т.е. от прямой кражи хранит операционка, а любители получить что-то по сторонним каналам - замучаются тут биты глотать... По моему так.

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "В OpenSSH добавлена защита от атак по сторонним каналам"  +/
Сообщение от Ivan_83 (ok), 23-Июн-19, 03:21 
НУДНО!

Берём рандому на хх килобайт, пихаем в KDF, результат используем для шифрования и расшифрования секретного ключа в памяти.
При этом после каждого расшифрования можно легко генерить новый одноразовый ключ на хх кб и им шифровать секретный.

Твоя схема с ксором - очень плоха, вот почему:
атакующим может не спеша вычитывать по байту "мусор"[1234n] и потом "скрытый секрет" и получать один байт закрытого ключа.
Те ему не придётся собирать все 16к или сколько там мусора чтобы узнать хотя бы один байт ключа, в итоге скажем по байту в день/неделю ключ будет прочитан.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "В OpenSSH добавлена защита от атак по сторонним каналам"  +/
Сообщение от pda (?), 23-Июн-19, 15:44 
> атакующим может не спеша вычитывать по байту "мусор"[1234n] и потом "скрытый секрет" и получать один байт закрытого ключа.

Как? Ведь его содержимое постоянно меняется? И после каждого изменения то, что было прочитано раньше теряет смысл.

> При этом после каждого расшифрования можно легко генерить новый одноразовый ключ на хх кб и им шифровать секретный.

Фишка-то как раз в том, что расшифровывание может быть процедурой редкой.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "В OpenSSH добавлена защита от атак по сторонним каналам"  +/
Сообщение от pda (?), 23-Июн-19, 17:31 
Впрочем, это была всего лишь быстрая идея, так чтобы сделать секретную информацию зависимой от всего первого буфера. Вместо xor можно использовать какой-нибудь легковесный шифр, типа speck (или aes, если аппаратное ускорение доступно), чтобы блок n-1 становился ключём для блока n, а результат - ключём для блока n+1.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "В OpenSSH добавлена защита от атак по сторонним каналам"  +/
Сообщение от Ivan_83 (ok), 27-Июн-19, 02:44 
Ещё раз: в твоей схеме достаточно читать по одному байту из каждого блока и один байт из закрытого ключа чтобы восстановить один байт закрытого ключа.
Это как в вин98 xintruder пароль ломал на сетевую шару: венда ему сообщала сколько символов пароля введено правильно, в итоге время подбора пароля падало до смешних значений.
Не нужны никакие шифры, есть kdf для этого, вот только для этого. И легковестность всем побоку, впрочем нынче тот же sha1, sha2-256 уже аппаратный в райзенах, а aes-ni и вообще много где.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру