SimpPro и эллиптика

Тема в разделе "WASM.CRYPTO", создана пользователем Scratch, 3 фев 2007.

  1. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    Кто не в курсе - Simp - прога которая служит локальной проксей для AIM клиентов, позволяющая шифровать сообщения между 2мя людьми у которых она стоит. В ней можно генерить 3 типа ключевых пар: RSA? эллиптику и elGamal/DSA... Так вот
    Весь измучался в догадках, как же может работать шифрование траффика, когда я на себе сгенерил EC пару, а у собеседника RSA. Насколько я в курсе для того чтобы совершить обмен общим случайным симметричным ключом и я и он обязаны иметь по ключевой паре EC, ибо сам кодил такую же штуку с помощью openssl. Получается если у него нет ключевой пары то она генерится каждый раз случайно или как? С рса то все понятно, а вот с эллиптикой не очень... Возможно если у него рса а у меня эллиптика то обмен по рса происходит... Либо я чего-то упустил в теории...
    Реверсер из меня хреновый, так что ковырнуть и посмотреть я не в состоянии )
     
  2. norton

    norton New Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2006
    Сообщения:
    88
    наверное просто нихрена не работает:).пробуй сниффером отрыть.
     
  3. Ultrin Faern

    Ultrin Faern New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2006
    Сообщения:
    170
    А может все работает:
    ты передаешь открытый ключ в элиптических кривых - удаленный клиент и шифрует ним
    тебе передают ключ RSA - твой клиент шифрует им

    А чего - программе судя по всему все-равно чем шифровать, что попросил клиент то и делает.
     
  4. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    В этом вся загвоздка. как я у себя расшифрую сеансовый ключ не имея на руках открытого ключа отправителя?(насколько я в курсе для шифрования\расшифровки нужен И открытый ключ получателя и закрытый ключ отправителя :) ). А в сниффере все ок )
     
  5. Ultrin Faern

    Ultrin Faern New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2006
    Сообщения:
    170
    А чего вас смущает незеркальные методы обработки?

    Объясняю на пальцах

    1)Клиент А генерирует ключи RSA
    2)Клиент Б генерирует ключи EC
    3)Клиент А передает открытый ключ RSA клиенту Б
    4)Клиент Б передает открытый ключ EC клиенту A
    5)Клиент А шифрует исходящий трафик клиенту Б принятым от него открытым ключем EC, а принятый от клиента Б трафик расшифровывает своим приватным ключем RSA
    6)Клиент Б шифрует исходящий трафик клиенту А принятым от него открытым ключем RSA, а принятый от клиента А трафик расшифровывает своим приватным ключем EC

    И все работает - а кто слушает - флаг ему в руки :)
     
  6. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    Это все понятно, кроме одного (п5). Как имея на руках ТОЛЬКО открытый ключ EC, и не имея своего закрытого, зашифровать что-либо? В свое время спрашивал об этом на ru.Crypt, но тогда мне помнится сказали, что эллиптика может использоваться только для ECDSA и ECDH. Для последнего ессно надо 2 пары ключей. Может я упустил что-то, в таком случае прошу презренно ткнуть в меня инфой, где это опровергается.
     
  7. roman_pro

    roman_pro New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2007
    Сообщения:
    291
    1)Клиент А генерирует ключи RSA
    2)Клиент Б генерирует ключи EC
    3)Злоумышленник C генерирует свои ключи RSA и EC
    3)Клиент А передает открытый ключ RSA встроевшимуся посередине злоумышленнику, тот его сохраняет а сам шлёт клиенту Б свой открытый RSA ключ
    4)Клиент Б передает открытый ключ EC злоумышленнику, тот его сохраняет, клиенту A отсылает свой открытый ключ EC
    5)Клиент А шифрует исходящий трафик злоумышленнику принятым от злоумышленника открытым ключем EC, а принятый от злоумышленника трафик расшифровывает своим приватным ключем RSA
    6)Клиент Б шифрует исходящий трафик злоумышленнику принятым от него открытым ключем RSA, а принятый от злоумышленника трафик расшифровывает своим приватным ключем EC

    Т.е. злоумышленник прикидывается A при обмене с Б, и Б при обмене с A. Ни одна из сторон не догадывается что имеет дело не друг с другом, а с посредником. Классика Man-in-Middle.

    :)

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