Функції програми шифрування PGP та її застосування. Утиліти безпеки


Програма шифрування PGP

"Параноїк - це людина, яка дещо розуміє в тому, що відбувається"
Вільям Берроуз
Навіщо це потрібно?
Електронні повідомлення (E-mail, ICQ) легко можуть прочитати і скопіювати всі, хто має доступ до сервера інтернет-провайдера або до комп'ютерів, через які ці повідомлення проходять.
            В результаті боротьби з тероризмом і відмиванням грошей у багатьох країнах, в тому числі і в Україні, були прийняті закони, які зобов'язують інтернет-провайдерів архівувати всю переписку своїх клієнтів. Спецслужби великих держав регулярно сканують електронну пошту в пошуку підозрілих ключових слів і фраз. Ось лише кілька таких державних програм: міжнародна система ECHELON (США та інші), проект Carnivore (США), системи СОРМ і СОРМ-2 (Росія).
Агенти спецслужб або інші зацікавлені особи можуть не тільки перехопити будь-яке ваше повідомлення а й змінити його зміст, а потім відправити його так, як ніби з ним нічого не сталося. Зворотна адреса та службові заголовки листи легко підробляються і модифікуються. Науково-технічний прогрес полегшив завдання стеження за електронним листуванням, але цей же прогрес дозволяє цю переписку надійно захистити.
 
Як захиститися?
В Інтернеті можна знайти масу засобів захисту даних. Розібратися в цьому різноманітті нелегко. Ось кілька простих порад:
     1.      Вибирайте програми, які існують як можна довше.
     2.      Віддавайте перевагу програмам, вихідний код яких є відкритим (Open Source).
     3.      Стійкість програми повинна грунтуватися на неможливості підібрати ключ, а не на таємності алгоритму шифрування.
     4.      Намагайтеся знайти про програму якомога більше відгуків незацікавлених осіб.
Криптографія дуже консервативна. Нові засоби шифрування не зважають надійними доти, поки їх ретельно не розібрався "по кісточках" професійні криптоаналитики. Для цього їм повинен бути доступний вихідний код цих програм. Розробники комерційних програм цей код не публікують через побоювання, що конкуренти скористаються їхніми ідеями. Тому програми з закритим вихідним кодом не користуються довірою у фахівців. Небезпека застосування таких програм полягає в тому, що гіпотетично за закритим кодом розробниками може бути захований потайний "чорний хід" (backdoor) - можливість зламати шифр, навіть не знаючи пароля. Саме виходячи з цих міркувань набагато краще користуватися для цілей шифрування програмами з відкритим вихідним кодом.
Найпоширенішим засобом захисту інформації в останні роки стали програми реалізації стандарту шифрування PGP (Pretty Good Privacy). Стійкість PGP базується на деяких фундаментальних невирішених математичних задачах.
Творець першої програми PGP, Філіп Циммерман, відкрито опублікував її код в 1991 році. З тих пір програму неодноразово досліджували криптоаналитики найвищого класу і жоден з них не знайшов в використовуваних методах шифрування слабких місць. При дотриманні простих правил зламати її практично неможливо.
Згодом даний проект був комерціалізовані. У 2010-му році корпорація Symantec викупила PGP у розробників за 300 млн. Доларів і з тих пір пропонує користувачам комерційні версії програми з розширеною функціональністю. Ми настійно не рекомендуємо використовувати комерційну версію PGP, оскільки її вихідний код, природно, вже закритий.
В якості альтернативи ще в 1999 році Фондом вільного програмного забезпечення була створена вільна реалізація шифрування PGP під назвою GnuPG. Дана програма має відкритий вихідний код і повністю сумісна з іншими версіями PGP. Проект GnuPG знаходиться в процесі розвитку і група розробників-ентузіастів до цього дня продовжує роботу над її удосконаленням.
Завантажити дистрибутив програми GnuPG можна за наступними посиланнями:
• Версія для Windows - Gpg4Win
• Версія для Mac OS - GPG Suite
• Версія для Android - GPG Guardian project
• Версії для інших операційних систем - на сайті сайте GnuPG

