Играй и учись с CryptoHack


CryptoHack — это интересный способ изучить криптографию, а также приобрести ценные навыки CTF. С помощью серии головоломок вам предстоит взломать плохие реализации «современной» криптографии, такие как AES, RSA и Elliptic-Curve.

Хотя CryptoHack черпал вдохновение в соревнованиях Capture the Flag, он фокусируется исключительно на их криптографических аспектах, то есть взломе шифров, дешифровании, кодировании и преобразовании между форматами. В его задачи входят:

Скачивание уязвимого исходного кода и определение того, как взломать вывод.

Выполнение веб-запросов к серверу и медленное извлечение конфиденциальных данных.

Подключение к порту и выполнение атаки «злоумышленник посередине» на две стороны, пытающиеся установить связь.

Завершение каждого задания показывает «флаг», строку, такую как:

«крипто {th15_1s_4_fl4g}»

которые вам нужно ввести, чтобы набрать баллы:

Некоторые из задач являются динамическими и требуют, чтобы вы общались с помощью netcat или других инструментов для отправки необработанных данных через сокет. Например, вторая вводная задача требует, чтобы мы подключились к порту 11111 netcat для получения флага, что очень просто. :

$ nc socket.cryptohack.org 11111

или следующий, где вы устанавливаете двунаправленную связь с сервером cryptohack, чтобы отправить ему объект JSON с ключом «покупка» и значением «флаг»:

$ nc socket.cryptohack.org 11112

Добро пожаловать в магазин флагов netcat! Что бы вы хотели купить? Я говорю только в формате JSON, надеюсь, что все в порядке.

#sent: {«buy»: «flag»}

#received: {«flag»: «crypto {sh0pp1ng_f0r_fl4g5}»}

Но не позволяйте этим легким испытаниям вводить вас в заблуждение относительно уровня сложности, с которым вам предстоит столкнуться. По мере вашего прогресса они становятся все труднее и труднее.

Хотя вы можете использовать найденные в Интернете конвертеры для ваших нужд кодирования / декодирования, такие как CyberChef, который мы рассмотрели в CyberChef — The Developer’s Ultimate Toolbox, рекомендуется использовать язык программирования для кодирования вашего решения. Организаторы предпочитают Python 3 и предоставляют фрагменты Python исходный код, который вы можете адаптировать для своих целей.

Задачи также связаны с математикой, необходимой частью набора инструментов шифровальщика. Требуемая начальная математика несложна; вычисление наибольшего общего делителя по модулю или нахождение квадратного корня. Также важно отметить, что, по крайней мере, для упражнений из раздела математики, последующие из них основаны на предыдущих, и способ их решения четко описан — вам нужно только применить методологию к задаче, чтобы ее решить.

Как уже говорилось, задачи усложняются по мере вашего продвижения, и после вводных и общих задач вы получаете возможность решать настоящую криптографию, начиная с блочных шифров, переходя к RSA и Diffie-Hellman и заканчивая Elliptic Curves и Misc — категорией с интересными вещами. это больше нигде не подходило. Именно из этих категорий вы получаете сложный математический и Python-код, а не взламываете удаленные системы. В любом случае, пройдя испытания, вы познакомитесь с концепциями криптографии, узнаете различия между типами шифров и получите удовольствие, как игру.

Хотя CryptoHack — это игровая среда с табло, где вы соревнуетесь с другими игроками, я, конечно, могу представить это как часть степени в области CS или криптографии, где студенты могут получить практический опыт применения криптографии для решения увлекательных задач. Это тоже бесплатно!

Если вы хотите освежить свои общие знания Crypto, мы ранее рекомендовали отличную бесплатную электронную книгу Crypto 101.


Добавить комментарий