Человечество на протяжении тысячелетий стремилось сохранить приватность своих личных данных или засекретить особенно важную информацию: будь то военные тайны или пароли к персональным аккаунтам. Но задолго до современной криптографии, существовали механические устройства вроде цилиндров да Винчи или шифровальные машины, подобные «Энигме».   Оглавление: Древнее шифрование в Египте и Спарте. Первые устройства Шифр Цезаря   Шифрование: устройство ключа и алгоритма Шифровальные механические устройства и первая в мире машина  Мобильная связь и интернет: шифрование в бытовой жизни   Самый важный алгоритм в криптографии   Шифрование в мобильных сетях  Чем шифрование отличается от хэширования Wi-Fi  и обеспечение безопасности каналов связи Длинные пароли лучше, чем странные  Различия в способах шифрования в различных ОС — IOS, Android, Windows Квантовые компьютеры и шифрование  Люди зашифровывали информацию с древних времен: самые ранние письменные доказательства существования шифрования относятся к Древнему Египту. Их обнаружили в могиле представителя буржуазии Хнумхотепа II, умершего более 4000 тысяч лет назад. Сохранившиеся иероглифы отличались от тех, что использовали в то время: фактически они скрывали первоначальный смысл сказанного. В Египте шифрование активно применяли, прежде всего, чтобы ограничить доступ к знаниям: образование было привилегией высшего общества, в том числе с помощью шифров обсуждали религиозные табу.   Племена и государства использовали шифрование при передаче особенно важной информации, чтобы сохранить переписку, в том числе военную, в тайне. Поэтому люди придумывали разные способы избежать вероятной прослушки. Первый случай использования шифрования в военных целях зафиксирован историками в Древней Спарте. Там придумали специальное устройство для передачи секретной информации — скитала. Военные наматывали узкую полоску пергамента на валик, а по длине устройства писали текст. Текст на пергаменте оказывался абсолютно нечитаемым после снятия с устройства, а для дешифровки требовался полностью аналогичный цилиндр. Фактически это первый случай применения концепции ключа, который сегодня используется в криптографических технологиях.   Первым способом шифрования был относительно простой метод замены единиц (букв или групп букв) другими единицами на основе выбранного заранее набора правил замены, например, A=N, B=O. Шифровальные ключи должны были храниться у отправителя и получателя. В таком случае, даже если гонца с посланием перехватывали противники, содержание сообщения раскрыть не удавалось. Легионы Юлия Цезаря с большим успехом использовали технику замены. В шифре Цезаря использовали обычную последовательность алфавита, но сдвигали буквы на фиксированное число букв дальше по алфавиту (если A становится E, то B становится F и так далее). Хотя такие шифры сдвига сегодня считаются одними из самых простых, шифр Цезаря был взломан только около 800 г. н.э. Арабский математик Аль-Кинди изучил частоту появления букв в зашифрованном сообщении, чтобы определить правило смещения.  Шифрование — это такое преобразование информации, при котором неавторизованные лица не имеют доступа к ней. Этот процесс должен быть обратим, и это основное условие успеха при шифровании информации, иначе оно становится бессмысленным. Главным элементом любого алгоритма шифрования является ключ, благодаря которому адресат может выбрать необходимые преобразования, чтобы получить доступ к информации. С точки зрения пользователей шифрование можно объяснить на примере некоего сообщения, которое нужно передать от одного устройства к другому. К нему применяется алгоритм и ключ. Восстановить исходную информацию невозможно без знания как алгоритма, так и ключа. Но абсолютной защиты безусловно не существует, а значит, любой алгоритм или ключ можно взломать. Одна из целей шифрования — сделать несанкционированный доступ к информации настолько дорогим и долгим, чтобы атака злоумышленника стала бессмысленной.  Практически все методы шифрования исторически появились раньше, чем технические средства для их реализации. Люди сначала придумывали алгоритмы на бумаге, доказывали их стойкость, делали теоретические выкладки, а уже затем на их основе появлялись механические шифраторы. Первые механические устройства для шифрования появились в XVII-XVIII веках, в период расцвета механики. Они позволяли зашифровать простейшие сообщения.  В период Второй мировой войны широко применялась переносная шифровальная машина «Энигма», созданная Артуром Шербиусом. Это электромеханическое устройство с заложенным алгоритмом применялось для того, чтобы рассылать произвольные сообщения по фронтам. Военные отправляли погодные сводки всем подразделениям вермахта, сложив данные из которых можно было получить шифр и доступ к ценной информации. Для взлома кода «Энигмы» требовалось попробовать около 17 000 различных комбинаций в течение 24 часов.  Взлом «Энигмы» был необходим для военных действий союзников, что привело к институционализации криптографии как науки, а также вдохновило Алана Тьюринга на разработку и использование первой машины, способной использовать вычислительную мощность для взлома шифрования. Для обычных людей шифрование начало появляться даже не с первыми компьютерами, а именно с распространением интернета. Но как, к сожалению, часто случается, пользователи зачастую не понимают, что используют шифрование. Для них это, в основном, некая магия: нажали кнопочку и все зашифровалось. Помимо этого шифрование появилось в нашей жизни благодаря сотовой связи, потому что в отличие от проводной, мобильная связь находится в открытом эфире, а значит, априори нуждается в шифровании.  Чем больше в публичное поле просачивалась информация о том, что какие атаки на информацию и данные пользователей возможны, тем больше люди узнавали о том, что это вообще существует и необходимо: например, о том, какие в пользовательских компьютерах есть средства шифрования жестких дисков. Про это и сейчас многие еще не в курсе: что есть BitLocker, встроенная в Windows технология Microsoft, или FileVault от Apple, позволяющие зашифровывать носители данных.  Зато многие слышали про вирусы-шифровальщики, которые шифруют жесткие диски. Принцип действия тот же, но эффект обратный: информация шифруется злоумышленником и только он имеет доступ к ключу и тем самым шантажирует жертву. Безопасность шифрования зависит не от метода (или алгоритма) шифрования, а от секретности ключей, используемых для шифрования и дешифрования. Одним из таких подходов, обеспечивающих стабильную безопасность, стал алгоритм RSA (названный в честь его изобретателей Рона Ривеста, Ади Шамира и Леонарда Адлемана). Его преимущество заключается в использовании асимметричной криптографии для создания пары открытого и закрытого ключей на основе алгоритма больших простых чисел. Подход похож на тот, что использовали в своих скиталах спартанцы.  Открытый ключ в RSA используется для шифрования данных, которые затем можно расшифровать только с помощью соответствующего закрытого ключа. Хотя эти два ключа математически связаны, вычисление закрытого ключа из открытого чрезвычайно сложно и требует много времени из-за математической проблемы, называемой простой факторизацией.  Алгоритм RSA заложил основу для современных методов аутентификации, поскольку использование пары закрытый-открытый ключ идеально подходило для определения того, является ли отправитель тем, за кого себя выдает, а также обеспечивало более высокий уровень безопасности при обмене сообщениями. Протокол общения сотового телефона с базовой станцией содержит в себе элементы шифрования, когда открывается сессия для вашего телефона, то есть телефон обменивается с базовой станцией ключами для каждой сессии. И таким образом ваша информация не смешивается с информацией рядом сидящего человека, который обращается к той же базовой станции.  Даже когда вы не разговариваете, телефон все равно общается с базовой станцией. Обмен информацией происходит в фоновом режиме, поскольку устройство должно быть готово к приему информации: например, СМС-сообщения или входящего звонка. И вся эта сессия должна защищаться. Однако пользователи зачастую не задумываются, что эту же меру безопасности можно обратить и против них, например, для прослушки. Многие государства на законодательном уровне ограничивают мощность шифрования, чтобы при наличии спецсредств гражданское шифрование можно было легко вскрыть. И дело даже не только и не столько в бэкдорах, заложенных в стандартизованные алгоритмы шифрования, а, допустим, в выборе длины ключа. Например, некоторое время назад любые технические средства, которые содержат алгоритмы шифрования с длиной ключа больше 256 бит, были запрещены к экспорту из США. Гражданское шифрование — более слабое, военные и государственные органы используют более сильные алгоритмы для защиты чувствительной и наиболее важной информации. Шифрование часто путают с хешированием. Шифрование — это двустороннее преобразование исходного сообщения, которое можно впоследствии расшифровать. А хэширование — это одностороннее преобразование в более короткое сообщение, по сути, в некую цифровую подпись, позволяющую однозначно идентифицировать исходное сообщение.  Типичный пример хэширования — это подпись файлов в интернете. Если вы скачиваете файл, то к нему отдельно прикладывается хэш-сумма. Благодаря этой подписи мы можем сравнить опубликованный автором файл с тем, что мы скачали, чтобы избежать подделки документов или наличия вредоносного кода.  Несмотря на кажущуюся параноидальность таких действий, атаки типа man-in-the-middle (с англ. «человек посередине») на практике вполне осуществимы. При совершении целенаправленных атак файл, казалось бы скачанный с надежного источника, вполне может стать лазейкой для злоумышленника. Сегодня наиболее часто хэширование применяют при регистрации пользователей в каких-либо сервисах. Логин и пароль складываются вместе и хэшируются, чтобы владелец сервиса не мог восстановить оригинальный пароль пользователя, а последнему был доступен только его сброс. Поэтому когда вы вводите неверный пароль, система не может сказать вам, что именно некорректно вы ввели: пароль или логин. Сравнивается именно хэш-сумма данных.  Сегодня специалисты уже понимают, какие алгоритмы криптостойкие, а какие — нет. Поэтому созданы общие рекомендации для защиты информации, например, в случае с хэшированными данными существуют уязвимости в алгоритме MD-5, поэтому советуют использовать следующее поколение алгоритмов — SHA-2. На текущий момент широкое применение получили, например, средства защиты Wi-Fi сетей, но даже они имеют свои уязвимости. В силу широкого распространения технологии и слабой информированности о таких проблемах, люди даже не задумываются о том, насколько системы средств связи уязвимы. Зачастую бывает так, что защититься от взлома более прокачанным соседом или недоброжелателем, можно просто поменяв протокол в Wi-Fi и поставив более длинный пароль в роутере. Но пользователи редко обращают на это внимание, и в этом большая проблема.  Поскольку само по себе шифрование не находится, как правило, под контролем пользователя, необходимо больше обращать внимание на средства защиты и информационную безопасность в целом. А именно: изучить информацию о настройках безопасности роутера или домашней сети Wi-Fi, понять, какие из них более безопасные, с чем сейчас сталкивается индустрия, какие существуют уязвимости, как эти устройства атакуют, и в итоге выбрать для себя наиболее правильные способы защиты. Главный и надежный способ защиты — использование более длинных паролей, которые, естественно, вы можете запомнить. Математически доказано, что длина пароля влияет на сложность взлома кратно сильнее, чем разнообразие символов. Поэтому вместо использования множества различных комбинаций букв, цифр и знаков препинания, лучше задать пароль длиной 20–30 символов. Можно, например, ввести в качестве пароля две строчки из любимого стихотворения без пробелов — никто в здравом уме не сможет подобрать его. С каждым лишним символом вероятность подбора этого пароля по словарю кратно падает.  Ни в коем случае не стоит использовать простые слова, словосочетания, слова с набором цифр, это все уже давно есть в сборниках паролей. Ведь средства подбора паролей, ключей и шифров тоже со временем развиваются и не стоят на месте. И, естественно, самый надежный метод для взлома любого шифра — это перебор. И brute-force — первое, что использует атакующий. Эти алгоритмы и словари с наиболее часто встречающимися или слитыми в сеть паролями давно уже есть в открытом доступе в интернете, их можно скачать, использовать как для проверки собственной системы безопасности, так и для атаки. С годами словари растут в объеме: поэтому все эти «qwerty», имена, комбинации с цифрами, клички собак — лучше не использовать.  Конечно, стоит применять двухфакторную авторизацию там, где есть такая возможность. Сейчас это самая распространенная рекомендация. Потому что пароли подбираются, если ваш логин слили (а сегодня утечек много, и базы с персональными данными есть не только в даркнете, но и просто в открытом доступе), то ваш пароль просто подберут по словарю и зайдут в систему. Если взломают Apple ID или Google ID, то возможности злоумышленника возрастают. А двухфакторная авторизация, это использование так называемого второго фактора при аутентификации, например, смс-сообщений, снижает вероятность атаки.  Как правило, все алгоритмы шифрования известны и более-менее стандартизированы. Поэтому в любых ОС реализуются конкретные алгоритмы. Это не значит, что автор софта садится и придумывает свой шифр, поскольку создать безопасный и рабочий новый алгоритм шифрования очень сложно. Все алгоритмы разрабатываются годами при участии экспертов в области криптографии. Даже реализация этих алгоритмов на разных языках программирования входит в стандартные библиотеки. Зачастую лучше взять проверенную реализацию, например, на каком-нибудь языке типа C, C++, про которую все известно: ее нюансы использования, надежность применения в различных областях, способы интеграции в систему. Open source реализация, применяемая в Linux, может отличаться от реализации компании Microsoft в Windows. Они реализуют один и тот же алгоритм, но в нюансах могут немного отличаться, хотя с точки зрения пользователя будут действовать одинаково. Как правило, эти реализации очень тщательно исследуются сообществом: а затем про их уязвимости создают публикации и обсуждают их на конференциях.  Квантовый компьютер вряд ли найдет в последующем десятилетии широкое применение. Хотя, конечно, возможности такие есть. Уже сегодня в научно-исследовательских институтах есть экземпляры квантовых компьютеров, работающих в рамках исследований. Более того, они даже публично доступны: например, можно зарегистрироваться на сайте IBM и получить доступ к квантовому компьютеру. Конечно, там все программирование идет пока на базовом уровне, но первые реализации теоретических алгоритмов шифрования уже существуют.  Как я уже говорил, самый надежный способ вскрытия шифра — это перебор ключа. То есть, если известно, каким алгоритмом зашифрована информация, то просто запускают перебор ключей, который занимает какое-то время, и получают результат. Современные средства шифрования с достаточно длинными ключами делают такой перебор не то, чтобы невозможным, но нереально долгим. Хорошо зашифрованное сообщение может вскрываться самым мощным современным суперкомпьютером, допустим, за 5 миллионов лет — разумеется, это теоретическое время подбора ключа. Так вот квантовое превосходство — это когда на обычном компьютере задача решается за 5 миллионов лет, а на квантовом компьютере — допустим, за час. Собственно, криптографические алгоритмы относятся скорее к задачам, которые можно решать на квантовых компьютерах, поэтому идут разговоры о том, что при получении достаточно готового к практическому применению квантового компьютера все пароли, которые существуют, можно будет просто подобрать за вполне вменяемое время.  С точки зрения защиты информации квантового компьютера есть очень интересные алгоритмы шифрования, способы передачи сообщений. Например, пользователь сможет определять, просматривал кто-то его сообщение или нет, даже в зашифрованном виде. Это похоже на одноразовую капсулу, до которой кто-то дотронулся, а она из-за этого рассыпалась.  Квантовые компьютеры несут в себе не только новые угрозы существующему шифрованию, потому что смогут кардинально изменить время подбора ключей шифра, но и новые возможности для защиты информации.   Технический директор Platforma