CN1806235A - 程序、计算机和数据处理方法 - Google Patents

程序、计算机和数据处理方法 Download PDF

Info

Publication number
CN1806235A
CN1806235A CN200580000498.0A CN200580000498A CN1806235A CN 1806235 A CN1806235 A CN 1806235A CN 200580000498 A CN200580000498 A CN 200580000498A CN 1806235 A CN1806235 A CN 1806235A
Authority
CN
China
Prior art keywords
data
communication
communication party
recognition
verify
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN200580000498.0A
Other languages
English (en)
Inventor
石桥义人
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Publication of CN1806235A publication Critical patent/CN1806235A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本发明提供了一种程序,它能够降低用于判断所启动的应用程序的有效性的通信目的地的负荷。客户机装置12_1验证它启动的应用程序的有效性,并且向服务器装置(10)发送指示结果的认证数据,按照所述认证数据,如果已经由客户机装置12_1启动了一个期望的应用程序,则服务器装置(10)向客户机装置12_1发送内容数据。

Description

程序、计算机和数据处理方法
技术领域
本发明涉及一种程序、计算机和数据处理方法,用于确定由通信方启动的应用程序的有效性,并且涉及由与通信方通信的计算机执行的程序、计算机和数据处理方法。
背景技术
作为第一示例,有一种通信系统,用于在通过客户机装置来启动具有版权保护功能的期望应用的条件下发送与版权相关联的内容数据。
在所述通信系统中,服务器装置确定是否客户机装置启动期望的应用程序。
此时,传统上,例如,服务器装置预先存储应用程序的散列数据(散列值),并且,当根据散列函数来确认所述散列数据与由客户机装置产生的应用程序的散列数据匹配时,所述服务器装置确定所述期望的应用程序运行在所述客户机装置上。
多个散列函数用于按照客户机装置的OS(操作系统)来产生散列数据。
而且,甚至具有相同功能的应用程序根据所使用的程序语言及其版本而具有不同的散列数据。
因此,用于向多个客户机装置发送内容数据的服务器装置必须存储和管理大量的散列数据,并且负荷较重,一直存在这些问题。
另一方面,在近些年来,存在在客户机装置之间发送和接收内容数据的情况。在这种情况下,每个客户机装置存储和管理大量的散列数据以确定是否在另一个客户机装置上启动了期望的应用程序是不现实的。
作为第二示例,有多个计算机用于通过网络通信的通信系统。
在所述通信系统中,每个计算机通常根据被分配到通信方的计算机的识别数据来识别所述通信方的计算机。
但是,在如上所述的传统计算机系统中,被分配到每个计算机的固定识别数据用于识别在网络上的每个计算机,以便可以长时间监控每个计算机根据用户的操作通过网络而进行的行为(处理),并且存在这样的问题:与用户隐私相关联的信息——诸如关于每个计算机的访问目的地的信息——可以被非法使用。
而且,例如,由于多种原因,可能要更新计算机的识别数据。
在这种情况下,需要识别计算机对方是同一计算机。
作为第三示例,有一种代理程序,用于执行处理:根据用户的操作历史数据,基于由用户的操作模式产生的已经学习的数据,以与用户匹配的形式来提供内容数据等。
这样的代理程序例如工作在服务器装置上,累积访问服务器装置的客户机装置的用户的操作历史数据,并且根据所述操作历史数据而产生如上所述的已经学习的数据。
但是,在上述的传统系统中,当大量的客户机装置访问服务器装置时,对于所有客户机装置的用户累积操作历史数据,这导致对于管理施加较重负荷的问题。
发明内容
本发明的第一个目的是提供一种程序、计算机和数据处理方法,用于当通信方确定被启动的应用程序的有效性时降低在所述通信方上的负荷,并且本发明的第一目的是提供一种程序、计算机和数据处理方法,用于降低确定被启动的应用程序对于所述计算机对方上的负荷。
本发明的第二个目的是提供一种程序、计算机和数据处理方法,通过其有可能通过使得通信方可以识别计算机来与所述通信方通信,而不用长时间被监控使用所述计算机的用户的操作;有可能通过识别通信方来执行通信,而不用长时间地被监控所述通信方的用户的操作;并且,即使当要根据识别数据而识别的通信方的计算机更新所述识别数据时,所述计算机可以持续地被识别为与根据所更新的识别数据更新之前的计算机相同的计算机。
本发明的第三个目的是提供一种程序、计算机和数据处理方法,其能够降低由于代理功能而导致的服务器装置上的负荷,并且甚至在客户机装置之间也以很小的负荷来完全地实现所述代理功能。
为了解决如上所述的传统技术的问题并且实现上述的目的,本发明第一方面是一种程序,用于使得计算机管理应用程序,其中,所述计算机执行:第一过程,用于验证由计算机启动的应用程序的有效性,并且产生认证数据,用于指示被确定为有效的应用程序的识别数据;以及,第二过程,用于向通信方发送在第一过程中产生的认证数据,以提供要由应用程序使用的数据。
本发明的第二方面是一种用于使得计算机执行向通信方的数据发送的程序,其中,第一过程,用于验证所述通信方的有效性;第二过程,用于在通信方在第一过程中被验证为有效的条件下从通信方接收认证数据,所述认证数据用于指示被通信方确定为有效、并且被通信方启动的应用程序的识别数据;第三过程,用于确定是否所期望的识别数据被包括在第二过程中接收的认证数据中;以及,第四过程,用于在第三过程中确定包括期望的识别数据的条件下向通信方发送数据。
本发明的第三方面是一种计算机,包括:存储器,用于存储应用程序;电路模块,包括防止所存储的数据被窜改和监控的功能,并且用于存储根程序;执行电路,用于在安全的状态中执行从所述存储器读取的应用程序和从电路模块读取的根程序;以及接口;其中,所述执行电路在安全状态中执行从电路模块读取的根程序,按照所述根程序而验证所述应用程序的有效性,在电路模块中存储用于指示被确定为有效的应用程序的识别数据的认证数据,并且经由所述接口而向通信方发送从电路模块读取的认证数据。
本发明的第四方面是一种计算机,包括:存储器,用于存储应用程序和根程序;电路模块,提供防止所存储的数据被窜改和防止所存储的数据和内部处理被监控的功能;执行电路,用于执行从存储器读取的应用程序和根程序;以及接口;其中,所述电路模块验证从存储器读取的根程序的有效性,然后,在安全状态中向所述执行电路输出所述根程序;并且,所述执行电路执行从所述电路模块输入的根程序,按照所述根程序来验证应用程序的有效性,在电路模块中存储用于指示被确定为有效的应用程序的识别数据的认证数据,并且经由所述接口向通信方发送从调度电路模块读取的认证数据。
本发明的第五方面是一种计算机,包括:存储器,用于存储程序;执行电路,用于执行从存储器读取的程序;以及接口,用于从通信方接收认证数据,所述认证数据用于指示由通信方启动并且被通信方验证为有效的应用程序的识别数据;其中,所述执行电路执行从存储器读取的程序,并且在按照所述程序经由所述接口将通信方验证为有效的条件下,确定是否在经由所述接口接收的认证数据中包括期望的识别数据,并且在确定包括所期望的识别数据的条件下,经由所述接口向所述通信方发送数据。
本发明的第六方面是一种由用于管理应用程序的计算机执行的数据处理方法,包括:第一步骤,用于验证由计算机启动的应用程序的有效性,并且产生被确定为有效的应用程序的识别数据;以及,第二步骤,用于向用于提供要由应用程序使用的数据的通信方发送在第一步骤中产生的认证数据,
本发明的第七方面是一种由用于向通信方发送数据的计算机执行的数据处理方法,包括:第一步骤,用于验证通信方的有效性;第二步骤,用于在第一步骤中将通信方验证为有效的条件下从通信方接收认证数据,所述认证数据指示被被通信方确定为有效、并且被通信方启动的应用程序的识别数据;第三步骤,用于确定是否在第二步骤中接收的认证数据中包括所期望的识别数据;以及,第四步骤,用于在第三步骤中确定包括期望的识别数据的条件下向通信方发送数据。
本发明的第八方面是由用于执行与通信方的通信的计算机执行的一种程序,包括:第一步骤,用于产生由与计算机通信的通信方使用、并且在预定条件下被更新的通信数据的散列数据;第二步骤,用于向所述通信数据加上在第一步骤中产生的散列数据,并且发送到通信方;以及,第三步骤,用于通过在第二步骤后将在第一步骤中产生的散列数据用作计算机的识别数据来执行通信。
本发明的第九方面是一种由用于与通信方执行通信的计算机执行的程序,其中,所述计算机执行:第一步骤,用于通过将在预定条件下被更新的通信数据和所述通信数据的散列数据相关联而从通信方接收它们;第二步骤,用于根据在第一步骤中接收的散列数据来识别通信方,并且根据在第一步骤中接收的通信数据来执行与通信方的通信。
本发明的第十方面是一种计算机,包括:存储器,用于存储应用程序;执行电路,用于执行从所述存储器读取的应用程序;以及,接口,用于向通信方发送数据/从通信方接收数据;其中,所述执行电路按照所述应用程序而产生由与计算机通信的通信方使用并且在预定条件下被更新的通信数据的散列数据,将所产生的散列数据加到所述通信数据以经由所述接口向通信方发送,并且通过将所述散列数据用作所述计算机的识别数据而执行与通信方的通信。
本发明的第十一方面是一种计算机,用于执行与通信方的通信,包括:存储器,用于存储程序;接口,用于通过使得在预定条件下被更新的通信数据和所述通信数据的散列数据彼此相关联而从通信方接收它们;以及,执行电路,用于执行从存储器读取的程序,按照所述程序根据由所述接口接收的散列数据来识别通信方,并且根据由所述接口接收的通信数据来与通信方执行通信。
本发明的第十二方面是由用于与通信方执行通信的计算机执行的数据处理方法,包括:第一步骤,用于产生由与计算机通信的通信方使用并且在预定条件下被更新的通信数据的散列数据;第二步骤,用于将在第一步骤中所产生的散列数据加到所述通信数据上,并且向通信方发送;以及,第三步骤,通过将在第一步骤中所产生的所述散列数据用作所述计算机的识别数据而执行与通信方的通信。
本发明的第十三方面是由用于与通信方执行通信的计算机执行的程序,其中,所述计算机执行:第一步骤,用于根据用户对于计算机的操作历史来产生用于指示用户的属性的属性数据;以及,第二步骤,用于向通信方发送在第一步骤中产生的属性数据。
本发明的第十四方面是一种供计算机执行应用程序的管理的程序,所述应用程序用于向通信方发送根据用户对于计算机的操作历史而获得的、用于指示用户的属性的属性数据,其中,所述计算机执行:第一步骤,用于验证由计算机启动的应用程序的有效性,并且产生认证数据,用于指示被确定为有效的应用程序的识别数据;以及,第二步骤,用于向用于提供要由所述应用程序使用的数据的通信方发送在第一步骤中产生的认证数据,
本发明的第十五方面是一种由用于与通信方执行通信的计算机执行的程序,其中,所述计算机执行:第一步骤,用于从通信方接收属性数据,所述属性数据用于指示根据通信方的用户的操作历史而被获得的用户的属性;以及,第二步骤,用于根据在第一步骤中接收的属性数据而向通信方发送数据。
本发明的第十六方面是一种计算机,包括:存储器,用于存储应用程序;执行电路,用于执行从所述存储器读取的应用程序;以及,接口,用于向通信方发送和从通信方接收数据;其中,执行电路根据用户对于计算机的操作历史而产生用于指示用户的属性的属性数据,并且按照所述应用程序经由所述接口向通信方发送所产生的属性数据。
本发明的第十七方面是一种用于与通信方执行通信的计算机,包括:存储器,用于存储程序;接口,用于从通信方接收属性数据,所述属性数据用于指示根据通信方的用户的操作历史而获得的用户的属性;以及,执行电路,用于执行从存储器读取的程序,并且按照所述程序根据由所述接口接收的属性数据、经由所述接口来向通信方发送数据。
本发明的第十八方面是一种由用于与通信方进行通信的计算机执行的数据处理方法,包括:第一步骤,用于根据用户对于计算机的操作历史而产生用于指示用户的属性的属性数据;以及,第二步骤,用于向通信方发送在第一步骤中产生的属性数据。
本发明的第十九方面是一种由用于与通信方进行通信的计算机执行的数据处理方法,包括:第一步骤,从通信方接收用于指示根据通信方的用户的操作历史而获得的用户的属性的属性数据;以及,第二步骤,用于根据在第一步骤中接收的属性数据向通信方发送数据。
本发明的第二十方面是一种由用于与通信方进行通信的计算机执行的程序,其中,所述计算机执行:第一步骤,用于产生通信数据,所述通信数据包括原始数据和更新历史数据,所述原始数据用于计算在更新后的识别数据,用于通过与通信方通信来识别计算机,所述更新历史数据包括在更新之前的识别数据,并且用于指示更新识别数据的历史;第二步骤,用于向通信方发送在第一步骤中产生的通信数据;以及,第三步骤,用于通过使用在第二步骤后被更新的识别数据来与通信方进行通信。
本发明的第二十一方面是一种由用于与通信方进行通信的计算机执行的程序,其中,所述计算机执行:第一步骤,用于识别通信方,并且根据通信方的第一识别数据来与通信方进行通信;第二步骤,用于从通信方接收通信数据,并且根据第二识别数据来识别通信方,所述通信数据包括在更新第一识别数据后的第二识别数据或原始数据和更新历史数据,所述原始数据用于计算第二识别数据,所述更新历史数据包括第一识别数据并且用于指示更新第二识别数据的历史;第三步骤,用于确定是否在第二步骤中接收的通信数据中包括的更新历史数据指示在第一步骤中使用的第一识别数据;以及,第四步骤,用于当确定所述更新历史数据指示在第三步骤中的第一识别数据时使得在第一步骤中使用的第一识别数据和在第二步骤中接收的通信数据中包括的第二识别数据或从原始数据计算的第二识别数据彼此相关联。
本发明的第二十二方面是一种计算机,它包括:存储器,用于存储应用程序;执行电路,用于执行从所述存储器读取的所述应用程序;以及接口,用于向通信方发送和从通信方接收数据;其中,所述执行电路包括用于通过与通信方通信而识别所述计算机的更新的识别数据或者用于计算在更新后的识别数据和在更新前的识别数据的原始数据,产生包括用于指示识别数据的更新历史的更新历史数据的通信数据,经由所述接口而向通信方发送通信数据,并且经由所述接口通过使用更新的识别数据来与通信方进行通信。
本发明的第二十三方面是一种计算机,用于与通信方进行通信,包括:存储器,用于存储程序;接口,用于接收通信数据,所述通信数据包括用于识别通信数据的第一识别数据的更新的第二识别数据或用于计算所述第二识别数据的原始数据与和更新历史数据,所述更新历史数据包括第一识别数据,并且用于指示识别数据的更新历史;以及,执行电路,用于执行从所述存储器读取的程序,并且按照所述程序,当确定是否在由所述接口接收的通信数据中包括的更新历史数据指示第一识别数据时,使得第一识别数据和第二识别数据彼此相关联,以根据第二识别数据来与通信方进行通信。
本发明的第二十四方面是一种由用于与通信方进行通信的计算机执行的数据处理方法,包括:第一步骤,用于产生通信数据,所述通信数据包括用于通过与通信方通信而识别所述计算机的更新的识别数据或者原始数据以及更新历史数据,所述原始数据用于计算在更新后的识别数据和在更新前的识别数据,所述更新历史数据用于指示更新识别数据的历史;第二步骤,用于向通信方发送在第一步骤中产生的通信数据;以及,第三步骤,用于通过使用在第二步骤后的更新的识别数据来与通信方进行通信。
本发明的第二十五方面是一种由用于与通信方进行通信的计算机执行的数据处理方法,包括:第一步骤,用于识别通信方,并且根据通信方的第一识别数据来与通信方进行通信;第二步骤,用于接收通信数据,并且根据第二识别数据来识别通信方,所述通信数据包括在更新第一识别数据后的第二识别数据或原始数据和更新历史数据,所述原始数据用于计算第二识别数据,所述更新历史数据包括第一识别数据,并且用于指示更新第二识别数据的历史;第三步骤,用于确定是否在第二步骤中接收的通信数据中包括的更新历史数据指示在第一步骤中使用的第一识别数据;以及,第四步骤,用于当确定所述更新历史数据指示在第三步骤中的第一识别数据时使得在第一步骤中使用的第一识别数据和在第二步骤中接收的通信数据中包括的第二识别数据或从原始数据计算的第二识别数据彼此相关联。
本发明的第二十六方面是一种由用于与通信方进行通信的计算机执行的程序,包括:第一步骤,用于存储识别数据表信息,所述识别数据表信息包括用于识别通信方的第一识别数据;第二步骤,用于从通信方接收通信数据,所述通信数据包括用于识别通信方的第二识别数据或原始数据和更新历史数据,所述原始数据用于计算第二识别数据,所述更新历史数据包括在更新第二识别数据之前的识别数据,并且用于指示更新所述识别数据的历史;第三步骤,用于当根据在通信数据中包括的更新历史数据而将在第一步骤中存储的识别数据表信息中包括的第一识别数据确定为不是最新的识别数据时,将所述第一识别数据更新为在通信数据中的第二识别数据或从原始数据计算的第二识别数据;以及,第四步骤,用于根据在第三步骤中更新的第二识别数据而识别通信方,并且与所述通信方进行通信。
按照本发明,能够提供一种程序、计算机和数据处理方法,能够当通信方确定要启动的应用程序的有效性时降低在所述通信方上的负荷。
能够提供一种程序、计算机和数据处理方法,能够降低在通信方上确定应用程序的有效性的负荷。
能够提供一种程序、计算机和数据处理方法,能够通过在防止长时间监控使用使得使用一个计算机的用户的操作的同时使得通信方可以识别所述计算机而执行与所述通信方的通信。
能够通过一种程序、计算机和数据处理方法,用于使得能够通过在防止长时间监控使用使得一个通信方的用户的操作的同时识别所述通信方而进行通信。
能够提供一种程序、计算机和数据处理方法,用于使得计算机能够以小负荷来充分实现代理的功能。
能够提供一种程序、计算机和数据处理方法,通过它们,即使当根据识别数据要识别的通信方的计算机更新所述识别数据时,所述计算机也可以被连续地识别为与在根据更新的识别数据更新之前的计算机相同的计算机。
附图说明
图1是用于说明本发明的相关技术的视图。
图2是用于说明本发明的相关技术的视图。
图3是按照本发明的一个实施例的通信系统的整体配置的视图。
图4是图3中所示的服务器的配置的视图。
图5是用于说明当图4所示的服务器装置与客户机装置进行通信时的操作示例的流程图。
图6是用于说明按照本发明的一个实施例的认证数据的视图。
图7是图3所示的客户机装置的配置的视图。
图8是用于说明由图7所示的客户机装置产生认证数据的操作的流程图。
图9是用于说明当图7所示的客户机装置从服务器装置接收内容数据时的操作示例的流程图。
图10是用于说明当图7所示的客户机装置121向图3所示的客户机装置122发送内容数据和从其接收内容数据时的操作示例的流程图。
图11是用于说明按照本发明的所述实施例的修改示例的客户机装置的视图。
图12是图3所示的服务器装置的配置的视图。
图13是用于说明当图12所示的服务器装置与客户机装置进行通信时的操作示例的流程图。
图14是图3中所示的客户机装置的配置的视图。
图15是用于说明在本发明的所述实施例中的公开代理数据AGENT_DP的视图。
图16是用于说明当图14中所示的客户机装置产生公开代理数据AGENT_DP时的操作示例的流程图。
图17是用于说明当图14所示的客户机装置与服务器装置进行通信时的操作示例的流程图。
图18是用于说明当图14中所示的客户机装置121与客户机装置122进行通信时的操作示例的流程图。
图19是用于说明在本发明的所述实施例中的公开代理数据AGENT_DP的视图。
图20是用于说明当图14中所示的客户机装置产生公开代理数据AGENT_DP时的操作示例的流程图。
图21是用于说明当图14中所示的客户机装置与服务器装置执行通信时的操作示例的流程图。
图22是用于说明当在图14中所示的客户机装置121与图3所示的客户机装置进行通信时的产生示例的流程图。
图23是用于说明按照本发明的所述实施例的修改示例的代理数据的视图。
图24是用于说明按照本发明的所述实施例的修改示例的客户机装置的处理的视图。
图25是图3所示的服务器装置的配置的视图。
图26是用于说明图25中所示的表数据的视图。
图27是用于说明当图25中所示的服务器装置与客户机装置进行通信时的操作示例的流程图。
图28是接续图27用于说明当图25所示的服务器装置与客户机装置进行通信时的操作示例的流程图。
图29是图3中所示的客户机装置的配置的视图。
图30是用于说明在本发明的所述实施例中的公开代理数据AGENT_DP的视图。
图31是用于说明其中图29中所示的客户机装置产生认证数据AP_CER的操作的流程图。
图32是用于说明其中图29中所示的客户机装置产生公开代理数据AGENT_DP的操作示例的流程图。
图33是用于说明当图29中所示的客户机装置与服务器装置进行通信时的操作的流程图。
图34是用于说明当图29中所示的客户机装置12_1与图3中所示的客户机装置12_2进行通信时的操作示例的流程图。
图35是接续图34的用于说明当图图29中所示的客户机装置12_1与图3中所示的客户机装置12_2进行通信时的操作示例的流程图。
附图标号说明:
1、1a、1b和1c:通信系统
10、10a、10b和10c:服务器装置
12_1、12_1a、12_1b、12_1c、12_2、12_2a、12_2b、12_2c:客户机装置
20、20a、20b和20c:数据线
21、21a、21b和21c:接口
22、22a、22b和22c:存储器
23、23a、23b和23c:CPU
30、30a、30b和30c:数据线
31、31a、31b和31c:接口
32、32a、32b和32c:存储器
33、33a、33b和33c:CPU
SM、SMa、SMb和SMc:安全模块电路
35、35a、35b和35c:存储器
36:计算电路
AP_S和AP_C1:应用程序
B_PRG:根程序
AP_CER:认证数据
具体实施方式
首先,将说明本发明的相关技术。
[相关技术]
图1和图2是用于说明本发明的相关技术的视图。
例如,在图1中所示的系统中,在有效根程序BP工作在客户机装置中的条件下,与版权相关联的内容数据被从服务器装置110发送到计算机PC。
在这样的系统中,CPU在安全状态中从安全模块电路SM1读取根程序BP,产生其散列数据“HASH”,并且在计算机PC中的安全模块电路SM1中写入它。
在安全模块SM1中,根程序BP和签名密钥数据被存储在非易失性存储器102中,并且在寄存器103中存储根程序的散列数据“HASH”。
注意,在CPU和安全模块电路SM1之间,两者具有密钥数据,并且通过下述方法来在安全状态中获得和提供数据:所述方法向总线流动基于密钥数据的加密数据,在进行相互验证后共享所述密钥数据,并且向防窜改模块(多芯片模块)等中安装CPU和安全模块电路SM1。
服务器装置110预先存储根程序BP的散列数据“HASH”,并且在散列“HASH”与从寄存器103读取并且从计算机PC发送的散列数据“HASH”匹配的条件下,确定一个有效的根程序BP工作在计算机PC上。
但是,在这种情况下,不知道是否有效地产生从计算机PC发送的散列数据“HASH”。
另一方面,当安全模块电路SM1有效时,可以将根程序BP确定为有效。
而且,有这样的情况,在诸如计算机PC的客户机装置中启动具有版权保护功能的期望的应用程序的条件下,从服务器装置110向计算机PC等发送与版权相关联的内容数据。
在这种情况下,服务器装置110存储应用的散列数据“HASH”并且将其与从计算机PC等接收的应用的散列数据“HASH”进行比较。
多个散列函数用于按照客户机装置的OS(操作系统)而产生散列数据。
而且,甚至具有相同功能的应用程序也依赖于用于写入程序和版本的程序语言而具有不同的散列数据。
因此,例如如图2所示,当服务器装置110向诸如计算机PC1、PC2、PDA(个人数字助理)和移动电话MP之类的多个客户机装置发送时,有这样的问题:服务器装置110必须存储每个客户机装置的根程序的散列数据“HASH”和应用程序AP的散列数据“HASH”,并且,负荷沉重。
例如,如图2所示,服务器装置110需要存储计算机PC1“BP(PC1)HASH”的根程序的散列数据和计算机PC1“AP(PC1)HASH”的应用程序的散列数据。
而且,服务器装置110需要存储计算机PC2“BP(PC2)HASH”根程序的散列数据和计算机PC2“BP(PC2)HASH”的应用程序的散列数据。
而且,服务器装置110需要存储PDA“BP(PDA)HASH”的根程序的散列数据和PDA“AP(PDA)HASH”的应用程序的散列数据。
而且,服务器装置110需要存储MP“BP(MP)HASH”的根程序的散列数据和MP“AP(MP)HASH”的应用程序的散列数据。
而且,近些年来,有这样的情况,其中,在客户机装置之间发送/接收内容数据。在这种情况下,每个客户机装置还需要存储和管理大量的上述散列数据,以确定是否在通信方的客户机装置上启动了期望的应用程序,这施加了沉重的负荷并且是不现实的。
下面,将说明用于解决如上所述的相关技术的问题的、按照本发明的一个实施例的通信系统。
第一实施例
本实施例是按照所述第一到第七方面的本发明的示例。
图3是按照本发明的所述实施例的通信系统1的整体配置的视图。
如图3所示,通信系统1具有例如服务器装置10和客户机装置12_1和12_2。
服务器装置10和客户机装置12_1和12_2经由网络9而彼此进行通信。
注意,在本实施例中,将在大量服务器装置10和两个客户机装置12_1和12_2之间进行通信的情况说明为一个示例,但是,可以使用多个服务器装置,并且可以使用单个或三个或更多的客户机装置。
首先,将说明图3所示的通信系统1的概况。
客户机装置12_1和12_2的每个验证由其本身启动的应用程序的有效性,并且向服务器装置10发送示出结果的认证数据AP_CER。
在客户机装置12_1和12_2上启动期望的应用程序的条件下,服务器装置10根据认证数据AP_CER而向客户机装置12_1和12_2发送内容数据。
在通信系统1中,服务器装置10不必存储由客户机装置12_1和12_2执行的应用程序的所有的散列数据,并且也不必进行有效性的验证处理。因此,可以降低由于确定在客户机装置12_1和12_2上被启动的应用程序的有效性而引起的服务器装置10的负荷。
注意,在本实施例中,将在服务器装置10和客户机装置12_1和12_2之间发送/接收内容数据的情况说明为一个示例,其中,可以发送/接收用于解密加密的内容数据的解密密钥数据和用于利用内容数据所需的权利信息,而不是发送/接收其内容数据。
下面,将参照图3-11来说明本实施例。
首先,将说明本实施例的相应组成部分与在本发明的相应组成部分的对应关系。
在图4中所示的应用程序AP_S对应于所述第二和第五发明的程序。
图7中所示的根程序B_PRG对应于所述第一和第三发明的程序或根程序。
而且,图3中所示的客户机装置12_1对应于所述第一和第三发明的计算机,并且图3所示的服务器装置10和客户机装置12_2对应于在第一和第三发明中的通信方。
而且,在图3中所示的服务器装置10对应于所述第二和第五发明的计算机,并且图3中所示的客户机装置12_1对应于在所述第二和第五发明中的通信方。
而且,认证数据AP_CER对应于本发明的认证数据。
[服务器装置10]
图4是图3所示的服务器装置10的配置的视图。
如图4所示,服务器装置10具有例如接口21、存储器22和CPU 23,它们经由数据线20而彼此连接。
在此,接口21对应于在所述第五发明中的接口,存储器22对应于在所述第五发明中的存储器和CPU 23对应于在所述第五发明中的执行电路。
接口21经由网络9而向客户机装置12_1和12_2发送数据/从客户机装置12_1和12_2接收数据。
存储器22存储应用程序AP_S。
存储器22存储服务器装置10的密钥数据SK_S,公开密钥数据PK_S、公开密钥认证数据PKC_S和识别数据ID_S。
而且,存储器22存储来自与客户机装置12_1通信的客户机装置12_1的公开密钥数据PK_C1和公开密钥认证数据PKC_C1等。
而且,存储器22存储来自与客户机装置12_2通信的客户机装置12_2的公开密钥数据PK_C2和公开密钥认证数据PKC_C2等。
CPU 23执行应用程序AP_S,并且总体地控制服务器装置10的操作。
将参照服务器装置10的操作示例来说明由CPU 23执行的处理。
下面,将说明当图4所示的服务器装置10与客户机装置12_1进行通信时的操作示例。
图5是用于说明当图4所示的服务器装置10与客户机装置12_1进行通信时的操作示例的流程图。
通过应用程序AP_S来控制下述的每个步骤。
注意,可以通过服务器装置10的根程序来控制在图5中所示的处理。
步骤ST1:
服务器装置10的CPU 23从存储器22读取由用户指定的应用程序AP_S,并且执行该程序。
所述应用程序AP_S是例如用于加密和发送预定的内容数据的程序,并且发送/接收仅仅具有与其对应的识别数据AP_ID的程序的内容数据。该内容数据可以与版权相关联。
步骤ST2:
CPU 23根据从存储器22读取的密钥数据SK_S、公开密钥数据PK_C1和公开密钥认证数据PKC_C1而例如经由接口21来与客户机装置12_1进行相互验证。即,执行通过公开密钥的相互验证。
作为相互验证的方法,可以使用ISO/IEC 9798-3方法等。
当通过相互验证而彼此确认有效性时,CPU 23在其后共享用于与客户机装置12_1通信的会话密钥数据,并且在其后的通信中根据所述会话密钥数据来加密数据。
在本实施例中,例如,CPU 23不必验证客户机装置12_1的根程序B_PRG的散列数据。
步骤ST3:
CPU 23当通过在步骤ST2中进行的相互验证而彼此确认有效时进行到步骤ST4,而当否定时,结束处理或执行错误处理。
步骤ST4:
CPU 23经由接口21从客户机装置12_1接收被加上签名数据SIG的认证数据AP_CER。
通过客户机装置12_1来启动认证数据AP_CER,例如如下所述,并且认证数据AP_CER指示通过使得下述数据彼此相关联而确认为有效的识别数据AP_ID、产生识别数据MP_ID、应用程序AP_C1的版本VER和散列值HASH,如图6所示。
步骤ST5:
CPU 23验证在步骤ST4中接收的认证数据AP_CER的有效性。
此时,例如,CPU 23根据散列函数来产生认证数据AP_CER的散列数据。然后,CPU 23查看是否所产生的散列数据与被加到图6所示的认证数据AP_CER的签名数据SIG匹配,当匹配时,确定所述认证数据AP_CER1未被窜改而是有效的。
在此,散列函数是用于从给定的原始语句产生固定长度的数据的函数,并且具有这样的特性:不能从所述散列值恢复原始语句,并且很难产生具有相同散列值的不同数据。
然后,CPU 23当确定认证数据AP_CER是有效时进行到步骤ST6,并且当否定时结束处理。
注意,当客户机装置12_1通过使用客户机装置12_1的密钥SK_C1而加密散列数据来产生签名数据SIG时,CPU 23使用客户机装置12_1的公开密钥PK_C1来解密签名数据SIG,并且将被解密的数据与所述散列数据进行比较。
注意,因为通过在网络9上使用会话密钥来加密数据,因此可以不使用需要长时间的处理的数字签名技术而实现期望的目的。即,因为通过会话密钥来加密散列数据本身,因此可以由此实现与数字签名的函数几乎相同的函数。
而且,为了防止非法重新使用过去处理的数据,通常,向所述数据(在本示例中是图6所示的认证数据AP_CER)加上随机数的数据,对于包括所述随机数的整个数据计算散列数据,并且将结果用作签名数据SIG。而且,当通过使用密钥SK_C1来加密时,加密包括随机数数据的散列数据。
步骤ST6:
CPU 23确定是否在步骤ST4中接收的认证数据AP_CER中包括指定的应用程序AP_C1的识别数据AP_ID,并且当确定包括识别数据AP_ID时(所述应用程序AP_ID在客户机装置12_1上被确定为有效的,并且被启动),进行到步骤ST7,否则结束处理。
在此,当应用程序AP_S发送与版权相关联的内容数据时,应用程序AP_C1是具有例如用于内容数据的版权保护功能的程序。
注意,CPU 23可以验证是否除了识别数据AP_C1之外的产生识别数据MF_ID和版本数据VER是在所述步骤的上述验证中所期望的。
步骤ST7:
CPU 23按照在步骤ST1中启动的应用程序AP_S来加密预定的内容数据,并且通过接口21向客户机装置12_1发送。
[客户机装置12_1]
图7是图3所示的客户机装置12_1的配置的视图。
如图7所示,客户机装置12_1具有例如接口31、存储器32、CPU 33和安全模块电路SM,它们经由数据线30而彼此连接。
在此,接口31对应于在所述第三发明中的接口,存储器32对应于在所述第五发明中的存储器,安全模块电路SM对应于在所述第五发明中的电路模块,CPU 33对应于在所述第五发明中的执行电路。
接口31经由网络9而与服务器装置10和客户机装置12_2进行通信。
存储器32存储应用程序AP_C1。
存储器32是半导体存储器或硬盘驱动器。
安全模块电路SM例如具有存储器35和计算电路36。
安全模块电路SM是具有防窜改特性的电路并提供防止窜改和监控在存储器35中存储的数据以及监控在计算电路36中的处理的功能。
防窜改电路是被配置来当它被外部攻击(通过非法读取内部数据和通过将输入频率或输入电压设置为预定范围之外等的攻击)时防止错误操作和内部数据的泄露的电路。具体地说,为了防止读取内部数据,所述电路被使得具有多层结构,向最低层提供所述存储器,并且形成作为上层和下层的虚层(dummy layer)(例如铝层),以便使得难于进行从外部向存储器输入/输出接口的直接访问。而且,它被配置为提供有防窜改电路频率检测电路和电压检测电路,以便当所述频率或电压不在预定范围中时不工作。
存储器35存储客户机装置12_1的密钥数据SK_C1、公开密钥数据PK_C1和公开密钥认证数据PKC_C1和识别数据ID_C1。
而且,存储器35存储来自与服务器装置10通信的服务器装置10的公开密钥数据PK_S和公开密钥认证数据PKC_S等。
而且,存储器35存储来自与客户机装置12_2通信的客户机装置12_2的公开密钥数据PK_C2和公开密钥认证数据PKC_C2等。
CPU 33在安全状态中经由数据线从在安全模块电路SM中的存储器35读取根程序B_PRG,并且执行该程序。
而且,CPU_33从存储器32读取应用程序AP_C1,并且执行该程序。
注意,为了在安全状态中实现所述读取,使用多种方法,以便通过CPU 33和安全模块电路SM来共享公共加密密钥数据以加密在数据线30上的数据,在CPU 33和安全模块电路SM之间进行相互验证,并且通过使用共享的会话密钥数据来加密在数据线30上的数据,并且CPU 33和安全模块电路SM被模压为一封装体,以防止来自外部的对数据线30上的数据的访问等。
而且,为了防止安全模块电路SM被安装在其他的客户机装置中,客户机装置12_1专用的存储器数据(ID、随机数、密钥和其他数据)可以被分散以存储在其中,并且可以在启动时通过安全模块电路SM来执行存储器数据的验证。或者,可以使得接口31的输入/输出操作复杂化等,以使得CPU 33的根结构复杂化,并且仅仅被认可的制造商知道这个结构以增强根程序B_PRG的启动的可靠性。
CPU 33集体地(collectively)控制客户机装置12_1的操作。
将参照客户机装置12_1的操作示例而说明由CPU 33执行的处理。
下面,将说明图7所示的客户机装置12_1产生认证数据AP_CD的操作。
图8是用于说明用于通过图7所示的客户机装置12_1来产生认证数据AP_CD的操作的流程图。
通过根程序B_PRG来控制下述的相应步骤。
步骤ST11:
当启动客户机装置12_1时,安全模块电路SM的计算电路36从存储器35读取根程序B_PRG,并且验证根程序B_PRG的有效性。
此时,计算电路36例如根据散列函数而产生根程序BP_RG的散列数据,将所产生的散列数据与预先准备的根程序B_PRG的散列数据相比较,并且当匹配时确定在存储器35中存储的根程序B_PRG是有效的(未被窜改的)。
步骤ST12:
当在步骤ST11中确定根程序B_PRG是有效的时,客户机装置12_1进行到步骤ST13,否则执行错误处理。
步骤ST13:
客户机装置12_1的CPU 33在安全状态中经由数据线30从存储器35读取根程序B_PRG。
步骤ST14:
CPU 33执行在步骤ST13中读取的根程序B_PRG。
步骤ST15:
CPU 33根据根程序B_PRG从由用户指定的多个应用程序中选择一个未选择的应用程序AP_C1。
步骤ST16:
CPU 33从存储器32读取在步骤ST15选择的应用程序,并且验证有效性。
此时,CPU 33例如根据散列函数来产生应用程序AP_C1的散列数据,将所产生的散列数据与预先准备的应用程序AP_C1的散列数据相比较,并且当匹配时确定在存储器32中存储的应用程序AP_C1是有效的(未被窜改的)。
或者,CPU 33可以根据公开密钥数据来验证对应于应用程序AP_C1的预定签名数据。签名数据SIG可以被加到应用程序AP_C1或被独立地存储在存储器中。
步骤ST17:
当在步骤ST16确定应用程序AP_C1是有效的时,CPU 33进行到步骤ST18,否则,进行到步骤ST20。
步骤ST18:
CPU 33向认证数据AP_CER加上在步骤ST16中被确定为有效的应用程序AP_C1的识别数据AP_ID、产生识别数据MF_ID、版本数据VER和散列数据HASH(以下也称为识别数据AP_ID)。
步骤ST19:
CPU 33启动在步骤ST16中被确定为有效的应用程序AP_C1。
即,在本实施例中,将在步骤ST16确定应用程序AP_C1有效的条件下启动应用程序AP_C1的情况说明为一个示例。但是当应用程序AP_C1不被确定为有效的时候,可以通过向用户通知事实和获得用户的许可来启动应用程序AP_C1。注意,在这种情况下,CPU 33不向认证数据AP-CER增加应用程序AP_C1的识别数据。
步骤ST20:
CPU 33确定是否在步骤ST15选择了由用户指定的所有应用程序AP_C1,并且当确定选择时结束处理,否则返回步骤ST15。
下面,将说明当图7所示的客户机装置12_1从服务器装置10接收内容数据时的操作示例。
图9是用于说明当图7所示的客户机装置12_1从服务器装置10接收内容数据时的操作示例的流程图。
通过根程序B_PRG来控制下述的相应步骤。
步骤ST31:
客户机装置12_1的CPU 33根据从安全模块电路SM的存储器35读取的密钥数据SK_C1、公开密钥数据PK_S1和公开密钥认证数据PKC_S1经由接口31与服务器装置10进行相互验证。即,执行通过使用公开密钥的相互验证。
当通过所述相互验证而彼此确定有效性时,CPU 33与服务器装置10共享要用于其后与服务器装置10通信的会话密钥数据,并且根据其后通信的会话密钥数据来加密数据。
注意,在相互验证中,CPU 33可以根据服务器装置10的AC(属性证件)或URL(统一资源定位符)来验证服务器装置10的有效性。在此,AC是通过由预定的验证代理(AC发放代理)链接到公开密钥认证数据的识别数据ID而用于认证受让人的功能和属性的电子数据。在本示例中,它指示它是用于分布预定内容数据的服务器。
步骤ST32:
当通过在步骤ST31执行的相互验证来彼此确定有效性时,CPU 33进行到步骤ST33,否则结束处理。
步骤ST33:
CPU 33通过基于图8所述的处理而产生的认证数据AP_CER的散列数据,并且向认证数据AP_CER加上其来作为签名数据SIG。
步骤ST34:
CPU 33经由接口31向服务器装置10发送被加上在步骤ST33中产生的认证数据AP_CER的签名。
步骤ST35:
CPU 33按照应用程序AP_C1来利用从服务器装置10经由接口31接收的内容数据。
此时,如上所述,因为应用程序AP_C1具有版权保护功能,因此通过所述功能来保护内容数据的版权。
注意,在上述的实施例中,将CPU 33根据从安全模块电路SM读取的根程序B_PRG来执行签名数据SIG的验证处理和产生处理的情况说明为一个示例,但是可以通过安全模块电路SM的计算电路36来执行所述处理。
在这种情况下,客户机装置12_1向安全模块电路SM提供从服务器装置10接收的数据之间的验证所需要的数据。然后,安全模块电路SM的计算电路36根据所述数据来执行计算处理,并且经由接口31向服务器装置10发送结果。而且,安全模块电路SM的计算电路36产生认证数据AP_CER的签名数据SIG,并且经由接口31向服务器装置10发送被加上签名数据SIG的认证数据AP_CER。
下面,将说明当图7所示的客户机装置12_1向图3所示的客户机装置12_2发送内容数据和从图3所示的客户机装置12_2接收内容数据的操作示例。
图10是用于说明当图7所示的客户机装置12_1向图3所示的客户机装置12_2发送内容数据和从图3所示的客户机装置12_2接收内容数据时的操作示例的流程图。
步骤ST41:
客户机装置12_1的CPU 33根据从安全模块电路SM的存储器35读取的密钥数据SK_C1、公开密钥数据PK_C2和公开密钥认证数据PKC_C2经由接口31执行与客户机装置12_2的验证。
注意,在本实施例中,存储器35存储公开密钥数据PK_2和公开密钥认证数据PKC_2,但是可以在验证之前从客户机装置12_2接收它们。
当通过相互验证彼此确定有效性时,CPU 33与客户机装置12_2共享要其后用于与客户机装置12_2进行通信的会话密钥数据,并且根据其后通信的会话密钥数据来加密数据。
步骤ST42:
当通过在步骤ST41中执行的相互验证来彼此确认有效性时,CPU 33进行到步骤ST43,否则结束处理或执行差错处理。
步骤ST43:
CPU 33产生通过基于图8所述的处理而产生的认证数据AP_CER的散列数据,并且向认证数据AP_CER1加上其来作为签名数据SIG。
步骤ST44:
CPU 33经由接口31向客户机装置12_2发送被加上在步骤ST43中产生的认证数据AP_CER1的签名。
步骤ST45:
CPU 33从服务器装置12_2经由接口31、通过与通过使用图9所述的相同的处理而接收被加上由客户机装置12_2产生的签名数据SIG的认证数据AP_CER2。
如上所述,通过客户机装置12_2来启动认证数据AP_CER2,其中,通过如图6所示使得下述数据彼此相关联而指示被确定为有效的应用程序AP_C2的识别数据AP_ID、产生识别数据MF_ID、版本VER和散列值HASH。
步骤ST46:
CPU 33验证在步骤ST44中接收的认证数据AP_CER2的有效性。
此时,CPU 33例如根据散列函数来产生认证数据AP_CER2的散列数据。然后,CPU 33确定是否所产生的散列数据与签名数据SIG匹配,当匹配时确定所述认证数据AP_CER2未被窜改而是有效的。
然后,当确定认证数据AP_CER2有效时,CPU 33进行到步骤ST47,否则,结束处理或执行差错处理。
步骤ST47:
CPU 33确定是否由用户指定的应用程序AP_C1的识别数据AP_ID被包括在步骤ST45中接收的应用程序AP_C12中,并且当确定包括识别数据AP_ID(确定应用程序AP_C2是有效的并且在客户机装置12_2中被启动)时,进行到步骤ST48,否则结束处理或执行差错处理。
注意CPU 33可以在所述步骤确定除了识别数据AP_ID之外是否产生识别数据MF_ID和版本数据VER是所期望的。
步骤ST48:
CPU 33按照已经被启动的应用程序AP_C1来加密预定内容数据,并且经由接口31向客户机装置12_2发送。
CPU 33按照应用程序AP_C1使用从客户机装置12_2经由接口31接收的内容数据。
此时,如上所述,因为应用程序AP_C1包括版权保护功能,因此通过所述功能来保护所述内容数据的版权。
注意,服务器装置12_2具有与上述的客户机装置12_1相同的配置。
下面,将说明在图3中所示的通信系统1的整体操作示例。
客户机装置12_1和12_2的每个执行如上所述的图8中所示的处理以分别向客户机装置12_1和12_2的每个的图7所示的安全模块电路SM中的存储器35写入认证数据AP_CER。
首先,当例如从服务器装置10向客户机装置12_1发送内容数据时,服务器装置10执行如上所述的图5所示的处理,并且客户机装置12_1执行如上所述的图9中所示的处理。
而且,当在客户机装置12_1和客户机装置12_2之间发送/接收内容数据时,两者分别执行如上所述图10中所示的处理。
如上所述,按照通信系统1,相应的客户机装置12_1和客户机装置12_2验证通过其本身启动的应用程序AP_C1和AP_C2,并且向服务器装置10发送分别指示结果的认证数据AP_CER1和AP_CER2。
结果,服务器装置10不必存储由客户机装置12_1和12_2执行的应用程序的所有散列数据,并且也不必进行有效性的验证处理。因此,有可能降低由于确定由客户机装置12_1和12_2启动的应用程序的有效性而引起的服务器装置10上的负荷。
而且,按照通信系统1,在客户机装置12_1和12_2中,如图7所示,因为用于产生认证数据AP_CER1和AP_CER2的根程序B_PRG被存储在安全模块电路SM的存储器35中,并且在安全状态中经由接收线30被CPU 33读取,因此可以改善认证数据AP_CER1和AP_CER2的可靠性。
而且,按照通信系统1,服务器装置10接收被加上认证数据AP CER的签名,并且在与客户机装置12_1和12_2相互验证后验证签名数据SIG,以便服务器装置10可以高度可靠地确定在客户机装置12_1和12_2中启动的应用程序的有效性。
而且,按照通信系统1,当不仅在服务器装置10和客户机装置12_1与12_2之间而且在客户机装置12_1和12_2之间发送/接收内容数据时,客户机装置12_1和12_2之一能够以小负荷来确定在另一个上启动的应用程序的有效性。
第二实施例
下面将参照图12-18来说明本实施例。
本实施例涉及按照第八到第十二发明的本发明的一个示例。
首先,将说明在本实施例中的组成部分与在本发明中的组成部分的对应关系。
图12中所示的应用程序AP_S对应于第九和第十一发明的程序。
图14中所示的根程序B_PRG等对应于第十发明的根程序。
而且,在图14中所示的代理程序AGENT_P1等对应于在第八发明中的程序和第十发明的应用程序。
而且,图3所示的客户机装置12_1a对应于第一和第十发明的计算机,并且图3中所示的服务器装置10a和客户机装置12_2a对应于在第八和第十发明中的通信方。
而且,图3中所示的服务器装置10a对应于第九和第十一发明的计算机,并且图1中所示的客户机装置12_1a对应于在第二和第十一发明中的通信方。
而且,在公开代理数据AGENT_DP1中的代理数据AGENT_D1和AGENT_D2对应于本发明的通信数据,并且散列数据HASH_D1和HASH_D2对应于本发明的散列数据。
而且,认证数据AP_CER对应于本发明的认证数据。
图8所示的步骤aST37对应于第八发明的第一过程,图8所示的步骤aST38和图17所示的步骤aST54对应于第八发明的第二过程,并且步骤aST55对应于第九发明的第三过程。
而且,图3所示的步骤aST7对应于第九发明的第一过程,并且步骤aST9和aST10对应于第九发明的第二过程。
[服务器装置10a]
图12是图3所示的服务器装置10a的配置的视图。
如图12所示,服务器装置10a具有例如接口21a、存储器22a和CPU 23a,它们经由数据线20而彼此连接。
在此,接口21a对应于在第十一发明中的接口,存储器22a对应于在第十一发明中的存储器,并且CPU 23a对应于在第十一发明中的执行电路。
接口21a经由网络9向客户机装置12_1a和12_2a发送数据/从客户机装置12_1a和12_2a接收数据。
存储器22a存储应用程序AP_S。
如下所述,应用程序AP_S控制登记在从客户机装置12_1a接收的公开代理数据AGENT_DP1中包括的散列数据HASH_D1,并且使用散列数据HASH_D1来作为其后与客户机装置12_1a通信的客户机装置12_1a的识别数据。
而且,如下所述,应用程序AP_S根据从客户机装置12_1a和12_2a接收的公开代理数据AGENT_DP1和AGENT_DP2控制以向客户机装置12_1a和12_2a提供与客户机装置12_1a和12_2a的用户的喜好和其他特性匹配的多种服务。
存储器22a存储服务器装置10a的密钥数据SK_S、公开密钥数据PK_S、公开密钥认证数据PKC_S和识别数据ID_S。
而且,存储器22a存储从客户机装置12_1a接收的公开代理数据AGENT_DP1。
而且,存储器22a存储来自与客户机装置12_1a的通信的客户机装置12_1a的公开密钥数据PK_C1和公开密钥认证数据PKC_C1等。
而且,存储器22a存储从客户机装置12_2a接收的公开代理数据AGENT_DP2。
而且,存储器22a存储来自与客户机装置12_2a通信的客户机装置12_2a的公开密钥数据PKC_2和公开密钥认证数据PKC_C2等。
CPU 23a执行应用程序AP_S,并且集体地控制服务器装置10a的操作。
将结合服务器装置10a的操作示例来说明由CPU 23a执行的处理。
下面,将说明当图12所示的服务器装置10a与客户机装置12_1a进行通信时的操作示例。
图13是用于说明当图12所示的服务器装置10a与客户机装置12_1a进行通信时的操作示例的流程图。
通过应用程序AP_S来控制下面所述的每个步骤。
步骤aST1:
服务器装置10a的CPU 23a从存储器22a读取由用户指定的应用程序AP_S,并且执行它。
应用程序AP_S是例如一种用于向客户机装置提供诸如视频和音频的内容数据的搜索引擎或程序,并且仅仅使用具有对应于其的识别数据AP_ID的程序来发送/接收内容数据。所述内容数据可以与版权相关联。
步骤aST2:
CPU 23a根据从存储器22a读取的密钥数据SK_S、公开密钥数据PK_C1和公开密钥认证数据PKC_C1来例如经由接口21a与客户机装置12_1a进行相互验证。
作为相互验证,可以使用ISO/IEC 9798-3方法等。
当通过相互验证彼此确认有效性时,CPU 23a与客户机装置12_1a共享用于其后与客户机装置12_1a通信的会话密钥数据,并且根据在其后的通信中的会话密钥数据来加密数据。
在本实施例中,例如,CPU 23a不必验证客户机装置12_1a的根程序B_PRG的散列数据。
步骤aST3:
CPU 23a当通过在步骤aST2中执行的相互验证而彼此确认有效性时进行到步骤a ST4,否则结束处理或执行差错处理。
步骤aST4:
CPU 23a经由接口21a从客户机装置12_1a接收被加上签名数据SIG的认证数据AP_CER。
认证数据AP CER被例如客户机装置12_1a启动,如下所述,并且如图6所示通过使得下面的数据彼此相关联而被确认为有效的应用程序AP_C1的识别数据AP_ID、产生识别数据MF_ID、版本VER和散列值HASH。
在本实施例中,将代理程序AGENT_P1用作应用程序AP_C1之一。
步骤aST5:
CPU 23a验证在步骤aST4中接收的认证数据AP_CER的有效性。
此时,例如,CPU 23a根据散列函数来产生认证数据AP_CER的散列数据。然后,CPU 23a查看是否所产生的散列数据匹配图6所示的被加到认证数据AP_CER的签名数据SIG,当匹配时确定认证数据AP_CER1未被窜改而是有效的。
在此,所述散列函数是用于从给定的原始语句产生固定长度数据的函数,并且具有特性:不能从散列值恢复原始语句,并且具有相同散列值的不同数据的产生极其困难。
然后,CPU 23a当确定认证数据AP_CER是有效时进行到步骤aST6,否则结束处理或执行差错处理。
注意,当客户机装置12_1a通过使用客户机装置12_1a的密钥SK_C1加密散列数据而产生签名数据SIG时,CPU 23a通过使用客户机装置12_1a的公开密钥PK_C1来解密签名数据SIG,并且比较所解密的数据与散列数据。此时,因为通过在网络9上使用会话密钥来解密数据,因此可以不使用需要长时间处理的数字签名技术来实现期望的目的。即,因为散列数据本身被会话密钥加密,因此可以由此实现与数字签名几乎相同的功能。
而且,为了防止非法重新使用在过去交易的数据,通常,向数据(在这个示例中是图6中所示的认证数据AP_CER)加上随机数数据,对于包括所述随机数的整个数据计算散列数据,并且将结果用作签名数据SIG。
而且,当使用密钥SK_C1来加密时,加密包括随机数数据的散列数据。
步骤aST6:
CPU 23a确定是否在步骤aST4中接收的认证数据AP_CER中包括指定的应用程序AP_C1(在本实施例中是代理程序AGENT_P1)的识别数据AP_ID,当确定包括识别数据AP_ID(确认代理程序AGENT_P1有效并且在客户机装置12_1a被启动)时,进行到步骤aST7,否则结束处理。
在此,代理程序AGENT_P1是例如如上所述的用于产生客户机装置12_1a的用户的公开代理数据AGENTD_P1的程序。
注意,CPU 23a可以验证是否在所述步骤中的上述验证中除了识别数据AP_ID之外,产生识别数据MF_ID和版本数据VER是所期望的。
步骤aST7:
接口21a从客户机装置12_1a接收公开代理数据AGENT_DP1。
步骤aST8:
CPU 23a验证被加到在步骤aST7中接收的、图15所示的公开代理数据AGENT_DP1的签名数据SIGD的有效性,当确定为有效时进行到步骤aST9,否则结束处理或执行差错处理。
步骤aST9:
CPU 23a将在步骤aST7中接收的图15所示的公开代理数据AGENT_DP1中的散列数据HASH_D1登记(指定)为客户机装置12_1a的识别数据。
步骤aST10:
CPU 23a使用在步骤aST9中登记的散列数据HASH_D1来作为客户机装置12_1a的识别数据以与客户机装置12_1a执行通信。
此时,CPU 23a分析在公开代理数据AGENT_DP1中的代理数据AGENT_D1,并且经由接口21a向客户机装置12_1a发送与客户机装置12_1a的用户的喜好和其他特性匹配的、诸如内容数据之类的多种服务数据。
例如,当应用程序AP_S是搜索引擎时,CPU 23a使用由客户机装置12_1a的用户输入的预定搜索关键字,并且进一步使用与根据用户的喜好确定的关键字相关联的关键字来搜索数据和显示搜索结果。
例如,当用户输入作为搜索关键字的“包价旅行”并且公开代理数据AGENT_DP1指示用户喜欢“汽车”时,CPU 23a选择使用汽车到达目的地的计划和与有利于其他包价旅行数据的租车计划相关联的数据,并且向客户机装置12_1a发送。
如上所述,服务器装置10a使用在从客户机装置12_1a接收的公开代理数据AGENT_DP1中的散列数据HASH_D1来作为用于识别客户机装置12_1a的识别数据。
在此,因为在如下所述的预定条件下更新散列数据HASH_D1,因此服务器装置10a能够根据散列数据HASH_D1监控客户机装置12_1a的用户的操作直至散列数据HASHD_1被更新,但是在更新散列数据HASHD_1后,不能根据在更新前的散列数据HASH_D1来监控客户机装置12_1a的用户的操作。
在此,公开密钥认证通常包括用于指定客户机装置12_1a的ID信息,需要在比散列数据HASH_D1的更新定时更短的时间内更新密钥SK_C1、公开密钥PK_C1和公开密钥认证PKC_C1。除了公开密钥认证数据PCK_C1之外还需要更新公开密钥对的原因是必须防止将公开密钥PK_C1用作识别数据。注意当不使用公开密钥认证而仅仅使用用于保密通信路径的SSL(加密套接字协议层)时,公开密钥PK_C1和公开密钥认证PCK_C1变得不必要,并且上述的处理也变得不必要。
从上面可知,有可能防止长时间监控客户机装置12_1a的操作。
而且,服务器装置10a能够根据从客户机装置12_1a接收的公开代理数据AGENT_DP1来实现代理功能,而不用累积客户机装置12_1a的用户的操作历史数据。
[客户机装置12_1a]
图14是图3所示的客户机装置12_1a的配置的视图。
如图14所示,客户机装置12_1a具有例如接口31a、存储器32a、CPU 33a、操作单元37a和安全模块电路SMa,它们经由数据线30而彼此连接。
在此,接口31a对应于在第十发明中的接口,存储器32a对应于在第十发明中的存储器,安全模块电路SMa对应于在第十发明中的电路模块,并且CPU 33a对应于在第十发明中的执行电路。
在本实施例中,客户机装置12_1a是例如计算机、PDA(个人数字助理)和移动电话等。
接口31a经由网络9而与服务器装置10a和客户机装置12_2a执行通信。
存储器32a存储应用程序AP_C1。
存储器32a存储作为应用程序AP_C1之一的代理程序AGENT_P1。
存储器32a是半导体存储器或硬盘驱动器。
安全模块电路SMa具有例如存储器35和计算电路36。
安全模块电路SMa是防窜改电路,并且具有功能:防止窜改,监控在存储器35中的所存储数据,并且监控在计算电路36中的处理。
防窜改电路是被配置来防止错误操作和当它被从外部攻击(通过非法读取内部数据和通过将输入频率或输入电压设置为在预定范围之外等的攻击)时的内部数据泄露的电路。具体地说,为了防止读取内部数据,使得所述电路具有多层结构以向最低层提供所述存储器并且形成伪层(例如铝层)来作为上层和下层,以便使得从外部向存储器输入/输出接口的直接访问困难。而且,所述电路被配置为具有防窜改电路频率检测电路和电压检测电路,以便当所述频率或电压不在预定范围内时不工作。
存储器35存储客户机装置12_1a的密钥数据SK_C1、公开密钥数据PK_C1、公开密钥认证数据PKC_C1和识别数据ID_C1。
存储器32a存储来自与服务器装置10a通信的服务器装置10a的公开密钥数据PK_S和公开密钥认证数据PKC_S等。
而且,存储器35存储来自与客户机装置12_2a通信的客户机装置12_2a的公开密钥数据PK_C2和公开密钥认证数据PKC_C2等。
而且,存储器35存储从客户机装置12_2a接收的公开代理数据AGENT_DP2。
操作单元37a是操作部件,诸如键盘、鼠标和触摸板,并且按照由用户进行的操作向CPU 33a输出操作信号。
CPU 33a根据根程序BP_RG、应用程序AP_C1和来自操作单元37a的操作信号来执行多种处理。
而且,CPU 33a在安全状态中经由数据线30从在安全模块电路SMa中的存储器35读取根程序B_PRG,并且执行它。
CPU 33a按照根程序B_PRG来产生图6所示的认证数据AP_CER,并且将其发送到服务器装置10a和客户机装置12_2a。
注意,为了实现在安全状态中的读取,使用多种方法,以便通过CPU 33a和安全模块电路SMa来共享公共加密密钥数据以加密在数据线30上的数据,在CPU 33a和安全模块电路SMa之间执行相互验证,通过使用共享的会话密钥数据来加密在数据线30上的数据,并且将CPU 33a和安全模块电路SMa模压为一个封装体,以防止来自外部的对数据线30上的数据的访问等。
而且,为了防止安全模块电路SMa被安装到其他的客户机装置中,可以分散客户机装置121a特有的存储器数据(诸如ID、随机数和密钥数据)而存储在其中,并且可以在启动时通过安全模块电路SMa来进行存储器数据的验证。或者,可以使得接口31a的输入/输出操作复杂化等,以使得CPU 33a的根结构复杂化,并且所述结构仅仅被许可的制造商知道以进一步改善根程序B_PRG的启动可靠性。
而且,CPU 33a从存储器32a读取应用程序APC_1,并且执行它。
在本实施例中,CPU 33a从存储器32a读取代理程序AGENT_P1,并且执行它。
CPU 33a按照代理程序AGENT_P1来产生图15中所示的公开代理数据AGENT_DP1,并且将其发送到服务器装置10a和客户机装置12_2a。
如图15所示,公开代理数据AGENT_DP1具有例如识别数据ID(代理软件ID)、产生识别数据(代理软件制造ID)、代理程序AGENT_P1的版本数据和关于代理程序P1的其他信息、代理数据AGENT_D1的散列数据HASH_D1、安全模块电路SMa的版本和代理程序AGENT_P1的签名数据SIGD。
CPU 33a按照应用程序AP_C1来产生代理数据AGENT_D1的散列数据HASH_D1,并且产生包括其的公开代理数据AGENT_DP1。
而且,CPU 33a使用散列数据HASH_D1来作为其本身的识别数据以与服务器装置10a和客户机装置12_2a进行通信。
在此,根据诸如用户的喜好之类的属性数据来连续地更新代理数据AGENT_D1,它是通过分析客户机装置12_1a的用户的操作历史而被获得的,其如下所述。
在预定条件下更新代理数据AGENT_D1,以便也在预定条件下更新散列数据HASH_D1,并且可以防止长时间监控客户机装置12_1a的用户的操作。
而且,产生完全相同的散列数据HASH_D1来作为代理数据AGENT_D1的可能性很低,因此很可能它变为客户机装置12_1a的唯一值。因此,在服务器装置10a和客户机装置12_2a之间的通信中,散列数据HASH_D1足以能够作为客户机装置12_1a的识别数据。
注意,CPU 33a可以按照来自用户的指令来确定是否在公开代理数据AGENT_DP1中包括用于指定客户机装置12_1a的器件——诸如安全模块电路SMa——的识别数据。
CPU 33a集体地控制客户机装置12_1的操作。
将参照客户机装置12_1a的操作示例来说明由CPU 33a执行的处理。
下面,将说明图14所示的客户机装置12_1a按照根程序B_PRG来产生认证数据AP_CER的操作。
图8是用于说明由图14所示的客户机装置12_1a产生认证数据AP_CER的操作的流程图。
通过根程序B_PRG来控制下述的相应步骤。
步骤ST11:
当启动客户机装置12_1a时,安全模块电路SMa的计算电路36从存储器35读取根程序B_PRG,并且验证根程序B_PRG的有效性。
此时,计算电路36例如根据散列函数来产生根程序B_PRG的散列数据,将所产生的散列数据与预先准备的根程序B_PRG的散列数据相比较,并且当匹配时确定在存储器35中存储的根程序B_PRG是有效的(未被窜改的)。
步骤ST12:
当在步骤ST11中确定根程序B_PRG有效时,客户机装置12_1a进行到步骤ST13,否则执行差错处理。
步骤ST13:
客户机装置12_1a的CPU 33a在安全状态中经由数据线30来从存储器35读取根程序B_PRG。
步骤ST14:
CPU 33a执行在步骤ST13中读取的根程序B_PRG。
步骤ST15:
CPU 33a根据所述根程序B_PRG从用户指定的多个应用程序AP_C1选择一个未选择的应用程序AP_C1。在本实施例中,将代理程序AGENT_P1指定为应用程序AP_C1。
步骤ST16:
CPU 33a从存储器32a读取在步骤ST15中选择的应用程序AP_C1,并且验证有效性。
此时,CPU 33a例如根据散列函数来产生应用程序AP_C1的散列数据,将所产生的散列数据与预先准备的应用程序AP_C1的散列数据相比较,并且当匹配时确定在存储器32a中存储的所述应用程序AP_C1是有效的。
或者,CPU 33a可以根据公开密钥数据来验证对应于所述应用程序AP_C1的预定签名数据。所述签名数据可以被加到所述应用程序AP_C1上或与所述应用程序AP_C1分离地被存储在存储器32a中。
步骤ST17:
当在步骤ST16中确定所述应用程序AP_C1有效时,CPU 33a进行到步骤ST18,否则进行到步骤ST20。
步骤ST18:
CPU 33a向认证数据AP_CER加上在步骤ST16中被确定为有效的所述应用程序AP_C1的识别数据AP_ID、产生识别数据MF_ID、版本数据VER和散列数据HASH(以下也简称为识别数据AP_ID),
步骤ST19:
CPU 33a启动在步骤ST16中被确定为有效的应用程序AP_C1。
在本实施例中,将在步骤ST16中将应用程序AP_C1确定为有效的条件下启动所述应用程序AP_C1的情况说明为一个示例。但是,当应用程序AP_C1未被确定为有效时,可以通过向用户通知所述事实和获得用户的许可来启动所述应用程序AP_C1。注意,在这种情况下,CPU 33a不向认证数据AP_CER加上应用程序AP_C1的识别数据AP_ID。
步骤ST20:
CPU 33a确定是否在步骤ST15中选择了由用户指定的所有应用程序AP_C1,并且当确定选择了时,结束处理,否则返回步骤ST15。
在本实施例中,当代理程序AGENT_P1是有效的时,CPU 33a启动代理程序AGENT_P1,并且向认证数据AP_CER增加识别数据AP_ID。
下面将说明当图14所示的客户机装置12_1a按照代理程序AGENT_P1来更新(产生)公开代理数据AGENT_DP1时的操作示例。
图16是用于说明当图14所示的客户机装置12_1a更新(产生)公开代理数据AGENT_DP1时的操作示例的流程图。
CPU 33a按照代理程序AGENT_P1来执行图16中的相应步骤。
与诸如搜索引擎之类的其他应用程序AP_C1的操作并行地执行下面的操作。
步骤aST31:
CPU 33a从存储器32a读取代理数据AGENT_D1。
步骤aST32:
CPU 33a根据来自操作单元37a的操作信号来更新客户机装置12_1a的用户的操作历史数据。
然后,CPU 33a分析所更新的操作历史数据,并且产生指示用户的偏好和其他属性的属性数据。
CPU 33a根据所产生的属性数据来更新当前的代理数据AGENT_D1。
步骤aST33:
CPU 33a根据时间计数器(未示出)的计数值来确定是否已经过去了预定时间,并且当确定已经过去了预定时间时,进行到步骤aST36,否则进行到步骤aST34。
在本实施例中,所述预定时间是例如一个星期、一个月或三个月等。
步骤aST34:
CPU 33a确定是否由更新时间计数器的计数值(在步骤aST32中的更新的次数)、被更新属性数据的内容的程度(更新量)和更新频率超过预定阈值指示的值,并且当确定超过时,进行到步骤aST36,否则进行到步骤aST35。
步骤aST35:
CPU 33a根据来自操作单元37a的操作信号来确定是否从用户接收到公开代理数据AGENT_DP1的更新指令,并且当确定接收到更新指令时,进行到步骤aST36,否则返回步骤aST32。
步骤aST36:
CPU 33a从存储器32a读取图15所示的公开代理数据AGENT_DP1,并且通过在步骤aST32中更新的代理数据AGENT_D1来更新所述代理数据AGENT_D1。
步骤aST37:
CPU 33a产生所更新的代理数据AGENT_D1的散列数据HASH_D1,并且产生在更新之前的代理数据AGENT_D1的散列数据HASH_D1。
步骤aST38:
CPU 33a通过在步骤aST37中产生的散列数据HASH_D1来更新公开代理数据AGENT_DP1的散列数据HASH_D1。
步骤aST39:
CPU 33a产生在步骤aST38中更新的公开代理数据AGENT_DP1的签名数据SIGD,并且将其加到在图15中所示的公开代理数据AGENT_DP1。
步骤aST40:
CPU 33a复位时间计数器的计数值,并且更新时间计数器。
下面将说明图14所示的客户机装置12_1a与服务器装置10a执行通信的操作示例。
图17是用于说明当图14所示的客户机装置12_1a与服务器装置10a进行通信时的操作示例的流程图。
通过根程序B_PRG来控制下面所述的步骤aST51-aST54。
步骤aST51:
客户机装置12_1a的CPU 33a根据从安全模块电路SMa的存储器35读取的密钥数据SK_C1、公开密钥数据PK_S和公开密钥认证数据PKC_S来经由接口31a来与服务器装置10a进行相互验证。
当通过相互验证彼此确认有效性时,CPU 33a与服务器装置10a共享其后要用于与服务器装置10a的通信的会话密钥数据,并且根据其后通信的会话密钥数据来加密数据。
注意,在所述相互验证中,CPU 33a可以根据服务器装置10a的AC(属性证件)或URL(统一资源定位符)来验证服务器装置10a的有效性。在此,所述AC是通过由预定的验证代理(AC发放代理)链接到公开密钥认证数据的识别数据ID而用于认证受让人的功能和属性电子数据。在本示例中,它指示它是用于分布预定内容数据的服务器。
步骤aST52:
当通过在步骤aST51中执行的相互验证来彼此确认有效性时,CPU 33a进行到步骤aST53,否则完成所述处理。
步骤aST53:
CPU 33a产生通过根据图16所述的处理而产生的认证数据AP_CER的散列数据,并且将其作为签名数据SIG加到认证数据AP_CER上。
步骤aST54:
CPU 33a经由接口31a向服务器装置10a发送被加上在步骤aST53中产生的认证数据AP_CER的所述签名和公开代理数据AGENT_DP1。
步骤aST55:
CPU 33a使用在步骤aST53中发送的公开代理数据AGENT_DP1和散列数据HASHD_1来作为其本身的识别数据,以与服务器装置10a进行通信。
CPU 33a按照应用程序AP_C1或代理程序AGENT_P1经由接口31a来使用从服务器装置10a接收的、诸如内容数据之类的数据。
此时,如上所述,根据从客户机装置12_1a向服务器装置10a发送的公开代理数据AGENT_DP1来执行从服务器装置10a向客户机装置12_1a的数据发送,以便反映客户机装置12_1a的用户的喜好和其他属性。
注意,因为应用程序AP_C1具有版权保护功能,因此通过所述功能来保护内容数据的版权。
而且,在上述的实施例中,将CPU 33a根据从安全模块电路SMa读取的根程序B_PRG来执行签名数据SIG的验证处理和产生处理的情况说明为一个示例,但是可以通过安全模块电路SMa的计算电路36来执行所述处理。
在这种情况下,客户机装置12_1a向安全模块电路SMa提供在从服务器装置10a接收的数据中的用于验证的必要数据。然后,安全模块电路SMa的计算电路36根据所述数据来执行计算处理,并且经由接口31a向服务器装置10a发送所述结果。而且,安全模块电路SMa的计算电路36产生认证数据AP_CER的签名数据SIG,并且经由接口31a向服务器装置10a发送加有签名数据SIG的认证数据AP_CER。
下面,将说明当图14所示的客户机装置12_1a与图3所示的客户机装置12_2a执行通信时的操作示例。
图18是用于说明当图14所示的客户机装置12_1a与图3所示的客户机装置12_2a执行通信时的操作示例的流程图。
根据根程序B_PRG来执行图28所示的步骤aST61-aST67,并且通过代理程序AGENT_P1来执行图18所示的步骤aST68-aST71。
步骤aST61:
客户机装置12_1a的CPU 33a根据从安全模块电路SMa的存储器35读取的密钥数据SK_C1、公开密钥数据PK_C2和公开密钥认证数据PKC_C2来经由接口31a与客户机装置12_2a进行相互验证。
当通过相互验证来彼此确认有效性时,CPU 33a与客户机装置12_2a共享其后要用于与客户机装置12_2a通信的会话密钥数据,并且根据其后通信的会话密钥数据来加密数据。
注意,在本实施例中,存储器35存储公开密钥数据PK_2和公开密钥认证数据PKC_2,但是可以在验证之前从客户机装置12_2a接收它们。
步骤aST62:
当通过在步骤aST61中执行的相互验证来彼此确认有效性时,CPU 33a进行到步骤aST63,否则结束所述处理或执行差错处理。
步骤aST63:
CPU 33a产生通过基于图16所述的处理而产生的认证数据AP_CER1的散列数据,并且将其作为签名数据SIG增加到认证数据AP_CER1。
步骤aST64:
CPU 33a经由接口31a向客户机装置12_2a发送在步骤aST63中产生的被加到认证数据AP_CER1的签名。
步骤aST65:
CPU 33a经由接口31a从客户机装置122a接收认证数据AP_CER2,所述认证数据AP_CER2被加上通过与使用图16所述的相同的处理由客户机装置12_2a产生的签名数据SIG。
如上所述,通过客户机装置12_2a来启动认证数据AP_CER2,其中,被确认为有效的应用程序AP_C2的识别数据AP_ID、产生识别数据MF_ID、版本VER和散列值HASH通过使得它们彼此相关联而被指示,如图6所示。
步骤aST66:
CPU 33a验证在步骤aST64中接收的认证数据AP_CER2的有效性。
此时,CPU 33a例如根据散列函数来产生认证数据AP_CER2的散列数据。然后,CPU 33a确定是否所产生的散列数据与签名数据SIG匹配,并且当匹配时确定认证数据AP_CER2未被窜改而是有效的。
然后,当确定认证数据AP_CER2有效时,CPU 33a进行到步骤aST67,否则结束处理或执行差错处理。
步骤aST67:
CPU 33a确定是否由用户指定的应用程序AP_C1的识别数据AP_ID被包括在步骤aST65中接收的认证数据AP_CER2中,并且当确定包括识别数据AP_ID(应用程序AP_C2被确认为有效并且在客户机装置12_2a中被启动)时,进行到步骤aST68,否则结束处理或执行差错处理。
注意,CPU 33a可以在所述步骤确定是否除了识别数据AP_ID之外,所述产生识别数据MF_ID和版本数据VER是所期望的。
步骤aST68:
CPU 33a按照已经被启动的代理程序AGENT_P1来向客户机装置12_2a发送由在图16中所示的过程产生的公开代理数据AGENT_DP1。
接口31a从客户机装置12_2a接收由客户机装置12_1a产生的公开代理数据AGENT_DP2。
步骤aST69:
CPU 33a验证被加到在步骤aST68中接收的公开代理数据AGENT_DP1的签名数据SIGD的有效性。
当确定签名数据SIGD有效时,CPU 33a进行到步骤aST70,否则,结束处理或执行差错处理。
步骤aST70:
CPU 33a将在步骤aST68中接收的公开代理数据AGENT_DP2中包括的散列数据HASH_D2登记为客户机装置122a的识别数据。
通过与如上所述当客户机装置121a产生散列数据HASH_D1时相同的方法来在客户机装置122a中产生散列数据HASH_D2。
步骤aST71:
CPU 33a使用散列数据HASH_D1来作为客户机装置12_1a的识别数据,并且使用在步骤aST70中登记的散列数据HASH_D2来作为客户机装置12_1a的识别数据,以与客户机装置12_2a执行通信。
例如,CPU 33a按照代理程序AGENT_P1来加密诸如预定内容数据之类的数据,并且将其经由接口31a发送到客户机装置12_2a。
此时,CPU 33a根据在步骤aST68中接收的公开代理数据AGENT_DP2向客户机装置12_2a发送与客户机装置12_1a的用户的喜好和其他属性匹配的数据。
除了上述之外,CPU 33a可以根据公开代理数据AGENT_DP2来确定客户机装置12_2a的用户经常使用邮件、聊天、语音邮件和呼叫的哪一种,并且使用所述经常使用的媒介与用户通信。
而且,CPU 33a使用经由接口31a从客户机装置12_2a接收的诸如内容数据之类的数据。
注意,客户机装置12_2a具有与如上所述的客户机装置12_1a相同的配置。
下面将说明图3所示的通信系统1a的一个整体操作示例。
客户机装置12_1a和12_2a的每个执行如上所述在图16中所示的处理以分别向客户机装置12_1a和12_2a的每个的图14所示的安全模块电路SMa中的存储器35写入认证数据AP_CER和AP_CER2。
而且,客户机装置12_1a和12_2a的每个通过执行图16中所示的处理而产生表示用户的喜好和其他属性的公开代理数据AGENT_DP1和AGENT_DP2,并且将其写入到存储器32a。
然后,客户机装置12_1a和12_2a向服务器装置10a发送公开代理数据AGENT_DP1和AGENT_DP2。
服务器装置10a根据在公开代理数据AGENT_DP1中的散列数据HASH_D1来识别客户机装置12_1a,并且经由接口21a根据代理程序AGENT_D1向客户机装置12_1a发送与客户机装置12_1a的用户的喜好和其他属性匹配的诸如内容数据之类的多种服务数据。
而且,服务器装置10a根据在公开代理数据AGENT_DP2中的散列数据HASH_D2来识别客户机装置12_2a,并且经由接口21a向客户机装置12_2a发送与客户机装置12_2a的用户的喜好和其他属性匹配的诸如内容数据之类的多种服务数据。
另一方面,当与客户机装置12_2a进行通信时,客户机装置12_1a向客户机装置12_2a发送公开代理数据AGENT_DP1,并且从客户机装置12_2a接收公开代理数据AGENT_DP2。
然后,客户机装置12_1a使得客户机装置12_2a根据散列数据HASH_D1来识别其本身,并且根据散列数据HASH_D2来识别客户机装置12_2a,以与客户机装置12_2a执行通信。
而且,客户机装置12_1a根据公开代理数据AGENT_DP2向客户机装置12_2a发送与客户机装置12_2a的用户的喜好和其他特性或匹配形式的数据匹配的数据。
如上所述,在通信系统1a中,客户机装置12_1a和12_2a使用在预定条件下更新的散列数据HASH_D1和HASH_D2来作为它们本身的识别数据,以与服务器装置10a执行通信。
结果,如果根据在网络9上的散列数据HASH_D1和HASH_D2来监控客户机装置12_1a和12_2a的用户的操作(行为),则在更新散列数据HASH_D1和HASH_D2后不能继续监控。因此,有可能防止长时间监控客户机装置12_1a和12_2a的用户的操作,并且可以保护用户的隐私。
而且,按照通信系统1a,服务器装置10a不必存储相应用户的操作历史数据,并且可以以小负荷来实现代理功能。
而且,按照通信系统1a,可以以在存储器容量和处理方面的小负荷来在客户机装置12_1a和12_2a之间平滑地执行使用所述代理功能的通信。
例如,当在客户机装置12_1a和12_2a之间交换数据时,可以发送与其他用户的喜好匹配的数据。
而且,按照通信系统1a,客户机装置12_1a和12_2a验证由其本身启动的应用程序AP_C1和AP_C2的有效性,并且向服务器装置10a发送指示所述结果的认证数据AP_CER和AP_CER2。
因此,服务器装置10a不必存储由客户机装置12_1a和12_2a执行的应用程序的所有散列数据,并且不必执行有效性的验证处理。因此,可以降低由在客户机装置12_1a和12_2a中启动的应用程序的有效性的确定引起的在服务器装置10a上的负荷。
而且,按照通信系统1a,在客户机装置12_1a和12_2a中,如图14所示,如上所述用于产生认证数据AP_CER的根程序B_PRG被存储在认证数据AP_CER1和AP_CER2中,并且经由数据线30以安全的方式被CPU 33a读取,以便可以改善认证数据AP_CER的可靠性。
而且,按照通信系统1a,因为服务器装置10a接收被加上认证数据AP_CER的签名,并且在与客户机装置12_1a和12_2a进行相互验证后验证签名数据SIG,因此服务器装置10a有可能高度可靠地确定在客户机装置12_1a和12_2a中启动的应用程序的有效性。
而且,按照通信系统1a,即使当除了在服务器装置10a和客户机装置12_1a和12_2a之间的情况之外还在客户机装置12_1a和12_2a之间发送/接收内容数据时,客户机装置12_1a和12_2a之一也能够以小负荷来确定由另一个应用程序启动的一个应用程序的有效性。
注意,如上所述的相互验证不限于公开密钥验证,并且可以是任何验证方法,只要它是能够执行相互验证的方法或系统。
第三实施例
本实施例涉及按照第十三到第十九方面的本发明的一个示例。
下面,将参照图19-图24来说明本实施例。
首先,将说明本实施例的相应组成部分与在本发明的那些组成部分的对应关系。
图12中所示的应用程序AP_S对应于第十五和第十七发明的程序。
图14所示的根程序B_PRG等对应于第十四和第十六发明的程序或根程序。
而且,图3所示的客户机装置12_1b对应于第一、第十四和第十六发明的计算机,并且图3所示的服务器装置10b和客户机装置12_2b对应于在第十三、第十四和第十七发明中的通信方。
而且,图3所示的服务器装置10b对应于第十五和第十七发明的计算机,并且在图3中所示的客户机装置12_1b对应于在第十五和第十七发明中的通信方。
而且,公开代理数据AGENT_DP1对应于本发明的属性数据,并且认证数据AP_CER对应于本发明的认证数据。
图20中所示的步骤对应于第十四发明的第一过程,并且图21中所示的步骤bST54和图22中所示的步骤bST68对应于第十三发明的第二过程。
而且,图8中所示的相应步骤对应于第十四发明的第一过程,并且图21所示的步骤bST54和图22所示的步骤bST64对应于第十四发明的第二过程。
而且,图13中所示的步骤bST7对应于第十五发明的第一过程,并且图21中所示的步骤bST54对应于第十五发明的第二过程。
[服务器装置10b]
图12是图3所示的服务器装置10b的配置的视图。
如图12所示,服务器装置10b具有例如接口21b、存储器22b和CPU 23b,它们经由数据线20而彼此连接。
在此,接口21b对应于在第十七发明中的接口,存储器22b对应于在第十七发明中的存储器,和CPU 23b对应于在第十七发明中的执行电路。
接口21b经由网络9而向客户机装置12_1b和12_2b发送数据/从客户机装置12_1b和12_2b接收数据。
存储器22b存储应用程序AP_S。
如下所述,应用程序AP_S根据从客户机装置12_1b和12_2b接收的公开代理数据AGENT_DP1和AGENT_DP2来向客户机装置12_1b和12_2b提供与客户机装置12_1b和12_2b的用户的喜好和其他特性匹配的多种服务。
存储器22b存储服务器装置10b的密钥数据SK_S、公开密钥数据PK_S、公开密钥认证数据PKC_S和识别数据ID_S。
而且,存储器22b存储从客户机装置12_1b接收的公开代理数据AGENT_DP1。
而且,存储器22b存储来自与客户机装置12_1b通信的客户机装置12_1b的公开密钥数据PK_C1和公开密钥认证数据PKC_C1等。
而且,存储器22b存储从客户机装置12_2b接收的公开代理数据AGENT_DP2。
而且,存储器22b存储来自与客户机装置12_2b通信的客户机装置12_2b的公开密钥数据PK_C2和公开密钥认证数据PKC_C2等。
CPU 23b执行应用程序AP_S,并且集体地控制服务器装置10b的操作。
将结合服务器装置10b的操作示例来说明由CPU 23b执行的处理。
下面,将说明当图12所示的服务器装置10b与客户机装置12_1b进行通信时的操作示例。
图13是用于说明当图12所示的服务器装置10b与客户机装置12_1b进行通信时的操作示例的流程图。
通过应用程序AP_S来控制下面所述的每个步骤。
步骤aST1:
服务器装置10b的CPU 23b(从存储器22读取由用户指定的应用程序AP_S,并且执行它)。
由用户指定的应用程序AP_S是例如一种用于向客户机装置提供诸如视频和音频的内容数据的搜索引擎和程序,并且仅仅向具有对应于其的识别数据BP_ID的程序发送数据/从具有对应于其的识别数据BP_ID的程序接收内容数据。所述内容数据可以与版权相关联。
步骤aST2:
CPU 23b根据从存储器22b读取的密钥数据SK_S、公开密钥数据PK_C1和公开密钥认证数据PKC_C1来例如经由接口21b与客户机装置12_1b进行相互验证。
作为相互验证,可以使用ISO/IEC 9798-3方法等。
当通过相互验证彼此确认有效性时,CPU 23b与客户机装置12_1b共享用于其后与客户机装置12_1b通信的会话密钥数据,并且根据在其后的通信中的会话密钥数据来加密数据。
在本实施例中,例如,CPU 23b不必验证客户机装置12_1b的根程序B_PRG的散列数据。
步骤aST3:
CPU 23b当通过在步骤aST2中执行的相互验证而彼此确认有效性时进行到步骤aST4,否则结束处理或执行差错处理。
步骤aST4:
CPU 23b经由接口21b从客户机装置12_1b接收被加上签名数据SIG的认证数据AP_CER。
认证数据AP_CER被例如由客户机装置12_1b启动,应用程序AP_C1的识别数据AP_ID、产生识别数据MF_ID、版本VER和散列值HASH通过使得所述数据彼此相关联而指示被确认为有效,如图6所示。
在本实施例中,将代理程序AGENT_P1用作应用程序AP_C1之一。
步骤aST5:
CPU 23b验证在步骤aST4中接收的认证数据AP_CER的有效性。
此时,例如,CPU 23b根据散列函数来产生认证数据AP_CER的散列数据。然后,CPU 23b查看是否所产生的散列数据与图6所示的被加到认证数据AP_CER的签名数据SIG匹配,当匹配时确定认证数据AP_CER1未被窜改而是有效的。
在此,所述散列函数是用于从给定的原始语句产生固定长度数据的函数,并且具有不能从散列值恢复原始语句并且具有相同散列值的不同数据的产生极其困难的特性。
然后,CPU 23b当确定认证数据AP_CER是有效时进行到步骤aST6,否则结束处理或执行差错处理。
注意,当客户机装置12_1b通过使用客户机装置12_1b的密钥SK_C1来加密散列数据而产生签名数据SIG时,CPU 23b通过使用客户机装置12_1b的公开密钥PK_C1来解密签名数据SIG,并且比较所解密的数据与散列数据。
注意,因为通过在网络9上使用会话密钥来解密数据,因此可以不使用需要长时间处理的数字签名技术来实现所期望的目的。即,因为散列数据本身被会话密钥加密,因此可以由此实现与数字签名几乎相同的功能。
而且,为了防止非法重新使用在过去交易的数据,通常,向数据(在这个示例中是图6中所示的认证数据AP_CER)加上随机数数据,对于包括所述随机数的整个数据计算散列数据,并且将结果用作签名数据SIG。而且,当使用密钥SK_C1来加密时,加密包括随机数数据的数据的散列数据。
步骤aST6:
CPU 23b确定是否在步骤aST4中接收的认证数据AP_CER中包括指定的应用程序AP_C1(在本实施例中是代理程序AGENT_P1)的识别数据AP_ID,当确定包括识别数据AP_ID(确认识别数据AP_ID有效并且在客户机装置12_1b被启动)时,进行到步骤aST7,否则结束处理。
在此,代理程序AGENT_P1是如下所述的用于产生客户机装置12_1b的用户的公开代理数据AGENT_DP1的程序。
注意,CPU 23b可以验证是否在所述步骤中的上述验证中除了识别数据AP_ID之外,产生识别数据MF_ID和版本数据VER是所期望的。
注意,为了改善安全性,不仅通过验证在认证数据AP_CER中包括识别数据AP_ID,而且通过向操作程序AP_C1引入独特的协议以将其与其他程序相区别或者通过使用操作程序AP_C1特有的密钥来加密客户机装置特有的ID_C1并且适当地接收数据,可以将通信方的程序识别为所期望的。
步骤aST7:
接口21b从客户机装置12_1b接收公开代理数据AGENT_DP1。
步骤aST8:
CPU 23b验证被加到在步骤aST7中接收的图19所示的公开代理数据AGENT_DP1的签名数据SIGD的有效性,当确定为有效时进行到步骤aST9,否则结束处理或执行差错处理。
步骤aST9和aST10:
CPU 23b分析公开代理数据AGENT_DP1,并且向客户机装置12_1b发送与客户机装置12_1b的用户的喜好和其他特性匹配的诸如内容数据之类的多种服务数据。
例如,当应用程序AP_S是搜索引擎时,CPU 23b使用由客户机装置12_1b的用户输入的预定搜索关键字,并且进一步使用与根据用户的喜好确定的关键字相关联的关键字来搜索数据和显示搜索结果。
例如,当用户输入作为搜索关键字的“包价旅行”并且公开代理数据AGENT_DP1指示用户喜欢“汽车”时,CPU 23b选择使用汽车到达目的地的计划和与有利于其他包价旅行数据的租车计划相关联的数据,并且向客户机装置12_1b发送。
如上所述,服务器装置10b能够根据从客户机装置12_1b接收的公开代理数据AGENT_DP1来实现代理功能,而不用累积客户机装置12_2b的用户的操作历史数据。
[客户机装置12_1b]
图14是图3所示的客户机装置12_1的配置的视图。
如图14所示,客户机装置12_1b具有例如接口31b、存储器32b、CPU 33b、操作单元37b和安全模块电路SMb,它们经由数据线30而彼此连接。
在此,接口31b对应于在第十六发明中的接口,存储器32b对应于在第十六发明中的存储器,安全模块电路SMb对应于在第十六发明中的电路模块,并且CPU 33b对应于在第十六发明中的执行电路。
在本实施例中,客户机装置12_1b是例如计算机、PDA(个人数字助理)和移动电话等。
接口31b经由网络9而与服务器装置10b和客户机装置122b执行通信。
存储器32b存储应用程序AP_C1。
存储器32b存储作为应用程序AP_C1之一的代理程序AGENT_P1。
存储器32b是半导体存储器或硬盘驱动器。
安全模块电路SMb具有例如存储器35和计算电路36。
安全模块电路SMb是防窜改电路,并且具有防止窜改、监控在存储器35中的所存储数据和监控在计算电路36中的处理的功能。
防窜改电路是被配置来防止错误操作和当它被从外部攻击(通过非法读取内部数据和通过将输入频率或输入电压设置为在预定范围之外等的攻击)时的内部数据泄露的电路。具体地说,为了防止读取内部数据,使得所述电路具有多层结构以向最低层提供所述存储器,并且形成伪层(例如铝层)来作为上层和下层,以便使得从外部向存储器输入/输出接口的直接访问困难。而且,所述电路被配置为具有防窜改电路频率检测电路和电压检测电路,以便当所述频率或电压不在预定范围内时不工作。
存储器35存储客户机装置12_1b的密钥数据SK_C1、公开密钥数据PK_C1、公开密钥认证数据PKC_C1和识别数据ID_C1。
而且,存储器35存储来自与服务器装置10b通信的服务器装置10b的公开密钥数据PK_S和公开密钥认证数据PKC_S等。
而且,存储器35存储来自与客户机装置12_2b通信的客户机装置12_2b的公开密钥数据PK_C2和公开密钥认证数据PKC_C2等。
而且,存储器35存储从客户机装置12_2b接收的公开代理数据AGENT_DP2。
操作单元37b是操作部件,诸如键盘、鼠标和触摸板,并且按照由用户进行的操作向CPU 33b输出操作信号。
CPU 33b根据根程序B_PRG、应用程序AP_C1和来自操作单元37b的操作信号来执行多种处理。
CPU 33b在安全状态中经由数据线从在安全模块电路SMb中的存储器35读取根程序B_PRG,并且执行它。
CPU 33b按照根程序B_PRG来产生图6所示的认证数据AP_CER,并且向服务器装置10b和客户机装置12_2b发送它。
注意,为了实现在安全状态中的读取,使用多种方法,以便通过CPU 33b和安全模块电路SMb来共享公共加密密钥数据以加密在数据线30上的数据,在CPU 33b和安全模块电路SMb之间执行相互验证,通过使用共享的会话密钥数据来加密在数据线30上的数据,并且将CPU 33b和安全模块电路SMb模压为一个封装体,以防止从外部对数据线30上的数据的访问等。
为了防止安全模块电路SMb被安装到其他的客户机装置中,可以分散客户机装置12_1b特有的存储器数据(ID、随机数、密钥和其他数据)而存储在其中,并且可以在启动时通过安全模块电路SMb来进行存储器数据的验证。或者,可以使得接口31b的输入/输出操作复杂化等,以使得CPU 33b的根结构复杂化,并且所述结构仅仅被许可的制造商知道以进一步改善根程序B_PRG的启动可靠性。
CPU 33b从存储器32b读取应用程序AP_C1,并且执行它。
在本实施例中,CPU 33b从存储器32b读取代理程序AGENT_P1,并且执行它。
CPU 33b按照代理程序AGENT_P1来产生图19中所示的公开代理数据AGENT_DP1,并且将其发送到服务器装置10b和客户机装置12_2b。
如图19所示,公开代理数据AGENT_DP1包括例如识别数据ID(代理软件ID)、产生识别数据(代理软件制造ID)、代理程序AGENT_P1的版本数据和关于代理程序AGENT_P1的其他信息、代理数据AGENT_D1、代理数据AGENT_D1的更新历史数据PRP、安全模块SMb的版本和代理程序AGENT_P1的签名数据SIGD。
在此,更新历史数据PRP指示公开代理数据AGENT_DP1的更新历史,用于指示在每次更新的更新后代理数据AGENT_D1的历史编号和散列数据HASH_D1。
而且,代理数据AGENT_D1是根据属性数据来连续地更新的数据,所述属性数据诸如用户的喜好,它是通过分析客户机装置12_1b的用户的操作历史而获得的,这将在下面所述。
注意,CPU 33b可以按照来自用户的指令来确定是否在公开代理数据AGENT_DP1中包括用于指定客户机装置12_1b的器件——诸如安全模块电路SMb——的识别数据。
CPU 33b集体地控制客户机装置12_1b的操作。
将参照客户机装置12_1b的操作示例来说明由CPU 33b执行的处理。
下面,将说明图14所示的客户机装置12_1b按照根程序B_PRG来产生认证数据AP_CER的操作。
图8是用于说明由图14所示的客户机装置12_1b产生认证数据AP_CER的操作的流程图。
通过根程序B_PRG来控制下述的相应步骤。
步骤ST11:
当启动客户机装置12_1b时,安全模块电路SMb的计算电路36从存储器35读取根程序B_PRG,并且验证根程序B_PRG的有效性。
此时,计算电路36例如根据散列函数来产生根程序B_PRG的散列数据,将所产生的散列数据与预先准备的根程序B_PRG的散列数据相比较,并且当匹配时确定在存储器35中存储的根程序B_PRG是有效的(未被窜改的)。
步骤ST12:
当在步骤ST11中确定根程序B_PRG有效时,客户机装置12_1b进行到步骤ST13,否则执行差错处理。
步骤ST13:
客户机装置12_1b的CPU 33b在安全状态中经由数据线30来从存储器35读取根程序B_PRG。
步骤ST14:
CPU 33b执行在步骤ST13中读取的根程序B_PRG。
步骤ST15:
CPU 33b根据所述根程序B_PRG从用户指定的多个应用程序AP_C1选择一个未选择的应用程序AP_C1。在本实施例中,将代理程序AGENT_P1指定为应用程序AP_C1。
步骤ST16:
CPU 33b从存储器32b读取在步骤ST15中选择的应用程序AP_C1,并且验证有效性。
此时,CPU 33b例如根据散列函数来产生应用程序AP_C1的散列数据,将所产生的散列数据与预先准备的应用程序AP_C1的散列数据相比较,并且当匹配时确定在存储器32b中存储的所述应用程序AP_C1是有效的。
另外,CPU 33b可以根据公开密钥数据来验证对应于所述应用程序AP_C1的预定签名数据。所述签名数据可以被加到所述应用程序AP_C1上或与所述应用程序AP_C1分离地被存储在存储器32b中。
步骤ST17:
当在步骤ST16中确定所述应用程序AP_C1有效时,CPU 33b进行到步骤ST18,否则进行到步骤ST20。
步骤ST18:
CPU 33b向认证数据AP_CER加上在步骤ST16中被确定为有效的所述应用程序AP_C1的识别数据AP_ID、产生识别数据MF_ID、版本数据VER和散列数据HASH(以下也简称为识别数据AP_ID),
步骤ST19:
CPU 33b启动在步骤ST16中被确定为有效的应用程序AP_C1。
在本实施例中,将在步骤ST16中将应用程序AP_C1确定为有效的条件下启动所述应用程序AP_C1的情况说明为一个示例。但是,当应用程序AP_C1未被确定为有效时,可以通过向用户通知所述事实和获得用户的许可来启动所述应用程序AP_C1。注意,在这种情况下,CPU 33b不向认证数据AP_CER加上应用程序AP_C1的识别数据AP_ID。
步骤ST20:
CPU 33b确定是否在步骤ST15中选择了由用户指定的所有应用程序AP_C1,并且当确定被选择了时,结束处理,否则返回步骤ST15。
在本实施例中,当代理程序AGENT_P1是有效的时,CPU 33b启动代理程序AGENT_P1,并且向认证数据AP_CER增加识别数据AP_ID。
下面将说明当图14所示的客户机装置12_1b按照代理程序AGENT_P1来产生公开代理数据AGENT_DP1时的操作示例。
图20是用于说明当图14所示的客户机装置12_1b产生公开代理数据AGENT_DP1时的操作示例的流程图。
CPU 33b按照代理程序AGENT_P1来执行图20中的相应步骤。
与诸如搜索引擎之类的其他应用程序AP_C1的操作并行地执行下面的操作。
步骤bST31:
CPU 33b从存储器32b读取代理数据AGENT_D1。
步骤bST32:
CPU 33b根据来自操作单元37b的操作信号来更新客户机装置12_1b的用户的操作历史数据。
然后,CPU 33b分析所更新的操作历史数据,并且产生属性数据,用于指示用户的偏好和其他属性。
CPU 33b根据所产生的属性数据来更新当前的代理数据AGENT_D1。
步骤bST33:
CPU 33b根据时间计数器(未示出)的计数值来确定是否已经过去了预定时间,并且当确定已经过去了预定时间时,进行到步骤bST36,否则进行到步骤bST34。
在本实施例中,所述预定时间是例如一个星期、一个月或三个月等。
步骤bST34:
CPU 33b确定是否更新时间计数器的计数值指示的值(在步骤aST32中的更新的次数)、被更新的属性数据的内容的程度(更新量)和更新频率超过预定阈值,并且当确定超过时,进行到步骤bST36,否则进行到步骤bST35。
步骤bST35:
CPU 33b根据来自操作单元37b的操作信号来确定是否从用户接收到公开代理数据AGENT_DP1的更新指令,并且当确定接收到更新指令时,进行到步骤bST36,否则返回步骤bST32。
步骤bST36:
CPU 33b从存储器32b读取图19所示的公开代理数据AGENT_DP1,并且通过在步骤bST32中更新的代理数据AGENT_D1来更新所述代理数据AGENT_D1。
步骤bST37:
CPU 33b产生所更新的代理数据AGENT_D1的散列数据HBS_D1,并且产生在更新之前的代理数据AGENT_D1的散列数据HBS_D1,并且根据其来更新图19中所示的更新历史数据。
步骤bST38:
CPU 33b产生在步骤bST37中更新的公开代理数据AGENT_DP1的签名数据SIGD,并且将其加到在图19中所示的公开代理数据AGENT_DP1。
步骤bST39:
CPU 33b复位时间计数器的计数值,并且更新时间计数器。
下面将说明图14所示的客户机装置12_1b与服务器装置10b执行通信的操作示例。
图21是用于说明当图14所示的客户机装置12_1b与服务器装置10b进行通信时的操作示例的流程图。
通过根程序B_PRG来控制下面所述的步骤bST51-bST55。
步骤bST51:
客户机装置12_1b的CPU 33b根据从安全模块电路SMb的存储器35读取的密钥数据SK_C1、公开密钥数据PK_S和公开密钥认证数据PKC_S来经由接口31b来与服务器装置10b进行相互验证。
当通过相互验证彼此确认有效性时,CPU 33b与服务器装置10b共享其后要用于与服务器装置10b通信的会话密钥数据,并且根据其后通信的会话密钥数据来加密数据。
注意,在所述相互验证中,CPU 33b可以根据服务器装置10b的AC(属性证件)或URL(统一资源定位符)来验证服务器装置10b的有效性。在此,所述AC是通过由预定的验证代理(AC发放代理)链接到公开密钥认证数据的识别数据ID而用于认证受让人的功能和属性的电子数据。在本示例中,它指示它是用于分布预定内容数据的服务器。
步骤bST52:
当通过在步骤bST51中执行的相互验证来彼此确认有效性时,CPU 33b进行到步骤bST53,否则结束所述处理。
步骤bST53:
CPU 33b产生通过根据图8所述的处理而产生的认证数据AP_CER的散列数据,并且将其作为签名数据SIG加到认证数据AP_CER上。
步骤bST54:
CPU 33b经由接口31b向服务器装置10b发送被加上在步骤bST53中产生的认证数据AP_CER的所述签名和公开代理数据AGENT_DP1。
步骤bST55:
CPU 33b按照预定的应用程序AP_C1或代理程序AGENT_P1经由接口31b来使用从服务器装置10b接收的诸如内容数据之类的数据。
此时,如上所述,根据从客户机装置12_1b向服务器装置10b发送的公开代理数据AGENT_DP1来执行从服务器装置10b向客户机装置12_1b的数据发送,以便反映客户机装置12_1b的用户的喜好和其他属性。
注意,因为应用程序AP_C1具有版权保护功能,因此通过所述功能来保护内容数据的版权。
而且,在上述的实施例中,将CPU 33b根据从安全模块电路SMb读取的根程序B_PRG来执行签名数据SIG的验证处理和产生处理的情况说明为一个示例,但是可以通过安全模块电路SMb的计算电路36来执行所述处理。
在这种情况下,客户机装置12_1b向安全模块电路SMb提供在从服务器装置10b接收的数据中的用于验证的必要数据。然后,安全模块电路SMb的计算电路36根据所述数据来执行计算处理,并且经由接口31b向服务器装置10b发送所述结果。而且,安全模块电路SMb的计算电路36产生认证数据AP_CER的签名数据SIG,并且经由接口31b向服务器装置10b发送被增加签名数据SIG的认证数据AP_CER。
下面,将说明当图14所示的客户机装置12_1b向图3所示的客户机装置12_2b发送内容数据/从图3所示的客户机装置12_2b接收内容数据时的操作示例。
图22是用于说明当图14所示的客户机装置12_1b向图3所示的客户机装置12_2b发送内容数据/从图3所示的客户机装置12_2b接收内容数据时的操作示例的流程图。
按照根程序B_PRG来执行图22所示的步骤bST61-bST67,并且通过按照代理程序AGENT_P1来执行步骤bST68-bST70。
步骤bST61:
客户机装置12_1b的CPU 33b根据从安全模块电路SMb的存储器35读取的密钥数据SK_C1、公开密钥数据PK_C2和公开密钥认证数据PKC_C2来经由接口31b与客户机装置12_2b进行相互验证。
当通过相互验证来彼此确认有效性时,CPU 33b与客户机装置12_2b共享其后要用于与客户机装置12_2b通信的会话密钥数据,并且根据其后通信的会话密钥数据来加密数据。
注意,在本实施例中,存储器35存储公开密钥数据PK_2和公开密钥认证数据PKC_2,但是可以在验证之前从客户机装置12_2b接收它们。
步骤bST62:
当通过在步骤bST61中执行的相互验证来彼此确认有效性时,CPU 33b进行到步骤bST63,否则结束所述处理或执行差错处理。
步骤bST63:
CPU 33b产生通过基于图8所述的处理而产生的认证数据AP_CER1的散列数据,并且将其作为签名数据SIG增加到认证数据AP_CER1。
步骤bST64:
CPU 33b经由接口31b向客户机装置12_2b发送在步骤bST63中产生的被加到认证数据AP_CER1的签名。
步骤bST65:
CPU 33b经由接口31b从客户机装置12_2b接收认证数据AP_CER2(未示出),所述认证数据AP_CER2被加上通过与使用图8所述的相同的处理由客户机装置12_2b产生的签名数据SIG。
如上所述,通过客户机装置12_2b来启动认证数据AP_CER2,其中,被确认为有效的应用程序AP_C2的识别数据AP_ID、产生识别数据MF_ID、版本VER和散列值HASH通过使得它们彼此相关联而被如图6所示指示。
步骤bST66:
CPU 33b验证在步骤bST64中接收的认证数据AP_CER2的有效性。
此时,CPU 33b例如根据散列函数来产生认证数据AP_CER2的散列数据。然后,CPU 33b确定是否所产生的散列数据与签名数据SIG匹配,并且当匹配时确定认证数据AP_CER2未被窜改而是有效的。
然后,当确定认证数据AP_CER2有效时,CPU 33b进行到步骤bST67,否则结束处理或执行差错处理。
步骤bST67:
CPU 33b确定是否由用户指定的应用程序APC_1的识别数据AP_ID被包括在步骤bST65中接收的认证数据AP_CER2中,并且当确定包括识别数据AP_ID(在应用程序AP_C2中被确认为有效并且在客户机装置12_2b中被启动)时,进行到步骤bST68,否则结束处理或执行差错处理。
注意,CPU 33b可以在所述步骤确定是否除了识别数据AP_ID之外,所述产生识别数据MF_ID和版本数据VER是所期望的。
步骤bST68:
CPU 33b按照已经被启动的代理程序AGENT_P1来经由接口31b向客户机装置12_2b发送由在图20中所示的过程产生的公开代理数据AGENT_DP1。
接口31b从客户机装置12_2b接收由客户机装置12_1b产生的公开代理数据AGENT_DP2。
步骤bST69:
CPU 33b验证被加到在步骤bST68中接收的公开代理数据AGENT_DP2的签名数据SIGD的有效性。
当确定签名数据SIGD有效时,CPU 33b进行到步骤bST70,否则,结束处理或执行差错处理。
步骤bST70:
CPU 33b按照代理程序AGENT_P1来加密诸如预定内容数据之类的数据,并且发送与客户机装置12_1b的用户的喜好和其他属性匹配的数据。
除了上述之外,CPU 33b可以根据公开代理数据AGENT_DP2来确定客户机装置12_2b的用户经常使用邮件、聊天、语音邮件和呼叫的哪一种,并且使用所述经常使用的媒介与用户通信。
而且,CPU 33b使用经由接口31b从客户机装置12_2b接收的诸如内容数据之类的数据。
注意,客户机装置12_2b具有与如上所述的客户机装置12_1b相同的配置。
下面将说明图3所示的通信系统1b的一个整体操作示例。
客户机装置12_1b和12_2b的每个执行如上所述在图8中所示的处理以分别向客户机装置12_1b和12_2b的每个的图5所示的安全模块电路SMb中的存储器35写入认证数据AP_CER和AP_CER2。
而且,客户机装置12_1b和12_2b的每个通过执行图20中所示的处理而产生表明用户的喜好和其他属性的公开代理数据AGENT_DP1和AGENT_DP2,并且将其写入到存储器32b。
然后,客户机装置12_1b和12_2b向服务器装置10b发送公开代理数据AGENT_DP1和AGENT_DP2。
服务器装置10b经由接口21b根据公开代理数据AGENT_DP1来向客户机装置12_1b发送与客户机装置12_1b的用户的喜好和其他属性匹配的诸如内容数据之类的多种服务数据。
而且,服务器装置10b经由接口21b根据公开代理数据AGENT_DP2来向客户机装置12_2b发送与客户机装置12_2b的用户的喜好和其他属性匹配的诸如内容数据之类的多种服务数据。
另一方面,当与客户机装置12_2b进行通信时,客户机装置12_1b向客户机装置12_2b发送公开代理数据AGENT_DP1,并且从客户机装置12_2b接收公开代理数据AGENT_DP2。
然后,客户机装置12_1b根据公开代理数据AGENT_DP2向客户机装置12_2b发送与客户机装置12_2b的用户的喜好和其他特性匹配的数据或匹配形式的数据。
如上所述,按照通信系统1b,服务器装置10b不必存储相应用户的操作历史数据,并且可以以小负荷来实现代理功能。
而且,按照通信系统1b,可以以在存储器容量和处理方面的小负荷来在客户机装置12_1b和12_2b之间平滑地执行使用所述代理功能的通信。
例如,当在客户机装置12_1b和12_2b之间交换数据时,可以发送与其他用户的喜好匹配的数据。
而且,按照通信系统1b,客户机装置12_1b和12_2b验证由其本身启动的应用程序AP_C1和AP_C2的有效性,并且向服务器装置10b发送指示所述结果的认证数据AP_CER1和AP_CER2。
因此,服务器装置10b不必存储由客户机装置12_1b和12_2b执行的应用程序的所有散列数据,并且不必执行有效性的验证处理。因此,可以降低由在客户机装置12_1b和12_2b中启动的应用程序的有效性的确定引起的在服务器装置10b上的负荷。
而且,按照通信系统1b,在客户机装置12_1b和12_2b中,如图14所示,如上所述用于产生认证数据AP_CER的根程序B_PRG被存储在认证数据AP_CER1和AP_CER2中,并且经由数据线30以安全的方式被CPU 33b读取,以便可以改善认证数据AP_CER的可靠性。
而且,按照通信系统1b,即使当除了在服务器装置10b和客户机装置12_1b和12_2b之间的情况之外还在客户机装置12_1b和12_2b之间发送/接收内容数据时,客户机装置12_1b和12_2b之一也能够以小负荷来确定由另一个应用程序启动的一个应用程序的有效性。
本发明不限于上述实施例。
例如,客户机装置12_1b等可以按照代理程序AGENT_P1通过在其中进一步包括由用户直接输入的关于用户的喜好、年龄、性别等的信息而不是用户的操作历史而产生代理数据AGENT_D1。
而且,客户机装置12_1b等可以按照代理程序AGENT_P1通过在其中进一步包括由用户直接输入的关于用户的个人数据——诸如密码、姓名、地址、电话号码和邮件地址——的信息而产生代理数据AGENT_D1。
在这种情况下,客户机装置12_1b等执行在代理数据AGENT_D1中包括的与隐私相关联的数据——诸如上述的个人数据——而不是在公开代理数据AGENT_DP1等中包括的数据的处理。
而且,客户机装置12_1b等可以按照来自用户的指令将关于用户的喜好和访问历史等的信息分类为公开信息和非公开信息,并且仅仅在公开代理数据AGENT_DP1中包括公开信息。在这种情况下,客户机装置12_1b等加密非公开信息,并且在图14所示的存储器32b中存储,
而且,客户机装置12_1b等可以在如图23所示的图19中所示的公开代理数据AGENT_DP1的代理数据AGENT_D1中包括加密数据ED和非加密数据UED。
在这种情况下,客户机装置12_1b等可以调整例如加密数据ED的多个加密级。
即,客户机装置12_1b等调整例如图24所示的作为密钥数据的K1、K2、K3和K4。
然后,客户机装置12_1b等向服务器装置10b或客户机装置12_2b发送通过加密密钥数据和加密数据ED1、ED2、ED3和ED4而获得的加密数据T2、T3和T4。
在这种情况下,例如,如下面的(1)来定义“Enc”和“Dec”,并且如下面的(2)和(3)来控制密钥数据K1-K4、要加密的数据D1-D4和已经加密的数据ED1-ED4和T2-T4。
[公式1]
(加密数据)=Enc(密钥数据,要加密的数据)
(要加密的数据)=Dec(密钥数据,已经加密的数据)
                                                    ...(1)
