LINUX.ORG.RU

OTR в Gajim 1.0+ (Gtk3)

 


3

4

С выходом Gajim 1.0 на Gtk3 разработчики дропнули поддержку OTR-шифрования, объяснив это тем, что нинужна это небезопасно/технически невозможно/ещё куча разных оправданий.

В общем, делать было совершенно нечего...

В общем, вопрос: это кому-то кроме меня нужно? (если да, не поленюсь и допилю до production-ready, если нет — для себя «и так сойдёт»)

★★★★☆

Конечно, нужно. Можно было и не спрашивать, любой продукт найдёт своего пользователя. До сих пор на десктопе нет ни одного клиента, который адекватно поддерживает все три наиболее часто используемых варианта шифрования одновременно. А они нужны. OTR до сих пор широко используется, кто-то уже перебрался на омемо, слышал даже и о тех, кто юзает PGP и держать зоопарк клиентов уже надоело.

dicksinhisanus
()
Ответ на: комментарий от dicksinhisanus

https://dev.narayana.im/gajim-otrplugin/summary

P.S.разработчики вежливо послали нах%й и отказались принимать в репозиторий даже как плагин, потому что «отр нинужон»

annerleen ★★★★☆
() автор топика
Последнее исправление: annerleen (всего исправлений: 1)

OTR конечно вещь полезная. Но если пользоваться общедоступными сервисами все равно можно узнать 1. с кем ты переписываешься и когда 2. когда ты активен в сети 3. факт использования шифрования, что вызывает подозрение. Это тоже не мало. Не проще ли использовать Tox через Tor?

anonymous
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от annerleen

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

А плагин, кстати, всё равно не запускается. Жаль, придется дальше плакать, колоться и есть кактусы.

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/gajim/plugins/pluginmanager.py", line 185, in add_plugin
    plugin = plugin_class()
  File "/usr/lib/python3/dist-packages/gajim/plugins/helpers.py", line 108, in wrapper
    result = f(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/gajim/plugins/gajimplugin.py", line 178, in __init__
    self.init()
  File "/home/username/.local/share/gajim/plugins/tip/plugin.py", line 33, in init
    self.encryption_name = OTR.ENCRYPTION_NAME
NameError: name 'OTR' is not defined
Debian buster, ошибка проявляется как на гаджиме 1.1.2-2, так и на последней найтли-сборке 1.1.3+b63dd2ed8.

anonymous
()
Ответ на: комментарий от anonymous

Пилю постепенно, скоро закоммичу.
Всё осложняется тем, что я не программист %)

annerleen ★★★★☆
() автор топика
Ответ на: комментарий от anonymous

- Пофиксил, проблема была в том, что директория с плагином должна была называться «otrplugin»
- Обратная совместимость с Gajim от 1.0.3 до 1.1.99 (git).
- Библиотека python3-potr в стандартной поставке (полезно для пользователей Шиндошс)

annerleen ★★★★☆
() автор топика
Ответ на: комментарий от anonymous

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

В mainline linux, gcc, firefox,............. так же.

А свобода в том, что Gajim работает с плагинами не только из официального списка. Что положишь в соответствующую директорию, то и подхватит.

Разработчик:

We removed OTR because its a bad user expierience and does not support basic xmpp features that everybody expects today

С чем (в актуальной версии OTR) трудно не согласиться.

gag ★★★★★
()
Ответ на: комментарий от gag

отказываться от *опциональной* *возможности* OTR -шифрования как-то ну нелогично совсем
оно же включаться будет только ручками и только если ты действительно знаешь что делаешь

я какбэ ожидал причины вроде «говнокод», «нипепвосимь!111», «никошерно!11», «АУДИИИИИИТ!11», а не обыкновенное такое «нинужно»

annerleen ★★★★☆
() автор топика
Ответ на: комментарий от annerleen

оно же включаться будет только ручками и только если ты действительно знаешь что делаешь

Вот не попав на оф. ftp, как раз и придётся ручками.

я какбэ ожидал причины вроде «говнокод»

Там же никто не знает, что ты, оказывается, не программист вовсе :) Или ты, может, математик-крипто{граф,аналитик}?

gag ★★★★★
()
Ответ на: комментарий от anonymous

Поставьте тогда дома стеклянные стены

Ты можешь удивиться, но в скандинавских странах, например, не принято зашторивать окна, даже вечером. А если у тебя закрыты, на тебя будут косо смотреть.

anonymous
()
Ответ на: комментарий от annerleen

We removed OTR because its a bad user expierience and does not support basic xmpp features that everybody expects today

хипстота и какие то левые отмазки, если это плагин который юзер сам хочет подключить причем тут какой то юзер экспириенс

п.с. возможно они сделали где-то закладку и ты своим ОТР нарушаешь им планы

BLOBster ★★★
()
Ответ на: комментарий от anonymous

Соединение с сервером и так зашифровано. Если ты доверяешь серверу или он твой, зачем тогда OTR?

anonymous
()
Ответ на: комментарий от anonymous

. Если ты доверяешь

Jabber — федеративная сеть, и твой собеседник может сидеть на условном ж.ру, который сохраняет логи плейнтекстом и отправляет куда надо.

annerleen ★★★★☆
() автор топика
Ответ на: комментарий от annerleen

Если собеседник сидит на ж.ру, его вряд ли заинтересует шифрование.

anonymous
()
Ответ на: комментарий от gag

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

