Як управляти закритими ключами

У людей, не вдадуться в технічні подробиці, асиметрична криптографія стала синонімом поняття PKI (Public Key Infrastructure – інфраструктура відкритих ключів). Однак, питання, що стосуються PKI, незрівнянно ширше.

Сьогодні вже важко уявити собі відсутність мобільного зв'язку, персональних комп'ютерів та мережі інтернет, які міцно увійшли в наше повсякденне діяльність. Для застосування інтернету в бізнесі мають функціонувати системи, що мають такі характеристики, як надійність і безпека. Без сучасних технологій захисту електронний бізнес основного сектора В2В (Business to business) не мав би такого бурхливого розвитку, яке в значній мірі залежить від чинника довіри. Довіра пов'язано з безпекою – чим більш прозора і надійна захист, тим вище ступінь довіри і ширше область використання рішень.

Електронний цифровий підпис (ЕЦП) – один із сервісів безпеки, який допомагає вирішувати завдання цілісності, доступності та неспростовності авторства. Для повноцінного функціонування електронного цифрового підпису потрібний створення розвиненої інфраструктури, яка відома в Росії як інфраструктура відкритих ключів або PKI (public key infrastructure) – в міжнародній термінології. Під цим терміном розуміється повний комплекс програмно-апаратних засобів, а також організаційно-технічних заходів, необхідних для використання технології з відкритими ключами. Основним компонентом інфраструктури є власне система управління цифровими ключами та сертифікатами. Всі розвинуті країни світу, в тому числі Росія, формують подібні національні інфраструктури. Асиметрична криптографія допомагає вирішувати завдання забезпечення конфіденційності, аутентифікації, цілісності та достовірності інформації. Проте не варто плутати ці поняття.

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

Завдяки використанню інфраструктури відкритих ключів, яка базується на використанні сертифікатів, що визначають власників закритих ключів і їх повноваження, ми маємо можливість співвіднести публічні ключі з їх власниками. Це, безумовно, важливо, оскільки при криптографическом перетворенні повідомлення, вирішальним фактором є використання публічного ключа, який належить легальному одержувачу, а не будь-якій "підставному" особі. Таким чином, технологія PKI по суті є способом безпечного розподілу публічних ключів, яка дає гарантію того, що повідомлення зашифровано із застосуванням публічного ключа, що належить потрібного нам адресату. За аналогічною схемою, після отримання підписаного документа, ми в змозі перевірити ідентичність підписує його особи.

Сьогодні область застосування асиметричної криптографії постійно розширюється, з нею (явно чи неявно) мають справу самі різні категорії користувачів – від індивідуальних власників домашніх комп'ютерів (Що використовують протокол SSL при оплаті через інтернет товарів або послуг), до користувачів корпоративних систем (входять з її допомогою в мережу і проходять аутентифікацію при доступі до корпоративних баз даних).

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

Інша область застосування асиметричної криптографії – аутентифікація. Наприклад, при вході в операційну систему Microsoft Windows за смарт-картці користувач відправляє запит на аутентифікацію, підписаний своїм закритим ключем. У відповідь він отримує від сервера реквізити для посвідчення особи (ticket granting ticket – "квиток, який надає квиток" у термінології Kerberos), які зашифровані за допомогою його відкритого ключа і для розшифрування яких знову потрібне використання закритого ключа користувача. Також асиметрична криптографія є невід'ємною частиною протоколу мережевої аутентифікації TLS/SSL.

Хоча кожне з додатків по-своєму використовує відкритий і закритий ключі, всі вони виходять з одного положення – кожен користувач, кожен учасник обміну інформацією є єдиним володарем свого закритого ключа.


Безпека закритих ключів


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

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

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

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

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

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


Забезпечення безпеки закритих ключів користувачів


Зараз найбільш поширені і найбільш часто використовуються наступні підходи до забезпечення безпеки закритих ключів.

Програмні сховища (software token)


Призначені для зберігання закритих ключів на диску комп'ютера, найчастіше – в зашифрованому вигляді. Прикладами реалізації даного підходу є криптопровайдер Microsoft Enhanced CSP, що входить до складу операційної системи Microsoft Windows або браузер Mozilla / Netscape.

Апаратні пристрої (hardware token)


Призначені для зберігання закритих ключів і виконання криптографічних операцій, що вимагають використання закритого ключа. До таких пристроїв відносяться смарт-карти і USB-ключі, побудовані з використанням мікросхем смарт-карти.

Репозитарії (credentials repository)


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

В даний час в Україні найбільш поширеними засобами зберігання закритих ключів є програмні сховища (software token) і апаратні пристрої (hardware token) у вигляді смарт-карт і USB-ключів. Репозитарії коштують дуже дорого і не дозволяють забезпечити мобільність користувача. В основному вони застосовуються для зберігання ключів, використовуваних при аутентифікації пристроїв, наприклад, серверів при організації захищеного інформаційного обміну, а також у фінансовій сфері.


Управління закритими ключами: програмні сховища


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

Захист закритих ключів програмними засобами називається програмним сховищем. Таке сховище є програмною емуляцією апаратного електронного ключа і виконує практично аналогічні функції. Однак простота використання програмних сховищ має зворотний бік – великі ризики компрометації ключів.

Щоб скористатися закритим ключем (наприклад, для формування ЕЦП документа), закритий ключ користувача повинен бути попередньо витягнутий з програмного сховища і завантажений в пам'ять комп'ютера, після чого він може бути використаний для виконання криптографічних операцій.

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

Основні загрози


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

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

