Хеш-генератор MD5

Додати на сайт Метаінформація

Інші інструменти

Хеш-генератор MD5

Хеш-генератор MD5

MD5 - це 128-бітний алгоритм хешування, створений вченим Рональдом Л. Рівестом на початку 90-х років минулого століття. Абревіатура MD5 розшифровується як Message Digest 5-ої версії.

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

Історія MD5

Історія алгоритму побудови дайджесту повідомлення (MD5) починається в 1991 році, коли професор Массачусетського технологічного інституту Рональд Л. Рівест звітував про створення нового алгоритму, що прийшов на заміну застарілого MD4. Що стосується MD4, то в ньому справді було виявлено низку недоліків, про що пізніше написав німецький криптолог Ганс Доббертін.

Рівест навів опис нового алгоритму MD5 у документі RFC 1321.

Робота над алгоритмом була продовжена дослідниками Бертом ден Буром та Антоном Босселарсом, які в 1993 році довели ймовірність виникнення в MD5 псевдоколізій, коли різні вектори, що ініціалізують, можуть мати відповідність з однаковими дайджестами повідомлень.

Далі, 1996 року Гансом Доббертіном було заявлено про виявлення в MD5 колізії. У той час стало відомо про кращі алгоритми хешування, такі як криптографічні хеш-функції RIPEMD-160 — розроблена Хансом Доббертіном, Антоном Босселарсом і Бартом Пренелем, Whirlpool — розроблена Вінсентом Рейменом і Пауло Баррето і алгоритм криптографічного хешування. >

Зважаючи на невеликий розмір хешу (128 біт) у MD5, заговорили про ймовірність атак типу «день народження». Проект MD5CRK, запущений Жан-Люком Куком у 2004 році мав на меті вивчити вразливість алгоритму за допомогою birthday-атак. Але, після п'яти місяців, 17 серпня 2004 року, проект звернули у зв'язку з виявленням уразливості в алгоритмі, групою китайських криптографів на чолі з Лай Сюецзя.

У березні 2005 року математиками та криптографами Бенне де Вегером, Ар'єном Ленстро та Ван Сяоюнем було створено два документи X.509, які мають однаковий хеш та різні відкриті ключі.

Через рік, у березні 2006 року був опублікований алгоритм, складений чеським криптографом Владимілом Клима, що дозволяє визначити колізії на простому комп'ютері протягом всього однієї хвилини. Цей алгоритм став відомим як метод «тунелювання».

У результаті аналізу результатів роботи, у 2008 році підрозділ Національного управління кібербезпеки Міністерства внутрішньої безпеки США (US-CERT) порекомендував усім, хто був задіяний у розробках програмного забезпечення, веб-сайтів, а також користувачам мережі відмовитися від використання алгоритму MD5 незалежно від цілей його застосування. Причиною такої рекомендації стала ненадійність, яку він продемонстрував у процесі вивчення.

У грудні 2010 року китайські криптологи Тао Се та Фен Денго виявили колізію повідомлень завдовжки 512 біт (один блок). Насамперед колізії перебували лише у повідомленнях, довжина яких становила два блоки і більше. Пізніше подібних результатів досяг Марк Стівенс, який опублікував блоки з однаковим хешем MD5. Він також розробив алгоритм отримання колізій даного типу.

Підсумковим документом, що поставив крапку в історії розвитку алгоритму MD5, став запит на коментарі — RFC 6151 (RFC — офіційний документ, розроблений Інженерною радою інтернету (IETF), в якому описуються специфікації для конкретної технології), що фактично визнав MD5 небезпечним алгоритмом хешування . Документ рекомендує від нього відмовитися, обравши як альтернативу сімейство криптографічних алгоритмів SHA-2.

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

Але, за фактом, відносно проста функціональність, коротка вихідна довжина і нескладність операцій, що є, перевагами алгоритму визначають і його недоліки — MD5 відноситься до алгоритмів, схильних до злому і мають низький ступінь захисту від атак типу «день народження».

Що таке MD5?

Що таке MD5?

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

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

Приклади використання

Основною перевагою алгоритму MD5 можна назвати його широкі можливості щодо сфер застосування.

Алгоритм дозволяє перевіряти завантажену інформацію на предмет справжності та цілісності

Наприклад, разом із пакетами для інсталяції ПЗ йде значення контрольної суми для перевірки.

Також практикується застосування алгоритму MD5 для хешування паролів

Так, наприклад, операційна система Unix активно застосовує даний алгоритм як інструмент хешування. Слід зазначити, що в деяких Linux-системах метод MD5 також активно використовується для зберігання паролів.

Відомі такі способи зберігання паролів:

  • Стандартне зберігання без застосування хешування. Недоліком такого способу є високий ризик витоку інформації при зломі бази.
  • Збережено лише хеші паролів. Такі дані легко знаходяться за допомогою таблиць хешей, які готуються заздалегідь. Для заповнення таких таблиць використовуються поширені паролі невисокої складності.
  • Додавання до паролів кількох символів, які мають назву «сіль». Після цього здійснюється хешування результату. Отриманий внаслідок таких дій пароль підлягає збереженню у відкритому вигляді. При пошуку паролів, створених таким чином, таблиці не допоможуть.

Алгоритм хешування MD5 може використовуватися для перевірки файлів, завантажених з мережі

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

MD5 використовується для створення веб-застосунків

У процесі розробки та налаштування автентифікаційних систем, скриптів або панелей можна генерувати хеш-коди для окремих рядків.

Надійність алгоритму MD5

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

У результаті робіт низки вчених було виявлено певні недоліки даної технології. Головний із них — уразливість через виявлення колізії під час шифрування.

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

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

  • Універсальним методом злому можна вважати атаку повного перебору (метод «грубої сили»). Але він також має свій недолік — метод є дуже довгим. Для протидії йому використовують прийом збільшення кількості ключів. Цей метод часто застосовують для оцінки рівня стійкості та надійності шифрування паролів.
  • RainbowCrack — це спеціальна програма, яка дозволяє створити хеш базу, на основі якої здійснюється практично миттєвий злом пароля з букв та цифр.
  • Для підбору паролів за допомогою словника користуються словниковими базами та готовими програмами.
  • При використанні методу пошуку колізій беруть аналогічні значення функції для різних повідомлень, які мають однаковий початок. Цей метод активно користувалися наприкінці XX століття.

Формула отримання ідентичного хеш-коду: MD5(4L1) = MD5(4L2).

У 2004 році китайські вчені виявили в системі вразливе місце, що дозволяє виявити колізію за невеликий відрізок часу.

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

Незважаючи на певні проблеми, пов'язані в основному з вразливістю MD5, цей алгоритм, як і раніше, затребуваний через активне його застосування в самостійних розробках веб-додатків, а також в інших необхідних випадках.