具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施方式,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用于解释本发明,并不用于限定本发明。
在通信终端中,需要安装用户识别模块才能连入网络,并与其他通信终端进行电话、短信息、彩信(Multimedia Messaging Service,MMS,意为多媒体信息服务)等方式的通信。为了解决现有技术不能很好地防止短信息被非法获取的问题,本发明以下实施例提供了一种通信终端及其通信信息处理方法,通信终端与用户识别模块一起配合以实现对短信息等通信信息的更加安全的保护。在本发明实施例中,用户识别模块并不作为通信终端中的一部分。
本发明以下实施例中,通信终端可以为手机、PDA(Personal Digital Assistant,个人数码助理)和iphone等具有短信息等通信信息功能的设备,用户识别模块可以是SIM(Subscriber Identity Module,用户识别模块)卡、UIM(User Identity Module,用户识别模块)卡和USIM(Universal Subscriber Identity Module,全球用户识别模块)卡等,通信信息可以为短信息和彩信等。
实施例一
图2是根据本发明实施例一的通信终端的通信信息处理方法的流程图,包括以下步骤:
步骤S202,第一通信终端计算用户输入的查看口令的哈希值(记为Hash1);
例如,当用户通过按键或触摸选择进入“信息”菜单时,第一通信终端显示界面或消息框以要求用户输入查看口令(可以是预定长度的由数字、字母等组成的字符串),然后,在接收到用户在该界面或消息框中输入的查看口令之后,第一通信终端即可计算用户输入的查看口令的哈希值,以便第一用户识别模块对用户输入的查看口令进行认证。
步骤S204,第一用户识别模块通过判断用户输入的查看口令的哈希值(Hash1)与第一用户识别模块中存储的查看口令的哈希值(记为Hash2)是否相同,对用户输入的查看口令进行认证;
例如,安装在第一通信终端中的第一用户识别模块中存储有正确的查看口令的哈希值(Hash2),该正确的查看口令可以由用户自己设置。当第一用户识别模块判断Hash1与Hash2相同时(此时说明用户输入的查看口令是正确的),对用户输入的查看口令的认证通过,否则认证不通过。
步骤S206,在第一用户识别模块判断为相同之后,第一通信终端根据用户的查看请求消息,使用认证通过的用户输入的查看口令解密第一通信终端中存储的第一通信信息密文;
例如,通信信息密文是存储在通信终端中,第一通信终端获知第一用户识别模块的判断结果为相同(即用户输入的查看口令认证通过),即可使用认证通过的查看口令(此时即为用户输入的查看口令)对存储在本地的通信信息密文解密,得到通信信息原文。
步骤S208,第一通信终端显示解密得到的通信信息,以供用户进行查看。
其中,在步骤208中的显示的方式可以有多种:可以通过屏幕显示,也可以通过语音、打印或其他方式显示,本发明实施例对此不做限定,即可以是任何能够使用户获知通信信息内容的方式。
本发明实施例将通信信息密文存储在通信终端中,而将解密通信信息密文的密钥(即存储在用户识别模块中的查看口令)的哈希值存储在安装于通信终端中的用户识别模块中,通信终端接收到用户输入的查看口令时计算用户输入的查看口令的哈希值,然后由用户识别模块将用户输入的查看口令的哈希值与用户识别模块中存储的查看口令哈希值进行比较并给出比较结果,通信终端仅在两者相同的情况下,才使用认证通过的用户输入的查看口令对通信信息密文解密得到通信信息原文,从而获取到通信信息的内容以供查看。由于国际标准协议(例如ETSI规范)为USIM卡等用户识别模块赋予了良好的安全性,用户识别模块具有比通信终端更高的安全性,即使专业人员也无法从中读取出数据,因此,本发明实施例充分利用用户识别模块在数据存储安全性方面的优势,将解密通信信息密文的查看口令的哈希值存储在用户识别模块中,这样,即使专业人员从通信终端中获取到了通信信息密文,而因为获取不到解密通信信息密文的密钥,所以也无法解密通信信息密文而最终获取到通信信息原文,从而解决了现有技术无法很好地防止短信息被非法获取的问题,确保了短信息等通信信息的存储安全。
另外,通信信息密文存储在通信终端中,而解密通信信息密文的查看口令的哈希值存储在用户识别模块中,这样,对通信终端或用户识别模块的单独破解均无法达到对通信信息密文破解的目的。并且,由于用户识别模块中存储的是解密通信信息密文的查看口令的哈希值,而且哈希运算是不可逆的,因此即使同时破解了通信终端和用户识别模块仍然无法获取到解密通信信息密文的查看口令并最终破译通信信息密文,获取通信信息原文。
实施例一的技术方案可以称为通信信息的安全存储的技术方案。
实施例二
实施例一中的第一通信终端作为通信信息的发送端,第一通信终端需要发送通信信息给第二通信终端,在第一用户识别模块中存储正确的“查看口令”的哈希值(记为Hash2)。
此时,根据本发明实施例二的第一通信终端的通信信息处理方法,如图3所示,包括以下步骤:
步骤S302,第一通信终端计算用户输入的查看口令的哈希值(记为Hash1),将计算得到的Hash1传送给第一用户识别模块;
当用户通过按键或触摸方式选择进入“信息”菜单时,第一通信终端显示界面或消息框以要求用户输入查看口令,然后,在接收到用户在该界面或消息框中输入的查看口令之后,第一通信终端即可计算用户输入的查看口令的哈希值(Hash1)并将Hash1传送给第一用户识别模块,以便第一用户识别模块对用户输入的查看口令进行认证。
步骤S302对应于图2中的步骤S202。
步骤S304,第一用户识别模块通过判断用户输入的查看口令的哈希值(Hash1)与第一用户识别模块中存储的查看口令的哈希值(Hash2)是否相同,对用户输入的查看口令进行认证,并将认证结果返回给第一通信终端,若相同则认证通过,继续执行步骤S306,否则认证不通过,不允许用户查看通信信息,例如,提示用户输入的查看口令错误,请重新输入查看口令;
例如,当用户识别模块是USIM卡时,可以预先在USIM卡中创建透明(transparent)类型的私有文件,Hash2可以保存在该transparent类型的私有文件中,并且该transparent类型的私有文件的读写权限均设置为Never(不允许),即通过ETSI规范TS102.221中规定的与USIM卡相关的标准APDU(Application Protocol Data Unit,应用协议数据单元)指令无法读写该私有文件。显然,当用户识别模块是SIM卡和UIM卡时,也可以采用上述的transparent类型的私有文件存储Hash2。
但是,为了使得用户可以通过通信终端设置正确的查看口令并将查看口令哈希值(Hash2)写入到USIM卡中,以便后续USIM卡使用Hash2对用户输入的查看口令进行认证。本发明实施例提供了一种自定义的APDU指令,USIM卡与通信终端通过该自定义的APDU指令进行通信,将用户通过通信终端设置的查看口令的哈希值(Hash2)写入到USIM卡。如表1所示,该自定义的APDU指令扩展了ETIS规范TS 102.221中规定的标准APDU指令的INS(Instruction的缩写,命令)字段的值。
表1自定义的APDU指令的结构
CLASS(类型) |
INS(命令) |
P1 |
P2 |
P3 |
在表1中,CLASS表示自定义的ADPU指令的类别,INS表示ADPU指令的命令操作类型,P(Parameter的缩写)1、P2和P3表示ADPU指令中的3个参数,即,自定义的APDU指令中各个字段的含义与ETSITS102.221中规定的标准ADPU指令中对应字段的含义完全相同,只是对INS的值进行了扩展。用户通过通信终端设置正确的查看口令时,通信终端和USIM卡的具体处理步骤如下:
步骤11:通信终端接收到用户设置的查看口令之后,计算该查看口令的哈希值Hash2;
步骤12:通信终端调用USIM卡的接口,向USIM卡发送如表1所示的自定义的APDU指令,然后通信终端通过该自定义的APDU指令的命令参数将Hash2发送给USIM卡;
其中,在该步骤12中发送的自定义的APDU指令中的INS字段的值可设定为不与ETSI规范TS 102.221中规定的已有INS字段的值相冲突的某一固定数值,例如为INS字段的值为“x1”表示向USIM卡中写入数据的操作;P3字段的值设置为“y”表示用户设置的查看口令的哈希值(Hash2)的数据长度;其他字段的值与ETSI规范TS102.221中规定的对应字段的值相同,例如CLASS字段的值设置为“A0”,P1和P2字段的值均设置为“00”。
命令参数的结构如表2所示,该命令参数的长度为y字节,其中的第1~y字节的内容为Hash2。
表2命令参数的结构
Bytes(字节) |
Description(描述) |
Length(数据长度) |
步骤13:USIM卡接收到该自定义的APDU指令后,将命令参数的值(Hash2)写入到本地的transparent类型的私有文件中,然后,通过status words(状态字)向通信终端返回写入操作的执行结果。
上述transparent类型的私有文件的内容结构如表3所示,该私有文件的长度为y字节,其中,第1~y字节的内容为用户设置的查看口令的哈希值(Hash2),M(Mandatory的缩写)表示该内容对该私有文件来说是必须的,O(Optional的缩写)表示该内容对该私有文件来说是可选的。
表3transparent类型的私有文件的内容结构
Bytes(字节) |
Description(描述) |
M/O |
Length(数据长度) |
1~y |
查看口令的哈希值(Hash2) |
M |
y |
status words的结构如表4所示,其中,SW1表示状态字1,SW2表示状态字2,Description表示对应的SW1+SW2所表示的含义。当SW1+SW2=“9000”(即SW1为“0x90”、SW2为“0x00”)时,表示写入成功,其他值表示写入失败。
表4status words的结构
通过上述步骤11-步骤13,实现了将用户预先设置的查看口令的哈希值(Hash2)写入并存储到USIM卡中。
在上述步骤S304中,第一USIM卡对用户输入的查看口令进行认证的具体处理过程可以包括以下步骤21-步骤22:
步骤21:第一USIM卡接收第一通信终端发来的自定义的APDU指令(如表1所示)以及如表2所示的命令参数;
此时在该步骤21中,接收到的自定义的APDU指令中的INS字段的值可设置为不与ETSI规范TS 102.221中规定的INS字段的值相冲突的某一固定数值,例如为“x2”表示对用户输入的查看口令进行认证的操作;其他字段的值可以与上述步骤12中的自定义的APDU指令中的对应字段的值相同,这里不再赘述。
接收到的命令参数的长度为y字节,其中的第1~y字节的内容为用户输入的查看口令的哈希值(Hash1)。
步骤22:第一USIM卡将该命令参数的值(Hash1)与本地存储的transparent类型的私有文件(参见表3)中的值(Hash2)进行比较,以对用户输入的查看口令进行认证,并将比较结果(即认证结果)通过status words返回给第一通信终端。
显然,比较结果为相同则认证结果为通过(说明用户输入的查看口令正确),比较结果为不相同则认证结果为不通过(即失败,说明用户输入的查看口令错误)。
例如,在步骤22中的status words中的SW1+SW2=9000(即SW1=“0x90”、SW2=“0x 00”)时,表示认证通过;SW1+SW2=9804(即SW1=“0x 98”、SW2=“0x 04”)时,表示认证失败。
上述步骤S304对应于图2中的步骤S204。
这里值得注意的是,在执行上述步骤11-步骤13的写入过程之前必须要先执行过上述步骤21-步骤22的认证过程,以进一步确保存储在USIM卡中的用户设置的正确的查看口令的哈希值(Hash2)不会被恶意地篡改。例如,在用户需要设置新查看口令(即修改查看口令)时,通信终端都需要用户先输入原查看口令,对原查看口令认证通过后才能允许用户修改查看口令,并相应地修改存储在USIM卡中的原查看口令的哈希值(即重新向USIM卡的transparent类型的私有文件中写入新查看口令的哈希值并覆盖原查看口令的哈希值)。用户首次设置查看口令也可以认为是修改查看口令,此时原查看口令为空。
步骤S306,用户可以选择写信息、读信息等功能。当用户选择了写信息,并将待发送的通信信息编辑好后,第一通信终端会根据用户的发送请求消息(用户选择“发送”),使用传输口令对待发送的通信信息进行加密得到第二通信信息密文,并将第二通信信息密文发送给第二通信终端;
显然,在实际应用中,该步骤S306中第一通信终端也可以不对待发送的通信信息进行加密,而将通信信息原文直接发送出去。
步骤S308,第一通信终端使用在步骤S304中认证通过的用户输入的查看口令,对已发送的通信信息进行加密得到第一通信信息密文,并存储第一通信信息密文;
在步骤S308中,加密算法可以是DES(Data Encryption Standard,数据加密标准)和3DES等对称加密算法。该步骤可以称为对已发送的通信信息的加密存储。
在实际应用中,上述步骤S306的对通信信息的加密发送、与步骤S308的对通信信息的加密存储并无一定的先后执行顺序,可以先加密存储再加密发送,也可以先加密发送再加密存储。本发明实施例对此不做限定,可以根据实际需要设定。
步骤S310,当用户想查看已发送的通信信息时,第一通信终端根据用户的查看请求消息,使用认证通过的用户输入的查看口令解密第一通信终端中存储的第一通信信息密文,得到通信信息原文;
上述的认证过程同图2中的步骤S202和步骤S204,这里不再赘述。
该步骤S310对应于图2中的步骤S206。
步骤S312,第一通信终端显示解密得到的通信信息原文,以供用户进行查看。该步骤对应于图2中的步骤S208。
由上可知,用户识别模块不存储查看口令的原文、而是存储查看口令的哈希值(Hash2),通信终端不负责对用户输入的查看口令的认证、而是由用户识别模块来进行认证,因此无法从用户识别模块中获取到查看口令的原文,单独通过通信终端无法完成对用户输入的查看口令的认证。这样,确保了即使专业人员也无法通过用户识别模块或通信终端获取任何通信信息相关的安全数据。
显然,在实际应用中,实施例二的通信信息处理方法从步骤S302执行到步骤S308后即可结束流程。后续,当用户需要查看已发送通信信息时,可以再执行步骤S302-步骤S304,然后在认证通过之后直接执行步骤S310-步骤S312。
实施例三
在现有技术中,为了确保短信息的安全传输,常见的短信息安全传输方案采用了基于公钥加密算法的加密传输机制。具体处理过程包括以下步骤:
步骤S402,发送终端选择一个加密密钥,然后使用选择的加密密钥对短信息进行加密,并将加密得到的短信息密文发送给接收终端;
短信息发送前,发送终端直接从本地存储的多个密钥中随机选择一个作为加密密钥来加密短信息,然后将短信息密文和所选择的密钥的索引同时发送给接收终端。
步骤S404,接收终端接收到短信息密文和密钥索引之后,从接收终端中提取出与该密钥索引对应的密钥,然后使用该密钥解密短信息密文获取短信息原文。
但是,上述短信息的安全传输方案由于采用将多个密钥存储于通信终端,传输时选择其中一个密钥加密短信息的方式,这样就需要所有通信终端出厂时同时预置相同的一组(多个)密钥。在短信息密文和密钥索引被截取后,专业人员同样能够从通信终端中获取到预置的多个密钥,然后从中找到与截取的密钥索引对应的密钥对短信息密文解密,最终获取到短信息原文。因此,现有技术的短信息安全传输方案仍然不能很好地防止短信息被非法获取。
为了解决现有技术的短信息的安全传输方案存在的上述问题,本发明实施例三提供了一种通信终端的通信信息处理方法,同实施例二,第一通信终端作为通信信息的发送端,第一通信终端需要发送通信信息给第二通信终端,在第一用户识别模块中存储正确的“查看口令”的哈希值(Hash2)以及被该查看口令加密得到的传输口令密文。在接收到用户的发送请求消息之后,第一通信终端将待发送的通信信息按照如图4所示的处理流程加密并发送给第二通信终端(对应于图3中的步骤S306):
步骤S502,第一通信终端向第一用户识别模块查询与第二通信终端对应的传输口令密文;
例如,在第一用户识别模块中存储有各个通信终端(可以是第一通信终端的电话薄中的各个联系人)对应的传输口令密文,传输口令密文的加密密钥为用户设置的查看口令,加密算法可以为DES、3DES等对称加密算法。本发明实施例可以预先在第一用户识别模块中创建linear fixed(线性定长)类型的私有文件,并将各个通信终端及其对应的传输口令密文保存在该linear fixed类型的私有文件中。该linear fixed类型的私有文件的读写权限均设置为Never(即无被读写的权限),即通过ETSI规范TS102.221规定的USIM卡相关的标准APDU指令无法读写该私有文件。
但是,在实际应用中,为了使得用户能够通过通信终端设置传输口令,并由通信终端加密后写到linear fixed类型的私有文件中,以便后续发送通信信息时使用该设置的传输口令对待发送的通信信息进行加密。本发明实施例同样可以使用上述实施例二中的自定义的APDU指令将用户设置的传输口令加密后写入到用户识别模块中的linear fixed类型的私有文件中。
当用户识别模块是USIM卡时,在用户设置传输口令的过程中,通信终端与USIM卡的具体处理过程如下:
步骤31:通信终端接收到用户设置的传输口令,使用认证通过的查看口令对该传输口令进行加密,得到传输口令密文;
在步骤S31中,对查看口令的认证过程见图2中的步骤S202-步骤S204,这里不再赘述。在实际应用中,在用户设置传输口令之前,需要用户先输入查看口令,对用户输入的查看口令认证通过之后,才允许用户设置传输口令。
步骤32:通信终端调用USIM卡的接口,将如表1所示的自定义的APDU指令和如表5所示的命令参数发送给USIM卡;
其中,自定义的APDU指令中的INS字段的值可以设定为不与ETSI规范TS102.221中规定的INS字段的值相冲突的某一固定数值,例如,INS字段的值为“x3”表示传输口令密文的读写操作;P2字段的值可以为“00”或“01”,P2=“00”时表示读操作,此时P3取值为“14”;P2=“01”时表示写操作,此时P3取为“14”+z(z为传输口令密文的数据长度)。
在步骤32中,通信终端发送的自定义的APDU指令中,INS字段的值为x3,P2字段的值为01,P3取为“14”+z,其他字段的值可以与ETSI规范TS102.221中规定的对应字段的值相同,例如CLASS字段的值设置为“A0”,P1字段的值设置为“00”。
在该步骤32中,发送的命令参数的格式如表5所示,该命令参数的数据长度为(z+14)字节,其中,第1~14字节的内容为通信终端的号码,第15~(z+14)字节的内容为该号码对应的传输口令密文。
表5
Bytes(字节) |
Description(描述) |
Length(数据长度) |
1~14 |
通信终端的号码 |
14 |
15~(z+14) |
传输口令密文 |
z |
步骤33:USIM卡将如表5所示的命令参数的值写入到本地保存的linear fixed类型的私有文件(如表6所示)中,然后将写入操作的执行结果通过如表4所示的status words返回给通信终端。
linear fixed类型的私有文件中包括多条记录(record),如表6所示,每条record包括一个通信终端的号码及其对应的传输口令密文。
表6
Bytes(字节) |
Description(描述) |
Length(长度) |
1~14 |
通信终端的号码 |
14 |
15~(z+14) |
传输口令密文 |
z |
在步骤S33中的status words中,当SW1+SW2=“9000”时表示写入成功,SW1+SW2等于其他值时表示写入失败。
至此,通过上述步骤31-步骤33,用户通过通信终端设置了各个通信终端及其对应的传输口令,并最终通过通信终端将各个通信终端的号码及其对应的传输口令密文写到了用户识别模块中的linear fixed类型的私有文件中。
这样,在步骤S502中,第一通信终端向第一用户识别模块查询与第二通信终端对应的传输口令密文的具体流程可以包括以下步骤41-步骤42:
步骤41:第一通信终端调用第一USIM卡的接口,向第一USIM卡发送如表1所示的自定义的APDU指令和如表7所示的命令参数;
其中,在该步骤41中发送的自定义的APDU指令中的INS字段的值为x3,P2字段的值为00(表示读操作),P3取为“14”,其他字段的值可以与ETSI规范TS 102.221中规定的对应字段的值相同,例如CLASS字段的值设置为“A0”,P1字段的值设置为“00”。
在该步骤41中发送的命令参数如表7所示,该命令参数的长度为14字节,其中,第1~14字节的内容为第二通信终端的号码。
表7
Bytes |
Description |
Length |
1~14 |
第二通信终端的号码 |
14 |
步骤42:第一USIM卡从本地存储的linear fixed类型的私有文件中(如表6所示)查找到与该命令参数中携带的第二通信终端的号码相对应的传输口令密文,并将查找到的传输口令密文通过response data(响应数据)返回给第一通信终端。
步骤S504,第一通信终端使用认证通过的用户输入的查看口令,对查询到的传输口令密文进行解密;
在该步骤中,对用户输入的查看口令的认证同图2中的步骤S202-S204,这里不再赘述。
步骤S506,第一通信终端使用步骤S504中解密得到的传输口令对待发送的通信信息进行加密得到第二通信信息密文,并计算传输口令的哈希值;
在该步骤中,加密算法可以为DES、3DES等对称加密算法。
步骤S508,第一通信终端将第二通信信息密文和传输口令的哈希值一起发送给第二通信终端。传输口令的哈希值可以附加在通信信息密文的内容之后或之前一并发送出去。
在实际应用中,用户需要向通信终端输入查看口令,并经用户识别模块对用户输入的查看口令认证通过后,用户才能编辑通信信息并发送,相应的通信终端才能执行上述实施例二中的步骤S306的通信信息加密发送、以及步骤S308的加密存储。如果通信终端设置为不存储已发送的通信信息,则在上述实施例二和实施三中无需执行步骤S308的加密存储。
本发明实施例三中,在发送通信信息之前,使用与接收终端对应的传输口令加密该通信信息,并将该传输口令的哈希值与通信信息密文一起发送出去,由于仅传输加密通信信息的传输口令的哈希值,避免了传输过程中密钥泄漏的风险。而且,使用另一个并不存储的查看口令将加密通信信息的传输口令进行加密后存储于用户识别模块中,这样,即使专业人员截取了通信信息密文和加密通信信息的传输口令的哈希值,仍然由于无法获取到传输口令原文而最终无法解密通信信息密文得到通信信息原文,从而解决了现有的短信息安全传输方案仍然无法很好地解决防止短信息被非法获取的问题,提高了短信息等通信信息的传输安全性。
在上述实施例二中值得注意的是:当用户修改查看口令(即,将原查看口令修改为新查看口令)时,通信终端不仅需要将算得的新查看口令的哈希值写入到用户识别模块中,以将存储在用户识别模块中的原查看口令的哈希值修改为新查看口令的哈希值;而且,还需要从用户识别模块中读取出各个通信终端对应的传输口令密文,使用原查看口令解密得到各个传输口令原文后,再使用新查看口令重新加密各个传输口令并重新存储到用户识别模块中。
实施例四
第一通信终端作为接收端,接收第三通信终端发来的通信信息,安装在第一通信终端中的第一用户识别模块中存储有正确的“查看口令”的哈希值(Hash2)以及被该查看口令加密得到的传输口令密文。此时,如图5所示,第一通信终端的通信信息处理方法包括以下步骤:
步骤S602,第一通信终端接收到来自第三通信终端的第三通信信息密文和传输口令哈希值,并暂存;
当接收到通信信息密文和传输口令时,第一通信终端即会发出铃音和/或震动提示用户有新通信信息;
步骤S604,用户需要读信息时,第一通信终端显示界面或消息框以供用户输入查看口令,在接收到用户输入的查看口令后,第一通信终端计算用户输入的查看口令的哈希值(记为Hash1);
例如,当用户通过按键或触摸选择进入“信息”菜单想要读信息时,第一通信终端显示界面或消息框以要求用户输入查看口令,然后,在接收到用户在该界面或消息框中输入的查看口令之后,第一通信终端即可计算用户输入的查看口令的哈希值(Hash1),以便第一用户识别模块对用户输入的查看口令进行认证。
该步骤S604对应于图2中的步骤S202。
步骤S606,第一用户识别模块通过判断用户输入的查看口令的哈希值(Hash1)与第一用户识别模块中存储的查看口令的哈希值(记为Hash2)是否相同,对用户输入的查看口令进行认证,若认证通过(即相同),继续执行步骤S608,否则不允许用户查看通信信息,例如提示用户输入的查看口令错误,请重新输入查看口令;
例如,第一用户识别模块中存储有正确的查看口令的哈希值(Hash2),该正确的查看口令可以由用户自己设置。当第一用户识别模块判断Hash1与Hash2相同时(此时说明用户输入的查看口令是正确的),对用户输入的查看口令的认证通过,否则认证不通过。
用户可以通过第一通信终端设置正确的查看口令,再由第一通信终端将设置的查看口令的哈希值(Hash2)写入到第一用户识别模块中,具体参见实施例二中的步骤S304。Hash2在第一用户识别模块中的存储方式以及第一用户识别模块对用户输入的查看口令的认证的具体处理流程可以参见实施例二中的步骤S304,这里不再赘述。
该步骤S606对应于图2中的步骤S204。
步骤S608,第一通信终端解密来自第三通信终端的第三通信信息密文,得到通信信息原文;
具体处理过程可以参见下述实施例五,这里不再赘述。
步骤S610,第一通信终端使用认证通过的用户输入的查看口令,对已接收并解密的通信信息原文进行加密,得到第一通信信息密文;
加密算法可为DES(Data Encryption Standard,数据加密标准)、3DES等对称加密算法。
步骤S612,第一通信终端存储第一通信信息密文;
上述步骤S610和步骤S612是对已接收的通信信息的加密存储。
步骤S614,第一通信终端使用认证通过的用户输入的查看口令解密第一通信终端中存储的第一通信信息密文;
例如,通信信息密文是存储在通信终端中,第一通信终端获知第一用户识别模块的判断结果为相同(即用户输入的查看口令认证通过),即可使用认证通过的查看口令(此时即为用户输入的查看口令)对存储在本地的通信信息密文解密,得到通信信息原文。
该步骤对应于图2中的步骤S206。
步骤S616,第一通信终端显示解密得到的通信信息,以供用户进行查看。该步骤对应于图2中的步骤S208。
本发明实施例将通信信息的加密传输与加密存储分开处理,并分别采用不同的安全口令,增加了非法破解的难度,从整体上提高了通信信息的应用安全性。
在实际应用中,还存在另一种情况:在上述步骤S602中第一通信终端接收到的是来自第三通信终端的通信信息原文,则此时,在执行完步骤S604-S606之后就可以无需执行步骤S608,而直接执行步骤S610-S616,并且在步骤S610中第一通信终端使用认证通过的用户输入的查看口令,对已接收的通信信息原文进行加密得到第一通信信息密文。
需要说明的是,上述步骤S602和步骤S604无特定的先后执行顺序,步骤S602也可以在步骤S604之后,本发明实施例对此不做限定。
实施例五
在实施例四中,当第一通信终端接收到第三通信终端发来的通信信息密文(即上述的第三通信信息密文)之后,需要先对第三通信信息密文进行解密,得到通信信息原文,此外,随同第三通信信息密文一起发来的还有传输口令的哈希值,具体处理流程如下(对应于实施例四中的步骤S608):
步骤S6081:第一通信终端向第一用户识别模块查询与第三通信终端对应的传输口令密文;
第一用户识别模块中存储有各个通信终端(例如为电话薄中的各个联系人)以及每个通信终端对应的传输口令密文。
其中,用户可以通过第一通信终端设置第三通信终端的传输口令,并通过第一通信终端将第三通信终端的号码及其对应的传输口令密文写入到第一用户识别模块中,具体的写入过程以及传输口令密文的存储方式可以参见实施例三中的步骤31-步骤33。具体的查询过程可以参见实施例三中的步骤41-步骤42,这里不再赘述。
步骤S6082:第一通信终端使用认证通过的用户输入的查看口令,对在步骤S6081中查询到的传输口令密文进行解密,得到传输口令原文;
步骤S6083:第一通信终端计算在步骤S6082中解密得到的传输口令原文的哈希值;
步骤S6084:第一通信终端判断计算得到的传输口令的哈希值与接收到的传输口令的哈希值是否相同(即对接收的传输口令哈希值进行校验);
步骤S6085:在步骤S6084判断为相同之后,第一通信终端使用在步骤S6082中解密得到的传输口令对第三通信信息密文进行解密,得到通信信息原文。
本发明实施例中,当第一通信终端接收到第三通信终端发来的通信信息密文(即第三通信信息密文)和传输口令哈希值之后,首先通过第一用户识别模块查询到第三通信终端对应的传输口令密文,并使用认证通过的查看口令将传输口令密文解密得到传输口令,然后计算其哈希值并与接收到的传输口令哈希值进行比较,相同则使用该传输口令将通信信息密文解密得到通信信息原文。
本发明实施例充分利用了用户识别模块在数据存储安全性方面的优势,利用了国际标准协议赋予用户识别模块的良好安全性,将密钥信息存储、口令认证等安全性要求较高的流程由用户识别模块完成,通信终端仅能使用接口进行访问。同时将通信信息密文存储在通信终端中,可以发挥智能终端存储量大的优势,也更符合用户的使用习惯。因此,本发明实施例的用户识别模块与通信终端配合执行的通信信息安全传输和存储的技术方案能够更好地满足用户实际的安全性要求,对短信息等通信信息提供更加可靠的保护。
实施例六
在上述实施例五中,当步骤S6084中第一通信终端判断计算得到的传输口令的哈希值与接收到的传输口令的哈希值不相同之后,还可以执行以下步骤:
步骤S6086:第一通信终端暂存接收到的第三通信信息密文和传输口令的哈希值;例如,可以暂存在待解密收件箱中,待接收方向发送方确认传输口令并重新存储传输口令的密文至第一用户识别模块后,用户可再次提取未解密的通信信息密文进行解密。
在实际应用中,当步骤S6084的判断结果为不同时,第一通信终端还可以显示提示信息通知用户解密失败,无法查看通信信息。用户可以向第三通信终端对应的联系人重新确认传输口令,并通过第一通信终端按照上述实施例三中的步骤31-步骤33的过程将重新确认的传输口令的密文写入到第一用户识别模块的linear fixed类型的私有文件的对应记录中。显然,用户在重新设置与第三通信终端对应的传输口令之前,还需要输入查看口令,第一用户识别模块对用户输入的查看口令认证通过后,才允许用户重新设置传输口令。
步骤S6087:在接收到用户的查看待解密信息请求消息之后,第一通信终端从通信终端中提取出在步骤S6086中暂存的第三通信信息密文和传输的哈希值,然后返回步骤S6081,以重新对暂存的第三通信信息密文进行解密得到通信信息原文,其中,第一用户识别模块中存储有与第三通信终端对应的经重新确认的传输口令的密文。
在用户通过第一通信终端将重新确认的与第三通信终端对应的传输口令的密文写入到第一用户识别模块中的linear fixed类型的私有文件中之后,第一通信终端返回执行上述步骤S6081以及之后的步骤(包括步骤S6083-S6085、S610-S616),即可显示通信信息原文以供用户进行查看。
现有技术的短信息加密传输技术方案中,接收终端在对短信息解密失败时显示乱码的短信息或丢弃短信息。而本发明实施例却暂存密钥(即接收的传输口令哈希值)验证失败的短信息,后续可使得用户再次确认传输口令并重新解密短信息。
在上述实施例一至实施例六中,收发双方的用户可以在设置加密传输通信信息的传输口令之前,采用事先约定(口头方式或电话方式等)的方式对传输口令进行约定。例如,用户A使用通信终端A(通信终端A中设置有用户识别模块A)、用户B使用通信终端B(通信终端B中设置有用户识别模块B),用户A与用户B约定双方的传输口令为“258746”(可以为任意预定长度的字符串),则用户A就可以通过通信终端A设置与通信终端B(即用户B)对应的传输口令为“258746”,并按照上述实施例三中的步骤31-步骤33将被查看口令加密后的“258746”(即传输口令密文)写入到用户识别模块A中,同样,用户B也通过通信终端B将与通信终端A对应的“258746”的密文写入到用户识别模块B中。也就是说,约定的传输口令被收发双方各自的查看口令加密后存储于各自的用户识别模块中。
从上述实施例一至实施例六中可以看出:查看口令为用户进入通信终端的信息(包括短信息和彩信等)应用时,需要输入的认证口令,只有通过认证才允许用户使用通信终端的短信息(或彩信)查看、短信息(彩信)收发等功能。
图6是根据本发明实施例一的通信终端的结构示意图,用户识别模块安装在该通信终端上,通信终端与用户识别模块一起配合完成如下通信信息的处理。
如图6所示,通信终端包括以下功能模块:第一计算模块101,用于计算用户输入的查看口令的哈希值(记为Hash1);加解密模块102,用于在用户识别模块判断第一计算模块101计算得到的用户输入的查看口令的哈希值(Hash1)与用户识别模块20中存储的查看口令的哈希值(记为Hash2)相同(即对用户输入的查看口令认证通过)之后,根据用户的查看请求消息,使用认证通过的用户输入的查看口令解密第一通信终端10中存储的第一通信信息密文,得到通信信息;显示模块103,用于显示加解密模块102解密得到的通信信息。
本发明实施例将通信信息密文存储在通信终端中,而将解密通信信息密文的密钥(即存储在用户识别模块中的查看口令)的哈希值存储在安装于通信终端中的用户识别模块中,通信终端接收到用户输入的查看口令时计算用户输入的查看口令的哈希值,然后由用户识别模块将用户输入的查看口令的哈希值与用户识别模块中存储的查看口令哈希值进行比较并给出比较结果,通信终端仅在两者相同的情况下,才使用认证通过的用户输入的查看口令对通信信息密文解密得到通信信息原文,从而获取到通信信息的内容以供查看。由于国际标准协议(例如ETSI规范)为USIM卡等用户识别模块赋予了良好的安全性,用户识别模块具有比通信终端更高的安全性,即使专业人员也无法从中读取出数据,因此,本发明实施例充分利用用户识别模块在数据存储安全性方面的优势,将解密通信信息密文的查看口令的哈希值存储在用户识别模块中,这样,即使专业人员从通信终端中获取到了通信信息密文,而因为获取不到解密通信信息密文的密钥,所以也无法解密通信信息密文而最终获取到通信信息原文,从而解决了现有技术无法很好地防止短信息被非法获取的问题,确保了短信息等通信信息的存储安全。
另外,通信信息密文存储在通信终端中,而解密通信信息密文的查看口令的哈希值存储在用户识别模块中,这样,对通信终端或用户识别模块的单独破解均无法达到对通信信息密文破解的目的。并且,由于用户识别模块中存储的是解密通信信息密文的查看口令的哈希值,而且哈希运算是不可逆的,因此即使同时破解了通信终端和用户识别模块仍然无法获取到解密通信信息密文的查看口令并最终破译通信信息密文,获取通信信息原文。
如图7所示,根据本发明实施例二的通信终端还包括收发模块104,其中:
加解密模块102,还用于在用户识别模块判断第一计算模块101计算得到的用户输入的查看口令的哈希值(Hash1)与用户识别模块20中存储的查看口令的哈希值(记为Hash2)相同(即对用户输入的查看口令认证通过)之后,根据用户的发送请求消息,对待发送的通信信息进行加密得到第二通信信息密文;以及使用认证通过的用户输入的查看口令,对已发送的通信信息进行加密并将加密得到的第四通信信息密文存储在通信终端中;以及
收发模块104,用于将加解密模块102加密得到的第二通信信息密文发送给第二通信终端。
如图8所示,加解密模块102可以包括:查询模块1021,用于向用户识别模块查询与第二通信终端对应的传输口令密文;解密模块1022,用于使用认证通过的用户输入的查看口令,对查询模块1021查询到的传输口令密文进行解密得到传输口令;加密模块1023,用于使用解密模块1022解密得到的传输口令,对待发送的通信信息进行加密得到第二通信信息密文;以及使用认证通过的用户输入的查看口令,对已发送的通信信息进行加密得到第四通信信息密文,并存储第四通信信息密文(例如可以存储到存储卡、内存或FLASH中);第二计算模块1024,用于计算解密模块1022解密得到的传输口令的哈希值。则,此时收发模块104,还用于将第二计算模块1024计算得到的传输口令的哈希值与第二通信信息密文一起发送给第二通信终端。这样就实现了对通信信息的加密存储和加密传输。
后续,当用户想要查看已发送的通信信息时,解密模块1022还可以用于在用户识别模块对用户输入的查看口令认证通过(即判断Hash1与Hash2相同)之后,使用认证通过的用户输入的查看口令对通信终端中存储的第四通信信息密文进行解密,得到通信信息原文,并传送给显示模块103进行显示。
由上,当通信终端作为发送端,想要发送通信信息时,该通信终端和安装在该通信终端上的用户识别模块对于通信信息的处理过程如下:
步骤S702,第一计算模块101计算用户输入的查看口令的哈希值(记为Hash1),将计算得到的Hash1传送给用户识别模块;
步骤S704,用户识别模块通过判断Hash1与用户识别模块中存储的查看口令的哈希值(记为Hash2)是否相同,对用户输入的查看口令进行认证,并将认证结果返回给加解密模块102,若相同则认证通过,继续执行步骤S706,否则认证不通过,不允许用户查看查看通信信息,例如,提示用户输入的查看口令错误,请重新输入查看口令;
在上述步骤S702-S704中,用户识别模块中存储的查看口令的哈希值保存在用户识别模块中的透明类型的私有文件中,并且透明类型的私有文件无被读写的权限。查看口令的哈希值在用户识别模块中的存储方式、用户通过通信终端设置查看口令并将查看口令哈希值写入用户识别模块的流程、以及用户识别模块对用户输入的查看口令进行认证的过程,同实施例二,这里不再赘述。
步骤S706,当用户选择了写信息,并将待发送的通信信息编辑好后,加解密模块102会根据用户的发送请求消息(用户选择“发送”),对待发送的通信信息进行加密,然后由收发模块104将加密得到的第二通信信息密文发送出去;
在实际应用中,步骤S706中加解密模块102也可以不对待发送的通信信息进行加密,而由收发模块104直接将待发送的通信信息发送出去。
具体地,该步骤的具体处理过程可以如下:
步骤S7061:查询模块1021向用户识别模块查询与第二通信终端对应的传输口令密文;
第二通信终端对应的传输口令密文在用户识别模块中的存储方式、用户通过通信终端设置传输口令并将传输口令密文写入用户识别模块、以及查询过程可以参见实施例三,这里不再赘述。
步骤S7062:解密模块1022使用在步骤S704中认证通过的用户输入的查看口令,对查询到的传输口令密文进行解密;
步骤S7063:加密模块1023使用解密模块1022解密得到的传输口令对待发送的通信信息进行加密得到第二通信信息密文,第二计算模块1024计算该传输口令的哈希值;
步骤S7064:收发模块104将第二通信信息密文和传输口令的哈希值一起发送出去。
步骤S708,加解密模块102使用在步骤S704中认证通过的用户输入的查看口令,对已发送的通信信息进行加密得到第一通信信息密文,并存储第一通信信息密文;
在步骤S708中,加解密模块102采用的加密算法可以是DES、3DES等对称加密算法。该步骤可以称为对已发送的通信信息的加密存储。该步骤S708可以具体由加密模块1023来执行。
在实际应用中,上述步骤S706的对通信信息的加密发送、与步骤S708的对通信信息的加密存储并无一定的先后执行顺序,可以先加密存储再加密发送,也可以先加密发送再加密存储。本发明实施例对此不做限定,可以根据实际需要设定。
步骤S710,当用户想查看已发送的通信信息时,加解密模块102根据用户的查看请求消息,使用认证通过的用户输入的查看口令解密第一通信终端中存储的第一通信信息密文,得到通信信息原文;该步骤可以具体由解密模块1022来执行。
上述的认证过程同步骤S702和步骤S704,这里不再赘述。
步骤S712,显示模块103显示解密得到的通信信息原文,以供用户进行查看。
在实际应用中,也可以从步骤S702执行到步骤S708之后,即结束流程。后续,当用户需要查看已发送通信信息时,可以再执行步骤S702-步骤S704,然后在认证通过之后直接执行步骤S710-步骤S712。
当通信终端作为接收端时,收发模块104还可以用于接收来自第三通信终端的通信信息;则,加解密模块102还用于在用户识别模块判断Hash1与Hash2为相同之后,以及在根据用户的查看请求消息,使用所述用户输入的查看口令解密所述第一通信终端中存储的第一通信信息密文之前,使用认证通过的用户输入的查看口令,对已接收的通信信息进行加密得到第一通信信息密文,并将第一通信终端存储在通信终端中。则,后续,解密模块1022即可使用认证通过的用户输入的查看口令对第一通信信息密文解密得到通信信息原文,并传送给显示模块103进行显示。
当通信终端作为接收端时,还存在另一种情况即通信终端接收到的是密文的通信信息,此时,如图9所示,收发模块104还可以用于接收来自第三通信终端的第三通信信息密文和传输口令的哈希值;则,加解密模块102还用于解密收发模块104接收到的第三通信信息密文,得到通信信息,以及使用认证通过的用户输入的查看口令,对已接收并解密的该通信信息进行加密,得到第一通信信息密文,并存储第一通信信息密文(例如可以存储到存储卡、内存或FLASH中)。
此时,为了解密第三通信信息密文得到通信信息原文,加解密模块102还可以包括判断模块1025,其中:查询模块1021还用于向用户识别模块查询与第三通信终端对应的传输口令密文;解密模块1022还用于使用认证通过的用户输入的查看口令,对查询模块1021查询到的传输口令密文进行解密;第二计算模块1024还用于计算解密模块1022解密得到的传输口令的哈希值;判断模块1025用于判断第二计算模块1024计算得到的传输口令的哈希值与收发模块104接收到的传输口令的哈希值是否相同,并在判断为相同之后通知解密模块1022使用解密得到的传输口令对第三通信信息密文进行解密,得到通信信息;加密模块1023,还用于使用认证通过的用户输入的查看口令,对解密模块1022解密得到的通信信息进行加密得到第一通信信息密文,并将第一通信信息密文存储在第一通信终端中。则,后续,解密模块1022即可使用认证通过的用户输入的查看口令对第一通信信息密文解密得到通信信息原文,并传送给显示模块103进行显示。
另外,判断模块1025还用于在判断为不同之后,暂存收发模块104接收到的第三通信信息密文和传输口令的哈希值;这样,在接收到用户的查看待解密信息请求消息之后,查询模块1021执行向用户识别模块查询与第三通信终端对应的传输口令密文的步骤,以重新对暂存的第三通信信息密文进行解密得到通信信息原文,其中,用户识别模块中存储有与第三通信终端对应的经重新确认的传输口令的密文。从而,能够实现重新对上次解密失败的通信信息密文进行解密,并进行查看的目的。
由上,当通信终端作为接收端,接收到通信信息密文时,该通信终端和安装在该通信终端上的用户识别模块对于通信信息的处理过程如下:
步骤S802,收发模块104接收到来自第三通信终端的第三通信信息密文和传输口令哈希值,并暂存;
步骤S804,用户需要读信息时,显示模块103显示界面或消息框以供用户输入查看口令,在接收到用户输入的查看口令后,第一计算模块101计算用户输入的查看口令的哈希值(记为Hash1);
步骤S806,用户识别模块通过判断用户输入的查看口令的哈希值(Hash1)与用户识别模块中存储的查看口令的哈希值(记为Hash2)是否相同,对用户输入的查看口令进行认证,若相同则认证通过,继续执行步骤S808,否则认证不通过,不允许用户查看通信信息,例如提示用户输入的查看口令错误,请重新输入查看口令;
步骤S808,加解密模块102解密第三通信信息密文,得到通信信息原文;
具体地,该步骤的具体处理过程可以如下:
步骤S8081:第一通信终端向第一用户识别模块查询与第三通信终端对应的传输口令密文,并继续执行步骤S8082;
步骤S8082:解密模块1022使用认证通过的用户输入的查看口令,对在步骤S8081中查询到的传输口令密文进行解密,得到传输口令原文,并继续执行步骤S8083;
步骤S8083:第二计算模块1024计算在步骤S8082中解密得到的传输口令原文的哈希值,并继续执行步骤S8084;
步骤S8084:判断模块1025判断第二计算模块1024计算得到的传输口令的哈希值与收发模块104接收到的传输口令的哈希值是否相同(即对接收的传输口令哈希值进行校验),若相同则继续执行步骤S8085,否则执行步骤S8086或者退出流程并提示用户解密失败;
步骤S8085:解密模块1022使用在步骤S8082中解密得到的传输口令对第三通信信息密文进行解密,得到通信信息原文,继续执行步骤S810;
步骤S8086:暂存接收到的第三通信信息密文和传输口令的哈希值然后继续执行步骤S8087;例如,可以暂存在待解密收件箱中,待接收方向发送方确认传输口令并重新存储传输口令的密文至第一用户识别模块后,用户可再次提取未解密的通信信息密文进行解密;
步骤S8087:在接收到用户的查看待解密信息请求消息之后,从通信终端中提取出在步骤S8086中暂存的第三通信信息密文和传输的哈希值,然后返回步骤S8081,以重新对暂存的第三通信信息密文进行解密得到通信信息原文,其中,第一用户识别模块中存储有与第三通信终端对应的经重新确认的传输口令的密文;
步骤S810,加解密模块102使用认证通过的用户输入的查看口令,对通信信息原文进行加密,得到第一通信信息密文,然后存储第一通信信息密文,并继续执行步骤S812;
步骤S812,加解密模块102使用认证通过的用户输入的查看口令解密第一通信终端中存储的第一通信信息密文,并继续执行步骤S814;
步骤S814,显示模块103显示解密得到的通信信息,以供用户进行查看。
在实际应用中,还存在另一种情况:在上述步骤S802中第一通信终端接收到的是来自第三通信终端的通信信息原文,则此时,在执行完步骤S804-S806之后就可以无需执行步骤S808,而直接执行步骤S810-S816,并且在步骤S810中第一通信终端使用认证通过的用户输入的查看口令,对已接收的通信信息原文进行加密得到第一通信信息密文。
需要说明的是,上述步骤S802和步骤S804无特定的先后执行顺序,步骤S802也可以在步骤S804之后,本发明实施例对此不做限定。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如:ROM/RAM、磁碟、光盘等。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。