Американская компания Cloudflare предоставляет DNS-сервис, а также защиту от DDoS, услуги по безопасности, шифрованию, сертификаты SSL и подобные сервисы. Для криптографических целей в компании много лет подряд используют набор из 100 лава-ламп. О том, как это работает, компания пишет на официальном сайте.
По данным СМИ, сервисы Cloudflare защищают около 10% мирового трафика. Какую роль в этом отыгрывают лава-лампы?
В компании объясняют, что для создания ключей шифрования нужны по-настоящему случайные наборы данных: чтобы злоумышленник не смог их угадать или подобрать.
Зачем нужны лава-лампы?
Для криптографии «случайный» обозначает не просто статистически случайный, но такой набор данных, который невозможно спрогнозировать. В Cloudflare приводят такой пример: предположим, кто-то много раз подряд бросал шестигранный кубик и выпала такая последовательность:
1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6
Статистически это — пример случайного распределения результатов броска. Ведь у каждого числа — одинаковый шанс выпасть, так что такая последовательность — вероятна. Однако, в то же время такую последовательность можно спрогнозировать, а значит, она не годится для шифрования.
Подобным образом могут быть уязвимыми последовательности, которые генерирует компьютер. Лава-лампы, как и примеры других физических процессов (вроде колебаний температуры), в отличие от компьютеров, могут обеспечить по-настоящему рандомные данные, которые и используют в криптографии.
CTO Cloudflare Джон Грэхэм-Камминг объясняет, как в компании пришли к такому решению:
«Оказывается, что компьютеры очень плохо справляются со случайными числами. Единственные, кто генерирует случайные числа еще хуже компьютеров, — это люди. Поэтому приходится искать затейливые способы получать случайности».
Как это работает?
В офисе компании в Сан-Франциско отдельная стена полностью заставлена 100 лава-лампами. В компании ее в шутку называют «стеной энтропии». На эту стену нацелена камера, которая делает фото стены с каким-то интервалом. Каждому пикселю на фото присваивается числовое значение, и фото в результате генерируют случайные числовые последовательности.
На них действуют не только различные положения содержимого лава-ламп, но и угол освещения, случайные посетители и т.д. Полученные последовательности применяются для работы над SSL/TLS-шифрованием.
Если же кто-то случайно отключит или повредит камеру, в компании есть два других способа получать рандомные наборы данных. В компании также меряют движения маятника в Лондоне и записывают измерения счетчика Гейгера в Сингапуре.
Интересно, что Cloudflare — не первая компания, которая пользовалась таким способом для шифрования. Первой была компания Silicon Graphic со своей системой Lavarand, которая работала в 1996 году.