h0t те мы точно узнаем что передает то кто нам нужен, но если плохой парень создаст свой гамильтонов цикл.
spa Вообще можно по задержкам оценивать наличие человека посередине. Но для этого надо быть уверенным, что человек посередине на самом деле не является человеком на конце, т.е. что сообщения вообще доходят до адресата. Для этого можно ещё поверх наложить тест Тьюринга. Тогда возможна такая схема: 1) Фаза обмена открытыми ключами. 2) Фаза теста Тьюринга. Каждое (зашифрованное открытым ключом) сообщение (в обе стороны) теста Тьюринга сопровождается хешем SHA-256 некоторого достаточно большого предопределённого набора данных предварённых самим сообщением (для увеличения вычислительной сложности пусть даже n раз пошифрованных тем же открытым ключом). Пусть, например, вычислительная сложность на шифрование и подсчёт хеша — 10 минут. Тогда, если подтверждённый тестом ответ приходит более, чем через 12 минут, уже нельзя гарантировать безопасность канала. 3) Фаза передачи закрытой информации.
я же говорил, что если мы знаем что путь (т.е. секрет знает только А). В общем случае без допущений решения этой задачи (защиты от МIM) нет. P.S. по крайней мере в открытых(/известных мне) работах. А там может в недрах ИКСИ/АНБ эту задачу решили.)
l_inc компы разные, для кого 10 минут, для прохого праня может минута. Ну это пол беды. Он может подменить и тест =)
spa Подходящее железо можно сделать частью алгоритма. Плохому парню в любом случае надо больше, чем одна дополнительная минута. Он должен шифровать текст в обе стороны. Т.е. цикл вопрос-ответ проходит четыре дополнительные стадии: расшифровка вопроса закрытым ключом сессии A, шифрование открытым ключом сессии B с SHA-256 подписью и передача дальше, расшифровка ответа закрытым ключом сессии B, шифрование открытым ключом сессии A с SHA-256 подписью и передача дальше. Каждая SHA-256 подпись занимает по 10 минут у легитимных пользователей. Даже если у злоумышленника на каждую из них уходит по одной минуте, он не уложится в 2 минуты + 10 затраченных легитимной стороной. Ну для этого, во-первых, человек посередине должен не просто сидеть и смотреть на автоматически декриптуемые и логируемые сообщения, а активно участвовать в тесте. А во-вторых, тест можно расширить до момента, когда можно будет исключить нелигитимного участника по признаку "не в теме" на основе неформализуемых разделяемых секретов: — Слышь, а чё те Машка про свою сестру вчера сказала? — Сказала, что она заболела. — Придурок, нет у неё сестры. [session shutdown]
h0t Это не частности, потому что человек посередине необходим для чтения той же ssl-сессии. Проблема в том, что он должен оставаться посередине на протяжении всей сессии. И это можно использовать, чтобы его раскрыть или убедиться в его отсутствии.
l_inc я все таки повторяю, что вопрос заключался в другом. А в контексте данного вопроса MIM это частноти, и вот почему как я помню в ssl все таки ассимитричная криптография используется для пересылки ключей и аутентификации, а заполучив сеансовый ключ Вы можете шифровать с огромной скоростью, если выбран удачный алгоритм. От человека по середине в общем случае, т.е. без какой-либо секретной информации, разделенной между абонентами при передачи данных, заведомо неизвестных защиты нет!(по крайней мере широкой публике не известно)
h0t Вы явно не читаете, что я пишу. Мне лень повторять одно и то же. А в том или не в том заключался вопрос, пусть подтверждает spa.
читаю, просто мы не поняли друг друга видимо. p.s. можно собрать спецвычислитель, который будет все это делать ооочень быстро наличие человека по середине будет не заметно, к тому же если вычислительная сложность у Вас 10 мину, то если у противника вычислительная система мощнее, то он может считать и за 6(и никто не может гарантировать что так не будет). Это я имел ввиду, когда говорил что мы максимум можем определить наличие такой атаки, но очень часто это не применимо на практике. p.s. на счет спецвычислителей, RSA еще в 1999 году ломанула DES, вроде как за 3 дня, а на стациоарном компе(в пределах даже 100тыс) даже сейчас Вы за 3 дня не сломаете.
h0t Я уже написал, почему противнику будет недостаточно даже вычислительной мощности, позволяющей считать за одну минуту.
но ведь Мелори, вообщем может отправлять ответ сразу, а не пересылать его если он знает протокол. Я не спорю с тем, что попытаться установить это можно но вот пологаться на это не стоит. Тем более посчитать в 10 раз быстрее не так уж сложно при должном финансировании. к тому же помните что после первой же посылки мне становится известна экспонента, а для возведения в фиксированную экспоненту есть очень хорошие алгоритмы.
h0t Я разве где-то сказал, что все мои предложения завязаны на ssl? Имеется в виду вариант использования асимметричного шифрования на протяжении хотя бы двух первых фаз. Поэтому ему придётся оставаться посередине и перешифровывать все сообщения. А чтобы у него не было слишком много семплов, для каждого сообщения новую пару создавать можно. Я ведь сказал, что подходящее железо можно сделать частью алгоритма. Пусть, например, некоторая часть шифрования выполняется внутри невскрываемых общедоступных блэкбоксов (часть общеизвестного алгоритма, но только как блэкбокс), работающих с фиксированной производительностью. Естесственно, человек посередине точно так же может использовать те же самые блэкбоксы, но не может изменить их или увеличить производительность.
я тоже про ssl не говорил, всегда предпологается что протокол известен. он может создать свой быстрый аналог устройства, ну это все правда частности. Их можно обойти, поэтому первым делом создается модель злоумышлиника, что он может а что нет.
h0t Вы сказали, что человек посередине может пересылать сообщения напрямую без перекодирования. Я так понял, Вы об ssl. Для варианта из #23 это не прокатит. Придётся перешифровывать. Я нигде и не говорил об обратном. Вы не читаете. Невскрываемый блэкбокс. "... но не может изменить их или увеличить производительность". Является частью открытого протокола, но функциональность известна только с точностью до необходимых общему алгоритму свойств. Несколько надуманно, конечно, но блэкбокс и не обязателен. Можно просто увеличить объём данных, которые нужно шифровать и хешировать. Скажем, легитимному пользователю нужно не 10 минут, а сутки, чтобы выполнить шифрование. Соответственно, имея машину той же производительности, человек посередине затратил бы двое суток. Превышение времени ответа в одни сутки и пять минут — канал считается незащищённым. Будем считать, насколько более мощную машину нужно иметь человеку посередине?
l_inc У вас опять, Петя знает есть ли у коли Сеста, доп информация. Сделать оборудование частью системы, тогда сразы вшивать открыты/зарытые ключи в нее. А про мощность, главная проблема мы не знаем какая машина у пользователя. Может он вообще с телефона сидит.
l_inc я говорил, что он может сразу отвечать А а не пересылать Б а потом перешифровывать. На практике нет не вскрываемых ящиков.
Хоть бы гарантировать доставку одного пакета, или хотя-бы знать подменили его или нет. Хоты и нужен один пакет чтобы передать открытый ключ =)