LINUX.ORG.RU

Messaging Layer Security принят в качестве стандарта RFC

 , , ,


2

3

После многих лет разработки, протокол MLS наконец-то опубликован как стандарт RFC за номером 9420.

MLS позволяет организовать оконечное шифрование (End-to-End Encryption, E2EE) между неограниченным количеством участников. Главным отличием от существующих протоколов, таких как Proteus, Signal и т.д., является отсутствие привязки к конкретному сервису, что допускает его использование как поверх существующих протоколов, так и в рамках новых сервисов обмена сообщениями. Также стоит заметить, что в MLS реализован новый алгоритм обмена ключами, из-за чего отправка сообщений группе участников имеет логарифмическую сложность, а не линейную, что позволит использовать MLS в группах с тысячами и более участников, как например списки рассылок.

Среди сервисов, планирующих использовать MLS, можно отметить Matrix, Wire, Google и Facebook. Работники последних трёх так же принимали участие в разработке этого протокола.

Для желающих использовать протокол в своих разработках представлена реализация OpenMLS на языке Rust. OpenMLS опубликована под лицензией MIT.

>>> Краткий обзор протокола

>>> Официальный сайт

>>> Подробности

★★★★★

Проверено: maxcom ()
Последнее исправление: maxcom (всего исправлений: 4)

Ответ на: комментарий от q0tw4

А вот тут как раз приходит на выручку шифрование

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

Tsukasa
()
Последнее исправление: Tsukasa (всего исправлений: 1)
Ответ на: комментарий от Tsukasa

Когда и если алгоритм шифрования взломают, информация в сообщении может давно потерять актуальность, а корреспондент сообщения уже умереть. Так что «когда взломают» — это пионерский аргумент. Если сообщили что-то важное, то факт получения сообщения можно установить по косвенным признакам. Так что, весь мир может увидеть реакцию на сообщение и по ней предположить его содержание. Ломать алгоритм — дело долгое и не очевидно, что успешное. Гораздо перспективнее ломать протокол.

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

Ну и хорошо, что мы думаем одинаково. :)

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

Так, собствекнно, шифрование — это процентов 10 от всегго остального и самое неинтересное.

Чо? Ты с дуба рухнул? Натянуть double ratchet на группу из N абонентов и при этом не вляпаться в O(N) (и в некоторых случаях O(N^2)) затраты – это как раз таки очень интересно. Потому что это вот самая главная причина, почему оконечное шифрование не работает в больших сообществах.

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

Под шифрованием я имел в виду конкретные алгортитмы типа тупо зашифровать или подписать блок данных. Все остальное — это криптографический протокол. А вот тут много всего, от удовлетворения условий типа «Алиса верит, что Боб сказал Х», до диспетчеризации членства в группе. И вот это твое «не вляпаться в O(N) »  — это тоже вопрос дизайна протокола. Ну и раздача ключей, конечно.

gns ★★★★★
()
Последнее исправление: gns (всего исправлений: 3)
Ответ на: комментарий от gns

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

В базовом варианте, кто угодно из группы может добавить кого угодно в группу. Это решается контролем доступа со стороны серверной части (добавлять и удалять свои ключи может кто угодно, а других – только Вася), либо через голосование участников, либо ещё хз как. В MLS группа – это текущее состояние дерева ключей, которому верят все участники. Не более. Конкретный подход по модерации оставлен за конечным сервисом, который это будет использовать.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 2)
Ответ на: комментарий от hateyoufeel

добавлять и удалять свои ключи может кто угодно, а других – только Вася

Ну вот я так и не понял из архитектурного документа, что будет, если Вася самоустранится или самовыпилится из группы по каким-то причинам. Делегрование прав то-ли я не нашел, то-ли разработчики недосмотрели.

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

Делегрование прав то-ли я не нашел, то-ли разработчики недосмотрели

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

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

Ну вот это явная дырка. Если протокол начинается с того, что инициатор группы шлет запрос на AS для организации группы и добавлении новых участников, и к нему в первую очередь отсылаются креды новых участников, то хотелось бы видеть диаграмму смены лидера. А в остальном, на первый взгляд, диаграммы посылок такие, что их сложно придумать другими. Как-то это все половинчато. Если что-то отдается на откуп прикладному сервису, то сколько будет дыр в полном протоколе сказать сложно. Ну, может быть, какой-нибудь Сигнал или Фейсбук с вацапом прикрутят этот EE2E. Пока все это «тут играем, тут не играем, а тут селедку заворачивали».

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

Ну вот это явная дырка.

Это не дырка.

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

