Читать «Компьютерра PDA N109 (30.04.2011-06.05.2011)» онлайн - страница 22

Компьютерра

В случае системы Nikon, как показали исследования ЭлкомСофта, собственно данные снимка и сопровождающие его метаданные обрабатываются независимо - как два отдельных файла - и прогоняются через хеш-функцию SHA-1. Получаемые на выходе два стошестидесятибитных хеш-значения затем шифруются с помощью секретного ключа по стандартному алгоритму RSA-1024, в результате чего генерируется цифровая сигнатура снимка, составленная из двух частей. То есть на самом деле вычисляются две подписи длиной по 1024 бита (128 байт), которые добавляются в служебную часть файла (EXIF MakerNote tag 0×0097), в раздел параметров цветового баланса.

Впоследствии, когда подлинность фотоснимка Nikon проверяют с помощью фирменной программы Image Authentication Software, то эта программа сама вычисляет два хеш-значения SHA-1, как это делалось и в фотоаппарате. А затем с помощью известного открытого ключа программа расшифровывает те две сигнатуры, что хранятся для проверки в файле. Если фотография подлинная, то вычисленные программой хеши и значения, расшифрованные из снимка, должны полностью совпасть. Если же совпадения нет, значит, фотография подвергалась манипуляциям.

То есть в теории, казалось бы, обеспечена достаточно простая и при этом эффективно защищённая проверка. Однако на практике, увы, всё получилось не так красиво.

Фатальной уязвимостью системы стало то, что секретный криптографический ключ, хранимый внутри фотокамеры и используемый для формирования сигнатур снимков, не защищён должным образом. По этой причине аналитики ЭлкомСофта (а значит, и всякие грамотные злоумышленники) могут его выявлять в памяти аппарата, извлекать и далее использовать для фальсификации. Попросту говоря, при наличии такого секретного ключа уже нет никаких проблем с генерацией абсолютно валидных цифровых сигнатур для как угодно видоизменённых фотографий. А это соответственно означает, что система защиты Nikon Image Authentication System полностью скомпрометирована и никакого доверия к ней - в её нынешнем виде - быть не может...

Когда эту унылую новость стали обсуждать в околокриптографических блогах и форумах, то один из основополагающих (и довольно наивных) вопросов звучал примерно так: "Ну а в принципе возможно ли вообще надёжно и безопасно реализовать всё это дело как-то иначе, без хитростей типа "безопасность через неясность"? Ведь секретный ключ в любом случае должен быть каким-то образом доступен для фотокамеры, а если это так, то его соответственно можно и считывать из оперативной памяти или откуда-то ещё?"

Лучше всего, наверное, на этот резонный вопрос ответил один из компетентных зарубежных читателей [англоязычного] ЭлкомСофта. По его мнению, произошедшее с Canon и Nikon - это то самое, что обычно получается в ситуациях, когда далёкие от защиты информации компании пытаются реализовать криптографию собственными силами. Тогда как "в данной ситуации недорогим и куда более эффективным решением задачи было бы встраивание в фотокамеру стандартного порта ISO-7816 ID-000, в народе больше известного как слот SIM-карты в мобильных телефонах. На основе такой карточки легко и просто можно реализовать давно проверенный криптостандарт для применения асимметричных схем с секретным-открытым ключом (например, стандарт PKCS#11)".