Защищенная обработка мандата клиентской системы для доступа к ресурсам на основе web
Иллюстрации
Показать всеНастоящее изобретение относится к способам безопасного доступа к ресурсам компьютерных сетей. Технический результат заключается в обеспечении защищенной обработки клиентского мандата, используемого для доступа на основе 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)), или даже может логически представлять комбина