Случайное письмо от хедхантера Google выявило уязвимость в ключах DKIM

Случайное письмо от хедхантера Google выявило уязвимость в ключах DKIM

Отправляя электронное письмо математику, будьте осторожны. Мало ли что он обнаружит в байтах служебной информации. Именно это произошло в случае с американским математиком Захари Харрисом (Zachary Harris), которого хедхантер Google хотел пригласить на собеседование.

Вместо того, чтобы вдумчиво вчитаться в текст предложения, Зак обратил внимание на размер ключа DKIM в подписи сообщения. DKIM (DomainKeys Identified Mail) — метод аутентификации отправителя путём проверки цифровой подписи почтового сервера. DomainKeys использует существующую систему DNS для передачи открытых ключей шифрования от каждого домена. Сервер получателя сверяет цифровую подпись отправителя с именем домена, указанного в обратном адресе, сообщает xakep.ru.

Харрис полез проверять DKIM, потому что письмо показалось ему странным. Математик хотел убедиться, что сообщение оригинальное, а не отправлено от какого-то мошенника. И вот здесь он обнаружил, что ключ шифрования, который использовался для генерации цифровой подписи для домена google.com, имеет размер всего лишь 512 бит, что по нынешним меркам маловато. Стандарт вводили в начале 2000-х, когда вычислительные мощности были в десятки раз слабее. Было предусмотрено, что подпись DKIM может быть сгенерирована ключом не только 1024+ бита, но и 384, 512 или 768 бит. Сейчас есть облачные хостинги, где можно недорого купить время вычислительного кластера, что и сделал Харрис. В течение нескольких дней он подобрал оригинальный ключ шифрования, это обошлось ему в $75.

Обладая хорошим чувством юмора, Харрис использовал сгенерированный ключ для отправки письма Ларри Пейджу с адреса электронной почты Сергея Брина, подписал письмо настоящей подписью почтового сервера google.com и добавил свой собственный адрес электронной почты в поле Reply-To.

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

Через пару дней Харрис проверил цифровые подписи google.com и обнаружил, что они увеличились до 1024 бит. Но письма от хедхантера с уведомлением об успешном прохождении теста всё не было. Тогда математик подумал, а может быть, это и не тест вовсе? Он посмотрел на цифровые подписи DKIM, которые используются для других доменов в интернете, и увидел, что Paypal, eBay, Apple, Amazon, Twitter и многие другие сайты, включая несколько банков, используют ключи шифрования 384, 512 или 768 бит, так что потенциальный злоумышленник может подделать обратный адрес письма, используя аутентичную цифровую подпись Apple или Paypal. Открываются богатые возможности для фишинга.

В августе Зак Харрис отправил информацию об уязвимости в CERT, она будет официально опубликована в течение ближайших дней.