基于口令的即时通信方法及系统与流程

文档序号:12134165阅读:281来源:国知局
基于口令的即时通信方法及系统与流程

本发明涉及即时通信技术领域,尤其是涉及一种基于口令的即时通信方法和一种基于口令的即时通信系统。



背景技术:

即时通讯服务,是指两人或多人使用网络进行即时的传递文字讯息、档案、语音与视频交流的一种服务。目前,随着互联网的飞速发展,即时通讯服务已成为了广泛的、流行的通讯方式。

随着即时通讯服务的普及与应用,人们也越来越关注通讯过程的安全性,希望自己的隐私不被泄露。然而,目前的即时通讯服务软件对通信消息的加密机制过于简单、传统,甚至未进行任何加密处理,致使用户信息或隐私泄露事件屡见不鲜。

可见,非常有必要提高即时通信服务的安全性,尽量避免或减少信息泄露事件的发生。



技术实现要素:

本发明所要解决的技术问题是如何提高即时通信服务的安全性。

为解决上述技术问题,本发明提出了一种基于口令的即时通信方法及系统。

第一方面,该方法应用于通信终端中,包括:

当接收到用户输入的口令时,向服务端发出会话连接请求;

当接收到所述服务端发送的会话连接请求时,生成口令输入命令,并根据用户在所述口令输入命令提示下输入的口令对会话请求者进行身份验证,若身份验证成功,则向服务端发送会话连接应答;

当接收到服务端发送的会话连接应答时,根据所接收到的口令对会话应答者进行身份验证,若身份验证成功,则利用服务器确认是否 允许进行会话。

进一步地,该方法还包括:当向所述服务端发送所述会话连接应答时,利用所述服务端判断会话连接是否超时,具体为:

所述服务器判断接收到会话连接请求和接收到会话连接应答之间的时间差是否小于第一预设时长,

若是,则向会话连接请求的发出终端发送会话连接应答;

否则,向会话连接请求的发出终端和会话连接应答的发出终端发送连接失败的提示信息。

进一步地,所述利用服务器确认是否允许进行会话,包括:

向所述服务端发送连接确认信息,利用所述服务端判断会话连接是否超时,具体为:

所述服务端判断接收到会话连接请求和接收到连接确认信息之间的时间差是否小于第二预设时长,

若是,则向会话连接请求的发出终端和会话连接应答的发出终端发出连接成功的提示信息;

否则,向会话连接请求的发出终端和会话连接应答的发出终端发送连接失败的提示信息。

进一步地,对所述会话请求者或所述会话应答者进行身份验证的过程包括:

获取所接收到的口令对应的口令密文;

利用所述口令密文对接收到的会话连接请求中的加密公钥或接收到的会话连接应答中的加密公钥进行解密,并判断是否解密成功,

若是,则身份验证成功,并得到解密后的公钥;

否则,身份验证失败。

进一步地,所述会话连接请求中的加密公钥或所述会话连接应答中的加密公钥的生成过程包括:

当接收到用户输入的口令时,生成第一随机大数,并将该第一随 机大数作为私钥;

对接收到的口令进行加密,得到所述口令密文;

根据所述私钥生成第二随机大数,并以所述口令密文为密钥对所述第二随机大数进行加密,得到所述加密公钥。

进一步地,该方法还包括:

当终端利用服务器确认允许进行会话时,根据该终端生成的私钥和该终端得到的解密后的公钥,生成用于对会话过程中的通信消息加解密的第一密钥。

进一步地,该方法还包括:

当终端利用服务器确认允许进行会话时,根据该终端生成的私钥和该终端得到的解密后的公钥,生成第一密钥,对所述第一密钥和随机字符串进行加密,生成用于对会话过程中的通信消息加解密的第二密钥。

第二方面,该系统包括:

请求模块,用于当接收到用户输入的口令时,向服务端发出会话连接请求;

