面向Android系統的移動終端簡訊端到端加密方法
2023-05-20 06:09:06 1
面向Android系統的移動終端簡訊端到端加密方法
【專利摘要】一種面向Android系統的移動終端簡訊端到端加密方法,包括:Android類庫模塊,簡訊編輯模塊,簡訊加密模塊,簡訊發送模塊,簡訊接收模塊,簡訊解密模塊,資料庫模塊和簡訊顯示模快,其中Android類庫模塊擴展和實例化了Android應用框架層的基礎類,供其他各模塊調用;簡訊編輯模塊提供用戶簡訊輸入功能;簡訊加密模塊一次一密加密簡訊;簡訊發送模塊把密信發送至GSM/3G網絡中;簡訊接收模塊從GSM/3G網絡中解析出密文簡訊;簡訊解密模塊由密信解析出會話秘鑰和密文,並用會話秘鑰解密密文;資料庫模塊用於封裝數據供其他模塊訪問;簡訊顯示模塊把資料庫中的簡訊呈現給用戶。本發明保證了簡訊通信安全。
【專利說明】面向Android系統的移動終端簡訊端到端加密方法
【技術領域】
[0001]本發明涉及信息安全,行動作業系統軟體開發等領域,尤其涉及一種面向Android系統的移動終端簡訊端到端加密方法。。
【背景技術】
[0002]隨著大數據時代的來臨,移動終端的用戶已經超過了 PC終端。而根據最新調查,Android系統在行動作業系統的市場佔有率已經超過了一半,再加上由於在Android系統下簡訊收發可以實現友好的聊天界面,人們對簡訊通信有了更多的依賴,所以越來越多的人在使用著Android系統簡訊軟體。但是由於Android作業系統具有半開源性,所以其簡訊通信的安全性比一般手機的簡訊通信的安全性有更高的要求。
[0003]目前,進行簡訊加密通信的方法主要有以下兩類,一類是利用硬體設備進行加密,一類是利用軟體加密。
[0004]利用硬體設備進行加密如申請號CN201310199000.4,其加密發送步驟如下:通過安全認證過程;使用接收端和發送端手機號碼作為參數生成加解密的所用密鑰;撰寫明文簡訊內容;使用加解密模塊對簡訊加密;使用簡訊處理模塊,將密文簡訊發送。該發明還提供了與上述加密發送方法相對應的接收解密方法,以及與上述方法配合工作的手機私密簡訊的硬體加密傳輸和存儲系統。但這種硬體的方法成本較高,可移植性較差並且不能實現一次一密。
[0005]利用軟體加密的如申請號CN201210451062.5 一種簡訊加密傳輸的方法,包括在發送端:1)編輯簡訊,選擇簡訊發送模式,若選擇密文模式,則執行步驟2)至3) ;2)根據提示輸入密碼、圖片或指紋中的至少一項;3)根據所述輸入的密碼、圖片或指紋中的至少一項將所述簡訊內容編輯加密,並發送;以及在接收端:4)收到簡訊,判斷是否為密文模式,若是,則執行步驟5) ;5)根據提示輸入密碼、圖片或指紋中的至少一項,若輸入正確,則執行步驟6),否則發出警報;6)根據所述輸入的密碼、圖片或指紋中的至少一項對加密簡訊進行解碼,獲取簡訊內容,需要雙方事先當面或打電話協商好秘鑰,應用場景比較局限,而且無法在Android作業系統上實現。
[0006]申請號CN201310019879.X 一種非對稱手機簡訊加密方法,依次包括建立保存密鑰步驟、發件人加密步驟、發件人發送步驟、收件人解密步驟、簡訊內容顯示等步驟。該發明需要引入伺服器存儲公鑰,增加了系統的複雜度,而且無法在Android作業系統上實現。
[0007]申請號CN201310269455.9 —種簡訊加密通訊系統及通訊方法。其系統架構基於帳戶處理單元、遠程業務單元、簡訊內容處理單元、簡訊處理平臺及移動終端而構成。通過在傳統簡訊通訊的系統架構基礎上增設帳戶處理單元,並完善遠程業務單元關於引入終端標識生成、綁定、驗證的綜合機制,實現簡訊加密通訊。但該發明沒能實現一次一密,而且無法在Android作業系統上實現。
[0008]申請號CN201210442976.5 一種手機簡訊加密通信系統及通信方法包括:私鑰生成中心,其生成系統參數與主密鑰;發送終端,其與私鑰生成中心連接,並與接收終端通信;接收終端,其與私鑰生成中心連接,並與發送終端通信;私鑰生成中心生成發送終端和接收終端的私鑰;發送終端與接收終端從私鑰生成中心獲取私鑰;發送終端與接收終端共享對稱密鑰;發送終端與接收終端根據對稱密鑰對簡訊進行加解密操作同時更新對稱密鑰。該方法雖然實現了一次一密,但是存在以下缺陷:1.引入了私鑰中心增加了系統複雜度;
2.私鑰中心向發送終端發送秘鑰時,以明文方式發送,易被攻擊者獲取;3.私鑰中心安全性不高;4.此種方法無法在Android作業系統上實現。
[0009]申請號CN201110227516.6 一種US頂卡簡訊加密及處理方法,其方法包括:對待加密處理的簡訊進行編碼,構造Record數據格式的數據,採用指定或者默認的加密算法和密鑰對其中的TS-SCA+TPDU部分進行加密處理,之後將整個簡訊數據存儲至指定的Record中。該發明一方面可兼容現有USIM卡普通簡訊存儲格式;另一方面對現有USIM卡簡訊存儲格式進行擴展,使其可以支持加密簡訊的存儲,從而起到保護USIM卡私密簡訊的目的。然而,該發明只涉及了簡訊存儲方法,沒有涉及簡訊加密傳輸方法。
[0010]申請號CN201010218878.4 一種簡訊加密通信系統,其系統包括:第一終端向密鑰中心發送簡訊加密請求消息;密鑰中心收到所述簡訊加密請求消息後,隨機生成會話密鑰,利用第一終端公鑰對所述會話密鑰進行加密,返回給第一終端。利用第二終端公鑰對所述會話密鑰進行加密,並發送給第二終端;第一終端收到所述加密的會話密鑰後,利用第一終端私鑰解密獲得所述會話密鑰並保存;第二終端收到所述加密的會話密鑰後,利用第二終端私鑰解密獲得所述會話密鑰並保存;第一終端利用所述會話密鑰對待發送的簡訊進行加密,發送給第二終端;第二終端收到所述加密的簡訊後,利用該會話密鑰對加密簡訊進行解密,並呈現給用戶。但該發明引入了密鑰中心,增加了系統複雜性,同時密鑰中心存在安全隱患,而且也無法在Android作業系統上實現。
【發明內容】
[0011]技術問題:本發明的目的在於彌補以上技術的不足,提供一種面向Android作業系統、不需要可信第三方、具備一次一密功能、可適用於移動GSM/3G網絡的簡訊端到端加密傳輸方法。
[0012]技術方案:本發明提供一種面向Android作業系統的移動終端簡訊端到端加密方法。本發明基於Android作業系統移動終端現有的簡訊軟體,添加了加解密的過程、具備一次一密功能、可適用於移動GSM/3G網絡。
[0013]本發明主要包括八部分=Android類庫模塊簡訊編輯模塊,簡訊加密模塊,簡訊發送模塊,簡訊接收模塊,簡訊解密模塊,資料庫模塊和簡訊顯示模塊。
[0014]其中Android類庫模塊的功能在於擴展和實例化Android系統應用框架層基礎類,被其他各個模塊調用,包括NConv模塊,MessageReceiver模塊,Buttonlisten模塊,SMS 模塊,DataResolver 模塊,CiperNotifica1n 模塊,MessageList 模塊和 Sess1nList模塊。其中NConv模塊基於Android應用框架層Activity類,加載描述簡訊編輯界面的XML文件,以實現簡訊編輯的界面;MessageReceiver模塊基於Android應用框架層的BroadCastReceiver類,添加接收簡訊的過濾器,以實現簡訊的接收;Buttonlisten模塊基於Android應用框架層的ImageButton類,添加監聽器,以監聽點擊按鈕所觸發的事件;SMS模塊實例化Android應用框架層SmsManager類,以實現簡訊的發送,同時實例化Android應用框架層SmsMessage類,以實現簡訊的接收;DataResolver模塊實例化Android應用框架層的ContentResolver類,以訪問資料庫;CiperNotificat1n模塊實例化Android應用程式框架層的Notificat1n類,以實現收到密信提示的界面;MessageList模塊基於應用框架層的Activity類,加載描述簡訊列表界面的XML文件,以實現簡訊列表的界面;Sess1nList模塊擴展Android應用框架層Activity類,加載描述簡訊會話界面的XML文件,以實現簡訊會話的界面。
[0015]簡訊編輯模塊的功能在於提供用戶編輯簡訊和聯繫人的界面,接收用戶編輯的簡訊Pl和聯繫人號碼B。
[0016]簡訊加密模塊包括會話秘鑰產生模塊和AES加密模塊,基於AES算法實現一次一密的簡訊加密。會話秘鑰產生模塊的功能在於隨機產生128位會話秘鑰Ks ;AES加密模塊的功能在於用主秘鑰K加密會話秘鑰Ks產生傳輸秘鑰KT,用會話秘鑰Ks加密簡訊產生密文簡訊C,連接傳輸秘鑰KT和密信C產生待發信息Cs。
[0017]簡訊發送模快接收簡訊編輯模塊輸出的號碼B,把待發信息Cs發送給號碼為B的手機,記錄下簡訊的發送時間Tl,把明文簡訊P1、號碼B和發送時間Tl傳送至簡訊資料庫模塊。
[0018]簡訊接收模塊包括簡訊解析模塊和明密文識別模塊,實現密信的接收。簡訊解析模塊的功能在於從GSM/3G網絡中解析出對端發送過來的內容Cr和發信人號碼A,記錄下簡訊接收的時間T2,把收信內容Cr、收信時間T2和發信人號碼A傳送至明密文識別模塊;明密文識別模塊的功能在於接收從簡訊解析模塊輸出的收信內容Cr、收信時間T2和發信人號碼A,檢驗收信內容Cr是不是密文簡訊,若識別出收信內容Cr是密文簡訊則給出收到密文簡訊的提示,並把收信內容Cr,收信時間T2和發信人號碼A傳送至簡訊解密模塊。
[0019]簡訊解密模塊包括秘鑰解析模塊和AES解密模塊。秘鑰解析模塊的功能在於接收明密文識別輸出的收信內容Cr,把傳輸秘鑰KT和簡訊密文C從收信內容Cr中解析出來,把傳輸秘鑰KT和密信C傳送至AES解密模塊;AES解密模塊的功能在於接收秘鑰解析模塊傳送過來的傳輸秘鑰KT和密信C,接收明密文識別模塊輸出的收信時間T2和發信人號碼A,用主秘鑰K解密傳輸秘鑰KT恢復會話秘鑰Ks,用會話秘鑰Ks解密密信C產生明文簡訊P2,把明文簡訊P2、收信時間T2和發信人號碼A傳送至簡訊資料庫模塊。
[0020]資料庫模塊包括聯繫人資料庫模塊和簡訊資料庫模塊。聯繫人資料庫模塊的功能在於把聯繫人表中的聯繫人資源封裝成地址的形式方便簡訊編輯模塊訪問;簡訊資料庫模塊的功能在於把簡訊資料庫的會話表和threads表中的簡訊資源封裝成地址的形式方便簡訊顯示模塊訪問。
[0021]簡訊顯示模塊包括簡訊列表顯示模塊和簡訊會話顯示模塊。簡訊列表顯示模塊的功能在於訪問簡訊資料庫模塊,訪問簡訊資料庫模塊,查詢簡訊資料庫中的threads表,把threads表中的「date」、「address」和「 snippet 」欄位的值呈現給用戶,並記錄下「 thread_id」欄位的值N;當用戶點擊簡訊列表中的某條簡訊時,把該條簡訊「thread_id」的值N傳送至簡訊會話顯示模塊;簡訊會話顯示模塊的功能在於接收簡訊列表顯示模塊輸出的「thread_id」的值N,並把簡訊資料庫中會話表中「thread_id」欄位的值為N的行的「type」、「addreSS」、「body」和「date」欄位的值呈現給用戶。
[0022]有益效果:本發明實現的是一種面向Android系統的移動終端簡訊端到端加密方法。適用於GSM/3G網,並且不需要引入可信第三方以確保安全、便捷。若有第三方監聽簡訊,則無法獲得簡訊的真實內容,有效地防止了第三方攻擊。本發明通過採用一次一密的簡訊端到端加密方法,保證端到端的簡訊通信安全。本發明還提供了友好的用戶界面方便使用。
【專利附圖】
【附圖說明】
[0023]圖1是本發明的應用場景圖;
[0024]圖2是本發明的整體原理圖;
[0025]圖3是本發明發送簡訊流程圖;
[0026]圖4是本發明加密原理圖
[0027]圖5是本發明接收簡訊流程圖;
[0028]圖6是本發明解密原理圖
[0029]圖7是本發明總體軟體結構圖。
【具體實施方式】
[0030]如圖1所示,本發明適用於能通過GSM/3G網絡發送簡訊的Android系統移動終端。
[0031]如圖2所示,包括Android類庫模塊1,簡訊編輯模塊2,簡訊加密模塊3,簡訊發送模塊4,簡訊接收模塊5,簡訊解密模塊6,資料庫模塊7和簡訊顯示模塊8,實現面向Android系統移動終端簡訊端到端一次一密的加密傳輸。Android類庫模塊I擴展和實例化Android系統應用框架層的基礎類,供簡訊編輯模塊2,簡訊發送模塊4,簡訊接收模塊5,資料庫模塊6和簡訊顯示模塊7調用;簡訊編輯模塊2通過創建用戶編輯簡訊界面,提供用戶簡訊輸入功能;簡訊加密模塊3基於AES算法加密用戶編輯的簡訊;簡訊發送模塊4把加密後的簡訊發送到GSM/3G網絡中;簡訊接收模塊5從GSM/3G網絡中接收協議數據單元PDU,從協議數據單元PDU解析出簡訊並判別簡訊是明文還是密文;簡訊解密模塊6從密文簡訊中解析出會話秘鑰和密文,並用會話秘鑰AES解密密文;資料庫模塊7用於存儲聯繫人和簡訊並把資料庫中的數據封裝成URI形式方便其他模塊調用;簡訊顯示模塊8把簡訊資料庫中文簡訊呈現給用戶。
[0032]一種面向Android系統移動終端簡訊端到端加密方法,如圖3所示,發送簡訊時:
[0033]I)由簡訊編輯模塊2,基於Android應用框架層Activity類,加載描述簡訊編輯界面的XML文件,生成NConv模塊1_1,調用NConv模塊1_1加載編輯簡訊的界面;接收用戶編輯的明文簡訊Pl ;將明文簡訊傳送至簡訊加密模塊3 ;
[0034]2)基於Android應用框架層的ImageButton類,添加監聽器生成Buttonlisten模塊1-2,調用Buttonlisten模塊1_2監聽查詢聯繫人的事件;實例化Android應用框架層的 ContentResolver 類生成 DataResolver 模塊 1-5,調用 DataResolver 模塊 1-5 查詢聯繫人資料庫模塊7-1中的電話號碼B ;
[0035]3)如圖4所示,由簡訊加密模塊3,接收簡訊發送模塊4輸出的明文簡訊Pl ;由會話秘鑰生成模塊3-1產生隨機數Sr,並計算Sr的hash值產生128位會話秘鑰Ks ;由AES加密模塊3-2用主秘鑰K加密Ks產生傳輸秘鑰KT,用會話秘鑰Ks加密明文簡訊Pl產生密文簡訊Cl,連接傳輸秘鑰KT和密文簡訊Cl產生待發信息Cs,將待發信息Cs傳送至簡訊發送模塊4 ;
[0036]4)由簡訊發送模塊4,實例化Android應用框架層SmsManager類和SmsMessage類,生成SMS模塊1-3 ;調用SMS模塊1-3,把待發信息Cs發送至GSM/3G網絡中;
[0037]5)記錄簡訊的發送時間Tl,並調用DataResolverl-5,把明文簡訊P1、電話號碼B和發送時間Tl存儲至簡訊資料庫模塊7-2 ;
[0038]6)由簡訊顯示模塊8,基於Android應用框架層的Activity類,加載描述簡訊列表界面的XML文件,生成MessageList模塊1_7 ;基於Android應用框架層Activity類,力口載描述簡訊會話界面的XML文件,生成Sess1nList模塊1_8 ;調用MessageList模塊1_7加載簡訊列表顯示的界面;訪問簡訊資料庫模塊7-2,查詢簡訊資料庫中的threads表,把threads表中的「date」、「address」和「 snippet 」欄位的值呈現給用戶,並記錄下「 thread_id」欄位的值N ;當用戶點擊簡訊列表中的某條簡訊時,把該條簡訊「thread_id」的值N傳送至簡訊會話顯示模塊8-2 ;調用Sess1nList模塊1_8,加載簡訊列表顯示的界面;簡訊會話顯示模塊8-2接收簡訊列表顯示模塊8-1輸出的「thread_id」欄位的值N ;把簡訊資料庫中會話表中「 thread_id」欄位的值為N的列的「 type 」、「address 」、「body 」和「 date,,欄位的值呈現給用戶。
[0039]一種面向Android系統移動終端簡訊端到端加密方法,如圖5所示接收簡訊時:
[0040]I)由簡訊接收模塊5基於Android應用框架層的BroadCastReceiver類,添加接收簡訊的過濾器,生成MessageReceiver模塊1-4 ;調用MessageReceiver模塊1-4,從GSM/3G網絡中接收協議數據單元I3DU ;
[0041]2)由簡訊解析模塊5-1調用SMS模塊1_3,從協議數據單元I3DU中解析出收信內容Cr和發信人號碼A,記錄下收信時間T2 ;把收信內容Cr、收信時間T2和發信人號碼A傳送至明密文識別模塊5-2;
[0042]3)由明密文識別模塊5-2接收收信內容Cr、收信時間T2和發信人號碼A,檢驗收信內容Cr中有沒有亂碼,若收信內容Cr中有亂碼,則可判定收信內容Cr是密文簡訊;
[0043]4)若收信內容Cr是密文,則攔截收信內容Cr的正常收信通道;實例化Android應用框架層的 Notificat1n 類,生成 CiperNotificat1n 模塊 1-6 ;調用 CiperNotificat1n 模塊1-6,給出收到密信的通知提示;把收信內容Cr,收信時間T2和發信人號碼A傳送至簡訊解密模塊6 ;若收信內容Cr是明文,則讓其進入正常收信通道。
[0044]5)如圖6所示,首先,由會話秘鑰解析模塊6-1接收簡訊解析模塊5-1輸出的收信內容Cr,然後從收信內容Cr中解析出傳輸秘鑰KT和密信C2,把傳輸秘鑰KT和密信C2傳送至AES解密模塊6-2 ;由AES解密模塊6_2接收傳輸秘鑰KT和密信C2 ;用主秘鑰K解密傳輸秘鑰KT恢復會話密鑰Ks,用會話密鑰Ks解密密信C2,產生明文簡訊P2 ;
[0045]6)調用DataResolver模塊1-5,把明文簡訊P2、收信時間T2和發信人號碼A存儲至簡訊資料庫模塊7-2 ;
[0046]7)由簡訊顯示模塊8,基於Android應用框架層的Activity類,加載描述簡訊列表界面的XML文件,生成MessageList模塊1_7 ;基於Android應用框架層Activity類,力口載描述簡訊會話界面的XML文件,生成Sess1nList模塊1_8 ;調用MessageList模塊1_7,加載簡訊列表顯示的界面;訪問簡訊資料庫模塊7-2,查詢簡訊資料庫中的threads表,把threads表中的「date」、「address」和「 snippet 」欄位的值呈現給用戶,並記錄下「 thread_id」欄位的值N ;當用戶點擊簡訊列表中的某條簡訊時,把該條簡訊「thread_id」的值N傳送至簡訊會話顯示模塊8-2 ;調用Sess1nList模塊1_8,加載簡訊列表顯示的界面;簡訊會話顯示模塊8-2接收簡訊列表顯示模塊8-1輸出的「thread_id」欄位的值N ;把簡訊資料庫中會話表中「thread_id」的值為N的行的「type」、「addreSS」、「body」和「date」欄位的值呈現給用戶。
[0047]圖7是本發明的軟體結構圖,包括JAVA程序部分,外部資源部分和sqlite三部分:
[0048]I) JAVA 程序部分主要包括 Kernel, ContentProvider 和 ResourceManager (R)三部分,以實現本發明的各個模塊的程序部分。Kernel是整個JAVA程序的核心,由NConv> MessageReceiver> MessageList、Sess1nList、AESmethocU SMS、Buttonlisten和Cipernotificat1n這九個JAVA類組成:NConv類繼承了 Android應用框架層的Activity類,管理簡訊編輯界面;MessageReceiver類繼承了 Android應用框架層的BroadcastReceiver類,在簡訊接收時用來接收信令信息;MessageList類繼承了 Android應用框架層的Activity類,管理簡訊列表界面;Sess1nlist類繼承了 Android應用框架層的Activity類,管理簡訊會話列表界面;AESmethod類實現AES加解密算法;SMS類實現簡訊的接收和發送;Buttonlisten類監聽點擊控制項的響應事件;CiperNotificat1n類管理Android通知欄,產生通知提示。ContentProvider類是Kernel用來訪問資料庫資源的中介。R類是JAVA程序訪問外部資源的中介。
[0049]2)外部資源部分主要包括XML文件,PNG文件和JPG文件三部分,為JAVA程序提供外部資源。其中XML文件主要用來描述各種控制項默認的形狀,名字和布局;PNG文件用來實現控制項圖片的資源;JPG文件是用來實現各種界面背景圖片的資源。
[0050]3) Sqlite包括聯繫人資料庫和簡訊資料庫這兩個資料庫。聯繫人資料庫是用戶預存的聯繫人的資源;簡訊資料庫存儲用戶收發的簡訊。
【權利要求】
1.一種面向Android系統的移動終端簡訊端到端加密方法,其特徵在於:包括用於實現針對Android作業系統移動終端簡訊端到端一次一密的加密傳輸的Android類庫模塊(I)、簡訊編輯模塊(2)、簡訊加密模塊(3)、簡訊發送模塊(4)、簡訊接收模塊(5)、簡訊解密模塊¢)、資料庫模塊(7)和簡訊顯示模塊(8); 其中,所述的簡訊編輯模塊(2)、簡訊發送模塊(4)、簡訊接收模塊(5)、簡訊顯示模塊(8)的部分功能需要通過調用Android類庫模塊(I)實現;簡訊發送時,由用戶向簡訊編輯模塊(2)輸入簡訊,用戶輸入的簡訊首先經過簡訊加密模塊(4)加密,再由簡訊發送模塊(5)發送,同時被存入資料庫模塊(7)最後由簡訊顯示模塊(8)呈現給用戶;簡訊接收時,首先簡訊由簡訊接收模塊(5)接收,再由簡訊解密模塊(6)解密,接著被存入資料庫模塊(7),最後由簡訊顯示模塊(8)呈現給用戶; 其中,所述的Android類庫模塊(I)通過擴展和實例化Android系統應用框架層基礎類,供簡訊編輯模塊(2),簡訊發送模塊(4),簡訊接收模塊(5)和簡訊顯示模塊(8)調用;所述的簡訊編輯模塊(2)通過創建用戶簡訊編輯界面,提供用戶簡訊輸入功能;所述的簡訊加密模塊(3)基於不同的臨時會話秘鑰,採用AES算法加密用戶編輯的簡訊;所述的簡訊發送模塊(4)把加密後的簡訊發送到GSM/3G網絡中;所述的簡訊接收模塊(5)從GSM/3G網絡中接收協議數據單元H)U,從協議數據單元PDU解析出簡訊並判別簡訊是明文還是密文;所述的簡訊解密模塊(6)從密文簡訊中解析出會話秘鑰和密文,並基於會話秘鑰採用AES算法解密出明文簡訊;所述的資料庫模塊(7)用於存儲簡訊和聯繫人信息,把資料庫中的簡訊和聯繫人信息封裝成URI形式方便其他模塊訪問;所述的簡訊顯示模塊(8)把簡訊資料庫(7)中存儲的明文簡訊呈現給用戶。
2.根據權利要求1所述的一種面向Android系統移動終端簡訊端到端加密方法,其特徵在於:所述的Android類庫模塊⑴包括NConv模塊(1-1), MessageReceiver模塊(1~4), Buttonlisten 模塊(1-2), SMS 模塊(1-3), DataResolver 模塊(1-5),CiperNotificat1n 模塊(1-6), MessageList 模塊(1-7)和 Sess1nList 模塊(1-8)這八個子模塊,通過擴展和實例化Android系統應用框架層基礎類,供簡訊編輯模塊(2)、簡訊發送模塊(4)、簡訊接收模塊(5)和簡訊顯示模塊(7)調用: 所述的NConv模塊(1-1)基於Android應用框架層Activity類,加載描述簡訊編輯界面的XML文件,以實現簡訊編輯界面; 所述的 MessageReceiver 模塊(1-4)基於 Android 應用框架層的 BroadCastReceiver類,添加接收簡訊的過濾器,以實現簡訊的接收; 所述的Buttonlisten模塊(1-2)基於Android應用框架層的ImageButton類,添加監聽器,以監聽點擊按鈕觸發的事件; 所述SMS模塊(1-3)實例化Android應用框架層SmsManager類,以實現簡訊的發送,同時實例化Android應用框架層SmsMessage類,以實現簡訊的解析; 所述的DataResolver模塊(1-5)實例化Android應用框架層的ContentResolver類,以訪問資料庫; 所述的CiperNotificat1n模塊(1-6)實例化Android應用框架層的Notificat1n類,以實現接收密信提示界面; 所述的MessageList模塊(1_7)基於Android應用框架層的Activity類,加載描述簡訊列表界面的XML文件,以實現簡訊列表顯示界面; 所述的Sess1nList模塊(1_8)基於Android應用框架層Activity類,加載描述簡訊會話界面的XML文件,以實現簡訊會話顯示界面。
3.根據權利要求1所述的一種面向Android系統移動終端簡訊端到端加密方法,其特徵在於:所述的簡訊編輯模塊(2)通過創建用戶編輯簡訊界面,提供用戶簡訊輸入功能,用戶簡訊的輸入具體包括以下5個步驟: 1)調用NConv模塊(1-1),加載編輯簡訊界面; 2)接收用戶編輯的明文簡訊Pl; 3)調用Buttonlisten模塊(1_2),監聽查詢聯繫人事件; 4)調用DataResolver模塊(1_5),查詢聯繫人資料庫中的電話號碼B; 5)把明文簡訊Pl傳送至簡訊加密模塊(3),把電話號碼B傳送至簡訊發送模塊(4)。
4.根據權利要求1所述的一種面向Android系統移動終端簡訊端到端加密方法,其特徵在於:所述的簡訊加密模塊(3)包括會話秘鑰生成模塊(3-1)和AES加密模塊(3-2)兩個子模塊,基於不同的臨時會話秘鑰,採用AES算法加密用戶編輯的簡訊Pl ; 其中,所述的會話秘鑰生成模塊(3-1)用於產生會話秘鑰Ks,該會話秘鑰的產生包括以下兩個步驟:首先隨機產生隨機數Sr,計算Sr的hash值產生128位會話秘鑰Ks ;然後把會話秘鑰Ks傳送至所述的AES加密模塊(3-2); 其中,所述的AES加密模塊(3-2)其功能在於加密用戶編輯的簡訊Pl和加密會話秘鑰Ks, AES加密的具體過程包括以下3個步驟: 1)接收簡訊編輯模塊(I)輸出的明文簡訊P1,以及會話秘鑰生成模塊(3-1)輸出的會話秘鑰Ks ; 2)用主秘鑰K加密Ks產生傳輸秘鑰KT,用會話秘鑰Ks加密明文簡訊Pl產生密文短?目C ; 3)合併傳輸秘鑰KT和密文簡訊C產生待發信息Cs,把明文簡訊Pl和待發信息Cs同時傳送至簡訊發送模塊(4)。
5.根據權利要求1所述的一種面向Android系統移動終端簡訊端到端加密方法,其特徵在於:所述的簡訊發送模塊(4)用於發送待發信息Cs,發送待發信息Cs的具體過程包括以下3個步驟: 1)接收所述的簡訊加密模塊(4)輸出的明文簡訊Pl和待發信息Cs,接收簡訊編輯模塊⑵輸出的電話號碼B ; 2)把待發信息Cs發送至GSM/3G網絡; 3)記錄簡訊的發送時間Tl,並調用DataResolver(1-5)把明文簡訊P1、電話號碼B和發送時間Tl存儲至所述的資料庫模塊(7)。
6.根據權利要求2所述的一種面向Android系統移動終端簡訊端到端加密方法,其特徵在於:所述的簡訊接收模塊(5)包括簡訊解析模塊(5-1)和明密文識別模塊(5-2),以實現密信的接收; 其中,所述的簡訊解析模塊(5-1)接收H)U,並從PDU中解析出簡訊,接收簡訊的具體過程包括下兩個步驟: I)調用MessageReceiver模塊(1_4),從GSM/3G網絡中接收協議數據單元PDU ; 2)調用SMS模塊(1-3),從協議數據單元PDU中解析出收信內容Cr和發信人號碼A,並記錄收信時間T2 ; 3)把收信內容Cr、收信時間T2和發信人號碼A傳送至所述的明密文識別模塊(5-2); 所述的明密文識別模塊(5-2),其功能在於識別明密文,識別明密文的具體過程包括以下3個步驟: 1)接收從所述的簡訊解析模塊(5-1)輸出的收信內容Cr、收信時間T2和發信人號碼A,檢驗收信內容Cr中是否有亂碼,若收信內容Cr中有亂碼則可判定收信內容Cr是密文短?目; 2)若收信內容Cr是密文,則攔截收信內容Cr的正常收信通道,調用CiperNotificat1n模塊(1_6),並給出收到密信的通知提示;若收信內容Cr是明文,則讓其進入正常收信通道。 3)若收信內容Cr是密文,把收信內容Cr,收信時間Τ2和發信人號碼A傳送至權利要求I所述的簡訊解密模塊(6)。
7.根據權利要求1說明一種面向Android系統移動終端簡訊端到端加密方法,其特徵在於:所述的簡訊解密模塊(6)包括會話秘鑰解析模塊(6-1)和AES解密模塊(6-2),以實現秘鑰的解析和密信的解密。 其中,所述的會話秘鑰解析模塊(6-1),從收信內容從Cr中解析出秘鑰,秘鑰解析的具體實現包括以下兩個步驟:首先,接收明密文識別模塊(5-2)輸出的收信內容Cr ;然後,從收信內容Cr中解析出傳輸秘鑰KT和密信C2,把傳輸秘鑰KT和密信C2傳送至所述的AES解密模塊出-2); 其中,所述的AES解密模塊(6-2)功能在於解密密信C2,密信解密的具體過程包括以下四個步驟: 1)接收所述的會話秘鑰解析模塊(6-1)輸出的傳輸秘鑰KT和密信C2; 2)接收明密文識別模塊(5-2)輸出的收信時間T2和發信人號碼A; 3)用主秘鑰K解密傳輸秘鑰KT恢復會話秘鑰Ks,用會話秘鑰Ks解密密信C2產生明文簡訊P2 ; 4)調用所述的DataResolver模塊(1_5),把明文簡訊P2、收信時間T2和發信人號碼A存儲至資料庫模塊(7)。
8.根據權利要求1所述的一種面向Android系統移動終端簡訊端到端加密方法,其特徵在於:所述的資料庫模塊(7)包括聯繫人資料庫模塊(7-1)和簡訊資料庫模塊(7-2),存儲聯繫人和簡訊信息,並把資料庫中的數據封裝成URI的形式,方便其他模塊訪問; 所述的聯繫人資料庫模塊(7-1)用於存儲聯繫人信息,並把聯繫人資料庫中的聯繫人數據封裝成URI地址的形式,被簡訊編輯模塊(2)訪問; 所述的簡訊資料庫模塊(7-2)用於存儲簡訊,並把簡訊資料庫中的簡訊數據封裝成URI地址的形式,被簡訊發送模塊(4),簡訊解密模塊(6)和簡訊顯示模塊(8)訪問。
9.根據權利要求1所述的一種面向Android系統移動終端簡訊端到端加密方法,其特徵在於:所述的簡訊顯示模塊(8)包括簡訊列表顯示模塊(8-1)和簡訊會話顯示模塊(8-2),以顯示簡訊資料庫中所接收和發送的簡訊; 所述的簡訊列表顯示模塊(8-1)以列表的形式顯示簡訊,簡訊列表顯示的具體過程包括以下3個步驟: 1)調用MessageList模塊(1_7),加載簡訊列表顯示界面; 2)訪問簡訊資料庫模塊(7-2),查詢簡訊資料庫中的threads表,把threads表中「date」、「addreSS」和「snippet」欄位的值呈現給用戶,並記錄下「thread_id」欄位的值N; 3)當用戶點擊簡訊列表中某條簡訊時,把「thread_id」欄位的值N傳送至所述的簡訊會話顯示模塊(8-2); 所述的簡訊會話顯示模塊(8-2)以會話的形式顯示簡訊,簡訊會話形式顯示的具體過程包括以下3個步驟: 1)調用所述的Sess1nList模塊(1_8)加載簡訊列表顯示界面; 2)接收所述的簡訊列表顯示模塊(8-1)輸出的「thread_id」欄位的值N; 3)訪問權利要求8所述的簡訊資料庫模塊(7-2),查詢簡訊資料庫中的會話表,把「thread_id」的值為N的行的「type」、「addreSS」、「body」和「date」欄位的值呈現給用戶。 本發明的整體工作流程如下: 發送簡訊時: 1)由簡訊編輯模塊(2),調用NConv模塊(1-1)加載編輯簡訊界面;接收用戶編輯的明文短?目Pl ; 2)調用Buttonlisten模塊(1-3)監聽查詢聯繫人的事件;調用DataResolver模塊(1-5)查詢聯繫人資料庫中的電話號碼B ; 3)由簡訊加密模塊(3),產生會話秘鑰Ks;並由會話秘鑰Ks加密明文簡訊P1,產生待發信息Cs ; 4)由簡訊發送模塊(4),調用SMS模塊(1-4)把待發信息Cs發送至GSM/3G網絡; 5)記錄簡訊的發送時間Tl,並調用DataResolver(1-7)把明文簡訊P1、電話號碼B和發送時間Tl存儲至資料庫模塊(7); 6)由簡訊顯示模塊(8)調用MessageList模塊(2_7),加載簡訊列表顯示界面,顯示短?目列表;調用Sess1nList模塊(2_8),加載短/[目列表顯不界面,顯不短/[目會話內容; 接收簡訊時: 1)由簡訊解析模塊(5-1),調用MessageReceiver(1-2),從GSM/3G網絡中接收I3DU (協議數據單元);調用SMS模塊(1-5)從PDU中解析出收信內容Cr和發信人號碼Α,記錄收信時間Τ2 ;把收信內容Cr、收信時間Τ2和發信人號碼A傳送至明密文識別模塊(5_2); 2)由明密文識別模塊(5-2)接收從簡訊解析模塊(5-1)輸出的收信內容Cr、收信時間Τ2和發信人號碼Α,檢驗收信內容Cr中是否有亂碼,若收信內容Cr中有亂碼,則可判定收信內容Cr是密文簡訊;若收信內容Cr是密文,則攔截收信內容Cr的正常收信通道;調用CiperNotificat1n模塊(1_6)給出收到密信的通知提示;把收信內容Cr,收信時間Τ2和發信人號碼A傳送至簡訊解密模塊¢);若收信內容Cr為明文,則讓其進入正常的收信通道。 3)由簡訊解密模塊(6),接收簡訊接收模塊輸出的收信內容Cr和收信時間T2;從&中解析出傳輸秘鑰KT和密文C2,並用主密鑰K解密傳輸秘鑰KT恢復會話秘鑰Ks,用會話秘鑰Ks解密密文C2產生明文P2 ; 4)調用DataResolver模塊(1_7)把明文簡訊P2、收信時間T2和發信人號碼A存儲至權利要求1所述的資料庫模塊(X) 5)調用MessageList模塊(2_7)加載簡訊列表顯示界面,顯示簡訊列表;調用Sess1nList模塊(2_8)加載短彳目列表顯不界面,顯不短彳目會話內容。
【文檔編號】H04W4/14GK104202736SQ201410426292
【公開日】2014年12月10日 申請日期:2014年8月26日 優先權日:2014年8月26日
【發明者】蔣睿, 周磊, 劉夢雅, 牟學凱 申請人:東南大學常州研究院