beldmit: (Программизм)
[personal profile] beldmit
Проект по реализации криптографии на rust. Теоретически это даёт спасение от всяких CVE по записи в никуда и чтению из ниоткуда (примерно треть всех уязвимостей в криптографии) — язык сдизайнен таким образом, что, если не прилагать усилий, записать по неверному указателю технически невозможно.

Сайт проекта, есть регулярные онлайн-встречи.

Сегодня, наконец, большой кусок встречи был посвящён дискуссиям о том, как гарантировать constant-time обработку данных (ещё существенный пласт атак) и защиту от шибко умного компилятора, который может выкинуть зачистку памяти в случае, если решит, что зачищенное значение больше не используется.

Вообще цель хорошая, и скорость выполнения криптографии на Rust осмысленная. Но общее состояние —пока сыровато.

Date: 2021-08-21 07:02 am (UTC)
nataraj: (Default)
From: [personal profile] nataraj

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

Ловить записи не туда...

О к стати придумал метод который позволил бы поймать тот баг, который ты загонял... и много чего еще инетерсного, я думаю...

Ловить записи не туда, можно автоматически... А вот при использовании любой абстракции сложнее malloc + free, нет никакой гарантии что эта абстракция а) работатет безопасно, б) не перестанет работать безопасно через какое-то время...

Так что есть у меня некоторые сомнения, что это хорошо...

Date: 2021-08-21 09:25 am (UTC)
livelight: (starlight)
From: [personal profile] livelight
А как он мотивирует выкидывание memset'а? Это ж функция с заведомыми побочными эффектами. Разве что в связке memset+free можно счесть memset лишним, ибо с т.з. компилятора, освобождённая память выбрасывается во тьму внешнюю, а что особенности реализации позволят её опять кому-нибудь аллоцировать - это уже проблемы индейцев, а не шерифа.

Date: 2021-08-21 09:31 am (UTC)
livelight: (serenity)
From: [personal profile] livelight
Клёво, чо :)
Если побочные эффекты функции его не интересуют и он счёл себя компилятором с чисто функционального языка, то он может выкидывать вообще любые void функции, ибо вычисленное значение не просто нигде не используется, а вообще не существует.

Всё же куда-то сильно не туда пошли C, C++ и их компиляторы с тех пор, как я перестал писать на них...

Profile

beldmit: (Default)
Dmitry Belyavskiy

December 2025

S M T W T F S
 123456
78910111213
14151617181920
2122 2324252627
28 29 3031   

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 30th, 2026 08:59 am
Powered by Dreamwidth Studios