annerleen ★★★★☆
() автор топика
Ответ на: комментарий от annerleen
(W) gajim.plugin_system Error executing <bound method OTRPlugin._decrypt_message of <tip.plugin.OTRPlugin object at 0x7fa2b80cf8d0>>
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/gajim/plugins/pluginmanager.py", line 366, in _execute_all_handlers_of_gui_extension_point
    handlers[0](*args)
  File "/home/username/.local/share/gajim/plugins/tip/plugin.py", line 57, in _decrypt_message
    self.get_instance(event.conn.name).decrypt(event,callback)
  File "/home/username/.local/share/gajim/plugins/tip/otr.py", line 118, in decrypt
    text, tlvs = channel.receiveMessage(event.msgtxt.encode(),appdata=event.stanza.getThread()) or b''
  File "/home/username/.local/share/gajim/plugins/tip/potr/context.py", line 210, in receiveMessage
    self.crypto.handleAKE(message, appdata=appdata)
  File "/home/username/.local/share/gajim/plugins/tip/potr/crypt.py", line 288, in handleAKE
    outMsg = self.ake.handleRevealSig(inMsg)
  File "/home/username/.local/share/gajim/plugins/tip/potr/crypt.py", line 423, in handleRevealSig
    aesxb = self.calculatePubkeyAuth(self.enc_cp, self.mac_m1p)
  File "/home/username/.local/share/gajim/plugins/tip/potr/crypt.py", line 467, in calculatePubkeyAuth
    pubkey = self.privkey.serializePublicKey()
AttributeError: 'list' object has no attribute 'serializePublicKey'
(W) gajim.plugin_system Error executing <bound method OTRPlugin._decrypt_message of <tip.plugin.OTRPlugin object at 0x7fa2b80cf8d0>>
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/gajim/plugins/pluginmanager.py", line 366, in _execute_all_handlers_of_gui_extension_point
    handlers[0](*args)
  File "/home/username/.local/share/gajim/plugins/tip/plugin.py", line 57, in _decrypt_message
    self.get_instance(event.conn.name).decrypt(event,callback)
  File "/home/username/.local/share/gajim/plugins/tip/otr.py", line 118, in decrypt
    text, tlvs = channel.receiveMessage(event.msgtxt.encode(),appdata=event.stanza.getThread()) or b''
  File "/home/username/.local/share/gajim/plugins/tip/potr/context.py", line 210, in receiveMessage
    self.crypto.handleAKE(message, appdata=appdata)
  File "/home/username/.local/share/gajim/plugins/tip/potr/crypt.py", line 288, in handleAKE
    outMsg = self.ake.handleRevealSig(inMsg)
  File "/home/username/.local/share/gajim/plugins/tip/potr/crypt.py", line 423, in handleRevealSig
    aesxb = self.calculatePubkeyAuth(self.enc_cp, self.mac_m1p)
  File "/home/username/.local/share/gajim/plugins/tip/potr/crypt.py", line 467, in calculatePubkeyAuth
    pubkey = self.privkey.serializePublicKey()
AttributeError: 'list' object has no attribute 'serializePublicKey'

Плагин установился и отобразился в списке, однако до генерации ключей, соответственно и до отправки-получения сообщений дело не доходит.

anonymous
()
Ответ на: комментарий от annerleen

Теперь работает, спасибо. Было бы очень хорошо, если разработка на этом не закончится, а добавятся сверка и управление отпечатками.

anonymous
()
27 октября 2019 г.

Не просто нужно, а необходимо

mark-v
()
Ответ на: комментарий от debihard

нужно каким-то (неведомым мне) образом доставить ему python3-otr и python3-cryptography.

за винду последний раз трогал лет 6 назад.

annerleen ★★★★☆
() автор топика

че-та не работает….

27.11.2019 10:28:47 (W) gajim.c.m.pubsub Error: item-not-found
27.11.2019 10:30:35 (W) gajim.plugin_system Error executing <bound method OTRPlugin._decrypt_message 
of <gajim-otrplugin.plugin.OTRPlugin object at 0x7f68ffb8afd0>>
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/Crypto/PublicKey/DSA.py", line 204, in __getattr__
        return int(self._key[item])
KeyError: 'key'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/gajim/plugins/pluginmanager.py", line 366, in         _execute_all_handlers_of_gui_extension_point
    handlers[0](*args)
  File "/home/r0mik/.local/share/gajim/plugins/gajim-otrplugin/plugin.py", line 66, in _decrypt_message
    otr.decrypt(event,callback)
  File "/home/r0mik/.local/share/gajim/plugins/gajim-otrplugin/otr.py", line 116, in decrypt
    text, tlvs = channel.receiveMessage(event.msgtxt.encode(),appdata=event.stanza.getThread()) or b''
  File "/usr/lib/python3.8/site-packages/potr/context.py", line 210, in receiveMessage
    self.crypto.handleAKE(message, appdata=appdata)
      File "/usr/lib/python3.8/site-packages/potr/crypt.py", line 276, in handleAKE
    self.ake = AuthKeyExchange(self.ctx.user.getPrivkey(),
  File "/usr/lib/python3.8/site-packages/potr/context.py", line 525, in getPrivkey
        self.privkey = compatcrypto.generateDefaultKey()
  File "/usr/lib/python3.8/site-packages/potr/compatcrypto/common.py", line 35, in generateDefaultKey
    return pkTypes[DEFAULT_KEYTYPE].generate()
  File "/usr/lib/python3.8/site-packages/potr/compatcrypto/pycrypto.py", line 131, in generate
    return cls((privkey.key.y, privkey.key.g, privkey.key.p, privkey.key.q,
  File "/usr/lib/python3.8/site-packages/Crypto/PublicKey/DSA.py", line 206, in __getattr__
    raise AttributeError(item)
AttributeError: key
r0mik
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.