Содержание

Как профессор Вудворд разгадал криптозагадки GCHQ

В сентябре 2013 года британская разведслужба GCHQ объявила очередной конкурс в интернете. Всем предлагалось поломать голову над несколькими криптографическими задачами. А тех, кто удачно с ними справится, приглашали на собеседование в офис GCHQ.

«Ваша новая задача — найти и разгадать 5 кодов, которые мы спрятали в Интернете. Те, кто примет вызов и найдёт все коды, сможет присоединиться к элитному сообществу людей с некоторыми из конкретных навыков, которые мы ищем в GCHQ».

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

Задача №1

Головоломка по подбору персонала GCHQ начиналась на странице с объявлением о конкурсе: https://canyoufindit.co.uk.

Первая головоломка находилась на стартовой странице и содержала ряд символов:

AWVLI QIQVT QOSQO ELGCV IIQWD LCUQE EOENN WWOAO
LTDNU QTGAW TSMDO QTLAO QSDCH PQQIQ DQQTQ OOTUD
BNIQH BHHTD UTEET FDUEA UMORE SQEQE MLTME TIREC
LICAI QATUN QRALT ENEIN RKG

Для взломщика кода есть несколько особенностей, которые в этом тексте сразу бросаются в глаза:

  1. Текст представлен группами по пять символов. Это на самом деле такая историческая традиция – разбивать шифруемый текст на группы. Во-первых, становится непонятна длина зашифрованных слов, во-вторых, просто удобно. Если бы не было пробелов, было бы легко сделать ошибку во время записи сообщения (и при шифровке и при дешифровке). В таком формате по пять символов выдавала сообщения шифровальная машина Энигма.
  2. Для тех, кто имел ранее дело с шифрами, представляет интерес количество символов. Здесь у нас есть 143 символа, которые являются произведением двух простых чисел: 11 и 13. Это прям такая хорошая подсказка. Значит, символы можно попробовать расположить в виде прямоугольника 11×13 символов.
  3. В тексте встречается большое количество букв «Q». Это довольно необычно, потому что Q — редко используемая буква в английском языке. Если предположить, что сообщение на английском языке, то Q, вероятно, выполняет какую-то специальную функцию. Такие редко используемые символы часто используются в качестве пробелов-разделителей слов. Таким образом, при расшифровке можно игнорировать пробелы, разделяющие группы из пяти букв, и предположить, что Q — это настоящие пробелы между словами.

Так как это самая первая задачка, то предполагаем, что это что-то несложное, например, шифр перестановки. Попробуем уместить эти 143 символа в табличку 11×13 или 13×11, удалить все «пробельные» символы Q и посмотреть, что получится.

В первой табличке ничего внятного не получилось, а вот во второй табличке можно увидеть вполне узнаваемые слова в столбцах. В результате, прочитав буквы по столбцам, получим сообщение:

A COMPUTER WOULD DESERVE TO BE CALLED INTELLIGENT IF IT COULD DECEIVE A HUMAN INTO BELIEVING THAT IT WAS HUMAN WWWDOTMETRODOTCODOTUKSLASHTURING

Итак, мы действительно столкнулись с шифром перестановки. У него много форм, но здесь используется одна из самых простых – транспонирование. У перестановочных шифров долгая история, и до электронных устройств шифрования он и его варианты были основой для многих секретных сообщений.

Последнее самое длинное слово начинается на WWW и имеет внутри комбинации DOT («точка») и SLASH («слэш» :-)). Поэтому логично предположить, что это URL, а именно www.metro.co.uk/turing. В результате получаем следующий пункт в квесте, плюс ответ на первую подсказку, а именно: «turing».

Задача №2

На следующем шаге открывалась страничка, на которой можно было скачать файл с названием «comp1.key».

Судя по расширению это был какой-то ключ шифрования. Если его загрузить и открыть в текстовом редакторе, то можно было увидеть следующий код:

