孫小華 江慧 戴百克 袁淑娟


摘 要:文章提出一種移動應用身份驗證系統設計方法,通過發起一個未接通電話呼叫的方式來驗證用戶提交的注冊申請中的身份信息是否真實有效。此方法可以為移動應用運營商省去通過發送短信驗證碼進行手機號碼驗證所需費用,而且免除用戶填入收到的短信驗證碼這一步驟,提高用戶的使用體驗。為防止消息傳送過程中產生泄密,手機客戶端與移動身份驗證平臺之間傳輸的消息將采用哈希函數進行加密。
關鍵詞:移動應用;身份驗證;哈希函數
近年來,隨著“互聯網+”戰略的實施和發展,我國移動應用市場應用數量呈現爆發性增長。根據工信部發布的2017年上半年我國互聯網業務運行情況報告,國內移動應用程序市場持續活躍且移動互聯網應用數量己超402萬款,且數量還在不斷快速增長。
2016年6月,國家互聯網信息辦公室發布了《移動互聯網應用程序信息服務管理規定》,要求移動應用程序按照“后臺實名、前臺自愿”的原則,對注冊用戶進行基于移動電話號碼等真實身份信息認證[1]。目前,用戶在使用大多數移動應用時都需要進行注冊,注冊流程基本上是用戶輸入手機號碼,然后輸入應用后臺發送的短信驗證碼進行驗證。在這個注冊流程中,移動應用運營商需要花費約3-8分錢的成本發送一條驗證碼短信到用戶手機號碼,用戶收到驗證碼短信之后還需要手動輸入到注冊界面上。
本文擬提出一種新的移動應用身份驗證方式,應用先嘗試自動獲取本機手機號碼,如不能獲取成功,提示用戶手動輸入本機手機號碼后,驗證系統通過呼叫能力開放接口廠家提供的呼叫接口向此手機號碼發起一個呼叫,在用戶接通這個呼叫之前中斷接續過程,通過手機產生的未接來電信息對用戶的身份進行驗證。通過這種身份驗證方式,移動應用運營商節省了短信發送費用,同時,用戶不需手動輸入驗證碼,從而提高了用戶的體驗。
1 相關研究現狀
目前,移動應用的實名認證流程基本上是用戶輸入手機號碼,然后點擊“發送驗證碼”,移動應用后臺通過發送短信驗證碼到用戶輸入的手機號碼上,用戶再輸入收到的短信驗證碼,最后點擊“注冊”按鈕。在這個注冊流程中,移動應用運營商需要花費成本發送一條驗證碼短信到用戶手機號碼,用戶收到驗證碼短信之后還需要手動輸入或者復制到注冊界面上。如果注冊用戶數目龐大的話,運營商的短信費用開支會很大,而且驗證過程需要用戶手動輸入驗證碼,用戶體驗不友好{2]。
有些移動應用注冊時通過驗證用戶輸入的郵箱地址來對用戶進行身份驗證,雖然不需要短信通信費用,但這種方式做不到真正的實名。在注冊一些涉及交易過程的移動應用APP,如支付寶、手機銀行等時,用戶還需要通過輸入用戶的身份證號碼或將身份證件掃描上傳等方式,由后臺人員人工審核注冊信息,這種方式需要用戶做繁瑣的操作,系統后臺的人工工作量也很大,不適用于一般的移動應用APP。此外,隨著人工智能技術的發展,人臉識別、指紋識別等在用戶驗證過程中應用已經比較廣泛,但這種方式還是需要通過手機號碼的驗證來進行補充才能做到實名。由于國家已經強制要求運營商對移動手機號碼的用戶進行實名登記,所以移動應用身份驗證的最基本方法還是通過用戶的手機號碼來驗證{3}。
2 移動應用身份驗證系統工作流程
本文擬提出一種新的移動應用身份驗證方式,通過發起、監聽和處理手機未接來電的方式,將用戶注冊過程中的短信認證方式改為通過未接電話信息認證的方式,提升注冊過程中身份驗汪的用戶體驗。
此身份驗證系統工作流程如圖1所示。用戶在輸入本機手機號碼后,直接點擊“注冊”按鈕,通過消息交互后由移動應用APP調用移動應用身份驗證系統接口,本移動應用身份驗證系統將調用呼叫能力開放接口廠家提供的呼叫接口向用戶輸入的手機號碼發起通話呼叫,在接續流程完成后立即中斷呼叫,用戶的手機號碼將產生一條未接來電信息,身份驗證系統對未接來電進行監聽,如果監聽到未接來電,判斷未接來電的呼叫方信息是否與身份驗證系統發起呼叫方信息一致,如果一致則認為是身份驗證成功,將驗證成功信息返回給第三方應用軟件,并將該呼叫信息設為己接電話;否則忽略該條未接來電信息;如果在預先設定的時間內沒有收到正確的未接來電呼叫信息,則認為身份驗證失敗,將驗證失敗信息返回給第三方應用軟件。其中,調用呼叫能力開放接口可選用中國電信協同通信開放平臺,該協同通信開放平臺是一個支持富通信模式的創新通信平臺,該平臺可以提供多種呼叫控制服務,并對外提供開放接口[4]。
3 用戶注冊消息流程
用戶注冊過程中消息流程如圖2所示
(1)用戶申請注冊時,移動應用APP將發送第一次注冊請求消息至移動身份驗汪平臺,消息中含有授權的移動應用標識。
(2)移動身份驗證平臺對消息中的移動應用標識進行驗汪,以防非法應用軟件接入進來。如果移動應用標識驗證成功,則在第一次注冊響應消息中要求移動客戶端將手機號碼、IMSI碼(可選)、用戶名、用戶密碼等用戶信息及時間戳傳送至身份驗證平臺;如果移動應用標識驗證失敗,則返回注冊失敗消息,注冊過程結束。其中IMSI (InternationalMobile Subscriber Identification Number)碼為國際移動用戶識別碼,是區別移動用戶的標志,儲存在SIM卡中,可用于區別移動用戶的有效信息。其總長度不超過15位,使用0-947之間的數字。
(3)移動應用APP向移動身份驗證平臺發送第二次注冊請求消息,請求消息中含有通過手機系統調用獲取到的IMSI、當前時間及用戶輸入的用戶名、密碼等信息。
(4)移動身份驗證平臺驗證請求消息是否合法,如果合法,則返回成功消息,移動應用APP接收到此成功消息后將啟動定時器,準備接收呼叫能力平臺發起的呼叫,同時提示用戶將會接收到一個主叫號碼為某個指定號碼的來電,并且不要去接聽此來電;如果APP的請求消息非法,平臺將返回消息非法響應消息,注冊過程失敗并終止。
(5)身份驗證平臺將向呼叫能力平臺發起呼叫請求,請求消息中將攜帶用戶的手機號碼,呼叫能力平臺接收到此消息后將向該手機發起呼叫,呼叫接續完成后將振鈴3秒。
(6)在定時器定時時間范圍內,移動應用APP將監聽接收到的未接來電信息,如果此來電信息中的主叫號碼是指定的號碼,則認為用戶注冊成功,向移動身份驗證平臺發送注冊確認消息,平臺收到確認消息后將用戶的摘要信息保存在數據庫中;否則,認為用戶注冊失敗。為突破360手機安全衛士等手機安全軟件對騷擾信息的攔截,移動應用APP通過調用手機底層接口來獲取手機未接來電信息。同時,為了實現使用戶不需感知接收到了未接來電即可實現身份驗證目的,移動應用APP將直接操作手機內部數據庫,對身份驗證系統發起的手機未接來電信息進行處理,將其信息設為己接來電[5],
為防止消息傳送過程中產生泄密,手機客戶端與移動身份驗證平臺之間傳輸的消息將采用哈希函數進行加密。哈希函數可以將任意長度的輸入經過變化后得到固定長度的輸出,這個固定長度的輸出就是原消息的散列值。采用哈希函數可以進行明文到密文的不可逆映射,由于只對保存消息的哈希值進行保存,進行消息校驗的時候僅需比對哈希值即可,即使攻擊者獲取了消息的哈希值,也無法獲取用戶的密碼信息。由于此過程是單向不可逆的,只有加密過程沒有解密過程,保證了消息傳送的安全。Hash函數將采用MD5加密算法來實現。如果用戶注冊成功,則驗證系統將用戶名和密碼組合通過MD5算法生成的摘要保存在系統數據庫中。之后在用戶的登錄過程中,系統將登錄消息中的用戶名和密碼組合通過MD5算法計算生成的摘要與系統數據庫中的摘要進行匹配,如果匹配成功,則返回登錄成功消息,否則,系統將返回登錄失敗消息[6]。
4結語
本文提出一種移動應用身份驗證系統,將用戶注冊過程中通過短信驗證碼的方式來驗證手機號碼是否正確改為通過未接電話信息認證的方式,節省了移動應用軟件運營商的短信發送費用。同時,在身份驗證過程中,用戶無需手動輸入短信驗證碼,系統直接對接收到的未接來電信息進行處理,用戶無需對未接來電進行手動處理,提升了用戶的體驗。為防止身份驗證過程中用戶信息的泄露,采用Hash函數對相關信息進行加密,根據移動應用APP的需要,在做身份驗證時可以綁定用戶移動電話卡的IMSI碼,并對移動應用標識進行驗證,以防非法應用軟件接入進來,提高了系統的安全性。
[參考文獻]
[1]王亞偉,彭長根,丁紅發,等.基于標識符的Android客戶端身份認證方案[J].網絡與信息安全學報,2017 (4):32-38
[2]甘宏,潘丹.基于動態身份遠程用戶認證方案的研究[J].數字通信,2014 (5):1-5
[3]胡衛,張煥國,魏國珩,等.面向移動平臺的新型身份認證方案設計[J]計算機科學,2014 (4):99-102
[4]嚴峰,劉明,全喜偉.基于移動互聯網用戶實名認證技術應用研究[J]中國公共安全(學術版),2017 (1):89-92.
[5]江超,龍毅宏.基于移動終端的系統登錄方法的研究與開發[J]軟件,2017 (3):12-15
[6]佚名.中國電信協同通信開放平臺[EB/OL]( 2017-08-10)[2017-11-17].http: //open.ecplive.cn/