应答模块,用于当接收到所述服务端发送的会话连接请求时,生成口令输入命令,并根据用户在所述口令输入命令提示下输入的口令对会话请求者进行身份验证,若身份验证成功,则向服务端发送会话连接应答;

确认模块,用于当接收到服务端发送的会话连接应答时,根据所接收到的口令对会话应答者进行身份验证,若身份验证成功,则利用服务器确认是否允许进行会话。

进一步地,该系统还包括:

超时检测模块,用于当向所述服务端发送所述会话连接应答时,利用所述服务端判断会话连接是否超时,具体为:

所述服务器判断接收到会话连接请求和接收到会话连接应答之 间的时间差是否小于第一预设时长,

若是,则向会话连接请求的发出终端发送会话连接应答;

否则,向会话连接请求的发出终端和会话连接应答的发出终端发送连接失败的提示信息。

进一步地,所述确认模块中利用服务器确认是否允许进行会话,包括:

向所述服务端发送连接确认信息,利用所述服务端判断会话连接是否超时,具体为:

所述服务端判断接收到会话连接请求和接收到连接确认信息之间的时间差是否小于第二预设时长,

若是,则向会话连接请求的发出终端和会话连接应答的发出终端发出连接成功的提示信息;

否则,向会话连接请求的发出终端和会话连接应答的发出终端发送连接失败的提示信息。

本发明中,每建立一个会话,就要利用本发明进行一次会话连接。由于不同的会话,采用的口令可以不同,因此即便一次会话被破解,也不会影响到其他会话的安全性。而且,本发明采用口令对通信双方的身份进行验证,只有当双方的身份验证都成功时,才有会话连接成功的可能,因此提高了会话的安全性。

附图说明

通过参考附图会更加清楚的理解本发明的特征信息和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:

图1示出了根据本发明基于口令的即时通信方法一实施例的通信过程示意图;

图2示出了根据本发明基于口令的即时通信方法另一实施例的通信过程示意图;

图3示出了根据本发明基于口令的即时通信方法中一种身份验证 的流程示意图;

图4示出了根据本发明基于口令的即时通信方法中一种加密公钥生成的流程示意图;

图5示出了根据本发明基于口令的即时通信系统一实施例的结构框图。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。

本发明提供一种基于口令的即时通信方法,应用于通信终端中,如图1、2所示,该方法包括:

当接收到用户输入的口令时,向服务端发出会话连接请求;

当接收到所述服务端发送的会话连接请求时,生成口令输入命令,并根据用户在所述口令输入命令提示下输入的口令对会话请求者进行身份验证,若身份验证成功,则向服务端发送会话连接应答;

当接收到服务端发送的会话连接应答时,根据所接收到的口令对会话应答者进行身份验证,若身份验证成功,则利用服务器确认是否允许进行会话。

通过本发明的上述技术方案,可知实际通信过程大致为:

这里为方便介绍,将会话请求者的终端称为第一终端,会话应答者的终端称为第二终端。

当会话请求者在第一终端中输入一口令后,第一终端收到该口令,向服务端发送一会话连接请求。当服务器收到该会话连接请求后, 将其转发至第二终端。当第二终端接收到会话连接请求时,生成一口令输入命令,提示会话应答者输入口令。当第二终端接收到口令后,利用该口令对会话请求者进行身份验证。如果身份验证失败,有可能是输入口令错误,也有可能是会话请求者的身份错误。第二终端可以生成错误提示,提示会话应答者重新输入口令进行再次身份验证,直至会话应答者输入口令正确,身份验证成功。当身份验证正确或成功后,第二终端向服务端发出会话连接应答。服务端将该会话连接应答转发至第一终端,当第一终端接收到该会话连接应答时,利用自身的口令对会话应答者进行身份验证。如果身份验证失败,第一终端提示连接失败,若身份验证成功,则利用服务器确认是否允许进行会话。这里,对双方的身份验证都成功后,也未必能进行会话。还要考虑其他因素,例如会话连接时间、网络环境、用户的特殊设定等。

