Сергій БОРМОТОВ

ЗАХИСТИ СЕБЕ САМ!*
(фраґмент)

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

Короткий огляд сучасних методів захисту інформації
Коли вже ми заговорили про захист, то взагалі-то варто відразу визначитися хто, що, як і від кого захищає. Занадто плутано й незрозуміло? Зараз поясню.
Отож, як правило, вважається, що існують такі способи перехоплювання інформації з комп’ютера:
1) ПЕМВК — безпосереднє перехоплення електромагнітного випромінювання від ПК;
2) наведені струми у випадкових антенах — перехоплення наведень у дротах (телефонних, радіо), кабелях (ТБ), розташованих поблизу, але не пов’язаних гальванічно з ПК (включно із незаземленими калориферами);
3) наведення й паразитні струми в мережах, гальванічно пов’язаних з ПК (живлення, телефонна лінія з модемом etc);
4) нерівномірне споживання струму з мережі — здебільшого притаманне електромеханічним пристроям (для сучасних ПК це малоймовірно, хіба що у вас принтер «Ромашка»);
5) інша екзотика (наведені лазери, наприклад).
Зазвичай місцем, що «свистить», є відеокарта, з неї можна стягнути картинку, що відображається на екрані. Як правило, це пряме випромінювання відеоадаптера й відеопідсилювача монітора, а також ефірні й гальванічні наведення від них на кабелі клавіатури, миші, принтера та кабель живлення, що відіграють роль антен-резонаторів для гармонік сиґналу, а також провідників для гальванічних витоків згідно із пунктом 2. Причому, чим ліпший (більший) ПК, тим кращі монітор та адаптер і, відповідно, менший «свист». Та все, річ ясна, залежить від моделі, від виконання й комплектуючих. «Енерджістар» і «Лав радіейшн» загалом набагато кращі від звичайних моніторів. Критерій: вимірюється мінімальна відстань для певного спектру (критична зона), на якій можна впевнено прийняти сиґнал.
Які способи захисту застосовуються:
— екранування корпусів (або внутрішній металевий екран, або напилення зсередини на корпус мідної плівки — заземлення);
— встановлення на екран трубки монітора сітки або додаткового скла із заземленим напиленням;
— на всі кабелі встановлюють електромагнітні фільтри (спеціальні сердечники), застосовують також додаткове обплетення екрана;
— локальні екрани на плати адаптерів;
— додаткові фільтри для живлення.
Взагалі-то найрадикальніший метод — екранувати кімнату заземленою мідною сіткою з розміром клітинок менше 2,5 см. Можна ще поставити активний ґенератор квазібілого чи ґаусового шуму — він «давить» усе випромінювання. Навіть повністю закритий ПК (з екранованим корпусом) в безлунній камері має кількаметрову критичну зону […] Зазвичай з корпусами ніхто не бавиться (дорого), застосовують усе інше. Крім того перевіряють ПК на наявність т.зв. «закладок». Це не лише активні передавачі та інші шпигунські штучки, хоча й таке трапляється, вочевидь. Найпростіший випадок — «зайві» провідники чи дроти, що відіграють роль антени. Хоча на «великих» машинах траплялися, кажуть, і серйозніші речі: наприклад у VAX, коли їх завозили до Союзу обхідними шляхами (для оборонки), були іноді в конденсаторах блоку живлення певні схемки, що випускали в мережу мілісекундні імпульси в кількасот вольт — призводило до збою, як мінімум.
А от проблемою захисту інформації шляхом її модифікації займається криптологія (kryptos — таємний, logos — наука). Криптологія поділяється на дві галузі — криптографію й криптоаналіз. Завдання цих галузей цілком протилежні: криптографія займається пошуком і дослідженням математичних методів шифрування інформації, а сфера криптоаналізу — дослідження можливостей дешифрації без знання ключів.
Застосовують криптографічні методи в основному для передачі конфіденційної інформації каналами зв’язку (електронна пошта, наприклад), верифікації повідомлень, зберігання інформації (документів, баз даних) на носіях у зашифрованому вигляді.
Отож криптографія дозволяє модифікувати інформацію таким чином, що її прочитання (відновлення) можливе лише, коли знаєш ключ.