[公式2]
ED1=Enc(K1,D1)
T1=Enc(K1,K2)
ED2=Enc(K2,D2)
T2=Enc(K3,D3)
ED3=Enc(K3,D3)
T3=Enc(K3,K4)
ED4=Enc(K4,D4)
                                                    ...(2)
[公式3]
K4=Dec(K3,T3)
D4=Dec(K4,ED4)
K3=Dec(K2,T2)
D3=Dec(K3,ED3)
K2=Dec(K1,T1)
D2=Dec(K2,ED2)
D1=Dec(K1,ED1)
                                            ...(3)
当保存密钥数据K1时,服务器装置10或客户机装置12_2b能够获得密钥数据K2、K3和K4,而当保存密钥数据K2时,能够获得密钥数据K3和K4,和当保存密钥数据K3时,能够获得密钥数据K4。因此,可以根据密钥数据K1-K4来设置加密级。
即,客户机装置12_1b等向服务器装置10b和客户机装置12_2b提供在密钥数据K1-K4中由其本身指定的密钥数据,并且通过使用任何一个所述密钥数据来加密图23所示的已经加密的数据ED,以便有可能仅仅使得由其本身指定的服务器装置10b和客户机装置12_2b可以解密数据ED。
例如,当客户机装置12_1b向客户机装置12_2b提供密钥数据K2以保存时,有可能让客户机装置12_2b解密通过使用密钥数据K2、K3或K4来加密的数据ED,而不是让客户机装置12_2b解密通过使用密钥数据K1而加密数据ED。
第四实施例
本实施例涉及按照第二十到第二十六方面的本发明的一个示例。
下面,将参照图25-35来说明按照本发明的所述实施例的通信系统。
首先,将说明本实施例的相应组成部分与在本发明的组成部分的对应关系。
图25中所示的应用程序AP_S对应于第二十一和第二十三发明的程序。
图29等中所示的根程序B_PRG对应于第二十二发明的程序或根程序。
而且,图29等中所示的代理程序AGENT_P1等对应于在第二十发明中的程序和在第二十二发明中的应用程序。
而且,图3所示的客户机装置12_1c对应于第二十和第二十二发明的计算机,并且图3所示的服务器装置10c和客户机装置12_2c对应于在第二十和第二十二发明中的通信方。
而且,图3所示的服务器装置10c对应于第二十一和第二十三发明的计算机,并且在图1中所示的客户机装置12_1c对应于在第二十一和第二十三发明中的通信方。
而且,公开代理数据AGENT_DP1对应于本发明的通信数据,并且具有对应于本发明的识别数据的散列数据HASH_D1和HASH_D2,并且更新历史数据HIST对应于本发明的更新历史数据。
而且,代理数据AGENT_D1和AGENT_D2对应于本发明的属性数据。
而且,认证数据AP_CER对应于本发明的认证数据。
而且,最新的代理数据AGENT_D1对应于本发明的原始数据。
图32中所示的步骤cST39对应于第二十发明的第一过程,并且图33中所示的步骤cST54和图34中所示的步骤cST68对应于第二十发明的第二过程。
而且,图8中所示的相应步骤对应于第十四发明的第一过程,并且图21所示的步骤bST54对应于和图22所示的步骤bST64对应于第十四发明的第二过程,并且cST55和cST71对应于本发明的第三过程。
而且,图27所示的步骤cST2等对应于第二十发明的第一过程,步骤cST7对应于第二十一发明的第二过程,步骤cST9和cST10对应于第二十一发明的第三过程,和步骤cST12对应于第二十一发明的第四过程。而且,图28中所示的步骤cST10对应于第二十一发明的第四过程。
首先,将说明图3所示的通信系统1c的概况。
客户机装置12_1c根据用户的操作历史数据来产生图30所示的公开代理数据AGENT_DP1。
公开代理数据AGENT_DP1包括指示客户机装置12_1c的用户的喜好和其他属性的代理数据AGENT_D1以及代理数据AGENT_D1的散列数据HASH_D1的更新历史数据HIST。
在所述更新历史数据HIST中,最新的散列数据HASH_D1被存储在预定位置。
在本实施例中,将其中对应于本发明的识别的最新散列数据HASH_D1被包括在更新历史数据HIST中的情况说明为一个示例,但是它可以与更新历史数据HIST分离地被控制,或者不被包括在其中。
即,可以通过服务器装置10c通过计算最新散列数据HASH_D1的散列值来获得更新历史数据HIST。
客户机装置12_1c向服务器装置10c发送如上所述的公开代理数据AGENT_DP1。
其后,客户机装置12_1c使用最新散列数据HASH_D1来作为其本身的识别数据以与服务器装置10c执行通信。此时,因为在预定条件下更新代理代理数据AGENT_D1,因此也按照其来更新最新散列数据HASH_D1。
服务器装置10c具有表数据TBD,其中,在从客户机装置12_1c接收的公开代理数据AGENT_DP1中的最新散列数据HASH_D1和按照客户机装置12_1c的属性和操作而学习的所学习数据通过使得它们彼此相关联而被指示。注意,可以从在公开代理数据AGENT_DP1中的最新代理数据AGENT_D1来计算如上所述的散列数据HASH_D1。
当在表数据TBD中的散列数据HASH_D1不作为在从客户机装置12_1c接收的公开代理数据AGENT_DP1中包括的更新历史数据HIST中的最新的一个而存在时,服务器装置10c将在表数据TBD中的散列数据HASH_D1更新为在更新历史数据HIST中的最新散列数据HASH_D1。而且,当最新散列数据HASH_D1不被包括在更新历史数据HIST中时,通过计算来执行更新。
而且,当在TBD中的散列数据HASH_D1不被包括在更新历史中并且也与在公开代理数据AGENT_DP1中的最新散列数据HASH_D1不同时,确定与新的客户机装置进行了通信,并且在TBD中登记新的散列数据HASH_D1。
另一方面,服务器装置10c通过使用散列数据HASH_D1来作为识别数据根据在公开代理数据AGENT_DP1中的代理数据AGENT_D1经由接口21c向客户机装置12_2c发送与客户机装置12_1c的用户的喜好和其他特性匹配的诸如内容数据之类的多种服务数据。
在通信系统1c中,在服务器装置10c中,当更新客户机装置12_1c的散列数据HASH_D1时,根据更新历史数据HIST来查看与在更新前的散列数据HASH_D1的关系,并且更新与所学习的数据STD1的对应关系。因此,有可能连续地使用按照客户机装置12_1c的用户的操作而获得的所学习数据STD1,并且按照用户的属性来提供数据。
注意,可以从公开代理数据AGENT_DP1提取所学习的数据STD1,以便可以每次可以从所接收的公开代理数据AGENT_DP1提取它,而不用存储在服务器装置10c中。
而且,在通信系统1c中,通过调整要在客户机装置12_1c中产生的更新历史数据HIST中包括的历史的数量,可以设置能够指定上述关系的服务器装置10c的时段。而且,不以固定的方式向客户机装置12_1c的用户分配散列数据HASH_D1。
结果,可以保证客户机装置12_1c的用户的匿名。
注意,通过适当地更新客户机装置12_1c的公开密钥认证,可以保持抑制服务器装置10c,
图3是按照本发明的实施例的通信系统1c的整体配置的图。
如图3所示,通信系统1c具有例如服务器装置10c和客户机装置12_1c和12_2c。
服务器装置10c和客户机装置12_1c和12_2c经由网络9而彼此进行通信。
注意,在本实施例中,将在一个服务器装置10c和两个客户机装置12_1c和12_2c之间进行通信的情况说明为一个示例,但是在本发明中,可以使用多个服务器,或者可以使用单个或三个或更多的客户机装置。
[服务器装置10c]
图25是图3所示的服务器装置10c的配置的视图。
如图25所示,服务器装置10c具有例如接口21c、存储器22c和CPU 23c,它们经由数据线20而彼此连接。
在此,接口21c对应于在第二十三发明中的接口,存储器22c对应于在第二十三发明中的存储器,CPU 23c对应于在第二十三发明中的执行电路。
接口21c经由网络9而向客户机装置12_1c和12_2c发送数据/从客户机装置12_1c和12_2c接收数据。
存储器22c存储应用程序AP_S。
而且,应用程序AP_S控制来登记在从客户机装置12_1c接收的公开代理数据AGENT_DP1中包括的散列数据HASH_D1,并且使用所述散列数据HASH_D1来作为其后与客户机装置12_1c通信的客户机装置12_1c的识别数据。
而且,应用程序AP_S控制以根据在公开代理数据AGENT_DP1中的代理数据AGENT_D1来更新在图26中所示的所学习数据STD1。
而且,应用程序AP_S根据对应于客户机装置12_1c的散列数据HASH_D1的所学习数据STD1来控制以向客户机装置12_1c和12_2c提供与用户的喜好和其他特性匹配的多种服务。
而且,当在表数据TBD中的散列数据HASH_D1不作为在从服务器装置10c接收的公开代理数据AGENT_DP1中包括的更新历史数据HIST中的最新者而存在时,应用程序AP_S控制以将在表数据TBD中的散列数据HASH_D1更新为在更新历史数据HIST中的最新散列数据HASH_D1。
存储器22c存储服务器装置10c的密钥数据SK_S、公开密钥数据PK_S、公开密钥认证数据PKC_S和识别数据ID_S。
而且,存储器22c存储从客户机装置12_1c接收的公开代理数据AGENT_DP1。
而且,存储器22c存储来自与客户机装置12_1c通信的客户机装置12_1c的公开密钥数据PK_C1和公开密钥认证数据PKC_C1等。
而且,存储器22c存储从客户机装置12_2c接收的公开代理数据AGENT_DP2。
而且,存储器22c存储来自与客户机装置12_2c通信的客户机装置12_2c的公开密钥数据PK_C2和公开密钥认证数据PKC_C2等。
而且,所述存储器通过与客户机装置12_2c通信而存储客户机装置12_2c的公开密钥数据PK_C2和公开密钥认证数据PKC_C2等。
而且,存储器22c存储客户机装置12_1c和12_2c的所学习数据STD1和STD2。
而且,存储器22c存储图26中所示的表数据TBD。
注意,在存储器22c中存储的所学习数据STD1和STD2变为等于在公开代理数据AGENT_DP1中的代理数据AGENT_D1的值或从代理数据AGENT_D1提取的必要信息,以便不必在通信前从通信方接收以存储。
CPU 23c执行应用程序AP_S,并且集体地控制服务器装置10c的操作。
将参照服务器装置10c的操作示例而说明由CPU 23c执行的处理。
下面,将说明当图25所示的服务器装置10c与客户机装置12_1c进行通信时的操作示例。
图27和图28是用于说明当图25所示的服务器装置10c与客户机装置12_1c进行通信时的操作示例的流程图。
通过应用程序AP_S来控制下面所述的每个步骤。
步骤cST1:
服务器装置10c的CPU 23c从存储器22c读取由用户指定的应用程序AP_S,并且执行它。
所述应用程序AP_S是例如一种用于向客户机装置提供诸如视频和音频的内容数据的搜索引擎和程序,并且仅仅对于具有对应于其的识别数据AP_ID的程序来发送/接收数据。所述数据是例如与版权相关联的内容数据。
步骤cST2:
CPU 23c根据从存储器22c读取的密钥数据SK_S、公开密钥数据PK_C1和公开密钥认证数据PKC_C1来例如经由接口21c与客户机装置12_1c进行相互验证。
作为相互验证,可以使用ISO/IEC 9798-3方法等。
当通过相互验证彼此确认有效性时,CPU 23c与客户机装置12_1c共享用于其后与客户机装置12_1c通信的会话密钥数据,并且根据在其后的通信中的会话密钥数据来加密数据。
在本实施例中,例如,CPU 23c不必验证客户机装置12_1c的根程序B_PRG的散列数据,如下所述。
步骤cST3:
CPU 23c当通过在步骤cST2中执行的相互验证而彼此确认有效性时进行到步骤cST4,否则结束处理或执行差错处理。
步骤cST4:
CPU 23c经由接口21c从客户机装置12_1c接收被加上签名数据SIG的认证数据AP_CER。
认证数据AP_CER由客户机装置12_1c启动,例如如下所述,并且如图6所示指示被确认为有效的应用程序AP_C1的识别数据AP_ID、产生识别数据MF_ID、版本VER和散列值HASH彼此相关联。
在本实施例中,将代理程序AGENT_P1用作应用程序AP_C1之一。
步骤cST5:
CPU 23c验证在步骤cST4中接收的认证数据AP_CER的有效性。
此时,例如,CPU 23c根据散列函数来产生认证数据AP_CER的散列数据。然后,CPU 23c查看是否所产生的散列数据与图6所示的被加到认证数据AP_CER的签名数据SIG匹配,当匹配时确定认证数据AP_CER1未被窜改而是有效的。
在此,所述散列函数是用于从给定的原始语句产生固定长度数据的函数,并且具有不能从散列值恢复原始语句,并且具有相同散列值的不同数据的产生极其困难的特性。
然后,CPU 23c当确定认证数据AP_CER是有效时进行到步骤cST6,否则结束处理或执行差错处理。
注意,当客户机装置12_1c通过使用客户机装置12_1c的密钥SK_C1来加密散列数据而产生签名数据SIG时,CPU 23c通过使用客户机装置12_1c的公开密钥PK_C1来解密签名数据SIG,并且比较所解密的数据与散列数据。
而且,为了防止非法重新使用在过去交易的数据,通常,向数据(在这个示例中是图6中所示的认证数据AP_CER)加上随机数数据,对于包括所述随机数的整个数据计算散列数据,并且将结果用作签名数据SIG。而且,当使用密钥SK_C1来加密时,加密包括随机数数据的数据的散列数据。
步骤cST6:
CPU 23c确定是否在步骤cST4中接收的认证数据AP_CER中包括指定的应用程序AP_C1(在本实施例中是代理程序AGENT_P1)的识别数据AP_ID,当确定包括识别数据AP_ID(确认应用程序AP_C1有效并且在客户机装置12_1c被启动)时,进行到步骤cST7,否则结束处理。
在此,代理程序AGENT_P1是例如如上所述的用于产生客户机装置12_1c的用户的公开代理数据AGENT_DP1的程序。
注意,CPU 23c可以验证是否在所述步骤中的上述验证中除了识别数据AP_ID之外,产生识别数据MF_ID和版本数据VER是所期望的。
注意,为了进一步改善安全性,不仅通过验证在认证数据AP_CER中包括识别数据AP_ID,而且通过向操作程序AP_C1引入独特的协议以将其与其他(正确地启动的)程序相区别或者通过使用操作程序AP_C1特有的密钥来加密客户机装置特有的ID_C1并且适当地接收数据,可以将通信方的程序识别为所期望的。
步骤cST7:
接口21c从客户机装置12_1c接收公开代理数据AGENT_DP1。
步骤cST8:
CPU 23c验证被加到在步骤cST7中接收的图6所示的公开代理数据AGENT_DP1的签名数据SIGD的有效性,当确定为有效时进行到步骤cST9,否则结束处理或执行差错处理。
步骤cST9:
CPU 23c确定是否在步骤cST7中接收的公开代理数据AGENT_DP1中的更新历史数据HIST中存在图26所示的表数据TBD的散列数据HASH_D1。
步骤cST10:
CPU 23c当在步骤cST9中确定存在时进行到步骤cST11,否则进行到步骤cST13。
步骤cST11:
CPU 23c确定是否在图26中所示的表数据TBD中的散列数据HASH_D1作为在步骤cST7中接收的公开代理数据AGENT_DP1中的更新历史数据HIST中的最新者而存在。
当确定作为最新者而存在时,CPU 23c进行到步骤cST14,否则,进行到步骤cST12。
步骤cST12:
CPU 23c将在图26中所示的表数据TBD中的散列数据HASH_D1更新为在步骤cST7中接收的公开代理数据AGENT_DP1中包含的更新历史数据HIST中的最新散列数据HASH_D1。
步骤cST13:
CPU 23c将在cST7中接收的公开代理数据AGENT_DP1中包含的更新历史数据中的最新散列数据的项加到图26所示的表数据TBD中。
步骤cST14:
CPU 23c通过使用所述最新散列数据HASH_D1来作为客户机装置12_1c的识别数据而与客户机装置12_1c进行通信。
此时,CPU 23c分析公开代理数据AGENT_DP1中的代理数据AGENT_D1,按照需要来更新所学习的数据STD1,并且根据所述所学习的数据STD1向客户机装置12_1c发送与客户机装置12_1c的用户的喜好和其他特性匹配的、诸如内容数据之类的多种服务数据。
例如,当应用程序AP_S是搜索引擎时,CPU 23c使用由客户机装置12_1c的用户输入的预定搜索关键字,并且进一步使用与根据用户的喜好确定的关键字相关联的关键字来搜索数据和显示搜索结果。
例如,当用户输入作为搜索关键字的“包价旅行”并且公开代理数据AGENT_DP1指示用户喜欢“汽车”时,CPU 23c选择使用汽车到达目的地的计划和与有利于其他包价旅行数据的租车计划相关联的数据,并且向客户机装置12_1c发送。
如上所述,当更新客户机装置12_1c的散列数据HASH_D1时,服务器装置10c根据更新历史数据HIST来查看与散列数据HASH_D1的关系,并且更新与所学习的数据STD1的对应关系。因此,有可能连续地使用按照客户机装置12_1c的用户的操作而获得的所学习数据STD1,并且按照用户的属性来提供数据。
而且,在通信系统1c中,通过调整要在客户机装置12_1c中产生的更新历史数据中包括的历史的数量,可以设置能够指定上述关系的服务器装置10c的时段。而且,不以固定的方式向客户机装置12_1c的用户分配散列数据HASH_D1
结果,可以保证客户机装置12_1c的用户的匿名。
注意,通过在预定时段更新本身的公开密钥PK_C1或通过本身的请求,客户机装置12_1c能够调整服务器装置10c能够指定上述关系的所述时段。
而且,服务器装置10c能够根据从客户机装置12_1c接收的公开代理数据AGENT_DP1来实现代理功能,而不用累积客户机装置12_1c的用户端操作历史数据。
服务器装置10c能够与客户机装置12_2c实现与客户机装置12_1c相同的效果。
[客户机装置12_1c]
图29是图3所示的客户机装置12_1c的配置的视图。
如图29所示,客户机装置12_1c具有例如接口31c、存储器32c、CPU 33c、操作单元37c和安全模块电路SMc,它们经由数据线30而彼此连接。
在此,接口31c对应于在第二十二发明中的接口,存储器32c对应于在第二十二发明中的存储器,安全模块电路SMc对应于在第二十二发明中的电路模块,并且CPU 33c对应于在第二十二发明中的执行电路。
在本实施例中,客户机装置12_1c是例如计算机、PDA(个人数字助理)和移动电话等。
接口31c经由网络9而与服务器装置10c和客户机装置12_2c执行通信。
存储器32c存储应用程序AP_C1。
存储器32c存储作为应用程序AP_C1之一的代理程序AGENT_P1。
存储器32c是半导体存储器或硬盘驱动器。
安全模块电路SMc具有例如存储器35和计算电路36。
安全模块电路SMc是防窜改电路,并且具有防止窜改、监控在存储器35中的所存储数据和监控在计算电路36中的处理的功能。
防窜改电路是被配置来防止错误操作和当它被从外部攻击(通过非法读取内部数据和通过将输入频率或输入电压设置为在预定范围之外等的攻击)时的内部数据泄露的电路。具体地说,为了防止读取内部数据,使得所述电路具有多层结构以向最低层提供所述存储器,并且形成伪层(例如铝层)来作为上层和下层,以便使得从外部向存储器输入/输出接口的直接访问困难。而且,所述电路被配置为具有防窜改电路频率检测电路和电压检测电路,以便当所述频率或电压不在预定范围内时不工作。
存储器35存储客户机装置12_1c的密钥数据SK_C1、公开密钥数据PK_C1、公开密钥认证数据PKC_C1和识别数据ID_C1。
而且,存储器35存储来自与服务器装置10c通信的服务器装置10c的公开密钥数据PK_S和公开密钥认证数据PKC_S等
而且,存储器35存储来自与客户机装置12_2c通信的客户机装置12_2c的公开密钥数据PK_C2和公开密钥认证数据PKC_C2等。
而且,存储器35存储从客户机装置12_2c接收的公开代理数据AGENT_DP2。
而且,存储器32c存储客户机装置12_2c的学习数据STD2
而且,存储器32c通过使得下述数据彼此相关联而存储用于指示最新散列数据HASH_D2的表数据TBD2和客户机装置12_1c的所学习的数据STD2。
操作单元37c是操作部件,诸如键盘、鼠标和触摸板,并且按照由用户进行的操作向CPU 33c输出操作信号。
CPU 33c根据根程序B_PRG、应用程序AP_C1和来自操作单元37c的操作信号来执行多种处理。
CPU 33c在安全状态中经由数据线30从在安全模块电路SMc中的存储器35读取根程序B_PRG,并且执行它。
CPU 33c按照根程序B_PRG来产生图6所示的认证数据AP_CER,并且将其发送到服务器装置10c和客户机装置12_2c。
注意,为了实现在安全状态中的读取,使用多种方法,以便通过CPU 33c和安全模块电路SMc来共享公共加密密钥数据以加密在数据线30上的数据,在CPU 33c和安全模块电路SMc之间执行相互验证,通过使用共享的会话密钥数据来加密在数据线30上的数据,并且将CPU 33c和安全模块电路SMc模压为一个封装体,以防止外部对于在数据线30上的数据的访问等。
而且,为了防止安全模块电路SMc被安装到其他的客户机装置中,可以分散客户机装置12_1c特有的存储器数据(ID、随机数、密钥和其他数据)而存储在其中,并且可以在启动时通过安全模块电路SMc来进行存储器数据的验证。或者,可以使得接口31c的输入/输出操作复杂化等,以使得CPU 33c的根结构复杂化,并且所述结构仅仅被许可的制造商知道以进一步改善根程序B_PRG的启动可靠性。
而且,CPU 33c从存储器32c读取应用程序AP_C1,并且执行它。
在本实施例中,CPU 33c从存储器32c读取代理程序AGENT_P1,并且执行它。
CPU 33c按照代理程序AGENT_P1来产生图30中所示的公开代理数据AGENT_DP1,并且将其发送到服务器装置10c和客户机装置12_2c。
如图30所示,公开代理数据AGENT_DP1包括例如识别数据ID(代理软件ID)、产生识别数据(代理软件制造ID)、代理程序AGENT_P1的版本数据和关于代理程序AGENT_P1的其他信息、代理数据AGENT_D1、关于代理数据AGENT_D1的散列数据HASH_D1的更新历史数据HIST、安全模块SMc的版本和代理程序AGENT_P1的签名数据SIGD。
在所述更新历史数据HIST中,在预定位置存储最新散列数据HASH_D1。
在本实施例中,将说明在更新历史数据HIST中包括对应于本发明的识别数据的最新散列数据HASH_D1的情况,并且可以与更新历史数据HIST独立地控制它,并且可以在每次通信中计算它。
CPU 33c按照应用程序AP_C1来产生代理数据AGENT_D1的散列数据HASH_D1,并且产生包括其的公开代理数据AGENT_DP1。
而且,CPU 33c通过使用散列数据HASH_D1来作为本身的识别数据而与服务器装置10c和客户机装置12_2c执行通信。
在此,根据属性数据来连续地更新代理数据AGENT_D1,所述属性数据诸如用户的喜好,它是通过分析客户机装置12_1c的用户的操作历史而被获得的,如下所述。
因为在预定条件下更新代理数据AGENT_D1,因此也在预定条件下更新散列数据HASH_D1,并且可以防止长时间监控客户机装置12_1c的用户的操作。
而且,产生完全相同的散列数据HASH_D1来作为代理数据AGENT_D1的可能性很低,因此很可能它变为客户机装置12_1c的唯一值。因此,在服务器装置10a和客户机装置12_2c之间的通信中,散列数据HASH_D1足以能够作为客户机装置12_1c的识别数据。
注意,CPU 33c可以按照来自用户的指令来确定是否在公开代理数据AGENT_DP1中包括用于指定客户机装置12_1c的器件——诸如安全模块电路SMc——的识别数据。
CPU 33c集体地控制客户机装置12_1c的操作。
将参照客户机装置12_1c的操作示例来说明由CPU 33c执行的处理。
下面,将说明图29所示的客户机装置12_1c按照根程序B_PRG来产生认证数据AP_CER的操作。
图31是用于说明由图29所示的客户机装置12_1c产生认证数据AP_CER的操作的流程图。
通过根程序B_PRG来控制下述的相应步骤。
步骤cST21:
当启动客户机装置12_1c时,安全模块电路SMc的计算电路36从存储器35读取根程序B_PRG,并且验证根程序B_PRG的有效性。
此时,计算电路36例如根据散列函数来产生根程序B_PRG的散列数据,将所产生的散列数据与预先准备的根程序B_PRG的散列数据相比较,并且当匹配时确定在存储器35中存储的根程序B_PRG是有效的(未被窜改的)。
步骤cST22:
当在步骤cST21中确定根程序B_PRG有效时,客户机装置12_1c进行到步骤cST23,否则执行差错处理。
步骤cST23:
客户机装置12_1c的CPU 33c在安全状态中经由数据线30来从存储器35读取根程序B_PRG。
步骤cST24:
CPU 33c执行在步骤cST23中读取的根程序B_PRG。
步骤cST25:
CPU 33c根据所述根程序B_PRG从由用户指定的多个应用程序AP_C1中选择一个未选择的应用程序AP_C1。在本实施例中,将代理程序AGENT_P1指定为应用程序AP_C1。
步骤cST26:
CPU 33c从存储器32c读取在步骤cST25中选择的应用程序AP_C1,并且验证有效性。
此时,CPU 33c例如根据散列函数来产生应用程序AP_C1的散列数据,将所产生的散列数据与预先准备的应用程序AP_C1的散列数据相比较,并且当匹配时确定在存储器32c中存储的所述应用程序AP_C1是有效的。
或者,CPU 33b可以根据公开密钥数据来验证对应于所述应用程序AP_C1的预定签名数据。所述签名数据可以被加到所述应用程序AP_C1上或与所述应用程序AP_C1分离地被存储在存储器32c中。
步骤cST27:
当在步骤cST26中确定所述应用程序AP_C1有效时,CPU 33c进行到步骤cST28,否则进行到步骤cST20。
步骤cST28:
CPU 33c向认证数据AP_CER加上在步骤cST26中被确定为有效的所述应用程序AP_C1的识别数据AP_ID、产生识别数据MF_ID、版本数据VER和散列数据HASH(以下也简称为识别数据AP_ID),
步骤cST29:
CPU 33c启动在步骤cST26中被确定为有效的应用程序AP_C1。
在本实施例中,将在步骤cST26中将应用程序AP_C1确定为有效的条件下启动所述应用程序AP_C1的情况说明为一个示例。但是,当应用程序AP_C1未被确定为有效时,可以通过向用户通知所述事实和获得用户的许可来启动所述应用程序AP_C1。注意,在这种情况下,CPU 33c不向认证数据AP_CER加上应用程序AP_C1的识别数据AP_ID。
步骤cST30:
CPU 33c确定是否在步骤cST25中选择了由用户指定的所有应用程序AP_C1,并且当确定选择了时,结束处理,否则返回步骤cST25。
在本实施例中,当代理程序AGENT_P1是有效的时,CPU 33c启动代理程序AGENT_P1,并且向认证数据AP_CER增加识别数据AP_ID。
下面将说明当图29所示的客户机装置12_1c按照代理程序AGENT_P1来更新(产生)公开代理数据AGENT_DP1时的操作示例。
图32是用于说明当图29所示的客户机装置12_1c更新(产生)公开代理数据AGENT_DP1时的操作示例的流程图。
CPU 33c按照代理程序AGENT_P1来执行图32中的相应步骤。
与诸如搜索引擎之类的其他应用程序AP_C1的操作并行地执行下面的操作。
步骤cST31:
CPU 33c从存储器32c读取代理数据AGENT_D1。
步骤cST32:
CPU 33c根据来自操作单元37c的操作信号来更新客户机装置12_1c的用户的操作历史数据。
然后,CPU 33c分析所更新的操作历史数据,并且产生属性数据,用于指示用户的喜好和其他属性。
CPU 33c根据所产生的属性数据来更新当前的代理数据AGENT_D1。
步骤cST33:
CPU 33c根据时间计数器(未示出)的计数值来确定是否已经过去了预定时间,并且当确定如此时,进行到步骤cST36,否则进行到步骤cST34。
在本实施例中,所述预定时间是例如一个星期、一个月或三个月等。
步骤cST34:
CPU 33c确定更新时间计数器的计数值指示的值(在步骤cST32中的更新的次数)、被更新的属性数据的内容的程度(更新量)和更新频率是否超过预定阈值,并且当确定超过时,进行到步骤cST36,否则进行到步骤cST35。
步骤cST35:
CPU 33c根据来自操作单元37c的信号来确定是否从用户接收到公开代理数据AGENT_DP1的更新指令,并且当确定接收到更新指令时,进行到步骤cST36,否则返回步骤cST32。
步骤cST36:
CPU 33c从存储器32c读取图30所示的公开代理数据AGENT_DP1,并且通过在步骤cST32中更新的代理数据AGENT_D1来更新所述代理数据AGENT_D1。
步骤cST37:
CPU 33c产生所更新的代理数据AGENT_D1的散列数据HASH_D1。
步骤cST38:
CPU 33c将更新历史数据HIST更新为在步骤cST37中产生的最新散列数据HASH_D1。即,更新公开代理数据AGENT_DP1。
步骤cST39:
CPU 33c产生在步骤cST38中更新的公开代理数据AGENT_DP1的签名数据SIGD,并且将其加到在图30中所示的公开代理数据AGENT_DP1。
步骤cST40:
CPU 33c复位时间计数器的计数值,并且更新时间计数器。
下面将说明图29所示的客户机装置12_1c与服务器装置10c执行通信的操作示例。
图33是用于说明当图29所示的客户机装置12_1c与服务器装置10c进行通信时的操作示例的流程图。
通过根程序B_PRG来控制下面所述的步骤cST51-cST54。而且通过代理程序AGENT_P1来控制步骤cST55。
步骤cST51:
客户机装置12_1c的CPU 33c根据从安全模块电路SMc的存储器35读取的密钥数据SK_C1、公开密钥数据PK_S和公开密钥认证数据PKC_S来经由接口31c来与服务器装置10c进行相互验证。
当通过相互验证彼此确认有效性时,CPU 33c与服务器装置10c共享其后要用于与服务器装置10c的通信的会话密钥数据,并且根据其后通信的会话密钥数据来加密数据。
注意,在所述相互验证中,CPU 33c可以根据服务器装置10c的AC(属性证件)或URL(统一资源定位符)来验证服务器装置10c的有效性。在此,所述AC是通过由预定的验证代理(AC发放代理)链接到公开密钥认证数据的识别数据ID而用于认证受让人的功能和属性电子数据。在本示例中,它指示它是用于分布预定内容数据的服务器。
步骤cST52:
当通过在步骤cST51中执行的相互验证来彼此确认有效性时,CPU 33c进行到步骤cST53,否则完成所述处理。
步骤cST53:
CPU 33c产生通过根据图31所述的处理而产生的认证数据AP_CER的散列数据,并且将其作为签名数据SIG加到认证数据AP_CER上。
步骤cST54:
CPU 33c经由接口31c向服务器装置10c发送被加上在步骤cST53中产生的认证数据AP_CER的所述签名和公开代理数据AGENT_DP1。
步骤cST55:
CPU 33c使用在步骤cST53中发送的公开代理数据AGENT_DP1中的最新散列数据HASH_D1来作为其本身的识别数据以与服务器装置10c进行通信。
CPU 33c按照预定的应用程序AP_C1或代理程序AGENT_P1经由接口31c来使用从服务器装置10c接收的诸如内容数据之类的数据。
此时,如上所述,根据从客户机装置12_1c向服务器装置10c发送的公开代理数据AGENT_DP1来执行从服务器装置10c向客户机装置12_1c的数据发送,以便反映客户机装置12_1c的用户的喜好和其他属性。
注意,因为应用程序AP_C1具有版权保护功能,因此通过所述功能来保护内容数据的版权。
而且,在上述的实施例中,将CPU 33c根据从安全模块电路SMc读取的根程序B_PRG来执行签名数据SIG的验证处理和产生处理的情况说明为一个示例,但是可以通过安全模块电路SMc的计算电路36来执行所述处理。
在这种情况下,客户机装置12_1c向安全模块电路SMc提供在从服务器装置10c接收的数据中的用于验证的必要数据。然后,安全模块电路SMc的计算电路36根据所述数据来执行计算处理,并且经由接口31c向服务器装置10c发送所述结果。而且,安全模块电路SMc的计算电路36产生认证数据AP_CER的签名数据SIG,并且经由接口31c向服务器装置10c发送被增加签名数据SIG的认证数据AP_CER。
下面,将说明当图29所示的客户机装置12_1c与图3所示的客户机装置12_2c进行通信时的操作示例。
图34和图35是用于说明当图29所示的客户机装置12_1c对于图3所示的客户机装置12_2c进行通信时的操作示例的流程图。
按照根程序B_PRG来执行图34和图35所示的步骤cST61-cST67,并且通过按照代理程序AGENT_P1来执行步骤cST68-cST75。
步骤cST61:
客户机装置12_1c的CPU 33c根据从安全模块电路SMc的存储器35读取的密钥数据SK_C1、公开密钥数据PK_C2和公开密钥认证数据PKC_C2来经由接口31c与客户机装置12_2c进行相互验证。
当通过相互验证来彼此确认有效性时,CPU 33c与客户机装置12_2c共享其后要用于与客户机装置12_2c通信的会话密钥数据,并且根据其后通信的会话密钥数据来加密数据。
注意,在本实施例中,存储器35存储公开密钥数据PK_2和公开密钥认证数据PKC_2,但是可以在验证之前从客户机装置12_2c接收它们。
步骤cST62:
当通过在步骤cST61中执行的相互验证来彼此确认有效性时,CPU 33c进行到步骤cST63,否则结束所述处理或执行差错处理。
步骤cST63:
CPU 33c产生通过基于图31所述的处理而产生的认证数据AP_CER1的散列数据,并且将其作为签名数据SIG增加到认证数据AP_CER1。
步骤cST64:
CPU 33c经由接口31c向客户机装置12_2c发送在步骤cST63中产生的被加到认证数据AP_CER1的签名。
步骤cST65:
CPU 33c经由接口31c从客户机装置12_2c接收认证数据AP_CER2,所述认证数据AP_CER2被加上通过与使用图31所述的相同的处理由客户机装置12_2c产生的签名数据SIG。
如上所述,通过客户机装置12_2c来启动认证数据AP_CER2,其中,被确认为有效的应用程序AP_C2的识别数据AP_ID、产生识别数据MF_ID、版本VER和散列值HASH通过使得它们彼此相关联而被如图6所示指示。
步骤cST66:
CPU 33c验证在步骤cST64中接收的认证数据AP_CER2的有效性。
此时,CPU 33c例如根据散列函数来产生认证数据AP_CER2的散列数据。然后,CPU 33c确定是否所产生的散列数据与签名数据SIG匹配,并且当匹配时确定认证数据AP_CER2未被窜改而是有效的。
然后,当确定认证数据AP_CER2有效时,CPU 33c进行到步骤cST67,否则结束处理或执行差错处理。
步骤cST67:
CPU 33c确定是否由用户指定的应用程序AP_C1的识别数据AP_ID被包括在步骤cST65中接收的认证数据AP_CER2中,并且当确定包括识别数据AP_ID(在应用程序AP_C2中被确认为有效并且在客户机装置12_2c中被启动)时,进行到步骤cST68,否则结束处理或执行差错处理。
注意,CPU 33c可以在所述步骤确定是否除了识别数据AP_ID之外,所述产生识别数据MF_ID和版本数据VER是所期望的。
步骤cST68:
CPU 33c按照已经被启动的代理程序AGENT_P1来经由接口31c向客户机装置12_2c发送由在图32中所示的过程产生的公开代理数据AGENT_DP1。
接口31c从客户机装置12_2c接收由客户机装置12_1c产生的公开代理数据AGENT_DP2。
步骤cST69:
CPU 33c验证被加到在步骤cST68中接收的公开代理数据AGENT_DP2的签名数据SIGD的有效性。
当确定签名数据SIGD有效时,CPU 33c进行到步骤cST70,否则,结束处理或执行差错处理。
步骤cST70:
CPU 33c确定是否在步骤cST68中接收的公开代理数据AGENT_DP2中的更新历史数据HIST中存在表数据TBD的散列数据HASH_D2。
步骤cST71:
CPU 33c当在步骤cST70中确定存在时进行到步骤cST72,否则,进行到步骤cST74。
步骤cST72:
CPU 33c确定是否在表数据TBD2中的散列数据HASH_D2作为在步骤cST68中接收的公开代理数据AGENT_DP2中的更新历史数据HIST中的最新者而存在。
然后,当确定作为最新者而存在时,CPU 33c进行到步骤cST75,否则进行到步骤cST73。
步骤cST73:
CPU 33c将在表数据TBD2中的散列数据HASH_D2更新为在步骤cST68中接收的公开代理数据AGENT_DP2中包括的更新历史数据中的最新散列数据HASH_D2。
步骤cST74:
CPU 33c向表数据TBD2加上在步骤cST68中接收的公开代理数据AGENT_DP2中包括的更新历史数据中的最新散列数据HASH_D2的项目。
步骤cST75:
CPU 33c使用最新的散列数据HASH_D2来作为客户机装置12_2c的识别数据以与客户机装置12_2c进行通信。
此时,CPU 33c分析在公开代理数据AGENT_DP2中的代理数据AGENT_D2,按照需要来更新所学习的数据STD2,并且根据所学习的数据STD2经由接口21c向客户机装置12_2c发送与客户机装置12_2c的用户的喜好和其他特性匹配的诸如内容数据的多种服务数据。
除了上述之外,CPU 33c可以根据公开代理数据AGENT_DP2来确定客户机装置12_2c的用户经常使用邮件、聊天、语音邮件和呼叫的哪一种,并且使用所述经常使用的媒介与用户通信。
而且,CPU 33c使用经由接口31c从客户机装置12_2c接收的诸如内容数据之类的数据。
注意,客户机装置12_2c具有与如上所述的客户机装置12_1c相同的配置。
下面将说明图3所示的通信系统1c的一个整体操作示例。
客户机装置12_1c和12_2c的每个执行如上所述在图31中所示的处理以分别向客户机装置12_1c和12_2c的每个的图29所示的安全模块电路SMc中的存储器35写入认证数据AP_CER和AP_CER2。
而且,客户机装置12_1c和12_2c的每个通过执行图32中所示的处理而产生用于指示用户的喜好和其他属性的公开代理数据AGENT_DP1和AGENT_DP2,并且将其写入到存储器32c。
然后,客户机装置12_1c和12_2c向服务器装置10c发送公开代理数据AGENT_DP1和AGENT_DP2。
服务器装置10c根据在公开代理数据AGENT_DP1中的散列数据HASH_D1来识别客户机装置12_1c,并且经由接口21c根据所学习的数据STD1来向客户机装置12_1c发送与客户机装置12_1c的用户的喜好和其他属性匹配的诸如内容数据之类的多种服务数据。
另外,当更新最新散列数据HASH_D1时,服务器装置10c根据更新历史数据HIST来更新在图26中所示的表数据TBD,以便使得最新散列数据HASH_D1与所学习的数据STD1相关联。
服务器装置10c对于客户机装置12_2c执行与如上所述对于客户机装置12_1c执行的相同的处理。
而且,当与客户机装置12_2c进行通信时,客户机装置12_1c向客户机装置12_2c提供与如上所述被提供到服务器装置10c的相同的功能。
如上所述,按照通信系统1c,当更新客户机装置12_1c的散列数据HASH_D1时,服务器装置10c查看与更新前的散列数据HASH_D1的关系,并且更新与所学习的数据STD1的对应关系。因此,有可能连续地使用按照客户机装置12_1c的用户的操作而获得的所学习数据STD1,并且按照用户的属性来提供数据。
而且,在通信系统1c中,通过调整要在客户机装置12_1c中产生的更新历史数据HIST中包括的历史的数量,可以设置能够指定上述关系的服务器装置10c的时段。而且,不以固定的方式向客户机装置12_1c的用户分配散列数据HASH_D1
结果,可以保证客户机装置12_1c的用户的匿名。
而且,根据从客户机装置12_1c接收的公开代理数据AGENT_DP1,服务器装置10c不必存储客户机装置12_1c的用户的操作历史数据,并且可以以小负荷来实现代理功能。
服务器装置10c能够与客户机装置12_2c实现与客户机装置12_1c相同的效果。
而且,客户机装置12_1c能够当与客户机装置12_2c执行通信时实现与服务器装置10c相同的效果。
而且,按照通信系统1c,客户机装置12_1c和12_2c验证由其本身启动的应用程序AP_C1和AP_C2的有效性,并且向服务器装置10c发送指示所述结果的认证数据AP_CER。
因此,服务器装置10c不必存储由客户机装置12_1c和12_2c执行的应用程序的所有散列数据,并且不必执行有效性的验证处理。因此,可以降低由在客户机装置12_1c和12_2c中启动的应用程序的有效性的确定引起的在服务器装置10c上的负荷。
而且,按照通信系统1c,在客户机装置121_c和12_2c中,如图28所示,如上所述用于产生认证数据AP_CER的根程序B_PRG被存储在安全模块电路SMc中,并且经由数据线30以安全的方式被CPU 33c读取,以便可以改善认证数据AP_CER的可靠性。
而且,按照通信系统1c,服务器装置10c接收被加到认证数据AP_CER1和AP_CER2的签名,并且在与客户机装置12_1c和12_2c进行相互验证后验证签名数据SIG,以便服务器装置10c能够高度可靠地确定在客户机装置12_1c和12_2c中启动的应用程序的有效性。
而且,按照通信系统1c,即使当除了在服务器装置10c和客户机装置12_1c和12_2c之间的情况之外还在客户机装置12_1c和12_2c之间发送/接收内容数据时,客户机装置12_1c和12_2c之一也能够以小负荷来确定由另一个应用程序启动的一个应用程序的有效性。
而且,如上所述的相互验证不限于公开密钥验证,并且可以是任何验证方法,只要它是能够执行相互验证的方法或系统。
而且,作为本发明的另一个实施例,例如,服务器装置10c按照应用程序AP_S来执行下面的处理。下面的示例对应于第二十六发明。
服务器装置10c在表数据TBD中存储用于识别在前通信的通信方的识别数据(ID1、ID2、ID3、...、IDn)。
接着,服务器装置10c从客户机装置12_1c接收通信数据。
所述通信数据包括例如如上所述的代理数据AGENT_DP1和更新历史数据HIST。
可以在更新历史数据HIST中包括或不包括散列值。
服务器装置10c从所接收的通信数据取出最新的识别数据(它可以是从原始数据计算的识别数据(散列值)、在更新历史数据HIST中的最新识别数据和通信数据的任何一个中写入的最新识别数据)以识别客户机装置12_1c,并且将其与在表数据TBD中存储的已经知道的识别数据(最新识别数据)相比较以确定两者是否匹配。
然后,当在上述比较中确定不匹配时,服务器装置10c将在更新历史数据HIST中的过去的识别数据(散列值)与在表数据TBD中的所有已经知道的识别数据相比较。
当在所述比较中有匹配者(例如,ID3与在更新历史数据HIST的先前产生中的识别数据匹配)时,所述服务器装置将在表数据TBD中的识别数据更新为最新的识别数据。例如,将在表数据TBD中的ID3替换为在通信数据中的最新识别数据。
当在表数据TBD中没有记录最新的识别数据或过去的识别数据时,服务器装置10c确定客户机装置12_1c是未知的对方。
例如,将说明服务器装置10c在表数据TBD中存储ID1、ID2、ID3(先前产生的)、...、IDn,并且每个指示1111、2222、3333、...、nnnn。
在这种情况下,代理数据AGENT_D1包括散列值“HASH(AGENT_D1)=ID3(最新)”和历史数据HIST(ID3(先前产生的)、ID3(在先前产生前产生的)...),其中,假定ID3(最新)是3434,并且假定历史数据HIST是(3333,3232,3131,...)。
在这个示例中,服务器装置10c认识到在表数据TBD中的识别数据3333是具有ID3(最新)3434的通信方的先前产生的识别数据,从此时将所述识别数据替换为3434(将在表数据TBD中的先前产生的识别数据3333替换为最新识别数据3434),并且与所述通信方进行通信。
本发明不限于上述的实施例。
例如,如图11所示,在客户机装置12_1c中,可以在不具有防窜改特性的存储器32c中存储根程序B_PRG。
在这种情况下,通过安全模块电路SMc从存储器32c读取根程序B_PRG,并且在计算电路36中验证根程序B_PRG的有效性,然后将其经由数据线30而输出到CPU 33c。
注意,图11是第二十三发明的一个实施例。
而且,在图9中的cST33中或在图10的步骤cST43中,客户机装置12_1c的CPU 33c可以产生由从服务器装置10c或客户机装置12_2c接收的数据(例如由客户机装置12_2c等产生的随机数)组成的数据的散列数据和认证数据AP_CER,以产生签名数据SIG。通过如此,可以防止在通信中使用一次的数据被非法地重新使用。
结果,有可能防止通过非法使用被加上过去由客户机装置12_1c交易的认证数据AP_CER的签名而进行“欺骗”。
而且,在上述的实施例中,将客户机装置12_1c按照根程序B_PRG来产生认证数据AP_CER的情况说明为一个示例,但是,可以通过其他程序来产生认证数据AP_CER,所述其他程序的有效性被根程序B_PRG验证。
而且,在上述的实施例中,可以在通过安全模块电路SMc的计算电路36验证在更新后的根程序的有效性后执行根程序B_PRG的更新。
而且,如上所述的相互验证不限于公开密钥验证,并且可以是任何验证方法,只要它是能够执行相互验证的方法或系统。
产业上的应用
本发明可以被应用到一种系统,其中,确定由通信方启动的应用程序的有效性。

