Область изобретения
Данное изобретение относится к технологиям сетевой связи, в частности к способу и устройству верификации динамического пароля.
Предпосылки к созданию изобретения
В настоящее время верификация паролей является общей технологией проверки подлинности в сетях и обычно включает в себя верификацию статических и динамических паролей. По сравнению со статическим паролем динамический пароль обычно используется только один раз и после использования становится недействительным. Поэтому динамический пароль намного безопаснее статического. Динамический пароль может быть реализован аппаратно или программно. Динамический пароль, реализуемый аппаратно, имеет высокую безопасность и прост в использовании, но требует более высоких затрат. По сравнению с аппаратно реализуемым динамическим паролем программно реализуемый динамический пароль менее безопасен и неудобен, но затраты на него намного меньше. Поскольку персональное мобильное устройство, например мобильный телефон и карманный компьютер, может быть простым в использовании и имеет высокую безопасность, большинство динамических паролей, реализуемых программно, используется в таких устройствах.
Система реализации программного динамического пароля, основанная на персональном мобильном устройстве, обычно содержит программное обеспечение токена и сервер верификации. В системе такого типа требуется решить проблему обеспечения безопасного совместного использования начального значения токена программным обеспечением токена и сервером верификации. В данном изобретении начальное значение токена безопасно совместно используется программным обеспечением токена и сервером верификации и обеспечивает синхронное создание программным обеспечением токена и сервером верификации одного и того же динамического пароля.
При использовании обычного способа пользователь устанавливает в мобильном устройстве программное обеспечение токена, получает файл с начальным значением токена и вводит этот файл в программное обеспечение токена. При использовании другого способа в каждом программном обеспечении токена содержится одно уникальное начальное значение токена, и пользователь может непосредственно установить и использовать это значение после загрузки программного обеспечения токена, или же для получения начального значения токена мобильное устройство выполняет процесс согласования с сервером верификации посредством передачи сообщений в реальном времени.
Как видно из приведенного выше описания обычных технических решений, безопасность не гарантируется. Если злоумышленник получает программное обеспечение токена во время процедуры его загрузки, он может получить начальное значение токена. В этом случае динамический пароль, созданный с помощью этого начального значения, становится бессмысленным. Если мобильное устройство не поддерживает передачу данных по сети, ему трудно обмениваться в реальном времени сообщениями с сервером верификации. Кроме того, если мобильное устройство обменивается в реальном времени сообщениями с сервером верификации, пользователь должен платить за создаваемый трафик, в результате чего увеличиваются его накладные расходы и затраты на верификацию.
Краткое описание изобретения
В примерах настоящего изобретения предлагаются способ и устройство верификации динамического пароля. Эти способ и устройство позволяют повысить безопасность проверки подлинности и просты в использовании. Кроме того, при их применении не требуется обмен сообщениями между мобильным устройством и сервером верификации. В результате пользователю не нужно платить за дополнительный трафик, снижаются его накладные расходы, а также затраты на верификацию.
В примере настоящего изобретения предлагается способ верификации динамического пароля. В этом способе предусмотрены следующие действия: создание мобильным устройством исходного кода с помощью программного обеспечения токена и передача этого кода через веб-страницу серверу верификации;
создание мобильным устройством текущего динамического пароля с помощью алгоритма Диффи-Хеллмана после верификации исходного кода и передача этого пароля через веб-страницу серверу верификации;
создание сервером верификации своего динамического пароля в соответствии с полученным исходным кодом с помощью того же алгоритма Диффи-Хеллмана, который был использован мобильным устройством;
сравнение сервером верификации своего динамического пароля с динамическим паролем, созданным мобильным устройством, и проверка правильности динамического пароля, созданного мобильным устройством.
В примере настоящего изобретения предлагается устройство верификации динамического пароля, в состав которого входят следующие блоки:
блок создания исходного кода, настраиваемый в мобильном устройстве и предназначенный для создания с помощью программного обеспечения токена исходного кода, передаваемого через веб-страницу серверу верификации;
блок создания динамического пароля, настраиваемый в мобильном устройстве и предназначенный для создания текущего динамического пароля мобильного устройства с помощью алгоритма Диффи-Хеллмана после верификации исходного кода; текущий динамический пароль передается через веб-страницу серверу верификации;
блок верификации динамического пароля, настраиваемый на сервере верификации и предназначенный для создания динамического пароля сервера верификации согласно полученному исходному коду с помощью использованного блоком создания динамического пароля алгоритма Диффи-Хеллмана, сравнения динамического пароля сервера верификации с динамическим паролем мобильного устройства и проверки правильности динамического пароля, созданного блоком создания динамического пароля.
Как видно из описанного выше технического решения, мобильное устройство создает с помощью программного обеспечения токена исходный код и передает его через веб-страницу серверу верификации. После прохождения исходным кодом верификации мобильное устройство создает с помощью алгоритма Диффи-Хеллмана текущий динамический пароль и передает его через веб-страницу серверу верификации. В соответствии с полученным исходным кодом сервер верификации создает свой динамический пароль с помощью того же алгоритма Диффи-Хеллмана, который был использован мобильным устройством. Сервер верификации сравнивает созданный им динамический пароль с динамическим паролем, переданным мобильным устройством, для проверки правильности пароля, созданного мобильным устройством. Описанное выше техническое решение позволяет повысить безопасность проверки подлинности и удобно для использования. Кроме того, при его применении не требуется обмен сообщениями между мобильным устройством и сервером верификации. В результате пользователю не нужно платить за дополнительный трафик, снижаются его накладные расходы, а также затраты на верификацию.
Краткое описание рисунков
На фиг.1 показана блок-схема способа верификации динамического пароля согласно первому примеру настоящего изобретения.
На фиг.2 приведена схема сигнального взаимодействия между мобильным устройством и сервером верификации для верификации динамического пароля согласно первому примеру.
На фиг.3 представлена схема сигнального взаимодействия между мобильным устройством и сервером верификации при создании сервером верификации запроса согласно конкретному примеру.
На фиг.4 представлена схема сигнального взаимодействия между мобильным устройством и сервером верификации при создании сервером верификации запроса согласно другому примеру
На фиг.5 представлена схема сигнального взаимодействия между мобильным устройством и сервером верификации при создании сервером верификации запроса согласно еще одному примеру
На фиг.6 показана структурная схема устройства верификации динамического пароля согласно второму примеру настоящего изобретения.
Подробное описание изобретения
В примерах настоящего изобретения предлагаются способ и устройство верификации динамического пароля. При использовании этих способа и устройства возможен обмен некоторыми параметрами алгоритма через сеть общего пользования с применением алгоритма Диффи-Хеллмана. Это позволяет двум объектам безопасно совместно использовать один и тот же ключ для верификации динамического пароля и дополнительного повышения безопасности проверки подлинности. Кроме того, предлагаемые способ и устройство просты в использовании. При применении описанного выше технического решения не требуется обмен сообщениями между мобильным устройством и сервером верификации. В результате пользователю не нужно платить за дополнительный трафик, снижаются его накладные расходы, а также затраты на верификацию.
Чтобы примеры настоящего изобретения были понятнее, ниже их описание приводится с использованием прилагаемых рисунков. На фиг.1 показана блок-схема способа верификации динамического пароля согласно первому примеру настоящего изобретения. Как видно из этой схемы, в предлагаемом способе предусмотрены следующие действия.
Шаг 11: создается исходный код, который передается серверу верификации. На этом шаге мобильное устройство создает с помощью загруженного программного обеспечения токена исходный код и передает его через веб-страницу серверу верификации.
Исходный код, созданный мобильным устройством с помощью программного обеспечения токена, представляет собой буквенно-цифровую строку, цифровую строку или буквенную строку. В частности, исходным кодом может быть открытый ключ Диффи-Хеллмана, созданный мобильным устройством. Он может быть получен следующим способом: сначала мобильное устройство с помощью программного обеспечения токена создает закрытый ключ Диффи-Хеллмана, а затем с помощью алгоритма Диффи-Хеллмана создает открытый ключ Диффи-Хеллмана согласно закрытому ключу.
Кроме того, исходный код может также содержать информацию о номере версии, который жестко кодируется в мобильном устройстве во время процедуры инициализации.
В конкретном примере исходный код может быть представлен в формате с разными основаниями, например с основанием 32. При этом число вводимых символов исходного кода может быть уменьшено, чтобы упростить его ввод через веб-страницу.
Шаг 12: после верификации исходного кода создается текущий динамически пароль с помощью алгоритма Диффи-Хеллмана и он передается серверу верификации.
На этом шаге после верификации исходного кода мобильное устройство создает с помощью алгоритма Диффи-Хеллмана текущий динамический пароль и передает его через веб-страницу серверу верификации.
В конкретном примере процедура верификации исходного кода включает следующие действия: сервер верификации выполняет заранее заданный алгоритм обработки полученного исходного кода и создает код подтверждения; мобильное устройство получает код подтверждения, созданный сервером верификации, и с помощью того же алгоритма, который был использован сервером верификации, создает свой код подтверждения согласно исходному коду; мобильное устройство сравнивает свой код подтверждения с кодом подтверждения, созданным сервером верификации, и проверяет правильность исходного кода, введенного мобильным устройством. Например, если код подтверждения, созданный мобильным устройством, совпадает с кодом подтверждения, созданным сервером верификации, исходный код, введенный мобильным устройством, является правильным, а в противном случае - неправильным. Указанным выше заранее заданным алгоритмом обработки может быть алгоритм, определенный оператором, например, в качестве кода подтверждения могут быть определены первые четыре или последние два бита исходного кода.
Кроме того, при выполнении сервером верификации процедуры создания кода подтверждения сервер верификации может создать случайную цифровую строку, выполнить заранее заданный алгоритм обработки этой строки и полученного исходного кода для создания контрольного кода и создать код подтверждения, объединив контрольный код и созданную случайную цифровую строку. В результате процедура верификации исходного кода становится более безопасной.
Альтернативно, при выполнении сервером верификации процедуры создания кода подтверждения сервер верификации создает случайный закрытый ключ Диффи-Хеллмана, затем с помощью алгоритма Диффи-Хеллмана создает открытый ключ Диффи-Хеллмана согласно закрытому ключу, выполняет заранее заданный алгоритм обработки открытого ключа Диффи-Хеллмана и полученного исходного кода, чтобы получить контрольный код, и создает код подтверждения, объединяя контрольный код и открытый ключ Диффи-Хеллмана. В результате процедура верификации исходного кода становится более безопасной.
В конкретном примере мобильное устройство обеспечивает во время процедуры инициализации получение программным обеспечением токена и сервером верификации одного и того же начального значения токена и сохраняет это значение. В процедуре создания динамического пароля мобильное устройство создает динамический пароль, используя начальное значение токена и текущее время. В частности, в процедуре создания мобильным устройством динамического пароля с помощью алгоритма Диффи-Хеллмана выполняются следующие действия: мобильное устройство создает с помощью алгоритма Диффи-Хеллмана ключ Диффи-Хеллмана согласно своему закрытому ключу Диффи-Хеллмана, с помощью алгоритма хэширования создает начальное значение токена согласно ключу Диффи-Хеллмана и сохраняет это значение; затем мобильное устройство выполняет заранее заданный алгоритм обработки для начального значения токена и текущего времени и создает текущий динамический пароль. Аналогично заранее заданным алгоритмом обработки может быть алгоритм, определенный оператором. Например, мобильное устройство выполняет алгоритм хэширования для начального значения токена и текущего времени и использует конкретные значения результата хэширования для получения динамического пароля.
Шаг 13: сервер верификации создает свой динамический пароль согласно полученному исходному коду
На этом шаге сервер верификации создает свой динамический пароль в соответствии с полученным исходным кодом с помощью того же алгоритма Диффи-Хеллмана, который был использован мобильным устройством.
В конкретном примере в процедуре создания динамического пароля сервера верификации выполняются следующие действия: сервер верификации получает открытый ключ Диффи-Хеллмана мобильного устройства, выполняя синтаксический анализ полученного исходного кода, создает ключ Диффи-Хеллмана мобильного устройства согласно полученному открытому ключу Диффи-Хеллмана, создает с помощью того же алгоритма, который был использован мобильным устройством, начальное значение токена согласно полученному ключу Диффи-Хеллмана и сохраняет это значение. При каждом выполнении процедуры создания динамического пароля сервер верификации создает свой динамический пароль, используя сохраненное начальное значение токена и тот же алгоритм, который был использован мобильным устройством.
Шаг 14: сервер верификации сравнивает созданный им динамический пароль с динамическим паролем, созданным мобильным устройством, и проверяет правильность динамического пароля, созданного мобильным устройством.
На этом шаге сервер верификации сравнивает созданный им динамический пароль с динамическим паролем, созданным мобильным устройством, и проверяет правильность динамического пароля, созданного мобильным устройством. Поскольку в конкретном примере между временем, отображаемым мобильным устройством, и временем, предоставляемым сервером верификации, может существовать небольшое различие, для повышения надежности верификации может быть заранее определено, что динамический пароль, созданный мобильным устройством, будет считаться правильным, если динамический пароль, созданный сервером верификации, совпадает с динамическим паролем, созданным мобильным устройством, в заранее заданный временной интервал.
В конкретном примере сервер верификации может также создавать запросы для разных представлений динамического пароля, создаваемого мобильным устройством, чтобы дополнительно повысить безопасность такого пароля. В частности, когда мобильное устройство создает с помощью алгоритма Диффи-Хеллмана текущий динамический пароль, представляемый цифровой строкой, сервер верификации создает запрос и выдает мобильному устройству приглашение на ввод цифр текущего динамического пароля. Мобильное устройство передает цифры через веб-страницу серверу верификации согласно запросу. Сервер верификации проверяет, согласно запросу, правильность динамического пароля, созданного мобильным устройством.
Помимо указанных выше представлений, когда мобильное устройство создает с помощью алгоритма Диффи-Хеллмана текущий динамический пароль, представляемый несколькими цифровыми строками, сервер верификации создает запрос и выдает мобильному устройству приглашение на ввод определенной строки цифр текущего динамического пароля. Мобильное устройство передает через веб-страницу серверу верификации согласно запросу цифровую строку текущего динамического пароля. Сервер верификации проверяет, согласно запросу, правильность динамического пароля, созданного мобильным устройством.
Помимо указанных выше представлений, когда мобильное устройство создает с помощью алгоритма Диффи-Хеллмана текущий динамический пароль, представляемый цифровой матрицей, сервер верификации создает запрос и выдает мобильному устройству приглашение на ввод цифровой строки, соответствующей определенной координате матрицы текущего динамического пароля. Мобильное устройство передает через веб-страницу серверу верификации согласно запросу цифровую строку, соответствующую координате матрицы текущего динамического пароля. Сервер верификации проверяет, согласно запросу, правильность динамического пароля, созданного мобильным устройством.
Техническое решение, предложенное в первом примере, позволяет повысить безопасность проверки подлинности, а соответствующий ему способ прост в использовании. Кроме того, при применении описанного выше технического решения не требуется обмен сообщениями между мобильным устройством и сервером верификации. В результате пользователю не нужно платить за дополнительный трафик, снижаются его накладные расходы, а также затраты на верификацию.
На фиг.2 приведена схема сигнального взаимодействия между мобильным устройством и сервером верификации для верификации динамического пароля согласно первому примеру. Сигнальное взаимодействие, показанное на фиг.2, состоит из следующих шагов.
Шаг 1: процедура инициализации
Сервер верификации определяет глобальную открытую константу Диффи-Хеллмана, случайным образом выбирает свой закрытый ключ Диффи-Хеллмана, создает свой открытый ключ Диффи-Хеллмана согласно закрытому ключу Диффи-Хеллмана и вводит в мобильное устройство жестко кодированные глобальную открытую константу Диффи-Хеллмана и свой открытый ключ Диффи-Хеллмана. Для удобства управления открытому ключу Диффи-Хеллмана сервера верификации предоставляется номер версии посредством жесткого кодирования в мобильном устройстве.
Шаг 2: мобильное устройство создает исходный код. При выполнении операции инициализации мобильное устройство создает исходный код в виде цифровой или буквенной строки. Исходный код имеет следующий формат:
исходный код=номер версии+открытый ключ Диффи-Хеллмана мобильного устройства, представляемый кодом с основанием 32.
Номер версии вводится с жестким кодированием в мобильное устройство во время процедуры инициализации. Открытый ключ Диффи-Хеллмана мобильного устройства создается следующим образом: сначала с помощью алгоритма Диффи-Хеллмана создается закрытый ключ Диффи-Хеллмана мобильного устройства и затем создается соответствующий ему открытый ключ Диффи-Хеллмана.
Во время процедуры инициализации, выполняемой на шаге 1, сервер верификации может заранее не создавать свои закрытый и открытый ключи, не вводить в мобильное устройство свой жестко кодированный открытый ключ и отменить номер версии, полученный посредством жесткого кодирования. При этом исходный код, создаваемый мобильным устройством, может иметь следующий формат:
исходный код=открытый ключ Диффи-Хеллмана мобильного устройства, представляемый кодом с основанием 32.
После создания указанного выше исходного кода он может быть представлен в формате с основанием 32 для удобства его ввода пользователем через веб-страницу Например, если представление с основанием 32 имеет вид, показанный в таблице 1,
ление
исходный код может быть представлен в формате с основанием 32 следующим образом: (14803)10=(39D3)16=(EEJ)32.
Исходный код может быть, конечно, представлен в формате с основанием n (где n - целое больше 32), чтобы уменьшить число подлежащих вводу символов этого кода и сделать код удобнее для использования.
Шаг 3: мобильное устройство передает созданный исходный код через веб-страницу серверу верификации. В конкретном примере исходный код может быть введен пользователем или назначенным устройством согласно принятой стратегии.
Шаг 4: для проверки правильности полученного исходного кода сервер верификации создает код подтверждения и отображает его на мобильном устройстве. Код подтверждения может быть представлен следующим образом:
код подтверждения=результат выполнения алгоритма обработки исходного кода.
В частности, для исходного кода, введенного пользователем, выполняется заранее заданный алгоритм обработки для получения короткой числовой строки. В качестве заранее заданного алгоритма обработки может использоваться алгоритм, определенный оператором. Например, в качестве кода подтверждения могут быть определены первые четыре или последние два бита исходного кода. Для упрощения ввода кода подтверждения этот код обычно представляется в виде 4-разрядной цифровой строки.
Для повышения безопасности процедура создания кода подтверждения может быть улучшена. В частности, код подтверждения может быть представлен следующим образом:
код подтверждения=случайная цифровая строка сервера верификации+контрольный код, где
контрольный код - это результат выполнения алгоритма обработки исходного кода, введенного пользователем, и случайной цифровой строки сервера верификации.
Случайная цифровая строка сервера верификации - это строка длиной более 6 бит, используемая для повышения безопасности создания начального значения токена. Контрольный код служит для проверки правильности исходного кода, введенного пользователем, и случайной цифровой строки сервера верификации. Он обычно представляет собой цифровую строку длиной от 2 до 4 бит.
Код подтверждения может быть также представлен следующим образом:
код подтверждения=открытый ключ Диффи-Хеллмана сервера верификации+контрольный код в формате с основанием 32, где:
контрольный код - это результат выполнения алгоритма обработки исходного кода, введенного пользователем, и открытого ключа Диффи-Хеллмана сервера верификации.
Открытый ключ Диффи-Хеллмана сервера верификации создается следующим образом: сервер верификации создает случайный закрытый ключ Диффи-Хеллмана и затем открытый ключ Диффи-Хеллмана с помощью алгоритма Диффи-Хеллмана.
Для проверки правильности исходного кода, введенного пользователем, и случайной цифровой строки сервера верификации используется контрольный код. Он обычно представляет собой цифровую строку длиной от 2 до 4 бит.
Шаг 5: созданный код подтверждения передается мобильному устройству
Шаг 6: проверяется код подтверждения и создается динамический пароль.
Мобильное устройство получает код подтверждения, созданный сервером верификации, создает согласно исходному коду свой код подтверждения с помощью того же алгоритма Диффи-Хеллмана, который был использован сервером верификации, и сравнивает этот код подтверждения с кодом подтверждения, созданным сервером верификации. Если код подтверждения, созданный мобильным устройством, не совпадает с кодом подтверждения, созданным сервером верификации, код подтверждения не проходит верификацию, выводится сообщение о неправильности введенного исходного кода и процедура завершается. Если код подтверждения, созданный мобильным устройством, совпадает с кодом подтверждения, созданным сервером верификации, код подтверждения проходит верификацию, мобильное устройство создает начальное значение токена с помощью алгоритма Диффи-Хеллмана и затем текущий динамический пароль.
Ниже приведена процедура создания динамического пароля.
Сначала создается ключ Диффи-Хеллмана мобильного устройства. Он создается с помощью алгоритма Диффи-Хеллмана, применяемого к закрытому ключу Диффи-Хеллмана мобильного устройства и заранее жестко кодированному открытому ключу Диффи-Хеллмана сервера верификации. То есть ключ Диффи-Хеллмана создается посредством обработки закрытого ключа Диффи-Хеллмана мобильного устройства и открытого ключа Диффи-Хеллмана сервера верификации, заранее жестко кодированного согласно алгоритму Диффи-Хеллмана. Другими словами, для получения ключа Диффи-Хеллмана в качестве двух входных переменных используются закрытый ключ Диффи-Хеллмана мобильного устройства и заранее жестко кодированный открытый ключ Диффи-Хеллмана сервера верификации, вычисляемые с помощью алгоритма Диффи-Хеллмана.
Затем с помощью алгоритма хэширования, применяемого к ключу Диффи-Хеллмана, определяется начальное значение токена. То есть начальное значение токена определяется путем обработки ключа Диффи-Хеллмана согласно алгоритму хэширования.
В качестве алгоритма хэширования может применяться стандартный алгоритм хэширования, например MD5 или SHA256.
Если на шаге 4 сервер верификации создает случайную цифровую строку, мобильное устройство сначала проверяет контрольный код, чтобы убедиться в правильности исходного кода и случайной цифровой строки сервера верификации, которыми обменялись мобильное устройство и сервер верификации. После успешной проверки контрольного кода алгоритм создания начального значения токена изменяется следующим образом.
Начальное значение токена получается в результате применения алгоритма хэширования к ключу Диффи-Хеллмана и случайной цифровой строке сервера верификации. То есть начальное значение токена определяется путем обработки ключа Диффи-Хеллмана и случайной цифровой строки сервера верификации согласно алгоритму хэширования.
Если на шаге 4 сервер верификации создает свой открытый ключ Диффи-Хеллмана, мобильное устройство сначала проверяет контрольный код, чтобы убедиться в правильности исходного кода и открытого ключа Диффи-Хеллмана сервера верификации, которыми обменялись мобильное устройство и сервер верификации. После успешной проверки контрольного кода алгоритм создания начального значения токена изменяется следующим образом.
Ключ Диффи-Хеллмана создается с помощью алгоритма Диффи-Хеллмана, применяемого к закрытому ключу Диффи-Хеллмана мобильного устройства и открытому ключу Диффи-Хеллмана сервера верификации. То есть ключ Диффи-Хеллмана создается посредством обработки символьной строки, объединенной с закрытым ключом Диффи-Хеллмана мобильного устройства, и открытого ключа Диффи-Хеллмана сервера верификации согласно алгоритму Диффи-Хеллмана.
Начальное значение токена определяется с помощью алгоритма хэширования, применяемого к ключу Диффи-Хеллмана.
После получения начального значения токена с помощью одного из указанных выше способов может быть создан динамический пароль мобильного устройства. Динамический пароль может представлять собой цифровую строку длиной от 6 до 8 цифр.
В частности, динамический пароль - это результат выполнения алгоритма обработки начального значения токена и текущего времени. То есть начальное значение токена определяется путем выполнения алгоритма обработки начального значения токена и текущего времени.
В частности, для начального значения токена и текущего времени может быть выполнен заранее заданный алгоритм обработки для получения цифровой строки. В качестве заранее заданного алгоритма обработки может использоваться алгоритм, определенный оператором. Например, для начального значения токена и текущего времени выполняется алгоритм хэширования и путем использования конкретных значений результата хэширования определяется динамический пароль.
Шаг 7: динамический пароль, созданный мобильным устройством, передается через веб-страницу серверу верификации.
Шаг 8: сервер верификации проверяет правильность динамического пароля.
Сервер верификации получает открытый ключ Диффи-Хеллмана мобильного устройства, выполняя синтаксический анализ полученного исходного кода, и создает ключ Диффи-Хеллмана, совпадающий с ключом Диффи-Хеллмана, созданным мобильным устройством на шаге 6). Создав ключ Диффи-Хеллмана, сервер верификации создает начальное значение токена и свой динамический пароль с помощью того же алгоритма Диффи-Хеллмана, который был использован мобильным устройством на шаге 6), сравнивает этот пароль с динамическим паролем, созданным мобильным устройством, и проверяет, правильно ли создан динамический пароль мобильным устройством.
Поскольку между временем, отображаемым мобильным устройством, и временем, предоставляемым сервером верификации, может существовать небольшое различие, может быть заранее определено, что динамический пароль, созданный мобильным устройством, будет считаться правильным, если динамический пароль, созданный сервером верификации, совпадает с динамическим паролем, созданным мобильным устройством, в заранее заданный временной интервал. Временной интервал может быть определен оператором и составлять 1-2 минуты.
Кроме того, в первом примере сервер верификации может создавать запросы для разных представлений динамического пароля, создаваемого мобильным устройством, чтобы дополнительно повысить безопасность такого пароля.
На фиг.3 представлена схема сигнального взаимодействия между мобильным устройством и сервером верификации при создании сервером верификации запроса согласно конкретному примеру. Как видно из этого рисунка, сигнальное взаимодействие включает следующие шаги.
Шаг 1: мобильное устройство создает динамический пароль. Динамический пароль обычно состоит из 6 цифр, например 528639.
Шаг 2: сервер верификации создает запрос и предлагает пользователю ввести несколько цифр, отображаемых на мобильном устройстве. Например, если на мобильном устройстве отображаются цифры 528639, сервер верификации выдает запрос "Введите первую, третью, пятую и шестую цифры". Проверка завершается успешно, если пользователь вводит цифры "5839".
Шаг 3: пользователь вводит динамический пароль по запросу сервера верификации.
Шаг 4: сервер верификации проверяет, согласно запросу, правильность введенного пользователем динамического пароля с помощью способа, описанного в первом примере.
Шаг 5: отображается результат проверки.
На фиг.4 представлена схема сигнального взаимодействия между мобильным устройством и сервером верификации при создании сервером верификации запроса согласно другому примеру. Как видно из этого рисунка, сигнальное взаимодействие включает следующие шаги.
Шаг 1: мобильное устройство создает динамический пароль, состоящий не из 6 цифр, а из n цифровых строк, например:
1) 298570
2) 985570
3) 255378
4) 018373
Шаг 2: сервер верификации создает запрос и предлагает пользователю ввести цифровую комбинацию строки х, например, "Введите цифровую комбинацию 2-й строки динамического пароля".
Шаг 3: пользователь вводит цифровую комбинацию строки х по запросу сервера верификации. Например, если на втором шаге выдается запрос "Введите цифровую комбинацию 2-й строки динамического пароля", пользователь должен ввести комбинацию "985570".
Шаг 4: сервер верификации проверяет, согласно запросу, правильность введенного пользователем динамического пароля с помощью способа, описанного в первом примере.
Шаг 5: отображается результат проверки.
На фиг.5 представлена схема сигнального взаимодействия между мобильным устройством и сервером верификации при создании сервером верификации запроса согласно еще одному примеру. Как видно из этого рисунка, сигнальное взаимодействие включает следующие шаги.
Шаг 1: мобильное устройство создает динамический пароль в виде матрицы n×m согласно начальному значению токена и текущему времени. Например, динамический пароль в виде матрицы 4×4 может выглядеть следующим образом:
Шаг 2: сервер верификации создает запрос и предлагает пользователю ввести цифровые строки, соответствующие некоторым координатам, например: "Введите цифры, соответствующие координатам А2, С3 и D1".
Шаг 3: пользователь вводит цифры, соответствующие координатам, согласно запросу сервера верификации. Например, пользователь вводит цифры "90 89 01" согласно запросу, сделанному на втором шаге.
Шаг 4: сервер верификации проверяет, согласно запросу, правильность введенного пользователем динамического пароля с помощью способа, описанного в первом примере.
Шаг 5: отображается результат проверки.
С помощью запроса может быть дополнительно повышена безопасность динамического пароля.
Техническое решение, предложенное в рассмотренных выше примерах, позволяет проверять динамический пароль, повышает безопасность проверки подлинности и удобно для использования. Кроме того, поскольку исходный код, код подтверждения и динамический пароль передаются серверу верификации через веб-страницу, обмен сообщениями между мобильным устройством и сервером верификации не требуется. В результате пользователю не нужно платить за дополнительный трафик, снижаются его накладные расходы, а также затраты на верификацию.
Во втором примере предлагается устройство верификации динамического пароля. На фиг.6 представлена структурная схема устройства верификации динамического пароля. Устройство содержит блок создания исходного кода, блок создания динамического пароля и блок верификации динамического пароля.
Блок создания исходного кода настраивается в мобильном устройстве и предназначен для создания с помощью программного обеспечения токена исходного кода, передаваемого через веб-страницу серверу верификации. Способ создания исходного кода и его передачи серверу верификации описан при рассмотрении первого примера.
Блок создания динамического пароля настраивается в мобильном устройстве и предназначен для создания текущего динамического пароля мобильного устройства с помощью алгоритма Диффи-Хеллмана после верификации исходного кода. Текущий динамический пароль может быть передан серверу верификации через веб-страницу. Способ создания динамического пароля и его передачи серверу верификации описан при рассмотрении первого примера.
Блок верификации динамического пароля настраивается на сервере верификации и предназначен для создания динамического пароля сервера верификации согласно полученному исходному коду с помощью использованного блоком создания динамического пароля алгоритма Диффи-Хеллмана, сравнения динамического пароля сервера верификации с динамическим паролем мобильного устройства и проверки правильности динамического пароля мобильного устройства, созданного блоком создания динамического пароля.
Описанное выше устройство содержит также блок создания кода подтверждения и блок проверки кода подтверждения.
Блок создания кода подтверждения настраивается на сервере верификации и предназначен для выполнения заранее заданного алгоритма обработки исходного кода, полученного сервером верификации, и создания кода подтверждения. Способ создания кода подтверждения описан при рассмотрении первого примера.
Блок проверки кода подтверждения настраивается в мобильном устройстве и предназначен для получения кода подтверждения, созданного блоком создания кода подтверждения; создания кода подтверждения мобильного устройства согласно исходному коду, созданному блоком создания исходного кода, с помощью алгоритма, использованного блоком создания кода подтверждения; сравнения кода подтверждения, созданного блоком проверки кода подтверждения, с кодом подтверждения, созданным блоком создания кода подтверждения, и проверки правильности исходного кода, полученного сервером верификации. Способ верификации динамического пароля описан при рассмотрении первого примера.
Следует отметить, что блоки, входящие в состав описанного выше устройства, различаются логическими функциями, но не ограничены указанной выше структурой при условии реализации логических функций. Кроме того, названия блоков используются только для того, чтобы отличать их друг от друга, а не для ограничения объема охраны настоящего изобретения.
Специалисты в данной области поймут, что все или некоторые шаги предложенного в первом примере способа могут быть реализованы посредством программного управления соответствующим оборудованием, а управляющая программа может храниться в памяти компьютера. В качестве памяти может использоваться постоянная память (ПЗУ), оперативная память (ОЗУ), дискета, компакт-диск и т.д.
Таким образом, техническое решение, предложенное в примерах настоящего изобретения, позволяет повысить безопасность проверки подлинности и удобно для использования. Кроме того, при его применении не требуется обмен сообщениями между мобильным устройством и сервером верификации. В результате пользователю не нужно платить за дополнительный трафик, снижаются его накладные расходы, а также затраты на верификацию.
Описанные выше реализации представляют только предпочтительные варианты настоящего изобретения, и объем его охраны не ограничен ими. Любые улучшения и замены, которые могут быть выполнены в рамках технической области настоящего изобретения специалистами в данной области, должны охватываться объемом охраны настоящего изобретения. Таким образом, объем охраны настоящего изобретения должен определяться формулой изобретения.
Изобретение относится к вычислительной технике. Технический результат заключается в повышении безопасности проверки подлинности. Способ верификации динамического пароля, в котором создают мобильным устройством исходный код с помощью программного обеспечения токена и передают этот код через веб-страницу серверу верификации; после верификации исходного кода мобильное устройство с помощью алгоритма Диффи-Хеллмана создает ключ Диффи-Хеллмана согласно своему закрытому ключу Диффи-Хеллмана; и с помощью алгоритма хэширования создает начальное значения токена согласно своему ключу Диффи-Хеллмана; и создает текущий динамический пароль путем выполнения заранее заданного алгоритма обработки начального значения токена и текущего времени и передает этот пароль через веб-страницу серверу верификации; создают сервером верификации динамический пароль сервера верификации в соответствии с полученным исходным кодом с помощью того же алгоритма Диффи-Хеллмана, который был использован мобильным устройством; сервер верификации сравнивает динамический пароль сервера верификации с динамическим паролем, созданным мобильным устройством, и проверяют правильность динамического пароля, созданного мобильным устройством. 2 н. и 11 з.п. ф-лы, 6 ил., 1 табл.
1. Способ верификации динамического пароля, в котором предусмотрены следующие действия:
создают мобильным устройством исходный код с помощью программного обеспечения токена и передают этот код через веб-страницу серверу верификации;
после верификации исходного кода мобильное устройство с помощью алгоритма Диффи-Хеллмана создает ключ Диффи-Хеллмана, согласно своему закрытому ключу Диффи-Хеллмана; и
с помощью алгоритма хэширования создает начальное значение токена согласно своему ключу Диффи-Хеллмана; и
создает текущий динамический пароль путем выполнения заранее заданного алгоритма обработки начального значения токена и текущего времени и передает этот пароль через веб-страницу серверу верификации; создают сервером верификации динамический пароль сервера верификации в соответствии с полученным исходным кодом с помощью того же алгоритма Диффи-Хеллмана, который был использован мобильным устройством; сервер верификации сравнивает динамический пароль сервера верификации с динамическим паролем, созданным мобильным устройством, и проверяют правильность динамического пароля, созданного мобильным устройством.
2. Способ по п. 1, отличающийся тем, что в процедуре верификации исходного кода предусмотрены следующие действия:
выполняют сервером верификации заранее заданный алгоритм обработки полученного исходного кода и создают код подтверждения; получают мобильным устройством код подтверждения, созданный сервером верификации, и создают код подтверждения мобильного устройства согласно исходному коду с помощью того же алгоритма, который был использован сервером верификации;
сравнивают мобильным устройством код подтверждения мобильного устройства с кодом подтверждения, созданным сервером верификации, и проверяют правильность исходного кода.
3. Способ по п. 2, отличающийся тем, что при создании сервером верификации кода подтверждения выполняют следующие действия: создают сервером верификации случайную цифровую строку, создают контрольный код путем выполнения заранее заданного алгоритма обработки случайной цифровой строки и полученного исходного кода и создают код подтверждения посредством объединения контрольного кода и случайной цифровой строки; или
создают сервером верификации случайный закрытый ключ Диффи-Хеллмана, создают согласно этому закрытому ключу открытый ключ Диффи-Хеллмана с помощью алгоритма Диффи-Хеллмана, создают контрольный код путем выполнения заранее заданного алгоритма обработки открытого ключа Диффи-Хеллмана и полученного исходного кода и создают код подтверждения посредством объединения контрольного кода и открытого ключа Диффи-Хеллмана.
4. Способ по п. 1, отличающийся тем, что при передаче исходного кода через веб-страницу серверу верификации выполняют следующие действия: кодируют исходный кода с использованием разных оснований кода и передают исходный код через веб-страницу серверу верификации.
5. Способ по п. 4, отличающийся тем, что кодирование с использованием разных оснований кода включает кодирование с основанием 32 или n, где n - целое число больше 32.
6. Способ по п. 1, отличающийся тем, что при создании сервером верификации своего динамического пароля согласно полученному исходному коду с помощью того же алгоритма Диффи-Хеллмана, который был использован мобильным устройством, выполняют следующие действия: получают сервером верификации открытый ключ Диффи-Хеллмана мобильного устройства путем синтаксического анализа полученного исходного кода;
создают ключ Диффи-Хеллмана мобильного устройства в соответствии с полученным открытым ключом Диффи-Хеллмана и создают динамический пароль сервера верификации согласно ключу Диффи-Хеллмана с помощью того же алгоритма Диффи-Хеллмана, который был использован мобильным устройством.
7. Способ по п. 6, отличающийся тем, что при создании динамического пароля сервера верификации согласно ключу Диффи-Хеллмана с помощью того же алгоритма Диффи-Хеллмана, который был использован мобильным устройством, выполняют следующие действия:
создают начальное значение токена согласно ключу Диффи-Хеллмана с помощью алгоритма хэширования и сохраняют это начальное значение; создают динамический пароль сервера верификации согласно начальному значению токена с помощью того же алгоритма Диффи-Хеллмана, который каждый раз использовался мобильным устройством при создании динамического пароля.
8. Способ по п. 1, отличающийся тем, что в процедуре проверки правильности динамического пароля, созданного мобильным устройством, выполняют также следующее действие:
получают подтверждение, что динамический пароль, созданный мобильным устройством, является правильным, если динамический пароль, созданный сервером верификации, совпадает с динамическим паролем, созданным мобильным устройством, в пределах заранее заданного временного интервала.
9. Способ по п. 2, отличающийся тем, что при выполнении сервером верификации заранее заданного алгоритма обработки полученного исходного кода и создании кода подтверждения выполняют следующие действия: создают сервером верификации случайную цифровую строку и затем создают контрольный код путем выполнения заранее заданного алгоритма обработки этой случайной цифровой строки и полученного исходного кода;
создают код подтверждения путем объединения контрольного кода и случайной цифровой строки.
10. Способ по п. 2, отличающийся тем, что при выполнении сервером верификации заранее заданного алгоритма обработки полученного исходного кода и создании кода подтверждения выполняют следующие действия:
создают сервером верификации случайный закрытый ключ Диффи-Хеллмана и на его основе открытый ключ Диффи-Хеллмана с помощью алгоритма Диффи-Хеллмана;
создают контрольный код посредством выполнения заранее заданного алгоритма обработки открытого ключа Диффи-Хеллмана и полученного исходного кода;
создают код подтверждения путем объединения контрольного кода и открытого ключа Диффи-Хеллмана.
11. Способ по п. 1, отличающийся тем, что при создании текущего динамического пароля и передачи его через веб-страницу серверу верификации выполняют следующую последовательность действий: создают мобильным устройством с помощью алгоритма Диффи-Хеллмана текущий динамический пароль в виде цифровой строки; создают сервером верификации запрос и выводят на мобильном устройстве подсказку для ввода конкретных цифр текущего динамического пароля; передают мобильным устройством через веб-страницу серверу верификации эти цифры текущего динамического пароля; или
создают мобильным устройством с помощью алгоритма Диффи-Хеллмана текущий динамический пароль в виде нескольких цифровых строк; создают сервером верификации запрос и выводят на мобильном устройстве подсказку для ввода конкретной цифровой строки текущего динамического пароля; передают мобильным устройством через веб-страницу серверу верификации эту цифровую строку текущего динамического пароля; или создают мобильным устройством с помощью алгоритма Диффи-Хеллмана текущий динамический пароль в виде цифровой матрицы; создают сервером верификации запрос и выводят на мобильном устройстве подсказку для ввода цифровой строки, соответствующей конкретной координате матрицы текущего динамического пароля; передают мобильным устройством через веб-страницу серверу верификации цифровую строку, соответствующую этой координате матрицы текущего динамического пароля.
12. Устройство верификации динамического пароля, содержащее: блок создания исходного кода, настраиваемый в мобильном устройстве и предназначенный для создания с помощью программного обеспечения токена исходного кода, передаваемого через веб-страницу серверу верификации; блок создания динамического пароля, настраиваемый в мобильном устройстве и предназначенный для того, чтобы после верификации исходного кода создавать с помощью алгоритма Диффи-Хеллмана ключ Диффи-Хеллмана мобильного устройства, согласно закрытому ключу Диффи-Хеллмана мобильного устройства;
создавать начальное значения токена с помощью алгоритма хэширования согласно ключу Диффи-Хеллмана мобильного устройства; создавать текущий динамический пароль путем выполнения заранее заданного алгоритма обработки начального значения токена и текущего времени;
причем текущий динамический пароль передается через веб-страницу серверу верификации;
блок верификации динамического пароля, настраиваемый на сервере верификации и предназначенный для создания динамического пароля сервера верификации согласно полученному исходному коду с помощью того же алгоритма Диффи-Хеллмана, который был использован блоком создания динамического пароля, сравнения динамического пароля сервера верификации с динамическим паролем мобильного устройства и проверки правильности динамического пароля, созданного блоком создания динамического пароля.
13. Устройство по п. 12, дополнительно содержащее:
блок создания кода подтверждения, настраиваемый на сервере верификации и предназначенный для выполнения заранее заданного алгоритма обработки исходного кода, полученного сервером верификации, и создания кода подтверждения;
блок проверки кода подтверждения, настраиваемый в мобильном устройстве и предназначенный для получения кода подтверждения, созданного блоком создания кода подтверждения; создания кода подтверждения мобильного устройства согласно исходному коду, созданному блоком создания исходного кода, с помощью того же алгоритма, который был использован блоком создания кода подтверждения; сравнения кода подтверждения, созданного блоком проверки кода подтверждения, с кодом подтверждения, созданным блоком создания кода подтверждения, и проверки правильности исходного кода, полученного сервером верификации.
Колосоуборка | 1923 |
|
SU2009A1 |
CN 101500011 A, 05.08.2009 | |||
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
Пресс для выдавливания из деревянных дисков заготовок для ниточных катушек | 1923 |
|
SU2007A1 |
US 5625746 A1, 29.04.1997 | |||
Способ выращивания молодняка крупного рогатого скота | 1987 |
|
SU1500226A1 |
Станок для изготовления деревянных ниточных катушек из цилиндрических, снабженных осевым отверстием, заготовок | 1923 |
|
SU2008A1 |
СПОСОБЫ АУТЕНТИФИКАЦИИ ПОТЕНЦИАЛЬНЫХ ЧЛЕНОВ, ПРИГЛАШЕННЫХ ПРИСОЕДИНИТЬСЯ К ГРУППЕ | 2003 |
|
RU2325693C2 |
СПОСОБ УПРАВЛЕНИЯ КРИПТОГРАФИЧЕСКИМИ КЛЮЧАМИ ПРИ ОСУЩЕСТВЛЕНИИ СВЯЗИ МЕЖДУ ПЕРВЫМ КОМПЬЮТЕРНЫМ БЛОКОМ И ВТОРЫМ КОМПЬЮТЕРНЫМ БЛОКОМ | 1997 |
|
RU2213367C2 |
Авторы
Даты
2014-02-10—Публикация
2010-07-06—Подача