Профілактика злому usb-токена
Практично повсюдно при використанні електронного підпису, для зберігання і роботи останньої використовують usb-токен (далі по тексту токен). Чим саме зумовлений вибір? Про те, що сам закритий ключ постійно зберігається на токені, і про те, що не знаючи PIN-коду, отримати доступ до закритого ключа неможливо, знаю все. Але чи так це насправді?
Детальніше розглянемо пристрій токена на прикладі etoken PRO (Java) / 72K.
Згідно з інформацією виробника, характеристики у нього такі:
Athena OS755, вбудована віртуальна машина Java
(Повністю сумісна зі стандартом Sun Java Card)
Підтримувані інтерфейси і стандарти
- PKCS # 11 версії 2.01,
- Microsoft CryptoAPI,
- PC / SC,
- Сертифікати X.509 v3, SSL v3, IPSec / IKE,
- Microsoft CCID,
- eToken Minidriver
Підтримувані версії комплекту розробника
eToken SDK 4.5 і вище
Згідно специфікації, в основі пристрою - мікроконтролер фірми Atmel AT90SC25672RCT-USB.
AT90SC25672RCT-USB є 8/16-бітовим мікро контролером на базі розширеної RISC архітектури secureAVR з криптографічним співпроцесором, програмованої ROM, EEPROM для зберігання призначених для користувача даних розміром 72Кб. AT90SC25672RCT-USB характеризується низьким енергоспоживанням і високою продуктивністю. Мікроконтролер має 135 інструкцій, більшість з яких виконуються за один такт, завдяки чому продуктивність досягає 1 MIPS / MHz. Архітектура мікроконтролерів містить 32 регістра загального призначення, безпосереднього пов'язаних з АЛУ, що дозволяє одній інструкції здійснювати доступ до двох різних регістрах за 1 цикл синхронізації. На малюнку 1 представлена архітектура мікроконтролера.
Відвернемося від апаратної складової, і розглянемо можливі атаки на цей пристрій. Будь-який з алгоритмів шифрування має свою реалізацію, як програмну, так і апаратну. При цьому, якщо математично алгоритм «бездоганний», то на практиці він буде реалізований в якійсь програмі, яка буде виконана в якийсь середовищі на якомусь процесорі. У загальному випадку, на різних етапах алгоритму, у пристрої, його реалізує, будуть змінюватися такі параметри, як енергоспоживання, електромагнітне випромінювання і т.д. Використовуючи ці дані, є можливість отримати ключову інформацію. Атаки подібного роду класифікуються як атаки по стороннім каналах.
Атаки по стороннім каналах прийнято ділити на 2 типу: активні і пасивні. До активних атак відносяться ті, при яких відбувається безпосередній вплив на систему, що змінює її поведінку. Вплив може бути незворотнім для системи. До пасивних відносяться атаки, при яких помітного впливу на систему не надається і система працює в нормальному режимі.
Малюнок 1 - Архітектура мікроконтролерів Atmel AT90SC25672RCT-USB
Мікроконтролер здатний протистояти атакам по споживаної потужності (SPA / DPA); до атак по електромагнітному випромінюванню (SEMA / DEMA); до атак за часом (time attack); до атак по видимому випромінюванню. Всі перераховані вище атаки відносяться до пасивних атак по стороннім каналах.
- Атаки по споживаної потужності - на різних етапах алгоритму енергоспоживання різному (атаки по е / м випромінювання схожі з цим класом атак - на різних етапах алгоритму е / м випромінювання по-різному);
- Атака за часом - різні операції алгоритму виконуються за різну кількість тактів;
- Атаки по випромінюванню - використовуючи високоточний датчик інтенсивності світла можна виміряти зміни в інтенсивності розсіяного світла від світлодіода на різних етапах алгоритму.
Для протидії активним атакам типу атак по помилках обчислень і атак зондуванням застосована активний захист, особливості якої виробник не розкриває зі зрозумілих причин.
Захисні функції AT90SC25672RCT-USB представлені таким набором:
Таким чином, токен стійкий до атак по стороннім каналах, але уразливий до іншого роду атакам, властивим для всіх пристроїв з PIN-кодом - перехоплення під час введення. Це може бути троян на комп'ютері користувача, мікрокамера з хорошим оглядом, акустичний датчик і інші способи реалізації перехоплення. Також не варто забувати про терморектальний криптоаналіз. А знаючи PIN, витягнути секретний ключ не складає ніяких труднощів - не складніше, ніж скопіювати файл (за умови, що токен у зловмисника).
З усього цього випливає, що наріжний камінь безпеки вашої ЕП при зберіганні на токені закритого ключа - PIN-код, і зберігати його треба відповідно.