CN104427504B - 控制信息验证方法 - Google Patents

控制信息验证方法 Download PDF

Info

Publication number
CN104427504B
CN104427504B CN201410245767.0A CN201410245767A CN104427504B CN 104427504 B CN104427504 B CN 104427504B CN 201410245767 A CN201410245767 A CN 201410245767A CN 104427504 B CN104427504 B CN 104427504B
Authority
CN
China
Prior art keywords
control information
mac
key
communication terminal
hsvr
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.)
Active
Application number
CN201410245767.0A
Other languages
English (en)
Other versions
CN104427504A (zh
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201410245767.0A priority Critical patent/CN104427504B/zh
Publication of CN104427504A publication Critical patent/CN104427504A/zh
Application granted granted Critical
Publication of CN104427504B publication Critical patent/CN104427504B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • H04W4/14Short messaging services, e.g. short message services [SMS] or unstructured supplementary service data [USSD]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/12Detection or prevention of fraud

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明公开了一种控制信息验证方法,用于对一个控制信息进行合法性验证。按照该方法,预先在HSvr侧保存第一密钥,在通信终端侧保存第二密钥;在HSvr侧,在发送控制信息时,根据第一密钥产生一个消息认证编码(MAC),在所述控制信息中携带该MAC;在通信终端侧,在收到所述控制信息后,根据第二密钥对所述MAC进行验证,从而能够有效过滤出骚扰信息。

Description

控制信息验证方法
技术领域
本发明涉及互联网通信,更确切地说涉及互联网中对控制信息的验证方法。
背景技术
在互联网通信中,涉及到全球统一身份(GUID,Global Unified Identity),所述GUID包括两部分:归属码(HCode,Home Code)和用户码(UCode,User Code)。其中,HCode指示该GUID,也即该GUID对应的互联网用户(IUsr,Internet User)归属于即时通信(IM,Instant Messenger)网络(IMN,IM Network)中哪一个IM系统(IMS,IM System),以及归属于哪一个IMS的归属服务器(HSvr,Home Server);UCode用于指示一个HCode下不同的IUsr。参见申请号为201210041577.8或201310037232.X的《通信方法和系统》发明专利,以及申请号为201210041677.0或201310049772.X的《影码寻址方法》发明专利。
通过建立HCode和HSvr的对应关系,根据一个HCode可以获得所指向的一个HSvr。同样,根据一个IUsr的HCode,按照所述HCode和HSvr的对应关系可以确定该IUsr归属的HSvr。这里,一个IUsr的HCode是指该IUsr的GUID的HCode。所述HCode和HSvr的对应关系可以保存在HSvr内,也可以是保存在HSvr可以访问的设备中。
一些服务提供商(SP,Service Provider),特别是一些互联网服务提供商(ISP,Internet Service Provider),所提供的IM服务给IUsr的通信带来了极大的方便,例如,中国移动的飞信,腾讯的QQ,腾讯的微信,网易的易信、阿里巴巴的来往,Google的GTalk等等IMS所提供的包括文字交互、语音或视频通话等等IM业务。
一用户在自己的通信终端(例如智能手机)上安装了某一IMS的IM客户端(IMClient,IM Client),并注册相应的账户后,就可以和该IMS中其他IUsr实现基于IP的文本信息交互或音视频通话。
实际当中,人们常常会遇到这种情况,给一个微信好友发送消息,对方半天没有反应,是怠慢吗?有这种可能,但是,更大的可能是你的微信好友没有启动微信客户端,因此,对方压根就没有收到你发送的信息。如果要用微信提供的语音通话功能替代现有移动终端的基本业务——语音呼叫功能,这种问题就会让用户更加恼火。
我们知道,和{手机开机后,一直在线,并能随时接听电话,以及接收短消息}不同,安装在手机里的IMClient,例如微信客户端,并不是总在运行并一直在线。典型地,象目前的易信或来往等等IMS,都存在大量的流失用户和沉寂用户等等不活跃用户,这些用户虽然出于尝鲜的心态,刚开始,在手机中安装了易信客户端或来往客户端,并注册了相应账户,但后来因为在易信或来往中很难找到好友,因此,一般都不运行或极少登录一次。况且,在手机里,让一个IMClient一直运行并在线,因为心跳握手,还会消耗网络流量和手机电池的电量。一般地,一个IMClient在线,是指该IMClient连接到相应IMS的HSvr,并处于登入状态。
关于短消息,可以查阅全球移动通信系统(GSM,Global System for MobileCommunication)中的关于短信服务(SMS,Short Message Service)的相关描述。
在一个通信终端中,如果一个IMClient没运行,或者,虽然运行了,却没有上线,那么,该通信终端用户的好友通过互联网呼叫该用户相应的IM账户时,相应的呼叫消息就无法送达对应的IMClient。该问题严重制约着移动互联网通信的发展。
在同时提交的《控制信息处理方法》发明专利中提到一种控制信息处理方法,按照该方法,通信终端可以为IMS提供了一种机制:通过发送控制信息,远程控制相应通信终端上对应的IMClient。例如,通过发送控制信息,启动相应的IMClient;或者,通过发送控制信息,在相应IMClient上播放广告;或者通过发送控制信息,更新相应IMClient的配置。更多描述,参见所述发明中所述IMClient控制方法。这样,就可以帮助SP解决在相应IMS中,因IMClient没有启动而影响正常通信的问题,或者帮助SP更好地投放广告,或者帮助SP实现IMClent相关配置信息的离线更新。
由于上述机制能够有效改善现有IMS中存在的突出问题,并能给各个SP带来极大的方便,因此,该机制的安全性也就显得非常重要。
实际当中,也确实存在这种安全风险:非法者通过向某通信终端发送恶意控制信息,操纵相应IMClient,使之完成一些非法者期待的操作。以通过短消息承载所述控制信息为例,一些非法者通过设置伪基站,可以向移动终端发送恶意控制信息,让相应的IMClient显示自己的非法广告内容;或者向移动终端发送恶作剧消息,以启动相应的IMClient。
发明内容
有鉴于此,本发明公开了一种控制信息验证方法,用于对一个控制信息进行合法性验证。按照该方法,预先在HSvr侧保存第一密钥,在通信终端侧保存第二密钥;在HSvr侧,在发送控制信息时,根据第一密钥产生一个消息认证编码(MAC),在所述控制信息中携带该MAC;在通信终端侧,在收到所述控制信息后,根据第二密钥对所述MAC进行验证,从而能够有效过滤出骚扰信息。
一种控制信息验证方法,在HSvr侧保存第一密钥,在通信终端侧保存第二密钥;所述方法包括以下步骤:
a、在HSvr侧,在发送控制信息时,根据第一密钥产生一个消息认证编码(MAC),在所述控制信息中携带该MAC;
b、在通信终端侧,在收到所述控制信息后,根据第二密钥对所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
所述步骤b包括步骤b1和步骤b2:
b1、在通信终端侧,在收到所述控制信息后,将所述控制信息中携带的MAC传送给相应的IMClient;
b2、所述IMClient根据第二密钥对所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
所述MAC是根据所述第一密钥与第一鉴权混杂参数(AMP),即AMP1,进行计算得到;相应地,在步骤b中,在根据第二密钥对所述MAC进行验证时,还进一步根据对应的第二AMP,即AMP2,来进行。
在HSvr侧,针对一个账户设置一个SQNSVR,在相应的通信终端侧设置一个SQNCLIENT;SQNSVR的初始值设置为1,SQNCLIENT的初始值设置为0;
步骤a进一步是:在HSvr侧,在发送控制信息时,将SQNSVR作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC,然后将SQNSVR值增加1;
相应地,步骤b进一步是:在通信终端侧,在收到所述控制信息后,将(SQNCLIENT+1)作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法,并将SQNCLIENT的值增加1;否则,将所述控制信息视为非法。
在HSvr侧,针对一个账户设置一个SQNSVR,在相应的通信终端侧设置一个SQNCLIENT;SQNSVR的初始值设置为1,SQNCLIENT的初始值设置为0;
步骤a进一步是:在HSvr侧,在发送控制信息时,将SQNSVR作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC和SQNSVR值,然后将SQNSVR值增加1;
相应地,步骤b进一步是:在通信终端侧,在收到所述控制信息后,先根据SQNCLIENT判断所携带的SQNSVR值是否可接受,如果不可接受,则直接将所述控制信息视为非法,并结束流程;
在步骤b中,如果判断出所述SQNSVR值可接受,则将SQNSVR值作为AMP2,根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法,并将SQNCLIENT的值更新为SQNSVR;否则,将所述控制信息视为非法。
在相应的通信终端侧设置一个SQNCLIENT,SQNCLIENT的初始值设置为0;
步骤a进一步是:在HSvr侧,在发送控制信息时,将HSvr侧系统当前时间值T1作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC和T1;
相应地,步骤b进一步是:在通信终端侧,在收到所述控制信息后,先判断所携带的T1是否可接受,如果不可接受,则直接将所述控制信息视为非法,并结束流程;
在步骤b中,如果判断出所述T1可接受,则将T1作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法,并将SQNCLIENT的值更新为T1;否则,将所述控制信息视为非法。
步骤a进一步是:在HSvr侧,在发送控制信息时,将获取的HSvr侧当前时间值T1作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC和T1;
相应地,步骤b进一步是:在通信终端侧,在收到所述控制信息后,根据通信终端侧时间值T2判断所携带的时间值T1是否可接受,如果不可接受,则直接将所述控制信息视为非法,并结束流程;
如果判断出T1可接受,则将T1作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
步骤a进一步是:在HSvr侧,在发送控制信息时,根据获取的HSvr侧当前时间值T1,计算出T1(RSL).RTRP的值,将计算得到的T1(RSL).RTRP的值作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC;
相应地,步骤b进一步是:在通信终端侧,在收到所述控制信息后,根据通信终端侧时间T2获取T1的估值T1e,计算出T1e(RSL).RTRP的值,将计算得到的T1e(RSL).RTRP的值作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
步骤a进一步是:在HSvr侧,在发送控制信息时,将获取的HSvr侧当前时间值T1作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC和T1(RSL).LOD的值;
相应地,步骤b进一步是:在通信终端侧,在收到所述控制信息后,根据通信终端侧时间值T2和所携带的T1(RSL).LOD的值,获取T1的估值T1e,将T1e作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
所述第一密钥由一个私钥和第一对称密钥组成;相应地,所述第二密钥由一个公钥和第二对称密钥组成;
在步骤a中,所述根据所述第一密钥与AMP1进行计算得到所述MAC是指:根据所述第一对称密钥与AMP1进行摘要计算,得到一个摘要;用所述私钥加密该摘要,得到所述MAC;
相应地,步骤b进一步是:在通信终端侧,在收到所述控制信息后,根据所述公钥解密所述控制信息中携带的所述MAC,得到明文;根据所述第二对称密钥与AMP2进行相应的摘要计算,得到一个摘要;判断计算得到的摘要与解密得到的明文是否一致,如果是,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
按照本发明提供的控制信息验证方法,在通信终端侧可以对应相应控制信息进行验证,从而可以有效过滤骚扰或恶意控制信息,保障了相应IMClient的安全。
附图说明
图1所示,为本发明控制信息验证方法实施方式流程图。
图2所示,为IMN组网图。
具体实施方式
为了避免一些骚扰或恶意控制信息对于通信终端中相应IMClient的干扰,本发明提供了一种控制信息验证方法,按照该方法,通信终端侧可以对控制信息进行有效验证,以识别非法控制信息,从而保障IMClient的安全性。
如图1所示,为本发明控制信息验证方法实施方式流程图。在该实施方式中,预先在HSvr侧保存第一密钥,在通信终端侧保存第二密钥。该方法包括如下步骤:
首先在步骤21、在HSvr侧,在发送控制信息时,根据第一密钥产生一个消息认证编码(MAC,Message Authentication Code),在所述控制信息中携带该MAC。
步骤22、在通信终端侧,在收到所述控制信息后,根据第二密钥对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
在HSvr侧,在保存第一密钥时,可以选择如下三种方式之一来进行:
方式一、在HSvr侧,在保存第一密钥时,针对所有的账户保存统一的第一密钥。这样,所有账户对应共同的第一密钥。
方式二、在HSvr侧,在保存第一密钥时,分别针对不同的账户保存,例如,在各个账户的账户信息中保存该账户的第一密钥。这样,不同的账户可以对应不同的第一密钥。
方式三、在HSvr侧,在保存第一密钥时,针对不同的账户群进行保存。实际当中,可以按照某种方式,例如按照账号的第一个字符,将所有账户分成不同的群,对同一个群中的账户,设置共同的第一密钥。这样,同一群中的账户,对应共同的第一密钥,不同群的账户可以对应不同的第一密钥。
在步骤21中,HSvr在使用所述第一密钥产生所述MAC时,按照对于第一密钥所采用的不同的保存方式来获取对应的密钥。例如,按照方式一,对于所有账户,都可以直接获取统一保存的第一密钥;按照方式二,直接从目标账户信息中获取保存的第一密钥;按照方式三,可以先确定目标账户对应的账户群,然后获取针对该账户群保存的第一密钥。
本发明后面多以{在HSvr侧,在保存第一密钥时,分别针对不同的账户保存}为例,但不用于限定本发明。
为了更好地展示本发明的思想,以及用途和用法,下面以所述控制信息验证方法在相关IMClient控制中的应用进行举例说明。
本发明以通过短消息传送或承载所述控制信息为例进行说明,但不用于限定本发明。
需要说明的是,通过短消息承载一个控制信息,并非局限于仅用短消息内容部分来承载所述控制信息。实际当中,短消息的主叫号码,甚至短消息的接收时间即终端接收短消息的时间,或者短消息的其它参数,等等都可作为控制信息的一部分。关于短消息的相关参数,还可以参见短消息的PDU(Protocol Data Unit,协议数据单元)结构,这里不再转摘。
本发明将用于承载所述控制信息的短消息,统称为控制短消息。
以{所述IMClient由相应的应用程序名(AppName,Application Name)指示}为例,但不用于限定本发明。
在Window操作系统环境下,一般地,所述AppName是相应IMClient的可执行文件名。该文件名可以包括相应的相对路径或绝对路径信息。
在苹果手机的IOS操作系统环境下,所述AppName是相应IMClient对应应用的别名,例如,微信的AppName为weixin,易信的AppName为yixin。
本发明以{控制短消息的主叫号码为相应客户端识别码(ClientID,ClientIdentity),以所述AppName是相应IMClient的可执行文件名为例}为例,但不用于限定本发明。在通信终端中设置如表1-A所示的主叫-IMClient表。
表1-A
ClientID AppName
1065901020507 C:\Program Files\Tencent\QQ\QQProtect\Bin\QQProtect.exe
1065905790015160169 C:\Program Files\China Mobile\Fetion\Fetion.exe
按照所述主叫-IMClient表,通信终端根据一个短消息的主叫号码来确定对应的IMClient。例如,根据短消息的主叫号码查找所述主叫-IMClient表的ClientID列,寻找匹配的记录,从而得到对应IMClient的AppName值。
如果通信终端根据一个短消息的主叫号码,按照所述主叫-IMClient表无法确定匹配的记录,则说明该短消息不是控制短消息。关于控制信息识别的更多描述,参阅所述《控制信息处理方法》发明专利,这里不再转摘。
在通信终端侧,在保存第二密钥时,可以针对不同IMClient来保存。例如,在所述主叫-IMClient表中增加一个密钥字段,用于保存相应IMClient所对应的第二密钥。
一般地,在通信终端侧,在保存第二密钥时,直接由相应的IMClient按照自己的要求来保存。例如,将所述密钥保存到相应IMClient的某一文件中,或者将所述密钥保存到相应IMClient的某一注册项中。
在所说步骤22中,所述验证操作可以是由相应通信终端来完成,也可以是由对应的IMClient来完成。
一、所述验证操作直接由相应的通信终端来完成。
这种情况下,较佳地,在通信终端侧,在保存第二密钥时,针对不同IMClient来保存。例如,在所述主叫-IMClient表中增加一个密钥字段,用于保存相应IMClient所对应的第二密钥。
如下为本发明控制信息验证方法第一实施例流程:
步骤101、HSvr根据目标账户对应的第一密钥产生一个MAC,将该目标账户对应的通信号码作为短消息的被叫号码,构造短消息;在所述短消息中携带所产生的MAC;将该短消息发送出去。
步骤102、相应的通信终端接收到所述短消息后,用该短消息的主叫号码,匹配所述主叫-IMClient表中ClientID列里的通信号码,确定对应的IMClient,获取该IMClient对应的第二密钥。
步骤103、所述通信终端根据所获取的第二密钥对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
二、所述验证操作由相应的IMClient来完成。
这种方式可以降低通信终端与IMS的耦合度,从而使得验证流程具有更好的可扩展性。
这种情况下,较佳地,在通信终端侧,在保存第二密钥时,直接由相应的IMClient按照自己的要求来保存。
如下为本发明控制信息验证方法第二实施例流程:
步骤201、HSvr根据目标账户对应的第一密钥产生一个MAC,将该目标账户对应的通信号码作为短消息的被叫号码,构造短消息;在所述短消息中携带所产生的MAC;将该短消息发送出去。
步骤202、相应的通信终端接收到所述短消息后,用该短消息的主叫号码,匹配所述主叫-IMClient表中ClientID列里的通信号码,确定对应的IMClient。
步骤203、所述通信终端向所确定的IMClient传送携带了所述MAC的相关信息。
在这里,如果所述IMClient没有启动,则启动该IMClient。所述的向一个IMClient传送携带了所述MAC的相关信息是:在启动该IMClient时,或者在启动该IMClient之后,向该IMClient传送携带了所述MAC的相关信息。
步骤204,所述IMClient根据保存的第二密钥对所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
为了使得验证流程具有更好的扩展性,在步骤203中,所述的携带了所述MAC的相关信息可以直接是所述控制信息。例如,所述通信终端直接将所述短消息传送给所确定的IMClient。
在步骤101或步骤201中,可以直接设置通信接入模块来发送短消息。
例如,一个IMS或其中的HSvr中可以直接包括移动通信接入模块,以用于发送短消息。
当然,相关IMS或其中的HSvr可以直接连接到一个短消息服务中心(SMSC:ShortMessage Service Center),通过该SMSC来发送短消息。例如,在所述IMS或其中的HSvr中设置一个短消息实体(SME:Short Messaging Entity),通过SME,将要发送的短消息发送给相应SMSC,由该SMSC将所述要发送的短消息发送出去。所述短消息的主叫号码是由HSvr填写,还是由相应设置的SME来填写,将由相应SP自己选择。由于相关SP通过设置SME发送短消息是公知技术、成熟应用,因此,这里不再就SP如何发送短消息进行赘述。
关于SMSC和SME,可以查阅GSM系统中关于SMS的相关描述。
还例如,在中国移动通信网络中,通过设置互联网短信网关(ISMG,InternetShort Message Gateway),来提供SP与SMSC之间数据交换的通道,从而为各个SP提供短消息接入服务。所述ISMG连接到相应的SMSC,例如,采用SMPP3.3协议与SMSC连接。各个SP的IMS或其中的HSvr,通过协商的接入机制,例如采用CMPP(China Mobile Peer to Peer)协议,接入到相应的ISMG,以便由ISMG将要发送的短消息发送给相应的SMSC,由该SMSC将所述短消息发送到相应的通信终端。这种情况下,所述短消息的主叫号码一般由HSvr填写。当然,在每个SP申请的短消息类服务接入代码唯一的情况下,所述短消息的主叫号码也可以是由接入的ISMG来填写。
实际当中,相应SP向相应通信终端发送各种短消息的业务,已有成熟技术和应用。因此,本发明不再就一个HSvr如何发送一个短消息进行赘述。
在步骤21中,所述根据第一密钥产生一个MAC是指:根据所述第一密钥与第一鉴权混杂参数(AMP,Authentication Mix Parameter),也即AMP1,进行计算得到所述MAC。相应地,在步骤22中,所述根据第二密钥对所述控制信息中携带的所述MAC进行验证是指:根据所述第二密钥和对应的第二AMP,也即AMP2,对所述MAC进行验证。例如:
所述步骤21进一步是步骤21A:在HSvr侧,在发送控制信息时,根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC。相应地,所述步骤22进一步是步骤22A:在通信终端侧,在收到所述控制信息后,根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
在步骤21A中,产生所述MAC的方式有多种多样,下面列举三种方式供参考:
方式一、通过摘要运算产生MAC
这种情况下,在步骤22A中,通过相应的摘要运算来对所述MAC进行验证。例如:
在步骤21A中,所述根据所述第一密钥与AMP1进行计算得到所述MAC是指:根据所述第一密钥与AMP1进行摘要计算得到所述MAC。相应地,所述步骤22A进一步是:在通信终端侧,在收到所述控制信息后,根据第二密钥和AMP2进行相应的摘要计算,判断计算所得结果与所述控制信息中携带的所述MAC是否一致,例如是否相等,如果是,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
这种情况下,一般地,选择对称密钥机制,即所述第一密钥和所述第二密钥为对称密钥。
方式二、通过加密计算产生MAC
这种情况下,在步骤22A中,通过相应的解密运算来对所述MAC进行验证。例如:
在步骤21A中,所述根据所述第一密钥与AMP1进行计算得到所述MAC是指:用所述第一密钥加密AMP1,得到所述MAC。相应地,所述步骤22A进一步是:在通信终端侧,在收到所述控制信息后,根据第二密钥解密所述控制信息中携带的所述MAC,判断解密所得与AMP2是否一致,例如是否相等,如果是,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
这种情况下,所述第一密钥和所述第二密钥可以是对称密钥。一般地,选择公开密钥(非对称密钥)机制,例如,所述第一密钥是私钥,所述第二密钥是对应的公钥。
方式三、通过混合密钥产生MAC
这种情况下,所述第一密钥由一个私钥和第一对称密钥组成;相应地,所述第二密钥由一个公钥和第二对称密钥组成。所述私钥与所述公钥为配对的非对称密钥,所述第一对称密钥与所述第二对称密钥是配对的对称密钥。
可以采用纯加密运算方式产生MAC。例如:
在步骤21A中,所述根据所述第一密钥与AMP1进行计算得到所述MAC是指:根据所述第一对称密钥对AMP1进行加密计算,得到密文;再用所述私钥加密该密文,得到所述MAC。相应地,所述步骤22A进一步是:在通信终端侧,在收到所述控制信息后,根据所述公钥解密所述控制信息中携带的所述MAC,得到明文;根据所述第二对称密钥对AMP2进行相应的加密计算,得到密文;判断计算得到的密文与解密得到的明文是否一致,例如是否相等,如果是,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
较佳地,采用摘要和加密混合运算方式产生MAC。例如:
在步骤21A中,所述根据所述第一密钥与AMP1进行计算得到所述MAC是指:根据所述第一对称密钥与AMP1进行摘要计算,得到一个摘要;用所述私钥加密该摘要,得到所述MAC。相应地,所述步骤22A进一步是:在通信终端侧,在收到所述控制信息后,根据所述公钥解密所述控制信息中携带的所述MAC,得到明文;根据所述第二对称密钥与AMP2进行相应的摘要计算,得到一个摘要;判断计算得到的摘要与解密得到的明文是否一致,例如是否相等,如果是,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
采用所述混合密钥机制,所述第一对称密钥和所述第二对称密钥可以直接是相应通信终端的通信号码,或者是相应通信终端里SIM卡的IMSI值。当然,也可以是HSvr侧与相应通信终端侧协商的对称密钥值。
在采用摘要和加密混合运算方式产生MAC的情况下,在HSvr侧,在保存第一密钥时,可以针对所有的账户保存统一的私钥,并针对不同账户保存不同的第一对称密钥。这样,所有账户对应共同的私钥,而不同账户可以有不同的第一对称密钥。也即,通过所述对称密钥,可以区分不同账户对应的通信终端,从而在共享所述私钥的情况下,可以防止相应的控制信息被用来重放而攻击不同账户对应的通信终端。
在采用摘要和加密混合运算方式产生MAC的情况下,在HSvr侧,在保存第一密钥时,也可以针对不同的账户群保存不同的私钥,并针对不同账户保存不同的第一对称密钥。这样,同一群中的账户,对应共同的私钥,不同群的账户可以对应不同的私钥,而不同账户可以有不同的第一对称密钥。也即,通过所述对称密钥,可以区分不同账户对应的通信终端,从而在共享所述私钥的情况下,可以防止相应的控制信息被用来重放而攻击不同账户对应的通信终端。
有关摘要算法、加密、解密、对称密钥、非对称密钥等等的更多描述,参见《应用密码学》一书或相关的算法论文或报告。由于是公知技术,不再赘述。
关于AMP的选择有多种方式,相应地,AMP1和AMP2的对应关系也不同。
下面提供几种方式供技术人员选择:
方式1、所述AMP1可以是相应通信终端的相关信息
例如,所述通信终端的相关信息可以是通信终端对应的通信号码。例如:
所述步骤21A进一步是:在HSvr侧,在发送控制信息时,将对应通信终端的通信号码作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC和所述通信号码。相应地,所述步骤22A进一步是:在通信终端侧,在收到所述控制信息后,将所携带的通信号码作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
由于在所述控制信息中携带对应通信终端的通信号码,可能会产生安全隐患。对此,可以在相应通信终端中保存了自己对应的通信号码,这样,在所述控制信息中,就不需要携带所述通信号码。例如:
所述步骤21A进一步是:在HSvr侧,在发送控制信息时,将对应通信终端的通信号码作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC。相应地,所述步骤22A进一步是:在通信终端侧,在收到所述控制信息后,将所保存的通信号码作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
还例如,所述通信终端的相关信息也可以是通信终端中的SIM卡的IMSI值。这种情况下,在HSvr侧还保存对应通信终端中SIM卡的IMSI值。例如:
所述步骤21A进一步是:在HSvr侧,在发送控制信息时,将对应通信终端的IMSI值作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC。相应地,所述步骤22A进一步是:在通信终端侧,在收到所述控制信息后,将SIM卡的IMSI值作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
方式2、所述AMP1可以是相应控制信息中携带的文本信息的摘要
例如,所述文本信息是广告内容。例如:
所述步骤21进一步是步骤21A:在HSvr侧,在发送控制信息时,先根据所述文本信息产生摘要,将该摘要作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC。相应地,所述步骤22进一步是步骤22A:在通信终端侧,在收到所述控制信息后,先根据所携带的文本信息产生摘要,将该摘要作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
例如,通过MD5算法对所述文本进行摘要计算,从而得到相应的摘要信息。
方式3、所述AMP1是产生的一个随机数
这种情况下,在步骤21A中,所述控制信息中进一步携带所产生的随机数。相应地,在步骤22A中,将所述控制信息中所携带的随机数作为AMP2。例如:
所述步骤21A进一步是:在HSvr侧,在发送控制信息时,先产生一个随机数,将该随机数作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC和所产生的随机数。相应地,所述步骤22A进一步是:在通信终端侧,在收到所述控制信息后,将所携带的随机数作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
方式4、AMP1是一个鉴权用序列号(SQN,Sequence Number)
为了防止消息重放攻击,较佳地,所述AMP1是一个SQN。
例A、在HSvr侧,针对一个账户设置一个SQNSVR,在相应的通信终端侧设置一个SQNCLIENT。其中,SQNSVR的初始值设置为1,SQNCLIENT的初始值设置为0。
所述步骤21A进一步是步骤21B:在HSvr侧,在发送控制信息时,将SQNSVR作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC,然后将SQNSVR值增加1。相应地,所述步骤22A进一步是步骤22B:在通信终端侧,在收到所述控制信息后,将(SQNCLIENT+1)作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法,并将SQNCLIENT的值增加1;否则,将所述控制信息视为非法。
实际当中,考虑到{所述控制信息在传送过程中丢失,使得SQNSVR值和SQNCLIENT值不一致,例如,SQNSVR大于(SQNCLIENT+1)}的情况出现,从而导致通信终端侧对所述MAC验证不通过的情况发生,在通信终端侧在对所述MAC验证不通过时,还可以将(SQNCLIENT+2)作为AMP2来根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行进一步验证,并在验证通过后,将SQNCLIENT的值直接增加2。当然,如果还验证通不过,还可以将(SQNCLIENT+3)作为AMP2来根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行进一步验证,并在验证通过后,将SQNCLIENT的值直接增加3。
实际当中,当SQNSVR与SQNCLIENT严重失歩,即SQNSVR与SQNCLIENT的差值足够大时,总会导致对MAC验证不通过。这样,就无法执行有效验证。
为了解决所述失歩问题,可以通过同步流程来实现SQNSVR值和SQNCLIENT值同步。例如,向相应的HSvr请求相应的SQNSVR,并用获得的SQNSVR值更新SQNCLIENT值,例如,将SQNCLIENT值设置为(SQNSVR-1)。
较佳地,为了避免所述失歩问题,在步骤21B中,可以在所述控制信息中进一步携带SQNSVR值。
例B、在HSvr侧,针对一个账户设置一个SQNSVR,在相应的通信终端侧设置一个SQNCLIENT。其中,SQNSVR的初始值设置为1,SQNCLIENT的初始值设置为0。
例如,所述步骤21B是:在HSvr侧,在发送控制信息时,将SQNSVR作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC和SQNSVR值,然后将SQNSVR值增加1。相应地,所述步骤22B是:在通信终端侧,在收到所述控制信息后,先判断所携带的SQNSVR值是否可接受,如果不可接受,则直接将所述控制信息视为非法,并结束。如果判断出所述SQNSVR值可接受,则将SQNSVR值作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法,并将SQNCLIENT的值更新为SQNSVR;否则,将所述控制信息视为非法。
这里,所述的SQNSVR值可接受是指:SQNSVR大于SQNCLIENT值,也即SQNSVR值未曾使用过。
为了减少对SQNSVR值的专门维护,可以直接用HSvr侧系统时钟的时间值替代SQNSVR。
例C、在相应的通信终端侧设置一个SQNCLIENT。其中,SQNCLIENT的初始值设置为0。
所述步骤21A进一步是:在HSvr侧,在发送控制信息时,将HSvr侧系统当前时间值T1作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC和T1。相应地,所述步骤22A进一步是:在通信终端侧,在收到所述控制信息后,先判断所携带的T1是否可接受,如果不可接受,则直接将所述控制信息视为非法,并结束。如果判断出所述T1可接受,则将T1作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法,并将SQNCLIENT的值更新为T1;否则,将所述控制信息视为非法。
这里,所述T1可接受可以是:T1大于SQNCLIENT。
特别地,例C与下面的方式5结合,可以达到更好的技术效果。
方式5、AMP1是HSvr侧系统当前时间值T1,所述控制信息中携带T1
为简化叙述,这里约定HSvr侧系统时钟与终端侧系统时钟同步,但不用于限定本发明。
这里,以T1是相应时间的总秒数为例。
还例如:所述步骤21A进一步是:在HSvr侧,在发送控制信息时,将获取的HSvr侧当前时间值T1作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC和T1。相应地,所述步骤22A进一步是:在通信终端侧,在收到所述控制信息后,根据通信终端侧时间值T2,判断所携带的时间值T1是否可接受,如果不可接受,则直接将所述控制信息视为非法,并结束。如果判断出T1可接受,则将T1作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
这里,所述的T1可接受可以是:T2与T1的差,也即(T2-T1)值小于约定的值,例如100秒。
这里,T2可以是接收所述控制信息的时间,也可以是通信终端侧当前时间值。
上面方式4或方式5中,在所述控制信息中携带SQNSVR值或所述时间值,都会占用相应消息的有效载荷,这样,就不利于相应SP的后期业务扩展。
由于短消息通过电信网信令承载,因此,短消息的有效载荷受到了限制,也因此,出于后期业务扩展的考虑,对于短消息有效载荷的节省显得非常重要。
为便于理解,本发明中,以秒作为时间的基本单位,并用一个32bit长整型来表示一个时间对应的总秒数值。
在本发明里,如果一个时间T能被一个参考步长(RSL,Reference Step Length)整除,则称T为基于该RSL的时间参考点(TRP,Time Reference Point),记作T属于TRP(RSL)。例如,3分钟属于TRP(60秒)。
设置了RSL之后,任意一个时间,要么在一个TRP上,要么在两个相邻的TRP之间。
为了方便描述,我们称在一个时间T的左边、与T相邻的TRP为T的左参考点(LTRP,Left TRP);称在T的右边,与T相邻的TRP为T的右参考点(RTRP,Right TRP)。当一个时间在一个TRP上时,该时间的LTRP为其自身。一个时间T的RTRP比T的LTRP晚一个RSL。
例如,当2011年1月1日1时0分30秒和2011年1月1日1时1分0秒是两个相邻的TRP时,对于时间2011年1月1日1时0分33秒,该时间的LTRP为2011年1月1日1时0分30秒,该时间的RTRP为2011年1月1日1时1分0秒。
所述RSL的值可以取任意值。为便于描述,本发明涉及的RSL取自然数。
为方便描述和后续的公式推导,本发明将对象A的属性B写作A.B。例如,时间T的LTRP写作T.LTRP,时间T的RTRP写作T.RTRP。
对于一个时间T,基于不同的RSL,对应的T.LTRP或对应的T.RTRP等等可能不同,为了便于描述和后续的公式推导,本发明将基于RSL的时间T或者时间T基于RSL写作T(RSL)。例如,对于时间T,将基于RSL的T.LTRP写作T(RSL).LTRP,基于RSL的T.RTRP写作T(RSL).RTRP,等等。
计算T(RSL).LTRP时,可以用T与RSL进行模运算得到一个余数Remainder,则T与Remainder的差为T(RSL).LTRP。即:T(RSL).LTRP=T-(T mod RSL)。对应地,
T(RSL).RTRP=T(RSL).LTRP+RSL=RSL+T-(T mod RSL)
方式6、AMP1是HSvr侧系统当前时间值T1基于RSL的一个TRP
为简化叙述,这里约定HSvr侧系统时钟与终端侧系统时钟同步,但不用于限定本发明。
一般地,HSvr侧和通信终端侧预先约定RSL值,例如,分别设置RSL=100秒。
所述步骤21A进一步是:在HSvr侧,在发送控制信息时,根据获取的HSvr侧当前时间值T1,计算出T1(RSL).RTRP的值,也即T1基于RSL的RTRP值,将计算得到的T1(RSL).RTRP的值作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC。相应地,所述步骤22A进一步是:在通信终端侧,在收到所述控制信息后,获取T1的估值T1e,计算出T1e(RSL).RTRP的值,也即T1e基于RSL的RTRP值,将计算得到的T1e(RSL).RTRP的值作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
这里,T1e可以直接是通信终端侧时间T2。T2可以是接收所述控制信息的时间,也可以是通信终端侧当前时间值。一般地,在通信终端侧,接收所述控制信息的时间与执行验证流程时通信终端侧的当前时间值差别很小,因此,如何选择对验证结果影响不大。
一般地,HSvr侧获取时间值T1相对于所述时间值T2,存在一个时间提前量(TIA,Time In Advance),例如,TIA为10秒。因此,实际当中,会根据T2和约定的TIA来确定T1e的值,例如,将(T2-TIA)作为T1e的值。
由于不需要在所述控制信息中携带T1,因此,减少了对相应消息的有效载荷占用。
为方便描述,本发明将a和b中最小的一个写作min(a,b),将a和b中最大的一个写作max(a,b);将a<x<b写作x∈(a,b),将a<=x<=b写作x∈[a,b];将a<x<=b写作x∈(a,b];将a<=x<b写作x∈[a,b)。
T与T(RSL).LTRP的距离为T(RSL)的左偏距(LOD,Left Offset Distance),写作T(RSL).LOD;T与T(RSL).RTRP的距离为T(RSL)的右偏距(ROD,right offset distance),写作T(RSL).ROD。T(RSL).LOD和T(RSL).ROD的计算公式如下:
T(RSL).LOD=T-T(RSL).LTRP=(T mod RSL)
T(RSL).ROD=T(RSL).RTRP-T=RSL-(T mod RSL)=RSL-T(RSL).LOD
对于上述AMP1是HSvr侧系统当前时间值T1基于RSL的一个TRP的情况,HSvr侧产生的MAC只有在特定的时间内被通信终端侧收到后,才能被认定为合法。为方便描述,这里称该特定时间为MAC的预期寿命。
如果T1与T1e不相等,那么,只有当二者位于相邻的两个TRP之间,且max(T1,T1e)不是TRP时,HSvr侧产生的MAC才能够通过通信终端侧的验证。这样,HSvr侧产生的MAC的预期寿命会因为T1(RSL).LOD的增加而减少。
毫无疑问,HSvr侧在不同时刻产生的MAC的预期寿命不同,会影响到用户体验。
方式7、AMP1是HSvr侧系统当前时间值T1,所述控制信息中携带T1基于RSL的LOD值
为简化叙述,这里约定HSvr侧系统时钟与终端侧系统时钟同步,但不用于限定本发明。
这种情况下,HSvr侧和通信终端侧预先约定RSL值,例如,分别设置RSL=100秒。
例如,所述步骤21A进一步是:在HSvr侧,在发送控制信息时,将获取的HSvr侧当前时间值T1作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC和T1(RSL).LOD的值。相应地,所述步骤22A进一步是:在通信终端侧,在收到所述控制信息后,根据通信终端侧时间值T2和所携带的T1(RSL).LOD的值,获取T1的估值T1e,将T1e作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
这里,T2可以是接收所述控制信息的时间,也可以是通信终端侧当前时间值。
这里,若不考虑TIA因素,则T1e=T2-((T2-T1(RSL).LOD)mod RSL)
若考虑TIA因素,则T1e=(T2-TIA)-(((T2-TIA)-T1(RSL).LOD)mod RSL)
关于T1e的计算公式的详细推导过程,可以参阅申请号为201110114688.2的《相对同步认证方法、认证系统及装置》发明专利,本发明不再摘述。
实际当中,当选取的RSL值正好是2的n次方时,例如,RSL值是8、16、32等,则在计算一个时间T的LOD值时,可以直接截取该时间T的低位相应n个bit的值即可。
例如,计算T(32).LOD的值,可以直接截取T的低位5个bit的值而得到。
按照这种方式,HSvr侧产生一个MAC后,该MAC将在RSL秒之后失效。这样,在不需要传送完整的时间信息的情况下,既保证消息的时效性,又保证了HSvr侧在任何时刻产生的MAC都具有稳定的预期寿命。
实际当中,对于语音呼叫的接续来说,所述RSL的值一般不超过60秒,因此,RSL只需要占用6个bit即可,而不是象传送整个时间值而需要占用至少4个字节一样。也因此,本发明向业界强烈推荐这种验证方式。
实际当中,在通过短消息承载相应控制信息时,可以将控制信息中携带的MAC值与T1(RSL).LOD的值进行合并,得到扩展MAC(EMAC,Expand MAC)值,例如,EMAC有四个字节,其中26个bit用于存放MAC值,剩下的6个bit用于存放T1(RSL).LOD的值。
本领域技术人员根据本发明上述提供的,针对各个要素项的各种实施方式,按照自己的实际需要进行相应的组合,即可得到适合于自己的应用实例。本发明在下面仅仅列举几种而不是全部的组合用例,以供技术人员参照。
下面从AMP的选择方式中,选择出方式1和方式6进行组合,来得到相应的用例。参见例2-1和例2-2。
例2-1:所述第一密钥和第二密钥是对称密钥
这里不考虑TIA因素。
在步骤21中,在产生所述MAC时,用第一密钥、相应通信终端的通信号码和当前时间的分钟数值进行摘要计算,将计算结果作为MAC;所述控制信息中还包括所述通信终端的通信号码。相应地,在步骤22中,用第二密钥、所述通信终端的通信号码和当前时间的分钟数值进行相应的摘要计算,判断计算结果和接收的所述MAC是否一致,例如是否相等,如果一致,则所述控制信息合法;否则,所述控制信息非法。
求一个时间T(单位为秒)的分钟数值,是用T除以60取整后得到,也即用所述时间的总秒数T除以60取整后得到。也即,求T(60).LTRP的值。后面不再重述。
考虑到在所述控制信息中携带相应通信号码存在安全隐患,还可以在相应通信终端中保存对应的通信号码,这样就不需要在所述控制信息中携带所述通信号码。例如:
在步骤21中,在产生所述MAC时,用第一密钥、相应通信终端的通信号码和当前时间的分钟数值进行摘要计算,将计算结果作为MAC。相应地,在步骤22中,用第二密钥、所保存的通信号码和当前时间的分钟数值进行相应的摘要计算,判断计算结果和接收的所述MAC是否一致,例如是否相等,如果一致,则所述控制信息合法;否则,所述控制信息非法。
例2-2:所述第一密钥是私钥,所述第二密钥是对应的公钥
这里不考虑TIA因素。
在步骤21中,在产生所述MAC时,根据相应通信终端的通信号码和当前时间的分钟数值进行摘要计算得到一个摘要信息,而后用第一密钥对该摘要信息进行加密,将加密结果作为MAC;所述控制信息中还携带所述通信终端的通信号码。相应地,在步骤22中,根据所述通信终端的通信号码和当前时间的分钟数值进行相应的摘要计算得到一个摘要信息,并用第二密钥解密接收的所述MAC,判断计算得到的摘要信息与解密所述MAC得到的结果是否一致,例如是否相等,如果一致,则所述控制信息合法;否则,所述控制信息非法。
同样,考虑到在所述控制信息中携带相应通信号码存在安全隐患,还可以在相应通信终端中保存对应的通信号码,这样就不需要在所述控制信息中携带所述通信号码。例如:
在步骤21中,在产生所述MAC时,根据相应通信终端的通信号码和当前时间的分钟数值进行摘要计算得到一个摘要信息,而后用第一密钥对该摘要信息进行加密,将加密结果作为MAC。相应地,在步骤22中,根据所保存的通信号码和当前时间的分钟数值进行摘要计算得到一个摘要信息,并用第二密钥解密接收的所述MAC,判断计算得到的摘要信息与解密所述MAC得到的结果是否一致,例如是否相等,如果一致,则所述控制信息合法;否则,所述控制信息非法。
下面列举了几例更加详细的实施例,用于阐述所述控制信息验证方法在相关IMClient控制流程中的应用。
为了便于描述,本发明以如图2所示的IMN组网图为例,但不用于限定。在该图中:
A服务商(SP-A)的HSvr为HSvr-A,其中,注册有用户A(UsrA)和用户X(UsrX);
B服务商(SP-B)的HSvr为HSvr-B,其中,注册有用户B(UsrB)和用户Y(UsrY);
C服务商(SP-C)的HSvr为HSvr-C,其中,注册有用户C(UsrC)和用户Z(UsrZ);
D服务商(SP-D)的HSvr为HSvr-D,其中,注册有用户D(UsrD)和用户O(UsrO)。
为便于理解,以SP-A是腾讯、SP-B是网易、SP-C是微软、SP-D是中国移动飞信为例,以HCode值139.com归属于HSvr-D,HCode值Outlook.com归属于HSvr-C,HCode值163.com归属于HSvr-B,HCode值qq.com归属于HSvr-A等等,为例。
为便于叙述,以HSvr-A、HSvr-B、HSvr-C、HSvr-D相互之间都建有SS连接为例,但不用于限定本发明。关于SS连接,参见所述《通信方法和系统》发明专利。
在互联网中,关于不同IUsr之间的通信方法,参见所述《通信方法和系统》发明专利,或所述《影码寻址方法》发明专利。本发明不再摘举相关用例。
为方便理解,下面以{账户信息中包括通信号码属性}为例,但不用于限定本发明。
例2-101:手机号码为13316882223的电信用户,在HSvr-D中注册了飞信账户,对应的帐号为13316882223@139.com,对应的通信号码属性设置为13316882223。在号码为13316882223的通信终端上,设置了所述主叫-IMClient表。在HSvr-D中设置了私钥,作为第一密钥。在号码为13316882223的通信终端上,针对相应的IMClient保存了公钥,作为第二密钥。这里,以{在所述主叫-IMClient表中增加一个密钥字段,用于保存相应IMClient所对应的第二密钥}为例。
下面步骤将展示在相应的通信终端侧,如何对一个控制短消息进行验证。
步骤2-101、HSvr-D接收语音呼叫消息,所述语音呼叫消息包含的被叫(ToUsr)为13316882223@139.com,主叫(FromUsr)为liubei@outlook.com,该语音呼叫消息中还包括主叫IMClient的IP地址。也即,帐号为liubei@outlook.com的账户向帐号为13316882223@139.com的飞信账户发起语音呼叫。
例如,帐号为liubei@outlook.com账户的IMClient向HSvr-C发送语音呼叫请求,请求消息中包含的ToUsr值为13316882223@139.com,FromUsr值为liubei@outlook.com,对应的IP地址为空值。HSvr-C收到该语音呼叫消息后,将该消息中的IP地址信元设置为所述IMClient的IP地址,并在判断出ToUsr值13316882223@139.com归属于HSvr-D后,将该消息发送给HSvr-D。
在互联网中,关于不同IUsr之间的通信方法,例如,UsrA给UsrB发送一条信息的方法,参见所述《通信方法和系统》发明专利,或所述《影码寻址方法》发明专利,这里不再摘举相关用例。后面不再就此类情况赘述。
步骤2-102、HSvr-D根据ToUsr确定相应的账户,即帐号为13316882223@139.com的飞信账户,判断该账户是否处于在线状态,如果是,则向该账户对应的IMClient发送语音呼叫消息,然后结束流程;否则,即判断该账户没有处于在线状态,则继续执行下面流程。
这里,如果所述账户不是在线状态,例如该账户对应的IMClient没有启动,则HSvr-D无法向所述IMClient发送呼叫信息,因此,继续执行下面流程。
步骤2-103、HSvr-D构造短消息,将所确定账户的通信号码属性值13316882223作为该短消息的被叫号码;根据所述短消息的被叫号码和当前时间T1的分钟数值(也即T1(60).LTRP值)进行摘要计算得到一个摘要信息,而后用第一密钥对该摘要信息进行加密,将加密结果作为MAC,在该短消息内容中携带所述MAC;将该短消息发送出去,其中,短消息的主叫号码为1065905790015160169。
这里,在HSvr-D中可以直接包括移动通信接入模块,以用于发送短消息。
一般地,HSvr-D可以直接连接到一个SMSC,通过该SMSC来发送短消息。例如,在HSvr-D中设置SME,将所述短消息发送给设置的SME,通过该SME,将所述短消息发送给相应SMSC,由该SMSC将所述要发送的短消息发送出去,即发往被叫号码对应的通信终端。
所述短消息的主叫号码是由HSvr-D填写,还是由相应的设置的SME来填写,将由相应SP自己选择。由于相关SP通过设置SME发送短消息是公知技术、成熟应用,因此,这里不再赘述。
还例如,HSvr-D通过采用CMPP协议,接入到相应的ISMG,通过该ISMG将要发送的短消息发送到相应的SMSC,由该SMSC将该短消息发往被叫用户的通信终端。这种情况下,所述短消息的主叫号码一般由HSvr-D填写。当然,在每个SP申请的短消息类服务接入代码唯一的情况下,所述短消息的主叫号码也可以是由接入的ISMG来填写。
实际当中,相应SP向相应通信终端发送各种短消息的业务,已有成熟技术和应用。因此,本发明不再就一个HSvr如何发送一个短消息进行赘述。
步骤2-104、13316882223对应的通信终端接收到所述短消息后,用该短消息的主叫号码,匹配所述主叫-IMClient表中ClientID列里的通信号码,以判断该短消息是否为控制短消息,由于主叫号码1065905790015160169出现在所述主叫-IMClient表的ClientID列中,因此,该通信终端将该短消息作为控制短消息来处理,也即继续执行下面流程。
这里,如果判断出所述短消息不是一个控制短消息,则直接结束本流程。
在步骤2-104中,在匹配到相应的记录后,还同时确定了对应的IMClient以及对应保存的第二密钥。
步骤2-105、13316882223对应的通信终端获取T1的估值T1e;根据所述短消息的被叫号码和T1e的分钟数值(也即T1e(60).LTRP值)进行相应的摘要计算,得到一个摘要信息,并用对应所述IMClient保存的第二密钥解密所述短消息内容中携带的MAC,判断计算得到的摘要信息与解密所述MAC得到的结果是否一致,例如是否相同,如果一致,则视所述短消息合法;否则,视所述短消息非法。
在所述短消息中可以携带所述短消息的被叫号码,这样,在步骤2-105中,就可以直接从短消息中获取对应的被叫号码。实际当中,可以在所述通信终端一侧保存对应的通信号码,这样,在步骤2-105中,将保存的通信号码作为所述短消息的被叫号码。
在步骤2-105中,所述通信终端在判断一个控制短消息为非法时,可以结束处理,这样,就不再执行启动相应IMClient,或者向已经启动的IMClient传送相关信息的操作。这样,就有效避免了非法短消息的骚扰。
如果产生所述MAC时不考虑通信号码参与运算的情况,则:在步骤2-103中,产生所述MAC时,可以直接用第一密钥对当前时间T1的分钟数值进行加密得到。相应地,所述步骤2-105是:13316882223对应的通信终端,获取T1的估值T1e;用对应所述IMClient保存的第二密钥解密所述短消息内容中携带的MAC,判断T1e的分钟数值与解密所述MAC得到的结果是否一致,例如是否相同,如果一致,则视所述短消息合法;否则,视所述短消息非法。
这里,T1e可以直接是通信终端侧时间T2。T2可以是接收所述控制信息的时间,也即短消息接收时间,也可以是通信终端侧当前时间值。
如果考虑TIA因素,则将(T2-TIA)值作为T1e。
例2-201:手机号码为13316882223的电信用户,在HSvr-D中注册了飞信账户,对应的帐号为13316882223@139.com,对应的通信号码属性设置为13316882223。在号码为13316882223的通信终端上,设置了所述主叫-IMClient表。在HSvr-D中,在13316882223@139.com对应的飞信账户中,保存第一密钥。在号码为13316882223的通信终端上,针对相应的IMClient保存第二密钥。所述第一密钥与所述第二密钥是对称密钥。这里,以{在所述主叫-IMClient表中增加一个密钥字段,用于保存相应IMClient所对应的第二密钥}为例。
下面步骤将展示在相应的通信终端侧,如何对一个控制短消息进行验证。
步骤2-201、同步骤2-101。
步骤2-202、同步骤2-102。
步骤2-203、HSvr-D构造短消息,将所确定账户的通信号码属性值13316882223作为该短消息的被叫号码;用第一密钥、所述短消息的被叫号码和当前时间的分钟数值进行摘要计算,将计算结果作为MAC,在该短消息内容中携带所述MAC;将该短消息发送出去,其中,短消息的主叫号码为1065905790015160169。
步骤2-204、13316882223对应的通信终端接收到所述短消息后,用该短消息的主叫号码,匹配所述主叫-IMClient表中ClientID列里的通信号码,以判断该短消息是否为控制短消息,由于主叫号码1065905790015160169出现在所述主叫-IMClient表的ClientID列中,因此,该通信终端将该短消息作为控制短消息来处理,也即继续执行下面流程。
这里,如果判断出所述短消息不是一个控制短消息,则直接结束本流程。
在步骤2-204中,在匹配到相应的记录后,还同时确定了对应的IMClient以及对应保存的第二密钥。
步骤2-205、13316882223对应的通信终端获取T1的估值T1e;根据对应所述IMClient保存的第二密钥、所述短消息的被叫号码和T1e的分钟数值进行相应的摘要计算,判断计算结果和所述短消息内容中携带的MAC是否一致,例如是否相等,如果一致,则视所述短消息合法;否则,视所述短消息非法。
在所述短消息中可以携带所述短消息的被叫号码,这样,在步骤2-205中,就可以直接从短消息中获取对应的被叫号码。实际当中,可以在所述通信终端一侧保存对应的通信号码,这样,在步骤2-205中,将保存的通信号码作为所述短消息的被叫号码。
如果产生所述MAC时不考虑通信号码参与运算的情况,则:在步骤2-203中,产生所述MAC时,可以直接用第一密钥和当前时间T1的分钟数值进行摘要计算得到。相应地,所述步骤2-205是:13316882223对应的通信终端,获取T1的估值T1e;根据对应所述IMClient保存的第二密钥和T1e的分钟数值进行摘要计算,判断计算结果和所述短消息内容中携带的MAC是否一致,例如是否相等,如果一致,则视所述短消息合法;否则,视所述短消息非法。
这里,T1e可以直接是通信终端侧时间T2。T2可以是接收所述控制信息的时间,也即短消息接收时间,也可以是通信终端侧当前时间值。
如果考虑TIA因素,则将(T2-TIA)值作为T1e。
例2-301:手机号码为13316882223的电信用户,在HSvr-D中注册了飞信账户,对应的帐号为13316882223@139.com,对应的通信号码属性设置为13316882223。在号码为13316882223的通信终端上,设置了所述主叫-IMClient表。在HSvr-D中设置了私钥,作为第一密钥。在号码为13316882223的通信终端上,相应的IMClient保存了对应的公钥,作为第二密钥。
下面步骤将展示相应的通信终端上,对应的IMClient如何对一个控制短消息进行验证。
步骤2-301、同步骤2-101。
步骤2-302、同步骤2-102。
步骤2-303、HSvr-D构造短消息,将所确定账户的通信号码属性值13316882223作为该短消息的被叫号码;根据所述短消息的被叫号码和当前时间T1的分钟数值(也即T1(60).LTRP值)进行摘要计算得到一个摘要信息,而后用第一密钥对该摘要信息进行加密,将加密结果作为MAC,在该短消息内容中携带所述MAC;将该短消息发送出去,其中,短消息的主叫号码为1065905790015160169。
步骤2-304、13316882223对应的通信终端接收到所述短消息后,用该短消息的主叫号码,匹配所述主叫-IMClient表中ClientID列里的通信号码,以判断该短消息是否为控制短消息,由于主叫号码1065905790015160169出现在所述主叫-IMClient表的ClientID列中,因此,该通信终端将该短消息作为控制短消息来处理,也即继续执行下面流程。
这里,如果判断出所述短消息不是一个控制短消息,则直接结束本流程。
在步骤2-304中,在匹配到相应的记录后,还同时确定了对应的IMClient。
步骤2-305、13316882223对应的通信终端根据主叫号码1065905790015160169对应的IMClient的可执行文件名C:\Program Files\China Mobile\Fetion\Fetion.exe启动对应的IMClient,即启动相应的飞信客户端,并在启动所述IMClient时,或者在启动所述IMClient之后,将所述短消息的被叫号码、短消息接收时间、短消息内容等信息传送给该IMClient。
在所述短消息中可以携带所述短消息的被叫号码,这样,在步骤2-305中,就可以直接从短消息中获取对应的被叫号码。实际当中,可以在所述通信终端中保存对应的通信号码,这样,在步骤2-305中,将保存的通信号码作为所述短消息的被叫号码。
步骤2-306、所述IMClient启动后,获取T1的估值T1e;根据所述短消息的被叫号码和T1e的分钟数值进行摘要计算得到一个摘要信息,并用第二密钥解密所述短消息内容中携带的MAC,判断计算得到的摘要信息与解密所述MAC得到的结果是否一致,例如是否相同,如果一致,则视所述短消息合法;否则,视所述短消息非法。
在步骤2-306中,所述IMClient在判断所述短消息非法后,可以关闭该IMClient。这样就可以阻止通过骚扰短消息正常运行一个通信终端中对应IMClient的非法行为。
在步骤2-305中,在启动所述IMClient之前,如果判断该IMClient已经运行,可以直接将所述短消息的被叫号码、短消息接收时间、短消息内容等信息传送给该IMClient。而后不执行步骤2-306,而是执行步骤2-306B:所述IMClient接收到所述相关信息后,获取T1的估值T1e;根据所述短消息的被叫号码和T1e的分钟数值进行摘要计算得到一个摘要信息,并用第二密钥解密所述短消息内容中携带的MAC,判断计算得到的摘要信息与解密所述MAC得到的结果是否一致,例如是否相同,如果一致,则视所述短消息合法;否则,视所述短消息非法。在步骤2-306B中,所述IMClient在判断所述短消息非法后,可以直接结束流程。这样,也可以有效避免非法短消息的骚扰。
如果产生所述MAC时不考虑通信号码参与运算的情况,则:在步骤2-303中,产生所述MAC时,可以直接用第一密钥对当前时间T1的分钟数值进行加密得到。相应地,所述步骤2-306是:所述IMClient启动后,获取T1的估值T1e;用第二密钥解密所述短消息内容中携带的MAC,判断T1e的分钟数值与解密所述MAC得到的结果是否一致,例如是否相同,如果一致,则视所述短消息合法;否则,视所述短消息非法。
这里,T1e可以直接是通信终端侧时间T2。T2可以是接收所述控制信息的时间,也即短消息接收时间,也可以是通信终端侧当前时间值。需要说明的是,在步骤2-305中,所述通信终端也可以不将短消息接收时间传送给对应的IMClient,这种情况下,T2直接取通信终端侧当前时间值。
如果考虑TIA因素,则将(T2-TIA)值作为T1e。
实际当中,所述通信终端可以不直接对一个控制短消息进行解析,而是将所述控制短消息的相关信息直接传送给相应的IMClient,由该IMClient来进行验证。例如,通信终端在接收到一个控制短消息后,并不对该控制短消息内容做任何分析,而是将该控制短消息作为一个整体,透明传送给该IMClient。这样,各个SP可以根据自己的业务需要来定义作为控制信息的短消息,从而具有更好的可扩展性。
例2-401:手机号码为13316882223的电信用户,在HSvr-D中注册了飞信账户,对应的帐号为13316882223@139.com,对应的通信号码属性设置为13316882223。在号码为13316882223的通信终端上,设置了所述主叫-IMClient表。在HSvr-D中,在13316882223@139.com对应的飞信账户中,保存第一密钥。在号码为13316882223的通信终端上,相应的IMClient保存对应的第二密钥。所述第一密钥与所述第二密钥是对称密钥。
下面步骤将展示相应的通信终端上,对应的IMClient如何对一个控制短消息进行验证。
步骤2-401、同步骤2-101。
步骤2-402、同步骤2-102。
步骤2-403、HSvr-D构造短消息,将所确定账户的通信号码属性值13316882223作为该短消息的被叫号码;用第一密钥、所述短消息的被叫号码和当前时间的分钟数值进行摘要计算,将计算结果作为MAC,在该短消息内容中携带所述MAC;将该短消息发送出去,其中,短消息的主叫号码为1065905790015160169。
步骤2-404、13316882223对应的通信终端接收到所述短消息后,用该短消息的主叫号码,匹配所述主叫-IMClient表中ClientID列里的通信号码,以判断该短消息是否为控制短消息,由于主叫号码1065905790015160169出现在所述主叫-IMClient表的ClientID列中,因此,该通信终端将该短消息作为控制短消息来处理,也即继续执行下面流程。
这里,如果判断出所述短消息不是一个控制短消息,则直接结束本流程。
在步骤2-404中,在匹配到相应的记录后,还同时确定了对应的IMClient。
步骤2-405、13316882223对应的通信终端根据主叫号码1065905790015160169对应的IMClient的可执行文件名C:\Program Files\China Mobile\Fetion\Fetion.exe启动对应的IMClient,即启动相应的飞信客户端,并在启动所述IMClient时,或者在启动所述IMClient之后,将所述短消息的被叫号码、短消息接收时间、短消息内容等信息传送给该IMClient。
在所述短消息中可以携带所述短消息的被叫号码,这样,在步骤2-405中,就可以直接从短消息中获取对应的被叫号码。实际当中,可以在所述通信终端中保存对应的通信号码,这样,在步骤2-405中,将保存的通信号码作为所述短消息的被叫号码。
步骤2-406、所述IMClient启动后,获取T1的估值T1e;用所述第二密钥、所述短消息的被叫号码和T1e的分钟数值进行摘要计算,判断计算结果和所述短消息内容中携带的MAC是否一致,例如是否相等,如果一致,则视所述短消息合法;否则,视所述短消息非法。
如果产生所述MAC时不考虑通信号码参与运算的情况,则:在步骤2-403中,产生所述MAC时,可以直接用第一密钥和当前时间T1的分钟数值进行摘要计算得到。相应地,所述步骤2-406是:所述IMClient启动后,获取T1的估值T1e;用所述第二密钥和T1e的分钟数值进行摘要计算,判断计算结果和所述短消息内容中携带的MAC是否一致,例如是否相等,如果一致,则视所述短消息合法;否则,视所述短消息非法。
这里,T1e可以直接是通信终端侧时间T2。T2可以是接收所述控制信息的时间,也即短消息接收时间,也可以是通信终端侧当前时间值。需要说明的是,在步骤2-405中,所述通信终端也可以不将短消息接收时间传送给对应的IMClient,这种情况下,T2直接取通信终端侧当前时间值。
如果考虑TIA因素,则将(T2-TIA)值作为T1e。
例2-501:手机号码为13316882223的电信用户,在HSvr-D中注册了飞信账户,对应的帐号为13316882223@139.com,对应的通信号码属性设置为13316882223。在号码为13316882223的通信终端上,设置了所述主叫-IMClient表。在HSvr-D中,在13316882223@139.com对应的飞信账户中,设置了私钥,作为第一密钥。在号码为13316882223的通信终端上,相应的IMClient保存了对应的公钥,作为第二密钥。约定RSL=50秒。
下面步骤将展示相应的通信终端上,对应的IMClient如何对一个控制短消息进行验证。
步骤2-501、同步骤2-101。
步骤2-502、同步骤2-102。
步骤2-503、HSvr-D构造短消息,将所确定账户的通信号码属性值13316882223作为该短消息的被叫号码;产生一个随机数,根据所述随机数和当前时间T1进行摘要计算得到一个摘要信息,而后用第一密钥对该摘要信息进行加密,将加密结果作为MAC,在该短消息内容中携带所述MAC、所述随机数和T1(RSL).LOD的值;将该短消息发送出去,其中,短消息的主叫号码为1065905790015160169。
步骤2-504、13316882223对应的通信终端接收到所述短消息后,用该短消息的主叫号码,匹配所述主叫-IMClient表中ClientID列里的通信号码,以判断该短消息是否为控制短消息,由于主叫号码1065905790015160169出现在所述主叫-IMClient表的ClientID列中,因此,该通信终端将该短消息作为控制短消息来处理,也即继续执行下面流程。
这里,如果判断出所述短消息不是一个控制短消息,则直接结束本流程。
在步骤2-504中,在匹配到相应的记录后,还同时确定了对应的IMClient。
步骤2-505、13316882223对应的通信终端根据主叫号码1065905790015160169对应的IMClient的可执行文件名C:\Program Files\China Mobile\Fetion\Fetion.exe启动对应的IMClient,即启动相应的飞信客户端,并在启动所述IMClient时,或者在启动所述IMClient之后,将所述短消息的短消息内容等信息传送给该IMClient。
步骤2-506、所述IMClient启动后,获取T1的估值T1e;根据所述随机数和T1e进行摘要计算得到一个摘要信息,并用第二密钥解密所述短消息内容中携带的MAC,判断计算得到的摘要信息与解密所述MAC得到的结果是否一致,例如是否相同,如果一致,则视所述短消息合法;否则,视所述短消息非法。
如果产生所述MAC时,不考虑掺入随机数因素,则所述步骤2-503是:HSvr-D构造短消息,将所确定账户的通信号码属性值13316882223作为该短消息的被叫号码;用第一密钥对当前时间T1进行加密,将加密结果作为MAC,在该短消息内容中携带所述MAC和T1(RSL).LOD的值;将该短消息发送出去,其中,短消息的主叫号码为1065905790015160169。相应地,所述步骤2-506是:所述IMClient启动后,获取T1的估值T1e;用第二密钥解密所述短消息内容中携带的MAC,判断T1e与解密所述MAC得到的结果是否一致,例如是否相同,如果一致,则视所述短消息合法;否则,视所述短消息非法。
一般地,在计算MAC时,混杂产生的随机数,可以增强验证流程的安全性。
可以根据通信终端侧当前时间T2和所携带的T1(RSL).LOD的值得到T1e。例如:
若不考虑TIA因素,则T1e=T2-((T2-T1(RSL).LOD)mod RSL)
=T2-((T2–T1(50).LOD)mod 50)
若考虑TIA因素,则T1e=(T2-TIA)-(((T2-TIA)-T1(RSL).LOD)mod RSL)
=(T2-TIA)-(((T2-TIA)–T1(50).LOD)mod 50)
例2-601:手机号码为13316882223的电信用户,在HSvr-D中注册了飞信账户,对应的帐号为13316882223@139.com,对应的通信号码属性设置为13316882223。在号码为13316882223的通信终端上,设置了所述主叫-IMClient表。在HSvr-D中,在13316882223@139.com对应的飞信账户中,保存第一密钥。在号码为13316882223的通信终端上,相应的IMClient保存对应的第二密钥。所述第一密钥与所述第二密钥是对称密钥。约定RSL=50秒。
下面步骤将展示相应的通信终端上,对应的IMClient如何对一个控制短消息进行验证。
步骤2-601、同步骤2-101。
步骤2-602、同步骤2-102。
步骤2-603、HSvr-D构造短消息,将所确定账户的通信号码属性值13316882223作为该短消息的被叫号码;产生一个随机数,用第一密钥、所述随机数和当前时间T1进行摘要计算,将计算结果作为MAC,在该短消息内容中携带所述MAC、所述随机数和T1(RSL).LOD的值;将该短消息发送出去,其中,短消息的主叫号码为1065905790015160169。
步骤2-604、13316882223对应的通信终端接收到所述短消息后,用该短消息的主叫号码,匹配所述主叫-IMClient表中ClientID列里的通信号码,以判断该短消息是否为控制短消息,由于主叫号码1065905790015160169出现在所述主叫-IMClient表的ClientID列中,因此,该通信终端将该短消息作为控制短消息来处理,也即继续执行下面流程。
这里,如果判断出所述短消息不是一个控制短消息,则直接结束本流程。
在步骤2-604中,在匹配到相应的记录后,还同时确定了对应的IMClient。
步骤2-605、13316882223对应的通信终端根据主叫号码1065905790015160169对应的IMClient的可执行文件名C:\Program Files\China Mobile\Fetion\Fetion.exe启动对应的IMClient,即启动相应的飞信客户端,并在启动所述IMClient时,或者在启动所述IMClient之后,将所述短消息的短消息内容等信息传送给该IMClient。
步骤2-606、所述IMClient启动后,获取T1的估值T1e;用所述第二密钥、所携带的随机数和T1e进行相应的摘要计算,判断计算结果和所述短消息内容中携带的MAC是否一致,例如是否相等,如果一致,则视所述短消息合法;否则,视所述短消息非法。
如果产生所述MAC时,不考虑掺入随机数因素,则所述步骤2-603是:HSvr-D构造短消息,将所确定账户的通信号码属性值13316882223作为该短消息的被叫号码;用第一密钥和当前时间T1进行摘要计算,将计算结果作为MAC,在该短消息内容中携带所述MAC和T1(RSL).LOD的值;将该短消息发送出去,其中,短消息的主叫号码为1065905790015160169。相应地,所述步骤2-606是:所述IMClient启动后,获取T1的估值T1e;用所述第二密钥和T1e进行相应的摘要计算,判断计算结果和所述短消息内容中携带的MAC是否一致,例如是否相等,如果一致,则视所述短消息合法;否则,视所述短消息非法。
可以根据通信终端侧当前时间T2和所携带的T1(RSL).LOD的值得到T1e。例如:
若不考虑TIA因素,则T1e=T2-((T2-T1(RSL).LOD)mod RSL)
=T2-((T2–T1(50).LOD)mod 50)
若考虑TIA因素,则T1e=(T2-TIA)-(((T2-TIA)-T1(RSL).LOD)mod RSL)
=(T2-TIA)-(((T2-TIA)–T1(50).LOD)mod 50)
在步骤22中,所述验证操作由相应的IMClient来完成时,相应的通信终端在收到所述控制信息后,可以直接将所述控制信息传送给该IMClient。
关于本发明的一些实施例,还可以参见同时提交的《自动登录方法》发明专利,这里不再摘抄。
本发明中,所述通信终端可以是移动终端,例如手机,或安装移动通信终端模块(例如一些无线上网卡等数据卡)的笔记本电脑或iPad等等;也可以是固定终端,例如固定电话,或安装移动通信终端模块(例如数据卡)的台式电脑;或者是:集成了移动通信终端模块的任意装置。
上述相关实施例中,通信终端向一个IMClient传送信息的方式有多种多样,下面从所述《控制信息处理方法》发明专利中原文摘录如下:
通信终端在启动IMClient时,向IMClient传送所述相关信息,可以选择如下几种方式之一:
1、通过命令行参数的形式向所述IMClient传送相关信息。
2、通过写文件方式向所述IMClient传送相关信息。
这种情况下,通信终端在启动所述IMClient之前,将要传送的相关信息写入文件,然后启动相应的IMClient。所述IMClient启动后,从所述文件中读取相关信息。
通信终端和所述IMClient可以约定一个用于中转所述信息的文件的文件名,例如,该文件名的主名与该IMClient的可执行文件名的主名相同,但对应的扩展名为约定值,例如为tst(transit的缩写)。
3、通过短消息收件箱向所述IMClient传送所述相关信息。
一般地,所述相关信息直接是控制短消息或包含在所述控制短消息中。
这种情况下,通信终端在启动所述IMClient之前,将接收的控制短消息保存到短消息收件箱,然后启动相应的IMClient。所述IMClient启动后,直接从短消息收件箱中读取相应的控制信息。例如,直接读取最新写入短消息收件箱的短消息。
让IMClient直接将最新短消息作为控制短消息的做法可能会产生差错,例如,在所述IMClient启动时,通信终端有收到一条普通短消息。
较佳地,按照所述控制短消息识别方法,来从短消息收件箱中识别出承载了控制信息的短消息。例如,以{所述ClientID直接是控制短消息的主叫号码}为例,所述IMClient可以保存自己的ClientID,所述IMClient在从所述短消息收件箱中读取相应短消息时,选择主叫号码匹配保存的ClientID的短消息。
如果所述IMClient从短消息收件箱中没有读取到相应的控制短消息,则按照现有的正常流程处理。
实际当中,IMClient在每次启动时,都可以执行读取短消息收件箱操作,并在读取到相应控制短消息后,将该短消息标记为已读或者干脆删除该短消息。
例如,所述IMClient在读取相应的控制短消息后,将该短消息删除。
还例如,所述IMClient在读取相应的控制短消息后,可以将该短消息标记为已读。这种情况下,所述IMClient在读取相应短消息时,只选择读取那些标记为未读状态的短消息。
通信终端向已经运行中的IMClient传送相关信息时,可以选择如下方式之一:
1、通过共享内存的方式,向所述IMClient传送相关信息。
2、通过通信终端平台的系统消息的方式,向所述IMClient传送相关信息。例如,通信终端提供一些回调函数接口,由各个IMClient创建回调函数,并注册该回调函数。所述通信终端在需要给相应IMClient传送信息时,调用该IMClient注册的回调函数来向该IMClient传递信息。
3、通过写文件的方式,向所述IMClient传送相关信息。例如,通信终端将要传送的信息写入一个文件,然后关闭;所述IMClient在特定时间,例如刚刚启动时,或者是周期地,例如每秒中一次,等等方式,去读相应的文件,看是否有新内容写入,从而获取通信终端传送的信息,并在读后,关闭该文件。这种做法效率较低,还要处理读写冲突。
4、通过TCP协议通信方式,向所述IMClient传送相关信息。例如,通信终端提供一个端口号,所述IMClient在启动后,根据该端口号与通信终端建立TCP通信连接。通过该通信连接,通信终端向该IMClient传送信息。
由于进程之间信息交互是成熟技术,因此这里不再赘述。
特别地,所述相关信息直接是控制短消息或包含在所述控制短消息中,所述通信终端通过短消息收件箱向所述IMClient传送相关信息。所述通信终端收到所述控制短消息后,将该短消息保存到短消息收件箱中。然后按照上述1至4中所述方式之一,向所述IMClient传送一个通知,告诉该IMClient,通信终端收到了一个控制信息。这样,在所述IMClient收到所述通知后,直接从所述短消息收件箱中读取相应的控制信息。关于如何从短消息收件箱中识别出控制短消息,可以参见所述控制短消息识别方法。当然,所述通知中可以携带一个短消息的编号,这样,所述IMClient收到所述通知后,可以直接根据携带的编号来确定对应的控制短消息。
以上仅为本发明的较佳实施方式或实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之类,所作的任何修改、改进、等同替换等均应包含在本发明的保护范围之内。

Claims (5)

1.一种控制信息验证方法,其特征在于,在HSvr侧保存第一密钥,在通信终端侧保存第二密钥;所述方法包括以下步骤:
a、在HSvr侧,在发送控制信息时,根据所述第一密钥与第一鉴权混杂参数(AMP),即AMP1,进行计算得到一个消息认证编码(MAC),在所述控制信息中携带该MAC;
b、在通信终端侧,在收到所述控制信息后,根据第二密钥和对应的第二AMP,即AMP2,来对所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法;
所述方法还包括:在HSvr侧,针对一个账户设置一个服务器鉴权用序列号(SQNSVR),在相应的通信终端侧设置一个客户端鉴权用序列号(SQNCLIENT);SQNSVR的初始值设置为1,SQNCLIENT的初始值设置为0;
步骤a进一步是:在HSvr侧,在发送控制信息时,将SQNSVR作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC,然后将SQNSVR值增加1;
相应地,步骤b进一步是:在通信终端侧,在收到所述控制信息后,将SQNCLIENT+1作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法,并将SQNCLIENT的值增加1;否则,将所述控制信息视为非法。
2.一种控制信息验证方法,其特征在于,在HSvr侧保存第一密钥,在通信终端侧保存第二密钥;所述方法包括以下步骤:
a、在HSvr侧,在发送控制信息时,根据所述第一密钥与第一AMP,即AMP1,进行计算得到一个MAC,在所述控制信息中携带该MAC;
b、在通信终端侧,在收到所述控制信息后,根据第二密钥和对应的第二AMP,即AMP2,来对所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法;
所述方法还包括:在HSvr侧,针对对应账户设置一个SQNSVR作为所述AMP1,在相应的通信终端侧设置一个SQNCLIENT,SQNSVR的初始值设置为1,SQNCLIENT的初始值设置为0;
在步骤a中,在所述控制信息中还携带参与计算所述MAC的AMP1;并且,在产生所述MAC后将SQNSVR值增加1;
相应地,步骤b进一步是:在通信终端侧,在收到所述控制信息后,先根据SQNCLIENT判断所携带的AMP1是否可接受,如果不可接受,则直接将所述控制信息视为非法,并结束流程;
在步骤b中,如果判断出所述AMP1可接受,则将AMP1作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法,并将SQNCLIENT的值更新为AMP1;否则,将所述控制信息视为非法。
3.一种控制信息验证方法,其特征在于,在HSvr侧保存第一密钥,在通信终端侧保存第二密钥;所述方法包括以下步骤:
a、在HSvr侧,在发送控制信息时,根据所述第一密钥与第一鉴权混杂参数(AMP),即AMP1,进行计算得到一个消息认证编码(MAC),在所述控制信息中携带该MAC;
b、在通信终端侧,在收到所述控制信息后,根据第二密钥和对应的第二AMP,即AMP2,来对所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法;
所述AMP1是HSvr侧系统当前时间值T1;所述方法还包括:在相应的通信终端侧设置一个SQNCLIENT,SQNCLIENT的初始值设置为0;
在步骤a中,在所述控制信息中还携带参与计算所述MAC的AMP1;
相应地,步骤b进一步是:在通信终端侧,在收到所述控制信息后,先根据SQNCLIENT判断所述AMP1是否可接受,如果不可接受,则直接将所述控制信息视为非法,并结束流程;
在步骤b中,如果判断出所述AMP1可接受,则将AMP1作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法,并将SQNCLIENT的值更新为AMP1;否则,将所述控制信息视为非法。
4.一种控制信息验证方法,其特征在于,在HSvr侧保存第一密钥,在通信终端侧保存第二密钥;所述方法包括以下步骤:
a、在HSvr侧,在发送控制信息时,根据所述第一密钥与第一AMP,即AMP1,进行计算得到一个MAC,在所述控制信息中携带该MAC;
b、在通信终端侧,在收到所述控制信息后,根据第二密钥和对应的第二AMP,即AMP2,来对所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法;
所述AMP1是HSvr侧系统当前时间值T1;
在步骤a中,在所述控制信息中还携带参与计算所述MAC的AMP1;
相应地,步骤b进一步是:在通信终端侧,在收到所述控制信息后,先根据通信终端侧时间值T2判断所述AMP1是否可接受,如果不可接受,则直接将所述控制信息视为非法,并结束流程;
在步骤b中,如果判断出AMP1可接受,则将AMP1作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
5.一种控制信息验证方法,其特征在于,在HSvr侧保存第一密钥,在通信终端侧保存第二密钥;所述方法包括以下步骤:
a、在HSvr侧,在发送控制信息时,根据所述第一密钥与第一AMP,即AMP1,进行计算得到一个MAC,在所述控制信息中携带该MAC;
b、在通信终端侧,在收到所述控制信息后,根据第二密钥和对应的第二AMP,即AMP2,来对所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法;
步骤a进一步是:在HSvr侧,在发送控制信息时,将获取的HSvr侧当前时间值T1作为AMP1;根据第一密钥和AMP1产生一个MAC,在所述控制信息中携带该MAC和T1(RSL).LOD的值;
相应地,步骤b进一步是:在通信终端侧,在收到所述控制信息后,根据通信终端侧时间值T2和所携带的T1(RSL).LOD的值,获取T1的估值T1e,将T1e作为AMP2;根据第二密钥和AMP2对所述控制信息中携带的所述MAC进行验证,判断验证是否通过,如果通过,则将所述控制信息视为合法;否则,将所述控制信息视为非法。
CN201410245767.0A 2013-09-08 2014-06-04 控制信息验证方法 Active CN104427504B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410245767.0A CN104427504B (zh) 2013-09-08 2014-06-04 控制信息验证方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2013104040836 2013-09-08
CN201310404083 2013-09-08
CN201410245767.0A CN104427504B (zh) 2013-09-08 2014-06-04 控制信息验证方法

Publications (2)

Publication Number Publication Date
CN104427504A CN104427504A (zh) 2015-03-18
CN104427504B true CN104427504B (zh) 2019-04-19

Family

ID=52974748

Family Applications (5)

Application Number Title Priority Date Filing Date
CN201910845188.2A Pending CN111262775A (zh) 2013-09-08 2014-06-04 控制信息分流方法
CN201410244991.8A Pending CN104426751A (zh) 2013-09-08 2014-06-04 控制信息处理方法
CN201910845106.4A Pending CN111212021A (zh) 2013-09-08 2014-06-04 控制信息识别方法
CN201410244939.2A Pending CN104426904A (zh) 2013-09-08 2014-06-04 自动登录方法
CN201410245767.0A Active CN104427504B (zh) 2013-09-08 2014-06-04 控制信息验证方法

Family Applications Before (4)

Application Number Title Priority Date Filing Date
CN201910845188.2A Pending CN111262775A (zh) 2013-09-08 2014-06-04 控制信息分流方法
CN201410244991.8A Pending CN104426751A (zh) 2013-09-08 2014-06-04 控制信息处理方法
CN201910845106.4A Pending CN111212021A (zh) 2013-09-08 2014-06-04 控制信息识别方法
CN201410244939.2A Pending CN104426904A (zh) 2013-09-08 2014-06-04 自动登录方法

Country Status (1)

Country Link
CN (5) CN111262775A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006137625A1 (en) * 2005-06-22 2006-12-28 Electronics And Telecommunications Research Institute Device for realizing security function in mac of portable internet system and authentication method using the device
CN1980124A (zh) * 2005-12-05 2007-06-13 刘任 使用一次性变量的密钥数字认证方法
CN101060405A (zh) * 2006-04-19 2007-10-24 华为技术有限公司 防止重放攻击的方法及系统
CN101141680A (zh) * 2007-09-30 2008-03-12 中兴通讯股份有限公司 短消息加密发送和接收方法
CN101621764A (zh) * 2009-08-07 2010-01-06 中兴通讯股份有限公司 基于Java Push机制手机通讯应用的信息传送方法及系统
CN103166907A (zh) * 2011-05-05 2013-06-19 王正伟 相对同步认证方法、认证系统及装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1207876C (zh) * 2000-06-15 2005-06-22 国际商业机器公司 短消息网关、向移动电话提供信息服务的系统和方法
US7634280B2 (en) * 2005-02-17 2009-12-15 International Business Machines Corporation Method and system for authenticating messages exchanged in a communications system
CN100556046C (zh) * 2005-04-06 2009-10-28 中兴通讯股份有限公司 一种wap终端用户push消息的接收方法及其系统
CN100499703C (zh) * 2005-06-08 2009-06-10 侯万春 使用移动电话号码提供门户号码服务的装置和方法
CN101616381A (zh) * 2008-06-23 2009-12-30 中国移动通信集团重庆有限公司 一种基于短消息的远程控制系统及方法
CN101355729B (zh) * 2008-09-02 2011-11-30 中国联合网络通信集团有限公司 短消息中心监控wap push消息的方法及系统
JP2013543189A (ja) * 2010-11-05 2013-11-28 サムスン エレクトロニクス カンパニー リミテッド Smsを用いて遠隔デバイスを制御する方法及びそのための装置
CN102546914A (zh) * 2010-12-27 2012-07-04 梁志龙 一种基于智能手机的自动登录系统及控制方法
CN102231746B (zh) * 2011-07-11 2014-03-12 华为技术有限公司 验证标识信息的方法及终端
CN102271315B (zh) * 2011-07-26 2014-01-22 深圳市易联盛世科技有限公司 实现短消息增强功能的方法及装置
CN103167437B (zh) * 2011-12-12 2016-03-23 中国电信股份有限公司 在cdma通信系统中实现ussd业务的方法与系统、业务平台
CN102779059B (zh) * 2012-06-30 2016-08-17 北京神州泰岳软件股份有限公司 塞班客户端上启动应用的方法和装置
CN102811228B (zh) * 2012-08-31 2016-07-06 中国联合网络通信集团有限公司 网络业务登录方法、设备和系统
CN103001859B (zh) * 2012-12-14 2016-06-29 上海量明科技发展有限公司 即时通信中回复流媒体消息的方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006137625A1 (en) * 2005-06-22 2006-12-28 Electronics And Telecommunications Research Institute Device for realizing security function in mac of portable internet system and authentication method using the device
CN1980124A (zh) * 2005-12-05 2007-06-13 刘任 使用一次性变量的密钥数字认证方法
CN101060405A (zh) * 2006-04-19 2007-10-24 华为技术有限公司 防止重放攻击的方法及系统
CN101141680A (zh) * 2007-09-30 2008-03-12 中兴通讯股份有限公司 短消息加密发送和接收方法
CN101621764A (zh) * 2009-08-07 2010-01-06 中兴通讯股份有限公司 基于Java Push机制手机通讯应用的信息传送方法及系统
CN103166907A (zh) * 2011-05-05 2013-06-19 王正伟 相对同步认证方法、认证系统及装置

Also Published As

Publication number Publication date
CN111262775A (zh) 2020-06-09
CN104427504A (zh) 2015-03-18
CN111212021A (zh) 2020-05-29
CN104426751A (zh) 2015-03-18
CN104426904A (zh) 2015-03-18

Similar Documents

Publication Publication Date Title
AU2008203138B2 (en) Method and device for anonymous encrypted mobile data and speech communication
CN106357396B (zh) 数字签名方法和系统以及量子密钥卡
CN103596173B (zh) 无线网络认证方法、客户端及服务端无线网络认证装置
TWI271967B (en) Home terminal apparatus, communication system, communication method, and recording media
CN101729543B (zh) 利用异地Socks5技术改善移动SSL VPN性能的方法
CN102685739B (zh) 安卓企业应用的鉴权方法及系统
CN104394530A (zh) 一种基于智能手机的微信内容加密系统及其实现方法
CN105471845B (zh) 防止中间人攻击的通信方法及系统
JP5536628B2 (ja) 無線lan接続方法、無線lanクライアント、および無線lanアクセスポイント
CN110267270A (zh) 一种变电站内传感器终端接入边缘网关身份认证智能合约
CN109495251A (zh) 基于密钥卡的抗量子计算智能家庭云存储方法和系统
CN102957592A (zh) 获取发送方信息的方法、客户端及系统
WO2016082401A1 (zh) 通话方法、装置、用户终端及计算机存储介质
JP2006217446A (ja) 遠隔会議システム
CN106161224A (zh) 数据交换方法、装置及设备
Kaiser et al. Efficient privacy preserving multicast DNS service discovery
JPH06318939A (ja) 暗号通信システム
CN105516070B (zh) 一种认证凭证更替的方法及装置
CN103595619A (zh) 添加好友的方法、装置和系统
CN110035083A (zh) 基于会话密钥的通信方法、设备及计算机可读存储介质
CN104427504B (zh) 控制信息验证方法
CN102185866B (zh) 一种基于ip电话网络的信任模型构造方法
CN114697072B (zh) 一种云桌面统一运维控制系统及控制方法
CN104363587B (zh) 一种呼叫方法及呼叫系统
Schulz et al. d 2 Deleting Diaspora: Practical attacks for profile discovery and deletion

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C53 Correction of patent for invention or patent application
CB02 Change of applicant information

Address after: Wuhou District Shaoling road Chengdu city Sichuan province 610000 No. 29 2-2-3 Li Huaijiang

Applicant after: Wang Zhengwei

Address before: 610000 Sichuan city in Chengdu province Wuhou Temple Street No. 87 (empty Jiashuyuan) 1 Building 1 unit 3

Applicant before: Wang Zhengwei

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant