Читаем Искусство вторжения полностью

Любой компьютерный инженер смог бы написать программу и сделать то, что сделали мы, поняв, что от него требуется. Самой сложной частью работы было создание быстродействующего алгоритма, чтобы всего за несколько секунд вы могли понять, что происходит; если создавать такой алгоритм недостаточно тщательно, он мог работать несколько часов перед тем, как выдать решение.

Мы все были хорошими программистами, и работа была существенной частью нашей жизни, поэтому мы все сделали правильно. Но это было совсем не просто».

Я помню, как аналогичную ошибку сделал программист компании Norton (до того, как Symantec купил их), разрабатывавший продукт Diskreet — приложение, которое дает пользователю возможность создавать шифрованные виртуальные драйвы. Разработчики некорректно построили алгоритм — а может, даже сделали это намеренно, и это привело к уменьшению длины ключа шифрования с 56 до 30 бит. Государственный стандарт шифрования использует 56-битный ключ, который считается практически не взламываемым, поэтому Norton гарантировал своим пользователям ощущение защищенности. Из-за ошибки программистов на самом деле данные пользователя шифровались при помощи ключа в 30 бит, а не 56. Даже в те годы 30-битный ключ можно было взломать простым «методом грубой силы» (так называется метод последовательного перебора вариантов — прим. переводчика). Любой человек, используя этот продукт, ошибочно думал, что он находится в полной безопасности: атакующий вполне мог сломать ключ шифрования достаточно быстро и получить доступ к данным пользователя. Примерно такую же ошибку обнаружили наши ребята и в программе игрального автомата.

Параллельно с работой над компьютерной программой, которая позволила бы им победить новый игральный автомат, ребята заставляли Алекса думать над новой моделью поведения, чтобы не приходилось постоянно бегать к телефону. Ответом стала страница из книги «Endaemonic Pie» — карманный компьютер. Алекс разработал систему, сделанную из миниатюрного компьютера, который Майк и Марко отыскали в каталоге, В этой системе управляющая кнопка была упрятана в ботинок, а для приема сигнала использовался виброзвонок от сотового телефона. «Нам пришлось немало поработать над тем, чтобы построить систему на основе маленького чипа и маленькой памяти», — рассказывает Алекс. « М ы создали прекрасную эргономичную систему, которая помещалась в ботинке». Вероятно, под словом «эргономичный» он подразумевает то, что его устройство было настолько маленьким, что не натирало ногу при ходьбе!

НОВАЯ АТАКА

Началась отработка новой схемы работы, и это был достаточно нервный процесс. Они избавились от необходимости бегать к телефону перед каждым выигрышем. Но даже после многочисленных тренировок в домашних условиях, «работа» в реальных условиях происходит перед огромной аудиторией, существенная часть которой очень подозрительно к вам относится.

На этот раз программа была разработана так, что ребята могли сидеть у автомата, не отходя от него, осуществляя целую серию небольших менее подозрительных выигрышей. Алекс и Майк вспоминают некоторые непростые моменты в процессе «работы».

Алекс: «Я обычно помещал свой компьютер в корпус маленького транзисторного приемника. Провод от него шел через носок в ботинок к управляющей кнопке».

Майк: «Я приматывал провод к лодыжке. Мы изготавливали переключатели из небольших кусочков материала, который используется для изготовления интегральных схем. Эти переключатели были размером два на два сантиметра, с небольшой кнопкой. Затем мы вырезали такого же размера дыру в стельке и помещали переключатель в ботинок. Он доставлял неудобство только в том случае, если вам приходилось целый день носить его — мог натереть пальцы».

Алекс: «Итак, мы входили в казино и старались выглядеть максимально спокойно, а действовать так, как будто никаких проводов в наших ботинках не было. Мы подходили к автомату и начинали играть. Для передачи сигналов у нас была разработана система, аналогичная азбуке Морзе. Мы начинали играть и передавали значения выпавших карт при помощи кнопки в ботинке.

С и г н а л от э т о й кнопки ш е л в компьютер, лежащий в кармане. Д л я точного определения места, в котором находился генератор случайных чисел, надо было дождаться выброса восьми карт. П я т ь карт автомат выбрасывал для начала игры, а следующие три мы получали, попросив его заменить три карты для продолжения игры».

Майк: «Наш код для передачи информации о выпавших картах был двоичным, кроме того, он использовал технологию сжатия информации под названием код Хафмана. Например, длинный и короткий сигнал означал один-ноль, то есть два в двоичной системе. Длинный-длинный означал три и т.д. Для обозначения любой карты требовалось не более трех нажатий».

Перейти на страницу:

Похожие книги

1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих
1С: Управление небольшой фирмой 8.2 с нуля. 100 уроков для начинающих

Книга предоставляет полное описание приемов и методов работы с программой "1С:Управление небольшой фирмой 8.2". Показано, как автоматизировать управленческий учет всех основных операций, а также автоматизировать процессы организационного характера (маркетинг, построение кадровой политики и др.). Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, формировать разнообразные отчеты, выводить данные на печать. Материал подан в виде тематических уроков, в которых рассмотрены все основные аспекты деятельности современного предприятия. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов. Все приведенные в книге примеры и рекомендации основаны на реальных фактах и имеют практическое подтверждение.

Алексей Анатольевич Гладкий

Экономика / Программное обеспечение / Прочая компьютерная литература / Прочая справочная литература / Книги по IT / Словари и Энциклопедии