Ключи с таймером.Некоторые производители аппаратных ключей предлагают модели, имеющие встроенный таймер. Но для того, чтобы таймер мог работать в то время, когда ключ не подключен к компьютеру, необходим встроенный источник питания. Среднее время жизни батареи, питающей таймер, составляет 4 года, и после ее разрядки ключ перестанет правильно функционировать. Возможно, именно из-за сравнительно короткого времени жизни ключи с таймером применяются довольно редко. Но как таймер может помочь усилить защищенность?
Ключи HASP Time предоставляют возможность узнавать текущее время, установленное на встроенных в ключ часах. И защищенная программа может использовать ключ для того, чтобы отследить окончание тестового периода. Но очевидно, что эмулятор позволяет возвращать любые показания таймера, т. е. аппаратная часть никак не повышает стойкость защиты. Хорошей комбинацией является алгоритм, связанный с таймером. Если алгоритм может быть деактивирован в определенный день и час, очень легко будет реализовывать демонстрационные версии программ, ограниченные по времени.
Но, к сожалению, ни один из двух самых популярных в России разработчиков аппаратных ключей не предоставляет такой возможности. Ключи HASP, производимые компанией Aladdin, не поддерживают активацию и деактивацию алгоритмов. А ключи Sentinel SuperPro, разработанные в Rainbow Technologies, не содержат таймера.
Ключи с известным алгоритмом.В некоторых ключах программисту, реализующему защиту, предоставляется возможность выбрать из множества возможных преобразований данных, реализуемых ключом, одно конкретное преобразование. Причем подразумевается, что программист знает все детали выбранного преобразования и может повторить обратное преобразование в чисто программной системе. Например, аппаратный ключ реализует симметричный алгоритм шифрования, а программист имеет возможность выбирать используемый ключ шифрования. Разумеется, ни у кого не должно быть возможности прочитать значение ключа шифрования из аппаратного ключа.
В такой схеме программа может передавать данные на вход аппаратного ключа и получать в ответ результат шифрования на выбранном ключе Но тут возникает дилемма. Если в программе отсутствует ключ шифрования, то возвращаемые данные можно проверять только табличным способом, а значит, в ограниченном объеме. Фактически имеем аппаратный ключ с неизвестным программе алгоритмом. Если же ключ шифрования известен программе, то можно проверить правильность обработки любого объема данных, но при этом существует возможность извлечения ключа шифрования и построения эмулятора. А если такая возможность существует, противник обязательно попытается ею воспользоваться.
Так что аппаратное выполнение симметричного алгоритма шифрования с известным ключом не дает ничего нового с точки зрения защиты. Но есть еще и асимметричные алгоритмы.[6]
Когда ключ реализует асимметричный алгоритм шифрования, программисту не обязательно знать используемый секретный ключ. Даже можно сказать, что отсутствие возможности создать программную копию аппаратного асимметричного шифрующего устройства не сужает, а расширяет область возможных применений, т.к. сокращается перечень возможных способов компрометации секретного ключа. В любом случае, для проверки того, что аппаратный ключ присутствует и правильно выполняет вычисления, достаточно знать открытый ключ.
Эта схема не может быть обойдена только эмуляцией, т. к. для построения полного эмулятора требуется по открытому ключу шифрования вычислить секретный ключ. А это математически сложная задача, не имеющая эффективного решения.
Но у противника остается возможность подмены открытого ключа в программе, и если такая подмена пройдет незамеченной, построить программный эмулятор не составит труда. Так что асимметричные алгоритмы, реализованные на аппаратном уровне, способны обеспечить некопируемость защищенной программы, но только в том случае, если удастся предотвратить подмену открытого ключа шифрования.
Ключи с программируемым алгоритмом.Очень интересным решением с точки зрения стойкости защиты являются аппаратные ключи, в которых может быть реализован произвольный алгоритм. Сложность алгоритма ограничивается только объемом памяти и системой команд ключа.
В этом случае для защиты программы важная часть вычислений переносится в ключ, и у противника не будет возможности запротоколировать правильные ответы на все запросы или восстановить алгоритм по функции проверки. Ведь проверка, как таковая, может вообще не выполняться - результаты, возвращаемые ключом, являются промежуточными величинами в вычислении какой-то сложной функции, а подаваемые на вход значения зависят не от программы, а от обрабатываемых данных.
Главное - это реализовать в ключе такую функцию, чтобы противник не смог по контексту догадаться, какие именно операции производятся в ключе.
2.2. Биометрические средства защиты.
Биометрика – это научная дисциплина, изучающая способы измерения различных параметров человека с целью установления сходства или различий между людьми и выделения одного конкретного человека из множества других людей, или, другими словами, – наука, изучающая методики распознавания конкретного человека по его индивидуальным параметрам.
Современные биометрические технологии могут применяться и применяются не только в серьезных режимных учреждениях, но и в повседневной жизни. Зачем нужны смарт-карты, ключи, пароли и другие подобные вещи, если они могут быть украдены, потеряны, забыты? Новое информационное общество требует от нас запоминания множества пин-кодов, паролей, номеров для электронной почты, доступа в Интернет, к сайту, к телефону… Список можно продолжать практически бесконечно. На помощь, пожалуй, сможет прийти только ваш уникальный личный биометрический пропуск – палец, рука или глаз. А во многих странах – и идентификатор личности, т. е. чип с вашими индивидуальными биометрическими параметрами, уже зашитый в документах, удостоверяющих личность.[7]
Биометрическая система, независимо от того, на какой из технологий она построена, работает по следующему принципу: сначала записывается образец биометрической характеристики человека, для большей точности часто делается несколько образцов. Собранные данные обрабатываются, переводятся в цифровой код.
При идентификации и верификации в систему вводятся характеристики проверяемого человека . Далее они оцифровываются, а затем сравниваются с сохраненными образцами. По некоторому алгоритму система выявляет, совпадают они или нет, и выносит решение о том, удалось ли идентифицировать человека по предъявленным данным или нет.
Биометрические технологии
В биометрических системах могут быть использованы физиологические или поведенческие характеристики. К физиологическим относятся отпечатки пальцев, форма кисти руки, характеристики лица, рисунок радужной оболочки глаза. К поведенческим характеристикам можно отнести особенности или характерные черты поведения человека, приобретенные или появившиеся со временем, это могут быть динамика подписи, тембр голоса, динамика нажатия на клавиши и даже походка человека. Биометрические системы оценивают по двум основным параметрам: ошибкам первого рода — вероятность допуска «чужого» и второго рода – вероятность в отказе «своему». Современные системы могут обеспечивать вероятность ошибки первого рода в районе 0,001%, второго – около 1-5%.
Одним из важнейших критериев наряду с точностью идентификации и верификации при разработке систем является «дружелюбность» каждой из технологий. Процесс должен быть быстрым и простым: например, встать перед видеокамерой, сказать несколько слов в микрофон или дотронуться до сканера отпечатков пальцев. Основным преимуществом биометрических технологий является быстрая и простая идентификация без причинения особых неудобств человеку.