В библиотеке OpenPGP.js выявлена уязвимость (CVE-2025-47934), позволяющая злоумышленнику отправить модифицированное сообщение, которое будет воспринято получателем как верифицированное (функции openpgp.verify и openpgp.decrypt вернут признак успешной проверки цифровой подписи, несмотря на то, что содержимое заменено и отличается от данных, для которых создавалась подпись). Уязвимость устранена в выпусках OpenPGP.js 5.11.3 и 6.1.1. Проблема проявляется только в ветках OpenPGP.js 5.x и 6.x, и не затрагивает OpenPGP.js 4.x...Подробнее: https://www.opennet.me/opennews/art.shtml?num=63278
Красивое...
Что-то подобное было в реализациях JWT в своё время
Получается, системой выдавался jwt-ключ, содержащий открытый ключ асимметричного шифрования
Достаточно было в полученном jwt-ключе поменять тип на симметричный, проставить туда тот же открытый ключ, им же "подписать" и... всё норм. Меняй параметры ключа как хочешь - заходи под любым пользователем с любыми правами итд итп
Протонмайл спалился
Я с самого начало этому протону не доверял. Мутная контора какая-то.
Зашёл я в код посмотреть, а там ужас что на***верчено. Даже по сообщению коммита `Don't mutate message during verification` видно квалификацию.
Интересно, смотрели ли, кто это коммитил, когда и, главное, не упало ли ему на счет большая сумма денег.
Пример ХЗ показал, что опесорсные проекты супер уязвимы к внедрению васянов без имени и фамилии.
Так и запишем: в безопасных системах структуры данных организованы в иерархические структуры, где если только одна запись имеет силу - то исключительно её можно поместить в родительскую структуру.
Пакетная структура OpenPGP - хлам. От неё пора избавляться.
в пользу чего?
openssl, age?
Зачем такое писать на жс не ясно, когда есть васм.
Wasm не спасёт от мамкиных криптогрофов.Даже проверенные алгоритмы могут иметь уязвимости в конкретной имплементации, и это не сильно зависит от языка.
> Wasm не спасёт от мамкиных криптогрофов.
> Даже проверенные алгоритмы могут иметь уязвимости в конкретной имплементации, и это не
> сильно зависит от языка.Только взять готовую библиотеку лучше, чем реализовывать криптографию самому на жс.
Согласен. Реализация криптолибы это отдельный челендж, обычно провальный. А уж на js – тем паче.
> когда есть васмWASM - есть **is not constant time = side channel attacks !**
>> когда есть васм
> WASM - есть **is not constant time = side channel attacks !**Как связаны timing attack и WASM? Они возможны в любом яп.
>>> когда есть васм
>> WASM - есть **is not constant time = side channel attacks !**
> Как связаны timing attack и WASM? Они возможны в любом яп.- Во первых, WASM - не язык на котором програмируют, это ближе к байткоду.
- Во вторых, компиляторы в УАСМ, трансформируют код в быстродействующий non-constant-time код, заменяющие лукапы в брэнчи причем в зависимости от инпута (спасибо JIT)
- УАСМ который скармливается браузерам добавляют временные изменения на низком уровне, тайминг в доступе к памяти, кэш и брэнч предикторы которые раскрывают информацию и УАСМ не предоставляет низко уровневого котроля кэша и памяти по сравнению с нативным кодом
- ctgrind и dudect в помощь для иследования WASM в криптографии (мы ж про субж всё еще, правда?)
>[оверквотинг удален]
> к байткоду.
> - Во вторых, компиляторы в УАСМ, трансформируют код в быстродействующий non-constant-time
> код, заменяющие лукапы в брэнчи причем в зависимости от инпута (спасибо
> JIT)
> - УАСМ который скармливается браузерам добавляют временные изменения на низком уровне,
> тайминг в доступе к памяти, кэш и брэнч предикторы которые раскрывают
> информацию и УАСМ не предоставляет низко уровневого котроля кэша и памяти
> по сравнению с нативным кодом
> - ctgrind и dudect в помощь для иследования WASM в криптографии (мы
> ж про субж всё еще, правда?)Ничего не понятно. Если хочешь сказать, что после компиляции в wasm можно получить timing attack, то хочу увидеть пруфы.
> то хочу увидеть пруфы.Дал ключевые слова, даже кратко разьяснил, но нет, таки надо еще и лекцию и с пруфами, в гугле наверно бан?
Может еще яблочко пожевать?
:)
>> то хочу увидеть пруфы.
> Дал ключевые слова, даже кратко разьяснил, но нет, таки надо еще и лекцию и с пруфами, в гугле наверно бан?Бредовый поток сознания - это не краткое разъяснение. Нужны пруфы или не было. Дешевый трюк иди поищи не сработает.
Те кто в теме, те поймут у кого бред и троллевая болезнь
Интерсно, а mailvelope тоже субж юзает?