Вилучення ключа з токена з невибагливим ключем

Досить часто при оформленні сертифікатів ключів електронного підпису можна спостерігати нав'язливий піар токенів з невибагливим ключем. Продавці з посвідчувальних центрів запевняють, що, купивши у них СКЗІ КриптоПРО CSP і токен з невибагливим ключем (Рутокен ЕЦП або JaCarta РТ), ми отримаємо сертифіковані СКЗІ, що забезпечують 100% -вий захист від крадіжки ключів з токена. Але чи так це насправді? Для відповіді на це питання проведемо простий експеримент...

Налаштування тестового стенду

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

  1. ОС MS Windows 7 SP1
  2. СКЗІ КриптоПРО CSP 3.9.8423
  3. Драйвери Рутокен для Windows (x86 і x64). Версія: v.4.1.0.0 от 20.06.2016, WHQL-certified
  4. Єдиний Клієнт JaCarta і JaCarta SecurLogon. Версія 2.9.0 збірка 1531
  5. КриптоАРМ Стандарт Плюс 5. Версія 5.2.0.8847.

Для тестування використовуватимуться токени з невибагливим ключем:

  1. Рутокен ЕЦП. Версія 19.02.14.00 (02)
  2. JaCarta ГОСТ. Номер моделі JC001-2.F09 v2.1

Методика тестування

Змоделюємо типовий процес підготовки Адміністратором інформаційної безпеки ключових документів для організації ЕДО:

  1. генерується контейнер закритого ключа і запит на сертифікат відкритого ключа;
  2. після проходження в засвідчувальному центрі процедури сертифікації із запиту отримується сертифікат;
  3. сертифікат у сукупності з контейнером закритого ключа утворює готову для використання ключову інформацію. Цю ключову інформацію, записану на носії, будемо називати вихідним ключовим документом;
  4. з вихідного ключового документа виготовляються копії, які записуються на відчужувані носії (далі будемо називати їх робочими ключовими документами) і передаються уповноваженим користувачам;
  5. після виготовлення необхідної кількості робочих ключових документів вихідний ключовий документ знищується або депонується на зберігання до органу криптографічного захисту інформації.

У нашому випадку ми не будемо користуватися послугами центрів сертифікації, а згенеруємо ключовий контейнер із самопідписаним сертифікатом і розмістимо його в реєстрі комп'ютера (АРМа генерації ключової інформації), це і буде вихідний ключовий документ. Потім скопіюємо ключову інформацію на Рутокен ЕЦП і JaCarta ГОСТ, виготовивши робочі ключові документи. Після цього знищимо вихідний ключовий документ, видаливши з реєстру ключовий контейнер. І, нарешті, спробуємо скопіювати ключову інформацію з робочих ключових документів назад до реєстру.

Проведення тестування

1. Створіть вихідний ключовий документ.

Опис

Для цього за допомогою КріптоАРМ створимо в реєстрі контейнер закритого ключа test-key-reestr, що містить самопідписаний сертифікат (CN = test)

2. Сформуємо робочі ключові документи.

Опис

За допомогою штатних засобів СКЗІ КриптоПРО CSP (Пуск-- > Панель керування -- > КриптоПро CSP) скопіюємо ключовий контейнер test-key-reestr на ключові носії Рутокен ЕЦП і JaCarta РТ. Ключовим контейнерам на ключових носіях присвоїмо імена test-key-rutoken і test-key-jacarta відповідно.

Опис наведено стосовно JaCarta РТ (для Рутокен ЕЦП дії аналогічні):

Таким чином отримали робочі ключові документи на JaCarta ГОСТ (контейнер test-key-jacarta) і Рутокен ЕЦП (контейнер test-key-rutoken).

3. Знищимо вихідний ключовий документ

Опис

Штатними засобами СКЗІ КриптоПРО CSP видалимо з реєстру ключовий контейнер test-key-reestr.

4. Скопіюємо ключову інформацію з робочих ключових документів

Опис

Спробуємо скопіювати ключові контейнери test-key-rutoken і test-key-jacarta назад до реєстру.

Опис наведено для JaCarta РТ (для Рутокен ЕЦП дії аналогічні).

