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

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

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

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

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

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

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

Архітектура TPM У специфікації описаний мінімальний набір алгоритмів і протоколів, яким повинен задовольняти чип TPM. Крім того, виробником можуть бути реалізовані додаткові алгоритми і протоколи (які, зрозуміло, повинні бути описані виробником у відповідній документації).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Генератор ключів RSA (англ. RSA Key Generator) Створює пари ключів RSA. TCG не визначає вимог до часу генерації ключів.

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

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

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

Можливі застосування

Аутентифікація