Як управляти закритими ключами, Безпека ПЗ, Security & Hack, статті

У людей, не вдаються у технічні подробиці, асиметрична криптографія стала синонімом поняття 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>

*

*