Ласкаво просимо до викликів

Ми не можемо представити цей проект краще ніж це зробив Maciej Ceglowski, так що спочатку прочитайте цю статю із блога.

Це переклад

Це переклад на українську сайта https://cryptopals.com/.

Ми зробили колекцію завдань які демонструють атаки у реальному світі кріпто.

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

Які правила?

Немає ніяких правил! Декілька років ми запускали ці челленджі через пошту, і просили учасників не ділитися своїми результатами. Система честі працювала чудесно! І зараз ми готові відкинути церемонії та просто опублікувати виклики щоб кожен зміг попрацювати над ними.

Як багато математики я повинен знати?

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

Як багато кріпто я повинен знати?

Нічогісінько. У цьому і фішка.

То що я повинен знати?

Ви захочете вміти вправно кодувати у будь-якій мові. Ми отримували відповіді на C, C++, Python, Ruby, Perl, Visual Basic, X86 Assembly, Haskell, та Lisp. Здивуйте нас із іншою мовою. Наш друг Maciej говорить, що ці виклики, гарний шлях вивчити нову мову, тож можливо зараз час взяти Clojure або Rust.

Що я повинен очікувати?

Зараз, у нас є вісім рівнів. Вони стають прогресивно складнішими. Знову: вони базовані на вразливостях із реального світу. Ніякі із них не є “пазлами”. Вони не створені щоб підловити вас. Деякі із атак доволі кмітливі, хоча, і якщо ви не знайомі із крипто кмітливостю… гаразд, ви повинні любити вирішувати пазли. Цінування MTV хіп-хопа із ранніх 90-х також не завадить.

Чи можете ви дати довге виправдовування нащо ви вирішили зробити це?

Як виявилося що ми можем.

Якщо ви що не знайомі із кріпто, або якщо ваше знайомство йде переважно з таких джерел як Прикладна криптографія, цей факт може здивувати вас: більшість кріпто фатально зламана. Системи на які ми покладаємося сьогодні про які не відомо що вони фатально зламані знаходяться у стані очікування щоб бути фатально зламаними. Ніхто не впевнений що TLS 1.2 або SSH 2 або OTR будуть залишатися безпечними як спроектовано.

Поточний стан безпеки кріпто-програмного забеспечення схожий на стан безпеки програмного запеспечення у 1990-их. Конкретно: до приблизно 1995, це не було загальним фактом що програмне забезпечння створено людьми може мати проблеми із рахуванням. Як результат, ніхто не міг зробити правильний розмір для буфера, і людство понесло мільярди доларів збитків, прибираючись після півтори декади термінових виправлень для вразливостей пошкодженння пам’яти.

Обчислення це не складна проблема. Але криптографія - так. Лише декілька речей де ви можете облажатися якщо берете не вірний розмір буфера. Але десятки, мабуть сотні неявних дрібних речей які ви можете зробити щоб взяти криптосистему яка повинна бути безпечною навіть проти супротивника який має більше CPU ядер ніж існує атомів у сонячній системі, і зробити її вирішуваной за допомогою Perl скрипта та 15 секунд. Не вірте нам на слово: зробіть виклики і ви сами побачите.

Люди вже це “знають”, але вони насправді не знають це своїм нутром, і ми вважаємо причина для цього що дуже мало людей насправді знає як реалізувати найбільш відомі атаки. Тому напишіть нам, і ми зробимо вам екскурсію по ним.

Як почати?

Починати тут!

Продовжувати тут!

Хто це зробив?

  • Thomas Ptacek (@tqbf)
  • Sean Devlin (@spdevlin)
  • Alex Balducci (@iamalexalright)
  • Marcin Wielgoszewski (@marcinw) Cryptopals підтримується та розширяється (із Набору 8 і далі) Sean Devlin, сумісно із Cryptography Services Team у NCC Group.

Ми би не змогли це зробити без допомоги декількох інших людей. Приблизно у порядку впливу:

Nate Lawson навчив нас практично усьому що ми знаємо про криптографію. Trevor Perrin навчив Nate деяким речам. Я можу сказати вам досить переконливу історію про те як Trevor був інтелектуальним джерелом для кожної вдалої атаки на TLS протягом останніх 5 років. Thai Duong та Juliano Rizzo е хрещеними батьками практичної безпеки криптографічного програмного забезпечення. Деякі речі у цих викликах не мали сенсу для нас доки Thai та Juliano експлоітували їх у мейнстрімних програмах.

Правова інформація

Індивідуальні рішення є власністю автора. і можуть розповсюджуватися або не розповсюджуватися під відкритою ліцензією.

Переклад

Цей переклад зроблено мною! Андрієм Курдюмовим (@kurdiumov), і трішки колгоспу (хто допомогає, додавайтеся сюди)