ГОСТ №28147-89
Для прикладу я хочу розповісти про ГОСТ №28147-89 тому, що це — класика захисту інформації. Не поспішайте зневажливо кривитися — старенький ГОСТ може дати фору багатьом системам захисту!
Як і будь-яка поважна держава, СРСР мав свій стандарт шифрування. Стандарт цей зафіксовано ГОСТом №28147-89, затвердженим, як видно з назви, ще 1989 року. Однак немає сумніву, що історія цього шифру почалася набагато раніше. Стандарт народився вочевидь у надрах восьмого головного управління КДБ СРСР, перейменованого нині у ФАСПІ. В ті часи він був під ґрифом «Совершенно секретно», пізніше ґриф змінили на «секретно», а потім зняли зовсім. Шкода, але на відміну від самого стандарту, історія його створення та критерії проектування шифру й досьогодні залишаються таємницею за сімома печатками.
Можливе використання ГОСТу у власних розробках викликає кілька запитань. Перше — чи немає, бува, юридичних перешкод для цього? Відповідь проста — таких перешкод немає, всі можуть вільно користуватися ГОСТом, його не запатентовано, відповідно, немає в кого просити дозволу. Ба більше, ми всі маємо на це повне моральне право як нащадки тих, хто оплатив проект із власної кишені — передовсім я маю на думці наших батьків. На відомий указ Президента Росії №344 від 03.04.95 та відповідні постанови уряду РФ […] взагалі можна сміливо забити, оскільки ми тепер незалежні й самостійні й не мусимо виконувати законів, які стосуються лише «клятих москалів». Хоча формально й заборонено проектувати системи, що містять засоби криптозахисту, юридичним і фізичним особам, які не мають ліцензії на цей вид діяльності, однак реально указ стосується лише державних таємниць, секретних банківських даних тощо, тобто діє він тільки там, де вимагається папірець, що «дані захищені».
Якщо ж говорити про українське законодавство, то тут […] взагалі «труба». Та й який сенс намагатися засекретити те, що вже давно не є секретом ні для кого і про що можна елементарно довідатися, як не з Інтернету, то із звичайної книжки, що їх тепер — греблю гати...
ОК, із правовим аспектом застосування ГОСТу з’ясували, тепер зупинімося на проблемі доцільності — перш за все, чи можна довіряти цьому породженню зловісної Луб’янки, чи не вбудували товариші чекісти сюрпризів у алгоритми шифрування? Це малоймовірно, оскільки ГОСТ створювався в ті часи, коли цілком немислимим було його застосування поза державними режимними об’єктами. З іншого боку стійкість криптографічного алгоритму неможливо підтвердити, її можна лише спростувати, зламавши шифр. Тому, чим старший алгоритм, тим більше шансів, що як його не розкурочено до цього часу, то буде розкурочено в найближчому майбутньому. З огляду на це всі розмови про найновіші «ориґінальні розробки» «талановитих хлопців» в принципі несерйозні — кожен шифр повинен пройти випробовування часом. Але ж шифрів, які витримали подібну перевірку апріорі більше, ніж один — окрім ГОСТу є ще DES, його старший американський братчик, є й інші шифри. То чому ж в такому разі ГОСТ? Звичайно, багато в чому це справа особистих симпатій, але варто пам’ятати, що ГОСТ за більшістю параметрів перевершує всі ці алгоритми, включно з DES. Вам цікаво, про які параметри йдеться? Далі буде.

