Аппаратное шифрование Kingston, SanDisk — уязвимо.

Компания Kingston Technology — один из лидеров в области производства безопасных USB-накопителей. Она одна из первых начала выпускать USB flash drive с аппаратным шифрованием (Kingston DataTraveler secure). Kingston Technology объявила, что некоторые модели USB-накопителей с функцией аппаратной защиты — уязвимы. На сайте компании размещено объявление, в котором говорится, что с помощью некоторой утилиты можно получить доступ к данным USB-накопителя (т.е. взломать его без предъявления пароля). Новость удивительная тем, что некоторые модели Kingston, которые подвержены взлому, были сертифицированы по стандарту FIPS 140-2.

Все началось с того, что немецкая компания SySS опубликовала документ под названием «Компании SySS удалось взломать USB-накопитель с аппаратным шифрованием Kingston, сертифицированный FIPS 104-2». В этом документе они подробно описывают протокол аутентификации между накопителем и программой (пользователем), который они выяснили исходя из перехваченного USB-трафика + уязвимость, которая была обнаружена. А также приведены скриншоты утилиты, которая внедряется в процесс программы Аутентификации для USB-накопителя. В результате вводим любой пароль и доступ открыт.
Что получается? Данные сильно шифруются аппаратурой, но есть внешняя утилита, которая выполняет Аутентификацию (проверка\изменение пароля и настройки), с помощью некого протокола (API + алгоритм утилиты). Этот протокол не был защищен и в нем нашли уязвимость.

Тоже самое было обнаружено и описано для USB-накопителей с аппаратным шифрованием (hardware based encryption) от SanDisk.

Наиболее интересная дискуссия на эту тему развернулась на блоге Брюса Шнаера — известного криптолога и специалиста по компьютерной безопасности.

Наиболее интересные резюме из комментариев в этом блоге:

  • Стандарт FIPS 140-2 ни причем. Он просто не покрывает\проверяет те места, в которых была обнаружена уязвимость.
  • Компании-производители прикрываются этим стандартом FIPS 140-2, чтобы внушить пользователям, что уровень защиты данных достаточно высок. И тем самым дискредитируют этот стандарт. Хотя, он на самом деле всего лишь проверяет\тестирует криптографический модуль, но не весь продукт в целом.
  • То, что схожая уязвимость обнаружена в USB-накопителях разных устройств говорит о том, что эта технология (вместе с уязвимостью) либо кочует из рук-в-руки между крупными компаниями, либо ее делает кто-то третий (outsourcing) и многие компании пользуются его услугами.
  • Наиболее Правильный протокол аутентификации в данном случае:
    — пароль должен шифровать ключ;
    — Ключ должен шифровать данные на устройстве.
  • Сейчас уже понятно почему SanDisk отказалась предоставить Linux-сообществу документацию на USB-протокол host-to-drive для своего накопителя. В случае публикации было бы очевидно, что доступ открывается константной командой.
    Вывод: любой накопитель, для которого отсутствует документация (USB-протокола) для создания Linux-драйвера, потенциально уязвим. В частности IronKey.
  • Для сравнения, данная ошибка — это все равно, что продавать замки и сейфы с одинаковыми ключами от них.

Напомним, что в прошлом данная схема аутентификации на самом деле была использована многими Биометрическими USB flash drive, т.е. процесс аутентификации происходил на уровне программы, после чего константный сигнал передавался в аппаратную часть для открытия доступа к USB-устройству.
Исследователи обнаружили этот сигнал к USB-контролеру устройства и таким образом вся защита оказалась сплошной уязвимостью.

После перевода оригинальной статьи на русский мы планируем более детально рассмотреть эту уязвимость.

В нашем последнем обзоре биометрической флешки BioSlimDisk с аппаратным шифрованием мы показали на иллюстрациях, чем отличается аппаратная аутентификация от программной для таких устройств.

В дополнение хотим привести наиболее важные, на наш взгляд, критерии безопасности для USB-устройств:

  1. Защита внутренней конфигурации.
    Многие USB-накопители, токены и др. устройства аутентификации подразумевают изменение своих свойств, таких как параметры аутентификации, пароли доступа и др..  Эта конфигурация должна быть соответствующим образом защищена.
  2. Внешняя утилита управления потенциальна уязвима.
    Если есть Приложения, которые извне способны управлять устройством, а также управлять доступом к данным на устройстве, то возможны атаки на их протоколы. Тоже самое относится и к удаленному управлению\удалению устройств. Данные протоколы не должны быть подвержены всевозможным REPLY-атакам.
  3. Активные устройства могут быть потенциально опасными.
    В последнее время появились токены, которые из себя представляют USB-клавиатуру, генерирующую OTP пароль в текстовом виде. При подключении такие токены обладают функцией авто-навигации, которая способна открыть на компьютере определенный web-сайт. Поскольку есть заведомо вредоносные сайты, это может привести к заражению ПК.

Несмотря на возможность наличия многих уязвимостей в USB-устройствах, жизнь не может стоят на месте. По этому поводу хотим вам привести очень интресный принцип, который зародился в форумах и блогах при обсуждении разных программ и устройств по защите данных и аутентификации. Этот принцип гласит: «Шифрования не достаточно» (в оригинале ‘Encryption is not enough’). Это означает:

  • Кроме того, что данные зашифрованны, либо еще каким-нибудь образом закрыты, есть много мест, где эти же данные можно перехватить — незащищенные бэкапы, временные файлы, зараженные ПК со шпионским ПО и т.д..
  • Протокол защиты и его реализация должны быть по возможности открытыми (open source).
  • К собственно-разработанным алгоритмам шифрования, 100% доверия нет. Можно расчитывать только на алгоритмы, которые признаны сообществом криптологов и прошли проверку временем.
  • Должно существовать открытое сообщество у данного продукта, чтобы люди могли своевременно находить уязвимости в новых версиях ПО или реализациях протокола, и сообщать об этом всем. Каждая новая версия должна рассматриваться с точки зрения безопасности заново.

Если определенный продукт отвечает этим требованиям, то это повод для доверия ему.