Trusted Platform Module

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Trusted Platform Module
Коротка назва TPM
CMNS: Trusted Platform Module у Вікісховищі

В обчислювальній техніці Trusted Platform Module (TPM) — назва специфікації, яка описує криптопроцессор, в якому зберігаються криптографічні ключі для захисту інформації, а також узагальнене найменування реалізацій зазначеної специфікації, наприклад, у вигляді «чіпа TPM» або «пристрою безпеки TPM» (Dell) . Раніше називався «чіпом Фріца» (колишній сенатор Ернест «Фріц» Голлінгс відомий своєю гарячою підтримкою системи захисту авторських прав на цифрову інформацію, DRM). Специфікація TPM розроблена некомерційною організацією Trusted Computing Group[en]. Поточна версія специфікації TPM — 2.0 ревізія 1.59, видання 20 березня 2020.[TCG 1]

Історія розробки[ред. | ред. код]

У січні 1999 року була створена робоча група виробничих компаній «Альянс довірчих комп'ютерних платформ» (англ. Trusted Computing Platform Alliance, TCPA) з метою розвитку механізмів безпеки і довіри в комп'ютерних платформах. Спочатку в TCPA входили провідні розробники апаратного та програмного забезпечення — HP, Compaq (в даний час підрозділ HP), IBM, Intel, Microsoft.[1]

У жовтні 1999 року була анонсована проектна специфікація і відкрита можливість іншим компаніям приєднатися до альянсу. У серпні 2000 року була випущена для обговорення попередня публічна версія специфікації. Специфікація TCPA версії 1.0 була опублікована в лютому 2001 року, в ній були визначені основні вимоги до TPM з точки зору виробника електронних пристроїв.[2]

Потім була створена робоча група по створенню TPM, яка переглянула загальну специфікацію з точки зору практичного застосування довірчого модуля (TPM). У серпні 2001 року була випущена специфікація версії 1.1 і створена робоча група з проектування платформи ПК, на яку встановлюється довірчий модуль.[2]

У квітні 2003 року була організована некомерційна організація «Trusted Computer Group» (TCG), яка стала наступником TCPA і продовжила працювати над розвитком вже випущених специфікацій. На додаток до вже створених робочих груп з проектування TPM і платформи ПК були створені групи з розробки специфікацій для мобільних пристроїв, ПК-клієнтів, серверів, запам'ятовуючих пристроїв, інфраструктури довірчих обчислень, програмного забезпечення (англ. Trusted Software Stack, TSS) і довірячогои мережевого з'єднання. У листопаді 2003 року було опубліковано специфікація TPM версії 1.2, остання версія з істотними змінами, в якій по суті описана функціональність TPM.[2]

Короткий огляд[ред. | ред. код]

