具体实施方式
(实施例1)
说明本发明的实施例的数字内容分发系统。
图1是本实施例的数字内容分发系统的整体结构图。并且,在本实施例涉及的数字内容分发系统中,如图27所示,在从用户终端103向许可服务器101发送了请求消息(2701)的情况下,在许可服务器101侧判断为了管理许可是否需要进行事务识别标记的日志记录,向用户终端103发送包含日志记录与否的应答消息(2702)。于是,其特点是,用户终端103,在需要日志记录的情况下,进行日志记录,在不需要日志记录的情况下,不进行日志记录。
在图1中,数字内容分发系统包括许可服务器101、内容服务器102、多个用户终端103和传输介质104。下面,说明数字内容分发系统的各个构成要素。
许可服务器101是一种服务器,被设置在事业者α侧,管理对用户β的内容的利用权利,向用户终端103分发用图2后述的许可200。
内容服务器102是一种服务器,被设置在事业者α侧,向用户终端103分发内容。并且,假设,内容被加密成使用许可200来可以解密的状态后被分发。
用户终端103,被设置在用户β侧,管理从许可服务器101分发来的许可200,并使用许可200来再生从内容服务器102分发来的内容。
传输介质104是互联网、CATV(Cable Television)、广播电波等有线传输介质、或有线传输介质以及移动式记录介质,在许可服务器101、内容服务器102和用户终端103之间、在用户终端103和其它的用户终端103之间进行连接,以便可以交换数据。
到上述为止,结束关于实施例的数字内容分发系统的整体结构的说明。
图2是表示许可200的一个例子的图。在图2中,许可200包括许可ID201、内容ID202、利用条件类别203、利用条件204和内容密钥205。
在许可ID201中描述唯一地确定许可200的ID。在内容ID202中描述使用许可200来利用的内容的ID。在利用条件类别203中描述表示利用条件204的类别的信息。在本实施例中假设,描述表示利用条件204是需要更新的利用条件(例如,“可以再生一次”等)、或是不需要更新的利用条件(例如,“到2007年3月为止可以再生”等)的信息。在利用条件204中描述允许利用内容的条件。在内容密钥205中描述解密内容的解密密钥。
图3是本实施例的许可服务器101的整体结构图。在图3中,许可服务器101由许可数据库301、安全通信部302和许可发行部303构成。下面,说明各个构成要素。
许可数据库301是一种数据库,如在图4表示该一个例子,管理向各个用户终端103可以发行的许可200。在图4中,许可数据库301由终端ID401、向依据终端ID401确定的用户终端103可以发行的许可200、发行可能次数402和待提交标记403构成。终端ID401是一种ID,在数字内容分发系统中唯一地确定用户终端103。发行可能次数402是向用户终端103可以发行许可200的次数。发行可能次数402,在向用户终端103发送许可200后每次接收作为该回信的许可接收完了通知(以后,称为提交消息)时被减去1,在发行可能次数402为0的时刻不能发行许可200。在本实施例中假设,在发行可能次数402为0的情况下,该许可200从许可数据库301中被删除。待提交标记403是一种信息,表示是否处于等待来自用户终端103的提交消息的状态。在本实施例中,待提交标记403,取“0”或“1”的任一个的值,在是“1”的情况下,表示处于等待提交消息的状态,在是“0”的情况下,表示不处于等待提交消息的状态。在本实施例中假设,在向用户终端103发送发行可能次数402是有限的许可200的情况下,将待提交标记403设定为“1”后发送。并且,假设,在待提交标记403是“1”的状态下接收提交消息的情况下,作为提交处理进行以下处理,即,从发行可能次数402中减去“1”,并将待提交标记403变更为“0”。
在图4中表示,向终端ID401为“0001”的用户终端103,可以发行许可ID201为“0011”或“0012”的二个许可200,向终端ID401为“0002”的用户终端103,可以发行许可ID201为“0021”的许可200。而且表示,例如,向终端ID401为“0001”的用户终端103可以发行的、许可ID201为“0011”的许可200,只一次可以发行、且正在等待提交。
返回图3,安全通信部302进行用户终端103的认证、许可服务器101和用户终端103间的隐藏通信(进行窃听、窜改的防止和通信对方的认证的通信)以及事务中断对策。对于安全通信部302的结构,用图5在后面进行说明。
许可发行部303是一种处理部,按照来自用户终端103的请求进行许可200的发行处理。
到上述为止,结束关于许可服务器101的整体结构的说明。
其次,用图5说明许可服务器101中的安全通信部302的结构。在图5中,安全通信部302由安全通信控制部501、事务日志数据库502、特有信息记忆部503、随机数发生部504、加解密处理部505和通信部506构成。下面,说明安全通信部302的各个构成要素。
安全通信控制部501是进行安全通信部302整体的控制的单元,安全通信控制部501进行用户终端103的认证处理、与用户终端103收发的数据的加密/解密处理、窜改检查处理等的控制。再者,安全通信控制部501,在易失性处理器上管理图6中表示该一个例子的事务日志600,而且,根据需要,进行将其记录到事务日志数据库502的处理。在因通信截断等而正在执行中的事务被中断的情况下,根据该记录在事务日志数据库502的信息进行规定的处理,从而可以使被中断的事务完了、或可以将被中断的事务回复到执行前的状态。
在图6中,事务日志600由终端ID401、正在处理中事务有无601、正在处理中事务识别标记602和回退与否603构成。在终端ID401中,描述许可服务器101正在通信中的用户终端103的ID。在正在处理中事务有无601中,描述是否有正在处理中的事务。在正在处理中事务识别标记602中,描述分配给正在处理中的事务的“0”或“1”的值。在本实施例中假设,各个事务被交替赋予“0”或“1”。在回退与否603中描述一种信息,该信息表示,在正在处理中的事务以未完了的状态下结束时,是否需要将许可数据库301回退。在此,回退(Roll Back)是指,在数据库发生障碍时,将数据回退到所记录的检查点,从而重新开始处理。在图6中表示,许可服务器101,与终端ID401为“0001”的用户终端103正在通信中,而且表示,有正在处理中的事务;分配给该事务的正在处理中事务识别标记602的值是“0”;在该事务以未完了的状态下结束时,也不需要将许可数据库301回退。
事务日志数据库502是一种数据库,以非易失性记录介质被实现,如图7中表示该一个例子,记录终端ID401和正在处理中事务识别标记602的组。
特有信息记忆部503记忆,包含以公开密钥加解密方式的许可服务器101特有的公开密钥KDs的服务器公开密钥证书、许可服务器101特有的秘密密钥KEs和认证局公开密钥证书。服务器公开密钥证书是在许可服务器101的公开密钥KDs上施加了认证局的签名的。在本实施例中假设,对于公开密钥证书的格式,采用一般的X.509证书格式。并且,对于公开密钥加解密方式以及X.509证书格式,在ITU—T文件X.509“TheDirecrory:Public—key and attribute certificate frameworks”中有详细描述。
随机数发生部504,生成随机数。
加解密处理部505进行数据的加密、解密、签名生成、签名验证、会话(session)密钥生成用参数的生成、会话密钥的生成。对于数据的加密以及解密算法,使用AES(Advanced Encryption Standard),对于签名生成以及签名验证算法,使用EC—DSA(Elliptic Curve Digital SignatureAlgorithm)。对于AES,在National Institute Standard andTechnology(NIST),FIPS Publication 197中有详细描述,对于EC—DSA,在IEEE 1363Standard中有详细描述。
加解密处理部505,在进行数据的加密/解密的情况下,将AES密钥和明文/加密数据分别输入,而将用AES密钥来进行加密/解密后的数据分别输出。而且,在进行签名生成/验证的情况下,将签名对象数据/签名验证数据和秘密密钥/公开密钥分别输入,而将签名数据/验证结果分别输出。再者,在进行会话密钥生成用参数的生成的情况下,将随机数输入,而将Diffie—Hellman参数输出。而且,在进行会话密钥的生成的情况下,将随机数和Diffie—Hellman参数输入,而将会话密钥输出。在此,对于会话密钥的生成,使用EC—DH(Elliptic Curve Diffie—Hellman)。对于EC—DH的算法,在所述的IEEE 1363Standard中有详细描述。
通信部506是一种单元,与用户终端103进行通信。
到上述为止,结束关于许可服务器101中的安全通信部302的结构的说明。
其次,用图8说明本实施例的用户终端103的结构。在图8中,用户终端103由许可蓄积部801、内容蓄积部802、安全通信部803、许可获得部804、内容获得部805、内容输出控制部806和内容输出部807构成。下面,说明各个构成要素。
许可蓄积部801是一种单元,蓄积从许可服务器101获得的许可200。假设,许可蓄积部801,将许可200安全地蓄积到被反窜改化后的存储器内等。
内容蓄积部802是一种单元,蓄积从内容服务器102获得的加密内容。
安全通信部803进行许可服务器101的认证、许可服务器101和用户终端103间的隐藏通信(进行窃听、窜改的防止和通信对方的认证的通信)以及事务中断对策。对于安全通信部803的结构,用图9在后面进行说明。
许可获得部804是一种单元,进行对许可服务器101的许可200的发行请求处理。
内容获得部805是一种单元,从内容服务器102获得内容。
内容输出控制部806是一种单元,根据许可200控制内容的输出。
内容输出部807是一种单元,根据内容输出控制部806的指示,使用内容密钥205来解密并输出内容。
到上述为止,结束关于用户终端103的整体结构的说明。
其次,用图9说明用户终端103中的安全通信部803的结构。在图9中,安全通信部803由安全通信控制部901、事务日志数据库902、特有信息记忆部903、随机数发生部904、加解密处理部905和通信部906构成。下面,说明安全通信部803的各个构成要素。
安全通信控制部901是进行安全通信部803整体的控制的单元,安全通信控制部901进行许可服务器101的认证处理、与许可服务器101收发的数据的加密/解密处理、窜改检查处理等的控制。再者,安全通信控制部901,在易失性处理器上管理图10中表示该一个例子的事务日志1000,而且,根据需要,进行将事务日志1000记录到事务日志数据库902的处理。在因通信截断等而正在执行中的事务被中断的情况下,根据该记录在事务日志数据库902的信息进行规定的处理,从而可以使被中断的事务完了、或可以将被中断的事务回复到执行前的状态。
在图10中,事务日志1000由服务器ID1001、正在处理中事务识别标记602构成。在服务器ID1001中,描述用户终端103正在通信中的许可服务器101的ID。在正在处理中事务识别标记602中,与事务日志600相同,描述分配给正在处理中的事务的“0”或“1”的值。在图10中表示,用户终端103,与服务器ID1001为“0001”的许可服务器101正在通信中,而且表示,分配给正在处理中事务的正在处理中事务识别标记602的值是“0”。
事务日志数据库902是一种数据库,以非易失性记录介质被实现,如图11中表示该一个例子,记录服务器ID1001和正在处理中事务识别标记602的组。
特有信息记忆部903记忆,包含以公开密钥加解密方式的用户终端103特有的公开密钥KDc的终端公开密钥证书、用户终端103特有的秘密密钥KEc和认证局公开密钥证书。终端公开密钥证书是在用户终端103的公开密钥KDc上施加了认证局的签名的。对于公开密钥证书的格式,与许可服务器101相同,采用X.509证书格式。
随机数发生部904,生成随机数。
加解密处理部905进行数据的加密、解密、签名生成、签名验证、会话密钥生成用参数的生成、会话密钥的生成。加解密处理部905的输入、输出,与许可服务器101的加解密处理部505相同。
通信部906是一种单元,与许可服务器101进行通信。
到上述为止,结束关于用户终端103中的安全通信部803的结构的说明。
到上述为止,结束关于本实施例的数字内容分发系统的说明。
其次,参照流程图说明本发明的数字内容系统的处理。
首先,参照图12以及图13说明本实施例的用户终端103从许可服务器101获得许可200的处理的概要。
图12是,在用户终端103和许可服务器101间开始通信时在事务日志数据库902没有记录日志的情况下的许可获得处理的概要的说明图。
图13是,在用户终端103和许可服务器101间开始通信时在事务日志数据库902记录日志的情况下的许可获得处理的概要的说明图。
用户终端103和许可服务器101间的通信,均由从用户终端103开始的请求消息、和应对请求消息而从许可服务器101回信的应答消息构成。请求和应答的对被称为相位,如图12、图13所示由五种相位构成。下面,说明各个相位的概要。
首先,说明认证相位P1。认证相位P1是相互认证用的相位,在用户终端103和许可服务器101间建立会话后,只在最初进行一次。在认证相位P1中,用户终端103,向许可服务器101发送作为初次请求消息的认证信息A,该认证信息A是为了由许可服务器101认证用户终端103所需要的信息。许可服务器101,验证认证信息A后发送认证信息B,该认证信息B是为了由用户终端103认证许可服务器101所需要的信息。用户终端103验证认证信息B。到上述为止,结束认证相位P1的说明。
其次,说明认证、请求相位P2。认证、请求相位P2是一种相位,在开始认证相位P1时在事务日志数据库902没有记录日志的情况下,认证相位P1后只进行一次。在认证、请求相位P2中,用户终端103,在向许可服务器101发送许可请求消息的同时,发送认证信息C以及事务识别标记T,该认证信息C是为了确定相互认证所需要的信息。在此,所发送的事务识别标记T中设定初始值(在本实施例中为“0”)。许可服务器101,在判断为开始新的事务、而有上次中断了的事务的情况下,进行将许可数据库301或事务日志数据库502的状态,回复到该事务开始前的状态的处理(以后,称为取消处理),然后,向用户终端103发送包含许可200的应答消息,以作为对请求消息的应答。接收了应答消息的用户终端103,在不连续进行事务处理的情况下,通过发送提交消息,从而移向提交相位P4。而且,在连续进行事务处理的情况下,不发送提交消息而移向请求相位P3。
请求相位P3是在同一会话内处理二个以上的事务的情况下发生的相位。即,在多次进行许可请求的情况下,使用请求相位P3。请求相位P3,按照需要的事务数被反复进行。在该请求相位P3中,提交消息不被发送,取代提交消息而将值反转后的事务识别标记T,与下一个请求相位P3中的许可请求消息一起被发送。假设,许可服务器101,在请求相位P3中,在接收了针对在上次的请求相位P3接收了的事务识别标记T、将值反转后的事务识别标记T的情况下,进行对上次的事务的提交处理。在最后的请求相位P3完了后,移向提交相位P4。
提交相位P4是一种相位,在全部事务处理结束后,在许可服务器101中用于确定事务处理的完了。在提交相位P4中,用户终端103向许可服务器101发送提交消息。接收了提交消息的许可服务器101进行提交处理。
其次,说明认证、提交相位P5。认证、提交相位P5是一种相位,在开始认证相位P1时在事务日志数据库902记录日志的情况下,认证相位P1后只进行一次。在认证、提交相位P5中,用户终端103,在向许可服务器101发送提交消息的同时,发送认证信息C以及事务识别标记T,该认证信息C是为了确定相互认证所需要的信息。许可服务器101,按照事务识别标记T的值,进行提交处理或取消处理。
到上述为止,结束本实施例的用户终端103,从许可服务器101获得许可200时的五种相位中的处理的概要说明。
下面,详细说明在P1~P5的各个通信相位中进行的处理。
首先,参照图14所示的流程图说明在认证相位P1中进行的处理。
S1401:在被用户β指示从许可服务器101获得许可200的情况下,安全通信部803中包含的安全通信控制部901,参照事务日志数据库902,确认是否有与所指定的许可服务器101对应的日志。在有对应的日志的情况下,将其作为事务日志1000读出到由自身管理的易失性存储器上。
S1402:安全通信控制部901,生成询问消息,并通过通信部906向许可服务器101发送该询问消息,该询问消息包含随机数发生部904所生成的随机数Rc、和特有信息记忆部903所记忆的终端公开密钥证书。
S1403:许可服务器101的安全通信部302中包含的安全通信控制部501,在通过通信部506从用户终端103接收了包含随机数Rc和终端公开密钥证书的询问消息的情况下,首先,通过将特有信息记忆部503所记忆的认证局公开密钥证书和所述终端公开密钥证书提供给加解密处理部505,从而进行所述终端公开密钥证书的签名验证。
S1404:在S1403中的签名验证的结果为验证失败的情况下,进入S1409的处理。在S1403中的签名验证的结果为验证成功的情况下,进入S1405的处理。
S1405:安全通信控制部501,在随机数生成部504生成随机数Rs、Rs2,在加解密处理部505输入随机数Rs2,并生成Diffie—Hellman参数DHs。
S1406:安全通信控制部501,在加解密处理部505生成使从用户终端103接收的随机数Rc和在S1405所生成的DHs连接的数据(公式1)的、依据许可服务器101特有的秘密密钥KEs的签名(公式2)。
Rc||DHs (公式1)
S(KEs,Rc||DHs) (公式2)
在此,符号“||”表示数据的连接。而且,S(A,B)表示,使用生成签名的算法S的、依据秘密密钥A的、针对数据B的签名的生成。
S1407:安全通信控制部501,参照事务日志数据库502,确认是否有与正在通信中的用户终端103对应的日志。在有对应的日志的情况下,将其作为事务日志600读出到由自身管理的易失性存储器上,并删除从事务日志数据库502读出的日志。并且,此时假设,在正在处理中事务有无601中设定“有”;在回退与否603中设定“要”。另一方面,在没有与事务日志数据库502对应的日志的情况下,在由自身管理的易失性存储器上生成事务日志600。在该情况下,假设,在终端ID401中设定正在通信中的用户终端103的ID;在正在处理中事务有无601中设定“无”;在正在处理中事务识别标记602中设定“0”;在回退与否603中设定“不要”。
S1408:安全通信控制部501生成响应—询问消息,并通过通信部506向用户终端103发送该响应—询问消息,该响应—询问消息中包含在S1405所生成的随机数Rs以及Diffie—Hellman参数DHs、特有密钥信息记忆部503所记忆的服务器公开密钥证书和在S1406所生成的签名(公式2)。
S1409:安全通信控制部501生成错误消息,并通过通信部506向用户终端103发送该错误消息。
S1410:安全通信控制部901确认从许可服务器101接收的消息是否是响应—询问消息。在从许可服务器101接收的消息是响应—询问消息的情况下,进入S1411的处理。在从许可服务器101接收的消息不是响应—询问消息的情况下,就结束处理。
S1411:安全通信控制部901,通过将特有信息记忆部903所记忆的认证局公开密钥证书、和响应—询问消息中包含的服务器公开密钥证书提供给加解密处理部905,从而进行所述服务器公开密钥证书的签名验证。
S1412:在S1411中的签名验证的结果为验证失败的情况下,就结束处理。在S1411中的签名验证的结果为验证成功的情况下,进入S1413的处理。
S1413:安全通信控制部901,生成将在S1402所制作的随机数Rc和响应—询问消息中包含的DHs结合的数据(公式3),向加解密处理部905输入所述数据(公式3)、响应—询问消息中包含的签名数据(公式2)以及服务器公开密钥证书,进行签名数据(公式2)的验证。
Rc||DHs (公式3)
S1414:在S1413中的签名验证的结果为验证失败的情况下,就结束处理。在S1413中的签名验证的结果为验证成功的情况下,用户终端103确实知道通信对方是许可服务器101(通信对方的认证)。在此情况下,进入S1415的处理。
S1415:安全通信控制部901,在随机数发生部904生成随机数Rc2,在加解密处理部905输入所生成的随机数Rc2,并生成Diffie—Hellman参数DHc。
S1416:安全通信控制部901,根据响应—询问消息中包含的DHs、和在S1415所生成的Rc2,在加解密处理部905生成会话密钥KS。
S1417:安全通信控制部901,在加解密处理部905生成使从响应—询问消息中包含的的随机数Rs和在S1415所生成的DHc连接的数据(公式4)的、依据用户终端103特有的秘密密钥KEc的签名(公式5)。
Rs||DHc (公式4)
S(KEc,Rs||DHc) (公式5)
S1418:安全通信控制部901,参照事务日志数据库902,确认是否有与正在通信中的许可服务器101对应的日志。在有与正在通信中的许可服务器101对应的日志的情况下,进入认证、提交相位P5的处理。在没有与正在通信中的许可服务器101对应的日志的情况下,进入认证、请求相位P2的处理。
到上述为止,结束关于认证相位P1中进行的处理的说明。
其次,参照图15所示的流程图说明在认证、请求相位P2中进行的处理。
S1501:安全通信控制部901,在自身管理的易失性存储器上生成事务日志1000。在该情况下,假设,在服务器ID1001中设定正在通信中的许可服务器101的ID;正在处理中事务识别标记602中设定初始值(在本实施例中为“0”)。
S1502:许可获得部804生成许可获得请求消息Mreq。假设,在许可获得请求消息Mreq中包含希望获得的许可200的许可ID201。
S1503:安全通信控制部901,使序号Seq、事务识别标记T、在S1502所生成的许可获得请求消息Mreq和与它们对应的散列值h连接,用会话密钥KS来将其加密,从而生成加密数据(公式6)。
E(KS,Seq||T||Mreq||h) (公式6)
并且,E(X,Y)表示,使用加密算法E的、依据加密密钥X的、数据Y的加密。
在此,假设,在序号Seq中设定“0”。假设,序号Seq,以后,在同一会话中每次发送以及接收消息时,都加上1。而且假设,在事务识别标记T中设定事务日志1000的正在处理中事务识别标记602的值。
S1504:安全通信控制部901,生成响应—询问消息,并通过通信部906向许可服务器101发送该响应—询问消息,该响应—询问消息中包含在S1415所生成的DHc、在S1417所生成的签名(公式5)和在S1503所生成的加密数据(公式6)。
S1505:许可服务器101的安全通信部302中包含的安全通信控制部501,在通过通信部506从用户终端103接收包含Diffie—Hellman参数DHc、签名数据以及加密数据的响应—询问消息的情况下,生成将在S1405所制作的随机数Rs和所述DHc结合的数据(公式7),向加解密处理部505输入所述生成数据(公式7)、所述签名数据以及终端公开密钥证书,进行签名数据的验证。
Rs||DHc (公式7)
S1506:S1505中的签名验证的结果为验证失败的情况下,进入S1513的处理。在S1505中的签名验证的结果为验证成功的情况下,进入S1507的处理。
S1507:安全通信控制部501,根据响应—询问消息中包含的DHc、和在S1405所生成的Rs2,在加解密处理部505生成会话密钥KS。然后,向加解密处理部505输入响应—询问消息中包含的加密数据和所生成的会话密钥KS,进行加密数据的解密。
S1508:安全通信控制部501,进行序号Seq和散列值h的验证。
S1509:S1508中的验证的结果为验证失败的情况下,进入S1513的处理。在S1508中的验证的结果为验证成功的情况下,进入S1510的处理。
S1510:安全通信控制部501,确认事务日志600的正在处理中事务有无601的值。在确认结果是正在处理中事务有无601的值为“有”的情况下,进入S1511的处理。在正在处理中事务有无601的值为“无”的情况下,进入S1512的处理。
S1511:安全通信控制部501,执行后述的取消处理。
S1512:安全通信控制部501,执行后述的应答消息生成、发送处理。
S1513:安全通信控制部501,生成错误消息,通过通信部506向用户终端103发送该错误消息。
S1514:安全通信控制部901,确认从许可服务器101接收的消息是否是应答消息。在从许可服务器101接收的消息是应答消息的情况下,进入S1515的处理。从许可服务器101接收的消息不是应答消息的情况下,就结束处理。
S1515:安全通信控制部901,执行后述的应答消息接收时处理。
S1516:在S1515的应答消息接收时处理中成功了序号Seq、散列值h的验证的情况下,进入S1517的处理。另一方面,在序号Seq、散列值h的验证失败了的情况下,就结束处理。
S1517:安全通信控制部901,在继续进行许可请求的情况下,进入请求相位P3的处理。另一方面,在不继续进行许可请求的情况下,进入提交相位P4的处理。
到上述为止,结束关于认证、请求相位P2中进行的处理的说明。
其次,参照图16所示的流程图详细说明在图15中的S1511的取消处理。
S1601:安全通信控制部501,指示许可发行部303进行许可数据库301的回退处理。假设,该回退指示中包含正在通信中的用户终端103的终端ID401。接收了指示的许可发行部303,参照许可数据库301,从和回退指示中包含的终端ID401相关联的信息中检索待提交标记403的值为“1”的信息,并将该值变更为“0”。
S1602:安全通信控制部501,将事务日志600的正在处理中事务有无601的值设定为“无”。
并且,对于取消处理,说明了进行许可数据库301的回退处理,但是,不仅限于此,在另外管理、更新需要回退的信息的情况下,可以回退该信息。
到上述为止,结束关于取消处理的说明。
其次,参照图17所示的流程图详细说明在图15中的S1512的应答消息生成、发送处理。
S1701:安全通信控制部501,向许可发行部303发送解密后的许可获得请求消息Mreq,来通知接收了新的许可获得请求。接受了通知的许可发行部303,参照许可数据库301,判断能否发行许可200。假设,许可发行部303,在依据许可获得请求消息Mreq请求发行的许可200的发行可能次数402为1以上、且待提交标记403为“0”的情况下,判断为可以发行许可200。在判断结果是可以发行许可的情况下,进入S1702的处理。另一方面,在不能发行许可的情况下,进入S1705的处理。
S1702:许可发行部303,确认发行可能次数402是否有限。在判断结果是发行可能次数402有限的情况下,进入S1703的处理。在发行可能次数402无限的情况下,进入S1705的处理。
S1703:许可发行部303,在用户终端103没有接收要发行的许可200的情况下,判断为需要许可数据库301的回退处理。
S1704:许可发行部303,将要发行的许可200的待提交标记403的值变更为“1”。
S1705:许可发行部303,在用户终端103没有接收要发行的许可200的情况下,也判断为不需要许可数据库301的回退处理。
S1706:许可发行部303,生成许可请求响应Mres。并且假设,许可发行部303,在S1701判断为可以发行许可的情况下,生成包含许可200的许可请求响应消息Mres,在S1701判断为不能发行许可的情况下,生成通知不能发行许可的许可请求响应Mres。许可发行部303,向安全通信控制部501发送,所生成的许可请求响应Mres、和在S1703以及S1705所判断的回退与否。
S1707:安全通信控制部501,将事务日志600的正在处理中事务有无601的值设定为“有”;将正在处理中事务识别标记602的值设定为从用户终端103发送来的事务识别标记T的值;将回退与否603设定为在S1706所通知的值。
S1708:安全通信控制部501,使序号Seq、事务识别标记记忆指示TR、在S1706所生成的许可获得请求响应消息Mreq和与它们对应的散列值h连接,用会话密钥KS来将其加密,从而生成加密数据(公式8)。事务识别标记记忆指示TR是一种信息,表示在用户终端103中是否需要将事务日志1000记录到事务日志数据库902。假设,安全通信控制部501,在事务日志600的回退与否603为“要”的情况下,在事务识别标记记忆指示TR设定“要记录”;在回退与否603为“不要”的情况下,在事务识别标记记忆指示TR设定“不要记录”。通过事务识别标记记忆指示TR,通知向事务日志数据库902的记录与否,从而可以抑制向事务日志数据库902的不必要的记录。
E(KS,Seq||TR||Mres||h) (公式8)
然后,安全通信控制部501,生成包含所生成的加密数据(公式8)的应答消息,通过通信部506向用户终端103发送该应答消息。
并且,也可以使从许可服务器101发送的应答消息包含事务识别标记的保持期限。
在图28以及29中表示向事务日志600还赋予了保持期限的情况下的参考图。
许可服务器所管理的事务日志600被附加保持期限2801,事务日志数据库502被附加保持期限2802,并且,用户终端所管理的事务日志1000被附加保持期限2901,事务日志数据库902被附加保持期限2902。作为该保持期限的设定例可以设想,系统特有的长度(记录日志后一个月等),按照利用条件赋予(在到三月为止可以发行许可的情况下,设定为三月末)等。据此,以往存在的问题是,许可服务器101或用户终端103,在即使有中断了的处理也停止运行等的情况下,不能清除事务日志等,但是,通过赋予保持期限,许可服务器101以及用户终端103,由于在事务日志超过保持期限的情况下,可以删除事务日志,因此可以适当地防止在许可服务器101以及用户终端103一直留下事务日志的情况。
而且,许可服务器101,判断在用户终端103是否需要将事务日志1000记录到事务日志数据库902,通过应答消息中的事务识别标记记忆指示TR向用户终端103通知所述判断结果,但是,也可以按照所发送的许可200中包含的利用条件204的细节、或许可服务器101所管理的信息的更新的有无等进行所述的记录与否判断。例如,可以设想,在所发送的许可200的利用条件204为有状态的情况下,判断为“要记录”,在利用条件为无状态的情况下,判断为“不要”。而且,可以设想,在许可服务器101中,在随着许可200的发行更新所管理的信息的情况下,为“要记录”,在不更新的情况下,为“不要”。可以设想,作为许可服务器101所管理的、随着许可200的发行而更新的信息有,许可200的发行数、或许可200的发行履历等。
而且,许可服务器101,判断在用户终端103是否需要将事务日志1000记录到事务日志数据库902,但是,也可以在许可服务器101不进行记录与否判断,而例如根据许可200的利用条件204的细节等,在用户终端103侧进行判断。
到上述为止,结束关于应答消息生成、发送处理的说明。
其次,参照图18所示的流程图详细说明在图5中的S1515的应答消息接收时处理。
S1801:安全通信控制部901,向加解密处理部905输入应答消息中包含的加密数据和会话密钥KS,并进行加密数据的解密。
S1802:安全通信控制部901,进行序号Seq和散列值h的验证。
S1803:在S1802的验证结果为验证失败的情况下,就结束处理。在S1802的验证结果为验证成功的情况下,进入S1804的处理。
S1804:安全通信控制部901,在事务日志数据库902中有与正在通信中的许可服务器101对应的日志的情况下,删除该日志。
S1805:安全通信控制部901,参照在S1801所解密的数据中包含的事务识别标记记忆指示TR,确认是否需要将事务日志1000记录到事务日志数据库902。在确认结果为需要记录的情况下,进入S1806的处理。在不需要记录的情况下,进入S1807的处理。
S1806:安全通信控制部901,将事务日志1000记录到事务日志数据库902。
S1807:安全通信控制部901,向许可获得部804发送在S1801所解密的加密数据中包含的许可获得请求响应消息Mreq。许可获得部804,参照许可获得请求响应消息Mreq,确认是否获得了许可200。在确认结果为获得了许可200的情况下,进入S1808的处理。以后,在用户终端103可以使用获得了的许可200。另一方面,在没有获得许可200的情况下,就结束处理。
S1808:许可获得部804,将许可200蓄积在许可蓄积部801。
到上述为止,结束关于应答消息接收时处理的说明。
其次,参照图19所示的流程图说明在请求相位P3中进行的处理。
S1901:安全通信控制部901,将易失性存储器上管理的事务识别标记T中设定事务日志1000的正在处理中事务识别标记602的值反转。
S1902:许可获得部804,生成许可获得请求消息Mreq。假设,许可获得请求消息Mreq中包含希望获得的许可200的许可ID201。
S1903:安全通信控制部901,使序号Seq、事务识别标记T、在S1902所生成的许可获得请求消息Mreq和与它们对应的散列值h连接,用会话密钥KS来将其加密,从而生成加密数据(公式6)。假设,在事务识别标记T中设定事务日志1000的正在处理中事务识别标记602的值。
S1904:安全通信控制部901,生成包含在S1903所生成的加密数据(公式6)的请求消息,通过通信部906向许可服务器101发送该请求消息。
S1905:安全通信控制部501,在接收请求消息的情况下,向加解密处理部505输入请求消息中包含的加密数据和会话密钥KS,并进行加密数据的解密。
S1906:安全通信控制部501,进行序号Seq和散列值h的验证。
S1907:在S1906的验证结果为验证失败的情况下,进入S1912的处理。在S1906的验证结果为验证成功的情况下,进入S1908的处理。
S1908:安全通信控制部501,确认事务日志600的正在处理中事务识别标记602的值、和在S1905所解密的加密数据中包含的事务识别标记T的值。在确认结果是事务识别标记T的值、和正在处理中事务识别标记602的值一致的情况下,进入S1911的处理。在事务识别标记T的值、和正在处理中事务识别标记602的值不一致的情况下,进入S1909的处理。
S1909:安全通信控制部501,执行后述的提交处理。
S1910:安全通信控制部501,执行所述的应答消息生成、发送处理。
S1911:安全通信控制部501,执行后述的应答消息生成、发送处理(重新发送)。
S1912:安全通信控制部501,生成错误消息,通过通信部506向用户终端103发送该错误消息。
S1913:安全通信控制部901,确认从许可服务器101接收的消息是否是应答消息。在从许可服务器101接收的消息是应答消息的情况下,进入S1914的处理。从许可服务器101接收的消息不是应答消息的情况下,就结束处理。
S1914:安全通信控制部901,执行所述的应答消息接收时处理。
S1915:在S1914的应答消息接收时处理中成功了序号Seq、散列值h的验证的情况下,进入S1916的处理。另一方面,在序号Seq、散列值h的验证失败了的情况下,就结束处理。
S1916:安全通信控制部901,在继续进行许可请求的情况下,再次执行请求相位P3的处理。另一方面,在不继续进行许可请求的情况下,进入提交相位P4的处理。
到上述为止,结束关于请求相位P3中进行的处理的说明。
其次,参照图20所示的流程图详细说明在图19中的S1910的提交处理。
S2001:安全通信控制部501,指示许可发行部303进行提交处理。假设,该提交指示中包含正在通信中的用户终端103的终端ID401。接收了指示的许可发行部303,参照许可数据库301,检索和提交指示中包含的终端ID401相关联的信息中是否有待提交标记403的值为“1”的许可200。在检索结果为检出待提交标记403的值为“1”的许可200的情况下,进入S2002的处理。在未检出待提交标记403的值为“1”的许可200的情况下,进入S2003的处理。
S2002:许可发行部303,将在S2001检出的许可200的待提交标记403的值变更为“0”,并从发行可能次数402中减去1。
S2003:安全通信控制部501,将事务日志600的正在处理中事务有无601的值设定为“无”。
并且,在S2002说明了更新许可数据库301中包含的信息,但是,不仅限于此,在另外管理随着许可200的发行而需要更新的信息的情况下,可以更新该信息。
到上述为止,结束关于提交处理的说明。
其次,参照图21所示的流程图详细说明在图19中的S1911的应答消息生成、发送处理(重新发送)。
S2101:安全通信控制部501,向许可发行部303发送解密后的许可获得请求消息Mreq,来通知接收了重新发送了的许可获得请求。接受了通知的许可发行部303,参照许可数据库301,判断能否发行许可200。假设,许可发行部303,在通过许可获得请求消息Mreq请求发行的许可200的发行可能次数402为1以上的情况下,判断为可以发行许可200。
S2102:许可发行部303,生成许可请求响应Mres。并且假设,许可发行部303,在S2101判断为可以发行许可的情况下,生成包含许可200的许可请求响应消息Mres,在S2101判断为不能发行许可的情况下,生成通知不能发行许可的许可请求响应Mres。许可发行部303,向安全通信控制部501发送,所生成的许可请求响应Mres。
S2103:安全通信控制部501,使序号Seq、事务识别标记记忆指示TR、在S2102所生成的许可获得请求响应消息Mreq和与它们对应的散列值h连接,用会话密钥KS来将其加密,从而生成加密数据(公式8)。假设,安全通信控制部501,在事务日志600的回退与否603为“要”的情况下,在事务识别标记记忆指示TR设定“要记录”;在回退与否603为“不要”的情况下,在事务识别标记记忆指示TR设定“不要记录”。然后,安全通信控制部501,生成包含所生成的加密数据(公式8)的应答消息,通过通信部506向用户终端103发送该应答消息。
到上述为止,结束关于应答消息生成、发送处理(重新发送)的说明。
其次,参照图22所示的流程图说明在提交相位P4中进行的处理。
S2201:安全通信控制部901,使序号Seq、事务识别标记T、提交命令C和与它们对应的散列值h连接,用会话密钥KS来将其加密,从而生成加密数据(公式9)。假设,在事务识别标记T中设定事务日志1000的正在处理中事务识别标记602的值。
E(KS,Seq||T||C||h) (公式9)
S2202:安全通信控制部901,生成包含在S2201所生成的加密数据(公式9)的提交消息,通过通信部906向许可服务器101发送该提交消息。
S2203:安全通信控制部501,在接收提交消息的情况下,向加解密处理部505输入提交消息中包含的加密数据和会话密钥KS,并进行加密数据的解密。
S2204:安全通信控制部501,进行序号Seq和散列值h的验证。
S2205:在S2204的验证结果为验证失败的情况下,进入S2208的处理。在S2204的验证结果为验证成功的情况下,进入S2206的处理。
S2206:安全通信控制部501,执行所述的提交处理。
S2207:安全通信控制部501,使序号Seq、事务识别标记T、ACK命令A和与它们对应的散列值h连接,用会话密钥KS来将其加密,从而生成加密数据(公式10),生成包含所生成的数据(公式10)的ACK消息,通过通信部506向用户终端103发送该ACK消息。假设,在事务识别标记T中设定事务日志600的正在处理中事务识别标记602的值。
E(KS,Seq||T||A||h)(公式10)
S2208:安全通信控制部501,生成错误消息,通过通信部506向用户终端103发送该错误消息。
S2209:安全通信控制部901,确认从许可服务器101接收的消息是否是ACK消息。在从许可服务器101接收的消息是ACK消息的情况下,进入S2210的处理。在从许可服务器101接收的消息不是ACK消息的情况下,就结束处理。
S2210:安全通信控制部901,进行后述的ACK消息接收时处理。
到上述为止,结束关于在提交相位P4中进行的处理的说明。
其次,参照图23所示的流程图详细说明在图22中的S2210的ACK消息接收时处理。
S2301:安全通信控制部901,向加解密处理部905输入ACK消息中包含的加密数据和会话密钥KS,并进行加密数据的解密。
S2302:安全通信控制部901,进行序号Seq和散列值h的验证。
S2303:在S2302的验证结果为验证失败的情况下,就结束处理。在S2302的验证结果为验证成功的情况下,进入S2304的处理。
S2304:安全通信控制部901,从事务日志数据库902中删除关于正在处理中的事务的信息。
到上述为止,结束关于ACK消息接收时处理的说明。
其次,参照图24所示的流程图说明在认证、提交相位P5中进行的处理。
S2401:安全通信控制部901,比较从正在通信中的许可服务器101接收的服务器公开密钥证书中包含的服务器ID1001、和事务日志1000的服务器ID1001,确认正在通信中的许可服务器101是否是应该发送提交—响应消息的许可服务器101。在确认结果是从正在通信中的许可服务器101接收的服务器公开密钥证书中包含的服务器ID1001、和事务日志1000的服务器ID1001一致的情况下,进入S2402的处理。另一方面,在从正在通信中的许可服务器101接收的服务器公开密钥证书中包含的服务器ID1001、和事务日志1000的服务器ID1001不一致的情况下,就结束处理。
S2402:安全通信控制部901,使序号Seq、事务识别标记T和与它们对应的散列值h连接,用会话密钥KS来将其加密,从而生成加密数据(公式11)。
E(KS,Seq||T||h) (公式11)
在此,假设,在序号Seq中设定“0”。假设,序号Seq,以后,在同一会话中每次发送以及接收消息时,都加上1。而且假设,在事务识别标记T中设定事务日志1000的正在处理中事务识别标记602的值。
S2403:安全通信控制部901,生成提交—响应消息,通过通信部906向许可服务器101发送该提交—响应消息,该提交—响应消息中包含在S1415所生成的DHc、在S1417所生成的签名(公式5)和在S2402所生成的加密数据(公式11)。
S2404:许可服务器101的安全通信部302中包含的安全通信控制部501,在通过通信部506从用户终端103接收包含Diffie—Hellman参数DHc、签名数据以及加密数据的提交—响应消息的情况下,生成将在S1405所制作的随机数Rs和所述DHc结合的数据(公式7),向加解密处理部505输入所述生成数据(公式7)、所述签名数据以及终端公开密钥证书,进行签名数据的验证。
S2405:S2404中的签名验证的结果为验证失败的情况下,进入S2414的处理。在S2404中的签名验证的结果为验证成功的情况下,进入S2406的处理。
S2406:安全通信控制部501,根据提交—响应消息中包含的DHc、和在S1405所生成的Rs2,在加解密处理部505生成会话密钥KS。然后,向加解密处理部505输入响应—询问消息中包含的加密数据和所生成的会话密钥KS,进行加密数据的解密。
S2407:安全通信控制部501,进行序号Seq和散列值h的验证。
S2408:S2407中的验证的结果为验证失败的情况下,进入S2414的处理。在S2407中的验证的结果为验证成功的情况下,进入S2409的处理。
S2409:安全通信控制部501,确认事务日志600的正在处理中事务有无601的值。在确认结果是正在处理中事务有无601的值为“有”的情况下,进入S2410的处理。在正在处理中事务有无601的值为“无”的情况下,进入S2413的处理。
S2410:安全通信控制部501,确认事务日志600的正在处理中事务识别标记602的值、和在S2404所解密的加密数据中包含的事务识别标记T的值。在确认结果是事务识别标记T的值、和正在处理中事务识别标记602的值一致的情况下,进入S2412的处理。在事务识别标记T的值、和正在处理中事务识别标记602的值不一致的情况下,进入S2411的处理。
S2411:安全通信控制部501,执行所述的取消处理。
S2412:安全通信控制部501,执行所述的提交处理。
S2413:安全通信控制部501,使序号Seq、事务识别标记T、ACK命令A和与它们对应的散列值h连接,用会话密钥KS来将其加密,从而生成加密数据(公式10),生成包含所生成的数据(公式10)的ACK消息,通过通信部506向用户终端103发送该ACK消息。假设,在事务识别标记T中设定事务日志600的正在处理中事务识别标记602的值。
S2414:安全通信控制部501,生成错误消息,通过通信部506向用户终端103发送该错误消息。
S2415:安全通信控制部901,确认从许可服务器101接收的消息是否是ACK消息。在从许可服务器101接收的消息是ACK消息的情况下,进入S2416的处理。在从许可服务器101接收的消息不是ACK消息的情况下,就结束处理。
S2416:安全通信控制部901,执行所述的ACK消息接收时处理。
到上述为止,结束关于在认证、提交相位P5中进行的处理的说明。
其次,参照图25所示的流程图说明在许可服务器101检测到通信截断时的处理。
S2501:安全通信控制部501,确认事务日志600的正在处理中事务有无601的值,来确认在通信截断了的用户终端103间是否有正在处理中的事务。在确认结果是有正在处理中的事务的情况下,进入S2502的处理。另一方面,在没有正在处理中的事务的情况下,就结束处理。
S2502:安全通信控制部501,确认事务日志600的回退与否603的值,来确认在通信截断了的用户终端103间正在处理中的事务是否是需要回退的事务。在确认结果是为需要回退的事务的情况下,进入S2503的处理。在为不需要回退的事务的情况下,就结束处理。
S2503:安全通信控制部501,将通信截断了的用户终端103的终端ID401、和正在处理中事务识别标记602的组,记录在事务日志数据库502。
到上述为止,结束关于许可服务器101检测到通信截断时的处理的说明。
并且,在本实施例的说明中,在发行可能次数402为无期限的情况下,不需要回退、且在中事务识别标记记忆指示TR设定“不要记录”,但是,不仅限于此,可以按照其它的规定的规则来设定。例如,可以设想,在要发行的许可200的利用条件类别203为“无状态”的情况下,不需要回退、且在中事务识别标记记忆指示TR设定“不要记录”等。
而且,安全通信控制部501也可以,在对应来自用户终端103的消息而发送了消息的情况下,记忆该消息,并且,在判断为下次接收了的消息是重新发送了的前一个消息的情况下,重新发送所记忆的消息。
并且,虽然说明了,在许可数据库301中,许可200,和终端ID401相关联而被管理,但是,不仅限于此,可以和将用户β或用户终端103成组的域相关联。
而且,从用户终端103向许可服务器101发送的许可获得请求消息Mreq,也可以是为规定的工作(例如,再生请求或输出请求)的允许请求。具体而言,可以设想,许可服务器101作为对许可获得请求消息Mreq的响应,向用户终端发送内容密钥、可保持内容密钥的期限、控制信息等。可以设想,在来自用户终端103的允许请求是再生请求的情况下,所述控制信息是向各个端子的输出的信息(CCI(Copy Control Information)或Macrovision信号的ON/OFF的控制等),在来自用户终端103的允许请求是许可或内容的向记录介质等的输出请求的情况下,所述控制信息是接受输出方的利用条件(在写在DVD的情况下,向DVD上的CCI设定的值等)。
而且,许可服务器101,可以按照被用户终端103请求允许的工作的细节,来进行事务日志的记录与否判断。可以设想,例如,在再生请求的情况下,将事务日志的记录变为“不要”,在输出请求的情况下,将事务日志的记录变为“要”。
而且,如图30所示,用户终端103,在从许可服务器101接受不需要记录事务日志的通知的情况下,可以省略提交消息的发送。在该情况下,在分发在许可服务器101或用户终端103不需要记录事务日志的许可200的情况下,除了省略事务日志的重写次数以外,还可以省略提交消息以后的通信处理,从而可以减少通信次数。
并且,虽然说明了,在用户终端103中,可以使用从许可服务器101获得的许可200的定时是接收许可200的时刻,但是,不仅限于此,也可以在接收ACK消息的时刻可以使用。而且,也可以是,按照事务识别标记记忆指示TR的值来变更可以使用的定时。可以设想,例如,在事务识别标记记忆指示TR的值为“不要记录”的情况下,处于在接收许可200的时刻可以使用的状态,在事务识别标记记忆指示TR的值为“要记录”的情况下,如图31所示,在接收许可200(3102)时使许可200和事务日志相关联而处于锁定状态(不可使用的状态),在接收对提交消息(3103)的ACK消息(3104)后使许可200处于解锁状态(可以使用的状态)。在该情况下,在用户终端103侧,由于处于到接收ACK消息为止不可使用许可200的状态,因此即使从事务日志数据库902清除事务日志,许可200也不会被重复获得。因此,即使没有由安全命令的事务日志清除指示,也可以根据非安全的信息,并依据用户β的意思,从事务日志数据库902中清除事务日志。
而且,再者,在用户终端103中,作为从从事务日志数据库902中删除事务日志的其它方法的例子,可以设想,(1)以SAC上的命令,被规定的服务器指示后删除,(2)以SAC以外的通信(例如,HTTP等),得到对删除命令由规定的事业者签名的数据后删除等。在该情况下,可以设想,跟着事务日志的删除,被相关联而锁定的许可200也被删除。
而且,虽然说明了,对于各个消息中包含的散列值h,只将消息的一部分作为计算对象,但是,不仅限于此,也可以将消息全体作为计算对象。而且,在该情况下,也可以是,在用户终端103以及许可服务器101中,在确认接收了的消息是哪种消息时,预先进行散列值h的验证。
(其它变形例)
并且,虽然,根据所述实施例说明了本发明,但是,当然本发明不仅限于所述的实施例。本发明也包含如下情况。
(1)具体而言,所述的各个装置是由微型处理器、ROM、RAM、硬盘器件、显示器件、键盘、鼠标等构成的计算机系统。所述RAM或硬盘器件,记忆计算机程序。通过所述微型处理器根据所述计算机程序进行工作,从而各个装置实现其功能。在此,为了实现所述的功能,计算机程序是使多个指令码组合而构成的,所述多个指令码表示对计算机的指示。
(2)构成所述的各个装置的构成要素的一部分或全部,可以由一个系统LSI(Large Scale Integration:大规模集成电路)构成。系统LSI是一种超多功能LSI,将多个构成部集成在一个芯片上而被制造,具体而言,是包含微型处理器、ROM、RAM等而构成的计算机系统。所述RAM,记忆计算机程序。通过所述微型处理器根据所述计算机程序进行工作,从而系统LSI实现其功能。
(3)构成所述的各个装置的构成要素的一部分或全部,也可以由对各个装置可装卸的IC卡或单体的模块。所述IC卡或所述模块是,由微型处理器、ROM、RAM等构成的计算机系统。所述IC卡或所述模块,可以包含所述的超多功能LSI。通过所述微型处理器根据所述计算机程序进行工作,从而所述IC卡或所述模块实现其功能。该IC卡或该模块,可以具有反窜改性。
(4)本发明,也可以是如上所示的方法。而且,可以是由计算机实现这些方法的计算机程序,也可以是由所述计算机程序而成的数字信号。
而且,本发明,可以将所述计算机程序或所述数字信号记录到计算机可读的记录介质,例如是软盘、硬盘、CD—ROM、MO、DVD、DVD—RAM、BD(Blu—ray Disc)、半导体存储器等。而且,也可以是记录在这些记录介质的所述数字信号。
而且,本发明,可以将所述计算机程序或所述数字信号,通过以电信电路、无线或有线通信电路、互联网为代表的网络、数据广播等来传输。
而且,本发明可以是具备微型处理器和存储器的计算机系统,所述存储器记忆所述计算机程序,所述微型处理器根据所述计算机程序进行工作。
而且,本发明也可以,将所述程序或所述数字信号记录到所述记录介质而迁移,或者,将所述程序或所述数字信号通过所述网络等迁移,从而由独立的其它计算机系统实施。
(5)也可以将所述实施例以及所述变形例分别组合。
本发明涉及的许可管理装置以及方法,有用于由数字广播、CATV、互联网等的内容分发服务接收终端、或由DVD等包装媒体的内容分发服务接收终端等。