• Главная
  • Карта сайта
Не найдено

Апаратні трояни для процесорів Intel - перша практична реалізація

Вісім років тому Міністерство оборони США публічно висловило стурбованість тим, що при достатньому технічному рівні противника існує небезпека виконання ним прихованої модифікації будь-якого чіпа. Змінений чіп стане працювати в критичних вузлах, а впроваджений "троянський кінь" або "апаратна закладка" будуть залишатися непоміченими, підриваючи обороноздатність країни на самому фундаментальному рівні. Довгий час така загроза залишалася гіпотетичною, однак міжнародна група дослідників недавно змогла реалізувати її на фізичному рівні.

Георг Беккер (Georg T. Becker) з університету штату Массачусетс разом з колегами зі Швейцарії та Німеччини в рамках докази концепції створив дві версії "трояна апаратного рівня", що порушує роботу генератора (псевдо) випадкових чисел (ГПСЧ) в криптографическом блоці процесорів Intel архітектури Ivy Bridge. Створювані за допомогою зміненого ГПСЧ криптографічні ключі для будь-якої системи шифрування виявляться легко передбачуваними.

Створювані за допомогою зміненого ГПСЧ криптографічні ключі для будь-якої системи шифрування виявляться легко передбачуваними

Троян апаратного рівня займає мізерну частину навіть на окремих елементах логічної схеми (зображення: Georg T. Becker et al.).

Наявність апаратної закладки ніяк не визначається ні спеціально розробленими для цього вміщеними тестами, ні при зовнішньому огляді процесора. Як же таке могло статися? Для відповіді на це питання необхідно повернутися до історії появи апаратного ГПСЧ і ознайомитися з базовими принципами його роботи.

При створенні криптографічних систем потрібно усунути можливість швидкого підбору ключів. Їх довжина і міра непередбачуваності безпосередньо впливають на число варіантів, які довелося б перебрати атакуючої стороні. Довжину можна задати прямо, а от домогтися унікальності варіантів ключів і їх рівної ймовірності набагато складніше. Для цього під час створення ключів використовують випадкові числа.

В даний час прийнято вважати, що за рахунок тільки програмних алгоритмів можна отримати істинно випадковий потік чисел з їх рівномірним хаотичним розподілом по всьому зазначеному безлічі. Вони завжди будуть мати велику частоту зустрічальності в якихось частинах діапазону і залишатися до деякої міри передбачуваними. Тому більшість застосовуваних на практиці генераторів чисел слід сприймати як псевдовипадкові. Вони рідко виявляються досить надійними в криптографическом сенсі.

Для зниження ефекту передбачуваності будь-якого генератора чисел потрібно надійне джерело випадкового початкового заповнення - random seed. Зазвичай в якості нього використовуються результати вимірювань якихось хаотичних фізичних процесів. Наприклад, флуктуації інтенсивності світлових коливань або реєстрація радіочастотного шуму. Такий елемент випадковості (та й весь апаратний ГПСЧ) було б технічно зручно використовувати в компактному варіанті, а в ідеалі - зробити вбудованим.

Компанія Intel вбудовує генератори (псевдо) випадкових чисел в свої чіпи починаючи з кінця дев'яностих. Раніше їх природа була аналогової. Випадкові значення на виході виходили за рахунок впливу важко прогнозованих фізичних процесів - теплових шумів і електромагнітних завад. Аналогові генератори було порівняно просто реалізувати у вигляді окремих блоків, але важко інтегрувати в нові схеми. У міру зменшення технологічного процесу були потрібні нові і тривалі етапи калібрування. До того ж закономірне зниження напруга живлення погіршувало співвідношення сигнал / шум в таких системах. ГПСЧ працювали постійно і споживали значну кількість енергії, а швидкість їх роботи залишала бажати кращого. Ці недоліки накладали обмеження на можливі сфери застосування.

Ідея генератора (псевдо) випадкових чисел з повністю цифровою природою довгий час здавалася дивною, якщо не абсурдною. Адже стан будь-якої цифрової схеми завжди жорстко детерміновано і передбачувано. Як внести в неї необхідний елемент випадковості, якщо немає аналогових компонентів?

Спроби отримати бажаний хаос на базі тільки цифрових елементів робилися інженерами Intel з 2008 року і увінчалися успіхом через пару років пошуків. Робота була представлена в 2010 році на літньому симпозіумі VLSI в Гонолулу і справила маленьку революцію в сучасній криптографії. Вперше повністю цифровий, швидкий і енергоефективний ГПСЧ був реалізований в серійному виробництві процесорах загального призначення.

Процесор Сore i7-3770K архітектури Ivy Bridge з вбудованим генератором (псевдо) випадкових чисел (фото: thg.ru).

Його перше робоче назва була Bull Mountain. Потім його перейменували в Secure Key. Цей криптографічний блок складається з трьох базових модулів. Перший генерує потік випадкових бітів з відносно повільною швидкістю - 3 Гбіт / с. Другий оцінює їх дисперсію і об'єднує в блоки по 256 біт, які використовуються як джерела випадкового початкового заповнення. Після ряду математичних процедур в третьому блоці з більш високою швидкістю генерується потік випадкових чисел довжиною 128 біт. На їх основі за допомогою нової інструкції RdRand при необхідності створюються і поміщаються в спеціально відведений регістр випадкові числа необхідної довжини: 16, 32 або 64 біта, які в підсумку і передаються запросила їх програмі.