Claims (64)

1.一种程序,用于使得计算机管理应用程序,其中,所述计算机执行,所述程序包括:
第一过程,用于验证由计算机启动的应用程序的有效性,并且产生指示被确定为有效的应用程序的识别数据的认证数据,;以及
第二过程,用于向通信方发送在第一过程中产生的认证数据,以提供要由应用程序使用的数据。
2.按照权利要求1的程序,还包括第三过程,其中,在所述第一过程中被确定为有效的所述应用程序使用从所述通信方接收的所述数据。
3.按照权利要求1的程序,其中,所述第一过程验证是否所述应用程序被窜改,并且当确定未被窜改时,产生指示所述识别数据的所述认证数据。
4.按照权利要求1的程序,其中,所述第一过程产生所述认证数据,其中,被确定为有效的所述应用程序的版本数据和散列数据的至少一个通过使得其与所述识别数据相关联而被指示。
5.按照权利要求1的程序,还包括第四过程,用于向在所述第一过程中产生的所述认证数据加上签字数据;
其中,所述第二过程向所述通信方发送在所述第四过程中被加上所述签名数据的所述认证数据。
6.按照权利要求1的程序,其中,所述第四过程产生包括所述认证数据的数据和从所述通信方接收的数据的所述签名数据,并且向所述通信方发送被加上所述签名数据的所述认证数据。
7.按照权利要求1的程序,被存储在一个存储器中,所述存储器具有防止窜改和监控所存储的数据的功能,所述程序被所述计算机在安全状态中从所述存储器读取,并且被所述计算机执行。
8.按照权利要求7的程序,其中
所述第一过程向所述存储器写入所述认证数据;并且
所述第二过程向所述通信方发送从所述存储器读取的认证数据。
9.一种用于使得计算机执行向通信方发送数据的程序,其中,
第一过程,用于验证所述通信方的有效性;
第二过程,用于在第一过程中被验证为有效的条件下从所述通信方接收指示被通信方确定为有效并且被通信方启动的应用程序的识别数据的认证数据;
第三过程,用于确定是否期望的识别数据被包括在第二过程中接收的认证数据中;以及
第四过程,用于在第三过程中确定包括期望的识别数据的条件下向通信方发送数据。
10.一种计算机,包括:
存储器,用于存储应用程序;
电路模块,提供防止所存储的数据被窜改和监控的功能,并且用于存储根程序;
执行电路,用于在安全的状态中执行从所述存储器读取的应用程序和从电路模块读取的根程序;以及
接口;
其中,所述执行电路在安全状态中执行从电路模块读取的根程序,按照所述根程序而验证所述应用程序的有效性,在电路模块中存储指示被确定为有效的应用程序的识别数据的认证数据,并且经由所述接口而向通信方发送从电路模块读取的认证数据。
11.一种计算机,包括:
存储器,用于存储应用程序和根程序;
电路模块,提供防止所存储的数据被窜改和防止所存储的数据和内部处理被监控的功能;
执行电路,用于执行从存储器读取的应用程序和根程序;以及
接口;
其中,所述电路模块验证从存储器读取的根程序的有效性,然后,在安全状态中向所述执行电路输出所述根程序;并且,
所述执行电路执行从所述电路模块输入的根程序,按照所述根程序来验证应用程序的有效性,在电路模块中存储指示被确定为有效的应用程序的识别数据的认证数据,并且经由所述接口向通信方发送从所述电路模块读取的认证数据。
12.一种计算机,包括:
存储器,用于存储程序;
执行电路,用于执行从存储器读取的程序;以及
接口,用于从通信方接收认证数据,所述认证数据指示由通信方启动并且被通信方验证为有效的应用程序的识别数据;
其中,所述执行电路执行从存储器读取的程序,并且在按照所述程序经由所述接口将通信方验证为有效的条件下,确定是否在经由所述接口接收的认证数据中包括期望的识别数据,并且在确定包括期望的识别数据的条件下,经由所述接口向所述通信方发送数据。
13.一种由用于管理应用程序的计算机执行的数据处理方法,包括:
第一步骤,用于验证由计算机启动的应用程序的有效性,并且产生被确定为有效的应用程序的识别数据;以及
第二步骤,用于向用于提供要由应用程序使用的数据的通信方发送在第一步骤中产生的认证数据,
14.一种由用于向通信方发送数据的计算机执行的数据处理方法,包括:
第一步骤,用于验证通信方的有效性;
第二步骤,用于在第一步骤中将通信方验证为有效的条件下从通信方接收认证数据,所述认证数据指示被通信方确定为有效并且通信方启动的应用程序的识别数据;
第三步骤,用于确定是否在第二步骤中接收的认证数据中包括期望的识别数据;以及
第四步骤,用于在第三步骤中确定包括期望的识别数据的条件下向通信方发送数据。
15.一种用于执行与通信方通信的计算机执行的程序,包括:
第一步骤,用于产生由与计算机通信的通信方使用并且在预定条件下被更新的通信数据的散列数据;
第二步骤,用于向所述通信数据加上在第一步骤中产生的散列数据,并且发送到通信方;以及
第三步骤,用于通过在第二步骤后将在第一步骤中产生的散列数据用作计算机的识别数据来执行通信。
16.按照权利要求15的程序,还包括第四步骤,用于在所述预定条件下更新所述通信数据:
其中,所述第一步骤通过所述第四步骤来产生在所述更新后的所述通信数据的散列数据;并且
所述第三步骤使用在所述更新后的所述通信数据的所述散列数据来作为所述计算机的识别数据以与所述通信方执行通信。
17.按照权利要求15的程序,还包括第五步骤,用于产生所述通信数据。
18.按照权利要求17的程序,其中,所述第五步骤根据用户对于所述计算机的操作历史而产生指示用户的属性的所述通信数据。
19.按照权利要求18的程序,其中,所述第一步骤根据所述操作历史而产生所述通信数据,所述通信数据指示为用于确定所述用户的喜好的索引的属性。
20.一种由用于与通信方执行通信的计算机执行的程序,其中,所述计算机执行:
第一步骤,用于从通信方接收在预定条件下被更新的通信数据和相关联的所述通信数据的散列数据;以及
第二步骤,用于根据在第一步骤中接收的散列数据来识别通信方,并且根据在第一步骤中接收的通信数据来执行与通信方的通信。
21.按照权利要求20的程序,其中:
所述第一步骤接收指示根据在所述通信方的所述用户的操作历史而获得的用户的属性的所述通信数据;以及
所述第二步骤根据在所述第一步骤中接收的所述通信数据向所述通信方发送与所述用户的属性匹配的数据或以匹配形式的数据。
22.按照权利要求20的程序,包括:
第三步骤,用于验证所述通信方的有效性;
第四步骤,用于从通信方接收认证数据,所述认证数据指示被所述通信方确定为有效并且被所述通信方在第三步骤中验证为有效的条件下启动的应用程序的识别数据;
第五步骤,用于确定是否在所述第四步骤中接收的所述认证数据中包括期望的识别数据;以及
第六步骤,用于在确定在所述第五步骤中包括所述期望的识别数据的条件下执行所述第二步骤。
23.一种计算机,包括:
存储器,用于存储应用程序;
执行电路,用于执行从所述存储器读取的应用程序;以及
接口,用于向通信方发送数据/从通信方接收数据;
其中,所述执行电路按照所述应用程序而产生由与计算机通信的通信方使用并且在预定条件下被更新的通信数据的散列数据,将所产生的散列数据加到所述通信数据以经由所述接口向通信方发送,并且通过将所述散列数据用作所述计算机的识别数据而执行与通信方的通信。
24.按照权利要求23的计算机,还包括电路模块,用于存储根程序,提供防止存储器数据被窜改和监控的功能;
其中,所述执行电路还执行在安全状态中从所述电路模块读取的所述根程序,按照所述根程序来验证所述应用程序的有效性,在所述电路模块中存储指示被确定为有效的所述应用程序的识别数据的认证数据,并且经由所述接口向所述通信方发送从所述电路模块读取的所述认证数据。
25.一种计算机,用于执行与通信方的通信,包括:
存储器,用于存储程序;
接口,用于从通信方接收在预定条件下被更新的通信数据和相关联的所述通信数据的散列数据;以及,
执行电路,用于执行从存储器读取的程序,按照所述程序根据由所述接口接收的散列数据来识别通信方,并且根据由所述接口接收的通信数据来与通信方执行通信。
26.按照权利要求25的计算机,其中:
所述接口从所述通信方接收认证数据,所述认证数据用于指示在所述通信方中被启动并且被其他内容数据验证为有效的应用程序的识别数据;并且
所述执行电路按照所述程序来确定是否在将通信方验证为有效的条件下在经由所述接口接收的所述认证数据中包括期望的识别数据,并且在确定包括所述期望的识别数据的条件下经由所述接口而与所述通信方通信。
27.一种用于与通信方执行通信的计算机执行的数据处理方法,包括:
第一步骤,用于产生由与计算机通信的通信方使用并且在预定条件下被更新的通信数据的散列数据;
第二步骤,用于将在第一步骤中所产生的散列数据加到所述通信数据并且发送到通信方;以及,
第三步骤,通过将在第一步骤中所产生的所述散列数据用作所述计算机的识别数据而执行与通信方的通信。
28.一种数据处理方法,由用于与通信方进行通信的计算机执行,包括:
第一步骤,用于从所述通信方接收在预定条件下更新的通信数据和相关联的所述通信数据的散列数据;以及
第二步骤,用于根据在所述第一步骤中接收的所述散列数据来识别所述通信方,并且根据在所述第一步骤中接收的所述通信数据来与所述通信方通信。
29.一种由用于与通信方执行通信的计算机执行的程序,其中,所述计算机执行的所述程序包括:
第一步骤,用于根据用户对于计算机的操作历史来产生指示用户的属性的属性数据;以及
第二步骤,用于向通信方发送在第一步骤中产生的属性数据。
30.按照权利要求29的程序,其中,所述第一步骤根据所述操作历史来产生要作为用于确定所述用户的喜好的索引的所述属性数据。
31.按照权利要求29的程序,其中,所述第一步骤根据由用户输入的数据来产生进一步用于指示用户的个人数据的所述属性数据。
32.按照权利要求29的程序,还包括:第三步骤,用于产生在所述第一步骤中产生的所述属性数据的散列数据;
其中,所述第二步骤向所述通信方发送在第三步骤中被加上所述散列数据的所述属性数据。
33.按照权利要求29的程序,其中:
所述第一步骤按照来自所述用户的指令而产生所述属性数据,它包括公开属性数据和非公开属性数据;并且
所述第二步骤向所述通信方仅仅发送在所述第一步骤中产生的所述属性数据中的所述公开属性数据。
34.按照权利要求29的程序,还包括第四步骤,用于向在所述第一步骤中产生的所述属性数据加上签名数据;
其中,所述第二步骤向所述通信方发送在所述第四步骤中被加上所述签名数据的所述属性数据。
35.一种供计算机执行应用程序的管理的程序,所述应用程序用于向通信方发送根据用户对于计算机的操作历史而获得的指示用户的属性的属性数据,其中,所述计算机执行,所述程序包括:
第一步骤,用于验证由计算机启动的应用程序的有效性,并且产生指示被确定为有效的应用程序的识别数据的认证数据;以及,
第二步骤,用于向用于提供要由所述应用程序使用的数据的通信方发送在第一步骤中产生的认证数据,
36.按照权利要求35的程序,其中,所述第一步骤验证是否所述应用程序被窜改,并且当确定未被窜改时,产生指示所述识别数据的所述认证数据。
37.按照权利要求35的程序,被存储在存储器中,所述存储器提供用于防止存储器数据被窜改和监控的功能,所述程序是由所述计算机在安全状态中从所述存储器读取的,并且被所述计算机执行。
38.一种由用于与通信方执行通信的计算机执行的程序,其中,所述计算机执行的所述程序包括:
第一步骤,用于从通信方接收属性数据,所述属性数据指示根据通信方的用户的操作历史而被获得的用户的属性;以及,
第二步骤,用于根据在第一步骤中接收的属性数据而向通信方发送数据。
39.按照权利要求38的程序,其中,所述第二步骤根据所述属性数据而发送与所述其他内容数据的用户的属性匹配的数据或以匹配形式的数据。
40.按照权利要求38的程序,其中,所述第一步骤接收所述属性数据,所述属性数据要作为用于确定所述用户的索引。
41.按照权利要求38的程序,其中,所述计算机执行:
第三步骤,用于验证所述通信方的有效性;
第四步骤,用于从所述通信方接收认证数据,所述认证数据指示由所述通信方确定为有效并且在所述第三步骤中将所述通信方验证为有效的条件下由所述通信方启动的应用程序的识别数据;
第五步骤,用于确定是否在所述第四步骤中接收的所述认证数据中包括期望的识别数据;以及
在确定包括所述期望的识别数据的条件下所述第二步骤包括在所述第五步骤中。
42.一种计算机,包括:
存储器,用于存储应用程序;
执行电路,用于执行从所述存储器读取的应用程序;以及,
接口,用于向通信方发送数据/从通信方接收数据;
其中,执行电路根据用户对于计算机的操作历史而产生指示用户的属性的属性数据,并且按照所述应用程序经由所述接口向通信方发送所产生的属性数据。
43.按照权利要求42的计算机,还包括:
电路模块,用于存储根程序,提供防止存储器数据被窜改和监控的功能;
其中,所述执行电路还执行在安全状态中从所述电路模块读取的所述根程序,验证所述应用程序的有效性,在所述电路模块中存储指示被确定为有效的应用程序的识别数据的认证数据,并且经由所述接口向所述通信方发送从所述电路模块读取的所述认证数据。
44.一种用于与通信方执行通信的计算机,包括:
存储器,用于存储程序;
接口,用于从通信方接收属性数据,所述属性数据指示根据通信方的用户的操作历史而获得的用户的属性;以及
执行电路,用于执行从存储器读取的程序,并且按照所述程序根据由所述接口接收的属性数据经由所述接口向所述通信方发送数据。
45.按照权利要求44的计算机,其中:
所述接口从所述通信方接收认证数据,所述认证数据指示由所述通信方启动并且由所述通信方验证为有效的应用程序的识别数据;
其中,所述执行电路在将通信方验证为有效的条件下确定是否在经由所述接口接收的所述认证数据中包括期望的识别数据,并且在确定所述期望的识别数据被包括的条件下经由所述接口向所述通信方发送数据。
46.一种由用于与通信方进行通信的计算机执行的数据处理方法,包括:
第一步骤,用于根据用户对于计算机的操作历史而产生用于指示用户的属性的属性数据;以及,
第二步骤,用于向通信方发送在第一步骤中产生的属性数据。
47.一种由用于与通信方进行通信的计算机执行的数据处理方法,包括:
第一步骤,从通信方接收指示根据通信方的用户的操作历史而获得的用户的属性的属性数据;以及,
第二步骤,用于根据在第一步骤中接收的属性数据向通信方发送数据。
48.一种由用于与通信方进行通信的计算机执行的程序,其中,所述计算机执行的所述程序包括:
第一步骤,用于产生通信数据,所述通信数据包括原始数据和更新历史数据,所述原始数据用于计算在更新后的识别数据,用于与通信方通信来识别计算机,所述更新历史数据包括在更新之前的识别数据,并且指示更新识别数据的历史;
第二步骤,用于向通信方发送在第一步骤中产生的通信数据;以及,
第三步骤,用于通过使用在第二步骤后被更新的识别数据来与通信方进行通信。
49.按照权利要求48的程序,其中,当过去多次更新所述识别数据时,所述第一步骤产生所述通信数据,所述通信数据包括所述更新历史数据,指示对于多次的更新的全部或一部分在更新前的所述识别数据。
50.按照权利要求48的程序,其中,所述第一步骤根据用户对于所述计算机的操作历史来产生指示所述用户的属性的属性数据,产生所述属性数据的散列数据,并且通过使用所述散列数据来作为所述识别数据而产生所述通信数据。
51.按照权利要求50的程序,还包括第四步骤,用于在预定条件下更新所述属性数据,其中
所述第一步骤使用在所述第四步骤中更新的所述属性数据的散列数据来作为所述更新的识别数据。
52.按照权利要求50的程序,其中,所述第一步骤根据所述操作历史而产生所述属性数据,所述属性数据指示要作为用于确定所述用户的喜好的索引的所述属性。
53.一种由用于与通信方进行通信的计算机执行的程序,其中,所述计算机执行的所述程序包括:
第一步骤,用于识别通信方,并且根据通信方的第一识别数据来与通信方进行通信;
第二步骤,用于从通信方接收通信数据,并且根据第二识别数据来识别通信方,所述通信数据包括在更新第一识别数据后的第二识别数据或原始数据和更新历史数据,所述原始数据用于计算第二识别数据,所述更新历史数据包括第一识别数据并且指示更新第二识别数据的历史;
第三步骤,用于确定是否在第二步骤中接收的通信数据中包括的更新历史数据指示在第一步骤中使用的第一识别数据;以及,
第四步骤,用于在第三步骤中当确定所述更新历史数据指示第一识别数据时使得在第一步骤中使用的第一识别数据和在第二步骤中接收的通信数据中包括的第二识别数据或从原始数据计算的第二识别数据彼此相关联。
54.按照权利要求53的程序,还包括第五步骤,用于根据在所述第四步骤中作出的相关联关系通过根据所述第二识别数据识别所述通信方而与所述通信方执行通信。
55.按照权利要求54的程序,其中:
所述第二步骤接收所述通信数据,所述通信数据还包括所述属性数据,所述属性数据指示根据所述通信方的用户的操作历史而获得的用户的属性;并且
所述第五步骤根据在所述第二步骤中接收的所述通信数据中包括的所述属性数据来向所述通信方发送与用户的所述属性匹配的数据或以匹配形式的数据。
56.按照权利要求55的程序,其中,所述第二步骤接收所述通信数据,所述通信数据包括作为所述属性数据的散列数据的所述第一识别数据。
57.按照权利要求53的程序,包括:
第六步骤,用于验证所述通信方的有效性;
第七步骤,用于从所述通信方接收认证数据,所述认证数据指示由所述通信方确定为有效的并且在所述第六步骤中所述通信方被验证为有效的条件下由所述通信方启动的应用程序的识别数据;
第八步骤,用于确定是否在所述第七步骤中接收的所述认证数据中包括预定的识别数据;以及
第九步骤,用于在确定在所述第八步骤中包括所述期望的识别数据的条件下执行所述第一步骤。
58.一种计算机,包括:
存储器,用于存储应用程序;
执行电路,用于执行从所述存储器读取的所述应用程序;以及
接口,用于向通信方发送数据/从通信方接收数据;
其中,所述执行电路包括用于通过与通信方通信而识别所述计算机的更新的识别数据或者用于计算在更新后的识别数据和在更新前的识别数据的原始数据,产生包括指示识别更新所述数据的历史的更新历史数据的通信数据,经由所述接口而向通信方发送通信数据,并且经由所述接口通过使用更新的识别数据来与通信方进行通信。
59.按照权利要求58的计算机,还包括电路模块,用于存储根程序,提供防止存储器数据被窜改和监控的功能;
其中,所述执行电路还执行在安全状态中从所述电路模块读取的所述根程序,验证所述应用程序的有效性,在所述电路模块中存储指示被确定为有效的所述应用程序的识别数据的认证数据,并且按照所述根程序来经由所述接口向所述通信方发送从所述电路模块读取的所述认证数据。
60.一种计算机,用于与通信方进行通信,包括:
存储器,用于存储程序;
接口,用于接收通信数据,所述通信数据包括用于识别通信数据的第一识别数据的更新的第二识别数据或用于计算所述第二识别数据的原始数据和更新历史数据,所述更新历史数据包括第一识别数据,并且指示所述识别数据的更新历史;以及
执行电路,用于执行从所述存储器读取的程序,并且按照所述程序,当确定是否在由所述接口接收的通信数据中包括的更新历史数据指示第一识别数据时,使得第一识别数据和第二识别数据彼此相关联,以根据第二识别数据来与通信方进行通信。
61.按照权利要求60的计算机,其中,
所述接口从所述通信方接收认证数据,所述认证数据指示由所述通信方启动并且被其他内容数据验证为有效的应用程序的识别数据;并且
所述执行电路按照所述程序在将通信方验证为有效的条件下确定是否在经由所述接口接收的所述认证数据中包括期望的识别数据,并且在确定包括所述期望的识别数据的条件下经由所述接口与所述通信方进行通信。
62.一种由用于与通信方进行通信的计算机执行的数据处理方法,包括:
第一步骤,用于产生通信数据,所述通信数据包括用于通过与通信方通信而识别所述计算机的更新的识别数据或者原始数据以及更新历史数据,所述原始数据用于计算在更新后的识别数据和在更新前的识别数据,所述更新历史数据指示更新识别数据的历史;
第二步骤,用于向通信方发送在第一步骤中产生的通信数据;以及,
第三步骤,用于通过使用在第二步骤后的更新的识别数据来与通信方进行通信。
63.一种由用于与通信方进行通信的计算机执行的数据处理方法,包括:
第一步骤,用于识别通信方,并且根据通信方的第一识别数据来与通信方进行通信;
第二步骤,用于接收通信数据,所述通信数据包括在更新第一识别数据后的第二识别数据或原始数据和更新历史数据,所述原始数据用于计算第二识别数据,所述更新历史数据包括第一识别数据,并且用于指示更新第二识别数据的历史,并且根据第二识别数据来识别通信方;
第三步骤,用于确定是否在第二步骤中接收的通信数据中包括的更新历史数据指示在第一步骤中使用的第一识别数据;以及
第四步骤,用于当确定所述更新历史数据指示在第三步骤中的第一识别数据时使得在第一步骤中使用的第一识别数据和在第二步骤中接收的通信数据中包括的第二识别数据或从原始数据计算的第二识别数据彼此相关联。
64.一种由用于与通信方进行通信的计算机执行的程序,包括:
第一步骤,用于存储识别数据表信息,所述识别数据表信息包括用于识别通信方的第一识别数据;
第二步骤,用于从通信方接收通信数据,所述通信数据包括用于识别通信方的第二识别数据或原始数据和更新历史数据,所述原始数据用于计算第二识别数据,所述更新历史数据包括在更新第二识别数据之前的识别数据,并且指示更新的识别数据的历史;
第三步骤,用于当根据在通信数据中包括的更新历史数据而将在第一步骤中存储的识别数据表信息中包括的第一识别数据确定为不是最新的识别数据时,将所述第一识别数据更新为在通信数据中的第二识别数据或从原始数据计算的第二识别数据;以及,
第四步骤,用于根据在第三步骤中更新的第二识别数据而识别通信方,并且与所述通信方进行通信。
CN200580000498.0A 2004-04-05 2005-04-05 程序、计算机和数据处理方法 Pending CN1806235A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2004111426A JP2005293504A (ja) 2004-04-05 2004-04-05 プログラム、コンピュータおよびデータ処理方法
JP111426/2004 2004-04-05
JP114872/2004 2004-04-09
JP114871/2004 2004-04-09
JP121940/2004 2004-04-16

