兩個移動終端之間的安全通信方法
【技術領域】
[0001]本發明總體地涉及通信技術,更具體地涉及在社交網絡等經由服務器通信的情況下兩個移動終端之間相互進行安全通信的方法。
【背景技術】
[0002]隨著移動互聯網的迅猛發展,類似于微信的即時通信軟件被擁有了很多的用戶。人們使用微信這樣的即時通信軟件發送消息,共享文件。然而這些即時通信軟件發送的信息和文件是不安全的。由于消息和文件是通過服務器中轉的,服務器可以對信息和文件攔截,進行分析和過濾,竊取個人和企業的隱私,分析個人行為和企業資料。同時信息也可以被網絡中的設備攔截和泄密。
【發明內容】
[0003]鑒于以上情況,提出了本發明。
[0004]根據本發明的一個方面,提供了一種第一移動終端經由服務器與第二移動終端相互通信的通信方法,第一移動終端和第二移動終端預先在本地產生各自的公鑰秘鑰對,并分別把各自的公鑰上傳到服務器,該通信方法包括:第一移動終端查詢服務器,獲得第二移動終端的公鑰;第一移動終端隨機產生會話秘鑰,并用第二移動終端的公鑰加密該會話秘鑰,以及用會話秘鑰加密待發送的消息;第一移動終端將所述加密后的消息和加密后的會話秘鑰一起經由服務器發送到第二移動終端,以便第二移動終端用自身的私鑰解密該會話秘鑰以及用解密的會話秘鑰來解密所接收到消息。
[0005]在一個示例中,該通信方法還可以包括:第一移動終端經由服務器接收來自第二移動終端的加密后的第二消息和加密后的第二會話秘鑰,利用自身的私鑰解密該第二會話秘鑰,以及利用第二會話秘鑰來解密該第二消息,其中該第二會話秘鑰被第二移動終端用第一移動終端的公鑰加密了,以及第二移動終端是從服務器獲得第一移動終端的公鑰的。
[0006]根據本發明的另一個方面,提供了一種服務器上執行的協助第一移動終端和第二移動終端相互通信的方法,該服務器上預先接收并存儲有來自第一移動終端的第一公鑰和來自第二移動終端的第二公鑰,以及第一移動終端保持有與第一公鑰對應的第一私鑰,以及第二移動終端保持有與第二公鑰對應的第二私鑰,該通信方法包括:響應于第一移動終端的查詢,向第一移動終端返回第二移動終端的所述第二公鑰;接收來自第一移動終端的加密后的第一會話秘鑰和加密的消息并轉發給第二移動終端,其中第一會話秘鑰被第一移動終端用第二公鑰加密,該消息被以第一會話秘鑰加密,以便第二移動終端用自身的第二私鑰解密第一會話秘鑰以及用解密的第一會話秘鑰解密收到的消息。
[0007]根據本發明的另一個方面,提供了一種第一移動終端經由服務器與第二移動終端相互通信的通信方法,包括:第一移動終端生成隨機數XA,并根據第一預定算法利用隨機數XA計算第一移動終端的公鑰YA,并將該第一移動終端的公鑰YA發送到服務器;第一移動終端接收經由服務器來自第二移動終端的第二移動終端的公鑰YB ;第一移動終端利用隨機數XA和第二移動終端的公鑰YB根據第二預定算法生成第一移動終端的會話秘鑰KA,該會話秘鑰KA等于第二移動終端處生成的會話秘鑰KB,第一移動終端用會話秘鑰KA加密待發送的消息;第一移動終端將加密后的消息經由服務器發送到第二移動終端,第二移動終端用會話秘鑰KB解密接收到的消息。
[0008]在一個不例的通彳目方法中,可以利用Diff1-Hellman算法使得第一移動終端的會話秘鑰KA等于第二移動終端的會話秘鑰KB,當第一移動終端添加第二移動終端為好友時,觸發上述會話秘鑰KA和KB的產生。
[0009]在一個示例的通信方法中,第一移動終端從服務器獲得全局公開的素數型參數a和整數型參數q,a是q的一個原根,第一移動終端利用隨機數XA根據公式YA = a'XA modq來生成第一移動終端的公鑰YA ;第一移動終端利用隨機數XA和第二移動終端的公鑰YB根據KA= (YB) 'XA mod q生成第一移動終端的會話秘鑰KA,其中第二移動終端基于公式YB = a'XB mod q計算公開秘鑰YB,其中XB是第二移動終端產生的隨機數,以及基于公式kB = (YA) 'XB mod q來生成第二移動終端的會話秘鑰KB,由此使得KA = KB。
[0010]在一個示例的通信方法中,第一移動終端定期更新公鑰和會話秘鑰。
[0011]根據本發明的另一方面,提供了一種服務器上執行的協助第一移動終端和第二移動終端通信的通信方法,包括:接收來自第一移動終端的隨機數XA并轉發給第二移動終端;接收來自第二移動終端的隨機數XB并轉發給第一移動終端;接收來自第一移動終端的加密的第一消息并轉發給第二移動終端;接收來自第二移動終端的加密的第二消息并轉發給第一移動終端,其中該第一消息被第一移動終端用第一會話秘鑰加密,第一會話秘鑰是第一移動終端基于隨機數XA和隨機數XB計算得到的,第二消息被第二移動終端用第二會話秘鑰加密,第二會話秘鑰是第二移動終端基于隨機數XA和隨機數XB計算得到的,且第一會話秘鑰等于第二會話秘鑰。
[0012]根據本發明的另一方面,提供了一種通信網絡中第一移動終端與第二移動終端的通信方法,該通信網絡包括第一移動終端和第二移動終端,該通信方法包括:第一移動終端將自己的地址信息和端口號發送到服務器;第一移動終端從服務器獲得第二移動終端的地址信息和端口號;第一移動終端利用所獲得的第二移動終端的地址信息和端口號,不經由服務器直接向第二移動終端發送消息。
[0013]在一個示例的通信方法,還可以包括:第一移動終端生成隨機數XA,直接利用所獲得的第二移動終端的地址信息和端口將隨機數XA發送給第二移動終端;第一移動終端接收直接發送自第二移動終端的隨機數XB ;第一移動終端利用自身生成的隨機數XA和接收的隨機數XB生成會話秘鑰k,第一移動終端用會話秘鑰加密消息,并將加密的消息發送給第二移動終端,其中第二移動終端利用自身生成的隨機數XB和接收的來自第一移動終端的隨機數XA也生成了同樣的會話秘鑰k,從而能夠用會話秘鑰k來解密來自第一移動終端的加密的消息。
[0014]利用本發明的上述實施例,提供了在移動互聯網和互聯網環境下安全即時通信方法,秘鑰只在發送和接受方所有,服務器也無法知道,這樣數據只有通信雙方知道。目前微信這樣的應用,其個人消息和文件會通過服務器轉發,服務器可以對消息攔截,在后臺進行過濾分析,獲取個人或者企業信息。該系統消除或降低了類似于微信的應用中消息和資料在網絡和服務器上泄密的風險。
【附圖說明】
[0015]從下面結合附圖對本發明實施例的詳細描述中,本發明的這些和/或其它方面和優點將變得更加清楚并更容易理解,其中:
[0016]圖1示出了根據本發明第一實施例的兩個移動終端A和B經由服務器相互通信的方法100的順序圖。
[0017]圖2示出了根據第二實施例的兩個移動終端A和B經由服務器相互通信的方法200的操作說明圖。
[0018]圖3示出了根據本發明第三實施例的的兩個移動終端A和B經由服務器相互通信的方法300的操作說明圖。
[0019]圖4示出了根據本發明實施例的系統硬件框架示意圖。
[0020]圖5示出了根據本發明實施例的另一系統硬件框架示意圖。
【具體實施方式】
[0021]為了使本領域技術人員更好地理解本發明,下面結合附圖和【具體實施方式】對本發明作進一步詳細說明。
[0022]根據本發明的第一實施例,提供了一種第一移動終端經由服務器與第二移動終端相互通信的通信方法,第一移動終端和第二移動終端預先在本地產生各自的公鑰秘鑰對,并分別把各自的公鑰上傳到服務器,該通信方法包括:第一移動終端查詢服務器,獲得第二移動終端的公鑰;第一移動終端隨機產生會話秘鑰,并用第二移動終端的公鑰加密該會話秘鑰,以及用會話秘鑰加密待發送的消息;第一移動終端將所述加密后的消息和加密后的會話秘鑰一起經由服務器發送到第二移動終端,以便第二移動終端用自身的私鑰解密該會話秘鑰以及用解密的會話秘鑰來解密所接收到消息。
[0023]在一個示例中,后的第二會話秘鑰,利用自身的私鑰解密該第二會話秘鑰,以及利用第二會話秘鑰來解密該第二消息,其中該第二會話秘鑰被第二移動終端用第一移動終端的公鑰加密了,以及第二移動終端是從服務器獲得第一移動終端的公鑰的。
[0024]圖4示出了根據本發明實施例的系統硬件框架示意圖。如圖4所示,系統包括至少兩個移動終端410和服務器420,服務器420和移動終端410之間可操作來進行