本發(fā)明涉及即時(shí)通信技術(shù)領(lǐng)域,尤其是涉及一種基于口令的即時(shí)通信方法和一種基于口令的即時(shí)通信系統(tǒng)。
背景技術(shù):
即時(shí)通訊服務(wù),是指兩人或多人使用網(wǎng)絡(luò)進(jìn)行即時(shí)的傳遞文字訊息、檔案、語(yǔ)音與視頻交流的一種服務(wù)。目前,隨著互聯(lián)網(wǎng)的飛速發(fā)展,即時(shí)通訊服務(wù)已成為了廣泛的、流行的通訊方式。
隨著即時(shí)通訊服務(wù)的普及與應(yīng)用,人們也越來(lái)越關(guān)注通訊過(guò)程的安全性,希望自己的隱私不被泄露。然而,目前的即時(shí)通訊服務(wù)軟件對(duì)通信消息的加密機(jī)制過(guò)于簡(jiǎn)單、傳統(tǒng),甚至未進(jìn)行任何加密處理,致使用戶信息或隱私泄露事件屢見(jiàn)不鮮。
可見(jiàn),非常有必要提高即時(shí)通信服務(wù)的安全性,盡量避免或減少信息泄露事件的發(fā)生。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是如何提高即時(shí)通信服務(wù)的安全性。
為解決上述技術(shù)問(wèn)題,本發(fā)明提出了一種基于口令的即時(shí)通信方法及系統(tǒng)。
第一方面,該方法應(yīng)用于通信終端中,包括:
當(dāng)接收到用戶輸入的口令時(shí),向服務(wù)端發(fā)出會(huì)話連接請(qǐng)求;
當(dāng)接收到所述服務(wù)端發(fā)送的會(huì)話連接請(qǐng)求時(shí),生成口令輸入命令,并根據(jù)用戶在所述口令輸入命令提示下輸入的口令對(duì)會(huì)話請(qǐng)求者進(jìn)行身份驗(yàn)證,若身份驗(yàn)證成功,則向服務(wù)端發(fā)送會(huì)話連接應(yīng)答;
當(dāng)接收到服務(wù)端發(fā)送的會(huì)話連接應(yīng)答時(shí),根據(jù)所接收到的口令對(duì)會(huì)話應(yīng)答者進(jìn)行身份驗(yàn)證,若身份驗(yàn)證成功,則利用服務(wù)器確認(rèn)是否 允許進(jìn)行會(huì)話。
進(jìn)一步地,該方法還包括:當(dāng)向所述服務(wù)端發(fā)送所述會(huì)話連接應(yīng)答時(shí),利用所述服務(wù)端判斷會(huì)話連接是否超時(shí),具體為:
所述服務(wù)器判斷接收到會(huì)話連接請(qǐng)求和接收到會(huì)話連接應(yīng)答之間的時(shí)間差是否小于第一預(yù)設(shè)時(shí)長(zhǎng),
若是,則向會(huì)話連接請(qǐng)求的發(fā)出終端發(fā)送會(huì)話連接應(yīng)答;
否則,向會(huì)話連接請(qǐng)求的發(fā)出終端和會(huì)話連接應(yīng)答的發(fā)出終端發(fā)送連接失敗的提示信息。
進(jìn)一步地,所述利用服務(wù)器確認(rèn)是否允許進(jìn)行會(huì)話,包括:
向所述服務(wù)端發(fā)送連接確認(rèn)信息,利用所述服務(wù)端判斷會(huì)話連接是否超時(shí),具體為:
所述服務(wù)端判斷接收到會(huì)話連接請(qǐng)求和接收到連接確認(rèn)信息之間的時(shí)間差是否小于第二預(yù)設(shè)時(shí)長(zhǎng),
若是,則向會(huì)話連接請(qǐng)求的發(fā)出終端和會(huì)話連接應(yīng)答的發(fā)出終端發(fā)出連接成功的提示信息;
否則,向會(huì)話連接請(qǐng)求的發(fā)出終端和會(huì)話連接應(yīng)答的發(fā)出終端發(fā)送連接失敗的提示信息。
進(jìn)一步地,對(duì)所述會(huì)話請(qǐng)求者或所述會(huì)話應(yīng)答者進(jìn)行身份驗(yàn)證的過(guò)程包括:
獲取所接收到的口令對(duì)應(yīng)的口令密文;
利用所述口令密文對(duì)接收到的會(huì)話連接請(qǐng)求中的加密公鑰或接收到的會(huì)話連接應(yīng)答中的加密公鑰進(jìn)行解密,并判斷是否解密成功,
若是,則身份驗(yàn)證成功,并得到解密后的公鑰;
否則,身份驗(yàn)證失敗。
進(jìn)一步地,所述會(huì)話連接請(qǐng)求中的加密公鑰或所述會(huì)話連接應(yīng)答中的加密公鑰的生成過(guò)程包括:
當(dāng)接收到用戶輸入的口令時(shí),生成第一隨機(jī)大數(shù),并將該第一隨 機(jī)大數(shù)作為私鑰;
對(duì)接收到的口令進(jìn)行加密,得到所述口令密文;
根據(jù)所述私鑰生成第二隨機(jī)大數(shù),并以所述口令密文為密鑰對(duì)所述第二隨機(jī)大數(shù)進(jìn)行加密,得到所述加密公鑰。
進(jìn)一步地,該方法還包括:
當(dāng)終端利用服務(wù)器確認(rèn)允許進(jìn)行會(huì)話時(shí),根據(jù)該終端生成的私鑰和該終端得到的解密后的公鑰,生成用于對(duì)會(huì)話過(guò)程中的通信消息加解密的第一密鑰。
進(jìn)一步地,該方法還包括:
當(dāng)終端利用服務(wù)器確認(rèn)允許進(jìn)行會(huì)話時(shí),根據(jù)該終端生成的私鑰和該終端得到的解密后的公鑰,生成第一密鑰,對(duì)所述第一密鑰和隨機(jī)字符串進(jìn)行加密,生成用于對(duì)會(huì)話過(guò)程中的通信消息加解密的第二密鑰。
第二方面,該系統(tǒng)包括:
請(qǐng)求模塊,用于當(dāng)接收到用戶輸入的口令時(shí),向服務(wù)端發(fā)出會(huì)話連接請(qǐng)求;
應(yīng)答模塊,用于當(dāng)接收到所述服務(wù)端發(fā)送的會(huì)話連接請(qǐng)求時(shí),生成口令輸入命令,并根據(jù)用戶在所述口令輸入命令提示下輸入的口令對(duì)會(huì)話請(qǐng)求者進(jìn)行身份驗(yàn)證,若身份驗(yàn)證成功,則向服務(wù)端發(fā)送會(huì)話連接應(yīng)答;
確認(rèn)模塊,用于當(dāng)接收到服務(wù)端發(fā)送的會(huì)話連接應(yīng)答時(shí),根據(jù)所接收到的口令對(duì)會(huì)話應(yīng)答者進(jìn)行身份驗(yàn)證,若身份驗(yàn)證成功,則利用服務(wù)器確認(rèn)是否允許進(jìn)行會(huì)話。
進(jìn)一步地,該系統(tǒng)還包括:
超時(shí)檢測(cè)模塊,用于當(dāng)向所述服務(wù)端發(fā)送所述會(huì)話連接應(yīng)答時(shí),利用所述服務(wù)端判斷會(huì)話連接是否超時(shí),具體為:
所述服務(wù)器判斷接收到會(huì)話連接請(qǐng)求和接收到會(huì)話連接應(yīng)答之 間的時(shí)間差是否小于第一預(yù)設(shè)時(shí)長(zhǎng),
若是,則向會(huì)話連接請(qǐng)求的發(fā)出終端發(fā)送會(huì)話連接應(yīng)答;
否則,向會(huì)話連接請(qǐng)求的發(fā)出終端和會(huì)話連接應(yīng)答的發(fā)出終端發(fā)送連接失敗的提示信息。
進(jìn)一步地,所述確認(rèn)模塊中利用服務(wù)器確認(rèn)是否允許進(jìn)行會(huì)話,包括:
向所述服務(wù)端發(fā)送連接確認(rèn)信息,利用所述服務(wù)端判斷會(huì)話連接是否超時(shí),具體為:
所述服務(wù)端判斷接收到會(huì)話連接請(qǐng)求和接收到連接確認(rèn)信息之間的時(shí)間差是否小于第二預(yù)設(shè)時(shí)長(zhǎng),
若是,則向會(huì)話連接請(qǐng)求的發(fā)出終端和會(huì)話連接應(yīng)答的發(fā)出終端發(fā)出連接成功的提示信息;
否則,向會(huì)話連接請(qǐng)求的發(fā)出終端和會(huì)話連接應(yīng)答的發(fā)出終端發(fā)送連接失敗的提示信息。
本發(fā)明中,每建立一個(gè)會(huì)話,就要利用本發(fā)明進(jìn)行一次會(huì)話連接。由于不同的會(huì)話,采用的口令可以不同,因此即便一次會(huì)話被破解,也不會(huì)影響到其他會(huì)話的安全性。而且,本發(fā)明采用口令對(duì)通信雙方的身份進(jìn)行驗(yàn)證,只有當(dāng)雙方的身份驗(yàn)證都成功時(shí),才有會(huì)話連接成功的可能,因此提高了會(huì)話的安全性。
附圖說(shuō)明
通過(guò)參考附圖會(huì)更加清楚的理解本發(fā)明的特征信息和優(yōu)點(diǎn),附圖是示意性的而不應(yīng)理解為對(duì)本發(fā)明進(jìn)行任何限制,在附圖中:
圖1示出了根據(jù)本發(fā)明基于口令的即時(shí)通信方法一實(shí)施例的通信過(guò)程示意圖;
圖2示出了根據(jù)本發(fā)明基于口令的即時(shí)通信方法另一實(shí)施例的通信過(guò)程示意圖;
圖3示出了根據(jù)本發(fā)明基于口令的即時(shí)通信方法中一種身份驗(yàn)證 的流程示意圖;
圖4示出了根據(jù)本發(fā)明基于口令的即時(shí)通信方法中一種加密公鑰生成的流程示意圖;
圖5示出了根據(jù)本發(fā)明基于口令的即時(shí)通信系統(tǒng)一實(shí)施例的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點(diǎn),下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)的實(shí)施例及實(shí)施例中的特征可以相互組合。
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來(lái)實(shí)施,因此,本發(fā)明的保護(hù)范圍并不受下面公開(kāi)的具體實(shí)施例的限制。
本發(fā)明提供一種基于口令的即時(shí)通信方法,應(yīng)用于通信終端中,如圖1、2所示,該方法包括:
當(dāng)接收到用戶輸入的口令時(shí),向服務(wù)端發(fā)出會(huì)話連接請(qǐng)求;
當(dāng)接收到所述服務(wù)端發(fā)送的會(huì)話連接請(qǐng)求時(shí),生成口令輸入命令,并根據(jù)用戶在所述口令輸入命令提示下輸入的口令對(duì)會(huì)話請(qǐng)求者進(jìn)行身份驗(yàn)證,若身份驗(yàn)證成功,則向服務(wù)端發(fā)送會(huì)話連接應(yīng)答;
當(dāng)接收到服務(wù)端發(fā)送的會(huì)話連接應(yīng)答時(shí),根據(jù)所接收到的口令對(duì)會(huì)話應(yīng)答者進(jìn)行身份驗(yàn)證,若身份驗(yàn)證成功,則利用服務(wù)器確認(rèn)是否允許進(jìn)行會(huì)話。
通過(guò)本發(fā)明的上述技術(shù)方案,可知實(shí)際通信過(guò)程大致為:
這里為方便介紹,將會(huì)話請(qǐng)求者的終端稱(chēng)為第一終端,會(huì)話應(yīng)答者的終端稱(chēng)為第二終端。
當(dāng)會(huì)話請(qǐng)求者在第一終端中輸入一口令后,第一終端收到該口令,向服務(wù)端發(fā)送一會(huì)話連接請(qǐng)求。當(dāng)服務(wù)器收到該會(huì)話連接請(qǐng)求后, 將其轉(zhuǎn)發(fā)至第二終端。當(dāng)?shù)诙K端接收到會(huì)話連接請(qǐng)求時(shí),生成一口令輸入命令,提示會(huì)話應(yīng)答者輸入口令。當(dāng)?shù)诙K端接收到口令后,利用該口令對(duì)會(huì)話請(qǐng)求者進(jìn)行身份驗(yàn)證。如果身份驗(yàn)證失敗,有可能是輸入口令錯(cuò)誤,也有可能是會(huì)話請(qǐng)求者的身份錯(cuò)誤。第二終端可以生成錯(cuò)誤提示,提示會(huì)話應(yīng)答者重新輸入口令進(jìn)行再次身份驗(yàn)證,直至?xí)拺?yīng)答者輸入口令正確,身份驗(yàn)證成功。當(dāng)身份驗(yàn)證正確或成功后,第二終端向服務(wù)端發(fā)出會(huì)話連接應(yīng)答。服務(wù)端將該會(huì)話連接應(yīng)答轉(zhuǎn)發(fā)至第一終端,當(dāng)?shù)谝唤K端接收到該會(huì)話連接應(yīng)答時(shí),利用自身的口令對(duì)會(huì)話應(yīng)答者進(jìn)行身份驗(yàn)證。如果身份驗(yàn)證失敗,第一終端提示連接失敗,若身份驗(yàn)證成功,則利用服務(wù)器確認(rèn)是否允許進(jìn)行會(huì)話。這里,對(duì)雙方的身份驗(yàn)證都成功后,也未必能進(jìn)行會(huì)話。還要考慮其他因素,例如會(huì)話連接時(shí)間、網(wǎng)絡(luò)環(huán)境、用戶的特殊設(shè)定等。
在實(shí)際中,每建立一個(gè)會(huì)話,就要利用本發(fā)明進(jìn)行一次會(huì)話連接。由于不同的會(huì)話,采用的口令可以不同,因此即便一次會(huì)話被破解,也不會(huì)影響到其他會(huì)話的安全性。而且,本發(fā)明采用口令對(duì)通信雙方的身份進(jìn)行驗(yàn)證,只有當(dāng)雙方的身份驗(yàn)證都成功時(shí),才有會(huì)話連接成功的可能,因此提高了會(huì)話的安全性。另外,由于口令的制定方法多種多樣,例如線下約定的方式(電話溝通、面對(duì)面溝通)。任何線上的網(wǎng)間傳輸都具有不可避免的技術(shù)風(fēng)險(xiǎn)性。所以若采用線下約定的方式,可以避免初始安全信息由于技術(shù)風(fēng)險(xiǎn)暴露的可能性,線上與線下相結(jié)合的方式,進(jìn)一步提高了通信的安全性。
在實(shí)際中,在會(huì)話連接請(qǐng)求從第一終端至第二終端的發(fā)送過(guò)程中,有可能被未知的第三方截獲、破譯,從而影響到身份驗(yàn)證的準(zhǔn)確性,導(dǎo)致會(huì)話喪失安全性。為了防止該情況的發(fā)生,可以采用以下措施:
當(dāng)向所述服務(wù)端發(fā)送所述會(huì)話連接應(yīng)答時(shí),利用所述服務(wù)端判斷會(huì)話連接是否超時(shí),具體為:
所述服務(wù)器判斷接收到會(huì)話連接請(qǐng)求和接收到會(huì)話連接應(yīng)答之間的時(shí)間差是否小于第一預(yù)設(shè)時(shí)長(zhǎng),
若是,則向會(huì)話連接請(qǐng)求的發(fā)出終端發(fā)送會(huì)話連接應(yīng)答;
否則,向會(huì)話連接請(qǐng)求的發(fā)出終端和會(huì)話連接應(yīng)答的發(fā)出終端發(fā)送連接失敗的提示信息。
可見(jiàn),服務(wù)器從收到會(huì)話連接請(qǐng)求時(shí)開(kāi)始計(jì)時(shí),在規(guī)定的時(shí)間(第一預(yù)設(shè)時(shí)長(zhǎng))內(nèi),第二終端必須做出正確回應(yīng)即在規(guī)定的時(shí)間內(nèi)收到第二終端的會(huì)話連接應(yīng)答。否則,服務(wù)器判斷為超時(shí),提示通信雙方連接失敗。若未超時(shí),則繼續(xù)進(jìn)行會(huì)話的連接。
第一預(yù)設(shè)時(shí)長(zhǎng)的長(zhǎng)短可以根據(jù)實(shí)際需求設(shè)置。一般情況下,第二終端在對(duì)會(huì)話請(qǐng)求者進(jìn)行身份驗(yàn)證時(shí),涉及一些加密或解密過(guò)程?;谝延械募夹g(shù)和設(shè)備性能,對(duì)一些加密算法尤其是較復(fù)雜的數(shù)據(jù)加密算法(Data Encryption Algorithm,簡(jiǎn)稱(chēng)DES)的破譯至少需要數(shù)小時(shí)。應(yīng)當(dāng)了解,到目前為止,除了窮舉搜索法對(duì)DES進(jìn)行攻擊外,還沒(méi)發(fā)現(xiàn)更有效的辦法,而以目前的硬件技術(shù)水平破解DES至少需要數(shù)小時(shí)的時(shí)間。而第二預(yù)設(shè)時(shí)間據(jù)此可以設(shè)置為幾分鐘或數(shù)十分鐘,在此時(shí)間段內(nèi),DES基本不存在被破譯的可能性。這樣即便會(huì)話連接請(qǐng)求在發(fā)送過(guò)程中被截獲,第三方也沒(méi)有足夠的時(shí)間進(jìn)行破譯、偽裝,因此進(jìn)一步的提高了會(huì)話的安全性。
本發(fā)明中,當(dāng)對(duì)雙方的身份驗(yàn)證都成功之后,利用服務(wù)器確認(rèn)是否允許進(jìn)行會(huì)話,該過(guò)程可以包括:
向所述服務(wù)端發(fā)送連接確認(rèn)信息,利用所述服務(wù)端判斷會(huì)話連接是否超時(shí),具體為:
所述服務(wù)端判斷接收到會(huì)話連接請(qǐng)求和接收到連接確認(rèn)信息之間的時(shí)間差是否小于第二預(yù)設(shè)時(shí)長(zhǎng),
若是,則向會(huì)話連接請(qǐng)求的發(fā)出終端和會(huì)話連接應(yīng)答的發(fā)出終端發(fā)出連接成功的提示信息;
否則,向會(huì)話連接請(qǐng)求的發(fā)出終端和會(huì)話連接應(yīng)答的發(fā)出終端發(fā)送連接失敗的提示信息。
其中,上述過(guò)程中的連接確認(rèn)信息可以為確認(rèn)字符ACK,當(dāng)服務(wù)端接收到連接確認(rèn)信息時(shí),判斷連接是否超時(shí)。若超時(shí),則提示通信雙方連接失敗,還可以引導(dǎo)雙方重新連接。若未超時(shí),則提示雙方連接成功,提示雙方允許進(jìn)行通話。在雙方的身份都驗(yàn)證成功后,再次判斷是否連接超時(shí),進(jìn)一步提高了即時(shí)通信服務(wù)的安全性。
在本發(fā)明的具體實(shí)施過(guò)程中,如圖3所示,對(duì)所述會(huì)話請(qǐng)求者或所述會(huì)話應(yīng)答者進(jìn)行身份驗(yàn)證的過(guò)程包括:
獲取所接收到的口令對(duì)應(yīng)的口令密文;
利用該口令密文對(duì)接收到的會(huì)話連接請(qǐng)求中的加密公鑰或接收到的會(huì)話連接應(yīng)答中的加密公鑰進(jìn)行解密,
若得到解密后的公鑰,則身份驗(yàn)證成功;
否則,身份驗(yàn)證失敗。
第一終端、第二終端都可以采用以上方式對(duì)對(duì)方進(jìn)行身份驗(yàn)證,首先是第二終端對(duì)會(huì)話請(qǐng)求者進(jìn)行身份驗(yàn)證,然后才有第一終端對(duì)會(huì)話應(yīng)答者進(jìn)行身份驗(yàn)證:
第二終端接收到的會(huì)話應(yīng)答者所輸入的口令對(duì)應(yīng)一個(gè)口令密文,該口令密文已經(jīng)在第二終端對(duì)對(duì)方進(jìn)行身份驗(yàn)證之前已經(jīng)生成,因此在進(jìn)行身份驗(yàn)證時(shí),直接獲取即可。當(dāng)?shù)诙K端獲取該口令密文后,利用該口令密文對(duì)接收到的會(huì)話連接請(qǐng)求中的加密公鑰進(jìn)行解密,由于會(huì)話連接請(qǐng)求是由第一終端生成并發(fā)出的,因此該請(qǐng)求中的加密公鑰也是第一終端生成的,因此根據(jù)解密結(jié)果便能辨識(shí)對(duì)方的身份。
第一終端對(duì)會(huì)話應(yīng)答者的驗(yàn)證過(guò)程也是如此,即當(dāng)?shù)谝唤K端獲取自身收到的口令所對(duì)應(yīng)的口令密文后,利用該口令密文對(duì)接收到的會(huì)話連接應(yīng)答中的加密公鑰進(jìn)行解密。當(dāng)然該會(huì)話連接應(yīng)答是由第二終端生成并發(fā)出的,因此該應(yīng)答中的加密公鑰也是第二終端生成的,因 此根據(jù)解密結(jié)果辨識(shí)對(duì)方的身份,判斷身份驗(yàn)證是否成功。
可見(jiàn),上述身份驗(yàn)證過(guò)程是基于所接收到的口令完成的,該驗(yàn)證過(guò)程安全,易實(shí)現(xiàn)。
下面介紹一種會(huì)話連接請(qǐng)求中的加密公鑰或會(huì)話連接應(yīng)答中的加密公鑰的生成過(guò)程,如圖4所示:
當(dāng)接收到用戶輸入的口令時(shí),生成第一隨機(jī)大數(shù),并將該第一隨機(jī)大數(shù)作為私鑰;
對(duì)接收到的口令進(jìn)行加密,得到所述口令密文;
根據(jù)所述私鑰生成第二隨機(jī)大數(shù),并以所述口令密文為密鑰對(duì)所述第二隨機(jī)大數(shù)進(jìn)行加密,得到所述加密公鑰。
由上述過(guò)程可知,該生成過(guò)程不僅生成了加密公鑰,也生成了口令密文和私鑰,其中口令密文用于對(duì)第二隨機(jī)大數(shù)的加密或身份驗(yàn)證過(guò)程中的解密,私鑰的作用會(huì)在稍后的文字中說(shuō)明。
上述生成過(guò)程中,對(duì)口令的加密算法可采用信息-摘要算法(Message-Digest Algorithm 5,簡(jiǎn)稱(chēng)MD5),對(duì)第二隨機(jī)大數(shù)的加密算法可采用DES。若此處用DES對(duì)第二隨機(jī)大數(shù)加密,則在進(jìn)行身份驗(yàn)證時(shí),需要對(duì)加密公鑰采用DES進(jìn)行解密。
第一終端、第二終端均可采用以上方法生成加密公鑰,以第一終端為例進(jìn)行說(shuō)明:
(1)當(dāng)?shù)谝唤K端接收到會(huì)話請(qǐng)求者輸入的口令K時(shí),生成第一隨機(jī)大數(shù)M,并將該第一隨機(jī)大數(shù)M作為私鑰pvtKeyA;
(2)第一終端對(duì)口令MD5加密,得到口令密文mk;
(3)第一終端將私鑰pvtKeyA進(jìn)行運(yùn)算轉(zhuǎn)換得到第二隨機(jī)大數(shù)N,然后以口令密文mk為密鑰,對(duì)第二隨機(jī)大數(shù)N進(jìn)行DES加密,得到加密公鑰enPubKeyA。
第二終端的私鑰pvtKeyB、加密公鑰enPubKeyB的生成方法請(qǐng)參考上述過(guò)程。
本發(fā)明的上述過(guò)程僅為會(huì)話的連接過(guò)程。當(dāng)會(huì)話連接成功后,雙方可以進(jìn)行通信。為了進(jìn)一步提高通信的安全性,還可對(duì)會(huì)話過(guò)程中的通信消息進(jìn)行加密,具體為:
當(dāng)終端利用服務(wù)器確認(rèn)允許進(jìn)行會(huì)話時(shí),根據(jù)該終端生成的私鑰和該終端得到的解密后的公鑰,生成用于對(duì)會(huì)話過(guò)程中的通信消息加解密的第一密鑰。
采用第一密鑰對(duì)通信消息進(jìn)行加密,從而提高了通信的安全性。但是,由于第一密鑰有可能被破譯,此時(shí),還可對(duì)所述第一密鑰和隨機(jī)字符串進(jìn)行加密,生成第二密鑰,利用第二密鑰對(duì)會(huì)話過(guò)程中的通信消息加解密。
由于將所述第一密鑰和隨機(jī)字符串結(jié)合后進(jìn)行加密,因此大大提高了被破譯的可能性。下面以第二終端對(duì)上述過(guò)程進(jìn)行說(shuō)明:
第二終端根據(jù)自身生成的私鑰pvtKeyB和自身得到的解密后的公鑰pubKeyA(由第二終端對(duì)會(huì)話連接請(qǐng)求中的加密公鑰enPubKeyA解密后得到),經(jīng)過(guò)運(yùn)算(此處的運(yùn)算方式不做限定),得到第一密鑰。當(dāng)然,第二終端采用第一密鑰對(duì)通信消息進(jìn)行加解密。為了進(jìn)一步提高通信消息的安全性,還可將第一密鑰和隨機(jī)字符串進(jìn)一步的DES加密,采用進(jìn)一步加密后得到的第二密鑰對(duì)通信消息加解密,進(jìn)一步增加了被第三方破譯的難度。其中,隨機(jī)字符串可以為固化在運(yùn)行程序中的字符串。
由于通信消息是加密處理的,因此通信消息在服務(wù)端也是加密存儲(chǔ)的,服務(wù)端不存儲(chǔ)任何密鑰信息,所以服務(wù)供應(yīng)商也無(wú)法讀取用戶的消息內(nèi)容,提高了通信的安全性。
下面本發(fā)明參照?qǐng)D2的實(shí)例對(duì)本發(fā)明的即時(shí)通信過(guò)程進(jìn)行說(shuō)明:
(1)第一終端A收到會(huì)話請(qǐng)求者a輸入的口令,生成第一私鑰pvtKeyA和第一加密公鑰enPubKeyA,向服務(wù)端發(fā)送會(huì)話連接請(qǐng)求,該請(qǐng)求中包括第一加密公鑰enPubKeyA;
(2)當(dāng)服務(wù)端接收到會(huì)話連接請(qǐng)求時(shí),開(kāi)始計(jì)時(shí),并將會(huì)話連接請(qǐng)求轉(zhuǎn)發(fā)至第二終端B;
(3)當(dāng)?shù)诙K端收到會(huì)話連接請(qǐng)求時(shí),提示用戶輸入口令,提取出會(huì)話連接請(qǐng)求中的第一加密公鑰enPubKeyA,利用接收到的口令對(duì)a進(jìn)行身份驗(yàn)證,驗(yàn)證成功后得到解密后的第一公鑰pubKeyA,然后生成私鑰第二私鑰pvtKeyB和第二加密公鑰enPubKeyB,并向服務(wù)端發(fā)送會(huì)話連接應(yīng)答,該應(yīng)答中包括第二加密公鑰enPubKeyB;
(4)當(dāng)服務(wù)端接收到會(huì)話連接應(yīng)答時(shí),判斷收到會(huì)話連接請(qǐng)求與收到會(huì)話連接應(yīng)答之間的時(shí)間差是否超出第一預(yù)設(shè)時(shí)長(zhǎng),若未超出,則將會(huì)話連接應(yīng)答轉(zhuǎn)發(fā)至第一終端;
(5)當(dāng)?shù)谝唤K端接收到會(huì)話連接應(yīng)答時(shí),提取會(huì)話連接應(yīng)答中的第二加密公鑰enPubKeyB,并利用口令對(duì)b進(jìn)行身份驗(yàn)證,驗(yàn)證成功后得到解密后的第二公鑰pubKeyB,并向服務(wù)端發(fā)送確認(rèn)字符ACK;
(6)當(dāng)服務(wù)端接收到ACK后,判斷收到會(huì)話連接請(qǐng)求與收到確認(rèn)字符之間的時(shí)間差是否超出第二預(yù)設(shè)時(shí)長(zhǎng),若未超出,則允許進(jìn)行會(huì)話即會(huì)話建立成功,若超出,則告知雙方連接失敗。
其中,第一終端對(duì)會(huì)話中的通信消息加解密的第一密鑰是由第一私鑰和解密后的第二公鑰生成,第二終端對(duì)會(huì)話中的通信消息加解密的第一密鑰是由第二私鑰和解密后的第一私鑰生成。
注意:這里第一私鑰、第一加密公鑰、解密后的第一公鑰、第二私鑰、第二加密公鑰、解密后的第二公鑰僅是為了區(qū)分第一終端和第二終端所生成的密鑰,與上述用于對(duì)通信消息加解密的第一密鑰、第二密鑰是不同的。
本發(fā)明還提供一種基于口令的即時(shí)通信系統(tǒng),應(yīng)用于通信終端中,如圖5所示,該系統(tǒng)100包括:
請(qǐng)求模塊101,用于當(dāng)接收到用戶輸入的口令時(shí),向服務(wù)端發(fā)出會(huì)話連接請(qǐng)求;
應(yīng)答模塊102,用于當(dāng)接收到所述服務(wù)端發(fā)送的會(huì)話連接請(qǐng)求時(shí),生成口令輸入命令,并根據(jù)用戶在所述口令輸入命令提示下輸入的口令對(duì)會(huì)話請(qǐng)求者進(jìn)行身份驗(yàn)證,若身份驗(yàn)證成功,則向服務(wù)端發(fā)送會(huì)話連接應(yīng)答;
確認(rèn)模塊103,用于當(dāng)接收到服務(wù)端發(fā)送的會(huì)話連接應(yīng)答時(shí),根據(jù)所接收到的口令對(duì)會(huì)話應(yīng)答者進(jìn)行身份驗(yàn)證,若身份驗(yàn)證成功,則利用服務(wù)器確認(rèn)是否允許進(jìn)行會(huì)話。
進(jìn)一步地,該系統(tǒng)還包括:
超時(shí)檢測(cè)模塊,用于當(dāng)向所述服務(wù)端發(fā)送所述會(huì)話連接應(yīng)答時(shí),利用所述服務(wù)端判斷會(huì)話連接是否超時(shí),具體為:
所述服務(wù)器判斷接收到會(huì)話連接請(qǐng)求和接收到會(huì)話連接應(yīng)答之間的時(shí)間差是否小于第一預(yù)設(shè)時(shí)長(zhǎng),
若是,則向會(huì)話連接請(qǐng)求的發(fā)出終端發(fā)送會(huì)話連接應(yīng)答;
否則,向會(huì)話連接請(qǐng)求的發(fā)出終端和會(huì)話連接應(yīng)答的發(fā)出終端發(fā)送連接失敗的提示信息。
進(jìn)一步地,所述確認(rèn)模塊中利用服務(wù)器確認(rèn)是否允許進(jìn)行會(huì)話,包括:
向所述服務(wù)端發(fā)送連接確認(rèn)信息,利用所述服務(wù)端判斷會(huì)話連接是否超時(shí),具體為:
所述服務(wù)端判斷接收到會(huì)話連接請(qǐng)求和接收到連接確認(rèn)信息之間的時(shí)間差是否小于第二預(yù)設(shè)時(shí)長(zhǎng),
若是,則向會(huì)話連接請(qǐng)求的發(fā)出終端和會(huì)話連接應(yīng)答的發(fā)出終端發(fā)出連接成功的提示信息;
否則,向會(huì)話連接請(qǐng)求的發(fā)出終端和會(huì)話連接應(yīng)答的發(fā)出終端發(fā)送連接失敗的提示信息。
本發(fā)明基于口令的即時(shí)通信系統(tǒng)為本發(fā)明基于口令的即時(shí)通信方法的功能架構(gòu)模塊,其有關(guān)內(nèi)容的解釋、說(shuō)明和有益效果請(qǐng)參考本 發(fā)明基于口令的即時(shí)通信方法中的相應(yīng)部分,這里不再贅述。
綜上所述,本發(fā)明基于口令的即時(shí)通信方法及系統(tǒng)具有以下優(yōu)點(diǎn):
(1)每一個(gè)會(huì)話都有自己的口令,執(zhí)行一次會(huì)話連接,當(dāng)某一會(huì)話被破譯后,不影響其他會(huì)話的安全性;
(2)本發(fā)明采用口令對(duì)雙方身份都進(jìn)行驗(yàn)證,保證通信雙方身份的真實(shí)性;
(3)采用服務(wù)端進(jìn)行兩次超時(shí)判斷,避免第三方截獲有關(guān)信息后有足夠的時(shí)間進(jìn)行破譯,進(jìn)一步提高通信的安全性;
(4)在會(huì)話過(guò)程中的通信消息進(jìn)行加密,進(jìn)一步提高了通信的安全性。
雖然結(jié)合附圖描述了本發(fā)明的實(shí)施方式,但是本領(lǐng)域技術(shù)人員可以在不脫離本發(fā)明的精神和范圍的情況下做出各種修改和變型,這樣的修改和變型均落入由所附權(quán)利要求所限定的范圍之內(nèi)。