27 апреля, 2024

Основы криптографии для хакеров

Содержание:

С возвращением!

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

Для начинающих хакеров концепции и терминология криптографии могут показаться очень запутанными. Криптография — это наука и искусство скрывать сообщения таким образом, чтобы они были конфиденциальными, а затем «раскрывать» их, чтобы только их получатель мог эти сообщения прочитать. В принципе, мы можем сказать, что криптография — это наука о секретных сообщениях.

Этим кратким обзором для новичков мы надеемся приподнять завесу тайны над этой темой и пролить немного света на криптографию. Мы сделаем простой небольшой обзор основ криптографии без описания алгоритмов и математики шифрования. Мы попытаемся ознакомить вас с основной терминологией и концепциями. Так что, когда вы будете читать о хэшировании, взломе паролей или о взломе Wi-Fi, а также о технологиях шифрования, у вас будет некоторое понимание того, что в этих статьях рассматривается.

Поймите нас правильно, мы не собираемся делать из вас криптографов (на это может уйти несколько лет). Здесь мы просто хотим дать самые основы криптографии, чтобы эти вопросы не загоняли вас в тупик.

Мы попытаемся использовать максимально простой язык для описания этих технологий, настолько, насколько это вообще возможно, но, как всегда в ИТ, здесь используется очень специализированный язык. Такие термины как шифр, простой текст, зашифрованный текст, пространство ключей, размер блока и коллизии, могут сделать изучение криптографии несколько запутанным делом для новичков. Мы будем использовать термин «коллизия», так как другого подходящего слова в нашем языке нет.

Давайте начнем с того, что разобьем всю область шифрования на несколько категорий.

Типы шифрования

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

  • Симметричное шифрование
  • Асимметричное шифрование
  • Хэширование
  • Беспроводное шифрование

Пара слов о размере ключей

В мире криптографии размер имеет значение! В общем, чем больше ключ, тем более безопасным является шифрование. Это означает, что AES с 256-битным ключом сильнее AES с 128-битным ключом и его, вероятно, будет сложнее сломать. В рамках использования одного и того же алгоритма шифрования получается, что чем больше ключ, тем сильнее шифрование.

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

Читать также:  Как безопасно пользоваться публичным Wi-Fi

Симметричное шифрование

Симметричное шифрование — это то, где у нас есть один и тот же ключ, как у отправителя, так и у получателя. Это, вероятно, самая распространенная форма шифрования. У вас есть пароль или ключ, который шифрует сообщение, и у меня есть тот же пароль для расшифровки сообщения. Никто кроме нас не в состоянии прочитать наши сообщения.

Симметричное шифрование очень быстрое, поэтому оно хорошо подходит для хранения больших объемов данных или для использования в стриминговых приложениях. Недостатком симметричной криптографии является то, что называется обменом ключами. Если для обоих участников сообщения нужен один и тот же ключ, то им необходимо использовать некий канал для обмена этими ключами, и в этом заключается уязвимость такого способа. Если есть два человека, которые хотят зашифровать свои сообщения, и они находятся на расстоянии 12 000 миль друг от друга, то как они будут обмениваться ключами? Такой обмен имеет все слабости и проблемы конфиденциальности той среды, которую они выбирают для обмена, будь то телефон, почта, электронная почта, беседа с глазу на глаз и т.д. В момент передачи ключ может быть перехвачен и это ставит под угрозу обеспечение конфиденциальности переписки в целом.

Вот список из некоторых общих симметричных алгоритмов шифрования, которые вы должны знать:

  • DES — один из самых первых и самых старых схем шифрования, разработанный IBM. Со временем в нем были найдены уязвимости, которые приводили к взлому шифрованных данных. Он использовался в исходной хеширующей системе хэшей LANMAN в ранних (до 2000 года) системах Windows.
  • 3DES — был разработан в ответ на недостатки DES. 3DES применяет алгоритм DES три раза (отсюда и название «тройной DES»), что делает его более безопасным, чем сам DES.
  • AES — Advanced Encryption Standard не является алгоритмом шифрования. Это стандарт шифрования, разработанный NIST. В настоящее время он считается самым сильным шифрованием, использует 128-, 196- или 256-битный ключ и алгоритм Rijndael с 2001 года. Используется в WPA2, SSL/TLS и многих других протоколах, где важны конфиденциальность и скорость.
  • RC4 — это шифр потоковой передачи (шифрует каждый бит или байт сообщения, а не целый блок информации), который разработан Рональдом Ривестом в честь RSA. Используется в VoIP и WEP.
  • Blowfish — первый алгоритм шифрования Брюса Шнайера. Он использует переменную длину ключа и очень безопасен. Он не запатентован, поэтому любой может использовать его без лицензии.
  • Twofish — более сильная версия Blowfish с 128-битным или 256-битным ключом, был сильным соперником AES. Используется в Cryptcat, OpenPGP и в других местах. Он также является общественным достоянием без патента.
Читать также:  Взлом ASLR-защиты: Атака процессора с помощью JavaScript

Асимметричное шифрование

Асимметричное шифрование использует разные ключи на обоих концах канала связи. Оно очень медленное, примерно в 1000 раз медленнее симметричного, поэтому мы не используем его для массового шифрования больших объемов данных или при потоковой передаче. Однако оно решает проблему обмена ключами. Поскольку нам не нужно иметь один и тот же ключ на обоих концах канала связи, то у нас и нет проблем с обменом ключами.