在实际中,每建立一个会话,就要利用本发明进行一次会话连接。由于不同的会话,采用的口令可以不同,因此即便一次会话被破解,也不会影响到其他会话的安全性。而且,本发明采用口令对通信双方的身份进行验证,只有当双方的身份验证都成功时,才有会话连接成功的可能,因此提高了会话的安全性。另外,由于口令的制定方法多种多样,例如线下约定的方式(电话沟通、面对面沟通)。任何线上的网间传输都具有不可避免的技术风险性。所以若采用线下约定的方式,可以避免初始安全信息由于技术风险暴露的可能性,线上与线下相结合的方式,进一步提高了通信的安全性。

在实际中,在会话连接请求从第一终端至第二终端的发送过程中,有可能被未知的第三方截获、破译,从而影响到身份验证的准确性,导致会话丧失安全性。为了防止该情况的发生,可以采用以下措施:

当向所述服务端发送所述会话连接应答时,利用所述服务端判断会话连接是否超时,具体为:

所述服务器判断接收到会话连接请求和接收到会话连接应答之间的时间差是否小于第一预设时长,

若是,则向会话连接请求的发出终端发送会话连接应答;

否则,向会话连接请求的发出终端和会话连接应答的发出终端发送连接失败的提示信息。

可见,服务器从收到会话连接请求时开始计时,在规定的时间(第一预设时长)内,第二终端必须做出正确回应即在规定的时间内收到第二终端的会话连接应答。否则,服务器判断为超时,提示通信双方连接失败。若未超时,则继续进行会话的连接。

第一预设时长的长短可以根据实际需求设置。一般情况下,第二终端在对会话请求者进行身份验证时,涉及一些加密或解密过程。基于已有的技术和设备性能,对一些加密算法尤其是较复杂的数据加密算法(Data Encryption Algorithm,简称DES)的破译至少需要数小时。应当了解,到目前为止,除了穷举搜索法对DES进行攻击外,还没发现更有效的办法,而以目前的硬件技术水平破解DES至少需要数小时的时间。而第二预设时间据此可以设置为几分钟或数十分钟,在此时间段内,DES基本不存在被破译的可能性。这样即便会话连接请求在发送过程中被截获,第三方也没有足够的时间进行破译、伪装,因此进一步的提高了会话的安全性。

本发明中,当对双方的身份验证都成功之后,利用服务器确认是否允许进行会话,该过程可以包括:

向所述服务端发送连接确认信息,利用所述服务端判断会话连接是否超时,具体为:

所述服务端判断接收到会话连接请求和接收到连接确认信息之间的时间差是否小于第二预设时长,

若是,则向会话连接请求的发出终端和会话连接应答的发出终端发出连接成功的提示信息;

否则,向会话连接请求的发出终端和会话连接应答的发出终端发送连接失败的提示信息。

其中,上述过程中的连接确认信息可以为确认字符ACK,当服务端接收到连接确认信息时,判断连接是否超时。若超时,则提示通信双方连接失败,还可以引导双方重新连接。若未超时,则提示双方连接成功,提示双方允许进行通话。在双方的身份都验证成功后,再次判断是否连接超时,进一步提高了即时通信服务的安全性。

在本发明的具体实施过程中,如图3所示,对所述会话请求者或所述会话应答者进行身份验证的过程包括:

获取所接收到的口令对应的口令密文;

利用该口令密文对接收到的会话连接请求中的加密公钥或接收到的会话连接应答中的加密公钥进行解密,

若得到解密后的公钥,则身份验证成功;

否则,身份验证失败。

第一终端、第二终端都可以采用以上方式对对方进行身份验证,首先是第二终端对会话请求者进行身份验证,然后才有第一终端对会话应答者进行身份验证:

第二终端接收到的会话应答者所输入的口令对应一个口令密文,该口令密文已经在第二终端对对方进行身份验证之前已经生成,因此在进行身份验证时,直接获取即可。当第二终端获取该口令密文后,利用该口令密文对接收到的会话连接请求中的加密公钥进行解密,由于会话连接请求是由第一终端生成并发出的,因此该请求中的加密公钥也是第一终端生成的,因此根据解密结果便能辨识对方的身份。