Publications (1)

Publication Number Publication Date
CN1806235A true CN1806235A (zh) 2006-07-19

Family

ID=35326329

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200580000498.0A Pending CN1806235A (zh) 2004-04-05 2005-04-05 程序、计算机和数据处理方法

Country Status (2)

Country Link
JP (1) JP2005293504A (zh)
CN (1) CN1806235A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106599709A (zh) * 2015-10-15 2017-04-26 中兴通讯股份有限公司 一种防隐私信息泄露的方法、装置及终端

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5309709B2 (ja) * 2008-06-16 2013-10-09 株式会社リコー ソフトウェア改ざん検知方法及び機器
WO2010103800A1 (ja) * 2009-03-13 2010-09-16 株式会社オンサイト サーバ、端末、プログラムおよびサービス提供方法
JP5687455B2 (ja) * 2010-03-09 2015-03-18 株式会社オンサイト サーバ、端末、プログラムおよびサービス提供方法
JP6067548B2 (ja) * 2013-12-18 2017-01-25 トヨタ自動車株式会社 情報処理装置
JP6972721B2 (ja) * 2017-07-18 2021-11-24 富士フイルムビジネスイノベーション株式会社 情報処理装置及び情報処理プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106599709A (zh) * 2015-10-15 2017-04-26 中兴通讯股份有限公司 一种防隐私信息泄露的方法、装置及终端

