@12rbah

Правильно ли я понимаю работу защищенных протоколов?

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

Подскажите какие ошибки есть и как можно улучшить эту идею?
  • Вопрос задан
  • 109 просмотров
Решения вопроса 2
john36allTa
@john36allTa
That`s calling Walker
Это симметричное шифрование, ассиметричное иначе.
Ассиметричное на примере TLS (https):
Сервер и пользователь имеют(генерируют) по паре ключей - открытый и закрытый(секретный) в момент инициализации соединения. Они обмениваются открытыми ключами. Юзер шифрует открытым ключем сервера и отправляет ему запрос, расшифровать который возможно только секретным ключом сервера. И в обратном порядке также, ответ сервер шифрует открытым ключем юзера...
Ответ написан
Jump
@Jump
Системный администратор со стажем.
Все правильно, но есть один ньюанс - как сообщить собеседникам находящимся за тысячи километров ключ которым они будут шифровать? При личной встрече передавать? Если вы отправите ключ по открытому каналу - его перехватит злоумышленник.

Поэтому для организации защищенного соединения используется ассиметричное шифрование.
У ассиметричного шифра есть пара ключей - открытый и закрытый.
Если зашифровать что-то открытым ключом - то расшифровать можно будет только используя закрытый.

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

Вы передаете открытый ключ вашему собеседнику по незащищенному каналу связи, открытым текстом.
Ваш собеседник придумывает какой нибудь сложный ключ(сеансовый ключ), зашифровывает этот ключ вашим открытым ключом и передает вам получившееся сообщение.
Расшифровать это сообщение можете только вы, поскольку закрытый ключ есть только у вас.
Вы расшифровываете сообщение и видите сеансовый ключ.
В итоге сеансовый ключ известен только вам и вашему собеседнику.
Далее все сообщения шифруются этим сеансовым ключом - обычное симметричное шифрование.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
CityCat4
@CityCat4 Куратор тега Информационная безопасность
Если я чешу в затылке - не беда!
Общая идея правильная - мы так в школе в "разведчиков" играли :) Но тут возникает одна проблема - однокласснику ключ передать не проблема :) А как быть, если чел от Вас за тыщи км?

Нет, конечно можно вот так:
"...— Только не открытым, — насторожилась Юлька. — Закодируй как-нибудь.
Риггельд некоторое время молчал, вычисляя.
— Рома, — сказал он. — Твой день рожденья. Сложи месяц и число. Умножь
на десять. Вычти… э-э-э… Рыцари скольки островов, помнишь?..."
(С) Владимир Васильев "Смерть или слава"

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

Так что, несмотря на то, движемся в верном направлении, идею нужно пересмотреть :)
Ответ написан
msHack
@msHack
Нет вы неправильно поняли алгоритмы шифрования бывают разные упомянутый вами алгоритм это алгоритм с открытым ключом есть открытый ключ есть закрытый ключь открытым шифруем закрытым дешифруем это алгоритм RSA есть еще AES

чтобы делать защищенные протоколы не обязательно изучать шифрование можно просто использовать библиотеку функций на присмер openssl
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы