TG Telegram Group & Channel
Go Update | United States America (US)
Create: Update:

❄️ runhottg.com/secret: add new package: о тех кто застрял в лимбе.

Как часто вы зануляете память? Подозреваю, что ответ большинства Go разработчиков будет где-то между "никогда" и "зачем?". И действительно, в большинстве приложений такая задача никогда не появляется. Однако когда речь заходит о криптографии, этот вопрос резко становится важным, так как очистка ключей из памяти есть обязательное условие Perfect forward secrecy (совершенной прямой секретности).

И тут встает второй вопрос: а как это делать правильно? Короткий ответ: никак. Длинный ответ: зануление вручную не всегда помогает, т.к. компилятор имеет право переносить переменные из хипа в стек и обратно как посчитает нужным. А стек, при достижении порога, копируется в новое место, оставляя за собой кусок памяти который когда-то, возможно, будет перезаписан чем-то новым.

Джейсон Доненфельд (автор протокола WireGuard VPN и его реализации, как минимум, на C и Go) поднял эту проблему и вариант решения еще в 2017ом году, однако на обсуждение деталей ушло аж 4 года, перед принятием предложения в октябре 2021го. Само обсуждение интересно тем, что в нем не раз и не два поднимается вопрос об особенностях зачистки памяти в языках со автоматической сборкой мусора и количестве изменений которые необходимо сделать в рантайм для поддержки подобного.

Тем временем, на дворе ноябрь 2023го. И с момента принятия предложения по нему не было никакой работы. Такое впечатление, что про само предложение забыли, либо сложность его реализации перекрывает любые бенефиты. Однако отозвать предложение тоже нельзя, ибо противоречий к его реализации нет. Вот и получается, что вроде и приняли, а реализовывать его никто не хочет (или не может). Застряло в лимбе.

А какие вы знаете предложения которые находятся в похожей ситуации?

❄️ runhottg.com/secret: add new package: о тех кто застрял в лимбе.

Как часто вы зануляете память? Подозреваю, что ответ большинства Go разработчиков будет где-то между "никогда" и "зачем?". И действительно, в большинстве приложений такая задача никогда не появляется. Однако когда речь заходит о криптографии, этот вопрос резко становится важным, так как очистка ключей из памяти есть обязательное условие Perfect forward secrecy (совершенной прямой секретности).

И тут встает второй вопрос: а как это делать правильно? Короткий ответ: никак. Длинный ответ: зануление вручную не всегда помогает, т.к. компилятор имеет право переносить переменные из хипа в стек и обратно как посчитает нужным. А стек, при достижении порога, копируется в новое место, оставляя за собой кусок памяти который когда-то, возможно, будет перезаписан чем-то новым.

Джейсон Доненфельд (автор протокола WireGuard VPN и его реализации, как минимум, на C и Go) поднял эту проблему и вариант решения еще в 2017ом году, однако на обсуждение деталей ушло аж 4 года, перед принятием предложения в октябре 2021го. Само обсуждение интересно тем, что в нем не раз и не два поднимается вопрос об особенностях зачистки памяти в языках со автоматической сборкой мусора и количестве изменений которые необходимо сделать в рантайм для поддержки подобного.

Тем временем, на дворе ноябрь 2023го. И с момента принятия предложения по нему не было никакой работы. Такое впечатление, что про само предложение забыли, либо сложность его реализации перекрывает любые бенефиты. Однако отозвать предложение тоже нельзя, ибо противоречий к его реализации нет. Вот и получается, что вроде и приняли, а реализовывать его никто не хочет (или не может). Застряло в лимбе.

А какие вы знаете предложения которые находятся в похожей ситуации?


>>Click here to continue<<

Go Update




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)