Защита для тех, кто делает софт и не только

Удаленное обновление памяти

Какие существуют способы поддержания системы защиты в актуальном состоянии?

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

Что можно предусмотреть на первых этапах проектирования системы защиты?

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

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

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

Именно для таких случаев предусмотрена система доверенного удаленного программирования электронных ключей (Trusted Remote Update, TRU).

Возможности Trusted Remote Update

Что может захотеть разработчик, планирующий перепрограммировать удаленно большое количество ключей?

Открытая передача и защищенность

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

Данные TRU можно передавать по обычной электронной почте, по открытым каналам связи. Каналом связи в данном случае можно считать всю цепочку от USB интерфейса, к которому подключен ключ конечного пользователя, до компьютера, на котором собственно будут подготовлены данные для удаленного программирования.

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

Персонализация и однократное использование

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

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

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

Автоматизация и стандартизация

Процедура удаленного программирования должна быть автоматизирована и выполняться стандартными средствами, без использования дополнительных утилит.

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

Поддержку Guardant TRU API можно внедрить и в свое приложение, если есть необходимость дополнительной защиты помимо той, что обеспечивается утилитой TRU для конечных пользователей, поставляемой в составе ПО Guardant.


Программы для экологов