本發明涉及互聯網通信安全技術,尤其涉及一種數據安全傳輸方法及系統。
背景技術:
目前市場上大部分移動端App都需要后臺業務端的支撐。后臺業務端一般表現為Web服務端的形式,封裝好業務邏輯實現,并對移動端App提供Web接口。移動端App大部分都是基于互聯網通信,即后臺業務端對外提供的接口需要暴露在互聯網環境中。
由于互聯網的開放特性,因此在移動端App和Web服務端進行信息交互的過程中,是在一個相對不安全的環境下進行,無法保證傳輸的數據不會被截獲、篡改和偽造;另外移動App對外發布的過程中,特別是Andriod開發的App,也容易被反編譯獲取源碼,從而被人篡改App包,改變運行邏輯。
技術實現要素:
為了克服現有技術的不足,本發明的目的在于提供一種數據安全傳輸方法及其裝置,其能解決移動端APP容易被反編譯被篡改的問題。
本發明提供一種數據安全傳輸方法,具體包括如下步驟:
S1、移動端APP根據其APP版本號計算得到第一MD5值;將APP版本號、第一MD5值和登錄信息根據初始密鑰進行加密生成登錄請求報文,并將登錄請求報文發送至WEB服務端;移動端APP中存有APP版本號和初始密鑰;
S2、WEB服務端根據初始密鑰對接收到的登錄請求報文進行解密,獲取到APP版本號、第一MD5值和登錄信息;根據APP版本號獲取對應的預存MD5值,并判斷第一MD5值和預存MD5值是否一致,如果是執行S3,否則結束;WEB服務端中存有多個不同的APP版本號以及其對應的不同的預存MD5值;
S3、WEB服務端判斷登錄信息和預存用戶信息是否匹配,如果是驗證成功,否則結束。
作為優選,APP版本號和初始密鑰保存在移動端APP的SO文件中。
作為優選,S3中驗證成功之后執行S4;
S4、WEB服務端根據預存用戶信息生成對應的用戶憑證和動態密鑰,并將判斷匹配結果、用戶憑證和動態密鑰通過初始密鑰進行加密生成登錄反饋報文,并將登錄反饋報文發送至移動端APP,執行S5;
S5、移動端APP根據初始密鑰對登錄反饋報文進行解密,獲取到判斷匹配結果、用戶憑證和動態密鑰;根據其APP版本號計算得到第二MD5值;將APP版本號、第二MD5值和業務請求信息根據動態密鑰進行加密,生成業務請求報文;并將業務請求報文和對應的用戶憑證發送至WEB服務端。
作為優選,S5之后還包括如下步驟:
S6、WEB服務端根據接收到的用戶憑證獲取對應的動態密鑰,并根據動態密鑰對接收到的業務請求報文進行解密,獲取到APP版本號、第二MD5值和業務請求信息;根據APP版本號獲取對應的預存MD5值,并判斷第二MD5值和預存MD5值是否一致,如果是根據業務請求信息進行相應的操作,否則結束。
作為優選,S6中,根據業務請求信息進行相應的操作之后還包括如下步驟:
S7、WEB服務端根據業務請求信息進行相應的操作,并生成相應的業務處理結果;根據動態密鑰將業務處理結果進行加密生成處理結果報文,并將該處理結果報文發送至移動端APP;
S8、移動端APP將動態密鑰對接收到處理結果報文進行解密,獲取業務處理結果。
本發明提供一種數據安全傳輸裝置,具體包括:
登錄請求模塊,應用于移動端APP,用于根據其APP版本號計算得到第一MD5值;將APP版本號、第一MD5值和登錄信息根據初始密鑰進行加密生成登錄請求報文,并將登錄請求報文發送至WEB服務端;移動端APP中存有APP版本號和初始密鑰;
第一登錄驗證模塊,應用于WEB服務端,用于根據初始密鑰對接收到的登錄請求報文進行解密,獲取到APP版本號、第一MD5值和登錄信息;根據APP版本號獲取對應的預存MD5值,并判斷第一MD5值和預存MD5值是否一致,如果是執行S3,否則結束;WEB服務端中存有多個不同的APP版本號以及其對應的不同的預存MD5值;
第二登錄驗證模塊,應用于WEB服務端,用于判斷登錄信息和預存用戶信息是否匹配,如果是驗證成功,否則結束。
作為優選,APP版本號和初始密鑰保存在移動端APP的SO文件中。
作為優選,數據安全傳輸裝置還包括:
登錄反饋模塊,應用于WEB服務端,用于根據預存用戶信息生成對應的用戶憑證和動態密鑰,并將判斷匹配結果、用戶憑證和動態密鑰通過初始密鑰進行加密生成登錄反饋報文,并將登錄反饋報文發送至移動端APP,執行業務申請模塊;
業務申請模塊,應用于移動端APP,用于根據初始密鑰對登錄反饋報文進行解密,獲取到判斷匹配結果、用戶憑證和動態密鑰;根據其APP版本號計算得到第二MD5值;將APP版本號、第二MD5值和業務請求信息根據動態密鑰進行加密,生成業務請求報文;并將業務請求報文和對應的用戶憑證發送至WEB服務端。
作為優選,數據安全傳輸裝置還包括:
業務驗證模塊,應用于WEB服務端,用于根據接收到的用戶憑證獲取對應的動態密鑰,并根據動態密鑰對接收到的業務請求報文進行解密,獲取到APP版本號、第二MD5值和業務請求信息;根據APP版本號獲取對應的預存MD5值,并判斷第二MD5值和預存MD5值是否一致,如果是根據業務請求信息進行相應的操作,否則結束。
作為優選,數據安全傳輸裝置還包括:
業務操作模塊,應用于WEB服務端,用于根據業務請求信息進行相應的操作,并生成相應的業務處理結果;根據動態密鑰將業務處理結果進行加密生成處理結果報文,并將該處理結果報文發送至移動端APP;
獲取模塊,應用于移動端APP,用于將動態密鑰對接收到處理結果報文進行解密,獲取業務處理結果。
相比現有技術,本發明的有益效果在于:通過每次登錄驗證計算MD5值,并與WEB服務端中預存MD5值進行比較判斷移動端APP是否被人篡改;且將登錄信息等通過初始密鑰進行加密,以防數據傳輸時容易被截獲,更好的保護移動端App和Web服務端之間的數據傳輸安全。
附圖說明
圖1為本發明的數據安全傳輸方法的流程圖;
圖2為本發明的數據安全傳輸裝置的模塊連接圖。
具體實施方式
下面,結合附圖以及具體實施方式,對本發明做進一步描述:
一種數據安全傳輸方法,如圖1所示,包括如下具體步驟:
步驟01、移動端APP根據其APP版本號計算得到第一MD5值;將APP版本號、第一MD5值和登錄信息根據初始密鑰進行加密,優選為AES加密,生成登錄請求報文;并將登錄請求報文發送至WEB服務端;
需要說明的是,移動端APP的SO文件中保存有APP版本號和初始密鑰;移動端App對外發布的過程中,容易被非法獲取進行反編譯;APP版本號和初始密鑰保存在SO文件中,可以減少APP版本號和初始密鑰泄露的可能性。
步驟02、WEB服務端根據初始密鑰對接收到登錄請求報文進行解密,獲取到APP版本號、第一MD5值和登錄信息;WEB服務端根據APP版本號獲取對應的預存MD5值,并判斷第一MD5值和預存MD5值是否一致,如果是執行步驟03,否則結束;
需要說明的是,WEB服務端中預存有多個不同的APP版本號以及其對應的預存MD5值。例如,APP版本號為1.0的對應的預存MD5值為101,APP版本號為2.0的對應的預存MD5值為110;WEB服務端根據獲取到的APP版本號,找到對應的預存MD5值。如果判斷第一MD5值和預存MD5值不一致,則說明移動端APP被認為篡改過;如果第一MD5值和預存MD5值一致,則說明移動端APP未被篡改過。
步驟03、WEB服務端判斷登錄信息和預存用戶信息是否匹配,如果是驗證成功且執行步驟04,否則結束。
需要說明的是,WEB服務端預存有所有的預存用戶信息。
步驟04、WEB服務端根據預存用戶信息生成對應的用戶憑證和動態密鑰,并將判斷匹配結果、用戶憑證和動態密鑰通過初始密鑰進行加密生成登錄反饋報文,并將登錄反饋報文發送至移動端APP;執行步驟05。
其中,動態密鑰為一串隨機的字符串,用戶憑證則是一串唯一的字符串,一個用戶憑證與一個預存用戶信息相對應。每次登錄驗證后都產生動態密鑰,在加解密的過程中使用動態密鑰,加大通信密文被截獲然后通過暴力破解的難度。
步驟05、移動端APP根據初始密鑰對登錄反饋報文進行解密,獲取到判斷匹配結果、用戶憑證和動態密鑰;移動端APP根據其APP版本號計算得到第二MD5值;將APP版本號、第二MD5值和業務請求信息根據動態密鑰進行加密,生成業務請求報文;并將業務請求報文和對應的用戶憑證發送至WEB服務端。
步驟06、WEB服務端根據接收到的用戶憑證獲取對應的動態密鑰,并根據動態密鑰對接收到的業務請求報文進行解密,獲取到APP版本號、第二MD5值和業務請求信息;WEB服務端根據APP版本號獲取對應的預存MD5值,并判斷第二MD5值和預存MD5值是否一致,如果是執行步驟07,否則結束;
需要說明的是,WEB服務端在生成用戶憑證和動態密鑰的后,將用戶憑證和動態密鑰、以及其對應關系進行了存儲;故WEB端可以根據接收到的用戶憑證獲取到對應的動態密鑰。
步驟07、WEB服務端根據業務請求信息進行相應的操作,并生成相應的業務處理結果;WEB服務端根據動態密鑰將業務處理結果進行加密生成處理結果報文,并將該處理結果報文發送至移動端APP。
步驟08、移動端APP將動態密鑰對接收到處理結果報文進行解密,獲取業務處理結果。
一種數據安全傳輸裝置,如圖2所示,具體包括:
登錄請求模塊,應用于移動端APP,用于根據其APP版本號計算得到第一MD5值;將APP版本號、第一MD5值和登錄信息根據初始密鑰進行加密,優選為AES加密,生成登錄請求報文;并將登錄請求報文發送至WEB服務端;
需要說明的是,移動端APP的SO文件中保存有APP版本號和初始密鑰;移動端App對外發布的過程中,容易被非法獲取進行反編譯;APP版本號和初始密鑰保存在SO文件中,可以減少APP版本號和初始密鑰泄露的可能性;
第一登錄驗證模塊,應用于WEB服務端,用于根據初始密鑰對接收到登錄請求報文進行解密,獲取到APP版本號、第一MD5值和登錄信息;WEB服務端根據APP版本號獲取對應的預存MD5值,并判斷第一MD5值和預存MD5值是否一致,如果是執行第二登錄驗證模塊,否則結束;
需要說明的是,WEB服務端中預存有多個APP版本號以及其對應的預存MD5值。例如,APP版本號為1.0的對應的預存MD5值為101,APP版本號為2.0的對應的預存MD5值為110;WEB服務端根據獲取到的APP版本號,找到對應的預存MD5值。如果判斷第一MD5值和預存MD5值不一致,則說明移動端APP被認為篡改過;如果第一MD5值和預存MD5值一致,則說明移動端APP未被篡改過。
第二登錄驗證模塊,應用于WEB服務端,用于判斷登錄信息和預存用戶信息是否匹配,如果是執行登錄反饋模塊,否則結束。
需要說明的是,WEB服務端預存有所有的預存用戶信息。
登錄反饋模塊,應用于WEB服務端,用于根據預存用戶信息生成對應的用戶憑證和動態密鑰,并將判斷匹配結果、用戶憑證和動態密鑰通過初始密鑰進行加密生成登錄反饋報文,并將登錄反饋報文發送至移動端APP。
其中,動態密鑰為一串隨機的字符串,用戶憑證則是一串唯一的字符串,一個用戶憑證與一個預存用戶信息相對應。
業務申請模塊,應用于移動端APP,用于根據初始密鑰對登錄反饋報文進行解密,獲取到判斷匹配結果、用戶憑證和動態密鑰;移動端APP根據其APP版本號計算得到第二MD5值;將APP版本號、第二MD5值和業務請求信息根據動態密鑰進行加密,生成業務請求報文;并將業務請求報文和對應的用戶憑證發送至WEB服務端。
業務驗證模塊,應用于WEB服務端,用于根據接收到的用戶憑證獲取對應的動態密鑰,并根據動態密鑰對接收到的業務請求報文進行解密,獲取到APP版本號、第二MD5值和業務請求信息;WEB服務端根據APP版本號獲取對應的預存MD5值,并判斷第二MD5值和預存MD5值是否一致,如果是執行業務操作模塊,否則結束;
需要說明的是,WEB服務端在生成用戶憑證和動態密鑰的后,將用戶憑證和動態密鑰、以及其對應關系進行了存儲;故WEB端可以根據接收到的用戶憑證獲取到對應的動態密鑰。
業務操作模塊,應用于WEB服務端,用于根據業務請求信息進行相應的操作,并生成相應的業務處理結果;WEB服務端根據動態密鑰將業務處理結果進行加密生成處理結果報文,并將該處理結果報文發送至移動端APP;
獲取模塊,應用于移動端APP,用于將動態密鑰對接收到處理結果報文進行解密,獲取業務處理結果。
對本領域的技術人員來說,可根據以上描述的技術方案以及構思,做出其它各種相應的改變以及形變,而所有的這些改變以及形變都應該屬于本發明權利要求的保護范圍之內。