Як ми бачимо, ключова інформація успішно скопійована або, іншою мовою, витягнута з токенів з невибагливим ключем. Виходить, що виробники токенів і СКЗІ брешуть? Насправді ні, і ситуація складніша, ніж здається на перший погляд. Досліджуємо матчастину по токенах.

Матчастина

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

Головною відмінністю ФКН від звичайних токенів (Рутокен S, JaCarta PKI,...) в тому, що при виконанні криптографічних перетворень (наприклад, формування електронного підпису) закритий ключ не залишає пристрій. У той час як при використанні звичайних токенів закритий ключ копіюється з токена в пам'ять комптьютера.

Використання ФКН вимагає особливої організації взаємодії між прикладним криптографічним ПО і бібліотекою СКЗІ (криптопровайдером або, по-іншому, CSP).

Тут важливо побачити, що програмна частина бібліотеки СКЗІ повинна знати про існування на токені апплета, що реалізує криптографічний функціонал (наприклад, генерація ключа, підпис даних тощо) і вміти з ним працювати.

По-новому поглянемо на наш тестовий стенд

В якості одного з ключових носіїв використовувався Рутокен ЕЦП. За допомогою панелі керування Рутокен можна отримати такі відомості:

В останньому рядку вказана фраза "Підтримка КриптоПРО ФКН: Ні ", а це означає, що на токені немає апплета, з яким вміє працювати СКЗІ КриптоПРО CSP. Таким чином, реалізація технології ФКН з використанням СКЗІ і токенів, описаних у конфігурації тестового стенду, неможлива.

Аналогічна ситуація і з JaCarta ГОСТ. Більш того, СКЗІ КриптоПРО CSP, принаймні та версія, яка використовувалася в тестовому стенді, використовує дані ключові носії як «звичайні токени», які, в свою чергу, є просто носіями ключа.

Це твердження дуже просто підтвердити. Для цього треба поставити СКЗІ КриптоПРО CSP на чисту машину без драйверів від токенів і підключити токен JaCarta РТ. ОС Windows 7 виявить токен JaCarta РТ як «Пристрій читання смарт-карт Microsoft Usbccid (WUDF)». тепер можна спробувати створити ключ на токені і скопіювати його до реєстру комп'ютера. Весь функціонал СКЗІ успішно відпрацює.

Як зробити, щоб все було добре?

Щоб за допомогою продуктів ТОВ «КРИПТО-ПРО» реалізувати технологію ФКН, необхідно:

1. Купити спеціальну версію бібліотеки СКЗІ:

- для Рутокен ЕЦП - СКЗІ КриптоПРО Рутокен CSP.

- для JaCarta ГОСТ - СКЗІ КриптоПро ФКН CSP.

2. Одночасно з бібліотекою СКЗІ необхідно придбати спеціально підготовлені токени, що містять програмні частини (апплети), з якими вміє працювати КриптоПРО Рутокен CSP або КріптоПро ФКН CSP відповідно.

Виходить, що Рутокен ЕЦП і JaCarta ГОСТ не є токенами з невибагливим ключем?

Знову ні. Дані пристрої можуть реалізовувати функціонал ФКН (але, можливо, в меншому обсязі, ніж при використанні їх спільно з СКЗІ КриптоПРО), але для цього потрібен софт, який вміє працювати з апплетами розміщеними на токенах. Таким софтом може бути КріптоАРМ Стандарт 5 Плюс. Він це вміє. Під час створення ключової пари в майстрі КриптоАРМ можна вибрати криптопровайдер, який буде використовуватися, наприклад, Rutoken ECP або eToken GOST. Це і дозволить використовувати токен як ФКН.

Висновки

  • Не вірте продавцям, нісенітниця вам містячим. Використання звичайних версій криптопровайдера КриптоПРО CSP і звичайних Рутокен ЕЦП або JaCarta Держт не дозволяють реалізувати технологію ФКН.
  • Для використання технології ФКН спільно з продуктами ТОВ «КРИПТО-ПРО» необхідні як спеціально підготовлені токени, що містять апплет, з яким вміє працювати СКЗІ, так і спеціальні версії криптопровайдера КриптоПРО CSP, які вміють працювати з апплетом на токенах.
  • Рутокен ЕЦП і JaCarta ГОСТ вміє самостійно реалізовувати технологію ФКН, але для цього необхідний спеціальний софт.
logo