Защищенная обработка мандата клиентской системы для доступа к ресурсам на основе web



Защищенная обработка мандата клиентской системы для доступа к ресурсам на основе web
Защищенная обработка мандата клиентской системы для доступа к ресурсам на основе web
Защищенная обработка мандата клиентской системы для доступа к ресурсам на основе web
Защищенная обработка мандата клиентской системы для доступа к ресурсам на основе web
Защищенная обработка мандата клиентской системы для доступа к ресурсам на основе web
Защищенная обработка мандата клиентской системы для доступа к ресурсам на основе web
Защищенная обработка мандата клиентской системы для доступа к ресурсам на основе web

Владельцы патента RU 2332711:

МАЙКРОСОФТ КОРПОРЕЙШН (US)

Настоящее изобретение относится к способам безопасного доступа к ресурсам компьютерных сетей. Технический результат заключается в обеспечении защищенной обработки клиентского мандата, используемого для доступа на основе Web к ресурсам. Такой результат достигается следующим образом. Страница регистрации с интерфейсом для ввода пользовательского мандата представляется на клиентской системе и введенный пользовательский мандат посылается на сервер. В ответ на получение пользовательского мандата сервер генерирует уникальный идентификатор сеанса для клиентской системы. Сервер также получает цифровую подпись для пользовательского мандата на основе текущего ключа в памяти циклически сменяемых ключей и уникального идентификатора сеанса. Сервер затем зашифровывает цифровую подпись и пользовательский мандат на основе ключа шифрования, полученного из текущего ключа и уникального идентификатора сеанса. Когда зашифрованный мандат принимается на клиентской системе, для проверки достоверности мандата используются ключи из памяти циклически сменяемых ключей. Если пользовательский мандат не подтвержден, то пользователю вновь представляется страница регистрации. 2 н. и 10 з.п. ф-лы, 7 ил.

 

Предпосылки изобретения

Ссылки на связанные заявки

Настоящая заявка заявляет приоритет предварительной патентной заявки США № 60/428,152 от 20 ноября 2002 на «Систему и способ для аутентификации на основе cookie (идентификационного файла, сохраняемого на клиентской системе)», причем указанная предварительная заявка включена в настоящее описание посредством ссылки.

Область техники

Настоящее изобретение относится к компьютерным сетям, более конкретно к защищенной обработке мандата клиентской системы для доступа к ресурсам на основе Web.

Предшествующий уровень техники

Компьютерные системы и связанная с ними технология оказывают влияние на многие аспекты общества. В действительности возможности компьютерных систем по обработке информации трансформировали образ жизни и деятельности человека. Компьютерные системы в настоящее время обычно выполняют массу задач (например, обработку текстов, планирование, управление базами данных), которые до появления компьютеров выполнялись вручную. Позднее компьютерные системы были связаны друг с другом для формирования как проводных, так и беспроводных компьютерных сетей, в которых компьютерные системы могут осуществлять электронный информационный обмен для совместного использования данных. В результате множество задач, выполняемых на компьютерной системе (например, речевая связь, доступ к электронной почте, электронная конференц-связь, просмотр Web-страниц в Интернет), включают в себя электронный обмен информацией с одной или несколькими другими компьютерными системами посредством проводных и/или беспроводных компьютерных сетей.