Also Published As

Publication number Publication date
JP2005293504A (ja) 2005-10-20

Similar Documents

Publication Publication Date Title
CN1302408C (zh) 认证系统、认证装置、终端装置以及认证方法
CN100347630C (zh) 复制组件及其方法
CN1591397A (zh) 安全数据管理设备
CN1157020C (zh) 提高了安全性的密码处理装置
CN1914649A (zh) 认证系统, 认证设备,以及记录介质
CN1759559A (zh) 数字作品的保护系统、记录设备、再现设备及记录介质
CN1839581A (zh) 装置认证信息安装系统
CN1898621A (zh) 内容输出设备、内容分发服务器及密钥发布中心
CN1787525A (zh) 双证书在ssl协议中的应用方法
CN1396568A (zh) 数字作品保护系统、记录媒体装置、发送装置和重放装置
CN1735939A (zh) 内容发布系统、记录设备和方法、重放设备和方法及程序
CN1754173A (zh) 软件管理系统、记录介质和信息处理装置
CN1313917C (zh) 数据处理装置以及数据处理方法
CN1682174A (zh) 组形成/管理系统,组管理装置,以及成员装置
CN1934582A (zh) 内容使用系统、信息终端及结算系统
CN1256459A (zh) 数字作品保护系统
CN1482568A (zh) 用于防止记录介质非授权使用的系统
CN1650572A (zh) 群组判定设备
CN1922643A (zh) 加密系统、加密装置、解密装置、程序和集成电路
CN1695123A (zh) 万维网服务之间的安全措施的动态协商
CN1650571A (zh) 内容处理装置、内容存储介质、内容处理方法和内容处理程序
CN1483177A (zh) 存储有内容数据的计算机可以读取的信息存储介质以及内容收费系统
CN1820237A (zh) 信息输入/输出系统
CN1806235A (zh) 程序、计算机和数据处理方法
CN1692321A (zh) 口令恢复系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1089521

Country of ref document: HK

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20060719

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1089521

Country of ref document: HK