Група изследователи от Калифорнийския университет в Сан Диего демонстрира възможността за възстановяване на закрити хостинг RSA ключове на SSH сървър, използвайки пасивен анализ на SSH трафик. Атаката може да бъде извършена на сървъри, които поради стечение на обстоятелствата или действия на атакуващия претърпяват сривове по време на изчисляване на цифровия подпис при установяване на SSH връзка. Сривовете могат да бъдат както софтуерни (неправилно изпълнение на математически операции, повреда на паметта), така и хардуерни (грешки при работа на NVRAM и DRAM или сривове по време на прекъсвания на захранването).
Един от вариантите за предизвикване на сривове могат да бъдат атаки от клас RowHammer, които между другото позволяват дистанционно или при обработка на JavaScript код в браузъра да се постигне изкривяване на съдържанието на отделни битове памет при интензивно циклично четене на данни от съседни клетки в паметта. Друг вариант за предизвикване на сривове може да бъде експлоатацията на уязвимости, водещи до преливане на буфера и повреда на данни с ключове в паметта.
В публикуваното изследване е показано, че при използване на цифрови подписи в SSH, базирани на RSA алгоритъм, параметрите на цифровия подпис са подложени на атаки за възстановяване на закрити RSA ключове по метода Lattice (Fault Attack), в случай на софтуерни или хардуерни сривове по време на процеса на изчисляване на подписа. Същността на метода е, че сравнявайки коректния и сбойния цифрови подписи RSA, можем да определим най-големия общ делител за извеждане на едно от простите числа, използвани при формирането на ключа.
В основата на RSA шифроването лежи операцията по повдигане на степен по модул с голямо число. В открития ключ се съдържат модул и степен. Модулът се формира на базата на две случайни прости числа, които са известни само на притежателя на закрития ключ. Атаката може да бъде приложена към реализации на RSA, използващи Китайската теорема за остатъците и детерминирани схеми за добавъчно попълване, като PKCS#1 v1.5.
За да се извърши атака, е достатъчно пасивно наблюдение на легитимни връзки към SSH-сървъра, за да се установи в трафика повреден цифров подпис, който може да се използва като източник на информация за възстановяване на закрития RSA-ключ. След възстановяването на хостовия RSA-ключ, атакуващият може да пренасочи незабелязано заявките към фалшив хост, представящ се за компрометиран SSH-сървър и да организира прихващане на предаваната информация. сървър данни.
При анализ на колекция от прихванати мрежови данни, включваща около 5.2 милиарда записа, свързани с използването на протокола SSH, изследователите открили около 3.2 милиарда отворени хостови ключове и цифрови подписи, използвани по време на установяването на SSH-сеанс. От тях 1.2 милиарда (39.1%) са били генерирани с алгоритъма RSA. В 593671 случая (0.048%) RSA-подписът е бил повреден и не е преминал проверка. За 4962 повредени подписа успели да приложат метода на факторизация Lattice за определяне на закрития ключ по известния отворен ключ, което в крайна сметка е позволило възстановяването на 189 уникални двойки RSA ключове (в много случаи за генериране на различни повредени подписи са използвани едни и същи ключове и повредени устройства). За възстановяването на ключовете са били необходими около 26 часа процесорно време.

Проблемът засяга само специфични реализации на протокола SSH, които се използват главно на вградени устройства. В примери за устройства с проблемни реализации на SSH се споменават продуктите на Zyxel, Cisco, Mocana и Hillstone Networks. OpenSSH не е податлив на проблема, тъй като използва библиотеката OpenSSL (или LibreSSL) за генериране на ключове, която има защита срещу атаки, основани на анализ на повреди (Fault Attack), налична от 2001 година. Освен това, в OpenSSH схемата за цифрови подписи ssh-rsa (на базата на sha1) беше обявена за остаряла и изключена с версия 8.8 (поддръжката на схемите rsa-sha2-256 и rsa-sha2-512 остава). Потенциално атаката може да се прилага и за протокола IPsec, но изследователите не разполагаха с достатъчно експериментални данни за потвърждаване на подобна атака на практика.
Източник: opennet.ru
