аналог SimpPro

Тема в разделе "WASM.NETWORKS", создана пользователем Hellspawn, 17 июл 2008.

  1. Hellspawn

    Hellspawn New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    310
    Адрес:
    Москва
    встала задача написать аналог сабжа и отдать исходники заказчику. львиную долю уже сделал, парсинг вх и исх сообщений по аське, шифрование и дешифрование налету. но всё это со статичными ключами вшитыми в прогу. сделал динамику, но встала проблема обмена ключами между собеседниками. пытался посмотреть как в SimpPro реализовано, но не далеко продвинулся: оно грузит WinsockHookDLL.dll во все процессы, ставит хук на WH_GETMESSAGE и хучит GetTickCount. не густо.

    есть какие-нибудь идеи?
     
  2. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    я не большой спец, но почему бы не сделать так: программа номер раз отсылает паблик кей РСА, программа номер два генерирует ключ АЕС для этого контрагента, шифрует его полученным паблик ключем и отправляет обратно.
    Потом вторая программа отсылает свой паблик РСА, а первая посылает ей сгенерированный и зашифрованный ключ РСА для этого собеседника. И так и происходит обмен.
     
  3. Span

    Span New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2006
    Сообщения:
    134
    Я тоже далеко не спец)

    2 MSoft - MitM?

    Проблема с реализацией в коде, или с самой политикой распространения ключей?
     
  4. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Hellspawn
    Можно посмотреть как работает OTR.
     
  5. Hellspawn

    Hellspawn New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    310
    Адрес:
    Москва
    Span да проблема с реализацией, т.к. у каждого сообщения в асе, есть свой ид, и так просто сообщение не отправишь =( придётся увеличивать ид всех посл сообщений на 1 и т.д, это очень накладно.

    MSoft это всё понятно)) как обменяться ключами? через свой сервер отпадает, через сообщения самой аси см. выше.

    censored что за OTR? плагин к миранде?
     
  6. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Собеседнику передаётся ПАБЛИК кей, собеседник его получает и генерирует случайный колюч который шифрует твоим ПАБЛИК ключом, затем он отсылает зашифрованый ключ тебе обратно, и ты его расшифровываешь своим ЗАКРЫТЫМ ключом. Перехватить нереально

    http://ru.wikipedia.org/wiki/RSA
     
  7. Hellspawn

    Hellspawn New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    310
    Адрес:
    Москва
    2FED ы))) с ключами я давно уже разобрался, как программно реализовать передачу этих ключей? :)
     
  8. 2FED

    2FED New Member

    Публикаций:
    0
    Регистрация:
    20 фев 2008
    Сообщения:
    1.002
    Нарулить гненибудь реализацию RSA и вперёд, прабда тонкостей icq протокола я не знаю =(
     
  9. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    http://www.cypherpunks.ca/otr/

    P.S.
    2FED
    Иногде лучше жевать, чем говорить ;)
     
  10. bbuc

    bbuc New Member

    Публикаций:
    0
    Регистрация:
    19 май 2004
    Сообщения:
    20
    Существует такой плагин к миранде SecureIM, в нем реализован обмен ключами по алгоритму Diffie-Hellman'а прямо посредством сообщений, которые не показываются пользователю.
    Если невозможно послать сообщение отдельно, то почему бы не изменять первое сообщение на данные для обмена ключами + зашифрованное сообщение, а пользователю только показывать расшифрованное сообщение.
     
  11. Hellspawn

    Hellspawn New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    310
    Адрес:
    Москва
    плагин не вариант, должна быть универсальность :) на счёт подмены сообщений я думал, но т.к. это накладывает определённые ограничения, я оставил это на крайний случай.

    около часа сейчас провозился, но всё таки сделал отправку сообщений из своего софта + подмену ид, тестил правда только с квипом, но пока это меня устраивает.

    з.ы. OTR proxy помог :)

    итого:
    Код (Text):
    1.     If (arr[0] = $2A) then // проверка на пакет аськи
    2.     begin
    3.       wLastMesId := MakeWord(arr[3],arr[2]); // получаем ид пакета
    4.       If (wDelta > 0) then // если мы что-то слали
    5.       begin
    6.         inc(wLastMesId,wDelta); // то нада поправить ид
    7.         arr[2] := HiByte(wLastMesId); // и засунуть обратно в пакет
    8.         arr[3] := LoByte(wLastMesId);
    9.       end;
    10.       result := wLastMesId
    11.     end;
     
  12. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    По хорошему, обмен должен производиться альтернативным путём. И, AFAIR, именно так реализовано в Simp'e.
    Я бы сделал доп. опцию в программе, типа Exchange Server address. Создал бы свой простенький протокол обмена ключами(в простейшем случае это http(s)-сервер и php скрипт) и юзал бы его. Если продукт коммерческий, я думаю люди, так волнующиеся о своей безопастности, смогут найти сервак на 5 минут, залить туда php скрипт и вписать один раз адрес в программу.
     
  13. Hellspawn

    Hellspawn New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    310
    Адрес:
    Москва
    в симпе не через сервер :) в отличии от ndc. да и надо было именно без сервера.
     
  14. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    не, ну если криптохрень должна попасть в левые руки, то да, надо заранее договариваться о ключе, типо
    - мм.. какой бы нам ключ придумать?
    - мм.... давай твой ДР?
    - мм.. нее, это просто слишком! подберут.
    - мм.. а давай тогда так, как звали ту тёлку которую ты снял на прошлой вечеринке ?
    - хехех, давай!
    - !":%;! не работает =\\
    - а ты чё написал? Лида с большой буквы хоть?
    - какая лида?? О_о лида это моя девка ты чё!
    - ой Х_х
    - ^@%$^!!!! Я ЩАС #*% ПРИЕДУ !№;!!
    итп..
    думаю, вы видите недостатки этого способа обмена ключами .)

    а если будет дело приватезное и алгос никому не попадётся, можно хоть статиком, который хоть от даты зависит, хоть от айди отсылаемого сообщения =\

    и да,
    у меня была идея идеального обмена, но я её ещё не додумал. если всё буде так как предпологалось - поделюсь.
     
  15. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    Симп подменяет характеристики IM клиента, так чтобы на другой стороне можно было понять, есть он или нет (помойму через Xtraz). Эту фичу выцепляет миранда, например, говоря что чел сидит через симп. Если фича в характеристиках найдена, то уже можно конвертить мессаги в свой формат будучи уверенным в том, что на той стороне придут не странные кракозябры, а исконная инфа. С идами да, получается небольшая заминка на этапе обмена ключами потому что по сути сама криптотулза швыряется мессагами другой криптотулзе, в остальном смысла подменять иды я не вижу (хотя возможно не осведомлен в сути icq протокола)
     
  16. dendi

    dendi New Member

    Публикаций:
    0
    Регистрация:
    3 сен 2007
    Сообщения:
    233
    Scratch, скорее через версию клиента
     
  17. n0hack

    n0hack New Member

    Публикаций:
    0
    Регистрация:
    3 июн 2008
    Сообщения:
    71
    2FED
    Угу, а текто на на гейте отсекают пакеты с твоим паблик кеем, шлют свой, получают обратно зашифрованный ИХ паблик кеем ключ, расшифровывают, шифруют твоим, шлют тебе. И таким образом читают всю переписку. С твоей точки зрения все прозрачно. И не надо пожалуйста говорить, что на практике это якобы не реализуемо.

    Hellspawn
    Настоятельно (еще раз - НАСТОЯТЕЛЬНО) советую прочесть:
    http://www.ozon.ru/context/detail/id/2153578/
    Шикарная книга, прочитал за два дня на одном дыхании. Вопрос создания безопасного канала рассматривается на протяжении всей книги во всех подробностях. Приводится масса примеров неправильной реализации (напирмер, как вариант 2FED). Все это - понятным и живым языком.
     
  18. Hellspawn

    Hellspawn New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    310
    Адрес:
    Москва
    n0hack

    спс, книжку скачал и даже ещё прикладную криптографию скачал, начал читать.

    даже если предположить такой вариант, тем кто это провернёт, надо будет завладеть ещё номером аськи одного из собеседников (т.к. ключ привязывается к номеру), а если это им удастся, то можно уже и ключи не подменять :)
     
  19. doesn

    doesn New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2007
    Сообщения:
    97
    дык на гейте не надо никаких асек
     
  20. Hellspawn

    Hellspawn New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2006
    Сообщения:
    310
    Адрес:
    Москва
    через гейт тока обмен ключами :) + ключ привязывается к номеру в самом софте и запоминается. и если дешифровка не удасться, то логично что ключ лажовый нам дали.