第一终端对会话应答者的验证过程也是如此,即当第一终端获取自身收到的口令所对应的口令密文后,利用该口令密文对接收到的会话连接应答中的加密公钥进行解密。当然该会话连接应答是由第二终端生成并发出的,因此该应答中的加密公钥也是第二终端生成的,因 此根据解密结果辨识对方的身份,判断身份验证是否成功。

可见,上述身份验证过程是基于所接收到的口令完成的,该验证过程安全,易实现。

下面介绍一种会话连接请求中的加密公钥或会话连接应答中的加密公钥的生成过程,如图4所示:

当接收到用户输入的口令时,生成第一随机大数,并将该第一随机大数作为私钥;

对接收到的口令进行加密,得到所述口令密文;

根据所述私钥生成第二随机大数,并以所述口令密文为密钥对所述第二随机大数进行加密,得到所述加密公钥。

由上述过程可知,该生成过程不仅生成了加密公钥,也生成了口令密文和私钥,其中口令密文用于对第二随机大数的加密或身份验证过程中的解密,私钥的作用会在稍后的文字中说明。

上述生成过程中,对口令的加密算法可采用信息-摘要算法(Message-Digest Algorithm 5,简称MD5),对第二随机大数的加密算法可采用DES。若此处用DES对第二随机大数加密,则在进行身份验证时,需要对加密公钥采用DES进行解密。

第一终端、第二终端均可采用以上方法生成加密公钥,以第一终端为例进行说明:

(1)当第一终端接收到会话请求者输入的口令K时,生成第一随机大数M,并将该第一随机大数M作为私钥pvtKeyA;

(2)第一终端对口令MD5加密,得到口令密文mk;

(3)第一终端将私钥pvtKeyA进行运算转换得到第二随机大数N,然后以口令密文mk为密钥,对第二随机大数N进行DES加密,得到加密公钥enPubKeyA。

第二终端的私钥pvtKeyB、加密公钥enPubKeyB的生成方法请参考上述过程。

本发明的上述过程仅为会话的连接过程。当会话连接成功后,双方可以进行通信。为了进一步提高通信的安全性,还可对会话过程中的通信消息进行加密,具体为:

当终端利用服务器确认允许进行会话时,根据该终端生成的私钥和该终端得到的解密后的公钥,生成用于对会话过程中的通信消息加解密的第一密钥。

采用第一密钥对通信消息进行加密,从而提高了通信的安全性。但是,由于第一密钥有可能被破译,此时,还可对所述第一密钥和随机字符串进行加密,生成第二密钥,利用第二密钥对会话过程中的通信消息加解密。

由于将所述第一密钥和随机字符串结合后进行加密,因此大大提高了被破译的可能性。下面以第二终端对上述过程进行说明:

第二终端根据自身生成的私钥pvtKeyB和自身得到的解密后的公钥pubKeyA(由第二终端对会话连接请求中的加密公钥enPubKeyA解密后得到),经过运算(此处的运算方式不做限定),得到第一密钥。当然,第二终端采用第一密钥对通信消息进行加解密。为了进一步提高通信消息的安全性,还可将第一密钥和随机字符串进一步的DES加密,采用进一步加密后得到的第二密钥对通信消息加解密,进一步增加了被第三方破译的难度。其中,随机字符串可以为固化在运行程序中的字符串。

由于通信消息是加密处理的,因此通信消息在服务端也是加密存储的,服务端不存储任何密钥信息,所以服务供应商也无法读取用户的消息内容,提高了通信的安全性。

下面本发明参照图2的实例对本发明的即时通信过程进行说明:

(1)第一终端A收到会话请求者a输入的口令,生成第一私钥pvtKeyA和第一加密公钥enPubKeyA,向服务端发送会话连接请求,该请求中包括第一加密公钥enPubKeyA;

