Ко всему прочему есть тот простой факт, что программисты вовсе не идеальны. Даже если описанной атаки не будет, это совсем не значит, что компьютерная система голосования безопасна. Вот в «Гугле» (а все знают, что там нанимают очень умных людей), есть система вознаграждений, в рамках которой платят тому, кто поможет найти баги в их собственных программах, поскольку не могут гарантировать,
что сами где-нибудь не накосячили. Оказывается, в долгосрочной перспективе дешевле платить этичным хакерам – «белым шляпам», которые укажут вам на ошибки, чем исправлять вред, нанесенный неэтичными хакерами – «черными шляпами», которые эксплуатируют те же ошибки ради выгоды. Червь Stuxnet, о котором мы говорили, пользовался багами в Windows, которые не были поправлены, поскольку о них не знали даже в «Майкрософте».Программирование – это сложно. Компьютеры – это сложно. И даже блестящий благонамеренный разработчик ПО может совершить единственную ошибку, которая откроет для вторжения всю систему. За примером далеко идти не надо, достаточно посмотреть на очень популярное бесплатное ПО, которым пользуются для шифрования на вебсайтах, – OpenSSL.
В 2011 году ошибка в единственной строчке кода OpenSSL привела к появлению так называемого бага Heartbleed. Этот простой программный недосмотр позволял хакерам читать в памяти машины, использующей OpenSSL, что угодно,
в том числе и пароли. Уязвимость находилась у всех на виду, в кодовой базе OpenSSL – ПО с открытым исходным кодом, которую в теории может скачать, изучить и исправить кто угодно на планете. И только в 2014 году ошибку наконец заметили (по крайней мере, тот, кто о ней рассказал, а не воспользовался ею втайне), после чего ее быстренько убрали. Но к этому времени 17 % защищенных серверов в интернете были уязвимы – и такими оставались, пока каждый не обновили. Сразу же после этого пришлось обновлять операционные системы; сайты, не знавшие, взламывали их или нет, но знавшие, что их могли и взломать, просили пользователей сменить пароли; правительство Канады вынуждено было отключить сайт налоговой, когда кто-то (раньше, чем уже известный баг исправили) успел украсть сотни номеров социального страхования. В «Форбс» баг назвали «худшей уязвимостью (по крайней мере, по потенциальному воздействию), найденной с того момента, как в интернете появился коммерческий трафик данных».Heartbleed появился случайно
.Вспомним Томаса Миджли, с которым мы встретились еще во введении. Он ухитрился дважды поставить под угрозу существование всей человеческой жизни на планете – по ошибке
. Представьте, чего добьются достаточно мотивированные разработчики ПО, если постараются[80].
– А-ХА! ТОЛЬКО НЕКОТОРЫЕ СТРАНЫ УЖЕ ГОЛОСУЮТ И ЧЕРЕЗ КОМПЬЮТЕР, И ЧЕРЕЗ ИНТЕРНЕТ! ТЕПЕРЬ ТЕБЕ ПРИДЕТСЯ ПРИЗНАТЬ, ЧТО ЭТО БЕЗОПАСНО, ТЫ, НЕГОДЯЙ!
Это правда: в некоторых странах компьютеры собирают голоса, а в некоторых даже можно голосовать онлайн. Но это говорит не о безопасности, а о популярности
– по крайней мере, у тех, кто уже находится у власти и хотел бы ее, видимо, сохранить. Некоторые страны подстраховались, установив ограничения на компьютерное голосование. В Швейцарии голосовать в Сети могут только 10 % электората. (Предположительно – чтобы уменьшить воздействие на выборы, хотя при закрытых выборах зараженные компьютеры могут изменить результат.) Франция разрешила интернет-голосование в 2003 году, но приостановила его в 2017 году из соображений безопасности. В Германии были пробные попытки в начале 2000-х, но они прекратились в 2009 году с заявлением, что из-за неспособности широкой публики понять исходный код компьютеров процедура неконституционна[81]. А в 2019 году даже Швейцарии пришлось приостановить интернет-голосование, когда была обнаружена уязвимость, позволявшая незаметно манипулировать голосами.Но не беспокойтесь, суперзлодеи: есть еще места вроде Бразилии (компьютерное голосование работает с 1996 года), Индии (электронное голосование работает с 1998 года, хотя в 2014 году после обвинений в мошенничестве ввели и бумажные бюллетени) и США (в некоторых штатах принуждают граждан голосовать на компьютере без бумажной копии и нельзя проверить исходный код, все равно созданный компилятором, который разработчики компьютера, скорее всего, написали не сами[82]
). Если ищете для практики страну попроще, то здесь для вас уже проделали почти всю подготовку.
НЕДОСТАТКИ