Принцип шифрування PGP
Шифрування PGP побудовано на принципі несиметричною криптографії. Коротенько це означає наступне. Повідомлення, зашифроване одним ключем, може бути розшифровано тільки іншим, взаємопов'язаним ключем. Ці два ключа утворюють пару - публічний і секретний. Така пара ключів є у кожного учасника листування. Головна перевага PGP полягає в тому, що для обміну зашифрованими повідомленнями користувачам немає необхідності передавати один одному таємні ключі.
Хоча ключ, яким шифрується текст повідомлення, доступний стороннім, з його допомогою це повідомлення розшифрувати неможливо. Цей ключ називається публічним. Користувачі можуть відкрито посилати один одному свої публічні ключі через Інтернет. При цьому ризику несанкціонованого доступу до їх конфіденційної листуванні не виникає.
Секретний ключ ретельно оберігається від сторонніх. За допомогою секретного ключа одержувач дешифрує повідомлення, які були зашифровані його публічним ключем. Але навіть отримавши секретний ключ, противник не зможе ним скористатися, не знаючи пароля.
 
Проілюструємо принцип роботи PGP
Є два співрозмовника, що бажають зберегти конфіденційність своєї переписки. Назвемо їх Аліса і Борис.
1. Обидва співрозмовники встановили програму і кожен з них згенерував по парі ключів - один публічний і один секретний.
2. Після чого Аліса і Борис по відкритому каналу обмінюються своїми публічними ключами. В результаті у кожного співрозмовника виходить наступний набір ключів:
3. Аліса пише повідомлення, зашифровує його публічним ключем Бориса і відправляє адресату. Борис отримує зашифроване повідомлення і відкриває його своїм секретним ключем:
4. Борис пише відповідь, зашифровує його публічним ключем Аліси і відправляє Алісі. Аліса отримує зашифрований відповідь і відкриває його своїм секретним ключем:
Що робить PGP?
Шифрування PGP вирішує три завдання конфіденційного обміну інформацією:
     1.      Захищає текст повідомлень від сторонніх. Тобто прочитати повідомлення може тільки людина, у якого є секретний ключ і який знає пароль.
     2.      Підтверджує одержувачу цілісність приходить повідомлення. Тобто дає впевненість в тому, що при передачі зміст повідомлення не змінилося.
     3.      Підтверджує особу відправника. Вбудована в PGP електронний підпис однозначно ідентифікує відправника, оскільки тільки він має доступ до секретного ключа і знає пароль.

