Sip消息的加密方法和加密通信系统的制作方法

文档序号:7959314阅读:354来源:国知局
专利名称:Sip消息的加密方法和加密通信系统的制作方法
技术领域
本发明涉及在服务器和客户端这种多个实体(entity)之间通信的SIP消息(message)的加密方法和加密通信系统。
背景技术
为了建立两个实体(例如通过装置或在装置上执行软件而具体实现的处理)之间的通信(IP电话等),广泛采用SIP(Session InitiationProtocol)协议(SIP的具体内容,例如参照IETF,RFC3261“SIPSession Initiation Protocol”IETF,2002年6月,URLhttp://www.ietf.org/rfc/rfc3261.txt(称为文献1))。
在SIP中,有被称为SIP服务器的服务器参与实体(以下也称为SIP客户端)之间的通信建立处理的结构。
此时,由于在SIP客户端和SIP服务器之间交换的通信消息(以下也称为SIP消息)被窃听,SIP消息的内容有可能被窃听、窜改。
因此,提出以下方法,利用作为加密通信协议的TLS(TransportLayer Security)和作为消息加密方法的S/MIME(Secure MultipurposeInternet Mail Extensions),在处理SIP消息的SIP功能部和进行SIP客户端与SIP服务器之间的通信的通信功能部之间设置保护SIP消息的加密功能部,从而保护SIP消息的机密性和安全性。
TLS是在WWW(World Wide Web)系统中为了确保传输的应用数据的机密性和安全性而广泛使用的加密通信协议(TLS的具体内容,例如参照IETF,RFC2246“The TLS Protocol Version 1.0”,IETF,1999年1月,URLhttp://www.ietf.org/rfc/rfc2246.txt(也称为文献2))。
在TLS中,在开始应用数据的发送之前,执行被称为HandshakeProtocol的协议,使用公开密钥证明书进行对通信对方的认证,协商加密通信中使用的加密算法和散列函数的类别及参数,根据进行协商的结果计算应用数据的加密使用的加密密钥。
另一方面,S/MIME是主要对电子邮件进行电子署名及进行加密使用的加密算法(S/MIME的具体内容,例如参照IETF,RFC1847“SecurityMultiparts for MIMEMultipart/Signed andMultipart/Encrypted”,IETF,1995年10月,URLhttp://www.ietf.org/rfc/rfc1847.txt(称为文献3))。
在S/MIME中,在利用发信人的秘密密钥对应用数据进行了电子署名后,使用随机数将该进行了电子署名的应用数据加密。并且,把上述加密的应用数据和利用发信对象的公开密钥加密的上述随机数作为一个消息发送(进行了加密和电子署名的数据格式的具体内容,例如,参照IETF,RFC3369“Cryptographic Message Syntax(CMS)”IETF,2002年8月,URLhttp://www.ietf.org/rfc/rfc3369.txt(称为文献4))。
TLS是以根据连接型协议即TCP而动作为前提设计的,所以如果是不连接型协议即UDP,则有可能不正确动作。并且,需要用于开始通信的协商。S/MIME不需要开始通信用的协商,另外根据不连接型协议即UDP而动作。另一方面,在利用S/MIME保护通信消息的机密性和安全性时,在通信消息的加密处理、解密处理、电子署名处理、电子署名验证中必须分别使用公开密钥加密。
即,现有技术为了保护SIP消息的机密性和安全性,在通信之前需要安全参数的协商,或者在每当进行SIP消息的收发处理时需要使用公开密钥加密,所以存在花费时间的问题。
并且,在SIP中,利用SIP消息中记述的被称为SIP-URI的SIP识别符确定SIP消息的发信人和收信人,并且在TLS和S/MIME中,使用公开密钥证明书确定通信对象。
因此,在利用TLS和S/MIME保护SIP消息时,为了保证使用公开密钥证明书确定的通信对象与使用SIP识别符确定的SIP消息的发信人一致,必须在公开密钥证明书中记述SIP识别符。即,由于通常不在公开密钥证明书中记述SIP识别符,所以存在为了实现SIP通信系统必须使用记述有SIP识别符的特殊的公开密钥证明书的问题。

发明内容
本发明的主要特征在于,在两个实体之间收发消息时,在该实体之间共享加密用的公用信息的情况下,发送利用该公用信息将通信消息加密后的加密数据,而在没有共享加密用的公用信息的情况下,利用发送对象实体的公开密钥将通信消息加密,发送利用发信人实体的秘密密钥电子署名后的加密数据。
并且,本发明的主要特征在于,在上述加密数据中包含公用信息,该公用信息在该加密数据以后的通信中,该加密数据的发送对象实体将消息加密或解密时使用。
另外,本发明的主要特征在于,管理发信人实体的公开密钥证明书和SIP识别符的对应关系,比较与附加到上述加密数据中的公开密钥证明书对应的SIP识别符、和SIP消息中的发信人的SIP识别符,确认发信人是否一致。
在不共享加密用的公用信息时,不需要共享公用信息的协商,具有能够缩短开始发送消息所需要的时间的效果。
并且,在共享加密用的公用信息时,具有可以快速实施通信消息的加密处理和解密处理的效果。
另外,具有不需要SIP通信用的特殊的公开密钥证明书(记述有SIP识别符的公开密钥证明书)的效果。
以下,使用


本发明的实施方式。另外,不能以此来限定本发明。
并且,以下说明对于SIP的适用示例,但除SIP以外,本发明也可以适用于对不需要保证消息的到达的通信协议和进行消息的再发送的通信协议保护数据的机密性和安全性的用途。

图1是表示实施例中的公开密钥加密消息形式的加密数据50的格式的例图。
图2是表示图6所示的用户终端装置10、应用服务器装置20、会话管理装置30的各自硬件结构的示例图。
图3是表示实施例中的客户应用101、服务器2、SIP功能部301的各个功能之间的动作程序的示例图。
图4是表示会话信息70的一例图。
图5是表示通信对象信息60的一例图。
图6是表示实施例中的加密SIP通信系统的系统结构的示例图。
图7是表示共用密钥加密消息的加密数据50的格式的示例图。
图8是表示将SIP消息加密时的加密功能部302的动作流程的示例图。
图9是表示通过通信功能部303接收加密数据50时的加密功能部302的动作流程的第一示例图。
图10是表示通过通信功能部303接收加密数据50时的加密功能部302的动作流程的第二示例图。
图11是表示在实施例2中,把用户1的SIP识别符61和用户终端装置10的IP地址的关联关系登录于会话管理装置30时、以及加密用共用密钥信息710或解密用共用密钥信息720失效时的动作流程的示例图。
图12是表示扩展发送用共用密钥字段5140的结构的示例图。
图13是表示实施例2中的加密功能部302从SIP功能部301接收SIP消息时的动作的图。
图14是表示错误通知消息形式的加密数据50的格式的示例图。
具体实施例方式
首先,说明适用了本发明的第一加密SIP通信系统。
图6是表示适用了本发明的第一加密SIP通信系统的系统结构的图。
实施例1的系统是通过网络0连接以下装置构成的,即,用户1使用的用户终端装置10、提供服务2的应用服务器装置20、通过SIP通信建立并控制用户终端装置10和应用服务器装置20之间的通信的会话管理装置30。
用户终端装置10、应用服务器装置20、会话管理装置30分别具有SIP功能部301、加密功能部302、通信功能部303、公开密钥证明书DB304、会话DB305。
另外,以后在特别表示在用户终端装置10中动作的SIP功能部301时表述为SIP功能部3011,表示在应用服务器装置20中动作的SIP功能部301时表述为SIP功能部3012,表示在会话管理装置30中动作的SIP功能部301时表述为SIP功能部3013等。
SIP功能部301具有以下功能,按照来自客户应用101和服务2的指示,生成SIP消息,并处理从在其他装置中动作的SIP功能部301通过加密功能部302接收的SIP消息。
加密功能部302具有以下功能,从SIP功能部301接收SIP消息并加工成加密数据50后,通过通信功能部303向发送对象的加密功能部302发送该加密数据50,或者通过通信功能部303从其他加密功能部302接收加密数据50,从该加密数据50中取出SIP消息并转发给SIP功能部301。
通信功能部303具有以下功能,把从客户应用101和服务2和加密功能部302等接收的数据,通过网络0发送给在其他装置上动作的通信功能部303,或者把从在其他装置上动作的通信功能部303接收的数据,转发给客户应用101和服务2和加密功能部302。
公开密钥证明书DB304是存储通信对象信息60的数据库,由加密功能部302管理,该通信对象信息60使SIP识别符61和加密功能部302处理加密数据50时使用的公开密钥证明书相关联。
另外,通信对象信息60针对某个通信对象只存在一个。例如,在本实施例中,会话管理装置30的加密功能部3023在会话管理装置30的公开密钥证明书DB3043中存储着用户1和用户2这两个通信对象信息60,以便与用户终端装置10的加密功能部3021及应用服务器装置20的加密功能部3023这两个加密功能部302进行通信。
图5是表示通信对象信息60的一例图,存储着对USER1@SIPDOMAIN.JP的具有SIP识别符61的通信对象发行的公开密钥证明书62。
会话DB305是存储会话信息70的数据库,由加密功能部302管理。
另外,在本实施例的系统中,把与某特定的通信对象的通信作为一个会话管理。会话信息70存储着在该会话中当前用于加密数据50的加密处理和解密处理的加密密钥信息等。因此,存储在会话DB305中的会话信息70,对某个通信对象只存在一个。例如,在本实施例中,会话管理装置30的加密功能部3023在会话管理装置30的会话DB3053中存储着两个会话信息70,以便与用户终端装置10的加密功能部3021及应用服务器装置20的加密功能部3023这两个加密通信功能部302进行通信。
图4是表示会话信息70的一例图。
会话信息70由以下部分构成为了确定通信对象而附加到加密数据50中的会话ID701;为了保证发送给该通信对象的加密数据50比过去发送的加密数据50新,而附加到加密数据50中的发送序列号码702;为了确认从该通信对象接收的加密数据50比过去接收的加密数据50新,而记录附加到加密数据50中的序列号码的接收序列号码703;记录了附加到所接收的加密数据50中的时间戳(stamp)的接收时间戳704;该通信对象的SIP识别符61;用于生成加密数据50的加密用共用密钥信息710;用于处理从该通信对象接收的加密数据50的解密用共用密钥信息720。
此处,加密用共用密钥信息710由以下部分构成在该会话信息70中唯一识别加密用共用密钥信息710的加密用共用密钥ID711;用于指定在该加密用共用密钥信息710中使用的加密算法的加密算法名称712;在该加密用共用密钥信息710中进行加密使用的加密密钥值713;用于指定在该加密用共用密钥信息710中使用的消息认证算法的HMAC(Keyed-Hashing for Message Authentication)等消息认证算法名称714;在该加密用共用密钥信息710中用于计算消息认证信息的保密(secret)值715;该加密用共用密钥信息710的有效期间716;以八位字节(octet)单位指定可以使用该加密用共用密钥信息710加密的数据数的累计的最大加密尺寸717;表示使用该加密用共用密钥信息710到现在为止加密了的数据的累计(单位为八位字节)的当前加密尺寸718。
并且,解密用共用密钥信息720由以下部分构成在该会话信息70中唯一识别解密用共用密钥信息720的解密用共用密钥ID721;用于指定在该解密用共用密钥信息720中使用的加密算法的加密算法名称722;在该解密用共用密钥信息720中进行解密处理使用的解密密钥值723;用于指定在该解密用共用密钥信息720中使用的消息认证算法的消息认证算法名称724;在该解密用共用密钥信息720中用于计算消息认证信息的保密值725;该解密用共用密钥信息720的有效期间726;以八位字节单位指定可以使用该解密用共用密钥信息720解密的数据数的累计的最大解密尺寸727;表示使用该解密用共用密钥信息720到此为止解密的数据的累计(单位为八位字节)的当前解密尺寸728。
会话信息70的各个信息通过管理该会话信息70的加密功能部302被更新,或者经由作为发送对象的加密功能部302通知后更新内容。
用户终端装置10除上述功能和DB以外,具有用于利用服务2的客户应用101和公开密钥对DB3071。
公开密钥对DB3071是存储秘密密钥811、公开密钥821、对用户1发行的公开密钥证明书831的数据库,由加密功能部3021管理。
同样,应用服务器装置20具有提供给用户1的服务2和公开密钥对DB3072。
公开密钥对DB3072是存储秘密密钥812、公开密钥822、对用户2发行的公开密钥证明书832的数据库,由加密功能部3022管理。
另外,会话管理装置30具有注册DB306和公开密钥对DB3073。
公开密钥对DB3073是存储秘密密钥813、公开密钥823、对会话管理装置30发行的公开密钥证明书833的数据库,由加密功能部3023管理。
注册DB306是存储IP地址信息80的数据库,由SIP功能部301管理,该IP地址信息80包括SIP识别符61和具有该SIP识别符61的SIP功能部301动作的装置的IP地址的关联关系,和该关联关系的有效期间。
以上是本实施例的加密SIP通信系统的系统结构。
另外,图6所示的用户终端装置10、应用服务器装置20、会话管理装置30如图2所示,各个装置可以通过在电子计算机中使CPU91执行安装在存储器92上的规定程序来实现,该电子计算机具有CPU91;存储器92;硬盘等外部存储装置93;从CD-ROM等可搬运的存储介质99读取信息的读取装置94;通过网络和LAN与其他装置进行通信的通信装置95;键盘和鼠标等输入装置96;监视器和打印机等输出装置97;进行这些各个装置之间的数据收发的接口98。
即,服务2、客户应用101、SIP功能部301、加密功能部302、通信功能部303可以通过由CPU91执行规定程序,作为处理进程来实现。
并且,公开密钥证明书DB304、会话DB305、注册DB306可以通过CPU91利用存储器92和外部存储装置93实现。
在这种电子计算机上实现上述各个装置所需要的规定程序,可以从电子计算机可以使用的存储介质99通过读取装置94导入,或者通过通信装置96经由网络0或在网络0传输的载波和数字信号这些电子计算机可以使用的通信介质,从其他服务器导入。
在导入时,可以暂且存储到外部存储装置93中后,由此处安装在存储器92上并被CPU91执行,或者不存储在外部存储装置93中,而直接安装在存储器92上并被CPU91执行。
下面,说明在本实施例的加密SIP系统中,通过通信功能部303在加密功能部302之间收发的加密数据50的格式。
本实施例的加密数据50的格式有三种公开密钥加密消息形式、共用密钥加密消息形式和错误通知消息形式。
首先,说明公开密钥加密消息形式的加密数据50的格式。
图1是表示公开密钥解密消息形式的加密数据50的格式的图。
公开密钥解密消息形式的加密数据50由标题部500和正文部510构成。
标题部500由内容类别标题字段5001、内容长度标题字段5002、会话ID标题字段5003、密钥ID标题字段5004和摘要值字段5005构成。
正文部510存储有基于公开密钥加密消息正文511的数据。
公开密钥加密消息正文511由收信人信息5100和加密内容信息5110构成。
收信人信息5100由证明书识别信息字段5101和保护对象加密密钥字段5102构成。
加密内容信息5110由以下部分构成加密算法名称字段5111;上位协议数据字段5112;署名人信息字段5113;摘要算法名称字段5114;摘要值字段5115;序列号码字段5116;署名时间字段5117;会话ID字段5118;发送用共用密钥信息字段5120;接收用共用密钥信息字段5130;署名用摘要算法名称字段5141;署名用加密算法名称字段5142;署名值字段5143。
发送用共用密钥信息字段5120由发送用共用密钥ID字段5121、有效期间字段5122、最大加密尺寸字段5123构成。
接收用共用密钥信息字段5130由以下部分构成接收用共用密钥ID字段5131;加密算法名称字段5132;密钥值字段5133;消息认证算法名称字段5134;消息认证用保密值字段5135;有效期间字段5136;最大解密尺寸字段5137。
以上是公开密钥加密消息形式的加密数据50的格式。
另外,公开密钥加密消息正文511也可以使用在文献4中定义的EnvelopedData项目(object)。
并且,从上位协议数据字段5112到署名值字段5143也可以使用在文献4中定义的SignedData项目。
下面,说明共用密钥加密消息形式的加密数据50的格式。
如图7所示,共用密钥加密消息形式的加密数据50的格式也由标题部500和正文部510构成。
标题部500与公开密钥加密消息形式的标题部500相同。而正文部510存储有共用密钥加密消息正文512,以代替公开密钥加密消息正文511。
共用密钥加密消息正文512由以下部分构成加密算法名称字段5201;消息认证算法名称字段5202;上位协议数据字段5203;序列号码字段5204;会话ID字段5205;发送用共用密钥字段5206;接收用共用密钥字段5207;消息认证值字段5208。
另外,发送用共用密钥字段5206的具体内容与发送用共用密钥字段5120相同,同样,接收用共用密钥字段5207的具体内容与接收用共用密钥字段5130相同。
另外,公开密钥加密消息正文511也可以使用在文献4中定义的EncryptedData项目的格式。此外,从消息认证算法名称字段5202到消息认证值字段5208,也可以使用在文献4中定义的AuthenticatiedData项目的格式。
下面,说明错误通知消息形式的加密数据50的格式。
如图14所示,错误通知消息形式的加密数据50的格式也由标题部500和正文部510构成。标题部500与公开密钥加密消息形式的标题部500相同。而正文部510存储有错误通知消息正文513,以代替公开密钥加密消息正文511。
错误通知消息正文513由以下部分构成NOTIFY(通知)消息字段5301;署名人信息字段5302;摘要算法名称字段5303;摘要值字段5304;序列号码字段5305;署名时间字段5306;会话ID字段5307;密钥ID字段5308;署名用摘要算法名称字段5309;署名用加密算法名称字段5310;署名值字段5311。
另外,错误通知消息正文513也可以使用在文献4中定义的SignedData项目的格式。
下面,说明本实施例的加密SIP通信系统的动作。
实施例1的系统由注册处理、通信建立处理、通信结束处理、注册注销处理这4个处理构成。
图3是概要表示实施例1的系统中的4个处理的客户应用101、服务2、SIP功能部301的各个功能之间的动作程序的图。
首先,说明在实施例1的系统中的注册处理中,用户终端装置10向会话管理装置30注册用户1的SIP识别符61和用户终端装置10的IP地址的关联关系时的、SIP功能部301的动作。
上述的注册处理是这样进行的,SIP功能部3011生成包括用户1的SIP识别符61和用户终端装置10的IP地址、及与它们的关联关系的有效期间有关的信息的SIP消息(REGISTER消息41)(S1),并通过加密功能部3011和加密功能部3023发送给SIP功能部3013(S2)。
接收到REGISTER消息41的SIP功能部3013,确认由加密功能部3023通知的会话信息70中记述的SIP识别符61是否与REGISTER消息41的发信人的SIP识别符61一致(S3)。
此处,在SIP识别符61一致时,处理该REGISTER消息41,并把REGISTER消息41中包含的用户1的SIP识别符61、用户终端装置10的IP地址和有效期间作为一个条目(entry),注册在注册DB306中(S3)。
此时,SIP功能部3013也可以设定与REGISTER消息41中包含的有效期间不同的有效期间,并注册在注册DB306中。
另一方面,在S3中,SIP识别符61不一致时,SIP功能部3013把该REGISTER消息41判断为非法的消息,中止处理。
然后,SIP功能部3013生成包括对REGISTER消息41的答复的SIP消息(答复消息42)(S3),并通过加密功能部3023和加密功能部3021发送给SIP功能部3011(S4)。
另外,在向注册DB306的注册成功时,答复消息42中包含通知对REGISTER消息41的处理成功的状态代码、和向注册DB306注册的有效期间的信息。在向注册DB306的注册失败时,答复消息42中包含通知对REGISTER消息41的处理失败的状态代码。
通过加密功能部3023和加密功能部3021接收到答复消息42的SIP功能部3011,确认答复消息42的状态代码,如果该状态代码是通知处理成功的状态代码,则保存答复消息42中包含的有效期间的信息(S5)。
以上是用户终端装置10和会话管理装置30中的SIP功能部301的动作。
另外,SIP功能部3013重复(例如定期)确认注册DB306的内容,在注册DB306中存在有效期间已过的条目时,删除该条目。
另一方面,SIP功能部3011重复(例如定期)确认所保存的有效期间,在有效期间已过时,再次进行上述的注册动作,由此在注册DB306中保持记录了用户1的SIP识别符61和用户终端装置10的IP地址的关联关系的条目。
并且,通过进行相同的动作,应用服务器装置20把服务2的SIP识别符61和用户终端装置20的IP地址的关联关系注册在会话管理装置30的注册DB306中。
下面,说明在实施例1的系统中,应用客户端101和服务2之间的通信建立处理中的应用客户端101、服务2和SIP功能部301的动作。
上述的通信建立处理是通过应用客户端101向SIP功能部3011请求建立对服务2的通信开始的(S6)。
被请求建立通信的SIP功能部3011生成包括作为发信人的用户1的SIP识别符61、而且包括作为发送对象的服务2的SIP识别符61的SIP消息(INVITE消息43)(S7),通过加密功能部3021发送给SIP功能部3013(S8)。
通过加密功能部3021和加密功能部3023接收到INVITE消息43的SIP功能部3013,确认由加密功能部3023通知的会话信息70中记述的SIP识别符61是否与INVITE消息43的发信人的SIP识别符61一致(S9)。在SIP识别符61一致时,处理该INVITE消息43,确认INVITE消息43的发送对象。
另一方面,在S9中,SIP识别符61不一致时,SIP功能部3013把该INVITE消息43判断为非法的消息,停止处理。
然后,SIP功能部3013从注册DB306检索作为INVITE消息43的发送对象的、服务2正在动作的应用服务器装置20的IP地址(S9),并通过加密功能部3023和加密功能部3022把INVITE消息43发送给SIP功能部3012(S10)。
接收到INVITE消息43的SIP功能部3012通知服务2有通信建立请求(S11),并且生成包括对INVITE消息43的答复的SIP消息(答复消息44)(S13),通过加密功能部3022发送给SIP功能部3013(S14)。
服务2从SIP功能部3012接收到有通信建立请求的通知时,进行开始通信的准备(S12)。
并且,在SIP功能部3012允许通信时,答复消息44中包含表示对INVITE消息43的处理成功的状态代码。在SIP功能部3012不允许通信时,答复消息44中包含表示对INVITE消息43的处理失败的状态代码。
通过加密功能部3022和加密功能部3023接收到答复消息44的SIP功能部3013,通过加密功能部3023和加密功能部3021把答复消息44发送给SIP功能部3011(S15)。
接收到答复消息44的SIP功能部3011确认答复消息44的状态代码,如果该状态代码是表示对INVITE消息43的处理成功的状态代码,则通知客户应用101允许服务2通信(S16)。
从SIP功能部3011接收到允许通信通知的客户应用101,建立与服务2的连接,开始通信(S17)。
以上是在客户应用101和服务2之间建立通信的动作。
另外,在建立通信时,也可以与上述相反,由服务2请求SIP功能部3012建立通信。该情况时,SIP功能部3012生成包括作为发信人的服务2的SIP识别符61、而且包括作为发送对象的用户1的SIP识别符61的INVITE消息43,并发送给会话管理装置30。
下面,说明在实施例1的系统中,客户应用101和服务2之间的通信结束处理中的客户应用101和服务2和SIP功能部301的动作。
上述的通信结束处理是通过客户应用101首先请求SIP功能部3011切断通信而开始的(S18)。
被请求切断通信的SIP功能部3011生成包括作为发信人的用户1的SIP识别符61、而且包括作为发送对象的服务2的SIP识别符61的SIP消息(BYE消息45)(S19),通过加密功能部3021和加密功能部3023发送给SIP功能部3013(S20)。
通过加密功能部3021和加密功能部3023接收到BYE消息45的SIP功能部3013,确认由加密功能部3023通知的会话信息70中记述的SIP识别符61是否与BYE消息45的发信人的SIP识别符61一致(S21)。在SIP识别符61一致时,确认该BYE消息45的发送对象(S21)。
另一方面,在S21中,SIP识别符61不一致时,SIP功能部3013把该BYE消息45判断为非法的消息,中止处理。
然后,SIP功能部3013从注册DB306检索作为BYE消息45的发送对象的、服务2正在动作的应用服务器装置20的IP地址(S21)。
并且,SIP功能部3013通过加密功能部3023和加密功能部3022把BYE消息45发送给SIP功能部3012(S22)。
接收到BYE消息45的SIP功能部3012通知服务2有切断通信请求(S23),服务2进行切断通信的准备(S24)。
然后,SIP功能部3012生成包括对BYE消息45的答复的SIP消息(答复消息46)(S25),并通过加密功能部3022和加密功能部3023发送给SIP功能部3013(S26)。
另外,在SIP功能部3012允许切断时,答复消息46中包含表示对BYE消息45的处理成功的状态代码。在SIP功能部3012不允许切断时,答复消息46中包含表示对BYE消息45的处理失败的状态代码。
接收到答复消息46的SIP功能部3013,通过加密功能部3023和加密功能部3021把答复消息46发送给SIP功能部3011(S27)。
接收到答复消息46的SIP功能部3011确认答复消息46的状态代码,如果该状态代码是表示对BYE消息45的处理成功的状态代码,则通知客户应用(client application)101允许服务2结束通信(S28)。
从SIP功能部3011接收到允许通信通知的客户应用101,切断与服务2的连接,结束通信(S29)。
以上是结束客户应用101和服务2的通信的动作。
另外,在结束通信时,也可以与上述相反,由服务2请求SIP功能部3012结束通信。该情况时,SIP功能部3012生成包括作为发信人的服务2的SIP识别符61、而且包括作为发送对象的用户1的SIP识别符61的BYE消息45,并发送给会话管理装置30。
下面,说明实施例1的系统中的注册注销处理中的SIP功能部301的动作。
此处,说明用户终端装置10注销注册在会话管理装置30中的用户1的SIP识别符61和用户终端装置10的IP地址的关联关系的情况。
上述的注销处理是通过SIP功能部3011生成把有效期间设定为0的RGISTER消息41开始的(S30)。
SIP功能部3011通过加密功能部3021和加密功能部3023把上述RGISTER消息41发送给SIP功能部3013(S31)。
接收到RGISTER消息41的SIP功能部3013,确认由加密功能部3023通知的会话信息70中记述的SIP识别符61是否与RGISTER消息41的发信人的SIP识别符61一致(S32)。
在SIP识别符61一致时,处理该RGISTER消息41,从注册DB306注销RGISTER消息41中包含的记述有用户1的SIP识别符61的条目。
另一方面,在S32中,SIP识别符61不一致时,SIP功能部3013把该RGISTER消息41判断为非法的消息,停止处理。
然后,SIP功能部3013生成对RGISTER消息41的答复消息42(S32),通过加密功能部3023和加密功能部3021发送给SIP功能部3011,并且指示加密功能部3023将上述会话信息70初始化(S33)。
接收到答复消息42的SIP功能部3011注销所保存的有效期间信息,并且指示加密功能部3021将上述会话信息70初始化(S34)。
以上是会话管理装置30和用户终端装置10中的SIP功能部301的动作。
通过进行相同的动作,应用服务器装置20将服务2的SIP识别符61和应用服务器装置20的IP地址的关联关系注销。
下面,说明实施例的系统中的加密功能部302的动作。
首先,在本实施例的系统起动时,加密功能部302按照下面所述将存在于会话DB305中的所有会话信息70初始化。
首先,对会话ID701设定文字串“NO_SESSION”,对发送序列号码702设定0,对接收序列号码703设定0,对接收时间戳704设定文字串“NOT_RECEIVED”,对SIP识别符61设定作为该会话信息70的对象的通信对象的SIP识别符61。
然后,将加密用共用密钥信息710初始化。即,对加密用共用密钥ID711设定文字串“NO_KEY”,对加密算法名称712设定文字串“NULL”,对加密密钥值713设定0,对消息认证算法名称714设定文字串“NULL”,对保密值715设定0,对有效期间716设定当前时刻的文字串表述方式,对最大加密尺寸717设定0,对当前加密尺寸718设定0。
然后,将解密用共用密钥信息720初始化。即,对解密用共用密钥ID721设定文字串“NO_KEY”,对加密算法名称722设定文字串“NULL”,对解密密钥值723设定0,对消息认证算法名称724设定文字串“NULL”,对保密值725设定0,对有效期间726设定当前时刻的文字串表述方式,对最大解密尺寸727设定0,对当前解密尺寸728设定0。
然后,所有会话信息70的初始化结束,加密功能部302通知SIP功能部301和通信功能部303初始化动作结束。
以上是本实施例的系统起动时的加密功能部302的动作。
下面,说明在图3中的SIP功能部301之间收发SIP消息时,SIP功能部301向加密功能部302转发SIP消息时的加密功能部302的动作。
图8是表示从SIP功能部301接收SIP消息,并将该SIP消息加密的加密功能部302的动作流程的图。
加密功能部302从SIP功能部301接收SIP消息,确认该SIP消息的发送对象,从会话DB305获取包括发送对象的SIP识别符61的会话信息70(步骤3000)。
然后,将该会话信息70的发送序列号码702进行增1计数(步骤3001)。
然后,确认该会话信息70的解密用共用密钥信息720是否有效(步骤3002)。另外,所谓解密用共用密钥信息720有效,指有效期限726在当前时间之后、而且当前解密尺寸728小于最大解密尺寸727的情况。
在判断该解密用共用密钥信息720有效时(步骤3002为是),转入步骤3004。
在判断该解密用共用密钥信息720无效时(步骤3002为否),更新解密用共用密钥信息720(步骤3003)。即,对解密用共用密钥ID721、解密用共用密钥值723、保密值725分别设定随机数。同时,对最大解密尺寸728设定0,对有效期间726设定空白文字串。并且,对加密算法名称722设定可以使用的共用密钥加密算法的名称,对消息认证算法名称724设定可以使用的消息认证算法的名称。
然后,加密功能部302确认是否存在有效的加密用共用密钥信息710(步骤3004)。所谓加密用共用密钥信息710有效,指有效期限716在当前时间之后、而且当前加密尺寸718小于最大加密尺寸717的情况。在本实施例中,加密用共用密钥信息710由发送对象通知,所以如果加密用共用密钥信息710有效,则判断为可以与发送对象共享有效的会话信息70的加密用共用密钥信息710。
在判断为存在有效的加密用共用密钥信息720时(步骤3004为是),转入步骤3021。
在判断为加密用共用密钥信息710无效时(步骤3004为否),加密功能部302从公开密钥证明书DB304获取包括发送对象的SIP识别符61的通信对象信息60(步骤3011),转入步骤3012。
在不存在包括发送对象的SIP识别符61的通信对象信息60时(步骤3012为否),加密功能部302通知SIP功能部301出现错误,并结束处理(步骤3031)。
在存在通信对象信息60时(步骤3012为是),从该通信对象信息60获取发送对象的公开密钥证明书62,生成公开密钥加密消息形式的加密数据50(步骤3013)。
以下,说明在步骤3013,加密功能部302生成公开密钥加密消息形式的加密数据50时的动作。
首先,加密功能部302对上位协议数据字段5112设定从SIP功能部301获取的SIP消息。
然后,加密功能部302对署名人信息字段5113设定公开密钥证明书83。
然后,对摘要值字段5115设定上述SIP消息的摘要值,并且对摘要算法名称字段5114设定用于计算该摘要值的算法名称。
然后,对序列号码字段5116设定发送序列号码702。
然后,对署名时间字段5141设定当前时间,对会话ID字段5118设定会话ID701。
然后,对发送用共用密钥ID字段5121设定加密用共用密钥ID711,对有效期间字段511设定有效期间716,对最大加密尺寸字段5123设定最大加密尺寸717。
然后,对接收用共用密钥ID字段5131设定解密用共用密钥ID721,对加密算法名称字段5132设定加密算法名称722,对密钥值字段5133设定解密密钥值723,对消息认证算法名称字段5134设定消息认证算法名称724,对消息认证用保密值字段5135设定保密值725,对有效期间字段5136设定有效期间726,对最大解密尺寸字段5127设定最大解密尺寸727。
然后,加密功能部302把从摘要值字段5115到接收用共用密钥信息字段5130作为一系列的程序数据,计算署名用摘要值,对署名用摘要算法名称字段5141设定计算时使用的摘要算法的名称。
另外,生成利用秘密密钥81将该署名用摘要值加密的署名值,并设定到署名值字段5143中,并且对署名用加密算法名称字段5142设定加密时使用的公开密钥算法的名称。
然后,加密功能部302生成随机数,利用该随机数将上位协议数据字段5112至署名值字段5143加密,并且把加密时使用的加密算法的名称记录在加密算法名称字段5111中。
然后,加密功能部302对证明书识别信息字段5101设定发送对象的公开密钥证明书62,并且对保护对象加密密钥字段5102设定利用上述公开密钥证明书62中包含的公开密钥将上述随机数加密后的值。
另外,加密功能部302把用于表示该加密数据50是公开密钥加密消息形式的文字串“START”存储在内容类别标题字段5001中。把正文部510的长度存储在内容长度标题字段5002中。对会话ID标题字段5003设定会话信息70的会话ID701。对密钥ID标题字段5004不做任何设定。对摘要值字段5005设定正文部510的摘要值和计算该摘要值时使用的摘要算法的识别信息。
以上是加密功能部302生成公开密钥加密消息形式的加密数据50时的动作。
按照上面所述生成加密数据50的加密功能部302,委托通信功能部303发送该加密数据50(步骤3014),并结束处理。
另一方面,在步骤3004,在判断为加密用共用密钥信息710有效时,加密功能部302在步骤3021,生成按照共用密钥加密消息格式52将SIP消息加密的加密数据50。
以下,说明加密功能部302生成共用密钥加密消息形式的加密数据50时的动作。
首先,加密功能部302对加密算法名称字段5201设定加密算法名称712,对消息认证算法名称字段5202设定消息认证算法名称714,对上位协议数据字段5203设定从SIP功能部301接收的SIP消息,对会话ID字段5205设定会话ID701。
然后,对发送用共用密钥字段5206设定与发送用共用密钥字段5120相同的值。
然后,对接收用共用密钥字段5207设定与接收用共用密钥字段5130相同的值。
然后,使用消息认证算法名称714的算法和保密值715,把从上位协议数据字段5203到接收用共用密钥字段5207的一系列的程序数据作为对象,计算消息认证值,并存储在消息认证值字段5208中。
另外,加密功能部302把表示该加密数据50是共用密钥加密消息形式的文字串“CONTINUE”存储在内容类别标题字段5001中。把正文部510的长度存储在内容长度标题字段5002中。对会话ID标题字段5003设定会话ID701。对密钥ID标题字段5004设定加密用共用密钥ID711。对摘要值字段5005设定正文部510的摘要值和计算该摘要值时使用的摘要算法的识别信息。
以上是加密功能部302生成共用密钥加密消息形式的加密数据50时的动作。
按照上面所述生成加密数据50的加密功能部302,向当前加密尺寸718加算把从消息认证算法名称字段5202到消息认证值字段5209视为一系列的程序数据时的尺寸(步骤3022),执行步骤3014以后的处理。
以上是从SIP功能部301获取SIP消息时的加密功能部302的动作。
下面,说明在图3中的SIP功能部301之间收发SIP消息时,通过通信功能部303接收加密数据50时的加密功能部302的动作。
图9和图10是表示通过通信功能部303接收加密数据50时的加密功能部302的动作流程的图。
首先,加密功能部302从通信功能部303接收加密数据50,计算正文部510的摘要值,并确认与存储在摘要值字段5005中的值是否一致(步骤4001)。
此处,如果摘要值不一致(步骤4001为否),判断为产生传输错误,并结束处理。
另一方面,在摘要值一致时(步骤4001为是),在步骤4002确认该加密数据50的内容标题字段5001。如果内容标题字段5001的值是“START”,则加密功能部302判断该加密数据50是公开密钥加密消息形式,执行图10所示的以下处理。
首先,加密功能部302利用公开密钥82解密保护对象加密密钥字段5102的值,获取保护对象加密密钥(步骤4100)。
然后,在步骤4101,使用该保护对象加密密钥,将上位协议数据字段5112至署名值字段5143解密。
加密功能部302把从摘要值字段5115到接收用共用密钥信息字段5130作为一系列的程序数据,计算署名验证用摘要值(步骤4102)。
确认使用存储在署名人信息字段5113中的公开密钥证明书62的公开密钥将署名值字段5114的值解密后的值,与上述署名验证用摘要值一致,以及摘要值字段5115的值,与使用由摘要算法名称字段5114指定的算法计算上位协议数据字段5112的值后的摘要值一致(步骤4103)。
在步骤4103为否、即任何一方不一致时,判断为署名验证失败、即该加密数据50被窜改,通知SIP功能部301产生错误,并结束处理(步骤4206)。
另一方面,在步骤4103为是、即两方都一致时,验证存储在署名人信息字段5113中的公开密钥证明书62是否有效(步骤4104)。
此处,在判断为公开密钥证明书62无效时(步骤4104为否),生成错误通知消息形式的加密数据50,以便通知发信人证明书验证失败(步骤4131)。
以下,说明为了通知证明书验证失败而生成错误通知消息形式的加密数据50时的加密功能部302的更具体的动作。
首先,加密功能部302对NOTIFY(通知)消息字段5301设定文字串“AUTH_FAILURE”和公开密钥证明书62的组,以表示公开密钥证明书62的验证、即发送对象的验证失败。
然后,加密功能部302对署名人信息字段5302设定自身的公开密钥证明书。
然后,对摘要值字段5304设定上述NOTIFY(通知)消息字段5301的摘要值,并且对摘要算法名称字段5303设定计算该摘要值时使用的算法名称。
然后,对序列号码字段5305设定发送序列号码702。
然后,对署名时间字段5306设定当前时间,对会话ID字段5307设定会话ID701。
然后,加密功能部302对密钥ID字段5308设定空白文字串。
然后,加密功能部302把从摘要值字段5304到密钥ID字段5308作为一系列的程序数据,计算署名用摘要值,对署名用摘要算法名称字段5309设定计算时使用的摘要算法的名称。
另外,生成利用自身的秘密密钥将该署名用摘要值加密的署名值,并设定到署名值字段5311中,并且对署名用加密算法名称字段5310设定加密时使用的公开密钥算法的名称。
另外,加密功能部302把表示该加密数据50是错误通知消息形式的文字串“NOTIFY”存储在内容类别标题字段5001中。把正文部510的长度存储在内容长度标题字段5002中。对会话ID标题字段5003设定会话信息70的会话ID701。对密钥ID标题字段5004不做任何设定。对摘要值字段5005设定正文部510的摘要值和用于计算该摘要值的摘要算法的识别信息。
以上是为了通知证明书验证失败而生成错误通知消息形式的加密数据50时的加密功能部302的更具体的动作。
生成了上述的错误通知消息形式的加密数据50的加密功能部302,通过通信功能部303把该加密数据50回复给发送对象(步骤4132),并结束处理。
另一方面,在步骤4104判断为公开密钥证明书62有效时(步骤4104为是),从公开密钥证明书DB304中检索是否存在与存储在署名人信息字段5113中的公开密钥证明书62对应的SIP识别符61(步骤4105)。
此处,在公开密钥证明书DB304中不存在SIP识别符61时(步骤4105为否),结束处理。
另一方面,在公开密钥证明书DB304中存在SIP识别符61时(步骤4105为是),从会话DB305中检索对应该SIP识别符61的会话信息70(步骤4106)。
然后,加密功能部302确认会话ID字段5118的值(步骤4107)。
在步骤4107,在会话ID字段的值是“NO_SESSION”时,加密功能部302确认署名时间字段5306的值是否是从当前时间起预先确定的范围内的时间(步骤4108)。
在步骤4108,在署名时间是从当前时间起预先确定的范围以前的时间时,判断为接收了旧消息,并结束处理。
另一方面,在步骤4108,在署名时间是从当前时间起预先确定的范围以后的时间时,加密功能部302判断需要与通信对方的时间同步,生成错误通知消息形式的加密数据50,并通过通信功能部303回复通信对方,以便在步骤4131请求时间同步(步骤4132),并结束处理。
另外,用于请求时间同步的错误通知消息形式的加密数据50,除了在NOTIFY(通知)消息字段5301中存储有文字串“TIME_ALIGNMENT_REQUIRED”外,其他与用于通知证明书验证失败的错误通知消息形式的加密数据50相同。
另一方面,在步骤4108中,在署名时间包含于从当前时间起预先确定的范围内时,加密功能部302确认署名时间字段5306的值是否比接收时间戳704新(步骤4109)。
此处,在署名时间字段5306的值不如接收时间戳704新时(步骤4109为否),判断为接收了旧消息,并结束处理。
另一方面,在署名时间字段5306的值比接收时间戳704新时(步骤4109为是),加密功能部302生成与存储在会话DB305中的所有会话信息70不同的新会话ID(步骤4110)。
然后,加密功能部302把接收序列号码703更新为序列号码字段5116的值,把接收时间戳704更新为署名时间字段5306的值,把有效期间726更新为有效期间字段5122的值,把最大解密尺寸727更新为最大加密尺寸字段5123的值(步骤4112)。
并且,加密功能部302在步骤4110生成新会话ID时,把会话ID701更新为该新会话ID,在除此以外的情况下,把会话ID701更新为会话ID字段5118的值。
然后,加密功能部302比较接收用共用密钥ID字段5131的值和加密用共用密钥ID711,确认是否一致(步骤4113)。
此处,在数值一致时(步骤4113为否),不需要更新共用密钥,所以进行步骤4115的处理。
另一方面,在数值不一致时(步骤4113为是),需要更新共用密钥,所以在步骤4114,把加密算法712更新为加密算法名称字段5132的值,把加密密钥值713更新为密钥值字段5133的值,把消息认证算法名称字段714更新为消息认证算法名称字段5134的值,把保密值715更新为消息认证用保密值字段5135的值。并且,向当前时间加算预先确定的期间,计算失效时间,并设定到有效期间716中,对最大加密尺寸717设定预先确定的尺寸。
然后,加密功能部302把上位协议数据字段5112的值作为SIP消息通知SIP功能部301(步骤4115),并结束处理。
另外,此时,加密功能部302把上述SIP消息和上述会话信息70一起通知SIP功能部301。另一方面,在步骤4107中,如果会话ID字段5118的值是“NO_SESSION”以外的值,则加密功能部302检索该会话ID字段5118的值、和在步骤4106检索的会话信息70的会话ID701是否相同(步骤4121)。
此处,如果数值相同,加密功能部302执行步骤4122以后的处理。
即,加密功能部302确认序列号码字段5116的值正常(例如,比接收序列号码703大)(步骤4122)。
此处,在序列号码字段5116的值不正常时(例如,不比接收序列号码703大)(步骤4122为否),判断为接收了旧消息,并结束处理。
另一方面,在步骤4122中,序列号码字段5116的值正常时(例如,比接收序列号码703大)(步骤4122为是),加密功能部302比较发送用共用密钥ID字段5231和解密用共用密钥ID722,确认是否一致(步骤4123)。
此处,如果数值不一致(步骤4123为否),则结束处理。在步骤4123为是时,则执行步骤4112以后的处理。
另一方面,在步骤4121中,如果数值不同时,加密功能部302检索会话DB307,确认是否存在其他具有相同值的会话ID701的会话信息70(步骤4130)。
在步骤4130中存在会话信息70时,加密功能部302判断需要确认署名时间及生成新会话ID,执行步骤4108以后的处理。
另一方面,在步骤4130中不存在会话信息70时,加密功能部302执行步骤4112以后的处理。
以上是在步骤4002判断为该加密数据50是公开密钥加密消息形式时的动作。
另一方面,在图9的步骤4002中,如果内容标题字段5001的值是“CONTINUE”,则加密功能部302判断该加密数据50是共用密钥加密消息形式,并执行以下处理。
首先,加密功能部302从会话DB305中检索具有与会话ID标题字段5003的值相同的会话ID701的会话信息70(步骤4003)。
此处,如果不存在会话信息70,加密功能部302判断为需要进行发送对象的再认证,在图10的步骤4131生成请求认证的错误通知消息形式的加密数据50,通过通信功能部303回复给通信对象(步骤4132),并结束处理。
另外,请求认证的错误通知消息形式的加密数据50,在NOTIFY(通知)消息字段5301中存储有文字串“AUTH_REQUIRED”,而且对会话ID标题字段5003和会话ID字段5307设定上述公开密钥加密消息形式的会话ID标题字段5003的值,另外,对密钥ID标题字段5004和密钥ID字段5308设定上述公开密钥加密消息形式的密钥ID字段5004的值,除此以外和用于通知证明书验证失败的错误通知消息形式的加密数据50相同。
另一方面,在步骤4003中存在会话信息70时,确认密钥ID标题字段5004的值和存储在该会话信息中的解密用共用密钥ID721一致(步骤4004)。
此处,如果数值不一致,加密功能部302判断需要进行通信对象的再认证,在图10的步骤4131生成请求认证的错误通知格式形式的加密数据50,并通过通信功能部303回复给通信对象(步骤4132),并结束处理。
另一方面,在步骤4004中数值一致时,使用解密密钥值723将正文部解密,确认正确地进行了解密(步骤4005)。
此处,如果不能正确解密,加密功能部302判断需要进行通信对象的再认证,在步骤4131生成请求认证的错误通知格式形式的加密数据50,并通过通信功能部303回复给通信对象(步骤4132),并结束处理。
另一方面,在步骤4005正确地进行了解密时,确认序列号码字段5204的值大于接收序列号码703(步骤4006)。
此处,如果序列号码字段5204的值不大,则判断为接收了旧消息,并结束处理。
另一方面,在步骤4006中,如果序列号码字段5204的值大,则在步骤4007更新会话信息70。
即,对接收序列号码703设定序列号码字段5204的值,对解密用共用密钥信息720的有效期间726设定有效期限字段5122的值,对最大解密尺寸727设定最大加密尺寸字段5123的值,并且向当前解密尺寸728加算把从消息认证算法名称字段5202到消息认证值字段5209视为一系列的程序数据时的尺寸。
然后,加密功能部302确认接收用共用密钥ID字段5131的值是否和加密用共用密钥ID711相同(步骤4008)。
此处,如果与加密用共用密钥ID711相同,则判断不需要更新加密用共用密钥信息ID710,执行步骤4010。
另一方面,在步骤4008如果是与加密用共用密钥ID711不同的值,则判断为需要更新加密用共用密钥ID信息710,并更新会话信息70。
即,把加密算法712更新为加密算法名称字段5132的值,把加密密钥值713更新为密钥值字段5133的值,把消息认证算法名称字段714更新为消息认证算法名称字段5134的值,把保密值715更新为消息认证用保密值字段5135的值。并且,对于有效期间716,在当前时间加算预先设定的期间,计算失效时间,设定到有效期间716中,对最大加密尺寸717设定预先确定的尺寸。
然后,加密功能部302在步骤4010,把上位协议数据字段5112的值作为SIP消息通知SIP功能部301,并结束处理。
另外,此时,加密功能部302把上述SIP消息和上述会话信息70一起通知SIP功能部301。以上是在步骤4002判断为该加密数据50是共用密钥加密消息形式时的动作。
另一方面,在步骤4002中内容标题字段5001的值是“NOTIFY”时,加密功能部302判断该加密数据50是错误通知消息形式,并执行以下处理。
首先,加密功能部302把摘要值字段5304到密钥ID字段5308作为一系列的程序数据,计算署名验证用摘要值(步骤4200)。
然后,确认该署名验证用摘要值、与利用存储在署名人信息字段5302中的公开密钥证明书62的公开密钥将署名值字段5311的值解密得到的数据一致,确认摘要值字段5304的值、与利用由摘要算法名称字段5303指定的算法计算NOTIFY(通知)消息字段5301的值后的摘要值一致(步骤4201)。
此处,在任何一方不一致时,判断为署名验证失败、即是被窜改的消息,通知SIP功能部301产生错误,并结束处理(步骤4206)。
另一方面,如果两方一致,则验证上述公开密钥证明书62是否有效(步骤4202)。
此处,在上述公开密钥证明书62无效时,判断为可能是被窜改的消息,通知SIP功能部301产生错误,并结束处理(步骤4206)。
另一方面,在上述公开密钥证明书62有效时,确认署名时间字段5306的值是从当前时间起的一定范围内的时间(步骤4203)。
此处,如果署名时间字段5306的值是范围外的时间,则确认NOTIFY(通知)消息字段5301的值是否是“TIME_ALIGNMENT_REQUIRED”(步骤4211)。
此处,如果NOTIFY(通知)消息字段5301的值是“TIME_ALIGNMENT_REQUIRED”以外的值,则判断为接收了旧消息,并结束处理。
另一方面,在步骤4211中,如果NOTIFY(通知)消息字段5301的值是“TIME_ALIGNMENT_REQUIRED”,则通知SIP功能部301产生了时间不同步的错误(步骤4206),并结束处理。
另一方面,在步骤4203中,如果署名时间字段5306的值是从当前时间起的一定范围内的时间时,则从公开密钥证明书DB304中检索与存储在署名人信息字段5113中的公开密钥证明书62对应的SIP识别符61,把与该SIP识别符61对应的会话信息70中包含的加密用公用信息710和解密用公用信息720更新为初始状态(步骤4204)。
然后,加密功能部302在步骤4205确认NOTIFY(通知)消息字段5301的值。
此处,如果NOTIFY(通知)消息字段5301的值是“AUTH_REQUIRED”,则直接结束处理。
另一方面,如果NOTIFY(通知)消息字段5301的值是“AUTH_REQUIRED,”以外的值,则通知产生错误,并结束处理(步骤4206)。
以上是在步骤4002判断为该加密数据50是错误通知消息形式时的动作。
以上是通过通信功能部303接收了加密数据50时的加密功能部302的动作。
在本实施例的系统中,在各个装置之间收发的数据共享了加密用的公用信息时,使用共用密钥加密消息形式的加密数据50,所以不需要电子署名验证和证明书的验证,能够快速进行处理。
另一方面,在不能共享加密用的公用信息时,使用公开密钥加密消息形式的加密数据50,所以不进行事前协商即可开始通信。
另外,在本实施例的系统中,用于生成共用密钥加密消息形式的加密数据50的公用信息(加密用公用信息710),由接收该加密数据50的一方事前生成并通知。因此,通过确认会话信息70中存在有效的加密用公用信息710,可以判断加密用的公用信息实现共享。
另外,在本实施例的系统中,加密用公用信息710由接收该加密数据50的一方生成并通知,该加密用共用密钥信息710的有效期间716和最大加密尺寸718由生成该加密数据50的一方确定并通知。因此,即使对方通知了包括安全性强度较弱的加密算法和密钥的加密用公用信息710,通过缩短有效期限和减小可加密尺寸,也能够提高安全性强度。
另外,在本实施例中,对用户1和服务2和会话管理装置30发行SIP识别符61、公开密钥证明书62和公开密钥证明书83,但本发明不限于此。例如,也可以对用户终端装置10和应用服务器装置20发行,还可以对服务2的提供者发行。
并且,在本实施例中,公开密钥证明书DB304存在于加密功能部302中,但本发明不限于此。例如,也可以在数据库装置中配置公开密钥证明书DB304,通过LAN或网络0进行存取。
另外,在本实施例中,在加密算法名称712和消息认证算法名称714、加密算法名称722和消息认证算法名称724中,以文字串方式保存算法的名称,但本发明不限于此。例如,也可以像OID那样利用可以唯一识别的信息保存。
同样,在有效期间716(或有效期间726)中,以文字串方式保存该加密用共用密钥信息710(该解密用共用密钥信息720)失效的时间,但本发明不限于此。例如,也可以利用数值保存从某时刻起的经过时间。
并且,有效期间字段5122和有效期间字段5136也以文字串方式保存对应的加密用共用密钥信息710和解密用共用密钥信息720失效的时间,但本发明不限于此。例如,也可以在设定有效期间字段5122和有效期间字段5136时,计算失效时间和当前时间的差分,并设定该值。
此时,接收侧的加密功能部302向当前时间加算有效期间字段5122和有效期间字段5136的值,计算失效时间。
并且,会话DB305存在于加密功能部302中,但本发明不限于此。例如,也可以把会话DB305配置在数据库装置中,通过LAN或网络0进行存取。
并且,在本实施例中,注册DB306存在于SIP功能部301中,但本发明不限于此。例如,也可以把注册DB306存储在数据库装置中,通过LAN或网络0进行存取。
并且,在本发明中,在用于通知公开密钥证明书的验证失败的错误通知消息形式的加密数据50中,对NOTIFY(通知)消息字段5301设定文字串“AUTH_FAILURE”和公开密钥证明书62的组,但本发明不限于此。例如,也可以设定该公开密钥证明书的摘要值来代替公开密钥证明书62。
并且,在本实施例中,对请求时间同步的错误通知消息形式的加密数据50的署名时间字段5306,设定生成该加密数据50的时间,但本发明不限于此。例如,也可以对署名时间字段5306设定成为生成该加密数据50的原因的、公开密钥加密数据形式的加密数据50中的署名时间字段5306的值。
并且,在本实施例中,会话信息70具有唯一的加密用共用密钥信息710,但本发明不限于此。也可以把多个加密用共用密钥信息710作为列表(list)管理。
并且,在本实施例中,会话信息70具有唯一的加密用共用密钥信息720,但本发明不限于此。也可以把多个加密用共用密钥信息720作为列表管理。
首先,说明适用了本发明的第二加密SIP通信系统的实施例。
实施例2的系统结构与实施例1类似。
但是,在实施例2中,SIP功能部301在发送REGISTER消息41时一定生成公开密钥加密消息形式的加密数据50,而且在发送REGISTER消息41以外的SIP消息(例如INVITE消息43)时,一定生成共用密钥加密消息形式的加密数据50。
因此,加密功能部302还具有更新存储在会话DB305中的会话信息70的功能,而且SIP功能部301具有指示加密功能部302更新会话信息70的功能。
并且,会话管理装置30的加密功能部3023具有不仅生成解密用公用信息720,而且也生成加密用公用信息710的功能。
另一方面,用户终端装置10的加密功能部3021和应用服务器20的加密功能部3022,被删除了生成解密用公用信息720的功能。
下面,说明实施例2的各个功能部的动作。
图11表示在实施例2中,用户终端装置10把用户1的SIP识别符61和用户终端装置10的IP地址的关联关系注册在会话管理装置30中时,以及在会话DB3051中管理的会话管理装置30的会话信息70中的加密用共用密钥信息710或解密用共用密钥信息720失效时,SIP功能部301和加密功能部302的动作步骤。
首先,在实施例2中,说明用户终端装置10把用户1的SIP识别符61和用户终端装置10的IP地址的关联关系注册在会话管理装置30中的动作。
在本实施例中,首先,SIP功能部3011指示加密功能部3021将与会话管理装置30对应的会话信息70初始化(S51)。
从SIP功能部3011接收到指示的加密功能部3021,从会话DB3051中检索与上述会话管理装置30对应的会话信息70,将该会话信息70的加密用共用密钥信息710和解密用共用密钥信息720初始化(S52)。
然后,SIP功能部3011生成REGISTER消息41(S53),通过加密功能部3021和加密功能部3023把该REGISTER消息41发送给SIP功能部3013(S54)。
然后,从SIP功能部3011接收到REGISTER消息41的加密功能部3021,按照图13所示的动作步骤,生成包括REGISTER消息41的公开密钥加密消息形式的加密数据50(S55),通过通信功能部303发送给加密功能部3023(S56)。
以下,说明图13所示的动作。
图13是表示本实施例中的加密功能部302从SIP功能部301接收到SIP消息时的动作的图。
从SIP功能部301接收到SIP消息的加密功能部302,首先检索发送对象的会话信息70(步骤6000)。
然后,加密功能部302将发送序列号码加1(步骤6001)。
然后,加密功能部302确认会话信息70的加密用共用密钥信息710是否有效(步骤6001)。
此处,在加密用共用密钥信息710有效时,执行步骤6021以后的处理。这与图8中的步骤3021以后的动作相同,所以省略说明。
另一方面,在加密用共用密钥信息710无效时,在步骤6011,检索发送对象的公开密钥证明书62。
此处,在不存在公开密钥证明书62时,通知SIP功能部301出现错误,并结束处理(步骤6031)。
另一方面,在存在公开密钥证明书62时,然后,确认该加密功能部302是否具有生成公用信息的功能。
此处,在不具有生成公用信息的功能时,执行步骤6016以后的处理。
另一方面,在具有生成公用信息的功能时,在步骤6014,更新加密用共用密钥信息710。即,对加密用共用密钥ID711、加密密钥值713和保密值715分别设定新生成的随机数,而且对最大加密尺寸718设定0,对有效期间716设定空白文字串。同时,对加密算法名称712设定可以使用的共用密钥加密算法的名称,对消息认证算法名称714设定可以使用的消息认证算法的名称。并且,向当前时间加算预先确定的期间,计算失效时间,并设定到有效期间716中,对最大加密尺寸717设定预先确定的尺寸。
另外,在步骤6015更新解密用公用信息720。即,对解密用共用密钥ID721、解密密钥值723和保密值725分别设定新生成的随机数,而且对最大解密尺寸728设定0,对有效期间726设定空白文字串。同时,对加密算法名称722设定可以使用的共用密钥加密算法的名称,对消息认证算法名称724设定可以使用的消息认证算法的名称。并且,向当前时间加算预先确定的期间,计算失效时间,并设定到有效期间726中,对最大加密尺寸727设定预先确定的尺寸。
然后,加密功能部302执行步骤6016。
另外,步骤6016以后的处理与图8的步骤3013以后的处理相同,所以省略说明。
以上是本实施例的加密功能部302从SIP功能部301接收到SIP消息时的动作。
另外,在本实施例中生成的公开密钥加密消息形式的加密数据50中包含扩展发送用共用密钥字段5140,以代替发送用共用密钥字段5120。
图12是表示扩展发送用共用密钥字段5140的结构的图。
扩展发送用共用密钥字段5140由以下部分构成设定了加密用共用密钥ID711的发送用共用密钥ID字段5141;设定了加密算法名称712的加密算法名称字段5142;设定了加密密钥值713的密钥值字段5143;设定了消息认证算法名称714的消息认证算法名称字段5144;设定了保密值715的消息认证用保密值字段5145;设定了有效期间716的有效期间字段5146;设定了最大加密尺寸717的最大加密尺寸字段5147。
在图11中,接收到加密数据50的加密功能部3023按照图9和图10所示的动作步骤,将加密数据50解密(S57),将加密数据50解密后的加密功能部3023取出REGISTER消息41,并转发给SIP功能部3013(S58)。
然后,加密功能部3023将上述用户1的会话信息70中包含的加密用共用密钥信息710初始化(S59)。
另一方面,接收到REGISTER消息41的SIP功能部3013,处理该REGISTER消息41,并注册IP地址,生成答复消息42(S60)。
然后,SIP功能部3013委托加密功能部3023把该答复消息42发送给SIP功能部3011(S61)。
从SIP功能部3013接收答复消息42的加密功能部3023,按照图13所示的动作步骤,将答复消息42加密(S63)。
另外,此时,上述用户1的会话信息70中包含的加密用共用密钥信息710在S59被初始化,所以一定重新生成加密用共用密钥信息710和解密用共用密钥信息720(S62)。
并且,把上述会话信息70中包含的解密用共用密钥信息720,更新为在S57被解密的上述加密数据50中包含的扩展发送用共用密钥字段5140的值。
然后,加密功能部3023生成包括上述答复消息42、上述加密用共用密钥信息710和上述解密用共用密钥信息720的公开密钥加密消息形式的加密数据50,通过通信功能部303发送给加密功能部3021(S64)。
接收到加密数据50的加密功能部3021将该加密数据50解密,取出加密用共用密钥信息710和解密用共用密钥信息720,更新上述会话管理服务器30的会话信息70(S65)。
并且,加密功能部3021将上述加密数据50解密,取出上述答复消息42,并转发给SIP功能部3011(S66)。
以上是实施例2中的用户终端装置10和会话管理装置30的动作。另外,在实施例2中,应用服务器装置20把服务2的SIP识别符61和应用服务器装置20的IP地址的关联关系注册在会话管理装置30中时的、SIP功能部301和加密功能部302的动作,与上述说明的相同,所以省略说明。
下面,说明会话管理装置30的会话信息70中的加密用共用密钥信息710或解密用共用密钥信息720失效时的SIP功能部301和加密功能部302的动作。
会话管理装置30的会话信息70中的加密用共用密钥信息710或解密用共用密钥信息720失效时(S67),加密功能部3021向SIP功能部3011发送通知公用信息失效的失效通知(S68)。
接收到失效通知的SIP功能部3011,指示加密功能部3021将与会话管理装置30对应的会话信息70初始化(S69)。
以后的SIP功能部301和加密功能部302的动作(S70~S84),与用户终端装置10把用户1的SIP识别符61和用户终端装置10的IP地址的关联关系注册在会话管理装置30中时的、SIP功能部301和加密功能部302的动作相同。
在实施例2中,上述以外的情况下,各个功能部的动作与实施例1的动作相同。
在实施例2中,用户终端装置10和应用服务器装置30的加密功能部302不生成加密用公用信息710,而在会话管理装置30的加密功能部302中生成加密用公用信息710并通知。因此,即使处理能力较低的用户终端装置10和应用服务器装置30,也能够快速生成安全的公用信息。
并且,在实施例2中,在加密用公用信息710和解密用公用信息720无效的情况下,加密功能部302通知SIP功能部301公用信息失效,而且接收到通知的SIP功能部301生成REGISTER消息41,在SIP功能部301发送REGISTER消息41以外的SIP消息(例如,INVITE消息43)时,经常生成共用密钥加密消息形式的加密数据50。因此,能够快速实施应用客户端101和服务2的连接。
另外,在实施例2中,SIP功能部301在生成REGISTER消息41之前,为了将加密功能部302的加密用公用信息710和解密用公用信息720初始化,REGISTER消息41一定以公开密钥加密消息形式被加密。因此,在会话管理装置30中,在处理REGISTER消息41时,可以同时进行发信人的再认证。
权利要求
1.一种加密数据通信系统,至少两个装置通过网络连接,用于收发加密数据,具有生成加密数据的加密数据生成功能;解密从通信对象侧装置接收的加密数据的加密数据解密功能;通过网络与其他装置进行收发加密数据的通信的通信功能,其特征在于,所述装置还具有存储与其他装置之间共享的加密处理用的加密用公用信息、和解密处理用的解密用公用信息的公用信息管理功能,所述加密数据生成功能从所述公用信息管理功能获取与接收侧装置之间共享的解密公用信息,生成包括该加密用公用信息的加密数据,并且,所述加密数据解密功能从所接收的加密数据中取出所述加密用公用信息,并委托所述公用信息管理功能把该加密用公用信息存储为解密用公用信息。
2.根据权利要求1所述的加密通信系统,其特征在于,所述加密数据生成功能生成的加密数据是使用从所述公用信息管理功能获取的、与接收侧装置之间共享的加密用公用信息加密的共用密钥加密数据,而且,所述加密数据解密功能使用从所述公用信息管理功能获取的与发信源装置之间共享的解密用公用信息,解密所述共用密钥加密数据。
3.根据权利要求2所述的加密通信系统,其特征在于,所述装置还具有管理其他装置的公开密钥的公开密钥管理功能、和管理本装置的秘密密钥的秘密密钥的管理功能,所述加密数据生成功能在不能从所述公用信息管理功能获取与接收侧装置之间共享的加密用公用信息时,从所述公开密钥管理功能获取接收侧装置的公开密钥,生成使用该公开密钥加密的公开密钥加密数据,所述加密数据解密功能使用从所述秘密密钥管理功能获取的秘密密钥,解密所述公开密钥加密数据。
4.根据权利要求3所述的加密通信系统,其特征在于,所述加密数据生成功能使用从所述秘密密钥管理功能获取的秘密密钥,对所述公开密钥加密数据赋予电子署名,所述加密数据解密功能使用从所述公开密钥管理功能获取的发信源装置的公开密钥,进行赋予所述公开密钥加密数据的电子署名的验证处理。
5.根据权利要求3所述的加密通信系统,其特征在于,所述装置是还具有进行SIP消息的生成和处理的SIP通信功能的SIP客户端装置和SIP服务器装置,所述加密数据生成功能进行加密、所述加密数据解密功能进行解密的消息是SIP消息,而且,所述SIP客户端装置上的SIP通信功能在生成REGISTER消息时,该SIP客户端装置上的所述加密数据生成功能生成包括该REGISTER消息的所述公开密钥加密数据。
6.根据权利要求5所述的加密通信系统,其特征在于,所述加密用公用信息和所述解密用公用信息中设定了有效期限,所述SIP客户端装置上的所述SIP通信功能,在与所述SIP服务器装置之间共享的所述加密用公用信息或所述解密用公用信息的任一方的有效期限已过时,生成REGISTER消息。
7.根据权利要求4所述的加密通信系统,其特征在于,所述装置还具有进行SIP消息处理的SIP通信功能,所述加密数据生成功能加密的消息和所述加密数据解密功能解密的消息是SIP消息,所述公开密钥管理功能具有管理SIP识别符和公开密钥的对应关系的功能,所述加密数据解密功能把解密所述加密数据得到的SIP消息、和与为了解密该SIP消息使用的公开密钥对应的SIP识别符,转发给所述SIP通信功能,所述SIP通信功能在所述SIP识别符与所述SIP消息中包含的发送对象的SIP识别符一致时,处理所述SIP消息。
8.一种加密数据的生成方法,在两个装置之间收发消息时生成将消息加密的加密数据,其特征在于,所述加密数据包括用于处理在该加密数据以后收发的消息使用的公用信息。
9.根据权利要求8所述的加密数据的生成方法,其特征在于,所述公用信息是用于加密所述加密数据的接收侧装置在该加密数据以后发送的消息使用的加密用公用信息。
10.根据权利要求9所述的加密数据的生成方法,其特征在于,在已经从接收侧装置通知了所述加密用公用信息时生成的所述加密数据,是利用该公用信息加密的共用密钥加密数据。
11.根据权利要求9所述的加密数据的生成方法,其特征在于,在没有从接收侧装置通知所述加密用公用信息时生成的所述加密数据,是利用该接收侧装置的公开密钥加密的公开密钥加密数据。
12.根据权利要求10所述的加密数据的生成方法,其特征在于,所述公开密钥加密数据利用发信源装置的秘密密钥进行电子署名。
13.根据权利要求11所述的加密数据的生成方法,其特征在于,在两个装置之间收发的消息是指SIP消息,而且在发送REGISTER消息时生成所述公开密钥加密数据。
14.根据权利要求8所述的加密数据的生成方法,其特征在于,所述公用信息是用于解密所述加密数据的接收侧装置在该加密数据以后接收的消息使用的解密用公用信息。
全文摘要
为了保护SIP消息的机密性和安全性,需要在通信之前协商安全参数,或者在每当收发SIP消息时,为了进行加密处理、解密处理、电子署名处理、电子署名验证,需要使用公开密钥加密,所以花费时间。在SIP服务器和SIP客户端这两个实体之间收发消息时,在该实体之间共享加密用的公用信息时,利用该公用信息加密,而在不能共享加密用的公用信息时,利用发送对象实体的公开密钥将通信消息加密。并且,在该加密数据以后的通信中,已加密的消息包括该加密数据的发送对象实体加密并解密消息时使用的公用信息。
文档编号H04L9/32GK1855805SQ20061007162
公开日2006年11月1日 申请日期2006年3月28日 优先权日2005年3月28日
发明者锻忠司, 高田治, 藤城孝宏, 星野和义 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1