Rust Cryptography
Aug. 20th, 2021 06:04 pmПроект по реализации криптографии на rust. Теоретически это даёт спасение от всяких CVE по записи в никуда и чтению из ниоткуда (примерно треть всех уязвимостей в криптографии) — язык сдизайнен таким образом, что, если не прилагать усилий, записать по неверному указателю технически невозможно.
Сайт проекта, есть регулярные онлайн-встречи.
Сегодня, наконец, большой кусок встречи был посвящён дискуссиям о том, как гарантировать constant-time обработку данных (ещё существенный пласт атак) и защиту от шибко умного компилятора, который может выкинуть зачистку памяти в случае, если решит, что зачищенное значение больше не используется.
Вообще цель хорошая, и скорость выполнения криптографии на Rust осмысленная. Но общее состояние —пока сыровато.
Сайт проекта, есть регулярные онлайн-встречи.
Сегодня, наконец, большой кусок встречи был посвящён дискуссиям о том, как гарантировать constant-time обработку данных (ещё существенный пласт атак) и защиту от шибко умного компилятора, который может выкинуть зачистку памяти в случае, если решит, что зачищенное значение больше не используется.
Вообще цель хорошая, и скорость выполнения криптографии на Rust осмысленная. Но общее состояние —пока сыровато.
no subject
Date: 2021-08-21 07:02 am (UTC)Вот тут недавно мы обсуждали... Вы записали пароль во что-то вроде std::string использовали его, потом забили нулями поверх и уверены, что этого пароля в памяти больше нет. Вы можете очень удивиться...
Ловить записи не туда...
О к стати придумал метод который позволил бы поймать тот баг, который ты загонял... и много чего еще инетерсного, я думаю...
Ловить записи не туда, можно автоматически... А вот при использовании любой абстракции сложнее malloc + free, нет никакой гарантии что эта абстракция а) работатет безопасно, б) не перестанет работать безопасно через какое-то время...
Так что есть у меня некоторые сомнения, что это хорошо...
no subject
Date: 2021-08-21 07:13 am (UTC)Так-то глянь, что они сейчас умеют наоптимизировать: https://blog.matthieud.me/2020/exploring-clang-llvm-optimization-on-programming-horror/
no subject
Date: 2021-08-21 09:25 am (UTC)no subject
Date: 2021-08-21 09:26 am (UTC)no subject
Date: 2021-08-21 09:31 am (UTC)Если побочные эффекты функции его не интересуют и он счёл себя компилятором с чисто функционального языка, то он может выкидывать вообще любые void функции, ибо вычисленное значение не просто нигде не используется, а вообще не существует.
Всё же куда-то сильно не туда пошли C, C++ и их компиляторы с тех пор, как я перестал писать на них...