Современные технологии предлагают различные варианты реализации аппаратных ключей, претендующих на роль универсальных идентификаторов пользователя в компьютерных системах
Практически все решения защиты информационных систем строятся на базе паролей, то есть некой информации, известной только легальному пользователю. Чем сложнее пароль, тем надежней защита. Однако сложный пароль трудно запомнить, да и набирать длинные пароли не всегда удобно — особенно если их несколько. А ведь у пользователя может быть пароль для входа в корпоративную сеть, для работы с базой данных, для выхода в Internet, для бесплатной почтовой службы... Правила безопасности запрещают использовать одинаковые пароли для разных систем. И это правильно, поскольку, если вы определили один и тот же пароль для бесплатной почты (его набор легко перехватить) и для удаленного входа в корпоративную сеть, считайте, что вы указали злоумышленнику путь к тайнам своей организации.
Чем больше компьютерных систем задействует человек, тем сложнее ему сохранить в своей памяти все пароли и правильно их применять. Что же делать? Для решения проблемы можно использовать аппаратный идентификатор, например смарт-карту или аппаратный ключ. Смарт-карты изначально разрабатывались для идентификации пользователей, в то время как аппаратные ключи в основном предназначались для защиты программного обеспечения от копирования. Сейчас появились версии аппаратных ключей, которые претендуют на роль универсальных идентификаторов пользователя в компьютерных системах — своего рода электронных паспортов.
Немного истории
Собственно, именно паспорта, а точнее всевозможные удостоверения и послужили толчком для создания электронных идентификаторов. Сначала это были пластиковые карточки с магнитной лентой, «таблетки» Touch Memory, индивидуальные устройства идентификации и другие способы простого указания персональных кодов. Все они сообщали системе индивидуальный номер пользователя. Такие системы благодаря их простоте используются сегодня практически везде — от домофонов до Internet-кафе. Однако обмануть такой механизм идентификации легко — перехвати пароль и запрограммируй его на аналогичном носителе.
Современные аналоги простых идентификаторов — радиочастотные идентификаторы, карточки со штрих-кодом и другие более удобные для пользователя технологии. Их обычно применяют в охранных системах, поскольку пользоваться ими несложно — достаточно поднести такой идентификатор к считывателю. В простых, хотя и массовых системах с низкой стоимостью ошибки использование более дорогих технологий неоправданно. Мы же подробно остановимся на более сложных и надежных способах идентификации — смарт-картах и аппаратных ключах.
Развитие аппаратных ключей началось с технологии Touch Memory — «таблеток» с памятью, используемых для хранения определенного идентификатора. Первый аппаратный ключ — это реализация технологии Touch Memory для подсоединения к LPT-порту компьютера. В его память записывался идентификационный код. Однако оказалось, что содержимое такой памяти легко прочитать, а следовательно, и обойти защиту. Поэтому следующим этапом развития аппаратных идентификаторов данного типа стали алгоритмические ключи. В них, кроме собственно памяти, уже имелся процессор, выполнявший определенный, достаточно простой алгоритм. Собственно секретным был именно алгоритм, результаты выполнения которого над случайным числом и служили для идентификации пользователей: на вход ключа подавались данные, которые процессор обрабатывал по своему секретному алгоритму и возвращал обратно. Программа идентификации на основе полученного результата выполняла определенные действия, и если в этой цепочке что-то нарушалось, то система просто переставала работать. В последнее время появились также алгоритмические устройства Touch Memory, но им не просто конкурировать с «портовыми» ключами.
После того как алгоритмы некоторых ключей стали доступны широкой публике, начали появляться криптографические ключи. У них алгоритм общеизвестен, а тайным является набор символов — криптографический «секрет», который хранится в памяти аппаратного ключа. В качестве алгоритмов шифрования производители криптографических ключей использовали уже не собственные доморощенные разработки, а проверенные криптоалгоритмы. Криптографические ключи стали предназначать в основном для шины USB, а не для устаревшего к настоящему времени интерфейса LPT. Алгоритмические же ключи хотя и составляют основную массу продаваемых сейчас ключей, но используются в основном для защиты программ от копирования и плохо приспособлены для решения задач идентификации пользователей.
Альтернативой для USB-ключей являются смарт-карты, которые, кстати говоря, в большинстве своем используют те же самые процессоры. В частности, USB-ключи делаются в соответствии со стандартом PC/SC (ISO 7816/3,4), который разрабатывался для смарт-карт. Однако для пользования смарт-картами необходимо специальное считывающее устройство, стоящее несколько десятков или даже сотен долларов, то есть обходится дороже USB-интерфейса, которым снабжаются сейчас все новые компьютеры. Сами же смарт-карты дешевле USB-ключа. Поэтому в том случае, когда одно считывающее устройство предназначено для нескольких пользователей, смарт-карты могут обойтись дешевле.
Альтернативным аппаратным идентификатором можно считать плату, которая вставляется в компьютер и инициируется паролем пользователя. В частности, таким образом можно использовать плату аппаратного шифрования «Криптон», производимую компанией «Анкад». Она обладает функцией замка, которая блокирует работу компьютера, если пользователь не идентифицирован. Способов идентификации может быть несколько: Touch Memory, смарт-карты, ключевая дискета или USB-ключ. Есть также специальная плата PCMCIA, которую можно применять для идентификации пользователей в мобильных компьютерах. Сейчас предлагается совмещать такие платы с сетевыми адаптерами, а в качестве носителей ключей задействовать USB-ключи, смарт-карты или даже Touch Memory.
Возможности идентификатора
До недавнего времени аппаратные ключи в основном использовались для защиты программного обеспечения от копирования. Однако соответствующий рыночный сегмент ограничен, поэтому их производители активно ищут иные рынки. Одним из решений является их использование в качестве аппаратных идентификаторов, на которых хранятся пароли от других систем и приложений. В защищенной памяти аппаратных идентификаторов удобно хранить пароли, сертификаты и любую другую идентификационную информацию. Они также могут содержать временные ключи шифрования для организации безопасного доступа к корпоративной сети. Альтернативный ключу аппаратный идентификатор — смарт-карта — с самого начала разрабатывался для роли универсального идентификатора пользователя. Известен, скажем, проект общероссийской интеллектуальной карты, которая должна была стать универсальным средством идентификации, то есть фактически электронным паспортом гражданина.
Аутентификация с помощью аппаратного идентификатора имеет три уровня: проверка серийного номера ключа, запись в память и чтение из нее идентификационной информации, доступ к зашифрованной (защищенной) памяти. Первые два способа известны давно и часто использовались в других средствах идентификации. Аутентификация с помощью алгоритма шифрования или хеш-функции выполняется по следующей схеме: подпрограмма идентификации передает процессору идентификатора данные, которые он обрабатывает с использованием секрета, а результат отсылает обратно. Подпрограмма расшифровывает полученные данные, по которым можно судить о том, знает ли пользователь соответствующий секрет или нет, а затем на основе этой информации уже определяет его права доступа к ресурсам. Подобная схема позволяет реализовать взаимную аутентификацию приложения и пользователя: программа идентифицирует пользователя, а пользователь проверяет, действительно ли он работает с той программой, которая ему нужна. Впрочем, для идентификации программы, как правило, аппаратный идентификатор и не нужен — достаточно открытых сертификатов, которые можно проверить в любой момент.
При использовании описанного выше алгоритма аутентификации секрет в открытом виде не передается по общедоступным сетям, что защищает его от перехвата и повторного использования. А поскольку пароли от всех систем хранятся на аппаратном ключе и при его отключении от компьютера становятся недоступными извне, то у злоумышленника нет возможности экспериментировать с паролями. Кроме того, даже в рамках одного сеанса можно менять секреты сколько угодно раз, пользователь этого даже и не заметит, поскольку все временные секреты будут сохраняться на его аппаратном идентификаторе. Быстрая смена ключей шифрования и паролей еще больше усложняет задачу их подбора, поскольку, если злоумышленник перехватит один из них, он все равно не сможет в дальнейшем активизировать его для проникновения в систему.
Аппаратные идентификаторы позволяют удобно и эффективно использовать достаточно сложные пароли для доступа к различным приложениям, а также задействовать сеансовые ключи шифрования для организации защищенных соединений. Пароли можно часто менять и без аппаратного ключа, но вряд ли пользователь согласится делать это самостоятельно, а принудительные процедуры обычно раздражают. Кроме того, есть вероятность, что пользователь не сможет запомнить все пароли и начнет их записывать. А запись паролей упрощает злоумышленнику задачу, поскольку ему достаточно найти место, где эти пароли записаны.
Для повышения надежности защиты некоторые аппаратные ключи выполнены в герметичном, влагостойком и пыленепроницаемом корпусе, что гарантирует защищенность данных от многих внешних воздействий. При разгерметизации корпуса информация из памяти ключа стирается. Это сделано для того, чтобы блокировать копирование или подделку ключа. Таким образом, хранение информации внутри аппаратного идентификатора можно сделать достаточно надежным при предъявлении более жестких требований к его конструктиву. Реализовать те же самые требования для всего компьютера значительно сложнее.
Варианты применения
Аппаратный ключ также можно использовать для проверки целостности системы или отдельного приложения. При этом нужно вычислять электронную подпись для критически важных файлов приложения и хранить ее на ключе. А для обнаружения постороннего вмешательства в приложение достаточно проверить файлы на соответствие подписи, хранимой в идентификаторе. Для этого необходимо, чтобы на аппаратном идентификаторе был реализован алгоритм вычисления хеш-функции или же полноценной электронно-цифровой подписи (ЭЦП). Можно для скорости и легитимности использовать внешнюю плату шифрования, которая будет заниматься вычислением ЭЦП.
Аппаратный идентификатор также подойдет для блокирования работы компьютера. Эта процедура реализуется, например, путем шифрования BIOS и восстановления его в случае необходимости. Если же идентификатор не подключен к системе, то компьютер не сможет пользоваться зашифрованным BIOS. Кроме того, существует специальная микросхема, которая впаивается, например, в сетевую плату и блокирует работу компьютера, если не вставлен ключ. Такой метод, в отличие от первого, эффективен в отношении других операционных систем, а не только Windows. Это избавляет от необходимости хранить пароли внутри операционной системы и позволяет легко останавливать работу системы, просто вынув аппаратный ключ. Основное преимущество USB-ключа перед смарт-картой — отсутствие дополнительного устройства для считывания персональной информации. Кроме того, смарт-карты ориентированы на использование в банковской сфере, и поэтому для их запуска на компьютере существует не очень много приложений. Разработка корпоративного приложения с использованием смарт-карт, скорее всего, будет сходна с созданием небольшой банковской системы, требующей соответствующих расходов.
«Крупных банковских проектов на USB-ключах еще долго не будет, — считает Виталий Беликов, менеджер по развитию бизнеса компании BGS Smart Systems. — В основном это связано с тем, что банкиры просто не поверят в надежность брелка для ключей».
По этой причине такие крупные платежные системы, как Visa или MasterCard, даже не рассматривают возможность использования USB-ключей для банковских платежных систем.
Поэтому даже если появятся проекты по использованию USB-ключей в качестве средства платежа, то они, по всей видимости, останутся локальными. Таким образом, заметно четкое разделение сфер применения USB-ключей и смарт-карт. USB-ключи в основном будут задействованы во внутрикорпоративных и Internet-проектах для хранения идентификационной информации пользователей, а смарт-карты — в глобальных банковских платежных системах. Впрочем, некоторые банки изучают возможность применения USB-ключа для идентификации пользователей в системах Internet-банкинга или «клиент-банк». Такие проекты имеются у «Автобанка», Сбербанка и др. В то же время среди крупных «многобанковских» платежных систем лидерами на долгое время останутся смарт-карты. При этом использование аппаратного идентификатора в смежных областях чревато возникновением различных организационных и технических проблем.
Основное технологическое отличие USB-ключа от смарт-карты в том, что хранимая в памяти USB-ключа информация не привязана жестко к ячейкам памяти, а располагается в специальной файловой системе.
Поэтому один и тот же ключ можно использовать для разных целей: для входа в компьютер, авторизации электронной почты, создания канала виртуальной частной сети (VPN — virtual private network) и многого другого. Таким образом, с помощью одного аппаратного ключа можно комплексно решить задачу идентификации пользователя для всего комплекса офисного программного обеспечения. При этом человек не должен знать пароли и ключи шифрования для всех приложений, достаточно одного пароля — для работы с ключом.
Если сравнивать аппаратные идентификаторы по стоимости, то для USB-ключа она сейчас колеблется в пределах нескольких десятков долларов, в то время как смарт-карта стоит менее 10 долл. за штуку плюс устройство считывания — несколько десятков долларов. Таким образом, по стоимости для одного пользователя порядок цен одинаков. Правда, в комплект всех ключей входят средства разработки приложений, взаимодействующих с ключом, и некоторые уже готовые утилиты — идентификация в Windows и работа с Outlook. В то же время разработка приложений для смарт-карт — достаточно трудоемкое занятие.
Многие современные приложения могут работать с USB-ключом. Возможно, самые популярные из них — программа идентификации пользователей для входа в Windows и модуль для Outlook, который позволяет подписать, отправить и прочитать письмо только с подключенным USB-ключем. Модули работы с почтой разработаны практически всеми производителями ключей и часто поставляются вместе с ключом. Существует также система авторизации пользователей для Lotus Notes.
У компаний «ЭЛВИС+», «ИнфоТекс» и Check Point Software Technologies есть варианты VPN-решений, которые используют USB-ключи для хранения секретных сеансовых ключей шифрования. Кроме того, имеются утилиты, которые позволяют авторизоваться на Web-сервере с помощью ключа и создавать с ним шифрованное соединение по протоколу SSL. Это программное обеспечение может пригодиться создателям информационного содержимого Web-сайтов и порталов предприятий. Разработчики ключей заинтересованы в том, чтобы их продукция взаимодействовала с наибольшим числом программ. Для этого они создают альянсы производителей программного обеспечения, поддерживающих соответствующие ключи. Поэтому количество приложений, работающих с USB-ключом, постоянно растет.
Следует отметить, что для полноценной работы с USB-ключом через Internet нужно решить проблему установки программного обеспечения, которое запускается на клиенте и общается с идентификатором. Если до недавнего времени и ключ, и программное обеспечение поставлялись из одного источника, то в открытой системе, каковой является Internet, нужно правильно учитывать ситуацию, когда ключ поставляется одной компанией, а программное обеспечение — другой. Для устранения этой проблемы компании Eutron и Rainbow поставляют вместе с ключом Java-апплеты и сценарии JavaScript, которые позволяют работать с USB-ключами удаленных клиентов при помощи браузера. Кроме того, драйверы ключей реализуют стандартные API-интерфейсы и с точки зрения операционной системы Windows выглядят как смарт-карты. Однако поэтому использование аппаратных ключей на других платформах сейчас невозможно.
Сейчас на отечественном рынке есть богатый выбор USB-ключей с разными функциональными возможностями от разных производителей. Однако рынок этих устройств еще мал и ситуация на нем меняется достаточно быстро.
Что выбрать?
Характеристики индивидуальных USB-ключей, доступных на российском рынке
Характерис- тика | eToken R2 | WebIdentity | iKey 1000 |
Алгоритм | DESX (ключ120 бит) и MD5 | TripleDES и MD5 | Хеш-функция MD5 |
Размер памяти, Кбайт | 16,32,64 | 8,16,32 | 8,16,32, 64,128 |
Разрядность серийного номера | 64 | 32 | 64 |
Поддержи- ваемые интерфейсы | CryptoAPI, PKCS #11 | CryptoAPI, ActiveX, JavaScript | CryptoAPI, PKCS #11, ActiveX, JavaScript |
Цена розничная, долл. | 33 | 19 | 35 |