Trusted Platform Module (TPM), що містить в собі криптопроцессор, забезпечує засоби безпечного створення ключів шифрування, здатних обмежити використання ключів (як для підпису, так і для шифрування / дешифрування) з тим же ступенем повторюваності, що і генератор випадкових чисел . Також цей модуль має наступні можливості: віддалену атестацію, прив'язку і надійне захищене зберігання. Віддалена атестація створює зв'язок апаратних засобів, завантаження системи і конфігурації хоста (ОС комп'ютера), дозволяючи третій особі (на кшталт цифрового магазину музики) перевіряти, щоб програмне забезпечення або музика, завантажена з магазину, не зазнали жодних змін чи скопійовані користувачем (див. DRM). Криптопроцессор шифрує дані таким способом, що вони можуть бути розшифровані тільки на комп'ютері, де були зашифровані, під керуванням того ж самого програмного забезпечення. Прив'язка шифрує дані, використовуючи ключ підтвердження TPM — унікальний ключ RSA, записаний в чіп в процесі його виробництва, або інший ключ, якому довіряють.[3]

Модуль TPM може використовуватися, щоб підтвердити справжність апаратних засобів. Оскільки кожен чіп TPM унікальний для специфічного пристрою, це робить можливим однозначне встановлення автентичності платформи. Наприклад, щоб перевірити, що система, до якої здійснюється доступ — очікувана система.

Архітектура TPM[ред. | ред. код]

У специфікації Trusted Computing Group[en] описаний мінімальний набір алгоритмів і протоколів, яким повинен задовольняти чіп TPM. Крім того, виробником можуть бути реалізовані додаткові алгоритми і протоколи (які, зрозуміло, повинні бути описані виробником у відповідній документації).[TCG 2]

В архітектурі чіпа реалізовані такі захисні механізми:

  • захищене керуванняння пам'яттю[уточнити];
  • шифрування шини і даних[уточнити];
  • тестування режимів блокування[що це?];
  • активне екранування[що це?].

У чіпі реалізовані алгоритми асиметричної криптографії, що забезпечують високий рівень захисту. Деякі елементи логічного дизайну чіпа є нестандартними з точки зору типових методів проектування інтегральних схем (ІС) . Застосовуються і спеціальні прийоми проектування ІС: «заплутування» топології шарів ІС, що ускладнює аналіз функцій елементів мікросхеми. Ряд технологічних особливостей чіпів безпеки спеціально не розголошується компаніями-виробниками, щоб зменшити ймовірність зламу навіть в тому випадку, коли для цього застосовуються сучасні методи аналізу функціонування мікросхем і дороге устаткування.[4]

Введення / Виведення[ред. | ред. код]

Цей компонент керує потоком інформації по шині і керує повідомленнями між відповідним компонентами TPM. I/O компонент вводить в дію політику доступу, пов'язану з функціями TPM. Правила доступу визначаються прапорами доступу, що зберігаються в блоці Opt-In енергонезалежної пам'яті. [5]

Криптографічний процесор[ред. | ред. код]

Здійснює криптографічні операції всередині TPM. Ці операції включають в себе:

  • Генерація асиметричних ключів (RSA);
  • Асиметричне шифрування / розшифрування (RSA);
  • Хешування (SHA-1);
  • Генерація випадкових чисел.

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

Незалежна пам'ять (англ. Non-Volatile Storage)[ред. | ред. код]

Використовується для зберігання ключа підтвердження, кореневого ключа (англ. Storage Root Key, SRK), авторизаційних даних, різних прапорців доступу і блоку Opt-In. Обсяг цього типу пам'яті обмежений (1280 байт). [6]

Ключ підтвердження (англ. Endorsement Key, EK)[ред. | ред. код]

EK — ключ RSA розміром 2048 біт, що ідентифікує чіп, а також весь пристрій, фундаментальний компонент TPM. Відкрита частина називається PUBEK, закрита — PRIVEK. Відповідно до політики безпеки PRIVEK не повинен бути доступний поза чіпом, він ніколи не використовується для генерування підписів . PUBEK зберігається в сертифікаті, використовується тільки для встановлення власника TPM і в процесі генерації AIK. EK генерується до того, як кінцевий користувач отримає платформу. Стандарт дозволяє змінити цей ключ, через що використання TPM може бути обмеженим. [5]

Ключі підтвердження справжності (англ. Attestation Identity Keys, AIK)[ред. | ред. код]

AIK — ключ RSA довжиною 2048 біт, що використовується тільки для підписів, для шифрування не використовується. TPM може згенерувати необмежену кількість AIK, ці ключі повинні бути постійними, але рекомендується зберігати AIK у вигляді Блобів в постійній зовнішньої пам'яті, а не всередині енергонезалежної пам'яті TPM. Відповідно до специфікації передбачається, що виробники забезпечать достатньо місця для багатьох блобів AIK, які будуть одночасно завантажуватися в енергозалежну пам'ять TPM. Перехід AIK від одного TPM до іншого заборонений. [6]

Регістри конфігурації платформи (Platform Configuration Registers, PCR)[ред. | ред. код]

PCR — це унікальні ознаки TPM, в яких в зашифрованому вигляді міститься вся інформація про цілісність метрик системи, починаючи з завантаження BIOS до завершення роботи системи. Інформація, що міститься в PCR, формує корінь довіри для вимірювань (RTM). Можуть зберігатися як в енергонезалежній, так і в енергозалежній пам'яті. Ці регістри скидаються при старті і при перезавантаженні системи. Специфікація вказує мінімальну кількість регістрів (16), кожен регістр містить 160 біт інформації. Регістри 0-7 зарезервовані для потреб TPM. Регістри 8-15 доступні для використання операційною системою і додатками. [5] Зміни значень PCR незворотні і їх значення не можна записати безпосередньо, їх можна тільки розширити новими значеннями, які залежать від попередніх. Всі зміни значень PCR записуються в лог змін, який зберігається в енергозалежній пам'яті. [6]

Генератор випадкових чисел (англ. Random Number Generator, RNG)[ред. | ред. код]

Використовується для генерації ключів і випадковостей в сигнатурах (підписах). [6] TPM повинен бути здатним забезпечити 32 випадкових біта на кожен виклик. RNG чіпа складається з наступних компонентів:

Джерело ентропії і колектор[ред. | ред. код]

Джерело ентропії — процес (або процеси), що забезпечують ентропію. Такими джерелами можуть бути шум, лічильник тактів процесора і інші події. Колектор ентропії — процес, який збирає ентропію, видаляє зміщення, вирівнює вихідні дані. Ентропія повинна передаватися тільки регістру стану.

Регістр стану[ред. | ред. код]

Реалізація регістра стану може використовувати 2 регістра: енергозалежний і незалежний. При старті TPM завантажує енергозалежний регістр з енергонезалежного. Будь-яка подальша зміна регістру стану від джерела ентропії або від змішуючої функції впливає на енергозалежний регістр. При виключенні TPM записує поточне значення регістра стану в енергонезалежний регістр (таке оновлення може відбуватися і в будь-який інший час). Причиною такої реалізації є прагнення реалізувати енергонезалежний регістр на флеш-пам'яті, кількість запису в яку обмежена. TPM повинен забезпечити відсутність експорту регістра стану.

Змішувальна функція[ред. | ред. код]

Бере значення з регістра стану і видає вихідні дані RNG. Кожне використання змішувальної функції повинно змінювати регістр стану.

При втраті живлення відбувається скидання RNG. Будь-які вихідні дані RNG для TPM повинні бути захищені.

Блок SHA-1 (англ. SHA-1 Engine)[ред. | ред. код]

Використовується для обчислення сигнатур (підписів), створення блоків ключів і інших цілей загального призначення. Хеш-інтерфейси доступні поза TPM. Це дозволяє оточенню мати доступ до хеш-функції .

Генератор ключів RSA (англ. RSA Key Generator)[ред. | ред. код]

Створює пари ключів RSA. TCG не визначає вимог до часу генерації ключів. [6]

Пристрій RSA (англ. RSA Engine)[ред. | ред. код]

Використовується для цифрових підписів і шифрування. Немає обмежень на реалізацію алгоритму RSA. Мінімально рекомендована довжина ключа — 2048 біт. [5] Виробники можуть використовувати китайську теорему про залишки або будь-який інший метод. Значення відкритої експоненти має бути .

Компонент Opt-In[ред. | ред. код]

Цей компонент відповідає за стан TPM і статус володіння користувачем TPM. За це відповідають три групи змінних: TPM включений / відключений (в відключеному стані всі операції блокуються), TPM активований / деактивований (в деактивованому стані можливе виконання операцій, напр. зміна власника), користувач пройшов/не пройшов аутентифікацію як власник модуля. Дана інформація зберігається у вигляді прапорців . [5]

Довірена платформа[ред. | ред. код]

Ідея довіреної платформи (англ. trusted platform), або платформи, якій можна довіряти (її очікувана поведінка завжди збігається з реальною), заснована на понятті «корінь довіри» (англ. Root of Trust — набір компонентів, яким потрібно довіряти. Повний набір коренів довіри має мінімальну функціональність, необхідну для опису платформи, що впливає на довіру цій платформі. Є три кореня довіри: корінь довіри для вимірювань (RTM), корінь довіри для зберігання (RTS) і корінь довіри для повідомлень (RTR)[3] . RTM — обчислювальний механізм, який виробляє надійні вимірювання цілісності платформи. RTS — обчислювальний механізм, здатний зберігати хеши значень цілісності. RTR — механізм, який надійно повідомляє про збереженої в RTS інформації. Дані вимірювань описують властивості і характеристики вимірюваних компонентів. Хеші цих вимірів — «знімок» стану комп'ютера. Їх зберігання здійснюється функціональністю RTS і RTR. Порівнюючи хеш виміряних значень з хешем довіреної стану платформи, можна судити про цілісність системи. [7]

Можливі застосування[ред. | ред. код]

Аутентифікація[ред. | ред. код]

TPM є токеном аутентифікації наступного покоління. Криптопроцессор підтримує аутентифікацію і користувача, і комп'ютера, забезпечуючи доступ до мережі тільки авторизованим користувачам і комп'ютерам[TCG 3] . Це може використовуватися, наприклад, при захисті електронної пошти, заснованої на шифруванні або для підписання цифрових сертифікатів, прив'язаних до TPM. Відмова від паролів і використання TPM дозволяють створити більш сильні моделі аутентифікації для проводового, бездротового і VPN доступу[8].

Захист даних від крадіжки[ред. | ред. код]

Це є основним призначенням «захищеного контейнера». Самошифровані пристрої, реалізовані на основі специфікацій Trusted Computing Group, роблять доступними вбудоване шифрування і контроль доступу до даних. Такі пристрої забезпечують повне шифрування диска, захищаючи дані при втраті або крадіжці комп'ютера[TCG 4] .

Переваги:

Поліпшення продуктивності[ред. | ред. код]

Апаратне шифрування дозволяє оперувати з усім діапазоном даних без втрат продуктивності.[джерело?]

Посилення безпеки[ред. | ред. код]

Шифрування завжди включено. Крім того, ключі генеруються всередині пристрою і ніколи не покидають його.

Низькі витрати використання[ред. | ред. код]

Не потрібні модифікації операційної системи, додатків і т. д. Для шифрування не використовуються ресурси центрального процесора[8].

Великі перспективи має зв'язка TPM + BitLocker. Таке рішення[слово-паразит] дозволяє прозоро від ПО шифрувати весь диск. [7]

Керування доступом до мережі (Network Access Control[en], NAC)[ред. | ред. код]

TPM може підтверджувати справжність комп'ютера і навіть його працездатність ще до отримання доступу до мережі і, якщо необхідно, поміщати комп'ютер в карантин[9] .

Захист ПО від зміни[ред. | ред. код]

Сертифікація програмного коду забезпечить захист ігр від читерства, а програми, що вимагають особливої обережності, на зразок банківських і поштових клієнтів, — від навмисної модифікації[8]. Відразу ж буде припинено додавання «троянського коня» в додатку, що встановлюється.

Захист від несанкціонованого копіювання[ред. | ред. код]

Захист від копіювання заснована на такому ланцюжку: програма має сертифікат, що забезпечує їй (і тільки їй) доступ до ключа розшифровки (який також зберігається в TPM'і). Це дає захист від копіювання, яку неможливо обійти програмними засобами[8].

Реалізація[ред. | ред. код]

TPM Infineon на материнській платі Asus P5Q PREMIUM

Виробники[ред. | ред. код]

Хоча специфікація передбачає як апаратну, так і програмну реалізації системи TPM, забезпечення належного рівня безпеки, встановленого в загальній специфікації, на сьогоднішній день можливо тільки при апаратній реалізації[2] . Апаратна реалізація у вигляді чіпа TPM була вперше випущена в 2005 році[10] . На сьогоднішній день чіпом TPM оснащено більше 500 000 000 комп'ютерів[TCG 5] . В майбутньому TPM зможе встановлюватися на такі пристрої, як мобільні телефони, пристрої введення і зберігання інформації. Мікроконтролери TPM на сьогоднішній день проводяться і застосовуються багатьма компаніями[TCG 6] .

Критика[ред. | ред. код]

Проблема «довіри»[ред. | ред. код]

Trusted Platform Module критикується деякими[11] IT-фахівцями за назву. Довіра (англ. trust) завжди має бути обопільною, в той час як розробники TPM користувачеві не довіряють, що призводить до обмеження свободи. На думку окремих IT-фахівців,[8][12] для довірених обчислень більше підходить назва «віроломні обчислення» (англ. treacherous computing) оскільки наявність модуля гарантує зворотне — систематичний вихід комп'ютера з підпорядкування. Фактично, комп'ютер перестає функціонувати як комп'ютер загального призначення, оскільки будь-яка операція може зажадати явного дозволу власника комп'ютера .

Втрата «володіння» комп'ютером[ред. | ред. код]

Власник комп'ютера більше не може робити з ним все, що завгодно, оскільки передає частину своїх прав виробникам програмного забезпечення. Зокрема, TPM може заважати (через помилки в ПЗ або навмисне рішення розробників):

  • переносити дані на інший комп'ютер;
  • вільно вибирати програмне забезпечення для свого комп'ютера;
  • обробляти наявні дані будь-якими доступними програмами[8].

Втрата анонімності[ред. | ред. код]

Комп'ютер, обладнаний TPM, має унікальний ідентифікатор, зашитий в чіпі. Ідентифікатор відомий виробнику програмного забезпечення і його неможливо змінити. Це ставить під загрозу одну з природних переваг Інтернету — анонімність[8]. На даний момент, якщо на комп'ютері немає троянських програм, в програмному забезпеченні немає явних помилок, а cookie видалені, єдиним ідентифікатором користувача залишається IP-адреса і заголовки HTTP . Поряд з підвищенням безпеки, наявність модуля TPM може мати негативний ефект на свободу слова, що особливо актуально для країн, що розвиваються. Щоб зрозуміти, до чого може привести віддалено читаний і незмінний ідентифікатор комп'ютера, досить згадати аналогічну проблему з ідентифікаційним номером процесора Pentium III .

Потенційна загроза вільної конкуренції[ред. | ред. код]

Програма, яка стала лідером галузі (як AutoCAD, Microsoft Word або Adobe Photoshop), може встановити шифрування на свої файли, унеможливлюючи доступ до цих файлів за допомогою програм інших виробників, створюючи, таким чином, потенційну загрозу вільної конкуренції на ринку прикладного ПО[8].

Проблеми несправності модуля TPM[ред. | ред. код]

У разі несправності модуля TPM-контейнери, захищені їм, стають недоступними, а дані, що знаходяться в них — невідновні. Для повної гарантії відновлення даних у разі псування модуля TPM необхідно здійснювати складну процедуру резервного копіювання . Для забезпечення секретності система резервного копіювання (backup) також має мати власні TPM-модулі.

Злами[ред. | ред. код]

На конференції з комп'ютерної безпеки Black Hat 2010 року було оголошено про злом чіпа Infineon SLE66 CL PE, виготовленого за специфікацією TPM[13] . Даний чіп використовується в комп'ютерах, обладнанні супутникового зв'язку і ігрових приставках. Для злому використовувався електронний мікроскоп (вартістю близько $ 70 000). Оболонка чіпа була розчинена кислотою, для перехоплення команд були використані найдрібніші голки. У Infineon стверджують, що вони знали про можливість фізичного злому чіпа. Йорг Борчерт (нім. Jörg Borchert), віце-президент компанії, запевнив, що дороге обладнання і технічна складність злому не представляє небезпеки для переважної більшості користувачів чіпів.

Необхідність застосування для забезпечення роботи ОС Windows 11[ред. | ред. код]

24 червня 2021 року, під час офіційної презентації майбутньої операційної системи Windows 11, було оголошено, що для роботи комп'ютера під її керуванням необхідна наявність в системі чіпа TPM. У більшості сучасних платформ ПК немає фізичного чіпа, але є програмна реалізація модуля TPM (fTPM), в тих же, де її немає, є можливість підключення апаратного модуля (тобто на материнській платі є роз'єм для його підключення). Протягом декількох днів після презентації ціни на модулі збільшилися в 5 разів (з 20 до 100 $). Шен Йе (Shen Ye), один з керівників компанії HTC Vive, заявив, що спекулянти сподіваються на те, що незабаром безліч користувачів, не знаючи, як включити fTPM, кинуться купувати модулі, і на те, що можна буде на цьому нажитися ; через це спекулянти стали масово скуповувати модулі і таким чином спровокували підвищення цін[14] .

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Markoff, John. Fears of Misuse of Encryption System Are Voiced (en). The New York Times. Архів оригіналу за 2013-04-28. 
  2. а б в г Study on the Impact of Trusted Computing on Identity and Identity Management. FIDIS. Архів оригіналу за 2013-04-14. 
  3. а б Tien Tuan Anh Dinh, Mark Dermot Ryan. Trusted Computing: TCG proposals. University of Birmingham. Архів оригіналу за 2013-04-28. 
  4. Виталий Зорин. Архитектура чипа безопасности. PC week. 
  5. а б в г д е Allan Tomlinson, 2008.
  6. а б в г д Alan M. Dunn et al, 2011.
  7. а б в г д е ж и Mark Dermot Ryan (2008). Trusted Computing: concepts. University of Birmingham. Архів оригіналу за 2013-04-28. 
  8. Brian Berger (2008). Crypto chip: How the TPM bolsters enterprise security. SC Magazine. Архів оригіналу за 2012-02-23. 
  9. Terry Relph-Knight. Linux and the Trusted Platform Module (TPM). The H Open. Архів оригіналу за 2013-03-31. 
  10. Bruce Schneier. Palladium and the TCPA. Архів оригіналу за 2013-03-31. 
  11. Ричард М. Столмен. Можете ли вы доверять своему компьютеру?. Архів оригіналу за 2013-03-31. 
  12. "Unhackable" Infineon Chip Physically Cracked. Архів оригіналу за 2012-02-23. 
  13. Accent (2021-06-26). Спекулянты скупили модули TPM 2.0, надеясь нажиться на пользователях Windows 11. ixbt.com (ru). 

Trusted Computing Group[ред. | ред. код]

  1. Trusted Platform Module (TPM) Specifications. Trusted Computing Group. Архів оригіналу за 2012-02-23. 
  2. TPM Main Specification Level 2 Version 1.2, Revision 103 Part 1 - Design Principles. Trusted Computing Group. Архів оригіналу за 2012-02-23. 
  3. Trusted Computing Group - Solutions - Authentication. Trusted Computing Group. Архів оригіналу за 2012-02-23. 
  4. Trusted Computing Group - Solutions - Data Protection. Trusted Computing Group. Архів оригіналу за 2012-02-23. 
  5. Trusted Computing Group - Solutions - Authentication. Trusted Computing Group. Архів оригіналу за 2013-03-31. 
  6. Trusted Computing Group - About TCG - TCG Members. Trusted Computing Group. Архів оригіналу за 2013-03-31. 

Література[ред. | ред. код]