СПОСОБ РЕАЛИЗАЦИИ МЕХАНИЗМА ОТСЛЕЖИВАНИЯ СОСТОЯНИЯ В СЕАНСЕ СВЯЗИ МЕЖДУ СЕРВЕРОМ И КЛИЕНТСКОЙ СИСТЕМОЙ
METHOD OF REALISING STATUS MONITORING MECHANISM IN COMMUNICATION SESSION BETWEEN SERVER AND CLIENT SYSTEM

Изобретение относится к способу реализации механизма отслеживания состояния в сеансе связи между сервером и клиентской системой,
в котором, в течение сеанса связи, данные прикладной программы обеспечиваются для клиентской системы в доступной форме, только если клиентская система имеет допустимое значение информации отслеживания состояния, включающей в себя
передачу сообщения, несущего новое значение информации отслеживания состояния, для клиентской системы.
Изобретение также относится к способу проведения сеанса связи с сервером, реализующим механизм отслеживания состояния, включающему в себя
поддерживание информации отслеживания состояния в клиентской системе, проводящей сеанс связи, в котором, в течение сеанса связи, данные прикладной программы принимаются от сервера и представляются доступными для целевой прикладной программы в клиентской системе, только если информация отслеживания состояния, поддерживаемая в клиентской системе, соответствует по значению допустимому значению, и
прием нового значения информации отслеживания состояния в сообщении от сервера.
Изобретение также относится к серверу, к клиентской системе и к компьютерной программе.
Примеры таких способов известны из работы Кристола Д. (Kristol, D.) и Монталли Л. (Montulli, L.), "Механизм управления состоянием ППГТ (протокола для пересылки гипертекстов)", RFC (Запросы на комментарии) 2965, Internet Society, октябрь 2000 г. В этой публикации описывается способ, для сервера пункта отправления, отправки информации о состоянии агенту пользователя, и для агента пользователя - возвращения информации о состоянии к серверу пункта отправления. В ней описываются три заголовка, Cookie (полезный совет), Cookie 2 и Set-Cookie 2 (набор полезных советов 2), которые переносят информацию о состоянии между участвующими серверами пункта отправления и агентами пользователя. Агент пользователя сохраняет отдельный тракт информации о состоянии, которая прибывает через ответные заголовки Set-Cookie 2 от каждого сервера пункта отправления. Значение информации о состоянии ("Cookie") может быть каким-либо значением, которое сервер пункта отправления выбирает для отправки. Содержание ответного заголовка Set-Cookie 2 может считывать любой, кто исследует заголовок Set-Cookie 2. Если агент пользователя принимает ответный заголовок Set-Cookie 2, название которого такое же, как название Cookie, которое он предварительно сохранил, новое название Cookie заменяет старое. Когда он посылает запрос на сервер пункта отправления, агент пользователя включает заголовок запроса Cookie, если он сохранил заголовки Cookie, которые являются соответствующими для этого запроса.
Проблема известного способа состоит в том, что он не имеет средства, обеспечивающего предотвращение возможности для того, чтобы какой-либо объект, который перехватывает новые значения Cookie, посылаемые сервером, выдавал себя за клиентскую систему.
Задачей изобретения является предоставить способы, сервер, клиентскую систему и компьютерную программу упомянутых выше типов с признаками, заключающимися в том, чтобы помогать предотвращать возможность для любых систем, пытающихся выдавать себя за другую клиентскую систему, поддерживать то же самого состояние, что и первоначальная клиентская система.
Эта задача решается посредством способа реализации механизма отслеживания состояния в соответствии с изобретением, который отличается вычислением значения информации отслеживания состояния, допустимого после передачи сообщения, с использованием в качестве входных данных по меньшей мере нового значения, переносимого в сообщении, и элемента данных, поддерживаемого в клиентской системе.
Поскольку, в течение сеанса связи, данные прикладной программы обеспечиваются для клиентской системы в доступной форме, только если клиентская система имеет допустимое значение информации отслеживания состояния, и значение, допустимое после передачи сообщения, рассчитывается с использованием в качестве входных данных элемента данных, поддерживаемого в клиентской системе, то для клиента требуется элемент данных, чтобы продолжать получать доступ к данным прикладной программы. Данные прикладной программы могут, например, содержать ключи для дешифрования зашифрованного содержания, которые распределяются общепринятой системой доступа. Поскольку элемент данных поддерживается в клиентской системе, его не требуется посылать в сообщении, несущем новое значение информации отслеживания состояния, так что перехват сообщения, несущего новое значение, не имеет никакого немедленного последствия. Поскольку значение информации отслеживания состояния, допустимое после передачи, вычисляется с использованием в качестве входных данных также нового значения, переносимого в сообщении для клиентской системы, состояние клиента эволюционирует, как определяется сервером. Это помогает противодействовать атакам при помощи замещения оригинала информации.
Вариант осуществления способа включает в себя получение элемента данных, поддерживаемого в клиентской системе, в форме сгенерированного для данного случая числа.
Сгенерированное для данного случая число или число, используемое однажды, помогает противодействовать несанкционированному клонированию клиентской системы. Даже если клиентская система клонируется, то есть копируется так, что элемент данных, поддерживаемый в клиентской системе, также является доступным для двойника, то двойник прекращает функционировать в конце сеанса связи. Новый элемент данных, такой как сгенерированное для данного случая число, может быть установлен в начале нового сеанса связи между сервером и клиентской системой. В качестве альтернативы элемент данных, такой как сгенерированное для данного случая число, предварительно генерируется у клиента прежде, чем устанавливается сеанс связи.
В варианте осуществления сервер узнает сгенерированное для данного случая число. Сервер может принимать сгенерированное для данного случая число от клиентской системы, например, в начале сеанса связи. В качестве альтернативы сервер может узнавать сгенерированное для данного случая число клиента перед началом сеанса связи. Сгенерированное для данного случая число может быть, например, известно серверу посредством начального числа, из которого может быть получено сгенерированное для данного случая число.
Эффект заключается в том, что сгенерированное для данного случая число не требуется сообщать от сервера клиентской системе, поскольку оно может быть сгенерировано этой клиентской системой. Сервер будет узнавать сгенерированное для данного случая число от клиентской системы, так что обе стороны смогут вычислять допустимые значения информации отслеживания состояния. В частности, там, где информация отслеживания состояния является однонаправленной функцией, невозможно получать допустимые значения информации отслеживания состояния посредством контролирования только сообщений от сервера к клиентской системе. Эти сообщения не позволяют получать элемент данных, поддерживаемый в клиентской системе.
Вариант осуществления способа включает в себя вычисление по меньшей мере одного из нового значения, переносимого в сообщении, и значения информации отслеживания состояния, допустимого после передачи сообщения, с использованием в качестве входных данных по меньшей мере значения информации отслеживания состояния, допустимого при выполнении вычисления.
Эффект заключается в том, что значение информации отслеживания состояния, допустимое после передачи сообщения, несущего новое значение информации отслеживания состояния, зависит от допустимого прежде значения информации отслеживания состояния. Это помогает гарантировать, что сеанс связи продолжается только между теми системами, которые участвовали в сеансе связи в течение его всей продолжительности вплоть до передачи этого сообщения.
Вариант осуществления, в котором клиентская система обеспечивается набором идентификаторов предоставлений права на дешифровку зашифрованной информации, связанной с соответствующими предоставлениями права, включает в себя
поддерживание записи, отражающей предоставления права, соответствующие набору идентификаторов, и
вычисление значения информации отслеживания состояния, допустимого после передачи сообщения, используя в качестве дополнительных входных данных данные, соответствующие по меньшей мере частям каждого из идентификаторов в наборе, обеспечиваемом для клиентской системы.
Набор предоставлений права не обязательно должен сообщаться клиентской системе сервером, реализующим механизм отслеживания состояния. Предоставления права могут содержаться в данных прикладной программы. Можно напомнить, что клиентская система обеспечивается данными прикладной программы в доступной форме, только если она имеет допустимое значение информации отслеживания состояния. Поэтому, в этом варианте осуществления, клиентская система также должна вычислять значение информации отслеживания состояния, допустимое после передачи сообщения, используя в качестве дополнительных входных данных данные, соответствующие по меньшей мере частям каждого из идентификаторов в наборе, обеспечиваемом для нее. Эффект заключается в том, что набор идентификаторов, обеспечиваемых для клиентской системы, не может модифицироваться без соответствующей модернизации записи, поддерживаемой в сервере.
Вариант осуществления способа включает в себя вычисление значения информации отслеживания состояния, допустимого после передачи сообщения, с использованием сетевого адреса клиентской системы, предпочтительно адреса, зафиксированного в оборудовании, используемом клиентской системой, в сети, через которую осуществляется связь между сервером и клиентской системой.
Это помогает противодействовать атакам с человеком посредине, поскольку значение информации отслеживания состояния привязано к сетевому местоположению сервера. Общепринятые протоколы связи учитывают проверку этого местоположения.
Вариант осуществления способа включает в себя вычисление нового значения, переносимого в сообщении, с использованием в качестве входных данных по меньшей мере сгенерированного для данного случая числа, устанавливаемого и поддерживаемого сервером, в котором сгенерированное для данного случая число сообщается клиентской системе в начале сеанса связи.
Эффект заключается в том, что клиентская система может иметь относительную гарантию в отношении поддерживания сеанса связи только с сервером, который первоначально генерировал это сгенерированное для данного случая число. Это помогает мешать попыткам обманывать клиентскую систему в отношении раскрытия информации другому серверу.
В варианте осуществления данные прикладной программы обеспечиваются для клиентской системы при получении сообщения с запросом от клиентской системы, несущего данные, соответствующие допустимому значению информации отслеживания состояния.
Таким образом, множество передач данных прикладной программы могут быть выполнены после одной проверки, заключающейся в том, что клиентская система все еще имеет допустимое значение информации отслеживания состояния.
В варианте осуществления данные прикладной программы обеспечиваются в зашифрованной форме, причем они зашифрованы так, чтобы позволять расшифровку с помощью ключа, получаемого при использовании по меньшей мере части допустимого значения информации отслеживания состояния.
Эффект заключается в обеспечении непрерывной, более строгой проверки значения информации отслеживания состояния, поддерживаемого клиентом. Варианты, в которых клиентская система не передает сообщения, содержащие значение информации отслеживания состояния как поддерживаемое ею, также стали возможными. Проверка допустимости значения информации отслеживания состояния как поддерживаемого клиентом в действительности выполняется в клиентской системе, когда делается попытка дешифровать данные прикладной программы. Дополнительный эффект заключается в том, что доступ к данным прикладной программы может быть ограничен интервалом, на протяжении которого клиентская система находится в определенном состоянии.
В варианте осуществления клиентская система обеспечивается набором данных содержания, зашифрованных так, чтобы позволять их расшифровку с помощью ключа, в котором данные прикладной программы включают в себя значения ключа.
Эффект заключается в том, что проверку на допустимость значения информации отслеживания состояния, которое клиент имеет, не требуется выполнять с каждой передачей данных содержания, а только обеспечивать ключ в доступной форме. Это является относительно эффективным, все еще ограничивая доступ к данным содержания для клиентских систем в определенном состоянии.
В соответствии с другим аспектом серверная система в соответствии с изобретением включает в себя устройство обработки данных и запоминающее устройство и выполнена с возможностью выполнять способ реализации механизма отслеживания состояния в соответствии с изобретением.
В соответствии с другим аспектом способ проведения сеанса связи с сервером, реализующим механизм отслеживания состояния в соответствии с изобретением, отличается вычислением дополнительного значения информации отслеживания состояния с использованием в качестве входных данных по меньшей мере нового значения в сообщении и элемента данных, хранящегося в клиентской системе, и
заменой информации отслеживания состояния, поддерживаемой в клиентской системе, на дополнительное значение.
Эффект заключается в том, что по получении нового значения информации отслеживания состояния в сообщении от сервера допустимое значение информации отслеживания состояния может быть получено только в клиентской системе, которая также хранит этот элемент данных. Элемент данных не включен в сообщение, так что следующее допустимое значение не может быть получено посредством контролирования сообщений от сервера.
Вариант осуществления способа включает в себя получение элемента данных, сохраненного в клиентской системе в форме сгенерированного для данного случая числа в начале сеанса связи.
Эффект заключается в том, что, если клиентская система клонирована с элементом данных, двойник останется функциональным только до конца текущего сеанса связи.
Вариант осуществления включает в себя генерирование сгенерированного для данного случая числа в клиентской системе, предпочтительно посредством генерирования произвольного числа, и сообщение сгенерированного для данного случая числа серверу в начале сеанса связи.
Таким образом, допустимые значения информации отслеживания состояния не могут быть получены посредством контролирования только последовательного обмена информацией между сервером и клиентской системой или всех сообщений от сервера к клиентской системе.
В варианте осуществления, в котором клиентская система поддерживает набор идентификаторов предоставления права на дешифровку зашифрованной информации, связанной с соответствующими предоставлениями права, способ включает в себя
вычисление дополнительного значения информации отслеживания состояния, используя в качестве дополнительных входных данных данные, соответствующие по меньшей мере частям каждого из идентификаторов в этом наборе.
Эффект заключается в том, что набор идентификаторов не может изменяться без того, чтобы приводить к недопустимым значениям информации отслеживания состояния. Поскольку значение информации отслеживания состояния эволюционирует, оно остается случайным на протяжении всего сеанса связи.
В варианте осуществления, в котором связь между сервером и клиентской системой осуществляется через сеть и в котором клиентская система имеет адрес в сети, предпочтительно зафиксированный в оборудовании, используемом клиентской системой, способ включает в себя
вычисление дополнительного значения информации отслеживания состояния, используя в качестве дополнительных входных данных данные, соответствующие по меньшей мере части сетевого адреса.
Таким образом, состояние клиентской системы привязано к сетевому адресу, используемому для выполнения связи с сервером.
Вариант осуществления способа включает в себя прием сообщения, несущего сгенерированное для данного случая число, устанавливаемое сервером в начале сеанса связи, и
вычисление ожидаемого значения для нового значения информации отслеживания состояния, полученного в сообщении от сервера, с использованием по меньшей мере сгенерированного для данного случая числа, установленного сервером, в качестве входных данных,
в котором дополнительное значение информации отслеживания состояния вычисляется только при определении, что ожидаемое значение соответствует значению, полученному в сообщении от сервера.
Эффект заключается в том, что выполняется проверка, чтобы установить, что сеанс связи продолжается с тем же самым сервером.
Вариант осуществления способа включает в себя вычисление ожидаемого значения для нового значения информации отслеживания состояния, полученного в сообщении от сервера, с использованием в качестве входных данных по меньшей мере значения информации отслеживания состояния, поддерживаемого в клиентской системе при получении сообщения,
в котором дополнительное значение информации отслеживания состояния вычисляется только при определении, что ожидаемое значение соответствует значению, полученному в сообщении от сервера.
Эффект заключается в том, что клиентская система может проверять, что сообщение, якобы полученное от сервера, получено от того же самого сервера, который следит за эволюционированием состояния клиентской системы.
Вариант осуществления способа включает в себя запрос передачи данных прикладной программы посредством отправки сообщения, включающего в себя данные, соответствующие по меньшей мере части информации отслеживания состояния, поддерживаемой в клиентской системе.
Эффект заключается в том, что клиентская система доказывает серверу, что она находится в правильном состоянии, чтобы принять данные прикладной программы. Только тогда данные прикладной программы передаются, что помогает предотвращать ненужные передачи в несанкционированные клиентские системы.
Вариант осуществления способа включает в себя
прием данных прикладной программы в зашифрованной форме и
использование информации отслеживания состояния, поддерживаемой в клиентской системе, чтобы вывести ключ для дешифрования зашифрованных данных прикладной программы.
Эффект заключается в том, что проверка состояния клиентской системы выполняется в клиентской системе каждый раз, когда последняя пытается получить данные прикладной программы в доступной форме.
Вариант осуществления включает в себя
прием потока зашифрованных данных содержания и
получение ключа для дешифрования зашифрованных данных содержания из данных прикладной программы, принятых от сервера.
Вариант осуществления представляет собой реализацию механизма отслеживания состояния в общепринятой системе доступа или цифровой системе управления полномочиями.
В соответствии с другим аспектом клиентская система согласно изобретению включает в себя устройство обработки данных и запоминающее устройство и выполнена с возможностью выполнять способ проведения сеанса связи с сервером в соответствии с изобретением.
В соответствии с другим аспектом изобретения обеспечена компьютерная программа, включающая в себя набор команд, которые способны, когда включены в машиночитаемую среду, заставлять систему, имеющую возможности обработки информации, выполнять способ в соответствии с изобретением.
Изобретение будет объяснено более подробно со ссылкой на прилагаемые чертежи, на которых:
фиг. 1 - схематическое изображение, показывающее сервер и клиентскую систему для реализации механизма отслеживания состояния; и
фиг. 2A-2B формируют схему работы, иллюстрирующую действия и объектный поток в варианте осуществления механизма отслеживания состояния.
Серверная система 1 реализует механизм отслеживания состояния в сеансе связи с клиентской системой 2. Обмен данными происходит через сеть 3, обычно через глобальную сеть (ГЛС). Сеть 3 может содержать некоторое количество различных типов сетей, например оптических, беспроводных, спутниковых или коммутируемых телефонных сетей общего пользования. Механизм отслеживания состояния может быть реализован в конфигурации, в которой связь является однонаправленной, от серверной системы 1 к клиентской системе 2. В наиболее сложном варианте осуществления, описываемом в данном описании, данные передаются в обоих направлениях.
В этом примере клиентская система 2 обеспечена сетевым интерфейсом 4, интерфейсом 5 для шины, которая подсоединяет центральный процессор 6, основным запоминающим устройством 7 и интерфейсом 8 для среды 9 для хранения информации. Интерфейс 5 дополнительно обеспечивает подключения к видеопроцессору 10 и процессору 11 обработки звукового сигнала. Клиентская система 2 может быть представлена персональным компьютером, пультом управления для игр, компьютерной приставкой к телевизору или аналогичным устройством. Она может быть обеспечена интерфейсом (не показан) для маркера доступа, таким как интеллектуальная карта. В качестве альтернативы, защищенная часть программного обеспечения, устанавливаемого или временно сохраняемого в клиентской системе 2, может функционировать как маркер доступа. Такая защищенная часть программного обеспечения может обеспечиваться в форме запутываемого кода компьютерной программы, который является трудным для восстановления структурной схемы и алгоритма работы по исходным текстам.
Клиентская система 2 дополнительно обеспечивается клиентским программным модулем, который дает ей возможность проводить сеанс связи с серверной системой 1. Клиентский программный модуль взаимодействует с программным обеспечением, выполняемым в серверной системе 1, чтобы обеспечивать возможность последнему реализовывать форму прослеживания состояния. Клиентская система 2 устанавливает такой сеанс связи, чтобы получать данные прикладной программы для прикладной программы декодирования данных содержания, выполняемой в клиентской системе. Данные прикладной программы включают в себя идентификаторы предоставлений права, чтобы дешифровать и декодировать определенные потоки звуковой и/или видеоинформации, которые клиентская система 2 может принимать от серверной системы 1, от другого сервера, присоединенного к сети 2, или от съемного носителя данных. Такие идентификаторы предоставлений права сохраняются в устройстве или программном модуле, который функционирует как маркер доступа. Данные прикладной программы дополнительно включают в себя зашифрованные ключи для дешифрования данных содержания. Следует отметить, что клиентская система также может включать в себя прикладную программу, чтобы реализовывать систему управления цифровыми полномочиями (УЦП) для получения доступа к зашифрованному набору данных содержания. Данные прикладной программы, являющиеся целевыми в такой прикладной программе, будут включать в себя зашифрованные объекты цифровых полномочий, каждый из которых идентифицирует набор данных содержания, к которым клиентская система имеет право обращаться.
Клиентская система 2 обеспечивается данными прикладной программы в доступной форме, только если она имеет допустимое значение информации отслеживания состояния, в этом примере переменную состояния ПС. Чтобы предотвращать простое клонирование клиентской системы, переменная состояния ПС может сохраняться в защищенном компоненте клиентской системы 2, например в маркере доступа. Клиентская система 2 может обеспечиваться данными прикладной программы в зашифрованной форме независимо от того, имеет ли клиентская система в настоящее время допустимую переменную состояния ПС, с данными прикладной программы, которые можно расшифровать, только если присутствует допустимая переменная состояния ПС. Дополнительно или в качестве альтернативы, данные прикладной программы могут быть перенесены от серверной системы 1 в клиентскую систему 2, только если клиентская система 2 доказала, что она имеет допустимую в настоящее время переменную состояния.
Переменная состояния ПС изменяется через равные промежутки времени по распоряжению серверной системы 1. С этой целью она посылает сообщение клиентской системе 2, несущее новое значение переменной состояния ПС. После изменения значения переменной состояния любая копия клиентской системы 2 прекратит обеспечиваться данными прикладной программы в доступной форме. Даже если бы такая копия должна была также принять сообщение, несущее новое значение переменной состояния, она также должна была иметь значение элемента данных, поддерживаемое в клиентской системе 2. Это происходит потому, что значение переменной состояния, допустимое после передачи сообщения, несущего новое значение переменной состояния ПС, вычисляется клиентской системой 2 с использованием в качестве входных данных по меньшей мере нового значения, переносимого в сообщении, и элемента данных, поддерживаемого в клиентской системе 2.
Элемент данных, поддерживаемый в клиентской системе 2, устанавливается заново при запуске каждого сеанса связи. Он является допустимым только для одного сеанса связи и имеет значение, уникальное для связанного с ним сеанса связи. Он может быть получен из одноразового заполнения незначащей информацией. Для дополнительной защиты от клонирования клиентской системы 2 клиентская система может генерировать элемент данных, например, в виде произвольного числа.
Фиг. 2A-2B более подробно иллюстрируют механизм отслеживания состояния. Эта схема не иллюстрирует, что, пока выполняются иллюстрируемые операции, клиентская система 2 непрерывно обеспечивается данными прикладной программы в доступной форме, только если клиентская система имеет допустимое значение информации отслеживания состояния.
c
c
Клиентская система 2 генерирует сгенерированное для данного случая число N клиента, элемент данных, упомянутый выше, на первом этапе 12. Затем она (этап 13) генерирует первое значение переменной состояния ПС. Первое значение переменной состояния ПС может быть любым значением, выбранным клиентской системой 2. Оно также может быть функцией значения, выбранного наугад клиентской системой 2, и одной или больше других переменных, включая, в частности, сгенерированное для данного случая число N клиента.
c
Клиентская система 2 посылает (этап 14) сообщение с запросом в серверную систему 1 для установления нового сеанса связи. Сообщение с запросом включает в себя сгенерированное для данного случая число N клиента и первое значение переменной состояния ПС.
c
Серверная система 1 принимает сообщение с запросом (этап 15). Серверная система 1 принимает сгенерированное для данного случая число N клиента от клиентской системы 2 в начале сеанса связи, поскольку оно включено в сообщение с запросом, и серверная система 1 извлекает его из этого сообщения (этап 16). Сообщение с запросом может дополнительно содержать данные, обеспечивающие возможность серверной системе выполнять начальную верификацию предоставления права клиенту, чтобы принимать запрашиваемые данные прикладной программы.
s
s
s
s
s
c
После получения сообщения с запросом серверная система 1 вычисляет новое значение переменной состояния (этап 17) с использованием в качестве входных данных по меньшей мере сгенерированного для данного случая числа N сервера, устанавливаемого (этап 18) и поддерживаемого серверной системой 1. Сгенерированное для данного случая число N сервера сохраняется в запоминающем устройстве в серверной системе 1 в течение продолжительности сеанса связи, но не используется впоследствии. Сгенерированное для данного случая число N сервера может быть основано на произвольном числе. Сгенерированное для данного случая число N сервера сообщается клиентской системе 2 в начале сеанса связи, а именно в ответном сообщении, посылаемом (этап 19) в ответ на сообщение с запросом клиентской системы. Новое значение переменной состояния, переносимое в ответном сообщении, вычисляется с использованием в качестве дополнительных входных данных по меньшей мере значения информации отслеживания состояния, допустимого при выполнении вычисления, то есть значения, полученного в сообщении с запросом. Это связывает значения переменной состояния в том смысле, что допустимое в настоящее время значение всегда зависит от всех предыдущих значений, также как от сгенерированного для данного случая числа N сервера и сгенерированного для данного случая числа N клиента.
Как заявлено выше, клиентская система 2 имеет располагаемый набор идентификаторов предоставлений права на дешифровку зашифрованной информации, связанной с соответствующими предоставлениями права. Серверная система 1 поддерживает запись, отражающую предоставления права, соответствующие набору идентификаторов, сохраняемому клиентской системой 2. При вычислении нового значения переменной состояния для включения в ответное сообщение серверная система 1 использует в качестве дополнительных входных данных данные, соответствующие по меньшей мере частям каждого из идентификаторов в наборе, обеспечиваемом для клиентской системы 2.
Серверная система 1 также может использовать сетевой адрес клиентской системы 2, предпочтительно адрес, зафиксированный в сетевом интерфейсе 4, такой как MAC-адрес (адрес протокола управления доступом к передающей среде), в качестве входных данных для алгоритма, используемого для вычисления нового значения переменной состояния. Значением адреса в качестве альтернативы может быть адрес межсетевого протокола (IP).
s
c
Алгоритм, используемый для вычисления нового значения переменной состояния, может быть сильной или слабой однонаправленной функцией, также известной как функция лазейки. Эффект заключается в том, что сгенерированное для данного случая число N сервера и сгенерированное для данного случая число N клиента являются трудными для вычисления только на основании значений переменной состояния, обмениваемых между серверной системой 1 и клиентской системой 2. Алгоритм может содержать хеш-функцию.
Клиентская система 2 принимает (этап 20) новое значение переменной состояния ПС в ответном сообщении от серверной системы 1. Новое значение переменной состояния ПС извлекается из ответного сообщения (этап 21). Однако оно прямо не заменяет значение переменной состояния, предварительно поддерживаемое как допустимое значение в клиентской системе 2.
s
s
s
Ответное сообщение, принятое клиентской системой 2, также несет сгенерированное для данного случая число N сервера, устанавливаемое сервером в начале сеанса связи. Клиентская система 2 извлекает сгенерированное для данного случая число N сервера из ответного сообщения (этап 22). Она вычисляет (этап 23) ожидаемое значение для нового значения переменной состояния, полученного в ответном сообщении от серверной системы 1, с использованием по меньшей мере сгенерированного для данного случая числа N сервера в качестве входных данных, а также значения переменной состояния, сгенерированного на этапе 13 и поддерживаемого в клиентской системе 2, также как набора идентификаторов предоставления права и сетевого адреса клиентской системы 2.
s
Если вычисленное ожидаемое значение соответствует значению переменной состояния, полученному в ответном сообщении от серверной системы 1, то клиентская система 2 переходит к вычислению (этап 24) дополнительного значения информации отслеживания состояния с использованием в качестве входных данных нового значения в ответном сообщении и элемента данных, хранящегося в клиентской системе, а именно сгенерированного для данного случая числа N клиента, а также набора идентификаторов предоставления права и сетевого адреса клиентской системы 2. Дополнительное значение заменяет значение переменной состояния, поддерживаемое в клиентской системе 2, и используется для установления, что клиентская система 2 имеет право принимать данные прикладной программы в доступной форме.
c
Серверная система 1 также вычисляет (этап 25) значение информации отслеживания состояния, допустимое после передачи ответного сообщения, с использованием в качестве входных данных по меньшей мере нового значения, переносимого в сообщении, и клиентского сгенерированного для данного случая числа N. Это позволяет ей проверить состояние клиентской системы 2 при обеспечении последней данными прикладной программы в доступной форме.
В течение сеанса связи клиентская система 2 может дополнительно посылать сообщения с запросом (этап 26). Они включают в себя данные, соответствующие по меньшей мере части значения переменной состояния ПС, поддерживаемой в клиентской системе 2. В ответ на каждую или только на некоторые из сообщений с запросом серверная система 1 выполнят этапы, обозначенные на фиг. 2B.
После приема сообщения с запросом (этап 27) серверная система 1 извлекает значение переменной состояния, переносимое в сообщении с запросом (этап 28). Если извлеченное значение соответствует ожидаемому значению, вычисленному на этапе 25, серверная система 1 генерирует новое значение переменной состояния (этап 29).
s
c
Новое значение переменной состояния может быть рассчитано, как и прежде, с использованием в качестве входных данных значения переменной состояния, допустимого до сих пор, сгенерированного для данного случая числа N сервера, набора идентификаторов предоставления права и сетевого адреса клиентской системы 2. Новое значение переменной состояния посылается (этап 30) в клиентскую систему 2 в дополнительном ответном сообщении. Снова следующее допустимое значение переменной состояния вычисляется (этап 31) с использованием в качестве входных данных нового значения переменной состояния, посланного на этапе 30, и сгенерированного для данного случая числа N клиента, также как данных, основанных на записи, отражающей предоставления права, чтобы дешифровать зашифрованную информацию, соответствующую набору идентификаторов, обеспечиваемых для клиентской системы 2.
Серверная система 1 может быть выполнена с возможностью обеспечивать данные прикладной программы, только если последовательные запросы данных прикладной программы включают в себя значение переменной состояния ПС, рассчитанное как следующее допустимое значение. Дополнительно или в качестве альтернативы, серверная система 1 может обеспечивать систему для зашифровывания данных прикладной программы с помощью ключа, основанного на следующем допустимом значении переменной состояния, таким образом, чтобы только клиентская система со следующим допустимым значением могла дешифровать данные прикладной программы.
s
Клиентская система 2 принимает дополнительное ответное сообщение (этап 32). Она вычисляет ожидаемое значение для нового значения информации отслеживания состояния, полученного в дополнительном ответном сообщении от серверной системы 1, с использованием в качестве входных данных по меньшей мере сгенерированного для данного случая числа N сервера и предварительно допустимого значения переменной состояния (этап 33). Она также извлекает новое значение переменной состояния ПС, фактически полученное в дополнительном ответном сообщении от серверной системы 1 (этап 34). После определения, что ожидаемое значение соответствует значению, полученному в сообщении от серверной системы 1, вычисляется дополнительное значение информации отслеживания состояния (этап 35). Это - значение переменной состояния, которое является допустимым после передачи дополнительного ответного сообщения для клиентской системы 2.
s
Поскольку дополнительное значение основано на сгенерированном для данного случая числе N клиента, а также значении, переносимом в дополнительном ответном сообщении, копирование значения, переносимого в дополнительном ответном сообщении, является недостаточным для помещения незаконного двойника клиентской системы 2 в такое же состояние, как и исходная клиентская система 2.
Изобретение не ограничено описанными выше вариантами осуществления, которые могут изменяться в пределах объема прилагаемой формулы изобретения. Например, новое значение переменной состояния, вычисляемое серверной системой 1 и передаваемое клиентской системе 1 в ответном сообщении, не обязательно должно быть основано на входных данных, используемых клиентской системой 2 для вычисления следующего допустимого значения переменной состояния. Сообщения с запросом и/или ответные сообщения могут быть зашифрованы, например, с помощью ключа, полученного из значения переменной состояния, допустимой перед получением связанного с ним сообщения.