Інформаційна безпека

Асиметрична криптографія з одноразовим секретним ключем: опис ідеї і можливе застосування

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

Сценарій одноразового використання секретного ключа:

  1. Створюється ключова пара, що складається з секретного (secret key, SK) і відкритого (public key, PK) ключів.
  2. За допомогою секретного ключа виконується ряд операцій. Перша з них, створення відкритого ключа, вже виконана на першому кроці.
  3. Виконується на перший погляд противоположна дія – секретний ключ знищується без можливості відновлення.

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

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

Приклад використання

Завдання: в розподіленій системі учасники реєструються під створюваними ними самими унікальними ідентифікаторами. Потрібно максимально ускладнити завдання «викрадення» чужого ідентифікатора (identity theft). У разі відбувся викрадення ідентифікатора забезпечити істинному власнику можливість повернення викраденого.

Способи вирішення задачі без використання даної технології:

  • «Нульовий варіант». Сподіватися на чесність учасників процесу.
  • «Адміністративна заборона». При реєстрації учасників вимагати паспорт. Законодавчо заборонити використання чужих кодів. Прив’язати до ідентифікатор номером телефону, використовувати багатофакторну авторизацію. При виникненні підозр знову ж вимагати паспорт. Сподіватися на чесність і непідкупність уповноважених перевіряючих. При виявленні випадків неправомірного використання штрафувати і/або садити винних у в’язницю.
  • «Відкритий ключ як ідентифікатор». Відповідно, секретний ключ використовується як засоби авторизації. В принципі, гідний варіант (зокрема, використовується в криптовалютах) за тим винятком, що у разі втрати або компрометації секретного ключа учасник необоротно вибуває з гри.

Рішення задачі з використанням одноразових секретних ключів:

  1. Учасник створює визначає ключову пару [SK0, PK0]. Відкритий ключ PK0 (або його хеш) стає унікальним ідентифікатором учасника.
  2. Учасник створює додатковий набір ключових пар [SK1, PK1], [SK2, PK2] … [SKn, PKn], і відкритий ключ кожної з них підписується ключем SK0.
  3. Ключ SK0 знищується. Кроки з першого по третій виконуються в рамках єдиного процесу без запису SK0 в енергонезалежну пам’ять.
  4. Для аутентифікації учасник використовує одну з створених на другому кроці ключових пар (наприклад, [SK1, PK1]), а інші, якщо вони були створені, ховає в надійному місці.
  5. Якщо використовувана ключова пара виявляється скомпрометованою, її ключ (у прикладі це PK1) поміщається в список відгуків, а для аутентифікації використовується один із запасних ключів. Або створюється ще один додатковий ключ, що має ланцюжок сертифікації, що починається з PK0 (наприклад, PK0 – PK2 – PKn+1).

Якщо говорити конкретно по криптовалютах, описане тут рішення задачі особливого змісту не має (за допомогою викраденого ключа зловмисник негайно спустошує гаманець), але тема «аутентифікація» далеко не вичерпується застосуванням в криптовалютах.
Для зручності подальшого обговорення можна запропонувати наступні позначення для використовуваних ключів:
i-key – ідентифікує ключ (identity key). У розглянутому прикладі це PK0.
a-key – аутентифицирующий ключ (key authentication). У розглянутому прикладі це PK1 або будь-який інший ключ, прямо або побічно підписаний i-key.
hc-key – один з додаткових надійно захованих ключів (зловмиснику невідомий ні факт їх існування, ні їх кількість), використовуваних для відновлення доступу в разі компрометації a-key.

Маленьке зауваження до використання одноразових секретних ключів. Схема працездатна тільки в тому випадку, якщо у суб’єкта, який створив початкову ключову пару, відсутня мотивація зберегти собі секретний ключ для якоїсь своєї окремої потреби. При використанні даної технології для аутентифікації всі потреби повністю покриваються набором додаткових hc-ключів (до речі, загадка для присутніх: на що натякає абревіатура «hc»?). Збереження первинного ключа ніякої користі не приносить, зате створює уразливість, що робить можливим незворотний викрадення ідентифікатора.

Related Articles

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Close