Forwarded from Node.JS [ru] | Серверный JavaScript
Диагностика и устранение неявного замедления TLS-рукопожатий из-за скрытой конкуренции за entropy pool в кластеризованных HTTPS-серверах
Если вы держите Node.js в кластере — через PM2 или встроенный cluster, — могли замечать странные задержки при HTTPS-соединениях. Вроде всё настроено, а рукопожатия то 5 мс, то 500+. Одна из неочевидных причин — драка за entropy pool.
Причина
Внутри каждого TLS-рукопожатия Node.js дёргает случайные числа для ключей. В Linux это
Симптомы: время рукопожатия плавает хаотично, иногда
Диагностика
Берите
Решения
* Отдельный seed для каждого воркера. При старте слать его через IPC из master:
* Для операций после старта — только асинхронный
* На bare-metal поставьте
Типичная ошибка
Не используйте
Вывод: Диагностика через strace и управление seed-ами — эффективный способ ускорить TLS без переписывания стека, но критично проверить нагрузку на entropy pool в кластере с 10+ воркерами.
Если вы держите Node.js в кластере — через PM2 или встроенный cluster, — могли замечать странные задержки при HTTPS-соединениях. Вроде всё настроено, а рукопожатия то 5 мс, то 500+. Одна из неочевидных причин — драка за entropy pool.
Причина
Внутри каждого TLS-рукопожатия Node.js дёргает случайные числа для ключей. В Linux это
/dev/urandom или getrandom(). Когда несколько воркеров одновременно лезут в один пул энтропии, начинаются блокировки. Особенно в контейнерах без аппаратного RNG — там стекло быстро заканчивается.Симптомы: время рукопожатия плавает хаотично, иногда
blocked for more than 120 seconds. strace покажет, что провал в crypto.randomFill().Диагностика
Берите
strace -e trace=getrandom -p <PID> -o entropy.log. Если вызовы висят дольше 1 мс — проблема. Проверьте скорость энтропии: dd if=/dev/urandom bs=1024 count=100 | pv.Решения
* Отдельный seed для каждого воркера. При старте слать его через IPC из master:
process.on('message', (msg) => {
if (msg.type === 'seed') {
global._seed = msg.seed;
}
});* Для операций после старта — только асинхронный
crypto.randomFill с callback. Синхронный вызов дёргает блокировку пула.* На bare-metal поставьте
haveged или rng-tools, в облаке — virtio-rng.Типичная ошибка
Не используйте
Math.random() для криптографии — это антипаттерн, который не решает проблему, а только создаёт уязвимости.Вывод: Диагностика через strace и управление seed-ами — эффективный способ ускорить TLS без переписывания стека, но критично проверить нагрузку на entropy pool в кластере с 10+ воркерами.
Forwarded from Типичный Сисадмин
Если у злоумышленника есть root-права внутри гостевой виртуалки (а любой покупатель VPS за 100 рублей их имеет), он может пробить изоляцию, выйти на уровень гипервизора на архитектуре x86 и получить полный контроль над физическим сервером и всеми остальными соседями по железу. Canonical временно советует костыль... вырубить вложенную виртуализацию (nested virtualization).
Еще из примечательного то, что баг лежал в KVM 16 лет.
Еще по сети гуляет легендарный email из рассылки 2007 года. Пишет Тео де Раадт (создатель OpenBSD), отвечая юзеру, который утверждает, что виртуализация полезна для безопасности
Перевод этой базы:
> Вы, должно быть, курите что-то забористое. Виртуализация на x86 - это когда вы берете почти целое ядро, полное новых багов, и кладете его поверх мерзкой архитектуры x86, в которой даже защита страниц памяти работает криво. А потом запускаете свою ОС поверх этой новой кучи дерьма
>
> Вы абсолютно оторваны от реальности (если не просто тупы), если думаете, что программисты по всему миру, которые не способны написать обычную ОС или приложение без дыр в безопасности, вдруг внезапно возьмут и напишут слой виртуализации без дыр
>
> Вы просто увидели на полке коробку, она переливалась красивыми цветами, и вы ее купили. Вот и вся ваша x86 виртуализация
Спустя почти 20 лет после этого письма пророчество сурового бородатого деда - сбылось.
Типичный
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from UI_UX inspiration
Сайт девелопера логистических и производственных парков
Logistics Partners: московский девелопер с опытом от FMCG до built-to-suit. Более 30 лет работы, 550 000 м² объектов, включая комплексы для Внуково
Читать на дизайнерс | #кейс
Logistics Partners: московский девелопер с опытом от FMCG до built-to-suit. Более 30 лет работы, 550 000 м² объектов, включая комплексы для Внуково
Читать на дизайнерс | #кейс
Forwarded from Дизайн-Телега 🔥
This media is not supported in your browser
VIEW IN TELEGRAM
Набор для установки пользовательского интерфейса
• Набор из 15+ экранов онбординга
• 100 компонентов
#uik #onboarding
Открыть в Figma
• Набор из 15+ экранов онбординга
• 100 компонентов
#uik #onboarding
Открыть в Figma
Forwarded from UI_UX inspiration
Мобильное приложение для создания контента
Категория: #приложение
Язык: #en
https://.com/shots/27408085-Mobile-App-for-Content-Creation
Чат UI/UX
Категория: #приложение
Язык: #en
https://.com/shots/27408085-Mobile-App-for-Content-Creation
Чат UI/UX
Forwarded from UI_UX inspiration
Media is too big
VIEW IN TELEGRAM
Happy Valentine’s Day
blacklead studio
blacklead studio
Forwarded from Shock Design
This media is not supported in your browser
VIEW IN TELEGRAM
Иконка Duolingo в темной теме.
Forwarded from PSD | Дизайн-пространство