Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Введение
Программный токен (также известный как мягкий токен) — это компонент устройства безопасности двухфакторной аутентификации, используемый для авторизации доступа к компьютерным сервисам. Программные токены хранятся на обычном электронном устройстве, таком как настольный компьютер, ноутбук, карманный компьютер или мобильный телефон, и могут быть скопированы. (В отличие от аппаратных токенов, где учетные данные хранятся на специализированном аппаратном устройстве и, следовательно, не могут быть скопированы без физического взлома устройства.)
A software token (a. k. a. soft token) is a piece of a two factor authentication security device that may be used to authorize the use of computer services. Software tokens are stored on a general purpose electronic device such as a desktop computer, laptop, PDA, or mobile phone and can be duplicated. (Contrast hardware tokens, where the credentials are stored on a dedicated hardware device and therefore cannot be duplicated — absent physical invasion of the device)
Поскольку программный токен не является физическим объектом, он подвержен уникальным угрозам, связанным с копированием лежащего в его основе криптографического материала, например, компьютерных вирусов и программных атак. Как аппаратные, так и программные токены уязвимы для атак типа «человек посередине», управляемых ботнетами, или для простых фишинговых атак, при которых запрашивается одноразовый пароль, генерируемый токеном, и затем оперативно передается на подлинный веб-сайт. Программные токены имеют свои преимущества: их не нужно носить с собой, они не требуют замены батарей и стоят дешевле аппаратных токенов.
Because software tokens are something one does not physically possess, they are exposed to unique threats based on duplication of the underlying cryptographic material for example, computer viruses and software attacks. Both hardware and software tokens are vulnerable to bot based man in the middle attacks, or to simple phishing attacks in which the one time password provided by the token is solicited, and then supplied to the genuine website in a timely manner. Software tokens do have benefits: there is no physical token to carry, they do not contain batteries that will run out, and they are cheaper than hardware tokens.
Архитектура безопасности
Существует две основные архитектуры для программных токенов: криптография общего секрета и криптография с открытым ключом. В случае использования общего секрета, администратор обычно генерирует файл конфигурации для каждого конечного пользователя. Этот файл содержит имя пользователя, персональный идентификационный номер (PIN) и сам секрет. Файл конфигурации передается пользователю. Архитектура с общим секретом потенциально уязвима в нескольких аспектах. Файл конфигурации может быть скомпрометирован в случае кражи и копирования токена. При использовании программных токенов, основанных на времени, можно получить доступ к КПК или ноутбуку пользователя, перевести часы вперед и сгенерировать коды, которые будут действительны в будущем. Любой программный токен, использующий общий секрет и хранящий PIN вместе с секретом в программном клиенте, может быть украден и подвергнут оффлайн-атакам. Распространение токенов с общим секретом может быть затруднено, поскольку каждый токен по сути представляет собой отдельное программное обеспечение. Каждому пользователю необходимо получить копию секрета, что может создавать временные ограничения. Некоторые современные программные токены используют криптографию с открытым ключом, или асимметричную криптографию. Эта архитектура устраняет некоторые традиционные недостатки программных токенов, но не решает их основную проблему – возможность дублирования. PIN-код можно хранить на удаленном сервере аутентификации, а не вместе с клиентской частью токена, что делает украденный токен бесполезным без знания PIN-кода. Однако, в случае заражения вирусом, криптографический материал может быть скопирован, а PIN-код перехвачен (например, с помощью кейлоггера) при следующей аутентификации пользователя. Попытки угадать PIN-код могут быть обнаружены и зарегистрированы на сервере аутентификации, который может заблокировать токен. Использование асимметричной криптографии также упрощает реализацию, поскольку клиент токена может генерировать собственную пару ключей и обмениваться открытыми ключами с сервером.
There are two primary architectures for software tokens: shared secret and public key cryptography. For a shared secret, an administrator will typically generate a configuration file for each end user. The file will contain a username, a personal identification number, and the secret. This configuration file is given to the user. The shared secret architecture is potentially vulnerable in a number of areas. The configuration file can be compromised if it is stolen and the token is copied. With time based software tokens, it is possible to borrow an individual's PDA or laptop, set the clock forward, and generate codes that will be valid in the future. Any software token that uses shared secrets and stores the PIN alongside the shared secret in a software client can be stolen and subjected to offline attacks. Shared secret tokens can be difficult to distribute, since each token is essentially a different piece of software. Each user must receive a copy of the secret, which can create time constraints. Some newer software tokens rely on public key cryptography, or asymmetric cryptography. This architecture eliminates some of the traditional weaknesses of software tokens, but does not affect their primary weakness (ability to duplicate). A PIN can be stored on a remote authentication server instead of with the token client, making a stolen software token no good unless the PIN is known as well. However, in the case of a virus infection, the cryptographic material can be duplicated and then the PIN can be captured (via keylogging or similar) the next time the user authenticates. If there are attempts made to guess the PIN, it can be detected and logged on the authentication server, which can disable the token. Using asymmetric cryptography also simplifies implementation, since the token client can generate its own key pair and exchange public keys with the server.