-----BEGIN RSA PRIVATE KEY-----
MIIC2gIBAAKBgDfABK8+joDLdbFTDJ+y3PTTzkqCi1L2qEjgxdg1iyZshJTeKUck
SYVyKBeOBtB3FwwqXVa6iNEHJeLFewFE6ulEOIcatVp11Zg0ibMfnqTivbd6t8/z
3KzqrFksg9xQiicMactmTqFkm8ro5ODc2NTQzMjEwLy4tLCslBOCOVHxAgMBAAEC
gYATW12FB2BtQbecmSxh6rWjYENZRZhgdvoZS8oF9xlYfwdNtRF5/RR1/BwFia++
BAuBktgTu/KzORsjcNPzrd0uTCbTG6hW8YPK2ROVOOeAMHek8Nl3+SW5wdePKuWw
MdjDDjqxXDns+ZC1d2Cpz5V+x+2znOYL0bsEKei0sWl7LQKBgDfABK8+joDLdbFT
DJ+y3PTTzkqCi1L2qEjgxdg1iyZshJTeKUckSYVyKBeOBtB3FwwqXVa6iNEHJeLF
ewFE6uhVSior5HGPArFhsOQ0v9ob1NCV7P8M99qN4XplmX/xs05HgQCVh9aMWtio
pKCcmJSQjIiEgHx4dHBsU9JB+TvkAkB3dy53aHRzaXNpbGd1b2VjdHNyZWhzcmku
ZW9jdS4va2xidGVoY2VsIHkgICAgICAgICAgICAgICAgICAgIAuPAkATpSSd/C5S
IEAbUPk+ZYAdt7OYVzay7ViAiaukhkt+/sJG+m8GmHnAKyLf9ohx3/aIcd/2iHHf
9ohx3/ayirJPAkAIefJYEpdAoRjJQCHPGUpOVjLiyQMyPcnsutG+ctAGGU8lZTDU
yUim9V7iwqTE4sKkxOLCpMTiwqTE4sKkxOFNAoGAFInzTsAOkauW3crd1XfxMhxi
tUkapdQqlwvFhZuouNIybfEOfW6WkjtghBDyqf50cEFWXMJ7Vk8mr6cwTosPvYKU
VXKUCblretLTeU95TlbkprizPky++5b7pQuSi3mpLMi+6VgvcjTthfXPYNg2JjJp
gmteC4felYL/2FTAmT8=
-----END RSA PRIVATE KEY-----

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

А раз кроме ключа ничего нет, нужно попытаться извлечь информацию из самого ключа, т.к. в килобайте текста можно зашифровать и спрятать очень многое.

Как принято при передаче ключей, файл кодируется с использованием Base64. Если в текстовом редакторе удалить верхний и нижний колонтитулы (—–BEGIN RSA PRIVATE KEY—– и —–END RSA PRIVATE KEY—–) и попробовать скормить оставшийся текст какому-нибудь онлайн-декодеру, например http://www.base64decode.org/, то получим вот что:

Самое простое (и, наверное, единственно правильное в этой ситуации) решение — применить метод «пристального вглядывания» на предмет нахождения в этом декодированном тексте чего-нибудь необычного.

И внезапно это необычное находится. Среди мешанины символов видим что-то узнаваемое: ww.whtsisilguoectsrehsri.eocu./klbtehcel y

Снова очень похоже на URL, только символы как-то немного перепутаны. Если попробовать в каждой паре символов поменять их местами, то получим уже совсем другое дело: www.thisisgloucestershire.co.uk/blechley .

Конечно же, это следующий URL, а «blechley» — следующий ответ для главной страницы.

Задача №3

На новой странице видим новую порцию символов:

2910404C21CF8BF4CC93B7D4A518BABF34B42A8AB0047627998D633E653AF63A873C\
8FABBE8D095ED125D4539706932425E78C261E2AB9273D177578F20E38AFEF124E06\
8D230BA64AEB8FF80256EA015AA3BFF102FE652A4CBD33B4036F519E5899316A6250\
840D141B8535AB560BDCBDE8A67A09B7C97CB2FA308DFFBAD9F9