Криптографічна стійкість ГОСТу
При виборі криптографічного алгоритму з метою використання в конкретному проекті одним із визначальних факторів є стійкість, тобто здатність протистояти можливим спробам зламати шифр. Проблема стійкості шифру при побіжному ознайомленні зводиться до двох взаємопов’язаних питань:
— чи можливо взагалі розгадати даний шифр;
— якщо так, то наскільки важко це зробити практично.
Шифри, які взагалі неможливо розкрити, називаються абсолютно, або теоретично стійкими. Існування таких шифрів доводиться теоремою Шеннона, однак ціною подібної стійкості є необхідність для шифрування кожного повідомлення в ключі, розміром не меншому за саме повідомлення. Майже завжди (за винятком особливих випадків) така ціна надто висока, тому на практиці використовуться шифри, які не мають абсолютної стійкості. Таким чином найуживаніші схеми шифрування можуть бути розкриті протягом певного часу, тобто після певної кількості кроків, кожен із яких є певною операцією з числами. Для таких схем найважливішим є поняття реальної стійкості, що відображає практичну складність їх розкриття. Кількісним виміром цієї складності може слугувати число елементарних арифметичних і логічних операцій, необхідних для того, щоб розкрити шифр (тобто для того, щоб заданий шифротектст перетворити — з достатнім значенням імовірності — у відповідний відкритий текст). При цьому в доповнення до масиву даних, який дешифрується, криптоаналітик може користатися блоками відкритих даних і відповідних до них даних зашифрованих, або навіть отримати для будь-яких вибраних ним відкритих даних відповідні зашифровані. В залежності від перелічених, а також багатьох не згаданих факторів, розрізняють два окремі види криптоаналізу.
Всі сучасні криптосхеми побудовані за принципом Кірхґоффа, тобто секретність зашифрованих повідомлень визначається секретністю ключа. Це означає, що навіть, якщо криптоаналітик знає алгоритм шифрування, він однаково не зможе розшифрувати повідомлення, якщо не має відповідного ключа. Всі класичні блочні шифри, в тому числі ГОСТ і DES, відповідають цьому принципу й спроектовані таким чином, аби унеможливити розкриття ефективніше, аніж шляхом повного перебору в межах усього ключового простору, тобто всіх можливих значень ключа. Зрозуміло, що стійкість таких шифрів визначається розміром ключа.
В шифрі ГОСТ використовується 256-бітний ключ, обсяг ключового простору становить 2256. На жодній із існуючих нині, чи передбачуваних для реалізації в недалекому майбутньому ЕОМ загального використання, неможливо підібрати такий ключ за час коротший, аніж кілька сотень років. Радянський стандарт проектувався з більшим запасом і за стійкістю на кілька порядків перевищує американський DES з його реальним розміром ключа в 56 біт і обсягом ключового простору всього-навсього 256. З огляду на прогрес сучасних обчислювальних засобів цього явно замало. В зв’язку з цим DES може мати сьогодні радше дослідницьку чи наукову, та аж ніяк не практичну цінність. У 1998 році він перестав бути стандартом США на шифрування.

Примітки до архітектури ГОСТу
Загальновідомо, що ГОСТ №28147-98 є представником цілої родини шифрів, які базуються на однакових принципах. Найвідомішим його «родичем» є колишній американський стандарт шифрування, алгоритм DES. Усі ці шифри включно з ГОСТом мають алгоритми трьох рівнів. В основі завжди лежить певний «основний крок», на базі якого подібним чином вибудовуються «базові цикли», а вже на них, у свою чергу, будуються всі практичні процедури шифрування й вибір імітовставки. Таким чином специфіка кожного із шифрів цієї родини ховається саме в «основному кроці» чи, точніше, в його частині. Хоча архітектура класичних блочних шифрів, до яких належить ГОСТ, є темою далекою від намірів автора цієї статті, все ж варто бодай торкнутися цієї теми.
Алгоритми «основних кроків криптомодифікації» для шифрів, подібних до ГОСТу, збудовані ідентично. На вхід основного кроку подається блок парного розміру, старша й молодша половини якого обробляються окремо. В процесі перетворення молодша половина блоку встановлюється на місце старшої, а старша, — скомбінована за допомогою операції побітного виключного або за результатом обчислення певної функції, — на місце молодшої. Ця функція, приймаючи в якості арґyмента молодшу половину блоку та певний елемент ключової інформації (X), є змістовою частиною шифру й називається його функцією шифрування. Критерій стійкості шифру вимагає, щоб розміри всіх перерахованих елементів були однакові: /N1/=/N2/=/X/; в ГОСТі і в DESі вони дорівнюють 32 бітам.
Якщо ж застосувати все це в схемі основного кроку алгоритму ГОСТу, стає очевидним, що блоки 1, 2, 3 алгоритму визначають обчислення його функції шифрування, а блоки 4 і 5 задають формування вихідного блоку основного кроку на базі вмісту вхідного блоку та значення функції шифрування.
В попередньому розділі ми вже порівнювали DES і ГОСТ за стійкістю, тепер співставимо їх за функціональним змістом і зручністю реалізації. В циклах шифрування ГОСТу основний крок повторюється 32 рази, для DES ця сума дорівнює 16. Однак сама функція шифрування ГОСТу суттєво простіша від аналогічної функції DES, в якій міститься багато перекодувань за таблицями із зміною розмірів елементів, що перекодовуються. Крім того між основними кроками в циклах шифрування DES необхідно виконувати бітові перестановки в блоках даних. Усі ці операції вкрай неефективно реалізуються на сучасних неспеціалізованих процесорах. ГОСТ не містить подібних операцій, тому він набагато зручніший для програмної реалізації. Жодна з розглянутих реалізацій DES для процесора Intel?86 не сягає навіть половини ефективності […] реалізації ГОСТу, хоча той має вдвічі коротший цикл. Все це свідчить про те, що проектанти ГОСТу врахували, як позитивні, так і неґативні властивості DES, а також реальніше оцінили існуючі та перспективні можливості криптоаналізу.

