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

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

Проблема: канал слышно

Представьте, что вы передаёте другу записку через общий двор. Любой, кто стоит у забора, может её прочитать. Можно писать иносказаниями, но друг должен понимать их так же, как вы, а посторонний — нет. Значит, нужен общий секрет: правило, которое знаете только вы двое.

В интернете всё то же самое. Данные идут через чужие устройства: роутер в кафе, оборудование провайдера, промежуточные сети. Если передавать их открытым текстом, их может увидеть кто угодно. Шифрование превращает понятный текст в набор символов, который без ключа практически невозможно прочитать.

Но здесь сразу возникает вопрос: как передать друг другу ключ, если канал прослушивается? Если отправить ключ тем же путём, его перехватят вместе с сообщением. Эта задача — «как договориться о секрете по открытому каналу» — долгое время считалась неразрешимой. Сегодня её решают асимметричные алгоритмы, но сначала разберём более простой случай.

Симметричное шифрование: один ключ на двоих

Симметричное шифрование — это когда один и тот же ключ и шифрует, и расшифровывает. Аналогия с сейфом: у вас и у друга одинаковые ключи от одного замка. Вы кладёте записку в сейф, друг открывает своим ключом.

Такой подход быстрый и надёжный. Именно симметричные алгоритмы шифруют основной объём данных: файлы, диски, переписку. В России для этого используются алгоритмы «Кузнечик» и «Магма», описанные в ГОСТ 34.12-2018; в мире — AES.

Но у симметричного подхода есть слабое место, и оно не техническое, а человеческое. Ключ нужно как-то передать. Если вы передаёте его по тому же каналу, который прослушивается, злоумышленник получит и ключ, и сообщение. Если хранить один ключ на всех сотрудников, то при увольнении одного придётся менять ключ у всех. Если ключ потерян, данные не восстановить.

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

Асимметричное шифрование: замок и ключ

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

Аналогия с навесным замком: вы раздаёте всем желающим открытые замки, а ключ от них есть только у вас. Друг берёт ваш замок, запирает на него коробку и отправляет вам. По дороге коробку могут трясти, но открыть — только у вас есть ключ.

В реальности всё чуть сложнее, но принцип тот же. Асимметричные алгоритмы (RSA, эллиптические кривые, ГОСТ 34.10-2012) позволяют двум сторонам, которые никогда не встречались, договориться о секрете по открытому каналу. Именно так работает HTTPS: браузер и сервер обмениваются открытыми ключами и договариваются о временном симметричном ключе для этого соединения.

Почему не шифровать всё асимметрично? Потому что это медленно. Асимметричные операции требуют больше вычислений, и шифровать ими гигабайты данных нерационально. Поэтому используют гибридную схему: асимметричный обмен — только чтобы договориться о симметричном ключе, а дальше весь трафик шифруется быстрым симметричным алгоритмом. Этот временный ключ действует одно соединение и потом выбрасывается.

Хеш: отпечаток, а не шифр

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

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

Хеширование часто путают с шифрованием. Разница принципиальная: зашифрованные данные можно расшифровать ключом, а хеш — нельзя. Это «односторонняя» функция. Именно поэтому пароли хранят не в открытом виде и не в зашифрованном, а в виде хеша с солью: даже если база украдена, восстановить пароли сложно.

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

Электронная подпись: кто именно подписал

Электронная подпись — это не картинка с подписью и не скан документа. Это математическая конструкция, которая связывает данные с закрытым ключом владельца.

Работает она так. Из документа вычисляется хеш. Затем хеш шифруется закрытым ключом владельца — это и есть подпись. Получатель берёт открытый ключ, расшифровывает подпись, получает хеш и сравнивает с хешем документа. Если совпало — документ не менялся и подписан именно владельцем ключа.

Из этого следуют три важных свойства. Подпись подтверждает целостность: изменили документ — подпись перестала совпадать. Подпись подтверждает авторство: проверить её можно только открытым ключом, который принадлежит конкретному человеку. И подпись обеспечивает неотказность: владелец не может сказать «это не я», если ключ не был скомпрометирован.

В России юридическую силу имеет усиленная квалифицированная электронная подпись, УКЭП. Она выдаётся удостоверяющим центром, а ключи хранятся на защищённом носителе. Обычная подпись в письме или сканированная роспись — это не ЭП: их легко подделать, и они не доказывают авторство.

Важно понимать: подпись защищает документ, но не защищает ключ. Если закрытый ключ украли, злоумышленник подпишет что угодно от вашего имени. Поэтому хранение ключа — такая же часть безопасности, как и сам алгоритм.

Сертификаты: как браузер понимает, что сайт настоящий

Вернёмся к замку в адресной строке. Браузер должен убедиться, что открытый ключ, который прислал сервер, действительно принадлежит этому домену, а не злоумышленнику, который сидит между вами и сайтом.

Для этого используется сертификат. Это документ, в котором написано: «домен secguide.ru, открытый ключ такой-то», и стоит подпись удостоверяющего центра. Браузер доверяет списку таких центров, проверяет подпись и только потом устанавливает соединение. Если сертификат поддельный или просрочен, браузер предупреждает.

Эта схема защищает от подмены сайта, но не от всего. Злоумышленник может получить настоящий сертификат на похожий домен — например, secguide-ru.com вместо secguide.ru. Браузер покажет замок, потому что сертификат валиден. Поэтому нужно смотреть на адрес, а не только на значок.

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

Что это значит на практике

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

Из этого следуют вполне бытовые выводы. Если сайт работает по HTTPS, трафик защищён от прослушивания, но это не значит, что сайт безопасен: фишинговый сайт тоже может иметь замок. Если вы храните закрытый ключ ЭП на компьютере, подключённом к интернету, вы рискуете подписью, а не только файлами. Если вы делаете резервную копию зашифрованного архива и теряете ключ, данные не восстановит никто — даже вы.

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

Главная мысль

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

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

Что делать дальше