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

Защита протокола обмена

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

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

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

Для каждого сеанса работы с электронным ключом вырабатывается новый ключ шифрования (потому он и называется сеансовым), благодаря чему поток данных всегда будет отличаться. Более того, на протяжении сеанса периодически вырабатывается новый ключ шифрования, и способ шифрования изменяется даже на протяжении одного сеанса. Благодаря этому запись и воспроизведение разных сеансов работы с электронным ключом теряет смысл.

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


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