В самом деле, почему бы, скажем, электронному ключу не стать по совместительству USB-токеном? Ведь это было бы так удобно: покупаешь легальный софт, а тебе к нему в нагрузку — полезный девайс, на котором ты можешь хранить все для доступа в свой домен, на свой любимый веб-сайт, к своему банковскому счету…
И чисто технически все предпосылки к этому есть! Новейшие модели электронных ключей имеют «на борту» алгоритмы асимметричного шифрования, умеют шифровать и подписывать свой трафик и даже позволяют загружать в свою память и выполнять там фрагменты пользовательских программ. Однако что-то все-таки мешает им сделать последний шаг — и стать полноценными USB смарт-картами, то бишь токенами.
Мне видится тому 3 причины. Во-первых, в электронных ключах нет полноценной операционной системы для обслуживания «классической» файловой структуры. Нет, конечно, современные ключи весьма умны. Это уже давно не те архаичные устройства, с которых мы сами начинали году эдак в 94-м! В них теперь сидят мощные управляющие программы, способные решать сложные задачи. Только вот файловой структуры в ее классическом, «компьютерном» понимании они не поддерживают. Это обстоятельство не дает ключам хранить данные и манипулировать ими с той же легкостью, с которой это могут делать смарт-карты. А это, в свою очередь, делает крайне затруднительным выполнение ими специфических «смарт-карточных» задач.
Во-вторых, электронные ключи не поддерживают стандартов (за исключением разве что стандартов USB-шины). Им это не нужно — более того, сама попытка уложить логику их работы в прокрустово ложе стандарта стала бы губительной для него! Ведь раз есть стандарт, значит, он всем известен, а следовательно, задача хакера по взлому защиты сводится к анализу и нахождению уязвимостей самого стандарта. Поэтому и главная «изюминка» электронного ключа — это его самобытность, нестандартность логики его работы. И тут мы приходим к главной причине их отличий. Хоть электронные ключи и токены и решают, по сути, одну задачу, но решают они ее как бы с разных сторон.
Электронный ключ защищает интеллектуальную собственность от ее незаконного использования. Токен защищает информацию от незаконного доступа к ней. Или, с другой стороны, позволяет получать доступ к этой информации только ее законному владельцу. Вот оно, главное, на мой взгляд, отличие! Пользователь для токена — друг (только не забудьте доказать, что вы пользователь). Пользователь для электронного ключа — источник потенциальной опасности (да простят меня уважаемые законопослушные пользователи, я никого не хочу обидеть, но… такова уж правда жизни). Токен работает в дружественной среде (по крайней мере, в том, чтобы она была таковой, кровно заинтересован сам пользователь), являясь вашим компаньоном, пропуском к информации. Электронный ключ работает в среде, априори недружественной, населенной сонмом опасностей — как для самого ключа, так и для защищаемой им программы. Если токен можно сравнить с банковским клерком, всегда готовым выдать вам деньги с вашего банковского счета, то электронный ключ — это охранник банка, всегда готовый отразить нападение. В лучшем случае ему обеспечены косые взгляды законопослушного пользователя, раздраженного недоверием к нему со стороны производителя софта. В худшем же… Ну, вы понимаете, что там может быть в худшем случае.
Они только внешне одинаковые. На самом же деле они — носители диаметрально противоположных концепций существования! Именно поэтому они вряд ли смогут быть вместе.