В особенности электронная почта стала важным средством связи. Системы электронной почты в типовом случае включают в себя клиентский компонент электронной почты и серверный компонент электронной почты. Эти компоненты в типовом случае являются программными приложениями, которые конфигурированы для исполнения на компьютерных системах (например, серверах, персональных компьютерах (ПК), портативных компьютерах и цифровых персональных помощниках (карманных компьютерах). Клиентский компонент электронной почты и серверный компонент электронной почты в типовом случае проектируются и конфигурируются для конкретной работы друг с другом. Клиентский компонент электронной почты и серверный компонент электронной почты в общем случае осуществляют связь друг с другом с использованием узкоспециализированных протоколов, таких как RPC (удаленный вызов процедуры), который позволяет, например, прикладной программе на клиентской компьютерной системе выполнять программу на серверной компьютерной системе. Например, клиентский компонент электронной почты может послать сообщение на серверный компонент электронной почты с соответствующими аргументами (параметрами), и серверный компонент электронной почты возвратит сообщение электронной почты.

Некоторые типы серверов электронной почты конфигурированы для разрешения доступа к электронной почте через "zero-touch" (не затронутую) клиентскую систему, такую, например, как клиентская компьютерная система с Web-браузером, а не как специализированная клиентская система электронной почты. В этих типах серверов электронной почты Web-браузер взаимодействует с сервером электронной почты, и любые функции, требуемые для выполнения на клиентской системе, выполняются посредством Web-браузера. Например, клиентская компьютерная система может загрузить инструкции и скрипты языка разметки гипертекста (HTML) (динамически генерируемые такой технологией, как активные серверные страницы), что позволяет Web-браузеру соответствующим образом взаимодействовать с сервером электронной почты. Таким образом, основанная на браузере "zero-touch" клиентская система позволяет пользователю получать доступ к своей электронной почте и другой связанной с почтой информации (такой как календарь, совместно используемая папка) с любой серверной компьютерной системы, которая соединена с общей сетью (например, WWW) c основанной на браузере "zero-touch" клиентской системой. Соответственно, такие протоколы как, например, НТТР (протокол передачи гипертекстовых файлов), используемые для доступа к основанному на Web информационному содержанию в WWW, могут быть использованы для доступа к электронной почте и другой связанной с почтой информации.

Однако основная на браузере доступность к электронной почте и другой связанной с почтой информации также приводит к проблемам потенциальной защищенности, причем некоторые такие вопросы защищенности связаны с кэшированием мандата (учетной записи с параметрами доступа пользователя, сформированными после его успешной аутентификации) в памяти Web-браузера. В среде Web информационное содержание и запросы информационного содержания в общем случае транспортируются с использованием протокола НТТР. Например, запрос протокола НТТР для доступа к информационному содержанию, инициируется пользователем в основанной на браузере клиентской системе и затем пересылается от основанной на браузере клиентской системы через сеть. Запрос затем принимается Web-сервером на серверной компьютерной системе, которая обрабатывает запрос для определения того, авторизован ли пользователь основанной на браузере клиентской системы для доступа к запрошенному информационному содержанию. Если пользователь авторизован для доступа к запрошенному информационному содержанию, то Web-сервер пересылает информационное содержание назад к основанной на браузере клиентской системе в сообщении протокола НТТР.

Некоторые версии протокола НТТР (например, НТТР/1.0) не используют информацию о состоянии. То есть передача по протоколу НТТР (например, запрос сообщения электронной почты) выполняется без знания какой-либо предыдущей передачи сервером (например, других предыдущих запросов сообщений электронной почты). Как таковые, эти версии протокола НТТР не поддерживают концепцию «сеанса», когда пользователь должен зарегистрироваться при входе в систему ("log-in") и при выходе из системы ("log-out"). Другие версии протокола НТТР (например, НТТР/1.1) поддерживают сообщения, подтверждающие активность ("keep-alive"), которые посылаются между клиентской системой и серверной системой для поддержания активности соединения протокола НТТР. Однако использование таких сообщений подтверждения активности является в некоторой степени ненадежным, и даже если используются сообщения, подтверждающие активность, однако нет гарантии того, что соединение протокола НТТР может поддерживаться активным. Кроме того, поскольку запросы клиентской системы часто проходят через промежуточные посреднические серверы, которые совместно используют поддерживаемые активными каналы среди множества пользователей, то для сервера нет возможности определить, был ли принятый запрос послан ранее аутентифицированной клиентской системой. Соответственно, независимо от того, является ли передача протокола НТТР не использующей информацию о состоянии или использующей сообщение, подтверждающее активность, каждый запрос доступа к информационному содержанию, который транспортируется по протоколу НТТР (далее называемый «НТТР-запросом»), должен включать в себя соответствующую информацию аутентификации протокола НТТР.

Соответственно, информация аутентификации протокола НТТР может быть включена в НТТР-запросы посредством специального заголовка, называемого заголовком WWW-авторизации и имеющего следующий формат: "WWW-авторизация:[Аутентификация-Тип] [Мандат]". В первый раз, когда Web-браузер пытается получить доступ к информационному содержанию, которое требует аутентификации (например, представление введенного пользователем мандата), Web-сервер в типовом случае откажет в предоставлении запрашиваемого информационного содержания и вместо него возвратит сообщение протокола НТТР с кодом 401 статуса «Не авторизован». Ответное сообщение протокола НТТР включает в себя заголовок формата: "WWW-Аутентификация: [Метод аутентификации] [realm= значение realm][Вспомогательная информация]".

При приеме Web-браузером ответное сообщение протокола НТТР обуславливает представление Web-браузером запрашивающего мандат диалогового окна, например имя пользователя и пароль. После того как пользователь введет мандат, Web-браузер пересылает исходный НТТР-запрос с заголовком WWW-авторизации, который включает в себя введенный мандат. Если Web-сервер принимает введенный пользователем мандат в качестве действительного и возвращает запрошенное информационное содержание (например, сообщение электронной почты), то Web-браузер кэширует введенный пользователем мандат в памяти браузера. Таким образом, в последующих запросах на тот же самый URL (унифицированный указатель информационного ресурса) или соответствующий производный относительный URL, связанный с тем же самым информационным содержанием, кэшированный мандат извлекается из памяти браузера и включается в соответствующие заголовки WWW-авторизации протокола НТТР. Соответственно, даже если протокол НТТР не использует информацию о состоянии, пользователь освобожден от необходимости повторного ввода мандата для каждого запроса на тот же самый или соответственно производный относительный URL.

К сожалению, Web-браузеры обычно поддерживают кэшированные мандаты в памяти браузера по существу неопределенным образом до тех пор, пока Web-браузер не выполнит выход (путем выхода из программы Web-браузера, или повторной загрузки, или выключения компьютерной системы или клиентского устройства). Таким образом, мандат привилегированного пользователя, который получал доступ к защищенному информационному содержанию, может быть кэширован в памяти браузера после того, как пользователь больше не использует Web-браузер. Если привилегированный пользователь выходит из компьютерной системы, другой непривилегированный пользователь может войти в нее и использовать кнопку обратного просмотра браузера или архивное средство для попытки доступа к защищенному информационному содержанию. Поскольку мандат привилегированного пользователя все еще кэширован в памяти браузера, Web-браузер будет извлекать кэшированный мандат и представлять его вместе с запросом непривилегированного пользователя для доступа к защищенному информационному содержанию. Таким образом, непривилегированный пользователь может получить доступ к защищенному информационному содержанию без необходимости ввода соответствующего мандата в Web-браузер.

Кэшированный мандат может быть особенно проблематичным в местоположениях, где имеются общедоступные компьютеры и/или на компьютерных системах, которые не позволяют закрывать Web-браузер. Примером такой компьютерной системы является Интернет-киоск (компьютер, подсоединенный к Интернет и общедоступный для пользователей). Интернет-киоски часто размещаются в местах общего доступа, например в библиотеках, Интернет-кафе, центрах проведения конференций, чтобы обеспечить публичный доступ к Интернет. Интернет-киоски предназначены для того, чтобы позволить любому пользователю, подошедшему к киоску, получить быстрый доступ к Интернет, не требуя сначала поиска и запуска Web-браузера. Поэтому многие Интернет-киоски конфигурированы таким образом, что Web-браузер всегда активен и не может быть закрыт.

Хотя это обеспечивает эффективный доступ к Интернет, вместе с тем приводит к тому, что кэшированный мандат остается в памяти браузера по существу неопределенно долго. Например, если привилегированный пользователь вводит мандат (например, для доступа к защищенному информационному содержанию) в Интернет-киоск, мандат привилегированного пользователя кэшируется в памяти браузера. Поскольку Web-браузер не закрывается, по существу не имеется способа удалить кэшированный мандат без снятия питания с Интернет-киоска. Таким образом, даже если привилегированный пользователь знает, как очистить кэшированные данные мандата (например, путем закрытия Web-браузера), привилегированный пользователь может не иметь возможности сделать это.

Использование кэшированного мандата для получения доступа к защищенному информационному содержанию является особенно важным для основанных на браузере приложений электронной почты. Например, непривилегированный пользователь может иметь возможность просмотра страниц в обратном порядке для получения доступа к сообщениям электронной почты привилегированного пользователя, которые могли бы содержать конфиденциальные данные. В дополнение к доступу к электронной почте привилегированного пользователя кэшированный мандат также позволяет непривилегированному пользователю выдать себя за привилегированного пользователя. Например, непривилегированный пользователь может получить возможность послать сообщения электронной почты с учетной записи, связанной с привилегированным пользователем.

Возможным решением этой проблемы является вынуждение пользователей повторно аутентифицироваться каждый раз, когда запрашивается информационное содержание. Однако это потребовало бы от пользователей ручного ввода информации аутентификации для каждого НТТР-запроса для доступа к информационному содержанию. Поскольку типовое взаимодействие с Web-сайтом может состоять из десятков и даже сотен НТТР-запросов, это привело бы к тому, что пользователю понадобилось бы повторно вводить мандат десятки и сотни раз. Таким образом, повторный ввод мандата для каждого НТТР-запроса для доступа к информационному содержанию привел бы к существенному увеличению количества времени и объема вводимых данных. Такое решение является слишком обременительным для большинства пользователей, которые предпочли бы ввести свой мандат один раз на сеанс связи. Поэтому предпочтительными были бы системы, способы, компьютерные программные продукты для защищенной обработки клиентского мандата, используемого для доступа к ресурсам на основе Web.

Сущность изобретения

Вышеуказанные проблемы, свойственные предшествующему уровню техники, преодолеваются принципами, лежащими в основе настоящего изобретения, которые направлены на способы, системы, компьютерные программные продукты и структуры данных для защищенной обработки клиентского мандата, используемого для доступа к ресурсам на основе Web. Клиентская компьютерная система (далее упоминается как «клиент») и серверная компьютерная система (далее упоминается как «сервер») подсоединены к общей сети, такой как, например, Интернет. Сервер конфигурирован для обеспечения доступа к ресурсам, таким как, например, сообщения электронной почты, и связанным с ними данным электронной почты. Клиент конфигурирован с браузером, который может запрашивать доступ к ресурсам на основе Web и представлять ресурсы на основе Web пользователю на клиентской компьютерной системе.

Клиент посылает первый запрос доступа к ресурсам на сервер. Например, клиент может послать запрос доступа к сообщению электронной почты, сохраненному на сервере. Сервер принимает первый запрос и, поскольку клиент не аутентифицирован, сервер переадресует клиента на страницу регистрации в ответ на прием первого запроса. Переадресация клиента может включать передачу сервером клиенту ответа, который содержит индикатор переадресации (например, сообщение протокола НТТР с кодом 302 статуса «Временно перемещено») вместе с универсальным идентификатором ресурса (URI) на страницу регистрации. Страница регистрации может быть одной из активных страниц сервера (ASP), которая обеспечивает интерфейс для пользователя на клиентской компьютерной системе, чтобы ввести мандат пользователя. Клиент получает доступ к странице регистрации и использует страницу регистрации для представления мандата пользователя серверу. Клиент может представить мандат, например, с использованием протокола SSL (уровень защищенных разъемов) для защиты отправления протокола НТТР.

Сервер принимает представленный мандат. Сервер посылает зашифрованную информацию, которая представляет мандат пользователя и зависящую от времени цифровую подпись. Может быть, что сервер посылает зашифрованную информацию после делегирования аутентификации представленного мандата органу, уполномоченному для выполнения аутентификации. Сервер генерирует зашифрованные данные с использованием ключа из памяти ключей с циклическим сдвигом (циклически сменяемых ключей). Каждый ключ в памяти ключей с циклическим сдвигом автоматически прекращает действие спустя определенный временной интервал (например, 10 минут). После определенного временного интервала сервер может ввести новый ключ в память ключей с циклическим сдвигом и вывести прекративший действие ключ из памяти ключей с циклическим сдвигом. Число ключей, поддерживаемых в памяти ключей с циклическим сдвигом и определенный временной интервал, могут быть конфигурированы администратором.

При приеме мандата пользователя сервер ассоциирует мандат пользователя с уникальным идентификатором (например, с глобально уникальным идентификатором - GUID). Сервер получает ключ подписи, который может быть использован для цифровой подписи данных, путем хеширования (например, с использованием алгоритмов хеширования SHA-1 или MD-5) комбинации самого последнего ключа в памяти ключей с циклическим сдвигом, уникального идентификатора и первой постоянной последовательности. Сервер затем использует ключ подписи для получения цифровой подписи (например, код аутентификации хешированного сообщения - HMAC) из комбинации уникального идентификатора и мандата пользователя.

Сервер также получает ключ шифрования, который может быть использован для шифрования данных путем хеширования комбинации самого последнего ключа в памяти ключей с циклическим сдвигом, уникального идентификатора и второй постоянной последовательности. Сервер затем использует ключ шифрования для шифрования комбинации цифровой подписи и мандата пользователя в зашифрованную информацию. Сервер передает уникальный идентификатор и зашифрованную информацию клиенту. Клиент принимает уникальный идентификатор и зашифрованную информацию и сохраняет уникальный идентификатор и зашифрованную информацию (например, в соответствующем cookie - идентификационном файле, сохраняемом на клиентской системе).

Клиент посылает второй запрос, включающий в себя уникальный идентификатор и зашифрованную информацию для доступа к ресурсу на сервере. Сервер принимает второй запрос и пытается проверить достоверность мандата пользователя с использованием самого последнего ключа в памяти ключей с циклическим сдвигом. Сервер выводит ключ дешифрирования, который может быть использован для дешифрирования данных путем хеширования комбинации самого последнего ключа в памяти ключей с циклическим сдвигом, уникального идентификатора и второй постоянной последовательности. Сервер использует ключ дешифрирования для дешифрирования зашифрованной информации, тем самым показывая цифровую подпись и мандат пользователя. Сервер выводит ключ подтверждения достоверности, который может быть использован для аутентификации данных, путем хеширования комбинации самого последнего ключа в памяти ключей с циклическим сдвигом, уникального идентификатора и первой постоянной последовательности. Сервер использует ключ подписи проверки достоверности для получения цифровой подписи проверки достоверности из комбинации уникального идентификатора и мандата пользователя.

Сервер сравнивает цифровую подпись проверки достоверности с цифровой подписью. Если цифровая подпись проверки достоверности и цифровая подпись совпадают, то мандат пользователя подтверждается. С другой стороны, если цифровая подпись проверки достоверности и цифровая подпись не совпадают, то мандат пользователя не подтверждается. Если мандат пользователя не подтвержден при использовании самого последнего ключа в памяти ключей с циклическим сдвигом, то используется предпоследний ключ в памяти ключей с циклическим сдвигом в попытке подтвердить мандат пользователя (например, путем использования предпоследнего ключа для генерации ключа дешифрирования и цифровой подписи подтверждения). Сервер может пытаться проверить достоверность мандата пользователя с использованием каждого ключа в памяти ключей с циклическим сдвигом. Подтвержденный мандат пользователя посылается в модуль (например, на сервер электронной почты), который управляет доступом к запрошенному ресурсу (например, к сообщению электронной почты).

Если мандат пользователя подтвержден с использованием ключа из памяти ключей с циклическим сдвигом, который не является самым последним ключом, то сервер определяет, что должна быть получена обновленная зашифрованная информация. Сервер использует самый последний ключ из памяти ключей с циклическим сдвигом для получения обновленной зашифрованной информации (например, путем получения обновленной цифровой подписи и обновленного ключа шифрования из самого последнего ключа). Если подтвержденный мандат пользователя является соответствующим, то клиенту возвращается запрошенный ресурс и, если требуется, также обновленная зашифрованная информация. Клиент получает ресурс и обновленную зашифрованную информацию. Клиент сохраняет обновленную зашифрованную информацию, перезаписывая предыдущую зашифрованную информацию, соответствующую уникальному идентификатору. Если мандат пользователя не может быть подтвержден с использованием любых сменяемых ключей из памяти ключей с циклическим сдвигом, то клиент переадресуется на страницу регистрации, где должен быть введен новый мандат пользователя.

В некоторых вариантах осуществления страница регистрации включает в себя интерфейс для выбора коммуникационных свойств (например, поддержка gzip-сжатия, клиентская компьютерная система является частным или недоверительным клиентом, клиент является усовершенствованным клиентом, который предпочел бы упрощенное информационное содержание), которые могут изменять способы обработки сообщений протокола НТТР. Коммуникационные свойства выбираются на странице регистрации и посылаются в коммуникационный фильтр, чтобы указать коммуникационному фильтру, каким образом должны обрабатываться у клиента передачи протокола НТТР. Выбранные коммуникационные свойства принимаются на сервере.

Сервер запрашивает клиента, чтобы определить, поддерживаются ли выбранные коммуникационные свойства клиентской системой, а также идентифицировать другие релевантные коммуникационные свойства. Сервер конфигурирует коммуникационный фильтр для обработки передач протокола НТТР на клиентской системе в соответствии с любыми выбранными коммуникационными свойствами и идентифицированными другими релевантными коммуникационными свойствами, поддерживаемыми клиентской системой. Основываясь на том, что клиент находится не в защищенном положении, сервер может использовать другую память ключей с циклическим сдвигом, которая имеет более короткий период сдвига и поддерживает уменьшенное количество ключей.

Дополнительные свойства и преимущества изобретения изложены в нижеследующем описании и будут частично очевидны из описания или могут быть изучены при практической реализации изобретения. Признаки и преимущества изобретения могут быть реализованы и получены посредством механизмов и комбинаций, в частности, приведенных в пунктах формулы изобретения. Эти и другие признаки настоящего изобретения будут понятны из нижеследующего описания и формулы изобретения или могут быть изучены при практической реализации изобретения.

Краткое описание чертежей

Для того чтобы описать способ, которым могут быть получены вышеописанные и другие преимущества и признаки, более конкретное описание изобретения, кратко описанное выше, будет проиллюстрировано ссылками на конкретные варианты осуществления, которые иллюстрируются прилагаемыми чертежами. Исходя из того, что эти чертежи изображают только типовые варианты осуществления изобретения и поэтому не должны рассматриваться как ограничивающие его объем, изобретение будет описано и пояснено с дополнительной конкретизацией и деталями с использованием иллюстрирующих чертежей, на которых показано следующее:

Фиг. 1 - подходящая операционная среда для реализации принципов настоящего изобретения.

Фиг. 2А - пример сетевой архитектуры, которая обеспечивает защищенность мандата со стороны клиентской системы, когда клиент запрашивает доступ к ресурсу на сервере в соответствии с настоящим изобретением.

Фиг. 2В - пример сетевой архитектуры, которая обеспечивает использование защищенного мандата со стороны клиентской системы для доступа к ресурсу на сервере в соответствии с настоящим изобретением.

Фиг. 3 - пример блок-схемы способа обеспечения защищенности мандата со стороны клиентской системы, когда клиент запрашивает доступ к ресурсу на сервере в соответствии с настоящим изобретением.

Фиг. 4 - пример блок-схемы способа использования защищенного мандата со стороны клиентской системы для доступа к ресурсу на сервере в соответствии с настоящим изобретением.

Фиг. 5 - пример блок-схемы способа определения коммуникационных свойств, связанных с клиентом, в соответствии с принципами настоящего изобретения.

Фиг. 6 - пример страницы регистрации, которая принимает мандат и варианты выбора коммуникационных свойств в соответствии с принципами настоящего изобретения.

Детальное описание предпочтительных вариантов осуществления изобретения

Принципы настоящего изобретения обеспечивают защищенную обработку клиентского мандата, используемого для доступа к ресурсам на основе Web. Сервер поддерживает по меньшей мере одну память ключей с циклическим сдвигом для хранения одного или нескольких ключей. Каждый ключ в памяти ключей с циклическим сдвигом автоматически прекращает действие спустя определенный временной интервал (например, десять минут). После определенного временного интервала, сервер вводит новый ключ в память ключей с циклическим сдвигом и выводит прекративший действие ключ из памяти ключей с циклическим сдвигом. Число ключей, поддерживаемых в памяти ключей с циклическим сдвигом, и определенный временной интервал, могут быть конфигурированы администратором (например, поддерживаются три ключа и ключи циклически сдвигаются каждые пять минут). Сервер обеспечивает защиту мандата пользователя путем генерации цифровых подписей для мандата пользователя и шифрования мандата пользователя на основе ключей в памяти ключей с циклическим сдвигом.

Страница регистрации с интерфейсом для ввода мандата пользователя представляется на клиентской системе. Мандат пользователя, введенный на клиентской системе, пересылается на сервер. В ответ на прием мандата пользователя сервер генерирует уникальный идентификатор сеанса для клиента. Сервер выводит цифровую подпись для мандата пользователя на основе самого последнего ключа в памяти ключей с циклическим сдвигом и уникального идентификатора сеанса. Сервер затем шифрует цифровую подпись и мандат пользователя на основе ключа шифрования, полученного из самого последнего ключа в памяти ключей с циклическим сдвигом и уникального идентификатора сеанса. Когда зашифрованный мандат возвращается назад к клиенту, ключи из памяти ключей с циклическим сдвигом используются в попытке проверки достоверности мандата. Если ключ из памяти ключей с циклическим сдвигом, использованный первоначально для шифрования мандата пользователя, выведен из памяти ключей с циклическим сдвигом, то клиент переадресуется на страницу регистрации для ввода нового мандата.

Варианты осуществления, входящие в объем настоящего изобретения, включают в себя считываемые компьютером носители для переноса или хранения считываемых компьютером инструкций или структур данных, сохраненных на них. Такие считываемые компьютером носители могут представлять собой любые доступные носители, к которым может иметь доступ универсальная или специализированная компьютерная система. Например, но не в качестве ограничения, такие считываемые компьютером носители могут включать в себя физические носители для хранения данных, такие как RAM (ОЗУ), ROM (ПЗУ), EEPROM (электронно-стираемое программируемое ПЗУ - ЭСППЗУ), CD-ROM (ПЗУ на компакт-дисках) или другие устройства памяти на оптических дисках, на магнитных дисках или других магнитных ЗУ, или любые другие носители записи, которые могут использоваться для переноса или хранения желательных средств программного кода в форме исполняемых компьютером инструкций или структур данных, и доступ к которым может быть осуществлен универсальной или специализированной компьютерной системой.

В данном описании и в последующей формуле изобретения термин «сеть» определяется как один или несколько каналов передачи данных, которые обеспечивают возможность транспортировки электронных данных между компьютерными системами и/или модулями. Когда информация транспортируется или обеспечивается по сети или другому коммуникационному соединению (как проводному, беспроводному, так и комбинации проводных и беспроводных соединений) к компьютерной системе, соединение надлежащим образом рассматривается как считываемая компьютером среда (носитель). Таким образом, любое такое соединение надлежащим образом определяется как считываемый компьютером носитель. Комбинации вышеуказанного должны быть также включены в объем считываемых компьютером сред (носителей). Считываемые компьютером инструкции включают в себя, например, инструкции и данные, которые вызывают выполнение универсальной компьютерной системой или специализированной компьютерной системой определенной функции или группы функций. Исполняемые компьютером инструкции могут представлять собой, например, бинарные инструкции, инструкции промежуточного формата, такие как язык ассемблера или даже исходный код.

В данном описании и в последующей формуле изобретения термин «компьютерная система» определяется как один или несколько модулей программного обеспечения, один или несколько модулей аппаратных средств или их комбинации, которые работают совместно для выполнения операций над электронными данными. Например, определение компьютерной системы включает в себя компоненты аппаратных средств персонального компьютера, а также модули программного обеспечения, такие как операционная система персонального компьютера. Физическая конфигурация модулей не принципиальна. Компьютерная система может включать в себя один или несколько компьютеров, связанных через сеть. Аналогичным образом компьютерная система может включать в себя одиночное физическое устройство (такое как мобильный телефон или персональный цифровой помощник), где внутренние модули (такие, как память и процессор) работают совместно для выполнения операций над электронными данными.

Специалистам в данной области техники должно быть ясно, что изобретение может быть реализовано в сетевых компьютерных средах с множеством типов конфигураций компьютерных систем, включая персональные компьютеры, портативные компьютеры, карманные устройства, мультипроцессорные системы, основанные на микропроцессорах или программируемые бытовые электронные приборы, сетевые ПК, мини-компьютеры, универсальные компьютеры (мэйнфреймы), мобильные телефоны, персональные цифровые помощники (карманные компьютеры для выполнения специальных функций), пейджеры и т.п. Изобретение также может быть реализовано в распределенных системных средах, где локальные и удаленные компьютерные системы, которые связаны (либо проводными линиями передачи данных, либо беспроводными линиями передачи данных, либо линиями, представляющими собой комбинацию проводных и беспроводных линий передачи данных) через сеть и которые выполняют задачи. В распределенной системной среде программные модули могут находиться как в локальных, так и в удаленных устройствах памяти.

Фиг. 1 и последующее обсуждение предназначены для обеспечения краткого обобщенного описания подходящей компьютерной среды, в которой может быть реализовано изобретение. Хотя не требуется, однако изобретение описано в обобщенном контексте исполняемых компьютером инструкций, таких как программные модули, исполняемые компьютерными системами. В общем случае программные модули включают в себя подпрограммы, программы, объекты, компоненты, структуры данных и т.п., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Исполняемые компьютером инструкции, связанные с ними структуры данных и программные модули представляют примеры средств программного кода для исполнения действий способов, раскрытых в настоящем описании. Как показано на фиг. 1, приведенная для примера система для реализации изобретения включает в себя универсальное вычислительное устройство в форме компьютерной системы 120, включающей в себя блок 121 обработки, системную память 122 и системную шину 123, которая связывает различные системные компоненты, включая системную память 122, с блоком 121 обработки. Блок 121 обработки может исполнять инструкции, предназначенные для исполнения компьютером, обеспечивающие реализацию признаков компьютерной системы 120, включая признаки настоящего изобретения. Системная шина 123 может быть любой из различных типов шинных структур, включая шину памяти или контроллер памяти, шину периферийных устройств, локальную шину, использующую любую из разнообразных шинных архитектур. Системная память включает в себя ПЗУ 124 и ОЗУ 125. Базовая система ввода/вывода (BIOS) 126, содержащая базовые подпрограммы, которые способствуют переносу информации между элементами в компьютерной системе 120, например при запуске, может быть сохранена в ПЗУ 124.

Компьютерная система 120 может также включать в себя накопитель 127 на жестких магнитных дисках для считывания с жесткого магнитного диска 139 и записи на него, накопитель 129 на магнитных дисках для считывания со съемного магнитного диска 129 и записи на него и накопитель 130 на оптических дисках для считывания со съемного оптического диска 131 или записи на оптический диск, такой как, например, ПЗУ-КД (CD-ROM) или иные оптические носители записи. Накопитель 127 на жестких магнитных дисках, накопитель 128 на магнитных дисках и накопитель 130 на оптических дисках соединены с системной шиной 123 посредством интерфейса 132 накопителя на жестких дисках, интерфейса 133 накопителя на магнитных дисках и интерфейса 134 на оптических дисках соответственно. Накопители и связанные с ними считываемые компьютером носители обеспечивают энергонезависимую память исполняемых компьютером инструкций, структур данных, программных модулей и других данных для компьютерной системы 120. Хотя описываемая приведенная для примера среда использует жесткий магнитный диск 139, съемный магнитный диск 129 и съемный оптический диск 131, могут использоваться и другие типы считываемых компьютером носителей для хранения данных, такие как магнитные кассеты, платы флэш-памяти, цифровые многофункциональные диски, картриджи Бернулли, ОЗУ, ПЗУ и т.п.

Средство программного кода, содержащее один или более программных модулей, может быть сохранено на жестком диске 139, магнитном диске 129, оптическом диске 131, ПЗУ 124 или ОЗУ 125, включая операционную систему 135, одну или несколько прикладных программ (приложений) 136, другие программные модули 137 и программные данные 138. Пользователь может вводить команды и информацию в компьютерную систему 120 посредством клавиатуры 140, указательного устройства 142 или других устройств ввода (не показаны), таких как, например, микрофон, джойстик, игровая панель, сканер и т.п. Эти и другие устройства ввода могут быть соединены с блоком 121 обработки через интерфейс 146 ввода/вывода, связанный с системной шиной 123. Интерфейс 146 ввода/вывода логически представляет любой из широкого разнообразия интерфейсов, такой как, например, интерфейс последовательного порта, интерфейс PS/2, интерфейс параллельного порта, интерфейс USB (универсальной последовательной шины), или интерфейс IEEE (Институт инженеров по электротехнике и электронике) 1394 (например, интерфейс FireWire (стандарта высокопроизводительной последовательной шины IEEE 1394)), или даже может логически представлять комбинацию различных интерфейсов.

Монитор 147 или иное устройство отображения также соединено с системной шиной 123 через видеоадаптер 148. Громкоговорители 169 или иное устройство аудиовывода также соединено с системной шиной 123 через интерфейс 149. Другие периферийные устройства вывода (не показаны), например, принтеры, также могут быть подсоединены к компьютерной системе 120. Компьютерная система 120 может быть подсоединена к сети, такой, например, как офисная сеть или компьютерная сеть предприятия, домашняя сеть, интранет и/или Интернет. Компьютерная система 120 может посредством таких сетей обмениваться данными с внешними источниками, такими, например, как удаленные компьютерные системы, удаленные приложения и/или удаленные базы данных.

Компьютерная система 120 включает в себя сетевой интерфейс 153, через который компьютерная система 120 получает данные от внешних источников и/или передает данные к внешним источникам. Как показано на фиг.1, сетевой интерфейс 153 обеспечивает обмен данными с удаленной компьютерной системой 183 посредством линии 151 связи. Сетевой интерфейс 153 может логически представлять один или несколько модулей программного обеспечения и/или аппаратных средств, таких, например, как плата сетевого интерфейса и соответствующий стек NDIS (спецификации интерфейса сетевого драйвера). Линия 151 связи представляет часть сети (например, сегмент сети Ethernet), а удаленная компьютерная система 183 представляет узел сети. Например, удаленная компьютерная система 183 может быть серверной компьютерной системой, которая обеспечивает компьютерной системе 120 доступ на основе Web к ресурсам (например, сообщениям электронной почты). С другой стороны, удаленная компьютерная система 183 может быть клиентской компьютерной системой, которая использует доступ на основе Web для доступа к ресурсам от компьютерной системы 120.

Аналогичным образом компьютерная система 120 включает в себя интерфейс 146 ввода/вывода, через который компьютерная система получает данные от внешних источников и/или передает данные к внешним источникам. Интерфейс 1467 ввода/вывода связан с модемом 154 (например, стандартным модемом, кабельным модемом или модемом цифровой абонентской линией (DSL)) посредством линии 159 связи, посредством которой компьютерная система 120 получает данные от внешних источников и/или передает данные к внешним источникам. Как показано на фиг. 1, интерфейс 146 ввода/вывода и модем 154 обеспечивают обмен данными с удаленной компьютерной системой 193 через линию 152 связи. Линия 152 связи представляет собой часть сети, а удаленная компьютерная система 193 представляет узел сети. Например, удаленная компьютерная система 193 может быть серверной компьютерной системой, которая обеспечивает компьютерной системе 120 доступ на основе Web к ресурсам (например, сообщениям электронной почты). С другой стороны, удаленная компьютерная система 193 может быть клиентской компьютерной системой, которая использует доступ на основе Web для доступа к ресурсам от компьютерной системы 120.

Хотя фиг. 1 представляет подходящую операционную среду для настоящего изобретения, принципы настоящего изобретения могут быть использованы в любой системе, которая способна, при соответствующей модификации, если это необходимо, реализовывать принципы настоящего изобретения. Среда, показанная на фиг. 1, является иллюстративной и ни в коем случае не характеризует собой даже малой части широкого разнообразия сред, в которых могут быть использованы принципы настоящего изобретения.

Модули настоящего изобретения, а также связанные с ними программные данные, могут сохраняться и предоставляться для доступа с любого из считываемых компьютером носителей (сред), связанных с компьютерной системой 120. Например, части таких модулей и части связанных с ними программных данных могут быть включены в операционную систему 135, прикладные программы 136, программные модули 137 и/или программные данные 138 для хранения в системной памяти 122. Если устройство массовой памяти, например жесткий магнитный диск 139, связано с компьютерной системой 120, такие модули и связанные с ними программные данные могут быть также записаны в устройстве массовой памяти. В сетевой среде программные модули, описанные в связи с компьютерной системой 120 или ее частями, могут быть сохранены в удаленных устройствах памяти, таких как системная память и/или устройства массовой памяти, связанные с удаленной компьютерной системой 183 и/или удаленной компьютерной системой 193. Исполнение таких модулей может осуществляться в распределенной среде, как описано выше.

Фиг. 2 иллюстрирует пример сетевой архитектуры 200, которая обеспечивает защиту мандата клиентской стороны, когда клиентская компьютерная система запрашивает доступ к ресурсу на сервере. Клиентская компьютерная система 201 и серверная компьютерная система 211 могут быть соединены с общей сетью, такой, например, как локальная сеть (LAN), глобальная сеть (WAN) или даже с Интернет. Клиентская компьютерная система 201 включает в себя браузер 202, который может быть использован для запроса на основе Web доступа к ресурсам и представления полученных ресурсов на клиентской компьютерной системе 201. Cookies (идентификационные файлы, сохраняемые на клиентской системе) 203 могут включать в себя один или более таких файлов cookies, которые сохраняют части данных, ранее полученных от серверной компьютерной системы. Данные в файлах cookies могут быть посланы на соответствующую серверную компьютерную систему для указания персонализированной информации или предпочтений серверной компьютерной системе и/или для освобождения пользователя от необходимости вручную вводить часть сохраненной информации.

Серверная компьютерная система 211 включает в себя сервер 212 электронной почты, который обеспечивает доступ к ресурсам электронной почты, таким как, например, сообщения электронной почты, информация адресной книги, информация календаря. После авторизации для доступа к ресурсам электронной почты от пользователя может потребоваться ввести мандат на сервер 212 электронной почты, чтобы быть аутентифицированным на сервере 212 электронной почты. Сервер 212 электронной почты может сравнить полученный мандат с авторизованным мандатом в базе 213 данных мандатов для определения того, может ли быть удовлетворен запрос доступа к ресурсам электронной почты. Если пользователь авторизован, то сервер 212 электронной почты может возвратить запрошенные ресурсы электронной почты в запрашивающую клиентскую компьютерную систему. Если пользователь не авторизован, то сервер 212 электронной почты может возвратить сообщение отсутствия авторизации (например, сообщение протокола НТТР со статусом 401 кода «не авторизован») на запрашивающую клиентскую компьютерную систему.

Серверная компьютерная система 211 также включает в себя модуль 214 генерации ключей. Модуль 214 генерации ключей может генерировать и вводить новые ключи в состав циклически сменяемых ключей 220 и может выводить ключи, срок действия которых истек, из циклически сменяемых ключей 220. Модуль 214 генерации ключей может быть конфигурирован для поддержания одного или нескольких запоминающих устройств циклически сменяемых ключей. Например, в сетевой архитектуре 200 модуль 214 генерации ключей поддерживает недоверительную память 221 циклически сменяемых ключей и закрытую память 231 циклически сменяемых ключей.

Конкретный интервал времени, за который ключи циклически сменяются, является конфигурируемым. То есть модуль 214 генерации ключей может быть конфигурирован так, чтобы вводить в цикл смены вновь генерированных ключей и удалять из памяти циклически сменяемых ключей тех из них, срок действия которых истек, с определенными интервалами времени. Например, модуль 214 генерации ключей может вводить новый ключ и удалять устаревший ключ из закрытой памяти 231 циклически сменяемых ключей каждые 10 минут. Число ключей, поддерживаемых в памяти циклически сменяемых ключей, также является конфигурируемым. То есть модуль 214 генерации ключей может также конфигурироваться для поддержания определенного количества ключей в памяти циклически сменяемых ключей. Например, модуль 214 генерации ключей может быть конфигурирован для поддержания 3 ключей в недоверительной памяти 221 циклически сменяемых ключей.

Число поддерживаемых ключей и определенные интервалы могут различаться для блоков памяти циклически сменяемых ключей. Например, модуль 214 генерации ключей может поддерживать 3 ключа с определенным интервалом циклической смены, равным 5 минутам, в недоверительной памяти 221 ключей и четыре ключа с определенным интервалом циклической смены, равным 1 часу, в закрытой памяти 231 ключей. В зависимости от свойств, связанных с клиентской компьютерной системой, различные блоки памяти ключей могут использоваться для реализации принципов настоящего изобретения. Стрелки, показанные под ключами в памяти циклически сменяемых ключей, указывают на то, что ключи перемещаются вниз при добавлении нового ключа до тех пор, пока ключ с истекшим сроком не будет выведен из памяти циклически сменяемых ключей. Например, когда новый ключ добавляется в закрытую память циклически сменяемых ключей, ключ 232 будет перемещен в позицию ключа 233.

Серверная компьютерная система 211 также включает в себя страницу 217 регистрации. Страница 217 регистрации может представлять собой Web-страницу (например, страницу из ASP (активных серверных страниц)), которая обеспечивает интерфейс для представления пользовательского мандата и выбора свойств информационного обмена, связанных с клиентской компьютерной системой. В ответ на доступ клиентской компьютерной системы к унифицированному указателю информационного ресурса (URL), соответствующему странице 217 регистрации, серверная компьютерная система 211 может послать страницу 217 регистрации на клиентскую компьютерную систему. Браузер клиентской компьютерной системы может представлять страницу 217 регистрации на клиентской компьютерной системе. Пользовательский мандат и варианты выбора коммуникационных свойств, представленные на странице 217 регистрации, могут быть посланы в серверную компьютерную систему 211.

Серверная компьютерная система 211 также включает в себя коммуникационный фильтр 243. Коммуникационный фильтр 243 может перехватывать передачи протокола НТТР такие, как, например, запросы, ответы и сообщения, которые передаются на серверную компьютерную систему 211 и от нее. Коммуникационный фильтр 243 может обращаться к информации состояния клиентской системы, включенной в зашифрованные cookies (идентификационные файлы, сохраненные на клиентской системе), для определения того, следует ли изменить передачу протокола НТТР между серверной компьютерной системой 211 и клиентской компьютерной системой (например, путем модифицирования заголовков протокола НТТР). Коммуникационный фильтр 243 может также реализовывать криптографические алгоритмы (с использованием ключей из памяти циклически сменяемых ключей) для дешифрирования и подтверждения достоверности пользовательского мандата.

Серверная компьютерная система 211 также включает в себя средство 216 проверки достоверности элемента регистрации. Средство 216 проверки достоверности элемента регистрации может принимать представленный пользовательский мандат, введенный на странице 217 регистрации, и реализовывать криптографический алгоритм (с использованием ключей из памяти циклически сменяемых ключей) для цифровой подписи и шифрования переданного пользовательского мандата. Средство 216 проверки достоверности элемента регистрации может также генерировать уникальные идентификаторы сеанса (например, GUID (глобально уникальные идентификаторы)) для клиентских компьютерных систем, которые запрашивают доступ на основе Web к ресурсам серверной компьютерной системы 211. Средство 216 проверки достоверности элемента регистрации может послать уникальные идентификаторы сеанса и зашифрованную информацию, включая пользовательский мандат и зависящие от времени цифровые подписи, на клиентские компьютерные системы. Например, средство 216 проверки достоверности элемента регистрации может послать уникальные идентификаторы сеанса и зашифрованную информацию на клиентскую компьютерную систему 201 для сохранения в идентификационных файлах (cookies) 203.

На фиг. 3 представлен пример блок-схемы способа 300 обеспечения защищенности мандата со стороны клиентской системы, когда клиент запрашивает доступ к ресурсу на сервере в соответствии с настоящим изобретением. Способ 300 описан ниже относительно клиентской компьютерной системы и серверной компьютерной системы, представленных на фиг. 2А. Способ 300 включает в себя действие передачи первого запроса к серверу (действие 301). Действие 301 может включать в себя передачу клиентской компьютерной системой первого запроса на доступ на основе Web к ресурсу (например, к сообщению электронной почты) на сервер.

Например, клиентская компьютерная система 201 может послать запрос 251, который включает URI 267 почтового сервера, на серверную компьютерную систему 211. URI 267 почтового сервера может представлять собой URI, соответствующий серверу 212 электронной почты. То есть пользователи, которые желают получить доступ к ресурсам электронной почты, поддерживаемым сервером электронной почты, могут пытаться получить доступ на основе Web к ресурсам электронной почты путем доступа к URI почтового сервера 267. Соответственно, может быть, что пользователь на клиентской компьютерной системе 201 вводит команды в браузер 202 для того, чтобы обеспечить посылку клиентской компьютерной системой 201 запроса 251.

Способ 300 включает в себя действие приема первого запроса от клиентской системы (действие 306). Действие 306 может включать в себя прием серверной компьютерной системой первого запроса на доступ на основе Web к ресурсу (например, к сообщению электронной почты) на сервере. Например, серверная компьютерная система 211 может принять запрос 251, который включает в себя URI 267 почтового сервера, от клиентской компьютерной системы 201. Как показано пунктирной линией, проходящей через коммуникационный фильтр 243, коммуникационный фильтр 243 может быть конфигурирован для обеспечения прохождения запроса 251 без изменения запроса 251. Соответственно, запрос 251 может направляться в сервер 212 электронной почты без модифицирования.

Способ 300 включает в себя функциональный ориентированный на результат этап обеспечения защиты мандата клиентской стороны (этап 311). Этап 311 может включать в себя любые соответствующие действия для обеспечения защиты мандата клиентской стороны. Однако в показанном на фиг. 3 примере этап 311 включает в себя соответствующее действие переадресации клиентской системы на страницу регистрации в ответ на первый запрос (действие 307). Действие 307 может включать в себя переадресацию серверной компьютерной системой клиентской компьютерной системы на страницу регистрации в ответ на первый запрос.

В ответ на запрос 251 сервер 212 электронной почты может послать ответ 252, который включает в себя указатель 272 «не авторизован». Ответ 252 может представлять собой сообщение протокола НТТР с кодом 401 статуса «не авторизован», возвращенным в результате запроса 251, который не включал в себя пользовательский мандат. Коммуникационный фильтр 243 может быть конфигурирован для перехвата сообщений, которые включают в себя указатели «не авторизован». Соответственно, коммуникационный фильтр 243 может перехватить сообщение 252.

Коммуникационный фильтр 243 может модифицировать содержимое ответа 252 (например, путем изменения заголовка протокола НТТР) для обеспечения переадресации клиентской компьютерной системы 201 на страницу регистрации, которая обеспечивает интерфейс для ввода пользовательского мандата. Например, коммуникационный фильтр 243 может удалить указатель 272 «не авторизован» из ответа 252 и ввести URI 263 страницы регистрации и указатель 271 переадресации в ответ 252, формируя в результате ответ 252А. Ответ 252А может представлять собой сообщение протокола НТТР с кодом 302 статуса «обнаружен». URI 263 страницы регистрации может представлять собой URI, используемый для доступа к странице 217 регистрации. Соответственно ответ 252А может указывать клиентской компьютерной системе 201, что запрошенный ресурс (например, сообщение электронной почты) вместо этого доступен на URI 263 страницы регистрации.

Способ 300 включает в себя действие переадресации на страницу регистрации (действие 302). Действие 302 может включать в себя переадресацию клиентской компьютерной системы на страницу регистрации, которая обеспечивает интерфейс для приема пользовательского мандата. Например, клиентская компьютерная система 201 может быть переадресована на страницу 217 регистрации. В ответ на прием ответа 252А клиентская компьютерная система 201 может послать запрос 257, который включает в себя URI 263 страницы регистрации, на серверную компьютерную систему 211. В ответ на запрос 257 серверная компьютерная система 211 сможет послать ответ 258, который включает в себя страницу 217 регистрации, на клиентскую компьютерную систему 201. Страница регистрации может представлять собой Web-страницу, такую, например, как страница из активных серверных страниц (ASP).

Браузер 202 может представить страницу 217 регистрации на клиентской компьютерной системе 201. Перейдя от фиг. 3 к фиг. 6, можно видеть, что фиг. 6 иллюстрирует пример страницы регистрации, которая может принимать мандат и варианты выбора коммуникационных свойств в соответствии с принципами настоящего изобретения. Страница 217 регистрации может быть подобна странице 600 регистрации. Страница 600 регистрации включает в себя поле 606, которое может принимать идентификатор пользователя, и поле 607, которое может принимать соответствующий пароль.

Переключатель 601 может быть использован для приема варианта выбора коммуникационного свойства, указывающего, что браузер клиентской стороны является «клиентом повышенного уровня». Переключатель 602 может использоваться для приема варианта выбора коммуникационного свойства, указывающего, что браузер клиентской стороны является «клиентом пониженного уровня». Клиент повышенного уровня может включать в себя функциональные возможности для выполнения усовершенствованной обработки, такой, например, как исполнение скриптов или представление мультимедийного выхода. С другой стороны, клиент пониженного уровня может не включать в себя функциональные возможности для выполнения усовершенствованной обработки. Соответственно степень полноты содержания, возвращаемого от сервера, может быть соответствующим образом подстроена в зависимости от возможностей браузера клиентской стороны. Когда клиент повышенного уровня соединяется с сервером через соединение с уменьшенной шириной полосы и/или высокой задержкой (например, соединение по телефонной линии), выбор клиента пониженного уровня может уменьшить объем содержания, возвращаемого от сервера.

Переключатель 603 может использоваться для приема варианта выбора коммуникационного свойства, указывающего, что браузер клиентской стороны находится в «недоверительной клиентской компьютерной системе». Переключатель 604 может использоваться для приема варианта выбора коммуникационного свойства, указывающего, что браузер клиентской стороны находится в «частной клиентской компьютерной системе». Частная клиентская компьютерная система может представлять собой домашнюю или корпоративную клиентскую компьютерную систему, которая имеет ограниченный публичный доступ (или вообще не имеет его). Недоверительная клиентская компьютерная система может представлять собой клиентскую компьютерную систему, которая имеет расширенный публичный доступ, такой, например, как в случае Интернет-киоска в отеле или аэропорту. Соответственно, защищенность, связанная с информационным содержанием, возвращаемым от сервера, может быть соответствующим образом настроена в зависимости от степени доверительности клиентской компьютерной системы. Переключатель 608 может быть выбран для посылки введенного пользовательского мандата и выбранных коммуникационных свойств на серверную компьютерную систему.

Переходя от фиг. 6 к фиг. 5, можно видеть, что фиг. 5 иллюстрирует пример блок-схемы способа 500 определения свойств передачи, связанных с клиентом, в соответствии с принципами настоящего изобретения. Способ 500 описан ниже относительно клиентской компьютерной системы и серверной компьютерной системы, показанных на сетевой архитектуре 200. Способ 500 включает в себя действие передачи страницы регистрации клиенту (действие 501). Действие 501 может включать в себя передачу серверной компьютерной системой страницы регистрации, которая включает в себя интерфейс для выбора одного или более коммуникационных свойств, которые могут изменять то, каким образом должны обрабатываться сообщения протокола НТТР. Например, серверная компьютерная система 211 может посылать страницу 600 регистрации (или подобную страницу регистрации) к клиентской компьютерной системе 201.

Способ 500 включает в себя действие приема страницы регистрации от сервера (действие 505). Действие 505 может включать прием клиентской компьютерной системой страницы регистрации, которая включает в себя интерфейс для выбора одного или нескольких коммуникационных свойств, которые могут изменять то, каким образом сервер обрабатывает сообщения протокола НТТР. Например, клиентская компьютерная система 201 может принимать страницу 600 регистрации (или подобную страницу регистрации). Способ 500 включает в себя действие представления страницы регистрации в клиентской системе (действие 506). Действие 506 может включать в себя представление браузером клиентской компьютерной системы страницы регистрации на клиентской компьютерной системе. Например, браузер 202 может представлять страницу 600 регистрации (или подобную страницу регистрации) на клиентской компьютерной системе 201.

Способ 500 включает в себя действие приема вариантов выбора по меньшей мере одного из одного или нескольких коммуникационных свойств (действие 507). Действие 507 может включать в себя прием клиентской компьютерной системой вариантов выбора по меньшей мере одного из одного или нескольких коммуникационных свойств на странице регистрации. Например, пользователь на клиентской компьютерной системе 201 может манипулировать устройством ввода (например, клавиатурой и/или мышью) для ввода вариантов выбора коммуникационных свойств в страницу 600 регистрации. Страница 600 регистрации может принимать введенные пользователем варианты выбора. Например, страница 600 регистрации может принимать введенные пользователем варианты выбора либо переключателя 601, либо переключателя 602 и введенные пользователем варианты выбора либо переключателя 603, либо переключателя 604 (возможно, вместе с приемом введенных пользователем данных мандата в поля 606 и 607).

Способ 500 включает в себя действие передачи вариантов выбора коммуникационных свойств к коммуникационному фильтру на сервере (действие 508). Действие 508 может включать в себя пересылку клиентской компьютерной системой вариантов выбора коммуникационных свойств в коммуникационный фильтр на серверной компьютерной системе. Например, клиентская компьютерная система 201 может послать варианты выбора коммуникационных свойств (например, вместе с введенными пользователем данными мандата) на серверную компьютерную систему. Способ 500 включает в себя действие приема по меньшей мере одного варианта выбора коммуникационного свойства от клиентской системы (действие 502). Действие 502 может включать в себя прием серверной компьютерной системой по меньшей мере одного из по меньшей мере одного или нескольких выбираемых вариантов выбора коммуникационных свойств, которые могут быть выбраны со страницы регистрации. Например, коммуникационный фильтр 243 может принять один или несколько вариантов выбора коммуникационных свойств (например, выбранных со страницы 600 регистрации) от клиентской компьютерной системы 201.

Способ 500 включает в себя действие запрашивания клиентской системы для определения того, поддерживается ли принятый по меньшей мере один вариант выбора коммуникационных свойств, а также для идентификации других релевантных коммуникационных свойств, поддерживаемых клиентской системой (действие 503). Действие 503 может включать в себя запрашивание серверной компьютерной системой клиентской компьютерной системы для определения того, поддерживаются ли принятые варианты выбора коммуникационных свойств, и для идентификации других релевантных коммуникационных свойств, поддерживаемых клиентской системой. Например, серверная компьютерная система может определить возможности клиентской компьютерной системы с использованием заголовка протокола НТТР агента пользователя и априорных знаний о клиентской компьютерной системе. Дополнительные возможности клиентской компьютерной системы могут быть определены посредством страницы регистрации и из скриптов (например, скриптов на языке Java), которые исполняются внутри страницы регистрации на клиентской компьютерной системе.

Альтернативно запрашивание клиентской компьютерной системы может включать в себя посылку запросов в клиентскую компьютерную систему, которые вызывают предоставление клиентской компьютерной системой информации конфигурации серверной компьютерной системе. Например, серверная компьютерная система 211 может посылать запросы клиентской компьютерной системе 201, запрашивающие конфигурацию браузера 202. В ответ браузер 202 может указать информацию конфигурации, например номер версии, и то, поддерживает ли браузер 202 сжатие по протоколу НТТР, например сжатие gzip. На основе номера версии серверная компьютерная система 211 может определить, был ли корректным выбор варианта «клиент повышенного уровня» на странице 600 регистрации. Например, серверная компьютерная система может иметь возможность определить, что версия браузера 202 не поддерживает скрипты. Таким образом, даже если был выбран вариант «клиент повышенного уровня», серверная компьютерная система может обеспечить упрощенное информационное содержание для клиентской компьютерной системы 201.

Упрощение информационного содержания может включать в себя сокращение объема содержания, доставляемого клиентской компьютерной системе. Например, в ответ на запрос клиентской системы пониженного уровня о предоставлении консультативной информации серверная компьютерная система может возвратить сокращенную (более лаконичную консультационную информацию). С другой стороны, в ответ на запрос консультационной информации от клиентской системы повышенного уровня серверная компьютерная система может возвратить более расширенную консультационную информацию, например, включающую скрипты поиска и другие расширенные функциональные возможности. Серверная компьютерная система может также изменять доставляемое информационное содержание на основе доверительности клиентской компьютерной системы. Например, серверная компьютерная система может обеспечить консультационную информацию о том, как получить доступ к уязвимой (секретной) информации, частной клиентской компьютерной системе, но не может предоставить ту же самую информацию для недоверительной клиентской компьютерной системы.

Серверная компьютерная система 211 может тестировать браузер 202 для проверки того, что заявленные характеристики поддерживаются надлежащим образом. Например, если браузер 202 указывает на поддержку сжатия gzip, серверная компьютерная система 211 может послать сжатое в режиме gzip содержание на клиентскую компьютерную систему 201 для определения того, обрабатывает ли браузер 202 gzip-сжатое содержание надлежащим образом. Клиентская компьютерная система 201 может конфигурировать соответствующий заголовок запроса, указывая на поддержку gzip-сжатия. Клиентская компьютерная система 201 может включать соответствующий заголовок запроса в клиентский запрос, который посылается к серверной компьютерной системе 211 и принимается ею. В ответ серверная компьютерная система 211 может запросить клиентскую компьютерную систему 201, чтобы определить, соответствующим ли образом клиентская компьютерная система 201 кэширует сжатое в режиме gzip содержание и обрабатывает сжатое в режиме gzip содержание таким образом, что не оказывается отрицательного влияния на защищенность и целостность приложения на основе Web.

Способ 500 включает в себя действие конфигурирования коммуникационного фильтра в соответствии с выбранными и идентифицированными коммуникационными свойствами (действие 504). Действие 504 может включать в себя конфигурирование серверной компьютерной системой коммуникационного фильтра для обработки информационного обмена протокола НТТР с клиентской системой в соответствии с выбранными коммуникационными свойствами и идентифицированными другими релевантными свойствами, поддерживаемыми клиентской системой. Например, серверная компьютерная система 211 может конфигурировать коммуникационный фильтр 243 для обработки информационного обмена протокола НТТР с клиентской компьютерной системой 201 в соответствии с вариантами выбора коммуникационных свойств (например, клиентской компьютерной системы «повышенного уровня» и «недоверительной клиентской системы») и идентифицированными другими релевантными коммуникационными свойствами (например, поддержка информационного обмена протокола НТТР) браузера 202.

Когда сообщение протокола НТТР должно быть послано от серверной компьютерной системы 211 к клиентской компьютерной системе 201, коммуникационный фильтр 243 может изменить заголовки сообщения протокола НТТР и содержание сообщения протокола НТТР для обеспечения того, чтобы информационное содержание соответствовало коммуникационным свойствам для клиентской компьютерной системы 201. Например, если сервер 212 электронной почты посылает сообщение с несжатой информацией электронной почты на клиентскую компьютерную систему 201, коммуникационный фильтр 243 может перехватить сообщение, сжать в режиме gzip его содержание и изменить заголовки сообщения, чтобы указать на то, что информация электронной почты сжата в режиме gzip. Альтернативно, другие модули серверной компьютерной системы, такие, например, как модули сервера информации Интернет (IIS), могут реализовывать zip-сжатие. Соответственно, содержание может быть представлено на клиентской компьютерной системе таким способом, который наилучшим образом использует возможности клиентской компьютерной системы и в соответствии с желаниями пользователя.

Когда серверная компьютерная система принимает вариант выбора, указывающий, что браузер клиентской стороны соответствует «частной клиентской компьютерной системе», то для обеспечения защиты пользовательского мандата может быть использована закрытая память циклически сменяемых ключей, такая как закрытая память 231 ключей. С другой стороны, когда серверная компьютерная система 211 получает вариант выбора, указывающий, что браузер клиентской стороны является «недоверительной клиентской компьютерной системой», то для защиты пользовательского мандата может использоваться недоверительная память 221 циклически сменяемых ключей.

Согласно фиг. 3 способ 300 включает в себя действие использования страницы регистрации для представления мандата на сервер (действие 303). Действие 303 может включать в себя использование клиентской компьютерной системой страницы регистрации для представления мандата на серверную компьютерную систему. Например, клиентская компьютерная система 201 может использовать страницу 217 регистрации для представления мандата (возможно, вместе с вариантами выбора коммуникационных свойств) на серверную компьютерную систему 211. Пользовательский мандат и варианты выбора коммуникационных свойств могут быть включены в качестве элементов регистрации в почтовое сообщение, которое посылается средству проверки достоверности формата элементов регистрации. Например, клиентская компьютерная система 201 может послать почтовое сообщение 254, которое включает в себя элементы 273 регистрации, на серверную компьютерную систему.

Способ 300 включает в себя действие приема пользовательского мандата, который был представлен на странице регистрации (действие 308). Действие 308 может включать в себя прием серверной компьютерной системой пользовательского мандата, который был представлен на странице регистрации. Например, серверная компьютерная система 211 может принимать пользовательский мандат (возможно, вместе с вариантами выбора коммуникационных свойств) от клиентской компьютерной системы 201. Мандат и варианты выбора коммуникационных свойств могут быть приняты как элементы регистрации в почтовом сообщении. Например, серверная компьютерная система 211 может принять почтовое сообщение 254, которое включает в себя элементы 273 регистрации, от клиентской компьютерной системы 201. Как показано пунктирной линией через коммуникационный фильтр 243, коммуникационный фильтр 243 может быть конфигурирован для обеспечения возможности прохождения почтового сообщения 254 без изменения этого почтового сообщения 254. Соответственно, почтовое сообщение 254 может направляться в средство 216 проверки достоверности элементов регистрации без модифицирования. Если потребуется, то между клиентской компьютерной системой и серверной компьютерной системой может быть установлено соединение с взаимной аутентификацией, например с использованием защиты транспортного уровня (TLS) или уровня защищенных разъемов (SSL), для снижения вероятности враждебных процессов или пользовательского анализа пакетов и для снижения вероятности атак посторонних пользователей.

Средство 216 проверки достоверности элементов регистрации может также генерировать уникальный идентификатор, такой как, например, глобально уникальный идентификатор (GUID) для клиентской компьютерной системы 201. Средство 216 проверки достоверности элементов регистрации может использовать цифровую подпись и алгоритмы шифрования для защищенного приема пользовательского мандата (например, включенного в элементы 273 регистрации). Например средство 216 проверки достоверности элементов регистрации может генерировать цифровую подпись, используемую для последующей проверки достоверности принятого пользовательского мандата. Средство 216 проверки достоверности элементов регистрации может получить ключ подписи, который может быть использован для заверки данных цифровой подписью путем хеширования (например, с использованием алгоритмов хеширования SHA1 или MD-5) комбинации самого последнего ключа в памяти циклически сменяемых ключей, генерируемого уникального идентификатора и первой постоянной последовательности. В некоторых вариантах осуществления цифровая подпись представляется как код аутентификации хешированного сообщения. Соответственно, ключ подписи может быть получен по формуле

KSIG=SHA-1(KMOST CURRENT ROTATING, GUID, HMACKeyString).

В формуле (1) KMOST CURRENT ROTATING представляет самый последний ключ в соответствующей памяти циклически сменяемых ключей. Например, если браузер 202 соответствует «частной клиентской компьютерной системе» (например, как это указано в варианте выбора коммуникационных свойств), KMOST CURRENT ROTATING представляет самый последний ключ в закрытой памяти 231 циклически сменяемых ключей (например, ключ 232). GUID представляет уникальный идентификатор, соответствующий клиентской компьютерной системе 201. HMACKeyString представляет постоянную строку текста. Из KSIG может быть генерирован код аутентификации хешированного сообщения в соответствии с формулой

Цифровая подпись =HMAC(KSIG,(GUID,{username:password},Flags)).

В формуле (2) HMAC представляет алгоритм кода аутентификации хешированного сообщения такой, например, как описано в Запросе комментариев (RFC) 2104. Часть формулы (2) (GUID,{username:password},Flags) представляет, что GUID, пользовательский мандат и флаги, представляющие варианты выбора коммуникационных свойств, включены в качестве текстового ввода в алгоритм кода аутентификации хешированного сообщения. Если требуется, пользовательский мандат может быть преобразован в текстовый формат (например, путем base64 кодирования пользовательского мандата) для совместимости с алгоритмом кода аутентификации хешированного сообщения. Хотя алгоритм описан в терминах кода аутентификации хешированного сообщения, однако используемый для генерации цифровой подписи алгоритм не принципиален, и по существу может использоваться любая цифровая подпись, дайджест (комбинация) или алгоритм кода аутентификации.

Средство 216 проверки достоверности элементов регистрации может также получить ключ шифрования, который может быть использован для шифрования данных, путем хеширования комбинации самого последнего ключа в памяти циклически сменяемых ключей, уникального идентификатора и второй постоянной последовательности. Соответственно ключ шифрования может быть получен в соответствии с формулой

KENC=SHA-1(KMOST CURRENT ROTATING, GUID, EncryptKeyString).

В формуле (3) KMOST CURRENT ROTATING представляет самый последний ключ в памяти циклически сменяемых ключей, который был использован при генерации ключа подписи. Таким образом, если ключ 232 был использован для генерации KSIG, то ключ 232 может также использоваться для генерации KENC. GUID представляет уникальный идентификатор, соответствующий клиентской компьютерной системе 201. EncryptKeyString представляет постоянную строку текста, которая отличается от HMACKeyString. Соответственно зашифрованная информация может генерироваться в соответствии с уравнением

Зашифрованная информация = KENC[Цифровая подпись, {username: password}, Flags].

В формуле (4) Цифровая подпись представляет Цифровую подпись, генерируемую по формуле (2), {username: password} представляет пользовательский мандат и Flags представляет варианты выбора коммуникационных свойств.

Этап 311 включает в себя соответствующее действие посылки зашифрованной информации, которая представляет по меньшей мере часть пользовательского мандата и зависящую от времени подпись (действие 309). Действие 309 может включать передачу серверной компьютерной системой зашифрованной информации, которая представляет по меньшей мере часть пользовательского мандата и зависящую от времени подпись, на клиентскую компьютерную систему. Например, средство 216 проверки достоверности элемента регистрации может послать сообщение 255, которое включает в себя GUID 274 и зашифрованный мандат 275, на клиентскую компьютерную систему 201. Как показано пунктирной линией через коммуникационный фильтр 243, коммуникационный фильтр 243 может быть конфигурирован для обеспечения возможности прохождения сообщения 255 без изменения этого сообщения 255. Соответственно сообщение 255 может направляться на клиентскую компьютерную систему 201 без изменения.

Способ 300 включает в себя действие приема зашифрованной информации, которая представляет по меньшей мере часть пользовательского мандата и зависящую от времени подпись (действие 304). Действие 304 может включать в себя прием клиентской компьютерной системой зашифрованной информации, которая представляет по меньшей мере часть пользовательского мандата и зависящую от времени подпись, от серверной компьютерной системы. Например, клиентская компьютерная система 201 может получить сообщение 255, которое включает в себя GUID 274 и зашифрованный мандат 275 от серверной компьютерной системы 211. Сообщение 255 может быть конфигурировано для обеспечения сохранения в клиентской компьютерной системе 201 GUID 274 и зашифрованного мандата 275 в cookies (идентификационных файлах, сохраняемых в клиентской системе) 203. Например, сообщение 255 может быть конфигурировано следующим образом:

Set-Cookie:sessionid={GUID};path=/

Set-Cookie:creddata={Encrypted Information};path=/

Способ 300 включает в себя действие передачи второго запроса, который включает в себя зашифрованную информацию (действие 305). Действие 305 может включать в себя передачу клиентской компьютерной системой второго запроса доступа к ресурсу на основе Web (например, сообщению электронной почты, запрошенному в первом запросе). Например, клиентская компьютерная система 201 может послать запрос 256, который включает в себя URI 267, GUID 274 и зашифрованный мандат 275, на серверную компьютерную систему 211. Способ 300 включает в себя действие приема второго запроса, который содержит зашифрованную информацию (действие 310). Действие 310 может включать в себя прием серверной компьютерной системой второго запроса на доступ к ресурсу на основе Web (например, сообщению электронной почты, запрошенному в первом запросе). Например, серверная компьютерная система 211 может принять запрос 256, который включает в себя URI 267 почтового сервера, GUID 274 и зашифрованный мандат 275, от клиентской компьютерной системы 201.

В некоторых вариантах осуществления клиентская компьютерная система уже хранит соответствующие cookies (идентификационные файлы) с GUID и зашифрованной информацией в памяти браузера. Сохраненные GUID и зашифрованная информация могут быть использованы при запросе доступа к ресурсу на основе Web (например, к данным электронной почты) на сервере. На фиг. 2В иллюстрируется пример сетевой архитектуры, которая обеспечивает использование защищенного мандата клиентской стороны для доступа к ресурсу на сервере в соответствии с настоящим изобретением. На фиг. 4 иллюстрируется пример блок-схемы способа 400 использования защищенного мандата клиентской стороны для доступа к ресурсу на сервере в соответствии с настоящим изобретением. Способ 400 описан по отношению к клиентской компьютерной системе и серверной компьютерной системе, изображенным на фиг. 2В.

Способ 400 включает в себя действие передачи запроса, который включает в себя идентификатор сеанса и зашифрованный пользовательский мандат, на доступ к ресурсу на основе Web на сервере (действие 401). Действие 401 может включать в себя передачу клиентской компьютерной системой запроса на доступ к ресурсу на основе Web на серверной компьютерной системе. Например, клиентская компьютерная система 201 может послать запрос 291, который включает в себя URI 267 почтового сервера, GUID 274 и зашифрованный мандат 275, на серверную компьютерную систему 211. URI 267 почтового сервера представляет собой URI, который обеспечивает доступ к ресурсам электронной почты, управляемым сервером 212 электронной почты. GUID 274 представляет уникальный идентификатор сеанса, который ранее был послан от серверной компьютерной системы 211 к клиентской компьютерной системе 201. Зашифрованный мандат 275 представляет зашифрованный пользовательский мандат и зависящую от времени подпись, которые ранее были посланы от серверной компьютерной системы 211 на клиентскую компьютерную систему 201. Зашифрованный мандат 275 может генерироваться из ключа в соответствующей памяти циклически сменяемых ключей.

Способ 400 включает в себя действие приема запроса, который включает в себя идентификатор сеанса и зашифрованный пользовательский мандат, для доступа к ресурсу на основе Web на сервере (действие 404). Действие 404 может включать в себя прием серверной компьютерной системой запроса на доступ к ресурсу на основе Web на серверной компьютерной системе. Например, серверная компьютерная система 211 может принять запрос 291, который включает в себя URI 267 почтового сервера, GUID 274 и зашифрованный мандат 275, от клиентской компьютерной системы 201.

Способ 400 включает в себя действие попытки проверки достоверности зашифрованного пользовательского мандата с использованием самого последнего ключа в памяти циклически сменяемых ключей (действие 405). Действие 405 может включать в себя попытку проверки достоверной серверной компьютерной системой по меньшей мере части пользовательского мандата с использованием самого последнего ключа в памяти циклически сменяемых ключей. Например, если указывается, что браузер 202 находится на частной клиентской компьютерной системе, то серверная компьютерная система может попытаться проверить достоверность зашифрованного мандата 275 с использованием ключа 232. С другой стороны, если указывается, что браузер 202 находится на недоверительной клиентской компьютерной системе, то серверная компьютерная система может попытаться проверить достоверность зашифрованного мандата 275 с использованием ключа 222. Средство 237 проверки достоверности мандата может получить ключ дешифрирования, который может использоваться для дешифрирования данных, путем хеширования комбинации из самого последнего ключа из соответствующей памяти циклически сменяемых ключей, уникального идентификатора сеанса и второй постоянной последовательности (используемой при получении ключа шифрования). Соответственно ключ дешифрирования может быть получен в соответствии с формулой

KDCR=SHA-1(KMOST CURRENT ROTATING, GUID, EncryptKeyString).

В формуле (5) KMOST CURRENT ROTATING представляет самый последний ключ в соответствующей памяти циклически сменяемых ключей (например, ключ 232 или 222). GUID представляет уникальный идентификатор, соответствующий клиентской компьютерной системе 201. EncryptKeyString представляет постоянную строку текста, используемую при получении KENC. Соответственно, средство 237 проверки достоверности мандата может дешифрировать зашифрованную информацию для получения цифровой подписи, пользовательского мандата и флагов, представляющих варианты выбора коммуникационных свойств, в соответствии с формулой

Цифровая подпись,{username:password},Flags =KDCR,[Зашифрованная информация].

Средство 237 проверки достоверности мандата может получить ключ проверки достоверности, который может быть использован для генерирования цифровой подписи проверки достоверности, путем хеширования комбинации самого последнего ключа в памяти циклически сменяемых ключей, уникального идентификатора и первой постоянной последовательности. В некоторых вариантах осуществления цифровая подпись проверки достоверности представляется как код аутентификации хешированного сообщения. Соответственно ключ проверки достоверности может быть получен в соответствии с формулой

KVAL=SHA-1(KMOST CURRENT ROTATING, GUID, HMACKeyString).

В формуле (7) KMOST CURRENT ROTATING представляет самый последний ключ в соответствующей памяти циклически сменяемых ключей. GUID представляет уникальный идентификатор, соответствующий клиентской компьютерной системе 201. HMACKeyString представляет постоянную строку текста, используемую при получении ключа подписи. Из KVAL и с использованием полученных пользовательского мандата и флагов из формулы (6) код аутентификации хешированного сообщения может генерироваться в соответствии с формулой

Проверка Цифровой подписи =HMAC(KVAL(GUID,{username: password}, Flags)).

В формуле (8) HMAC представляет алгоритм кода аутентификации хешированного сообщения. Часть (GUID {username: password}, Flags) формулы (8) представляет, что GUID, пользовательский мандат и Flags, представляющие варианты выбора коммуникационных свойств, включены как текстовый ввод в алгоритм кода аутентификации хешированного сообщения. Хотя алгоритм описан в терминах кода аутентификации хешированного сообщения, однако алгоритм, используемый для генерации цифровой подписи проверки достоверности, не является принципиальным, и по существу может использоваться любая цифровая подпись, дайджест или алгоритм кода аутентификации.

Если цифровая подпись проверки достоверности равна цифровой подписи, то пользовательский мандат, представленный в зашифрованном мандате 275, подтверждается. Соответственно, коммуникационный фильтр 243 образует заголовок авторизации (например, заголовок авторизации протокола НТТР), который включает в себя подтвержденный пользовательский мандат. Коммуникационный фильтр 243 может ввести заголовок авторизации в запрос на доступ к ресурсу на основе Web. Например, коммуникационный фильтр 243 может удалить зашифрованный мандат 275 из запроса 291 и ввести мандат 289 в запрос 291 для получения в результате запроса 291А.

Если цифровая подпись проверки достоверности не равна цифровой подписи, то пользовательский мандат не подтверждается. Соответственно, средство 237 проверки достоверности мандата повторяет функции, определенные формулами (5)-(8) на основе предыдущего ключа в памяти циклически сменяемых ключей. Например, для браузера клиентской стороны на частной клиентской компьютерной системе средство 237 проверки достоверности мандата может использовать ключ 233. С другой стороны, для браузера клиентской стороны на недоверительной клиентской компьютерной системе средство 237 проверки достоверности мандата может использовать ключ 223. Средство проверки достоверности мандата может пытаться проверить достоверность пользовательского мандата с использованием каждого ключа в соответствующей памяти циклически сменяемых ключей. Подтвержденный пользовательский мандат может быть включен в соответствующий заголовок авторизации.

В некоторых вариантах осуществления вместе с зашифрованным мандатом включается индекс для индикации циклически сменяемого ключа, который должен использоваться при попытке проверки достоверности зашифрованного мандата (например, циклически сменяемый ключ, который ранее использовался для шифрования мандата). Например, клиентская компьютерная система 201 может включать в себя индекс, который идентифицирует в запросе 291 циклически сменяемый ключ в недоверительной памяти 221 циклически сменяемых ключей или в закрытой памяти 231 циклически сменяемых ключей. Индекс может иметь числовое значение (например, 0, 1, 2 и т.д.), которое идентифицирует генерацию циклически сменяемого ключа, который должен использоваться. Например, если клиентская компьютерная система 201 является частной клиентской компьютерной системой, индекс 0 может идентифицировать ключ 232. Аналогичным образом, если клиентская компьютерная система 201 является недоверительной клиентской компьютерной системой, индекс 2 может идентифицировать ключ 224. Соответственно, использование индекса может повысить эффективность процесса проверки достоверности. Если мандат не подтвержден циклически сменяемым ключом, идентифицированным индексом, может использоваться другой ключ в соответствующей памяти циклически сменяемых ключей при попытке проверки достоверности мандата.

Способ 400 включает в себя действие направления запроса в модуль, который управляет доступом к запрошенному ресурсу на основе Web (действие 406). Действие 406 может включать в себя посылку серверной компьютерной системой запроса к модулю, который управляет доступом к ресурсу на основе Web. Например, коммуникационный фильтр 243 может направить запрос 291А, который включает в себя URI 267 почтового сервера и мандат 289 (в том виде, как выявлено из зашифрованного мандата 275), на сервер 212 электронной почты. Сервер 212 электронной почты может представлять собой модуль, который управляет доступом на основе Web к ресурсам электронной почты. Сервер 212 электронной почты может сравнивать мандат 289 с данными базы 213 данных мандатов для определения того, авторизован ли доступ на основе Web к запрошенному ресурсу электронной почты.

Способ 400 включает в себя действие определения, следует ли вывести обновленный пользовательский мандат из самого последнего ключа в памяти циклически сменяемых ключей (действие 407). Действие 407 может включать в себя определение серверной компьютерной системой того, следует ли вывести обновленную зашифрованную информацию, представляющую пользовательский мандат, и зависящую от времени подпись из самого последнего ключа в памяти циклически сменяемых ключей. Если пользовательский мандат подтвержден с использованием ключа из памяти циклически сменяемых ключей иного, чем самый последний ключ из памяти циклически сменяемых ключей, то сервер определяет, что должна быть выведена обновленная информация. Например, если средство 237 проверки достоверности подтверждает зашифрованный мандат с использованием ключа 224, то коммуникационный фильтр 243 может определить, что необходимо получить обновленный зашифрованный мандат для пользовательского мандата, представленного в зашифрованном мандате.

Соответственно, как представлено пунктирной линией, коммуникационный фильтр 243 может дополнительно послать запрос 294 обновления идентификационного файла (cookie) в средство 216 проверки достоверности элементов регистрации. Средство 216 проверки достоверности элементов регистрации может использовать самый последний циклически сменяемый ключ в соответствующей памяти циклически сменяемых ключей для получения обновленной зашифрованной информации (например, путем получения обновленной цифровой подписи и обновленного ключа шифрования из самого последнего ключа). Средство 216 проверки достоверности элементов регистрации может возвратить обновленный GUID и обновленный зашифрованный мандат коммуникационному фильтру 243. Например, как представлено пунктирной стрелкой, средство 216 проверки достоверности элементов регистрации возвращает сообщение 295, которое включает в себя обновленный GUID 296 и обновленный зашифрованный мандат 297 в коммуникационный фильтр 243.

Если мандат 289 является соответствующим для доступа на основе Web к ресурсам электронной почты на сервере 212 электронной почты, то сервер 212 электронной почты может возвратить ресурс электронной почты в ответ на запрос 291А. Например, сервер 212 электронной почты может возвратить ресурс 292, который включает в себя ресурс 293 (например, сообщение электронной почты), в коммуникационный фильтр 243. С другой стороны, если мандат 289 не соответствует доступу на основе Web к ресурсам электронной почты на сервере 212 электронной почты, то сервер 212 электронной почты может возвратить указание отсутствия авторизации в ответ на запрос 291А. Например, как представлено пунктирной стрелкой, сервер 212 электронной почты может возвратить ответ 294, который включает в себя указатель 272 «не авторизован» в коммуникационный фильтр 243. Когда коммуникационный фильтр 243 получает указатель «не авторизован», коммуникационный фильтр 243 может переадресовать клиентскую компьютерную систему на страницу 217 регистрации.

Если подтвержденный пользовательский мандат является соответствующим, коммуникационный фильтр 243 может послать запрошенный ресурс на клиентскую компьютерную систему 201. Например, если зашифрованный мандат подтвержден с использованием самого последнего ключа из соответствующей памяти циклически сменяемых ключей, то ответ 292, включающий в себя ресурс 293, принимается коммуникационным фильтром 243. Коммуникационный фильтр 243 может послать ответ 293 на клиентскую компьютерную систему 201. Соответственно ресурс 293 может быть представлен в браузере.

Если подтвержденный пользовательский мандат является соответствующим, коммуникационный фильтр 243 может также послать обновленный зашифрованный мандат и обновленный GUID вместе с ресурсом на клиентскую компьютерную систему 201. Например, если зашифрованный мандат 275 подтвержден с использованием ключа из памяти циклически сменяемых ключей, который не является самым последним ключом в памяти циклически сменяемых ключей, то ресурс 293, обновленный GUID 296 и обновленный зашифрованный мандат 297 могут быть приняты коммуникационным фильтром 243. Как представлено пунктирной стрелкой, коммуникационный фильтр 243 может затем послать ответ 276, который включает в себя ресурс 293, обновленный GUID 296 и обновленный зашифрованный мандат, на клиентскую компьютерную систему 201.

Способ 400 включает в себя действие приема ресурса вместе с обновленным идентификатором сеанса и обновленным зашифрованным мандатом пользовательским мандатом на браузере клиентской стороны (действие 402). Действие 402 может включать в себя прием клиентской компьютерной системой запрошенного ресурса вместе с обновленным идентификатором сеанса и обновленной зашифрованной информацией, представляющей по меньшей мере часть пользовательского мандата и обновленную зависящую от времени подпись. Например, клиентская компьютерная система 201 может принимать от серверной компьютерной системы 201 ответ 276, который включает в себя ресурс 293, обновленный GUID 296 и обновленный зашифрованный пользовательский мандат 297. Способ 400 включает в себя действие сохранения обновленного идентификатора сеанса и обновленного зашифрованного мандата в соответствующих идентификационных файлах (cookies) (действие 403). Действие 403 может включать в себя сохранение клиентской компьютерной системой обновленного идентификатора сеанса и обновленной зашифрованной информации в соответствующих идентификационных файлах (cookies) на клиентской компьютерной системе. Например, в соответствующих идентификационных файлах - cookies 203 может быть сохранен обновленный GUID 296 и обновленный зашифрованный пользовательский мандат 297 путем перезаписи GUID 274 и зашифрованного мандата 275. Ресурс 293 может быть представлен в браузере 202.

Настоящее изобретение может быть реализовано в других конкретных формах, без отклонения от сущности или существенных признаков изобретения. Описанные варианты осуществления должны рассматриваться во всех аспектах только как иллюстративные, но не ограничительные. Поэтому объем изобретения должен определяться пунктами формулы изобретения, а не предшествующим описанием. Все изменения, которые находятся в пределах содержания и диапазона эквивалентности формулы изобретения, должны быть включены в ее объем.

1. Способ поддержки пользовательского мандата, используемого для доступа на основе Web к ресурсу на серверной компьютерной системе, в клиентской компьютерной системе, включающий действия, при которых клиентская компьютерная система посылает запрос на доступ на основе Web к ресурсу, причем запрос включает в себя уникальный идентификатор сеанса и зашифрованную информацию, представляющую, по меньшей мере, часть пользовательского мандата и зависящую от времени цифровую подпись, причем зависящая от времени подпись получена, по меньшей мере, из части пользовательского мандата и зависящего от времени ключа подписи, при этом зашифрованная информация зашифрована с использованием зависящего от времени ключа шифрования, причем зависящий от времени ключ подписи и зависящий от времени ключ шифрования получены из ключа в памяти циклически сменяемых ключей, клиентская компьютерная система получает запрошенный ресурс вместе с обновленным уникальным идентификатором сеанса и обновленной зашифрованной информацией на браузере клиентской стороны, причем обновленная зашифрованная информация представляет, по меньшей мере, часть пользовательского мандата и обновленную зависящую от времени подпись, при этом зависящая от времени подпись получена, по меньшей мере, из части пользовательского мандата и обновленного зависящего от времени ключа подписи, причем зашифрованная информация зашифрована с использованием обновленного зависящего от времени ключа шифрования, при этом обновленный зависящий от времени ключ подписи и обновленный зависящий от времени ключ шифрования получены из самого последнего ключа в памяти циклически сменяемых ключей, и клиентская компьютерная система сохраняет обновленный идентификатор сеанса и обновленную зашифрованную информацию в соответствующих идентификационных файлах на клиентской компьютерной системе.

2. Способ по п.1, отличающийся тем, что действие посылки клиентской компьютерной системой запроса на доступ на основе Web к ресурсу включает в себя действие посылки сообщения протокола HTTP, запрашивающего доступ на основе Web к ресурсу электронной почты на сервере электронной почты.

3. Способ по п.1, отличающийся тем, что действие получения клиентской компьютерной системой запрошенного ресурса вместе с обновленным уникальным идентификатором сеанса и обновленной зашифрованной информацией в браузере клиентской стороны включает в себя получение обновленного идентификатора сеанса и обновленной зашифрованной информации как результата использования, при генерации зашифрованной информации, ключа, не являющегося самым последним ключом в памяти циклически сменяемых ключей.

4. Способ по п.1, отличающийся тем, что действие сохранения клиентской компьютерной системой обновленного уникального идентификатора сеанса и обновленной зашифрованной информации в соответствующих идентификационных файлах на клиентской компьютерной системе включает в себя перезапись обновленным уникальным идентификатором сеанса и обновленной зашифрованной информацией уникального идентификатора сеанса и зашифрованной информации в памяти браузера.

5. Способ определения достоверности пользовательского мандата, используемого для доступа на основе Web к ресурсам на серверной компьютерной системе, в серверной компьютерной системе, включающий действия, при которых серверная компьютерная система получает запрос от клиентской компьютерной системы на доступ на основе Web к ресурсу на сервере, причем запрос включает в себя: уникальный идентификатор сеанса, который является уникальным для конкретного сеанса между серверной компьютерной системой и клиентской компьютерной системой, и зашифрованную информацию, представляющую, по меньшей мере, часть пользовательского мандата и зависящую от времени подпись, причем зависящая от времени подпись получена, по меньшей мере, из части пользовательского мандата и зависящего от времени ключа подписи, при этом зашифрованная информация принята от клиентской компьютерной системы и зашифрована с использованием, по меньшей мере, одного ключа, полученного из памяти циклически сменяемых ключей серверной компьютерной системы, и зависящего от времени ключа шифрования, зависящий от времени ключ подписи получен из ключа в памяти циклически сменяемых ключей на сервере, и зависящий от времени ключ шифрования получен из ключа в памяти циклически сменяемых ключей на сервере и уникального идентификатора сеанса, при этом модуль генерации ключей на сервере генерирует ключи для памяти циклически сменяемых ключей, которые передаются на клиентскую компьютерную систему, серверная компьютерная система пытается проверить достоверность, по меньшей мере, части пользовательского мандата с использованием самого последнего ключа в памяти циклически сменяемых ключей и определяет, что, по меньшей мере, часть пользовательского мандата не может быть подтверждена с использованием самого последнего ключа в памяти циклически сменяемых ключей, серверная компьютерная система пытается проверить достоверность, по меньшей мере, части пользовательского мандата с использованием других ключей в памяти циклически сменяемых ключей, серверная компьютерная система подтверждает достоверность пользовательского мандата с использованием ключа в памяти циклически сменяемых ключей иного, чем самый последний ключ в памяти циклически сменяемых ключей, серверная компьютерная система направляет запрос в модуль, который управляет доступом на основе Web к запрошенному ресурсу, и в ответ на действие подтверждения достоверности серверной компьютерной системой пользовательского мандата с использованием ключа, иного, чем самый последний ключ памяти циклически сменяемых ключей, серверная компьютерная система определяет, что должна быть получена обновленная зашифрованная информация, представляющая, по меньшей мере, часть пользовательского мандата и зависящую от времени подпись, с использованием самого последнего ключа в памяти циклически сменяемых ключей.

6. Способ по п.5, отличающийся тем, что действие подтверждения достоверности серверной компьютерной системой пользовательского мандата с использованием ключа в памяти ключей иного, чем самый последний ключ в памяти циклически сменяемых ключей, дополнительно включает в себя действие, в котором серверная компьютерная система определяет, что основанная на ранее генерированном ключе в памяти циклически сменяемых ключей, по меньшей мере, часть пользовательского мандата является достоверной, причем ранее генерированный ключ введен в память циклически сменяемых ключей перед самым последним ключом.

7. Способ по п.5, отличающийся тем, что действие определения серверной компьютерной системой того, что обновленная зашифрованная информация, представляющая, по меньшей мере, часть пользовательского мандата и зависящую от времени подпись, должна быть получена с использованием самого последнего ключа в памяти циклически сменяемых ключей, включает в себя определение, что обновленная зашифрованная информация, представляющая, по меньшей мере, часть пользовательского мандата и зависящую от времени подпись, должна быть получена с использованием самого последнего ключа в памяти циклически сменяемых ключей.

8. Способ по п.7, отличающийся тем, что действие определения, что обновленная зашифрованная информация, представляющая, по меньшей мере, часть пользовательского мандата и зависящую от времени подпись, должна быть получена с использованием самого последнего ключа в памяти циклически сменяемых ключей, включает в себя определение, что серверная компьютерная система подтвердила достоверность, по меньшей мере, части пользовательского мандата на основе ранее генерированного ключа в памяти циклически сменяемых ключей, причем ранее генерированный ключ введен в память циклически сменяемых ключей перед самым последним ключом.

9. Способ по п.5, отличающийся тем, что дополнительно включает в себя действие переадресации серверной компьютерной системой клиентской компьютерной системы на страницу регистрации, которая обеспечивает интерфейс для получения пользовательского мандата.

10. Способ по п.5, отличающийся тем, что действие определения серверной компьютерной системой того, что обновленная зашифрованная информация, представляющая, по меньшей мере, часть пользовательского мандата и зависящую от времени подпись, должна быть получена с использованием самого последнего ключа в памяти циклически сменяемых ключей, включает в себя получение обновленной зашифрованной информации и зависящей от времени подписи с использованием самого последнего ключа в памяти циклически сменяемых ключей.

11. Способ по п.10, отличающийся тем, что дополнительно включает в себя действие посылки серверной компьютерной системой запрошенного ресурса, обновленного уникального идентификатора сеанса и обновленной зашифрованной информации на клиентскую компьютерную систему.

12. Способ по п.5, отличающийся тем, что память циклически сменяемых ключей хранит множество ключей, при этом, когда новый ключ генерируется в модуле генерации ключей, то вновь генерированный ключ включается в память циклически сменяемых ключей, а более старый ключ выводится из памяти циклически сменяемых ключей.



 

Похожие патенты:

Изобретение относится к области электросвязи, а именно к области криптографических устройств и способов проверки электронной цифровой подписи (ЭЦП). .

Изобретение относится к области электросвязи, а именно к области криптографических устройств и способов проверки электронной цифровой подписи (ЭЦП). .

Изобретение относится к системе управления цифровыми правами (УЦП), а в частности к способу и системе для оформления объекта прав (ОП) в системе УЦП. .

Изобретение относится к портативному электронному устройству для верификации входной тестовой последовательности символов по заранее заданной последовательности символов.
Изобретение относится к области инфаструктуры открытых ключей (PKI), а именно - регистрации и активации функций PKI в (инфаструктуры открытых ключей в SIM-картах. .

Изобретение относится к способам и системам обработки визуализируемой цифровой информации. .

Изобретение относится к протоколам взаимодействия равноправных объектов сетевой структуры и, в частности, касается защитных инфраструктур для протоколов взаимодействия равноправных объектов.

Изобретение относится к протоколу цифровых сигналов и процессу для передачи или переноса сигналов между устройством-хостом и устройством-клиентом при высоких скоростях передачи данных.

Изобретение относится к области сетей передачи данных. .

Изобретение относится к области сетей передачи данных. .

Изобретение относится к области связи. .

Изобретение относится к способу, предназначенному для распределения паролей. .

Изобретение относится к системам управления импортом контента в домен, содержащий несколько устройств. .
Изобретение относится к способу и устройству для уничтожения конфиденциальных документов. .
Наверх