(2)当服务端接收到会话连接请求时,开始计时,并将会话连接请求转发至第二终端B;

(3)当第二终端收到会话连接请求时,提示用户输入口令,提取出会话连接请求中的第一加密公钥enPubKeyA,利用接收到的口令对a进行身份验证,验证成功后得到解密后的第一公钥pubKeyA,然后生成私钥第二私钥pvtKeyB和第二加密公钥enPubKeyB,并向服务端发送会话连接应答,该应答中包括第二加密公钥enPubKeyB;

(4)当服务端接收到会话连接应答时,判断收到会话连接请求与收到会话连接应答之间的时间差是否超出第一预设时长,若未超出,则将会话连接应答转发至第一终端;

(5)当第一终端接收到会话连接应答时,提取会话连接应答中的第二加密公钥enPubKeyB,并利用口令对b进行身份验证,验证成功后得到解密后的第二公钥pubKeyB,并向服务端发送确认字符ACK;

(6)当服务端接收到ACK后,判断收到会话连接请求与收到确认字符之间的时间差是否超出第二预设时长,若未超出,则允许进行会话即会话建立成功,若超出,则告知双方连接失败。

其中,第一终端对会话中的通信消息加解密的第一密钥是由第一私钥和解密后的第二公钥生成,第二终端对会话中的通信消息加解密的第一密钥是由第二私钥和解密后的第一私钥生成。

注意:这里第一私钥、第一加密公钥、解密后的第一公钥、第二私钥、第二加密公钥、解密后的第二公钥仅是为了区分第一终端和第二终端所生成的密钥,与上述用于对通信消息加解密的第一密钥、第二密钥是不同的。

本发明还提供一种基于口令的即时通信系统,应用于通信终端中,如图5所示,该系统100包括:

请求模块101,用于当接收到用户输入的口令时,向服务端发出会话连接请求;

应答模块102,用于当接收到所述服务端发送的会话连接请求时,生成口令输入命令,并根据用户在所述口令输入命令提示下输入的口令对会话请求者进行身份验证,若身份验证成功,则向服务端发送会话连接应答;

确认模块103,用于当接收到服务端发送的会话连接应答时,根据所接收到的口令对会话应答者进行身份验证,若身份验证成功,则利用服务器确认是否允许进行会话。

进一步地,该系统还包括:

超时检测模块,用于当向所述服务端发送所述会话连接应答时,利用所述服务端判断会话连接是否超时,具体为:

所述服务器判断接收到会话连接请求和接收到会话连接应答之间的时间差是否小于第一预设时长,

若是,则向会话连接请求的发出终端发送会话连接应答;

否则,向会话连接请求的发出终端和会话连接应答的发出终端发送连接失败的提示信息。

进一步地,所述确认模块中利用服务器确认是否允许进行会话,包括:

向所述服务端发送连接确认信息,利用所述服务端判断会话连接是否超时,具体为:

所述服务端判断接收到会话连接请求和接收到连接确认信息之间的时间差是否小于第二预设时长,

若是,则向会话连接请求的发出终端和会话连接应答的发出终端发出连接成功的提示信息;

否则,向会话连接请求的发出终端和会话连接应答的发出终端发送连接失败的提示信息。

本发明基于口令的即时通信系统为本发明基于口令的即时通信方法的功能架构模块,其有关内容的解释、说明和有益效果请参考本 发明基于口令的即时通信方法中的相应部分,这里不再赘述。

综上所述,本发明基于口令的即时通信方法及系统具有以下优点:

(1)每一个会话都有自己的口令,执行一次会话连接,当某一会话被破译后,不影响其他会话的安全性;

(2)本发明采用口令对双方身份都进行验证,保证通信双方身份的真实性;

(3)采用服务端进行两次超时判断,避免第三方截获有关信息后有足够的时间进行破译,进一步提高通信的安全性;

(4)在会话过程中的通信消息进行加密,进一步提高了通信的安全性。

虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1