Конечно сложно. Потому что на откуп в любом случае отдаётся куча вещей. Например, управление ключами на девайсе, пересылка сообщений и прочее. Поэтому и проводят аудиты не только одной криптобиблиотеки, но и всего сервиса в целом.

Если тебе интересны конкретные реализации, можешь посмотреть на Wire. Они в том числе разработкой этой штуки занимались и вроде как давно уже начали запиливать её у себя.

hateyoufeel ★★★★★
() автор топика

Кто-то опять форсит стандарты WWW и ломает совместимость со старым ПО! Ура!!!

zx_gamer ★★
()

А может кто-то на пальцах объяснить как все участники чата вырабатывают новый общий симметричный ключ так, что серверам этих участников этот ключ оказывается неизвестен?

Это главная вещь, которую я в «этом вашем матриксе» не понимаю…

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

и вроде как давно уже начали запиливать её у себя.

Наоборот - они стандартизировали (с привлечением сторонних контрибьюторов) то, как их мервис изначально работал.

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

Нет, не стандартизировали. У них нормальной поддержки групп не было и вроде до сих пор нет. Групповые чаты в Wire — ад и тормозилово. Они просто из Signal протокол скопировали с небольшими изменениями и всё.

hateyoufeel ★★★★★
() автор топика
Последнее исправление: hateyoufeel (всего исправлений: 1)
Ответ на: комментарий от zabbal

ладно, будем ffi прикручивать к блобам rust, если api напишут нормальный

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

или олдово пойдем dlopen -> rust -> pythuhon/ruby(over ffi)?

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

Через Diffie-Hellmann и особую магию. На пальцах тут:

https://youtube.com/watch?v=9sO2qdTci-s

Спасибо! Очень познавательно.

Нашел так же про групповые чаты:

https://www.youtube.com/watch?v=Q0_lcKrUdWg

Но там про sender key как-то не очень обнадеживающе… В матриксе групповые чаты так же реализованы через тот же механизм с sender key?

Мне казалось, что я краем уха слышал, что там как-то вырабатывается общий ключ для комнаты, и меняется раз в неделю… Или как там на самом деле?

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

В матриксе групповые чаты так же реализованы через тот же механизм с sender key?

Понятия не имею.

что там как-то вырабатывается общий ключ для комнаты, и меняется раз в неделю… Или как там на самом деле?

Тебе придётся почитать спеки для этого. Но вообще, нет.

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

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

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

В качестве калькулятора руби может и не плох. Но для программирования он подходит примерно никак.

hateyoufeel ★★★★★
() автор топика