Асимметричное шифрование используется в первую очередь в ситуациях, когда у нас есть две неизвестные друг другу единицы, которым нужно обменяться между собой небольшим количеством информации, например, каким-нибудь ключом или некоторой идентифицирующей информацией, сертификатом. Оно не используется для массового или потокового шифрования из-за ограничений по скорости.

Вот список некоторых общеизвестных алгоритмов асимметричного шифрования, с которыми вы должны быть знакомы:

  • Алгоритм Диффи-Хеллмана. Многие специалисты по криптографии считают, что этот алгоритм— самый большой вклад в развитие криптографии. Не углубляясь в математику скажем, что Диффи и Хеллман разработали способ генерации ключей без необходимости их обмена, тем самым решая проблему обмена ключами, которую накладывают на нас алгоритмы симметричного шифрования.

  • RSA — Rivest, Shamir и Adleman — схема асимметричного шифрования, которая использует факторизацию очень больших простых чисел в качестве отношения между двумя ключами.
  • PKI — инфраструктура открытого (публичного) ключа, широко используемая асимметричная система для обмена конфиденциальной информацией с использованием закрытого (приватного) ключа и открытого (публичного) ключа.

  • ECC — шифрование на основе эллиптических кривых становится все более популярным в мобильных вычислениях, поскольку это очень эффективный способ, требующий меньше вычислительной мощности и энергопотребления для обеспечения того же уровня безопасности. ECC полагается на совместное отношение двух функций, находящихся на одной и той же эллиптической кривой.
  • PGP — Pretty Good Privacy использует асимметричное шифрование для обеспечения конфиденциальности и целостности сообщений электронной почты.

Хэширование

Хэширование — это одностороннее шифрование. Сообщение или пароль зашифровываются таким образом, что его нельзя расшифровать или восстановить исходный текст. Вы можете спросить: «Какой смысл в том, что мы что-то шифруем, а потом никто не может это прочитать?» Это хороший вопрос!

Когда сообщение шифруется, алгоритм хэширования создает «хэш», который становится уникальной, но не расшифровываемой сигнатурой для основного сообщения. Каждое сообщение зашифровывается таким образом, что создает уникальный хэш. Обычно эти хэши фиксированной длины (хеш MD5, например, всегда 32 символа). Таким образом, злоумышленник не может получить никакую информацию о базовом сообщении, имея на руках только хэш. Благодаря этому нам не нужно знать текст исходного сообщения. Достаточно знать, что генерация хэша от какого-то текста создает тот же хэш. Это используется для проверки целостности сообщений или данных (что они не были изменены).

Читать также:  Что такое видеокарта и для чего она нужна

Вот почему хэши используются для хранения паролей. Пароли хранятся как хэши, а затем, когда кто-то пытается войти в систему, она хэширует введенный пароль и проверяет его на соответствие тому хэшу, который в ней сохранен. Так же, хеши полезны для проверки целостности, например, при скачивании файлов.

В мире шифрования и хэширования случаются «коллизии» — это ситуации, когда два разных входных текста создают один и тот же хэш. Другими словами, хеш не уникален. Это может быть проблемой, если предполагать, что все хеши уникальны, например, в обмене сертификатами в SSL. NSA использовала это свойство коллизий во вредоносном ПО Stuxnet, подставляя системе то, что казалось законным сертификатом Microsoft. Хэш-алгоритмы, которые создают коллизии, как вы могли догадаться, являются уязвимыми и небезопасными.

Вот алгоритмы хэширования, с которыми вы должны быть знакомы.

  • MD4 — это ранний алгоритм хэширования Рона Ривеста. Его использование было прекращено в значительной степени из-за коллизий.
  • MD5 — наиболее широко используемый хэширующий алгоритм. Это 128-битный алгоритм, создающий 32-символьный дайджест сообщения.
  • SHA1. Разработанный NSA, он более безопасен, чем MD5, но не так широко используется. Он имеет 160-битный дайджест, который обычно отображается в виде 40-символьной строки в шестнадцатеричном формате. Часто используется для обмена сертификатами в SSL, но из-за недавно обнаруженных уязвимостей постепенно для этих целей устаревает.

Беспроводное шифрование

Беспроводное шифрование очень полюбилось нашим читателям, так как многие из них пытаются взломать точки доступа. Как вы могли догадаться, беспроводное шифрование симметрично (из-за требований по скорости), и обмен ключами имеет здесь решающее значение.

  • WEP — оригинальная схема шифрования для беспроводной связи. Довольно быстро было обнаружено, что она имеет уязвимости. Она использовала алгоритм RC4, но из-за небольшого размера ключа (24 бит) она повторяла IV примерно через каждые 5000 пакетов, что позволяло легко взломать сеть при большой нагрузке.
  • WPA — это была попытка быстро исправить уязвимости WEP, куда был добавлен более длинный ключ и TKIP для того, чтобы сделать его более устойчивым к взлому.
  • WPA2-PSK — первая из наиболее безопасных схем шифрования беспроводных сетей. Она использует предварительно разделяемый ключ и AES. Затем в шифровании в качестве криптографической соли используется имя точки доступа или SSID. Обмен хэшами осуществляется при аутентификации в четырехстороннем рукопожатии между клиентом и точкой доступа.
  • WPA2-Enterprise — это беспроводное шифрование является наиболее безопасным. Оно использует 128-битный ключ, AES и удаленный сервер аутентификации (RADIUS).

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

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