Помилки в генераторах (псевдо) випадкових чисел і їх зловмисні модифікації стали причиною втрати довіри до популярних криптографічним продуктам і саму процедуру їх сертифікації.

Через виняткову важливість ГПСЧ для будь-якої криптографічного системи в Secure Key були вбудовані тести для перевірки якості генеруються випадкових чисел, а для сертифікації залучили провідні експертні групи. Весь блок відповідає критеріям стандартів ANSI X9.82 і NIST SP 800-90. До того ж він сертифікований на рівень 2 відповідно до вимог NIST FIPS 140-2.

Як ми побачимо далі, ні відповідальний підхід при розробці, ні розширена сертифікація не захистили криптографічний блок від реальної можливості прихованої і недетектіруемой модифікації.

До цих пір більшість робіт про апаратні троянах носило гіпотетичний характер. Дослідниками пропонувалися додаткові конструкції з невеликих логічних ланцюгів, які слід було якимось чином додати в існуючі чіпи. Наприклад, Семюел Талмадж Кінг (Samuel Talmadge King) з співавторами представив на конференції LEET-08 варіант такого апаратного трояна для центрального процесора, який надавав би повний контроль над системою віддаленого атакуючому. Просто відправивши сконфігурованих певним чином UDP-пакет, можна було б зробити будь-які зміни на такому комп'ютері і отримати необмежений доступ до його пам'яті. Однак додаткові логічні ланцюги порівняно просто визначити при мікроскопії, не кажучи вже про спеціалізованих методах пошуку таких модифікацій. Група Беккера пішла іншим шляхом:

Замість того щоб підключати до чіпу додаткову схему, ми впровадили наші закладки апаратного рівня, просто змінивши роботу деяких вже наявних в ньому мікротранзісторов. Після ряду спроб нам вдалося вибірково змінити полярність допанта і внести бажані модифікації в роботу всього криптографічного блоку. Тому наше сімейство троянів виявилося стійко до більшості методів виявлення, включаючи сканує мікроскопію і порівняння з еталонними чіпами ".

Тому наше сімейство троянів виявилося стійко до більшості методів виявлення, включаючи сканує мікроскопію і порівняння з еталонними чіпами

Перетворювач складається з p- і n-канального МОП-транзисторів (вгорі і внизу малюнка відповідно), з'єднаних стоками через металевий шар (а). Троян впроваджується шляхом вибіркового зміни полярності допанта p-канального МОП-транзистора. Висновок на позитивному контакті (VDD) виявляється постійним і не залежить від вихідних випадкових чисел (зображення: Georg T. Becker et al.).

В результаті проведеної роботи замість унікальних чисел довжиною 128 біт третій блок Secure Key став накопичувати послідовності, в яких розрізнялися лише 32 біта. Створювані на основі таких псевдовипадкових чисел криптографічні ключі мають дуже високу передбачуваністю і можуть бути розкриті протягом декількох хвилин на звичайному домашньому комп'ютері.

Що лежить в основі апаратної закладки вибіркове зміна питомої електричної провідності було реалізовано в двох варіантах:

  1. цифрова пост-обробка сигналів від Intel Secure Key;
  2. використання на побічну каналі за методом табличній бітової підстановки (Substitution-box).

Останній метод більш універсальний і може застосовуватися з невеликими змінами на інших чіпах.

Можливість використовувати вбудований ГПСЧ через інструкцію RdRand вперше з'явилася в процесорах Intel архітектури Ivy Bridge. Компанія Intel написала докладні керівництва для програмістів. У них розказано про методи оптимальної реалізації криптографічних алгоритмів і дається посилання на опис принципів роботи Secure Key. Довгий час зусилля експертів з безпеки були спрямовані на пошук вразливостей в програмній частині. Мабуть, вперше приховане втручання на апаратному рівні виявилося куди більш небезпечною і цілком реалізовується на практиці технологією.

Як же таке могло статися?
Як внести в неї необхідний елемент випадковості, якщо немає аналогових компонентів?
Провайдеры:
  • 08.09.2015

    Batyevka.NET предоставляет услуги доступа к сети Интернет на территории Соломенского района г. Киева.Наша миссия —... 
    Читать полностью

  • 08.09.2015
    IPNET

    Компания IPNET — это крупнейший оператор и технологический лидер на рынке телекоммуникаций Киева. Мы предоставляем... 
    Читать полностью

  • 08.09.2015
    Boryspil.Net

    Интернет-провайдер «Boryspil.net» начал свою работу в 2008 году и на данный момент является одним из крупнейших поставщиков... 
    Читать полностью

  • 08.09.2015
    4OKNET

    Наша компания работает в сфере телекоммуникационных услуг, а именно — предоставлении доступа в сеть интернет.Уже... 
    Читать полностью

  • 08.09.2015
    Телегруп

    ДП «Телегруп-Украина» – IT-компания с 15-летним опытом работы на рынке телекоммуникационных услуг, а также официальный... 
    Читать полностью

  • 08.09.2015
    Софтлинк

    Высокая скоростьМы являемся участником Украинского центра обмена трафиком (UA — IX) с включением 10 Гбит / сек... 
    Читать полностью