Не, ну что текст RFC совершенно нечитаем — они примерно с четвёртой тысячи все такие, ничего нового, Йон Постел уже устал вертеться в своём гробу. Хуже другое: в IEEE пролезли рустаманы, и их там, вместо чтоб сразу пришибить, пустили писать RFC, да ещё Standards Track. Это, конечно, никакой не стандарт, что бы там автор новости не утверждал, и стандартом, есть шанс, никогда не станет (см. тут https://www.rfc-editor.org/standards — даже не draft, а этих proposed там как слонов, пишут все кому не лень, потом никто, естественно, не принимает, и это правильно), но всё равно крайне неприятно.

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

Напиши MLS на Паскале

Тебя кто-то обманул, я не пишу на Паскале

Тебе никто не мешает начать! Паскаль – отличный язык. Особенно для тех, кто Rust не осилил.

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

Начать мне мешает то обстоятельство, что я уже скоро тридцать лет как кончил, и с тех пор оно меня не возбуждает. Последний свой боевой код на Паскале я написал, если не ошибаюсь, в 1995 году.

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

Благодарю покорно, но копрофагия не входит в сферу моих интересов.

Удивительно это читать от программиста на C++, который не осилил SQL и упорно пилит свою базу для наколеночной CMS на основе файлов.

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

Если я не ем дерьмо, из этого никоим образом не следует, что копрофагию я «не осилил». И да, базёнок на SQL это тоже касается. Кстати, лет двадцать пять назад я SQL прекрасно знал, ибо по работе требовалось, но с тех пор, естественно, забыл напрочь, поскольку никаких осмысленных применений для него в природе не существует и существовать не может.

А собственную CMSку я, кстати, вчера релизнул.

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

Если я не ем дерьмо, из этого никоим образом не следует, что копрофагию я «не осилил». И да, базёнок на SQL это тоже касается. Кстати, лет двадцать пять назад я SQL прекрасно знал, ибо по работе требовалось, но с тех пор, естественно, забыл напрочь, поскольку никаких осмысленных применений для него в природе не существует и существовать не может.

Да-да. SQL не нужен. Мы уже поняли. Твои костыли с файлами куда лучше, быстрее и производительнее.

А собственную CMSку я, кстати, вчера релизнул.

https://github.com/a-croco-stolyarov/thalassa

Вот эту?

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

быстрее и производительнее.

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

Вот эту?

Вот эту: http://thalassa.croco.net

Интересно, кстати, кто создал эту хрень на гитхабе и как существование таких говноедов вообще выносит ноосфера.

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

Интересно, кстати, кто создал эту хрень на гитхабе и как существование таких говноедов вообще выносит ноосфера.

А может настоящий Croco на самом деле на гитхабе, а ты просто аккаунт у него угнал? С чего бы вдруг внезапно ломать старый рабочий сайт-то?

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

Это фича такая?

Это два обратных апострофа в качестве открывающей кавычки и два обычных в качестве закрывающей. А проблемы кривых шрифтов (как и негров) шерифа не е… нутыпонял.

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

а ты просто аккаунт у него угнал?

Даже интересно, какой конкретно аккаунт я у него угнал. Что-то их как-то много получается. Проще, наверное, было проникнуть ему в мосК и подчинить своей воле. Тут, впрочем, тоже неувязочка есть, и даже две: на гитхабе эта хрень появилась только сегодня, а говорить всем, что поголовно все пользователи гитхаба – буйнопомешанные психи, которых нужно изолировать от общества, я начал лет пять назад по меньшей мере, и плюс к тому основной сайт на этой CMSке уже скоро полгода как, просто для релиза нужно было ещё документацию написать, а не только саму CMSку.

С чего бы вдруг внезапно ломать старый рабочий сайт-то?

Например, с того, что старый сайт на пятом друпале (EOL с 2011 года, если не ошибаюсь), на древней версии MySQL (тоже, естественно, давно EOL, но не буду сейчас выяснять конкретный год) и на древнем же интерпретаторе PHP, статус котого меня в целом не колышет, а колышет то, что на более новых тот друпал уже не работает, естественно. Эта публика про обратную совместимость, судя по всему, никогда не слышала. А в целом там набор софта такой, что перенести его на хоть какой-нибудь VPS из тех, что сейчас доступны, никакими разумными усилиями не получится.

При этом терять контент мне, естественно, не хотелось.

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

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

ты что, всё ещё веришь, что внутри SQLных движков живут такие специальные волшебные гномики, которые выцеживают из ничего повышение производительности?

Я верю, что авторы postgresql умнее тебя. И, возможно, умнее меня. Почему бы мне не воспользоваться их кодом?

Интересно, кстати, кто создал эту хрень на гитхабе и как существование таких говноедов вообще выносит ноосфера.

Там же просто твой код выложен. Люди, распространяющие твой код — говноеды? Интересный у тебя подход.

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

Я верю, что авторы postgresql умнее тебя.

Вот уж вряд ли. Но ты верь, верь.

И, возможно, умнее меня.

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

Почему бы мне не воспользоваться их кодом?

Тебе? Ну, это ты сам решай. А вот почему мне не воспользоваться «их кодом» (хотя не кодом, а целым «продуктом», который вот именно что продукт в самом поганом смысле слова) – это как раз очевидно: это (1) лишняя внешняя зависимость, (2) требующая трудозатрат на администрирование, (3) способная упасть (и да, падающая намного чаще, чем, скажем, тот же апач – можешь мне сказок не рассказывать, я с этим postgresql в 1997-2001 потрахался знатно, на всю жизнь вперёд), (4) требующая постоянно обновлять навыки, которые больше ни для чего не нужны и за которые мне никто не платит денег, (5) хранящая мой контент в неочевидном для меня виде (ей-богу, пока разобрался, что за срань наворотили авторы друпала с хранением страничек и комментов, выпил полтонны кофе, и больше так не хочу), ну и последнее – специально для тебя – (6) требующая изрядных вычислительных мощностей на серваке и крадущая (а вовсе не повышающая) производительность.

Люди, распространяющие твой код

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

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

Они, по крайней мере, в добрых гномиков не верят

Сам придумал, сам посмеялся. Молодец!

можешь мне сказок не рассказывать, я с этим postgresql в 1997-2001 потрахался знатно, на всю жизнь вперёд

Ээээ… это было 25 лет назад. Его с тех пор переписали много раз. Ты блин ещё лялекс образца 1993 года вспомни и начни тут заявлять, что мол с сетью всё плохо и SMP не поддерживается.

Во-первых, все, кто пользуются гитхабом, гитлабом и прочими вебдванольными репохостингами – говноеды.

А я думал, это твой аккаунт…

hateyoufeel ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.