Отримати фізичний доступ до "безгоспними" комп'ютера не становить ніякої складності. А це означає, що потенційно зловмисник може отримати доступ до програмного сховища. Фактично будь-який офіс не є безпечною середовищем і представляє багаті можливості для проникнення зловмисника, особливо володіє навичками соціальної інженерії. Програмне сховище закритих ключів легального користувача (Співробітника компанії) може бути захоплене, скопійовано або вкрадено разом з ноутбуком або кишеньковим комп'ютером. Причому як зловмисника можна легко уявити не тільки "випадкового гостя", але і колегу по роботі або навіть прибиральницю. Якщо задатися питанням, чому прибиральниця могла б зацікавитися програмним сховищем, відповідь проста – так найпростіше реалізувати атаку, спрямовану на окремо взяту компанію. Для такого нападу природна стратегія полягає в тому, щоб компанія сама найняла співробітника в штат. Наприклад, ту ж саму прибиральницю чи електрика, яким цілком може виявитися досвідчений соціоінженер (хакер, який поєднує ІТ і соціотехніки для впливу на людей з будь-якою метою). Компанія наймає електрика на невелику зарплату, не підозрюючи, що вартість його "роботи" може обійтися їй набагато дорожче. Адже електрик має фізичний доступ у всі приміщення офісу. Залишається лише дочекатися слушного моменту, і завдання можна вважати виконаною.

Важливо зазначити, що простий блокування комп'ютера недостатньо – зловмисник може просто вручну витягти жорсткий диск і прочитати що зберігаються на ньому файли. Звичайно, можна прийняти контрзаходи проти крадіжки програмного сховища, наприклад, зашифрувавши вміст жорсткого диска комп'ютера. Однак у більшості випадків навіть такий "грубий" варіант все ще залишається можливим.

Другу загрозу представляє зловмисне програмне забезпечення (malicious software), до якого відносяться віруси, мережні черв'яки, трояни та ін Стрімке поширення шкідливих програм щорічно завдає колосальної шкоди компаніям. Зараження за допомогою будь-якого типу зловмисного ПЗ може мати руйнівні наслідки для зберігається на комп'ютері користувача закритого ключа, захищеного програмними засобами. Написана спеціально для цих цілей програма-шпигун (spyware) може просто вважати файл програмного сховища без відома господаря комп'ютера і надіслати його своєму автору. Такі програми непомітно "Підсаджуються" на комп'ютер в ході перегляду звичайних на вигляд web-сторінок.

Більше того, описана вище атака може носити масовий характер, і таким чином безліч ключів, що зберігаються на комп'ютерах, можуть бути лічені і вкрадені одним єдиним "шпигуном". Як приклад можна навести вірус під назвою Caligula, випущений в кінці 90-их років. Він був призначений для викрадення закритих ключів користувача системи PGP, які зберігалися в програмному сховище.

Основні контрзаходи


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

По-друге, намагаються максимально збити з пантелику того, хто несанкціоновано спробує отримати доступ до закритого ключа. По суті, програмне сховище ховається завдяки скремблінгу на жорсткому диску користувача. У принципі, для того щоб ускладнити завдання хакера, використовується безліч способів мають ефект "плутанини". Наприклад, один з них полягає в тому, щоб спочатку зашифрувати програмне сховище секретним ключем шифрування, і потім "ховати" ключ в різних місцях на диску користувача.

Цілком можна погодитися з тим, що ефект "плутанини", дійсно, може допомогти захиститися від молодих амбітних мережевих зловмисників. Однак досвідчений хакер, приклавши деякі зусилля, може обійти цей спосіб захисту. Таким чином, цілком довіряти забезпечення безпеки "плутанини" не варто, її можна розглядати лише як, додаткову міру, яка може використовуватися, щоб знизити, але не виключити ризик. Можливо, "плутанина" і підходить для захисту додатків, пов'язаних з системою управління цифровими правами (DRM), але вона не забезпечує необхідного для PKI-рішень рівня безпеки.

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

Пробуючи вводити підібрані паролі, атакуючий може вгадати необхідну для доступу комбінацію. Таке напад називають "атакою по словнику" або "словникової атакою" і воно в достатній мірі ефективно. Єдиний спосіб запобігти цю загрозу полягає в застосуванні складного пароля, що містить символьні, цифрові, літерні значення різних регістрів, і до того ж складається з випадкового набору символів. Якісний пароль може виглядати приблизно так: g1UY$^M#&6430Ff“@Nk. На жаль, запам'ятати таку комбінацію для більшості користувачів не представляється можливим, особливо якщо взяти до уваги той факт, що паролів може бути декілька. Таким чином, в більшості випадків, "словникові атаки" дуже успішні.

Основна проблема програмних сховищ полягає в тому, що вони залежать від безпеки середовища, в якому перебувають, тобто – комп'ютера. А персональні комп'ютери аж ніяк не безпечні: як тільки отриманий фізичний доступ, або машина заражена вірусом, закритий ключ користувача може бути скомпрометований.

Варто додати, що сам факт атаки може залишитися непоміченим для користувача, і зловмисник протягом довгого часу зможе розшифровувати кореспонденцію легального користувача і відправляти від його імені і за його підписом фальсифіковану інформацію. Таким чином, найважливіша властивість ЕЦП – неспростовності – не може бути досягнуто. Саме тому програмне сховище забезпечує відносно низький рівень безпеки, і його використання в організаціях, що оперують конфіденційною інформацією, має бути виключено.


Олексій Сабанов, Антон Крячков, Костянтин Демченко, Сергій Бєлов

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*