Шрифт:
Дабы сделать задачу по подтверждению подлинности снимка более определённой в итоговом результате, а также чтобы в целом упростить процесс верификации фотодокументов, ведущие производители фотооборудования, такие как Canon и Nikon, некоторое время тому назад разработали фирменные системы аутентификации цифровых изображений.
Работая независимо друг от друга, Canon и Nikon встроили в топовые модели своих фотокамер специальный модуль цифровой подписи, а в комплект к нему предоставляют клиентам дополнительное программное обеспечение для проверки подлинности снимков (так называемое validation software).
Благодаря этой технологии теперь каждая фотография криптографически подписывается цифровой сигнатурой внутри камеры и непосредственно в момент съёмки. А последующая процедура верификации - с помощью установленного на компьютере специального ПО - позволяет пользователям снимков убедиться, действительно ли фотография осталась неизменной или же была подвергнута модификациям, поскольку малейшие изменения в битах файла неизбежно должны отражаться в несоответствии значений цифровой подписи.
И Canon, и Nikon на рынке представили свои системы верификации снимков как вполне серьёзный продукт, предназначенный для доказательства подлинности фотодокументов в работе таких структур, как правоохранительные органы и прочие правительственные ведомства, страховые компании, корпорации, новостные агентства и так далее. В реальности, однако, дела с надёжностью технологии обстоят далеко не так красиво - если ознакомиться с результатами исследований известной российской фирмы ЭлкомСофт, специализирующейся на быстром взломе/восстановлении паролей и преодолении всевозможных систем защиты информации.
Как это часто бывает, сами компании Canon и Nikon предпочли не публиковать никаких сведений о внутреннем устройстве своих систем аутентификации снимков, избрав хоть и давно скомпрометированный, но по сию пору очень популярный среди корпораций подход под общим названием Security Through Obscurity, или "Безопасность через неясность". Иначе говоря, конкретные алгоритмы, применяемые этими изготовителями в процедурах верификации, считаются неизвестными, поэтому специалистам ЭлкомСофта пришлось для начала их восстанавливать методами обратной инженерной разработки.
В обоих случаях итоговым результатом такого восстановления и последующего анализа стало обнаружение в системах фатальных слабостей. Из-за этих слабостей, как продемонстрировали в ЭлкомСофте, потенциальные злоумышленники без проблем могут манипулировать изображением на фотографиях как угодно, а затем генерировать к подделке такую цифровую подпись, которая успешно проходит все предусмотренные процедуры по верификации подлинности снимка. Чтобы сделать этот результат подоходчивее для масс, в ЭлкомСофте изготовили целую галерею забавных и заведомо сфабрикованных фотоподделок, которые при этом подтверждаются как подлинные фирменными программами проверки.
Система фирмы Canon была тотально скомпрометирована специалистами ЭлкомСофта ещё в ноябре прошлого года. Теперь же очередь дошла до Nikon, так что с подробностями о деталях проведённого анализа удобнее рассказать на этом, совсем свежем примере.
В случае системы Nikon, как показали исследования ЭлкомСофта, собственно данные снимка и сопровождающие его метаданные обрабатываются независимо - как два отдельных файла - и прогоняются через хеш-функцию SHA-1. Получаемые на выходе два стошестидесятибитных хеш-значения затем шифруются с помощью секретного ключа по стандартному алгоритму RSA-1024, в результате чего генерируется цифровая сигнатура снимка, составленная из двух частей. То есть на самом деле вычисляются две подписи длиной по 1024 бита (128 байт), которые добавляются в служебную часть файла (EXIF MakerNote tag 0×0097), в раздел параметров цветового баланса.
Впоследствии, когда подлинность фотоснимка Nikon проверяют с помощью фирменной программы Image Authentication Software, то эта программа сама вычисляет два хеш-значения SHA-1, как это делалось и в фотоаппарате. А затем с помощью известного открытого ключа программа расшифровывает те две сигнатуры, что хранятся для проверки в файле. Если фотография подлинная, то вычисленные программой хеши и значения, расшифрованные из снимка, должны полностью совпасть. Если же совпадения нет, значит, фотография подвергалась манипуляциям.
То есть в теории, казалось бы, обеспечена достаточно простая и при этом эффективно защищённая проверка. Однако на практике, увы, всё получилось не так красиво.
Фатальной уязвимостью системы стало то, что секретный криптографический ключ, хранимый внутри фотокамеры и используемый для формирования сигнатур снимков, не защищён должным образом. По этой причине аналитики ЭлкомСофта (а значит, и всякие грамотные злоумышленники) могут его выявлять в памяти аппарата, извлекать и далее использовать для фальсификации. Попросту говоря, при наличии такого секретного ключа уже нет никаких проблем с генерацией абсолютно валидных цифровых сигнатур для как угодно видоизменённых фотографий. А это соответственно означает, что система защиты Nikon Image Authentication System полностью скомпрометирована и никакого доверия к ней - в её нынешнем виде - быть не может...
Когда эту унылую новость стали обсуждать в околокриптографических блогах и форумах, то один из основополагающих (и довольно наивных) вопросов звучал примерно так: "Ну а в принципе возможно ли вообще надёжно и безопасно реализовать всё это дело как-то иначе, без хитростей типа "безопасность через неясность"? Ведь секретный ключ в любом случае должен быть каким-то образом доступен для фотокамеры, а если это так, то его соответственно можно и считывать из оперативной памяти или откуда-то ещё?"