Як працює PGP?
Перш ніж зашифрувати повідомлення відправник визначає одержувача. Програма знаходить публічний ключ одержувача (для цього він повинен бути в файлі публічних ключів на комп'ютері відправника).
Перед шифруванням PGP стискає текст повідомлення. Це прискорює передачу і збільшує надійність шифрування. Потім генерується так званий сесійний (одноразовий) ключ, який являє собою довге випадкове число. За допомогою сесійного ключа шифрується текст повідомлення. Текст повідомлення шифрується за допомогою алгоритму симетричного шифрування. У цьому алгоритмі для шифрування і дешифрування використовується один ключ. Тому для дешифрування повідомлення одержувач теж повинен мати цей сесійний ключ. Однак відправляти цей ключ у відкритому вигляді небезпечно, тому він шифрується публічним ключем одержувача. Зашифрований сесійний ключ відправляється одержувачу разом із зашифрованим текстом. Необхідність використовувати симетричний алгоритм шифрування обумовлена ​​його високою швидкістю.
Розшифровка повідомлень відбувається в зворотній послідовності. На комп'ютері одержувача програма використовує його секретний ключ для розшифровки сесійного ключа. За допомогою цього ключа дешифрується текст повідомлення.
 
Ключі
Ключ - це число, яке програма використовує для шифрування і дешифрування тексту. Розмір ключа вимірюється в бітах. Чим більше ключ, тим його складніше зламати (підібрати). Сьогодні в публічній криптографії свідомо стійкими вважаються ключі довжиною 2048 біта і більше.
Незважаючи на те, що публічний і секретний ключі пов'язані між собою, отримати закритий ключ маючи відкритий ключ, дуже складно. Це можливо якщо довжина ключа невелика і у супротивника є комп'ютери великої потужності. Тому важливо вибирати ключі великого розміру. З іншого боку, занадто довгий ключ уповільнює розшифровку повідомлень. Тому слід дотримуватися золотої середини. Цілком достатньо, якщо підбір буде займати кілька десятків або сотень років. На сучасному рівні розвитку комп'ютерних технологій ключі довжиною 2048 - 4096 біта зламати практично неможливо.
Ключі зберігаються на жорсткому диску Вашого комп'ютера у вигляді двох файлів: одного для публічних ключів, а іншого - для секретних. Ці файли називаються "зв'язками" ключів (Keyrings). Публічні ключі ваших кореспондентів будуть «чіплятися» на зв'язку публічних ключів. Ваші секретні ключі зберігаються в файлі секретних ключів. Зберігати його потрібно особливо ретельно. Втративши секретний ключ, ви не зможете розшифрувати адресовану вам інформацію, яка була зашифрована вашим публічним ключем.
 
Цифровий підпис
Цифровий підпис дозволяє одержувачеві упевнитися в особистості відправника повідомлення. Вона виконує ту ж саму функцію, що і звичайна підпис. Однак звичайну підпис можна підробити. Цифрову же підпис підробити практично неможливо.
 
Підтвердження цілісності повідомлення - хеш-функція
По дорозі від відправника до одержувача вміст повідомлення може бути змінено. У програмі передбачена перевірка цілісності повідомлення. Для цього використовується так звана хеш-функція. Це алгоритм перетворення тексту довільного розміру в деякий невеликий число. Таке перетворення абсолютно однозначно, тобто при будь-якій зміні даних, нехай навіть на один біт, результат хеш-функції теж зміниться.
Перед шифруванням повідомлення програма розраховує його хеш-функцію і шифрує її секретним ключем. Результат шифрування і є цифровим підписом. Цифровий підпис передається поштовою програмою разом з текстом. Програма на комп'ютері одержувача розшифровує хеш-функцію, після чого розраховує хеш-функцію тексту повідомлення. Якщо хеш-функція, отримана від відправника і розрахована на місці збігаються, то це означає, що повідомлення по шляху не змінювалося. Далі текст повідомлення дешифрується з допомогою секретного ключа одержувача.
Потім програма перевіряє який з публічних ключів підходить для розшифровки результату хеш-функції. Якщо це виявився ключ відправника, то одержувач може бути впевнений, що повідомлення підписав власник секретного ключа або людина, якій цей ключ і пароль стали доступні.
Витягти підпис з одного документа і вкласти в інший, або змінити зміст повідомлення так, щоб воно як і раніше відповідало цифрового підпису, неможливо. Будь-яка зміна підписаного документа відразу ж буде виявлено під час перевірки справжності підпису.
 
Пароль
Шифрування PGP має ще одним рівнем захисту. Щоб скористатися секретним ключем недостатньо мати доступ до файлу секретних ключів. Для цього необхідно знати пароль.
У програмах реалізації PGP пароль називається "пральний фразою" (Passphrase), хоча вона може складатися і з одного слова. Однак пам'ятайте, що використання занадто коротких паролів значно збільшує ризик їх злому.
Існує три найбільш популярних методу злому пароля:
1.      Метод "словникової атаки" (Dictionary Attack) - послідовний перебір всіх слів мови в різних регістрах.
2.      Метод "грубої сили" (Brute Force) - послідовний перебір всіх можливих комбінацій всіх символів.
3.      Метод "гайкового ключа" (інші варіанти назви: метод "гумового шланга" (Rubber-hose Cryptanalysis), "терморектальний криптоаналіз", "бандитський криптоаналіз") - використання для злому пароля слабкішого ланки системи захисту інформації, яким є людський фактор. Застосовуючи цей метод, "криптоаналитик" вдається до погроз, тортур, шантажу, вимагання, хабарництва та інших некоректних заходів впливу на людину, яка знає пароль. Це можна проілюструвати карикатурою:


(Джерело карикатури: xkcd.com)
Опис заходів протидії методу "гайкового ключа" виходить за рамки даної статті. У цих питаннях вам можуть допомогти фахівці із забезпечення фізичної безпеки. А ось для боротьби з першими двома методами досить дотримуватися нескладних правил вибору пароля:
Не слід:
• Використовувати слова, які можна зустріти в словнику будь-якого відомого мови.
• Використовувати дати народження, прізвища та імена родичів, клички домашніх тварин та інші легко вгадуються набори символів.
• Використовувати осмислені слова однієї мови, набрані в розкладці клавіатури для іншої мови.
• Записувати пароль (особливо в особистих записниках або залишати його поблизу комп'ютера).
Бажано:
• Вибирати довжину пароля більше 8 символів (якщо він складається з випадкового набору букв і цифр і розділових знаків).
• При використанні в паролі осмислених слів збільшити її довжину до 16-20 символів. Слів при цьому має бути кілька.
• При використанні осмислених слів робити в них помилки, вставляти знаки пунктуації, змінювати регістр.
Пароль необхідно запам'ятати. Якщо ви його забудете, то вже ніколи не зможете відновити інформацію зашифровану цим ключем. Без знання пароля ваш секретний ключ абсолютно даремний.
Існує один дуже непоганий метод генерування і запам'ятовування довгих складних паролів: ми беремо будь завчене напам'ять вірш (або слова популярної пісні) і в якості пароля використовуємо перші літери кожного слова, набрані в англійській розкладці клавіатури.
Для прикладу візьмемо уривок з вірша Еміля Верхарна "Меч":
З насмішкою над моєю гордістю безплідною
Мені хтось передбачив, що тримав меч в руці:
Нікчемність, з душею пустою і холодної,
Ти будеш минуле оплакувати в тузі.
Тепер перемикаємо розкладку клавіатури на англійську мову і, повторюючи про себе завчене вірш, набираємо перші літери кожного слова (дивлячись при цьому на російські літери клавіатури):
сннмгбмнпдмврнсдпіхтбповт
У підсумку нашим паролем буде наступна набрана послідовність символів:
cyyvu, vyglvdhyclgb [n, gjdn
Як бачимо, пароль вийшов досить довгим і дуже складним. А ось запам'ятати його не складе особливих труднощів. Від вас тільки потрібно не забути яке саме вірш (або пісня) лежить в основі вашого пароля.


Утиліти безпеки

Безпеку системи можна суттєво підвищити завдяки використанню утиліт спеціально розроблених для виконання певних завдань адміністрування безпеки або з метою заміни стандартних механізмів захисту системи іншими, більш дос­коналими. Ми розглянемо лише ті програми, які не стосуються мережної безпеки.

Програми, що підвищують безпеку облікових записів
Далі наведено перелік програм, які дають змогу підвищити безпеку облікових запису

  • Crack — популярна програма вгадування паролів розробки Алекса Маффетта (Alex Muffett), яка, скануючи файл паролів, швидко виявляє нестійкі паролі.
  • CrackLib — бібліотека функцій, які можна викликати з програм типу passwd для запобігання введенню користувачами нестійких паролів.
  • John the Ripper — програма вгадування паролів, аналогічна Crack.
  • anlpasswd — активний засіб перевірки паролів розробки Argonne National La­boratory, що не дає змоги користувачам обирати нестійкі паролі.
  • epasswd — утиліта, розроблена Еріком Алленом Девісом (Eric Allen Davis) на зміну стандартній програмі passwd, дає змогу гнучко застосовувати вимоги до підвищення стійкості паролів (мінімальна і максимальна довжина пароля, мінімальна кількість застосованих цифр, спеціальних символів, букв у нижньо­му і верхньому регістрах).
  • npasswd — утиліта, створена Клайдом Гувером (Clyde Hoover) на зміну стан­дартній програмі passwd, тестує паролі на стійкість до їх вгадування.
  • +passwd+ — активний перевіряльник паролів, створений Меттом Бішопом (Matt Bishop). Використовує конфігураційний файл, що визначає, які типи паролів дозволені, а які — ні. Такий файл дає змогу використовувати регулярні вира­зи, порівняння паролів із вмістом файлів (наприклад, словників) і виклики зовнішніх програм для перевірки.
  • ppgen — генератор випадкових паролів, створений Майклом Шілдсом (Miohael Shields), використовують з програмами, які підтримують довгі паролі. Може діяти як окремий засіб або бути інтегрованим у passwd та інші програми.
  • otp — програма, написана мовою C, яка генерує списки одноразових паролів. Змодельована за системами, що використовують швейцарські банки, ця про­грама генерує ключі та списки паролів для верифікації та захисту в різних форматах.
  • S/Key — система одноразових паролів, розроблена Bell Communications Re­search (Bellcore). Система OpenBSD має вбудовану реалізацію S/Key.
  • OPIE (One time Passwords In Everything) — система паролів (подальший роз­виток S/Key) розроблена Дослідницькою лабораторією військово-морських сил США (US Naval Research Laboratory, US NRL). OPIE відповідає стандар­ту IETF One Time Passwords (OTP) згідно з RFC-1938, підтримує, крім MD4, алгоритм MD5 і має ще низку вдосконалень.



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

  • Cryptographic File System (CFS) — програма, написана Меттом Блейзом (Matt Blaze), вбудовує криптографічні сервіси у файлову систему UNIX. Програма надає стандартний інтерфейс файлової системи UNIX для доступу до зашиф­рованих файлів.
  • Transparent Cryptographic File System (TCFS) — програма, яка, подібно до програми CFS, пропонує сервіси прозорого шифрування-дешифрування під час роботи з файловою системою.
  • Crypt Breakers Workbench (CBW) — інтегрований набір інструментальних засобів, які дають змогу криптоаналітикам читати файли, зашифровані ко­мандою crypt системи BSD 4,2. Програму було написано Робертом В. Болдвіном (Robert W. Baldwin).
  • libdes — цей набір, розроблений Еріком А. Янгом (Eric A. Young), утворює бібліотеку шифрування за стандартом DES і програму, яка здійснює таке шифрування. Набір містить також швидку реалізацію функції crypt ().
  • Pretfcy Good Privacy (PGP) — популярна програма Філіпа Циммермана (Phіlip Zimmerman), яка здійснює шифрування електронної пошти і файлів.
  • Filereaper — програма Цайго Блекселла (Zygo Blaxell), призначена для пошуку і видалення тимчасових файлів. Стандартне рішення цього завдання з використанням програми find є вразливим до деяких атак. Зазначена про­грама застосовує низку заходів для запобігання цим проблемам.
  • Hobgoblin — програма використовує шаблон з описанням файлів і каталогів, що мають відповідати еталону. Програма сканує файли і каталоги та звітує про будь-які їхні відмінності.
  • Tripwire — програма перевірки цілісності файлової системи, призначена для виявлення будь-яких несанкціонованих змін. Особливо корисна для виявлен­ня порушників, які могли змінити файли з метою полегшення майбутнього несанкціонованого доступу, видалити чи змінити системні журнали реєстра­ції, залишити в системі віруси, хробаки, логічні бомби та інші руйнівні засоби.


Програми, що дають змогу здійснювати аудит системи
Наведемо приклади програм, які застосовують для реєстрації користувачів і про­ведення аналізу їхніх дій.

  • chklastlog — це програма, що перевіряє файл /var/adm/lastlog на наявність у ньому вилучених записів шляхом порівняння із файлом /var/adm/wtmp.
  • chkwtmp — маленька утиліта, яка перевіряє файл /var/adm/wtmp на наяв­ність перезаписаної інформації. Якщо програма знаходить запис, перезаписаний нулями, то роздруковує мітки часу попереднього і наступного записів, де­монструючи вікно часу, протягом якого було здійснено видалення.
  • Logcheck — програма, створена Крейгом Роландом (Craig Rowland), призна­чена для пошуку порушень безпеки і незвичайної активності у файлах реє­страції та для відправлення сигналів тривоги електронною поштою. Програ­му можна настроїти так, щоб вона повідомляла про все, що було явно задано за допомогою ключових слів, або, навпаки, не повідомляла. Таким чином можна виявляти певні сигнатури атак та будь-які незвичайні повідомлення.
  • loginlog — невеличка програма, яка відстежує файл wtmp і реєструє повідом­лення про входження в систему за допомогою syslogd.
  • Swatch (Simple WATCHer) - потужна програма, яка здійснює моніторинг файлів реєстрації. Її основне призначення — активний моніторинг повідом­лень під час їх записування у файли реєстрації утилітою syslog. Програму можна використовувати для аудита, тобто для одноразового перегляду та пе­ревірки файлу реєстрації.
  • 4-syslog-ng (Next Generation SYSLOGd) — програма-демон, розроблена на зміну стандартній syslogd, що постачається з Solaris, BSD, Linux та іншими UNIX-системами. Головною особливістю syslog-ng є те, що ця програма захищає файли реєстрації цифровими підписами. Таким чином достовірність інфор­мації з файлів реєстрації може бути доведена, що має велике значення для розслідування інцидентів із комп'ютерними системами.
  • tklogger — програма, написана Даугом Хьюзом (Doug Hughes), здійснює мо­ніторинг файлів реєстрації, створених syslog та іншими програмами. Програ­ма tklogger працює з будь-якими визначеними текстовими файлами і відслід­ковує їх модифікації.
  • Watcher — дуже потужна та гнучка програма моніторингу системи, написана Кеннетом Інгамом (Kenneth Ingham), яка фіксує ряд заданих користувачем команд, аналізує потік виведення, перевіряє значущі моменти і повідомляє про них адміністратора.
  • Zap — зручна утиліта, яка вилучає інформацію про входження в систему вказа­ного користувача. Це дає змогу адміністратору стежити за порушником непо­мітно, оскільки його присутність у системі жодним чином не демонструється.
  • chkacct — програма, яка перевіряє облікові записи користувачів щодо їх без­печного використання. Зокрема, вона перевіряє права доступу до файлів і мо­же їх коригувати, шукає файли, відкриті для записування всім користувачам, перевіряє приховані файли.
  • Tiger — програма перевірки системи, розроблена в Техаському університеті (Texas A&M University), яка, зокрема, перевіряє:

    • систему на наявність небезпечних дозволів доступу до важливих систем­них файлів і каталогів;
    • систему на наявність файлових систем, доступних для читання і запису­вання всім користувачам;
    • усі файли зі встановленим атрибутом SUID;
    • файл із хеш-образами паролів на наявність записів із порожніми паролями; і файл /etc/group;
    • паролі користувачів щодо легкості їх добирання;
    • команди в /etc/rc*, файл crontab і деякі файли користувачів, щоб жодний із них не був доступним для модифікації сторонніми користувачами;
    • домашні каталоги користувачів для гарантування того, що жоден із них не є доступним для модифікації сторонніми користувачами.

 

Комментариев нет:

Отправить комментарий