![Случайность на страже криптографии: как Cloudflare использует лава-лампы, маятники и распад урана для шифрования трафика - 1 Случайность на страже криптографии: как Cloudflare использует лава-лампы, маятники и распад урана для шифрования трафика - 1](https://www.pvsm.ru/images/2022/07/08/sluchainost-na-straje-kriptografii-kak-Cloudflare-ispolzuet-lava-lampy-mayatniki-i-raspad-urana-dlya-shifrovaniya-trafika.jpeg)
Траектория движения элементов хаотического маятника — повторений нет
Случайные числа играют важнейшую роль в криптографии. Например, алгоритмы формирования электронно-цифровых подписей используют именно случайные числа для формирования ключей. И требования к этим числам весьма строгие, поскольку надежность системы шифрования данных напрямую от них зависит. К сожалению, реально случайные числа получить сложно, хотя и возможно, поэтому обычно для решения этой задачи используются генераторы псевдослучайных чисел. Так называют алгоритм, который генерирует последовательность чисел элементы которой независимы друг от друга и подчиняются заданному распределению.
Но есть и компании, которые решают задачу иначе — они используют генераторы true-случайных чисел. Это вовсе не компьютерные программы, а необычные устройства или даже так называемые лавовые лампы. Именно их использует компания Cloudflare — примерно с 2017 года. В течение пяти лет надежность шифрования трафика, который проходит через инфраструктуру компании, зависит от ламп, а также маятников и процесса радиоактивного распада урана. Подробности — под катом.
Псевдослучайные числа — не слишком надежны
![Случайность на страже криптографии: как Cloudflare использует лава-лампы, маятники и распад урана для шифрования трафика - 2 Случайность на страже криптографии: как Cloudflare использует лава-лампы, маятники и распад урана для шифрования трафика - 2](https://www.pvsm.ru/images/2022/07/08/sluchainost-na-straje-kriptografii-kak-Cloudflare-ispolzuet-lava-lampy-mayatniki-i-raspad-urana-dlya-shifrovaniya-trafika-2.jpeg)
То есть как — надежны, конечно, но все же это не полная случайность. А компьютер по определению не может генерировать полностью случайные числа, поскольку число состояний системы ограничено. Оно очень большое, но не бесконечное, соответственно, рано или поздно формируется паттерн, периодичность, которая является слабым местом криптографической системы на базе псевдослучайных чисел. Конечно, «поймать» и проанализировать такой паттерн крайне сложно, почти невозможно, особенно, если генератор псевдослучайных чисел хороший. Но теоретически такая возможность существует, а значит, криптографическая система на базе псевдослучайных чисел уязвима.
При формировании псевдослучайных чисел основную роль играет ключ. Структуру такого генератора можно представить в виде конечного автомата, память которого состоит из трех основных блоков:
• Память, в которой хранится информация о состоянии генератора.
• Выходная функция, которая генерирует бит ключевой последовательности в зависимости от состояния.
• Функция переходов, которая задает новое состояние, в которое переходит генератор на следующем шаге.
Генераторов псевдослучайных чисел много, только более-менее известных несколько тысяч. Многие компании для шифрования данных используют собственные криптостойкие алгоритмы генерации псевдослучайных чисел. Но как бы надежны они ни были, эти алгоритмы, теоретически злоумышленник может узнать последовательность генерируемых чисел и получить доступ к данным.
Некоторым компаниям, вроде Cloudflare, непозволительно допустить даже в теории взлом шифруемых данных, поэтому приходится искать другие варианты, альтернативы генераторам псевдослучайных чисел. Хорошим источником true-случайных числе являются физические явления. Это могут быть шумы детектора событий распада радиоактивных элементов, космическое излучение, либо визуальные образы. Например, распознавание формы «лавы» в лава-лампе. Эти лампы — бесконечный источник случайных чисел, так что шифрование на их основе теоретически безопасно.
Несколько источников случайности
Прежде, чем перейти к самим лампам, упомяну еще один важный момент — даже источник случайных чисел не является стопроцентной гарантией безопасности шифруемых данных. Дело в том, что злоумышленник каким-то образом может получить доступ к источнику или источникам, и, соответственно, получить ключ к дешифровке закодированных данных. Кроме того, представим, что злоумышленник получает возможность модифицировать источники истинной случайности, влияя, таким образом, на генерацию чисел в своих целях.
![Случайность на страже криптографии: как Cloudflare использует лава-лампы, маятники и распад урана для шифрования трафика - 3 Случайность на страже криптографии: как Cloudflare использует лава-лампы, маятники и распад урана для шифрования трафика - 3](https://www.pvsm.ru/images/2022/07/08/sluchainost-na-straje-kriptografii-kak-Cloudflare-ispolzuet-lava-lampy-mayatniki-i-raspad-urana-dlya-shifrovaniya-trafika-3.jpg)
Для того, чтобы решить и эту проблему, используется несколько источников случайности. Например, их три. Если даже два из них злоумышленнику удастся каким-то образом использовать в своих целях, то третий, оставшийся независимым от этого фактора, будет генерировать истинно случайные числа и дальше. Соответственно, хорошее решение — смешение нескольких потоков входящих данных от источников случайных чисел. Можно использовать также микс генераторов псевдослучайных чисел с источниками истинно случайных чисел.
Ну и теперь, наконец, переходим к лампам.
Да что за лампы там такие?
![Случайность на страже криптографии: как Cloudflare использует лава-лампы, маятники и распад урана для шифрования трафика - 4 Случайность на страже криптографии: как Cloudflare использует лава-лампы, маятники и распад урана для шифрования трафика - 4](https://www.pvsm.ru/images/2022/07/08/sluchainost-na-straje-kriptografii-kak-Cloudflare-ispolzuet-lava-lampy-mayatniki-i-raspad-urana-dlya-shifrovaniya-trafika-4.jpeg)
Как и говорилось выше, это лава-лампы, которые известны многим из нас. Это прозрачная стеклянная емкость с прозрачной жидкостью и полупрозрачным окрашенным парафином. Снизу расположен источник света и тепла, как правило, лампа накаливания, которая нагревает жидкость, парафин, что приводит поднятию и опусканию вещества. Кто видел такую лампу, знает, насколько необычно она выглядит.
Одна из особенностей лампы в том, что из-за огромного количества внешних факторов и их взаимодействия формы парафиновых «капель» никогда не повторяются. Это как снежинки, которые, как считается, всегда уникальны, сколько бы их ни формировалось в облаке.
Ну а распознавание изображений, видео или фото таких ламп, соответственно — идеальный источник истинно случайных чисел. Информация с систем распознавания изображений подается в криптографически стойкий генератор псевдослучайных чисел, который использует компания, благодаря чему трафик шифруется ну очень надежно.
В офисе Cloudflare есть отдельная стена, на которой стоит 128 лава-ламп. Эту стену в компании называют «стеной энтропии», и, наверное, справедливо. Это как раз источник энтропии. На стену направлен объектив камеры, которая делает фотографии с определенным интервалом. Пикселям на фото присваивается числовое значение, в результате чего и генерируются случайные числовые последовательности. 128 ламп дают возможность получать абсолютно случайные 128-битные числа. На формируемые числа влияние оказывает огромное количество факторов, включая тень, проходящий мимо стены посетитель (если кто там был, можно собой гордиться — вы стали частью инструмента шифрования данных).
![Случайность на страже криптографии: как Cloudflare использует лава-лампы, маятники и распад урана для шифрования трафика - 5 Случайность на страже криптографии: как Cloudflare использует лава-лампы, маятники и распад урана для шифрования трафика - 5](https://www.pvsm.ru/images/2022/07/08/sluchainost-na-straje-kriptografii-kak-Cloudflare-ispolzuet-lava-lampy-mayatniki-i-raspad-urana-dlya-shifrovaniya-trafika-5.png)
На схеме показана система источников случайных чисел в компании и шифрование на основе всего этого. Кроме такого источника, как лампы, есть еще один — у сервера, который установлен в офисе компании. В одном из дата-центров есть еще один источник энтропии, так что всего у Cloudflare три источника случайных чисел (используются, насколько известно, еще и генераторы псевдослучайных чисел).
Лампы играют в этом всем очень важную роль — они являются гарантией того, что данные будут продолжать шифроваться и останутся недоступными для злоумышленника даже в том случае, если серверы будут скомпрометированы.
А что, если каким-то образом влиять на лампы?
На самом деле, возможностей воздействия не так мало:
• Злоумышленник может направить камеру на стену из ламп, пытаясь добиться идентичной «картинки» с той, что формирует камера в офисе компании.
• Злоумышленник может отключить лампы или закрыть объектив камеры.
• Злоумышленник может подменить видеопоток.
• Взломщик может взломать офисный сервер, изменяя выходные данные энтропийной ленты этого сервера.
На самом деле, поскольку есть другие источники энтропии, то проблемы нет — данные все равно шифруются. Ну а представить себе злоумышленника, который одновременно смог воздействовать на лампы, серверы и т.п. — крайне сложно. По словам компании — невозможно. Единственная проблема — это если взломщику удастся запустить зловредный код, который повлияет на службу, которая производит окончательный «поток энтропии».
Ну и да, у Cloudflare есть еще офис в Лондоне, где камера снимает движения сразу трех хаотических маятников, а в Сингапуре источником случайных чисел служит счетчик Гейгера, который замеряет показатели радиоактивного распада крохотной пробы урана. Способы обработки первичных данных меняются, но принцип остается тот же.
В целом, решение компании хотя и не уникальное, но весьма удачное. Ведь кроме того, что она получила надежную защиту для трафика, проходящего через серверы Cloudflare, так еще и внимание к себе привлекает. Посетители офиса компании с лампами приходят в восторг вот уже несколько лет. Молодцы, что и говорить.
Автор: Ирина