Код документа: RU2718237C2
ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННУЮ ЗАЯВКУ
По данной заявке испрашивается приоритет и преимущество даты подачи Заявки США Серийный №14/942,575, поданной 16 ноября 2015г., которая во всей своей полноте включена в настоящее описание посредством ссылки.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
Данное раскрытие в целом относится к аутентификации онлайнового конечного пользователя, и, в частности, к основанным на сети системам и способам для использования сервера безопасной авторизации, чтобы надежно аутентифицировать идентификационные данные конечного пользователя, как впрочем и предоставлять информацию конечного пользователя другой онлайновой услуге вычислительного клиента, к которой осуществляет доступ конечный пользователь.
В настоящее время существуют стандарты, которые определяют, каким образом объект, такой как web-сайт или приложение (известные как «вычислительные клиенты»), может аутентифицировать идентификационные данные конечного пользователя на основе аутентификации, выполняемой сторонним сервером безопасной авторизации, как впрочем и получать информацию конечного пользователя, такую как базовая информация профиля. Это обычно используется как способ логического входа Интернет-пользователя на сторонний web-сайт с использованием, например, информации логического входа (например, имя пользователя и пароль) web-сайта социальной сети (например, Facebook или Twitter) без раскрытия информации логического входа стороннему web-сайту. По меньшей мере одним известным стандартом, который используется в настоящее время, является протокол OpenID Connect, работающий поверх протокола OAuth 2.0.
К сожалению, эти известные системы обладают некоторыми ограничениями, включая некоторые проблемы безопасности. В дополнение, в некоторых из этих известных протоколов не хватает многих требований безопасности. В результате, произошли многочисленные инциденты с безопасностью и атаки уязвимости в последние годы, с участием этих известных систем.
КРАТКОЕ ОПИСАНИЕ РАСКРЫТИЯ
В одном аспекте, предоставляется компьютерная система сервера безопасной авторизации для верификации идентификационных данных конечного пользователя. Компьютерная система запрограммирована с возможностью приема, от вычислительного клиента, запроса аутентификации на компоненте авторизации. Запрос аутентификации включает в себя идентификатор запроса безопасной аутентификации. Компьютерная система также запрограммирована с возможностью подтверждения правильности запроса аутентификации на компоненте авторизации посредством подтверждения правильности идентификатора запроса аутентификации. Компьютерная система дополнительно запрограммирована с возможностью передачи ответа аутентификации от компонента авторизации вычислительному клиенту. Ответ аутентификации включает в себя код авторизации. Код авторизации представляет собой подтверждение правильности запроса аутентификации.
В другом аспекте, предоставляется способ верификации идентификационных данных конечного пользователя. Способ включает в себя прием, от вычислительного клиента, запроса аутентификации на компоненте авторизации. Запрос аутентификации включает в себя идентификатор запроса безопасной аутентификации. Способ также включает в себя подтверждение правильности запроса аутентификации на компоненте авторизации посредством подтверждения правильности идентификатора запроса аутентификации. Способ дополнительно включает в себя передачу ответа аутентификации от компонента авторизации вычислительному клиенту. Ответ аутентификации включает в себя код авторизации. Код авторизации представляет собой подтверждение правильности запроса аутентификации.
В еще одном другом аспекте, предоставляется машиночитаемый носитель информации с воплощенными на нем машиноисполняемыми инструкциями для верификации идентификационных данных конечного пользователя. Когда исполняются, по меньшей мере, одним процессором, машиноисполняемые инструкции предписывают процессору принимать, от вычислительного клиента, запрос аутентификации на компоненте авторизации. Запрос аутентификации включает в себя идентификатор запроса безопасной аутентификации. Машиноисполняемые инструкции также предписывают процессору подтверждать правильность запроса аутентификации на компоненте авторизации посредством подтверждения правильности идентификатора запроса аутентификации. Машиноисполняемые инструкции дополнительно предписывают процессору передавать ответ аутентификации от компонента авторизации вычислительному клиенту. Ответ аутентификации включает в себя код авторизации. Код авторизации представляет собой подтверждение правильности запроса аутентификации.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фигуры, описываемые ниже, изображают разнообразные аспекты систем и способов, раскрываемых здесь. Следует понимать, что каждая Фигура изображает вариант осуществления конкретного аспекта раскрываемых систем и способов, и что каждая из Фигур предназначена для согласования с возможным его вариантом осуществления. Кроме того, там, где это возможно, нижеследующее описание относится к ссылочным номерам, включенным а нижеследующие Фигуры, при этом признаки, изображенные на нескольких Фигурах, обозначаются единообразными ссылочными номерами.
Фиг. 1-9 показывают примерные варианты осуществления способов и систем, описываемых в данном документе.
Фиг. 1 является принципиальной схемой, иллюстрирующей компонент авторизации сервера безопасной авторизации в соответствии с одним вариантом осуществления настоящего раскрытия.
Фиг. 2 является принципиальной схемой, иллюстрирующей компонент токена сервера безопасной авторизации, показанного на Фиг. 1.
Фиг. 3 является принципиальной схемой, иллюстрирующей компонент информации пользователя сервера безопасной авторизации, показанного на Фиг. 1.
Фиг. 4 является принципиальной схемой, иллюстрирующей тот сервер безопасной авторизации, включающий в себя компонент авторизации, компонент токена, и компонент информации пользователя, показанные на Фиг. 1-3.
Фиг. 5 иллюстрирует примерную конфигурацию серверной системы, такой как сервер безопасной авторизации, показанный на Фиг. 1-4.
Фиг. 6 иллюстрирует пример конфигурации системы вычислительного клиента, такой как та, что показана на Фиг. 1-4.
Фиг. 7 является блок-схемой примерного способа обеспечения возможности аутентификации конечного пользователя с использованием сервера безопасной авторизации, показанный на Фиг. 1.
Фиг. 8 является блок-схемой примерного способа запроса и приема токенов с использованием сервера безопасной авторизации, показанный на Фиг. 2.
Фиг. 9 является блок-схемой примерного способа получения атрибутов конечного пользователя у конечного пользователя с использованием сервера безопасной авторизации, показанный на Фиг. 3.
ПОДРОБНОЕ ОПИСАНИЕ РАСКРЫТИЯ
Система и способ, описываемые в данном документе, включают в себя сервер безопасной авторизации с улучшенной функциональностью обеспечения безопасности (именуемый здесь «сервером безопасной авторизации»), который обеспечивает процесс более безопасной авторизации в сравнении с другими известными системами. В частности, сервер безопасной авторизации обеспечивает вычислительным клиентам (например, web-сайтам или компьютерным приложениям) возможность более надежно аутентифицировать идентификационные данные конечного пользователя, как впрочем и предоставлять информацию профиля касательно конечного пользователя вычислительным клиентам для использования вычислительными клиентами. Как описывается дополнительно ниже, улучшенная функциональность обеспечения безопасности включает в себя использование и подтверждение правильности кода авторизации, токена идентификации, и токена доступа.
В примерном варианте осуществления, сервер безопасной авторизации включает в себя, по меньшей мере, три компонента (также известных как «конечные точки»): компонент авторизации, компонент токена, и компонент информации пользователя. Каждый компонент подтверждает правильность отличного запроса от вычислительного клиента. Вычислительный клиент направляет запрос аутентификации компоненту авторизации, чтобы запросить, чтобы конечный пользователь был аутентифицирован компонентом авторизации. Запрос аутентификации включает в себя, по меньшей мере, идентификатор запроса аутентификации, значение области видимости, в котором вычислительный клиент перечисляет информацию конечного пользователя, запрашиваемую у сервера безопасной авторизации, и унифицированный идентификатор ресурса перенаправления (также известный как «URI перенаправления»). URI перенаправления определяет, гуда сервер безопасной авторизации передает ответ на запросы от вычислительного клиента. Компонент авторизации аутентифицирует конечного пользователя, включая верификацию идентификатора запроса аутентификации, и передает код авторизации вычислительному клиенту.
Для того, чтобы обеспечить целостность кода авторизации, когда компонент авторизации выпускает код авторизации вычислительному клиенту, компонент авторизации улучшается в сравнении с другими известными системами посредством реализации стандартов, которые требуют, чтобы код авторизации использовал web-токен (например, web-токен Нотации Объекта JavaScript (JSON) или «JWT») и подпись (например, web-подпись Нотации Объекта JavaScript (JSON)). Код авторизации включает в себя некоторую информацию (известную как «заявления web-токена JSON» или «заявления JWT»), такую как идентификатор объекта для объекта, который выпускает JWT, идентификатор объекта для объекта, который является предметом JWT, идентификатор для получателя JWT, время, когда был выпущен JWT, и идентификатор запроса аутентификации из запроса аутентификации. Код авторизации дополнительно включает в себя параметры заголовка Подписания и Шифрования Объекта JSON (JOSE), и соответствует определенному формату так, что код авторизации может быть синтаксически разобран на три строки, как описывается ниже.
Вычислительный клиент подтверждает правильность кода авторизации, что включает в себя разделение кода авторизации на три строки, декодирование каждой строки, и использование параметров заголовка, чтобы подтверждать правильность подписи.
Вычислительный клиент осуществляет обмен кода авторизации на токен идентификации и токен доступа посредством передачи запроса токена компоненту токена сервера безопасной авторизации. Компонент токена подтверждает правильность запроса токена посредством верификации того, что код авторизации является правильным и что URI перенаправления, включенный в запрос токена, является идентичным URI перенаправления, который был включен в запрос аутентификации.
Если подтверждение правильности запроса токена является успешным, компонент токена передает токен идентификации и токен доступа вычислительному клиенту. Токен идентификации является токеном обеспечения безопасности, который включает в себя информацию касательно аутентификации конечного пользователя и потенциально другую запрошенную информацию.
Для того, чтобы обеспечить целостность токена идентификации, когда компонент токена выпускает токен идентификации вычислительному клиенту, компонент токена улучшается в сравнении с другими известными системами посредством реализации стандартов, которые требуют, чтобы токен идентификации использовал web-токен (например, web-токен Нотации Объекта JavaScript (JSON) или «JWT») и подпись (например, web-подпись Нотации Объекта JavaScript (JSON)). Токен идентификации также включает в себя некоторую информацию (известную как «заявления web-токена JSON» или «заявления JWT»)), такую как идентификатор объекта для объекта, который выпускает JWT, уникальный идентификатор конечного пользователя, время истечения для токена идентификации, время, когда JWT был выпущен, идентификатор для объекта, которому токен идентификации был выпущен, идентификатор запроса аутентификации из запроса аутентификации, значение строки, используемое для связывания сеанса вычислительного клиента с токеном идентификации, строку, указывающую опорное значение класса контекста аутентификации, которое идентифицирует класс контекста аутентификации, которому отвечает выполняемая аутентификация, массив строк, которые являются идентификаторами для способов аутентификации, используемых при аутентификации, и другие предварительно определенные открытые и закрытые заявления JWT. Токен идентификации дополнительно включает в себя параметры заголовка Подписания и Шифрования Объекта JSON (JOSE), и соответствует определенному формату так, что токен идентификации может быть синтаксически разобран на три строки, как описывается ниже. Опорное значение класса контекста аутентификации и массив строк, имеют содержания, которые являются предварительно определенными между вычислительным клиентом и сервером безопасной авторизации.
Вычислительный клиент подтверждает правильность токена идентификации посредством разделения токена идентификации на, по меньшей мере, три строки, декодирования каждой строки, и использования параметров заголовка, чтобы подтверждать правильность подписи.
Вычислительный клиент передает запрос информации пользователя, который включает в себя токен доступа, компоненту информации пользователя сервера безопасной авторизации. Компонент информации пользователя передает запрошенные данные конечного пользователя (например, информацию конечного пользователя или атрибуты конечного пользователя) вычислительному клиенту. В некоторых вариантах осуществления, данные конечного пользователя могут включать в себя имя, фотографию, адрес электронной почты, пол, дату рождения и другие относящиеся к пользователю данные. В некоторых вариантах осуществления, информация пользователя может быть запрошена, чтобы возвращалась от компонента информации пользователя или в токене идентификации.
Примерная реализация компьютерной системы сервера авторизации с улучшенной функциональностью обеспечения безопасности может включать в себя держателя карты (т.е. конечного пользователя), туристический web-сайт (т.е. вычислительного клиента) и сервер безопасной авторизации. Держатель карты осуществляет доступ на туристический web-сайт с использованием вычислительного устройства и начинает осуществление покупки на туристическом web-сайте. Держатель карты желает предварительно заполнить туристический web-сайт туристическими предпочтениями, ранее предоставленными серверу безопасной авторизации. Используя систему безопасной авторизации, описываемую в данном документе, туристический web-сайт перенаправляет держателя карты через вычислительное устройство на аутентификацию с помощью сервера безопасной авторизации. Сервер безопасной авторизации аутентифицирует держателя карты и принимает согласие на предоставление информации туристического профиля туристическому web-сайту. Сервер безопасной авторизации перенаправляет держателя карты обратно на туристический web-сайт с некоторыми безопасными токенами. Туристический web-сайт непосредственно соединяется с сервером безопасной авторизации и с использованием безопасных токенов, запрашивает требуемую информацию пользователя непосредственно у сервера безопасной авторизации. Туристический web-сайт использует информацию пользователя, чтобы предварительно заполнять туристический web-сайт туристическими предпочтениями держателя карты. Это может происходить за кулисами. Когда держатель карты инициирует и выполняет покупку на туристическом web-сайте, держатель карты увидит, что туристический web-сайт учел все туристические предпочтения, которые были ранее сохранены на сервере безопасной авторизации.
Фиг. 1 является принципиальной схемой, иллюстрирующей поток 100 данных между сервером 102 безопасной авторизации, конечным пользователем 104, и вычислительным клиентом 106. В примерном варианте осуществления, сервер 102 безопасной авторизации включает в себя компонент 208 авторизации, компонент 302 токена, и компонент 402 информации пользователя. Конечный пользователь 104 является индивидом, использующим вычислительное устройство, соединенное с интернет, с, по меньшей мере, одним процессором и интерфейсом пользователя, таким как web-браузер, выполненным с возможностью приема ввода от индивида (например, от клавиатуры, координатно-указательного устройства, мыши, или сенсорной панели) и отображения информации индивиду на дисплее. Вычислительный клиент 106 может включать в себя web-сайт или компьютерное приложение.
Фиг. 2 является принципиальной схемой, иллюстрирующей поток 200 данных между сервером 102 безопасной авторизации и вычислительным клиентом 106. В примерном варианте осуществления, сервер 102 безопасной авторизации включает в себя компонент 208 авторизации. Во время работы, конечный пользователь 104 вводит запрос (1) логического входа в вычислительный клиент 106. Вычислительный клиент 106 передает запрос (2) аутентификации, включающий в себя, по меньшей мере, идентификатор запроса аутентификации и URI перенаправления, компоненту 208 авторизации, чтобы аутентифицировать конечного пользователя 104. URI перенаправления является URI, куда сервер безопасной авторизации передает ответ на запрос аутентификации.
Компонент 208 авторизации передает конечному пользователю 104 запрос (3) в отношении учетных данных логического входа, таких как пароль или другое средство для аутентификации конечного пользователя 104. В некоторых вариантах осуществления, у конечного пользователя 104 компонент 208 авторизации запрашивает предоставление вычислительному клиенту 106 доступа к конкретной информации конечного пользователя, такой как адрес электронной почты и базовой учетной информации. Конечный пользователь 104 передает ответ (4), который включает в себя учетные данные логического входа, компоненту 208 авторизации. Компонент 208 авторизации также верифицирует идентификатор запроса аутентификации, включенный в запрос аутентификации.
Компонент 208 авторизации передает ответ (5) аутентификации через URI перенаправления вычислительному клиенту 106 касательно того, аутентифицирован ли конечный пользователь 104. Если конечный пользователь 104 аутентифицирован, компонент 208 авторизации предоставляет вычислительному клиенту 106 код авторизации, который, по меньшей мере, включает в себя идентификатор запроса аутентификации, включенный в запрос аутентификации. Вычислительный клиент 106 подтверждает правильность кода авторизации перед передачей запроса токена, описываемого ниже.
Сервер 102 безопасной авторизации может включать в себя любое число конечных пользователей 102, вычислительных клиентов 104, и компонентов 106 авторизации.
Фиг. 3 является принципиальной схемой, иллюстрирующей поток 300 данных между сервером 102 безопасной авторизации и вычислительным клиентом 106. В примерном варианте осуществления, сервер 102 безопасной авторизации также включает в себя компонент 302 токена. Во время дальнейшей работы, вычислительный клиент 106 передает запрос (6) токена, включающий в себя код авторизации и URI перенаправления, компоненту 302 токена.
Компонент 302 токена подтверждает правильность запроса токена и передает ответ (7), включающий в себя токен идентификации и токен доступа, вычислительному клиенту 106. Токен идентификации, по меньшей мере, включает в себя идентификатор запроса аутентификации, включенный в запрос аутентификации. Вычислительный клиент 106 подтверждает правильность токена идентификации перед передачей запроса информации пользователя, описываемой ниже.
Сервер 102 безопасной авторизации может включать в себя любое число конечных пользователей 102, вычислительных клиентов 104, и компонент 302 токена.
Фиг. 4 является принципиальной схемой, иллюстрирующей поток 400 данных между сервером 102 безопасной авторизации и вычислительным клиентом 106. В примерном варианте осуществления, сервер безопасной авторизации 102 включает в себя компонент 402 информации пользователя. Во время по-прежнему дальнейшей работы, вычислительный клиент 106 передает запрос (8) информации пользователя, включающий в себя токен доступа, компоненту 402 информации пользователя.
Компонент 402 информации пользователя подтверждает правильность запроса информации пользователя и передает запрошенную информацию (9) конечного пользователя 104 (например, имя пользователя, фотографию, адрес электронной почты, пол и дату рождения) вычислительному клиенту 106.
Сервер 102 безопасной авторизации может включать в себя любое число конечных пользователей 102, вычислительных клиентов 104, и компонентов 306 информации пользователя.
Фиг. 5 иллюстрирует примерную конфигурацию сервера 102 безопасной авторизации, также показанного на Фиг. 1-4, в соответствии с одним примерным вариантом осуществления настоящего раскрытия. В примерном варианте осуществления, сервер 102 безопасной авторизации обрабатывает запрос аутентификации, запрос токена, и запрос информации пользователя, переданные компоненту 208 авторизации, компоненту 302 токена, и компоненту информации пользователя, соответственно. Сервер 102 безопасной авторизации может включать в себя дополнительные, меньше, или альтернативные компоненты, включая те, что обсуждаются в любом месте данного документа.
Сервер 102 безопасной авторизации включает в себя процессор 502 для исполнения инструкций. Инструкции могут быть сохранены в области 504 памяти, например. Процессор 502 может включать в себя один или более блоки обработки (например, в многоядерной конфигурации) для исполнения инструкций. Инструкции могут быть исполнены в рамках разнообразия разных операционных систем на сервере 102 безопасной авторизации, таких как UNIX, LINUX, Microsoft Windows®, и т.д. Также следует иметь в виду, что по инициированию основанного на компьютере способа, разнообразные инструкции могут быть исполнены в течение инициализации. Некоторые операции могут требоваться для того, чтобы выполнять один или более процессы, описываемые в данном документе, в то время как другие операции могут быть более общими и/или особыми для конкретного языка программирования (например, C, C#, C++, Java, или другие подходящие языки программирования, и т.д.).
Процессор 502 оперативно связан с интерфейсом 506 связи так, что сервер 102 безопасной авторизации выполнен с возможностью осуществления связи с удаленным устройством, таким как система вычислительного клиента или другой сервер 102 безопасной авторизации. Например, интерфейс 506 связи может принимать запросы от вычислительного клиента 106 через Интернет.
Процессор 502 также может быть оперативно связан, через интерфейс 508 хранения, с запоминающим устройством 510. Запоминающее устройство 508 является любым оперируемым компьютером аппаратным обеспечением, пригодным для хранения и/или извлечения данных. В некоторых вариантах осуществления, запоминающее устройство 510 интегрировано в сервер 102 безопасной авторизации. Например, сервер 102 безопасной авторизации может включать в себя один или более накопители на жестком диске в качестве запоминающего устройства 510. В других вариантах осуществления, запоминающее устройство 510 является внешним по отношению к серверу 102 безопасной авторизации и доступ к нему может быть осуществлен посредством множества серверных систем 500. Например, запоминающее устройство 510 может включать в себя несколько запоминающих блоков, таких как жесткие диски или твердотельные диски в конфигурации массива недорогих дисков с избыточностью (RAID). Запоминающее устройство 510 может включать в себя сеть хранения данных (SAN) и/или систему сетевого подключаемого хранилища (NAS).
Интерфейс 510 хранения является любым компонентом, выполненным с возможностью предоставления процессору 502 доступа к запоминающему устройству 510. Интерфейс 510 хранения может включать в себя, например, адаптер Усовершенствованной Технологии Прикрепления (ATA), адаптер Последовательной ATA (SARA), адаптер Интерфейса Малых Вычислительных Систем (SCSI), контроллер RAID, адаптер SAN, сетевой адаптер, и/или любой компонент, предоставляющий процессору 502 доступ к запоминающему устройству 510.
Область 504 памяти может включать в себя, но не ограничивается, память с произвольным доступом (RAM), такую как динамическая RAM (DRAM) или статическая RAM (SRAM), постоянная память (ROM), стираемая программируемая постоянная память (EPROM), электрически стираемая программируемая постоянная память (EEPROM), и энергонезависимая RAM (NVRAM). Вышеприведенные типы памяти являются лишь примерными, и, следовательно, не являются ограничивающими типы памяти, которые могут быть использованы для хранения компьютерной программы. В одном варианте осуществления, сервер 102 безопасной авторизации также включает в себя сервер базы данных (не показан).
Фиг. 6 иллюстрирует примерную конфигурацию вычислительного клиента 106, как показано на Фиг. 1-4. Вычислительный клиент 106 передает запрос аутентификации, запрос токена, и запрос информации пользователя серверу 102 безопасной авторизации, как впрочем и подтверждает правильность ответов от сервера 102 безопасной авторизации. Вычислительный клиент 106 может включать в себя дополнительные, меньше, и альтернативные компоненты, включая те, что обсуждаются в любом месте данного документа.
Вычислительный клиент 106 включает в себя процессор 602 для исполнения инструкций. В некоторых вариантах осуществления, исполняемые инструкции хранятся в области 604 памяти. Процессор 602 может включать в себя один или более блоки обработки (например, в многоядерной конфигурации). Область 604 памяти является любым устройством, обеспечивающим хранение и извлечение информации, такой как исполняемые инструкции и/или прочие данные. Область 604 памяти может включать в себя один или более машиночитаемые носители информации.
Вычислительный клиент 106 включает в себя интерфейс 606 связи, который находится во взаимодействии с сервером 102 безопасной авторизации, для осуществления связи между вычислительным клиентом 106 и сервером 102 безопасной авторизации. Интерфейс 606 связи может включать в себя, например, проводной или беспроводной сетевой адаптер или беспроводной приемопередатчик данных для использования с мобильной телефонной сетью (например, Глобальной Системой для связи с Подвижными Объектами (GSM), 3G, 4G или Bluetooth) или другой мобильной сетью передачи данных (например, Общемировой Совместимости Широкополосного Беспроводного Доступа (WIMAX)). Интерфейс 612 связи также может включать в себя, например, локальную сеть (LAN) или глобальную сеть (WAN), коммутируемые соединения, кабельные модемы, особые высокоскоростные линии Цифровой Сети с Комплексными Услугами (ISDN), или сети RDT.
В области 604 памяти хранятся, например, машиночитаемые инструкции для предоставления интерфейса 608 пользователя конечному пользователю. Интерфейс 608 пользователя используется, чтобы отображать информацию и принимать ввод от конечного пользователя через устройство пользователя, соединенное с Интернет. Устройство пользователя может быть любым устройством, выполненным с возможностью взаимного соединения с Интернет, включая интеллектуальный телефон или устройство персонального компьютера. Интерфейс 608 пользователя может включать в себя, среди прочих возможностей, web-браузер или приложения вычислительного клиента, взаимно соединенные с Интернет через сеть, такую как локальная сеть (LAN) или глобальная сеть (WAN), коммутируемые соединения, кабельные модемы, особые высокоскоростные линии Цифровой Сети с Комплексными Услугами (ISDN), или сети RDT. Интерфейс 608 пользователя отображает информацию конечному пользователю 104 и обеспечивает конечному пользователю 104 возможность взаимодействовать с мультимедийной и другой информацией, как правило, встроенной в web-страницу или web-сайт. В примерном варианте осуществления, конечный пользователь 104 инициирует запрос логического входа к вычислительному клиенту 106 через интерфейс 608 пользователя (например с использованием web-сайта вычислительного клиента или приложение), после чего процессор 602 перенаправляет конечного пользователя 104 (например, посредством перенаправления web-браузера конечного пользователя) к компоненту 208 авторизации для аутентификации, как показано на Фиг. 1.
Дополнительно в области 604 памяти хранятся машиночитаемые инструкции для передачи, через интерфейс 606 связи, запроса аутентификации, запроса токена, и запроса информации пользователя серверу 102 безопасной авторизации. Кроме того, в области 604 памяти по-прежнему хранятся машиночитаемые инструкции для приема, через интерфейс 606 связи, и подтверждения правильности ответа аутентификации, ответа токена, и ответа информации пользователя от сервера 102 безопасной авторизации.
Фиг. 7 является блок-схемой способа 700 обеспечения возможности аутентификации конечного пользователя 104 в соответствии с вариантом осуществления раскрытия. Как показано на этапах с 702 по 710, компонент 208 авторизации аутентифицирует конечного пользователя 104 через вычислительного клиента 106 и передает ответ аутентификации.
На этапе 702, конечный пользователь 104 инициирует запрос логического входа к вычислительному клиенту 106 (например, с использованием web-сайта вычислительного клиента или приложение). На этапе 704, вычислительный клиент 106 передает запрос аутентификации компоненту 208 авторизации и перенаправляет конечного пользователя 104 (например, посредством перенаправления web-браузера конечного пользователя) к компоненту 208 авторизации для аутентификации. Запрос аутентификации включает в себя, по меньшей мере, идентификатор запроса аутентификации, значение области видимости, в котором вычислительный клиент 106 перечисляет информацию конечного пользователя, запрашиваемую у сервера 102 безопасной авторизации, URI перенаправления на который компонент 208 авторизации будет передавать ответ аутентификации обратно, как только аутентификация предоставлена, и значение непрозрачного состояния, используемое для поддержания состояния между запросом и ответом. В некоторых вариантах осуществления, запрос аутентификации дополнительно включает в себя одно или более из кода типа ответа для потока кода авторизации, идентификатора вычислительного клиента для уникальной идентификации приложения вычислительного клиента, и значение строки одноразового номера, используемое, чтобы связать сеанс вычислительного клиента с токеном идентификации.
Идентификатор запроса аутентификации основан на, по меньшей мере, значении области видимости, идентификаторе вычислительного клиента, типе ответа, URI перенаправления, значении непрозрачного состояния, и значении строки одноразового номера. В примерном варианте осуществления, идентификатор запроса аутентификации является закодированным по типу Base64 и может включать в себя: (SHA256_Хэширование (значение области видимости + тип ответа + идентификатор вычислительного клиента + URI перенаправления + значение состояния + значение строки одноразового номера)) = 48 - символьная строка.
Как показано на этапе 706, компонент 208 авторизации подтверждает правильность запроса аутентификации посредством, по меньшей мере, подтверждения правильности идентификатора запроса аутентификации. В некоторых вариантах осуществления, компонент 208 авторизации верифицирует одно или более из значения области видимости, типа ответа, идентификатора вычислительного клиента, значения состояния, и значения строки одноразового номера, включенных в запрос аутентификации.
Компонент 208 авторизации передает конечному пользователю 104 запрос в отношении учетных данных логического входа, таких как пароль или другое средство для аутентификации конечного пользователя 104. В некоторых вариантах осуществления, у конечного пользователя 104 запрашивается разрешение на получение вычислительным клиентом 106 доступа к конкретной информации конечного пользователя, такой как адрес электронной почты и базовая учетной информации, которая была запрошена вычислительным клиентом 105 с использованием значения области видимости. Конечный пользователь 104 передает в компонент 208 авторизации ответ, который включает в себя учетные данные логического входа и подтверждение правильности которого осуществляется компонентом 208 авторизации.
Как показано на этапе 708, если аутентификация является успешной, компонент 208 авторизации передает конечного пользователя 104 обратно в вычислительный клиент 106 с ответом аутентификации, через URI перенаправления, предоставленный в запросе аутентификации. Ответ аутентификации включает в себя, по меньшей мере, код авторизации и значение состояния, принятое в запросе аутентификации. В примерном варианте осуществления, код авторизации доставляется к вычислительному клиенту 106 посредством добавления кода авторизации и значения состояния к компоненту запроса у URI перенаправления с использованием формата «application/x-www-form-urlencoded» в теле объекта запроса HTTP.
Для того, чтобы обеспечить целостность кода авторизации, когда компонент 208 авторизации выпускает код авторизации вычислительному клиенту 106 в ответе аутентификации, ответ аутентификации реализуется в соответствии с стандартами web-токена JSON («JWT») и web-подписи JSON («JWS»), где JWT подписывается компонентом 208 авторизации и верифицируется вычислительным клиентом 106. Код авторизации включает в себя информацию по объекту, который выпустил JWT, объекту, который является предметом JWT (например, конечному пользователю 104), предназначенным получателям JWT, времени, в которое JWT был выпущен, и идентификатору запроса аутентификации из запроса аутентификации.
Если подтверждение правильности запроса аутентификации не является успешным, компонент 208 авторизации передает ответ ошибки вычислительному клиенту 106.
В примерном варианте осуществления, код авторизации включает в себя заголовок JOSE с параметром алгоритма установленным в ES256 или выше, параметром заголовка, который содержит закодированный по типу base64url отпечаток SHA-256 (также известный как свертка) у DER кодирования сертификата X.509, соответствующего ключу, который используется для цифровой подписи кода авторизации, и тип заголовка JOSE, где «JOSE» используется для компактной сериализации JWE и «JOSE+JSON» используется для сериализации JWS/JWE JSON.
Код авторизации реализуется в соответствии со стандартами подписания сигнатуры JSON (JWS) и объекта JSON (JWT). Код авторизации кодируется с использованием кодирования Base64 и форматируется так, что код авторизации может быть синтаксически разобран на, по меньшей мере, три строки, при этом каждая строка может быть декодирована посредством вычислительного клиента 106 в течение подтверждения правильности. В примерном варианте осуществления, код авторизации является закодированным по типу Base64 и может включать в себя: Base64Encoded(JWS JOSE заголовок),Base64Encoded(JWT).Base64Encoded(JWS Подпись).
Как показано на этапе 710, вычислительный клиент 106 подтверждает правильность кода авторизации посредством разделения кода авторизации, где ограничено посредством «.», на три строки, где str1=Base64Encoded(JWS JOSE заголовок), str2=Base64Encoded(JWT), и str3=Base64Encoded(JWS Подпись). Каждая строка может быть декодирована вычислительным клиентом 106 с использованием декодирования Base64, где Base64Decoded str1=JWS JOSE заголовок, Base64Decoded str2=JWT, и Base64Decoded str3=JWS Подпись. В некоторых вариантах осуществления, где сертификат подписания хранится локально вычислительным клиентом 106, вычислительный клиент 106 может использовать сертификат подписания, идентифицированный отпечатком SHA-256 JWS JOSE заголовка, чтобы подтверждать правильность подписи JWS с использованием параметра алгоритма.
Фиг. 8 является блок-схемой способа 800 запроса и приема токенов в соответствии с вариантом осуществления раскрытия. Как показано на этапах с 802 по 808, компонент 302 токена подтверждает правильность запроса токена от вычислительного клиента 106 и передает ответ токена, который, по меньшей мере, включает в себя токен идентификации и токен доступа.
На этапе 802, вычислительный клиент 106 передает запрос токена компоненту 302 токена посредством представления кода авторизации из ответа аутентификации и URI перенаправления.
На этапе 804, компонент 302 токена подтверждает правильность запроса токена посредством, по меньшей мере, подтверждения правильности кода авторизации и верификации того, что URI перенаправления в запросе токена является идентичным URI перенаправления, включенному в запрос авторизации. Если подтверждение правильности является успешным, компонент 302 токена передает вычислительному клиенту 106 ответ токена, включающий в себя токен идентификации и токен доступа, как показано на этапе 806. Токен идентификации, по меньшей мере, включает в себя идентификатор запроса аутентификации из запроса аутентификации. В некоторых вариантах осуществления, ответ токена дополнительно включает в себя значение токена идентификации, связанное с сеансом аутентификации, значение токена доступа, и срок действия (в секундах) токена доступа. Альтернативные варианты осуществления также могут включать в себя токен обновления, используемый чтобы получать новые токены доступа.
Если подтверждение правильности запроса токена не является успешным, компонент 302 токена передает ответ ошибки вычислительному клиенту 106.
Токен идентификации является токеном обеспечения безопасности, который включает в себя заявления JWT (например, информацию идентификационных данных) касательно конечного пользователя 104, и потенциально другую запрошенную информацию, как описывается в параграфе [0046]. Для того, чтобы обеспечивать целостность токена идентификации, когда компонент 302 токена выпускает токен идентификации вычислительному клиенту 106, токен идентификации реализуется в соответствии со стандартами web-токена JSON (JWT) и web-подписи JSON (JWS), и токен идентификации подписывается компонентом 302 токена и верифицируется вычислительным клиентом 106.
В примерном варианте осуществления, токен идентификации включает в себя одно или более из следующих заявлений JWT: значение идентификатора выпускающей стороны для выпускающей стороны ответа токена, уникальный идентификатор конечного пользователя, не превышающий 255 символов ASCII в длину, идентификатор вычислительного клиента для вычислительного клиента 106 (известный как «значение аудитории»), время истечения по или после которого токен идентификации не может быть принят для обработки, время, когда токен идентификации был выпущен, идентификатор запроса аутентификации из запроса аутентификации, и строку JWT, указывающую опорное значение класса контекста аутентификации, которое указывает класс контекста аутентификации, выполняемый аутентификацией. В некоторых вариантах осуществления, присутствует более одной аудитории и значение аудитории.
В примерном варианте осуществления, токен идентификации также включает в себя значение строки одноразового номера JWT, перешедшее из запроса аутентификации в токен идентификации. Вычислительный клиент 106 верифицирует, что значение строки одноразового номера в токене идентификации равно значению в значении строки одноразового номера, которое передано в запросе аутентификации. Значение строки одноразового номера используется, чтобы связать сеанс вычислительного клиента с токеном идентификации, что смягчает вредоносные или мошеннические попытки повтора передач действительных данных.
В примерном варианте осуществления, если значение строки одноразового номера было включено в запрос аутентификации, значение строки одноразового номера также присутствует в токене идентификации. Вычислительный клиент 106 должен верифицировать, что значение строки одноразового номера в токене идентификации является точно таким же, как значение строки одноразового номера, переданное в запросе аутентификации. Вычислительный клиент 106 должен проверять значение одноразового номера применительно к атакам воспроизведения. Точный способ обнаружения атак воспроизведения является особым для клиента.
В некоторых вариантах осуществления, токен идентификации дополнительно включает в себя JWT и JSON массив строк, которые являются идентификаторами для способов аутентификации, используемых при аутентификации. Например, массив может указывать, что были использованы способы аутентификации как по паролю, так и по одноразовому паролю (OTP).
В дополнительных вариантах осуществления, токен идентификации включает в себя строку, идентифицирующую объект, которому был выпущен токен идентификации (известному как «авторизованная сторона»). Если авторизованная сторона присутствует в токене идентификации, токен идентификации также содержит идентификатор вычислительного клиента авторизованной стороны.
В примерном варианте осуществления, токен идентификации включает в себя одного ли более из открытых заявлений JWT, таких как имя, отчество, фамилия, адрес электронной почты, номер телефона, предпочтительное имя пользователя, и код региона.
В примерном варианте осуществления, токен идентификации включает в себя одно или более закрытые заявления JWT. Одно или более закрытые заявления JWT являются специальными атрибутами пользователя, которые могут быть включены в токен идентификации, возвращаемый компонентом токена. В некоторых вариантах осуществления, закрытые заявления могут быть, но не ограничиваются, одним или более из следующего: ролями, именем пользователя, идентификацией группы внутренних абонентов, идентификацией сайта, собственной идентификацией приложения, и идентификатором пользователя, осуществившего логический вход в систему представителя службы поддержки.
В примерном варианте осуществления, токен идентификации включает в себя заголовок JOSE с параметром алгоритма установленным в ES256 или выше, Параметром заголовка, который содержит закодированный по типу base64url отпечаток SHA-256 (также известный как свертка) у DER кодирования сертификата X.509, соответствующего ключу, который используется для цифровой подписи кода авторизации, и тип заголовка JOSE, где «JOSE» используется для компактной сериализации JWE и «JOSE+JSON» используется для сериализации JWS/JWE JSON.
Токен идентификации реализуется в соответствии со стандартами подписания сигнатуры JSON (JWS) и объекта JSON (JWT). Токен идентификации является кодированным по типу Base64 объектом JSON и форматированным так, что токен идентификации может быть синтаксически разобран на, по меньшей мере, три строки, при этом каждая строка может быть декодирована посредством вычислительного клиента 106 в течение подтверждения правильности токена идентификации. В одном варианте осуществления, токен идентификации форматируется как Base64Encoded(JWS JOSE заголовок),Base64Encoded(JWT).Base64Encoded(JWS Подпись).
На этапе 808, вычислительный клиент подтверждает правильность токена идентификации посредством разделения кода авторизации, где ограничено посредством «.», на три строки, где str1=Base64Encoded(JWS JOSE заголовок), str2=Base64Encoded(JWT), и str3=Base64Encoded(JWS Подпись). Каждая строка может быть декодирована вычислительным клиентом 106 с использованием декодирования Base64, где Base64Decoded str1=JWS JOSE заголовок, Base64Decoded str2=JWT, и Base64Decoded str3=JWS Подпись. В некоторых вариантах осуществления, где сертификат подписания хранится локально вычислительным клиентом 106, вычислительный клиент 106 может использовать сертификат подписания, идентифицированный отпечатком SHA-256 JOSE заголовка, чтобы подтверждать правильность подписи JWS с использованием алгоритма заголовка JOSE.
В примерном варианте осуществления, вычислительный клиент 106 дополнительно подтверждает правильность токена идентификации посредством подтверждения правильности того, что идентификатор запроса аутентификации в токене идентификации совпадает с идентификатором запроса аутентификации из запроса аутентификации.
В примерном варианте осуществления, вычислительный клиент 106 дополнительно подтверждает правильность токена идентификации посредством обеспечения того, что значение идентификатора выпускающей стороны, связанное с сервером 102 безопасной авторизации, совпадает со значением у значения идентификатора выпускающей стороны в токене идентификации.
В другом варианте осуществления, вычислительный клиент 106 подтверждает правильность того, что токен идентификации перечисляет вычислительного клиента в качестве действительной аудитории. Вычислительный клиент 106 может отклонять токен идентификации, если токен идентификации не перечисляет вычислительного клиента 106 в качестве действительной аудитории, или если токен идентификации включает в себя дополнительные аудитории, которые не являются доверенными для вычислительного клиента 106. В еще одном другом варианте осуществления, где токен идентификации включает в себя несколько аудиторий, вычислительный клиент 106 верифицирует то, что присутствует авторизованная сторона. В дополнительном варианте осуществления, где авторизованная сторона перечислена в токене идентификации, вычислительный клиент 106 дополнительно верифицирует то, что вычислительный клиент 106 является авторизованной стороной.
В некоторых вариантах осуществления, если токен идентификации принимается через прямую связь между вычислительным клиентом 106 и компонентом 302 токена, подтверждение правильности сервера TLS может быть использовано, чтобы подтверждать правильность выпускающей стороны токена идентификации вместо подтверждения правильности подписи токена. Вычислительный клиент 106 подтверждает правильность подписи токена у всех других токенов идентификации с использованием алгоритма, указанного в параметре заголовка алгоритма JWT. Вычислительный клиент 106 использует ключи, предоставленные выпускающей стороной токена идентификации.
В другом варианте осуществления, вычислительный клиент 106 дополнительно верифицирует то, что текущее время находится до времени истечения по или после которого токен идентификации не может быть принят для обработки. В альтернативном варианте осуществления, вычислительный клиент 106 может отклонять токен идентификации, выпущенный слишком далеко от текущего времени.
Компонент 302 токена может шифровать токен идентификации с использованием ключей и алгоритмов, которые вычислительный клиент 106 указывает в течение регистрации у поставщика сервера 102 безопасной авторизации. Если токен идентификации шифруется посредством компонента 302 токена, то вычислительный клиент 106 может дешифровать токен идентификации с использованием ключей и алгоритмов, указанных в течение регистрации. Если шифрование было оговорено с поставщиком сервера 102 безопасной авторизации в момент регистрации и токен идентификации, принятый вычислительным клиентом 106, не зашифрован, вычислительный клиент 106 должен отклонять токен идентификации.
Параметр алгоритма у заголовка JWS в токене идентификации должен быть установлен по умолчанию в ES256.
Если вычислительный клиент 106 запрашивает, чтобы опорное заявление класса контекста аутентификации было включено в токен идентификации, вычислительный клиент 106 должен верифицировать то, что опорное заявление класса контекста аутентификации, включенное в токен идентификации, является соответствующим.
Токен доступа является учетными данными, используемыми чтобы осуществлять доступ к защищенным ресурсам, таким как атрибуты конечного пользователя 104, на основе того, на что авторизован конечный пользователь 104. Для того чтобы обеспечивать целостность токена доступа, когда компонент токена 302 выпускает токен доступа вычислительному клиенту, токен доступа реализуется в соответствии со стандартами web-токена JSON (JWT) и web-подписи JSON (JWS), и токен доступа подписывается компонентом 302 токена и верифицируется вычислительным клиентом 106.
Фиг. 9 является блок-схемой способа 900 получения атрибутов пользователя у конечного пользователя 104 в соответствии с вариантом осуществления раскрытия. Как показано на этапах с 902 по 906, компонент 402 информации пользователя подтверждает правильность запроса информации пользователя от вычислительного клиента и передает данные конечного пользователя 104 в ответ.
Как показано на этапе 902, вычислительный клиент 106 передает запрос информации пользователя, включая токен доступа, компоненту 402 информации пользователя. Компонент 402 информации пользователя подтверждает правильность запроса информации пользователя посредством подтверждения правильности токена доступа, как показано на этапе 904.
Как показано на этапе 906, если подтверждение правильности является успешным, компонент 402 информации пользователя передает данные конечного пользователя 104 вычислительному клиенту 106. Если подтверждение правильности запроса информации пользователя не является успешным, компонент 402 информации пользователя передает ответ ошибки вычислительному клиенту 106.
Для того, чтобы обеспечивать целостность данных конечного пользователя 104, когда компонент 402 информации пользователя выпускает данные конечного пользователя 104 вычислительному клиенту 106 в ответе информации пользователя, ответ информации пользователя реализуется в соответствии со стандартами web-токена JSON (JWT) и web-подписи JSON (JWS), где JWT подписывается компонентом 402 информации пользователя и верифицируется вычислительным клиентом 106.
В некоторых вариантах осуществления, вычислительный клиент 106 может передавать токен обновления, принятый в ответе токена компоненту 402 информации пользователя, чтобы принимать токен доступа. Компонент 106 информации пользователя подтверждает правильность токена обновления и, если подтверждение правильности является успешным, компонент 106 информации пользователя передает токен доступа вычислительному клиенту 106. Вычислительный клиент 106 передает запрос информации пользователя, включающий в себя токен доступа, компоненту 806 информации пользователя, вновь начиная с этапа 802.
В некоторых вариантах осуществления, код авторизации шифруется или затеняется.
В некоторых вариантах осуществления, вычислительный клиент 106 является вычислительным клиентом OpenID Connect, а управление работой сервера 102 безопасной авторизации осуществляется поставщиком идентификационных данных OpenID.
В дополнительных вариантах осуществления, сообщения запроса и ответа, передаваемые между вычислительным клиентом 106 и компонентами сервера 102 безопасной авторизации, являются подписанными цифровым образом посредством вычислительного клиента и сервер 102 безопасной авторизации подтверждает правильность цифровой подписи, чтобы обеспечивать целостность сообщения.
Используемое в данном документе понятие «долговременный машиночитаемый носитель информации» должно представлять любое вещественное основанное на компьютере устройство, реализованное любым способом или по любой технологии для краткосрочного и долгосрочного хранения информации, такой как машиночитаемые инструкции, структуры данных, программные модули, и подмодули, или другие данные в любом устройстве. Вследствие этого, способы, описанные в данном документе могут быть закодированы в качестве исполняемых инструкций, воплощенных в вещественном, не временном, машиночитаемом носителе информации, включая, без ограничения, запоминающее устройство и/или устройство памяти. Такие инструкции, когда исполняются процессором, предписывают процессору выполнять, по меньшей мере, часть способов, описанных в данном документе. Более того, используемое в данном документе понятие «долговременные машиночитаемые носители информации» включает в себя все вещественные, машиночитаемые носители информации, включая, без ограничения, долговременные компьютерные запоминающие устройства, включая, без ограничения, энергозависимые и энергонезависимые носители информации, и съемные и несъемные носители информации, такие как встроенное, физическое и виртуальное хранилище, CD-ROM, DVD, и любой другой цифровой источник, такой как сети или Интернет, как впрочем и цифровые средства, которые еще предстоит разработать, за единственным исключением в виде временного, распространяющегося сигнала.
Данное письменное описание использует примеры, чтобы раскрывать раскрытие, включая предпочтительный вариант осуществления, и также обеспечивает специалисту в соответствующей области техники возможность реализовать на практике варианты осуществления, включая создание и использование любых устройств или систем и выполнение любых включенных способов. Патентоспособный объем раскрытия определяется формулой изобретения, и может включать в себя другие примеры, которые приходят на ум специалистам в соответствующей области техники. Подразумевается, что такие другие примеры находятся в рамках объема формулы изобретения, если они имеют структурные элементы, которые не отличаются от буквального языка формулы изобретения, или если они включают в себя эквивалентные структурные элементы с неосновательными отличиями от буквального языка формулы изобретения.
Изобретение относится к области средств безопасной авторизации для верификации идентификационных данных конечного пользователя. Техническим результатом является более надежная аутентификация идентификационных данных конечного пользователя. Компьютерная система запрограммирована с возможностью приема, от вычислительного клиента, запроса аутентификации на компоненте авторизации. Запрос аутентификации включает в себя идентификатор запроса безопасной аутентификации. Компьютерная система также запрограммирована с возможностью подтверждения правильности запроса аутентификации на компоненте авторизации посредством подтверждения правильности идентификатора запроса безопасной аутентификации. Компьютерная система дополнительно запрограммирована с возможностью передачи ответа аутентификации от компонента авторизации вычислительному клиенту. Ответ аутентификации включает в себя код авторизации. Код авторизации представляет собой подтверждение правильности запроса аутентификации. 3 н. и 18 з.п. ф-лы, 9 ил.
Способ аутентификации пользователя, запрашивающего транзакцию у провайдера услуги