id: Гость   вход   регистрация
текущее время 17:40 24/11/2017
Автор темы: CryptoJunior, тема открыта 12/09/2017 19:26 Печать
Категории: криптография, шифрование с открытым ключом, аутентификация, управление ключами
https://www.pgpru.com/Форум/ПрактическаяБезопасность/АутентификацияКлючейRSAПриEND-TO-ENDШифровании
создать
просмотр
ссылки

Аутентификация ключей RSA при END-TO-END шифровании


Доброго всем здравия Уважаемые. Занялся вопросом изучени шифрования, а точнее как устроено шифрование в https и различных мессенджерах. Читал много, искал, но конкретного ответа на свой вопроос так и не нашёл. Вопрос следующий: вот например клиент 1 сгенерировал пару ключей для RSA, что бы передать пароль для симметричного шифрования, далее он их передаёт для клиенту2, тот генерирует ключ для симметричного шифрования, шифрует его RSA и его клиенту1. Тот с помощью закрытого ключа расшифровывает и получает пароль для симметричного шифрования. Всё бы хорошо, но, тут ведь явно можно провернуть атаку MITM (человек по середине) и подсунуть свой открытый ключ, и тем самым перехватить пароль для симметричного шифрования. Как защититься от этого?! Ведь нет центров сертификации да и обмениваться сертификатами где то ещё не удобно (хочу написать свой мессенджер, проектирую как это будет всё выглядеть). Перерыл весь гугл, конкретного ни чего не написано. Только на википедии нашёл следующее

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

Это единственный вариант? Как например это реализованно в viber, ватсап, vipole и т.д ?? Помогите разобраться, а то я уже в отчаянии(


 
Комментарии
— SATtva (13/09/2017 09:33, исправлен 13/09/2017 09:40)   профиль/связь   <#>
комментариев: 11514   документов: 1035   редакций: 4046

Всего вариантов три:


  1. Доверие через trusted third party.
  2. Самостоятельное подтверждение отпечатка ключа по надёжному каналу.
  3. TOFU — trust on first use: полагаемся на то, что первая передача ключа не была скомпрометирована, запоминаем ключ и ругаемся при его внезапной смене.

Если хотите state-of-the-art — почитайте документацию протокола Signal (используется в, собственно, Signal, WhatsApp и некоторых других мессенджерах). Там опционально варианты 2 и 3.


Кстати, если собираетесь делать свой мессенджер, то изобретать собственный протокол — это худшая идея из возможных. Используйте только готовый (Axolotl, Signal), иначе гарантированно наделаете дыр.

— CryptoJunior (13/09/2017 14:30)   профиль/связь   <#>
комментариев: 1   документов: 1   редакций: 0
Спасибо! Теперь в голове всё складывается!)
Ваша оценка документа [показать результаты]
-3-2-1 0+1+2+3