Надійність реалізації
Питання надійності програмного засобу криптографічного захисту — це не лише питання стійкості алгоритму. Використання стійкого шифру само по собі не може забезпечити надійність вашої системи, хоча і є необхідною умовою. Важливу роль відіграє також спосіб застосування криптографічного алгоритму. Тож якою б досконалою не була встановлена на комп’ютері програма шифрування файлів, зберігання ключової інформації на дисках у відкритому вигляді робить систему, зреалізовану за допомогою цієї програми, потенційно нестійкою. Процедури й правила вищого рівня, що реґламентують використання алгоритмів шифрування і всього, що пов’язане з цим, складають у сукупності так званий криптографічний протокол. Цей протокол визначає реґламент продукування, використання, зберігання і зміни ключової інформації та інші не менш важливі речі. Так ось для того, щоб ваша система, використовуючи реалізацію алгоритмів ГОСТу, була справді надійна, вам необхідно подбати про створення відповідного протоколу.
Найчастіше в системі криптографічного захисту даних виникає необхідність в алгоритмі з більшою, ніж забезпечує ГОСТ, швидкодією реалізації, і при цьому не вимагається ГОСТівська криптостійкість. Типовим прикладом подібних завдань є різноманітні біржеві торгівельні системи, що керують торговими сесіями в real time. Тут від алгоритмів шифрування вимагається, щоб неможливо було розшифрувати оперативні дані системи протягом сесії (інформація про виставлені заявки, про підписані угоди тощо), оскільки по закінченні сесії ці дані, як правило, вже непотрібні зловмисникам. Інакше кажучи, вимагається ґарантована стійкість усього на декілька годин [...] Зрозуміло, що повномасштабне використання ГОСТу в такій ситуації виглядало б як стрілянина з гармати по горобцях.
На щастя з подібної ситуації є достатньо простий вихід — використовувати модифікацію алгоритму ГОСТ із меншою кількістю основних кроків у базових циклах. Цього можна досягти двома шляхами — зменшенням довжини ключа й кількості циклів застосування елементів ключа —згадайте, що кількість основних кроків у базових циклах шифрування дорівнює N=n?m, де n — кількість 32-бітних елементів у ключі, m — кількість циклів застосування ключових елементів (у стандарті n=8, m=4). У скільки разів зменшується кількість основних кроків у циклах, приблизно в стільки ж разів збільшується швидкодія коду.
На жаль, мені нічого не відомо про те, як змінюється крипостійкість такого ослабленого варіанту ГОСТу. Стосовно криптоаналізу по лінії статистики (перебирання всіх можливих значень ключа), то тут усе зрозуміло, позаяк ця величина визначається лише розміром ключа. Набагато важче передбачити, наскільки простішим стане криптоаналіз по лінії алгоритму (аналіз рівнянь перетворення даних в процесі шифрування).
При виборі розміру «редукованого циклу» треба пам’ятати, що ГОСТ проектувався з урахуванням можливого прогресу обчислювальної техніки на декілька десятиліть і в ньому закладений величезний потенціал крипостійкості. На моє переконання (глибоко особистісне), в більшості практичних випадків цілком виправдане використання редукованих варіантів ГОСТу без зміни схеми використання ключа (m=4=3+1), але із зменшеним учетверо його розміром (n=2) — це дозволить збільшити швидкість шифрування приблизно в 4 рази. За стійкістю до статистичних методів криптоаналізу така модифікація з її 64-бітним ключем буде надійніша, ніж DES із розміром ключа 56 біт.
Звичайно, основне призначення криптоалгоритмів ГОСТу — це шифрування й імітозахист даних. Однак у криптографічної гами є ще одне важливе застосування — продукування ключової інформації. Продукування масиву ключової або парольної інформації є типовим завданням адміністратора безпеки системи. Як вже було зазначено, ключ можна зґенерувати як масив необхідного розміру статистично незалежних і рівномірно розподілених між значеннями 0 та 1 біт. Для цього можна скористатися програмою, що ґенерує ключ за принципом «електронної рулетки». Однак подібний підхід абсолютно не виправдовує себе, коли об’єм необхідної ключової інформації надто великий. У такому випадку найкраще користатися апаратними датчиками випадкових чисел, що, на жаль, не завжди реально з огляду на економічні чи технічні обмеження. Тоді в якості джерела потоку випадкових бітів можна застосовувати ґенератор гами на базі будь-якого блочного шифру, включно з ГОСТом 28147-98, оскільки за визначенням криптографічна гама володіє необхідними статистичними характеристиками і крипостійкістю. […]
Проблематичніше з паролями. Перш за все виникає запитання, навіщо взагалі їх ґенерувати і чи не простіше в міру необхідності просто вигадувати самотужки. Неефективність такого підходу була наглядно продемонстрована серією інцидентів у комп’ютерних мережах, з яких найскандальнішим був добовий параліч мережі Інтернет у листопаді 1988 року (вірус Морріса). Одним із способів доступу зловмисної програми в систему був підбір паролів: програма намагалась увійти в систему, послідовно пробуючи паролі зі свого внутрішнього переліку в кількасот штук, причому здебільшого їй це вдавалося — людська фантазія у вигадуванні паролів виявилася на диво вбогою. Саме тому в організаціях, які приділяють безпеці належну увагу, паролі ґенерує й роздає користувачам системний адміністратор із безпеки. Продукувати паролі дещо складніше, ніж ключі, позаяк при цьому «сиру» двійникові гаму необхідно привести в символьний вигляд, а не просто «нарізати» шматками. Головне, на що варто звернути увагу — забезпечення однакової імовірності появи кожного із символів абетки.
Як би там не було, старенький ГОСТ іще довго послужить — усе ж таки він створений серйозною «конторою», в нього закладено величезний запас стійкості й надійності, а в той же час він має добру продуктивність. Цей алгоритм витримав найсуворішу перевірку — перевірку часом. Велика кількість реалізацій алгоритму дозволяє досягти потрібного співвідношення продуктивності й крипостійкості. ГОСТ юридично леґітимний для використання. Недарма саме його використовують для захисту своїх секретів усі держслужби СНД. Підтримуйте вітчизняного виробника!


*На перший погляд дивним може видатися той факт, що автор, який пише про захист інформації, не подбав про захист своєї інтелектуальної власності. Бо так направду, кого там може захистити інфантильне © у наш кривавий вік, у нашій ліво-правовій державі, та ще й від таких акул піратського репринту, як редактори «Ч-га». Сергій Бормотов не вдався навіть до того найпростішого способу, що його пропонує сам: «екранувати кімнату заземленою мідною сіткою з розміром клітинок менш, ніж 2,5 см». Однак безтурботність і беззахисність вельмишановного пана С. позірні, бо існує набагато надійніший від шифрування й металевих сіток спосіб сховати свій message від сторонніх очей. Це писання апріорі для втаємничених. Листи до тих, хто вже відбув ініціацію.
Техніка такого письма надзвичайно складна і доступна лише обраним. Цьому неможливо навчитися. Це мусить бути вроджене вміння, що його можна лише вдосконалювати виснажливим тренінґом. Вдосконалювати без надії осягнути остаточну довершеність майстерності. Заради самої ідеї вдосконалення. Адже ті, хто вміє читати між рядками, прочитають і так. Вони не потребують підказок, ключів і виправдань. Ані, тим більше, шифрів, гостів, металевих сіток... Вони просто резонують від пульсацій авторської думки. Причому кожен резонує по-своєму (тобто має свій власний резон), а отже один і той же текст означає щось цілком інше для кожного реципієнта. Взагалі будь-який текст потенційно є носієм будь-якої інформації. Все залежить від того, яку саме інформацію ви очікуєте отримати. Яку найбільше потребуєте. Якраз її отримати найважче. Але, — про що вже йшлося, — бувають винятки. Текст писаний спеціально для вас. Для втаємниченого. Невідомим невтаємниченим. Або навпаки. Саме до таких текстів належить «Захисти себе сам!». Тому ми без жодних докорів сумління передруковуємо його фраґмент (цього цілком достатньо) з журналу «Мой компютер», знаючи, що це послання зможуть прочитати лише ті, кому воно безпосередньо адресоване.