Вот теперь у нас появился текст, к которому можно применить ранее скачанный ключ. Вернёмся к нашему ключу. Для начала выполним команду

openssl.exe RSA –in comp1.key –text

и она выведет следующее:

Теперь нужна какая-нибудь утилита для расшифровки RSA, например, эта. С её помощью можно декодировать имеющийся текст..

Для последовательности в блоке Prime1 получится вот такая декодированная шестнадцатеричная строка:

20 20 20 20 20 20 20 20 77 77 2e 77 68 74 72 65 67 65 73 69 65 74 2e 72 6f 63 75 2e 2f 6b 6e 65 67 69 61 6d 30 32 33 31 20 20 20 20 20 20 20 20

Если открыть шестнадцатеричный редактор и снова применить «метод вглядывания», то вновь увидим веб-адрес, в котором соседние пары «свопнуты»:

Поменяем местами пары символов в строке ww.whtregesiet.rocu./knegiam0231 и получим URL-адрес: www.theregister.co.uk/enigma2013 Следовательно, мы получили новый адрес и, следуя шаблону, где последняя часть URL-адреса является ответом, получаем и следующий код — Enigma2013. Энигма – это такая немецкая переносная военная шифровальная машина, активно применявшаяся фашистами во время войны, и над взломом шифров которой как раз активно трудились сотни человек в том самом Блетчли-Парке из предыдущей задачи. Ну а 2013 – год, в котором проводился набор рекрутов в GCHQ.

Задача №4

На следующей странице представлено кое-что новое:

Новый элемент — картинка. Любой, кто бывал в Блетчли-парке, узнает машину, изображенную на картинке. Кто не знал, будет вынужден гуглить. На картинке Колосс – первый компьютер, который использовался для взлома кода машины Лоренца во время Второй мировой войны.

Как и раньше, возьмем этот файл изображения и откроем его в нашем шестнадцатеричном редакторе:

Сначала это выглядит как стандартный файл jpeg с обычным заголовком (видим в начале символы …JFIF…). Однако, после «пристального вглядывания» можно заметить, что внутри картинки есть ещё одна комбинация символов JFIF, то есть второй заголовок. А вот это уже ненормально. Кто-то вручную «склеил» две картинки, добавив второе изображение в конец основного. При просмотре, естественно, показывается только первая.

С помощью нашего любимого шестнадцатеричного редактора очень просто удалить всё до второго заголовка jpeg, сохранить отредактированный файл и попытаться открыть этот только что укороченный файл.

И вот что мы увидим:

Как и прежде, получили очередное кодовое слово (Colossus) и следующий адрес. Можно было, конечно, сразу, увидев на картинке компьютер Colossus, так и написать. И даже не узнать, что там было что-то не так с картинкой :)

Задача №5

головоломка GCHQ

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

Конец

Ну вот, собственно, и всё. Квест пройден. Осталось ввести полученные кодовые слова (ответы) в соответствующие поля на форме:

Почему-то они все должны вводиться с большой буквы, что не очевидно. Возможно, что пропускало и независимо от регистра.

После корректного ввода показывалась страничка с поздравлением и возможностью предоставить GCHQ свои контактные данные (если прошедший квест хотел, чтобы его рассмотрели в качестве кандидата на приём на работу в GCHQ).

Сейчас все эти URL уже недоступны, особого смысла пытаться всё это повторить нет, поэтому я и не делал на них гиперссылки активными. Но по этому прохождению, описанному выше, можно прикинуть, какой образ мышления необходим для работы в области безопасности связи и прочих областях, которыми занимается британская разведка. Для наших потенциальных IT-специалистов и просто любителей головоломок это тоже будет полезно.

Я уверен, что изучение подобных квестов расширяет навыки и тренирует мозги для решения более грандиозных задач!

Ссылки