本發(fā)明涉及計算機(jī)及其軟件技術(shù)領(lǐng)域,特別地涉及一種面向移動用戶的身份驗證方法和系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)和通訊技術(shù)的發(fā)展,“手機(jī)號+短信驗證碼”的登錄方案被廣泛應(yīng)用在網(wǎng)站注冊/登錄、網(wǎng)上支付等需要快速確認(rèn)用戶身份的業(yè)務(wù)場景。其技術(shù)原理為:首先,用戶登錄服務(wù)界面(網(wǎng)站或APP),填寫自己的手機(jī)號碼,點擊“獲取驗證碼”按鈕。其次,網(wǎng)站或者APP按規(guī)則生成短信驗證碼,并將驗證碼通過運營商提供的短信發(fā)送接口,下推至用戶的手機(jī)終端。最后,用戶收到下推短信,并在規(guī)定時間內(nèi)把驗證碼填寫到服務(wù)界面,服務(wù)系統(tǒng)會對用戶填寫的驗證碼進(jìn)行校驗,通過則向用戶提供所請求的服務(wù)。
上述的短信驗證碼登錄方案的關(guān)鍵點在于:利用了手機(jī)號與用戶之間的自然綁定關(guān)系,通過用戶能否接收到驗證碼短信和能否在有效時間內(nèi)回填正確驗證碼這樣一個事實,來完成服務(wù)系統(tǒng)對用戶身份的認(rèn)證。此外,用戶在點擊“獲取驗證碼”后,在有限時間內(nèi)接收到短信,并通過短信里面的內(nèi)容,也可知道該短信是否由當(dāng)前服務(wù)商發(fā)出,相當(dāng)于完成了用戶對服務(wù)系統(tǒng)的簡單認(rèn)證,至此完成了用戶與服務(wù)商之間的雙向認(rèn)證。但該方案的安全性十分薄弱,缺點闡述如下:
(1)用戶無法對服務(wù)系統(tǒng)進(jìn)行準(zhǔn)確驗證:驗證短信發(fā)送號碼和發(fā)送內(nèi)容沒有統(tǒng)一的規(guī)范,完全由服務(wù)商自行擬定。而且通常服務(wù)系統(tǒng)并不會提前對用戶進(jìn)行通告,因此在大多數(shù)情況下,用戶沒有相應(yīng)的手段對驗證短信的真?zhèn)芜M(jìn)行辨別。在如今很多的電信詐騙案件中,受害人都是在無法辨別驗證短信發(fā)送來源的情況下,將驗證碼泄露給不法分子,造成賬號密碼重置、網(wǎng)銀手機(jī)號解綁等嚴(yán)重問題。
(2)驗證短信易被攔截,且內(nèi)容無法加密:普通短信的主要功能是在收發(fā)者之間傳輸簡短字符,這些字符統(tǒng)一采用UCS2編碼方案,屬于明文傳輸。這就造成了驗證短信一旦被攔截,其內(nèi)容便會被輕易破解。而當(dāng)下智能手機(jī)對于短信的處理都由APP(系統(tǒng)應(yīng)用或第三方應(yīng)用)來完成,這就使具有“讀取短信權(quán)限”的惡意APP,可以輕易攔截驗證短信并識別其內(nèi)容,并把其中內(nèi)容暗自轉(zhuǎn)發(fā)給第三方。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明提供一種面向移動用戶的身份驗證方法和系統(tǒng),可以解決現(xiàn)有技術(shù)中的上述問題,具有使用便捷、安全性高、成本低廉等優(yōu)點。
為實現(xiàn)上述目的,根據(jù)本發(fā)明的第一個方面,提供了一種面向移動用戶的身份驗證方法,適用于Andriod系統(tǒng)第三方應(yīng)交互情景,包括:安全服務(wù)卡應(yīng)用裝置向安全服務(wù)平臺裝置發(fā)出的卡注冊請求,所述卡注冊請求中包括安全服務(wù)卡應(yīng)用裝置對應(yīng)的用戶手機(jī)號碼MSISDN、國際移動用戶識別碼IMSI、移動終端串碼IMEI和集成電路卡識別碼ICCID;所述安全服務(wù)平臺裝置保存所述MSISDN、IMSI、IMEI以及ICCID的綁定關(guān)系,然后向所述安全服務(wù)卡應(yīng)用裝置發(fā)出卡注冊成功通知;所述安全服務(wù)平臺裝置接收到所述Andriod系統(tǒng)第三方應(yīng)用發(fā)出的應(yīng)用注冊請求之后,向所述Andriod系統(tǒng)第三方應(yīng)用分配第三方接入碼;所述安全服務(wù)平臺代理裝置SDK接收來自所述Andriod系統(tǒng)第三方應(yīng)用的第一調(diào)用指令,其中所述第一調(diào)用指令是由所述Andriod系統(tǒng)第三方應(yīng)用接收到用戶首次登錄指令和外界輸入的MSISDN之后發(fā)出的,所述第一調(diào)用指令的攜帶信息包括所述MSISDN和第三方接入碼;所述SDK確認(rèn)當(dāng)前移動終端的移動網(wǎng)絡(luò)狀態(tài)正常且未被獲取系統(tǒng)ROOT權(quán)限,然后通過Andriod系統(tǒng)提供的API獲取當(dāng)前的所述IMSI、IMEI以及ICCID;所述SDK向所述安全服務(wù)平臺裝置加密傳輸?shù)谝挥脩羯矸蒡炞C請求,所述第一用戶身份驗證請求的攜帶信息包括SDK的版本號、SDK的ID號、所述MSISDN、IMSI、IMEI、ICCID以及第三方接入碼;所述安全服務(wù)平臺裝置解密接收到的所述第一用戶身份驗證請求,根據(jù)所述SDK的版本號和SDK的ID號確認(rèn)所述SDK合法,確認(rèn)所述第三方接入碼合法,確認(rèn)所述MSISDN有效,然后將當(dāng)前的所述MSISDN、IMSI、IMEI以及ICCID的對應(yīng)關(guān)系與本地記錄比對以便驗證用戶身份信息,若驗證通過則生成每個用戶在每個Andriod系統(tǒng)第三方應(yīng)用的唯一的用戶身份標(biāo)識碼OpenID,然后向所述SDK返回用戶驗證結(jié)果和所述OpenID;所述SDK向所述Andriod系統(tǒng)第三方應(yīng)用返回所述用戶驗證結(jié)果和OpenID。
可選地,在所述SDK向所述Andriod系統(tǒng)第三方應(yīng)用返回所述用戶驗證結(jié)果和OpenID的步驟之后,還包括:所述SDK接收來自所述Andriod系統(tǒng)第三方應(yīng)用的第二調(diào)用指令,其中所述第二調(diào)用指令是由所述Andriod系統(tǒng)第三方應(yīng)用接收到用戶二次登錄指令之后發(fā)出的,所述第二調(diào)用指令的攜帶信息包括所述OpenID和第三方接入碼;所述SDK確認(rèn)當(dāng)前移動終端的移動網(wǎng)絡(luò)狀態(tài)正常且未被獲取系統(tǒng)ROOT權(quán)限,然后通過Andriod系統(tǒng)提供的API獲取當(dāng)前的所述IMSI、IMEI以及ICCID;所述SDK向所述安全服務(wù)平臺裝置加密傳輸?shù)诙脩羯矸蒡炞C請求,所述第二用戶身份驗證請求的攜帶信息包括所述SDK的版本號、SDK的ID號、OpenID、IMSI、IMEI、ICCID以及第三方接入碼;所述安全服務(wù)平臺裝置解密接收到的所述第二用戶身份驗證請求,根據(jù)所述SDK的版本號和SDK的ID號確認(rèn)所述SDK合法,確認(rèn)所述第三方接入碼合法,確認(rèn)所述MSISDN有效,確認(rèn)連續(xù)兩次登錄驗證的所述Andriod系統(tǒng)第三方應(yīng)用一致性以及移動終端一致性,然后將當(dāng)前的所述OpenID、IMSI、IMEI以及ICCID的對應(yīng)關(guān)系與本地記錄比對以便于驗證用戶身份信息,若驗證通過則向所述SDK返回用戶驗證結(jié)果和所述MSISDN;所述SDK向所述Andriod系統(tǒng)第三方應(yīng)用返回用戶驗證結(jié)果和所述MSISDN。
根據(jù)本發(fā)明的第二個方面,提供了一種面向移動用戶的身份驗證系統(tǒng),適用于Andriod系統(tǒng)第三方應(yīng)交互情景,包括:安全服務(wù)卡應(yīng)用裝置、安全服務(wù)平臺裝置和安全服務(wù)平臺代理裝置SDK,所述安全服務(wù)卡應(yīng)用裝置用于:向安全服務(wù)平臺裝置發(fā)出的卡注冊請求,所述卡注冊請求中包括安全服務(wù)卡應(yīng)用裝置對應(yīng)的用戶手機(jī)號碼MSISDN、國際移動用戶識別碼IMSI、移動終端串碼IMEI和集成電路卡識別碼ICCID;所述安全服務(wù)平臺裝置用于:保存所述MSISDN、IMSI、IMEI以及ICCID的綁定關(guān)系,然后向所述安全服務(wù)卡應(yīng)用裝置發(fā)出卡注冊成功通知;接收到所述Andriod系統(tǒng)第三方應(yīng)用發(fā)出的應(yīng)用注冊請求之后,向所述Andriod系統(tǒng)第三方應(yīng)用分配第三方接入碼;解密接收到的所述第一用戶身份驗證請求,根據(jù)所述SDK的版本號和SDK的ID號確認(rèn)所述SDK合法,確認(rèn)所述第三方接入碼合法,確認(rèn)所述MSISDN有效,然后將當(dāng)前的所述MSISDN、IMSI、IMEI以及ICCID的對應(yīng)關(guān)系與本地記錄比對以便于驗證用戶身份信息,若驗證通過則生成每個用戶在每個Andriod系統(tǒng)第三方應(yīng)用的唯一的用戶身份標(biāo)識碼OpenID,然后向所述SDK返回用戶驗證結(jié)果和所述OpenID;所述SDK用于:接收來自所述Andriod系統(tǒng)第三方應(yīng)用的第一調(diào)用指令,其中所述第一調(diào)用指令是由所述Andriod系統(tǒng)第三方應(yīng)用接收到用戶首次登錄指令和外界輸入的MSISDN之后發(fā)出的,所述第一調(diào)用指令的攜帶信息包括所述MSISDN和第三方接入碼;確認(rèn)當(dāng)前移動終端的移動網(wǎng)絡(luò)狀態(tài)正常并且未被獲取系統(tǒng)ROOT權(quán)限,然后通過Andriod系統(tǒng)提供的API獲取當(dāng)前的所述IMSI、IMEI以及ICCID;向所述安全服務(wù)平臺裝置加密傳輸?shù)谝挥脩羯矸蒡炞C請求,所述第一用戶身份驗證請求的攜帶信息包括SDK的版本號、SDK的ID號、所述MSISDN、IMSI、IMEI、ICCID以及第三方接入碼;向所述Andriod系統(tǒng)第三方應(yīng)用返回所述用戶驗證結(jié)果和OpenID。
可選地,所述SDK還用于:接收來自所述Andriod系統(tǒng)第三方應(yīng)用的第二調(diào)用指令,其中所述第二調(diào)用指令是由所述Andriod系統(tǒng)第三方應(yīng)用接收到用戶二次登錄指令之后發(fā)出的,所述第二調(diào)用指令的攜帶信息包括所述OpenID和第三方接入碼;確認(rèn)當(dāng)前移動終端的移動網(wǎng)絡(luò)狀態(tài)正常且未被獲取系統(tǒng)ROOT權(quán)限,然后通過Andriod系統(tǒng)提供的API獲取當(dāng)前的所述IMSI、IMEI以及ICCID;向所述安全服務(wù)平臺裝置加密傳輸?shù)诙脩羯矸蒡炞C請求,所述第二用戶身份驗證請求的攜帶信息包括所述SDK的版本號、SDK的ID號、OpenID、IMSI、IMEI、ICCID以及第三方接入碼;向所述Andriod系統(tǒng)第三方應(yīng)用返回用戶驗證結(jié)果和所述MSISDN;所述安全服務(wù)平臺裝置還用于:解密接收到的所述第二用戶身份驗證請求,根據(jù)所述SDK的版本號和SDK的ID號確認(rèn)所述SDK合法,確認(rèn)所述第三方接入碼合法,確認(rèn)所述MSISDN有效,確認(rèn)連續(xù)兩次登錄驗證的所述Andriod系統(tǒng)第三方應(yīng)用一致性以及移動終端一致性,然后將當(dāng)前的所述OpenID、IMSI、IMEI以及ICCID的對應(yīng)關(guān)系與本地記錄比對以便于驗證用戶身份信息,若驗證通過則向所述SDK返回用戶驗證結(jié)果和所述MSISDN。
根據(jù)本發(fā)明的第三個方面,提供了一種面向移動用戶的身份驗證方法,適用于iOS系統(tǒng)第三方應(yīng)用交互情景,包括:安全服務(wù)卡應(yīng)用裝置向安全服務(wù)平臺裝置發(fā)出的卡注冊請求,所述卡注冊請求中包括安全服務(wù)卡應(yīng)用裝置對應(yīng)的用戶手機(jī)號碼MSISDN、國際移動用戶識別碼IMSI、移動終端串碼IMEI和集成電路卡識別碼ICCID;所述安全服務(wù)平臺裝置保存所述MSISDN、IMSI、IMEI以及ICCID的綁定關(guān)系,然后向所述安全服務(wù)卡應(yīng)用裝置發(fā)出卡注冊成功通知;所述安全服務(wù)平臺裝置接收到所述iOS系統(tǒng)第三方應(yīng)用發(fā)出的應(yīng)用注冊請求之后,向所述iOS系統(tǒng)第三方應(yīng)用分配第三方接入碼;所述安全服務(wù)平臺代理裝置SDK接收來自所述iOS系統(tǒng)第三方應(yīng)用的第三調(diào)用指令,其中所述第三調(diào)用指令是由所述iOS系統(tǒng)第三方應(yīng)用接收到用戶首次登錄指令和外界輸入的MSISDN之后發(fā)出的,所述第三調(diào)用指令的攜帶信息包括所述MSISDN和第三方接入碼;所述SDK確認(rèn)當(dāng)前移動終端的移動網(wǎng)絡(luò)狀態(tài)正常,然后向所述安全服務(wù)平臺裝置加密傳輸?shù)谌脩羯矸蒡炞C請求,所述第三用戶身份驗證請求的攜帶信息包括SDK的版本號、SDK的ID號、所述MSISDN和第三方接入碼;所述安全服務(wù)平臺裝置解密接收到的第三用戶身份驗證請求,根據(jù)所述SDK的版本號和SDK的ID號確認(rèn)所述SDK合法,確認(rèn)所述第三方接入碼合法以及確認(rèn)所述MSISDN有效,然后通過短信通道向所述安全服務(wù)卡應(yīng)用裝置發(fā)送用戶授權(quán)邀請報文,以使所述安全服務(wù)卡應(yīng)用裝置控制移動終端的屏幕向用戶呈現(xiàn)用戶授權(quán)邀請信息;所述安全服務(wù)卡應(yīng)用裝置接收到移動終端傳遞的用戶確認(rèn)授權(quán)指令之后,向所述安全服務(wù)平臺裝置發(fā)送用戶確認(rèn)授權(quán)報文;所述安全服務(wù)平臺裝置生成每個用戶在每個iOS系統(tǒng)第三方應(yīng)用的唯一的用戶身份標(biāo)識碼OpenID,然后根據(jù)MSISDN查找對應(yīng)的ICCID-IMSI-IMEI的綁定關(guān)系數(shù)據(jù)然后生成用戶令牌;所述安全服務(wù)平臺裝置向所述SDK返回用戶驗證結(jié)果、所述OpenID和用戶令牌;所述SDK將所述用戶令牌加密后以密文形式保存在iOS系統(tǒng)提供的KeyChain中,并且向所述iOS系統(tǒng)第三方應(yīng)用返回用戶驗證結(jié)果和OpenID。
可選地,在所述SDK將所述用戶令牌加密后以密文形式保存在iOS系統(tǒng)提供的KeyChain中,并且向所述iOS系統(tǒng)第三方應(yīng)用返回用戶驗證結(jié)果和OpenID的步驟之后,還包括:所述SDK接收來自所述iOS系統(tǒng)第三方應(yīng)用的第四調(diào)用指令,其中所述第四調(diào)用指令是由所述iOS系統(tǒng)第三方應(yīng)用接收到用戶二次登錄指令之后發(fā)出的,第四調(diào)用指令的攜帶信息包括所述OpenID和第三方接入碼;所述SDK確認(rèn)當(dāng)前移動終端的移動網(wǎng)絡(luò)狀態(tài)正常,然后從所述KeyChain中讀取并解密得到明文的所述用戶令牌,并在用戶令牌中檢索所述OpenID對應(yīng)的ICCID-IMSI-IMEI的綁定關(guān)系數(shù)據(jù),然后向所述安全服務(wù)平臺裝置加密傳輸?shù)谒挠脩羯矸蒡炞C請求,所述第四用戶身份驗證請求的攜帶信息包括所述SDK的版本號、SDK的ID號、MSISDN、ICCID-IMSI-IMEI的綁定關(guān)系數(shù)據(jù)、第三方接入碼以及OpenID;所述安全服務(wù)平臺裝置解密接收到的所述第四用戶身份驗證請求,根據(jù)所述SDK的版本號和SDK的ID號確認(rèn)所述SDK合法,確認(rèn)所述第三方接入碼合法,確認(rèn)所述MSISDN有效,確認(rèn)連續(xù)兩次登錄驗證的所述iOS系統(tǒng)第三方應(yīng)用一致性以及移動終端一致性,然后將所述ICCID-IMSI-IMEI的綁定關(guān)系數(shù)據(jù)與本地記錄比對以便驗證用戶身份信息,若驗證通過則向所述SDK返回所述用戶驗證結(jié)果以及所述MSISDN;所述SDK向所述iOS系統(tǒng)第三方應(yīng)用返回所述用戶驗證結(jié)果以及所述MSISDN。
根據(jù)本發(fā)明的第四個方面,提供了一種面向移動用戶的身份驗證系統(tǒng),適用于iOS系統(tǒng)第三方應(yīng)用交互情景,包括:安全服務(wù)卡應(yīng)用裝置、安全服務(wù)平臺裝置和安全服務(wù)平臺代理裝置SDK,所述安全服務(wù)卡應(yīng)用裝置用于:向安全服務(wù)平臺裝置發(fā)出的卡注冊請求,所述卡注冊請求中包括安全服務(wù)卡應(yīng)用裝置對應(yīng)的用戶手機(jī)號碼MSISDN、國際移動用戶識別碼IMSI、移動終端串碼IMEI和集成電路卡識別碼ICCID;接收到移動終端傳遞的用戶確認(rèn)授權(quán)指令之后,向所述安全服務(wù)平臺裝置發(fā)送用戶確認(rèn)授權(quán)報文;所述安全服務(wù)平臺裝置用于:保存所述MSISDN、IMSI、IMEI以及ICCID的綁定關(guān)系,然后向所述安全服務(wù)卡應(yīng)用裝置發(fā)出卡注冊成功通知;接收到所述iOS系統(tǒng)第三方應(yīng)用發(fā)出的應(yīng)用注冊請求之后,向所述iOS系統(tǒng)第三方應(yīng)用分配第三方接入碼;解密接收到的第三用戶身份驗證請求,根據(jù)SDK的版本號和SDK的ID號確認(rèn)所述SDK合法,確認(rèn)所述第三方接入碼合法以及確認(rèn)所述MSISDN有效,然后通過短信通道向所述安全服務(wù)卡應(yīng)用裝置發(fā)送用戶授權(quán)邀請報文,以使所述安全服務(wù)卡應(yīng)用裝置控制移動終端的屏幕向用戶呈現(xiàn)用戶授權(quán)邀請信息;生成每個用戶在每個iOS系統(tǒng)第三方應(yīng)用的唯一的用戶身份標(biāo)識碼OpenID,然后根據(jù)所述MSISDN查找對應(yīng)的IMSI、ICCID和IMEI的對應(yīng)關(guān)系數(shù)據(jù)然后生成用戶令牌;向所述SDK返回用戶驗證結(jié)果、所述OpenID和用戶令牌;所述SDK用于:接收來自所述iOS系統(tǒng)第三方應(yīng)用的第三調(diào)用指令,其中所述第三調(diào)用指令是由所述iOS系統(tǒng)第三方應(yīng)用接收到用戶首次登錄指令和外界輸入的MSISDN之后發(fā)出的,所述第三調(diào)用指令的攜帶信息包括所述MSISDN和第三方接入碼;確認(rèn)當(dāng)前移動終端的移動網(wǎng)絡(luò)狀態(tài)正常,然后向所述安全服務(wù)平臺裝置加密傳輸?shù)谌脩羯矸蒡炞C請求,所述第三用戶身份驗證請求的攜帶信息包括所述SDK的版本號、SDK的ID號、MSISDN和第三方接入碼;將所述用戶令牌加密后以密文形式保存在iOS系統(tǒng)提供的KeyChain中,并且向所述iOS系統(tǒng)第三方應(yīng)用返回用戶驗證結(jié)果和OpenID。
可選地,其特征在于,所述SDK還用于:接收來自所述iOS系統(tǒng)第三方應(yīng)用的第四調(diào)用指令,其中所述第四調(diào)用指令是由所述iOS系統(tǒng)第三方應(yīng)用接收到用戶二次登錄指令之后發(fā)出的,第四調(diào)用指令的攜帶信息包括所述OpenID和第三方接入碼;確認(rèn)當(dāng)前移動終端的移動網(wǎng)絡(luò)狀態(tài)正常,然后從所述KeyChain中讀取并解密得到明文的所述用戶令牌,并在用戶令牌中檢索所述OpenID對應(yīng)的ICCID-IMSI-IMEI的綁定關(guān)系數(shù)據(jù),然后向所述安全服務(wù)平臺裝置加密傳輸?shù)谒挠脩羯矸蒡炞C請求,所述第四用戶身份驗證請求的攜帶信息包括所述SDK的版本號、SDK的ID號、MSISDN、ICCID-IMSI-IMEI的綁定關(guān)系數(shù)據(jù)、第三方接入碼以及OpenID;向所述iOS系統(tǒng)第三方應(yīng)用返回所述用戶驗證結(jié)果以及所述MSISDN;所述安全服務(wù)平臺裝置還用于:解密接收到的所述第四用戶身份驗證請求,根據(jù)所述SDK的版本號和SDK的ID號確認(rèn)所述SDK合法,確認(rèn)所述第三方接入碼合法,確認(rèn)所述MSISDN有效,確認(rèn)連續(xù)兩次登錄驗證的所述iOS系統(tǒng)第三方應(yīng)用一致性以及移動終端一致性,然后將所述ICCID-IMSI-IMEI的綁定關(guān)系數(shù)據(jù)與本地記錄比對以便于驗證用戶身份信息,若驗證通過則向所述SDK返回所述用戶驗證結(jié)果以及所述MSISDN。
根據(jù)本發(fā)明的第五個方面,提供了一種面向移動用戶的身份驗證方法,適用于第三方web業(yè)務(wù)平臺交互情景,包括:安全服務(wù)卡應(yīng)用裝置向安全服務(wù)平臺裝置發(fā)出的卡注冊請求,所述卡注冊請求中包括用戶手機(jī)號碼MSISDN、國際移動用戶識別碼IMSI、移動終端串碼IMEI和集成電路卡識別碼ICCID;所述安全服務(wù)平臺裝置保存所述MSISDN、IMSI、IMEI以及ICCID的綁定關(guān)系,然后向所述安全服務(wù)卡應(yīng)用裝置發(fā)出卡注冊成功通知;所述安全服務(wù)平臺裝置接收到所述第三方web業(yè)務(wù)平臺發(fā)出的應(yīng)用注冊請求之后,向所述第三方web業(yè)務(wù)平臺分配第三方接入碼;所述安全服務(wù)平臺裝置接收所述第三方web業(yè)務(wù)平臺發(fā)出的用戶登錄請求,其中所述用戶登錄請求包括第三方接入碼和MSISDN;所述安全服務(wù)平臺裝置根據(jù)所述第三方接入碼和MSISDN進(jìn)行內(nèi)部鑒權(quán),鑒權(quán)通過后通過短信通道向安全服務(wù)卡應(yīng)用裝置推送身份驗證信息;所述安全服務(wù)卡應(yīng)用裝置接收所述身份驗證信息,并通過主動式命令控制移動終端向用戶展示;所述安全服務(wù)卡應(yīng)用裝置在接收到用戶確認(rèn)指令之后,向所述安全服務(wù)平臺裝置發(fā)送用戶確認(rèn)結(jié)果;所述安全服務(wù)平臺裝置根據(jù)所述用戶確認(rèn)結(jié)果,向所述第三方web業(yè)務(wù)平臺發(fā)送身份驗證結(jié)果和OpenID。
根據(jù)本發(fā)明的第六個方面,提供了一種面向移動用戶的身份驗證系統(tǒng),適用于第三方web業(yè)務(wù)平臺交互情景,包括:安全服務(wù)卡應(yīng)用裝置和安全服務(wù)平臺裝置,所述安全服務(wù)卡應(yīng)用裝置用于:向安全服務(wù)平臺裝置發(fā)出的卡注冊請求,所述卡注冊請求中包括用戶手機(jī)號碼MSISDN、國際移動用戶識別碼IMSI、移動終端串碼IMEI和集成電路卡識別碼ICCID;接收所述身份驗證信息,并通過主動式命令控制移動終端向用戶展示;在接收到用戶確認(rèn)指令之后,向所述安全服務(wù)平臺裝置發(fā)送用戶確認(rèn)結(jié)果;所述安全服務(wù)平臺裝置用于:保存所述MSISDN、IMSI、IMEI以及ICCID的綁定關(guān)系,然后向所述安全服務(wù)卡應(yīng)用裝置發(fā)出卡注冊成功通知;接收到所述第三方web業(yè)務(wù)平臺發(fā)出的應(yīng)用注冊請求之后,向所述第三方web業(yè)務(wù)平臺分配第三方接入碼;接收所述第三方web業(yè)務(wù)平臺發(fā)出的用戶登錄請求,其中所述用戶登錄請求包括第三方接入碼和MSISDN;根據(jù)所述第三方接入碼和MSISDN進(jìn)行內(nèi)部鑒權(quán),鑒權(quán)通過后通過短信通道向安全服務(wù)卡應(yīng)用裝置推送身份驗證信息;根據(jù)所述用戶確認(rèn)結(jié)果,向所述第三方web業(yè)務(wù)平臺發(fā)送身份驗證結(jié)果和OpenID。
根據(jù)本發(fā)明的技術(shù)方案,至少具有如下有益效果。
(1)使用方便。用戶無需記憶密碼,只需輸入手機(jī)號碼,便可完成APP注冊及登陸過程。區(qū)別于第三方授權(quán)登錄方案,本發(fā)明并非是向第三方應(yīng)用方提供用戶的個人信息以確認(rèn)用戶身份,而是為其提供一種依托手機(jī)智能卡硬件的快速持卡人身份驗證方案,即可以有效保護(hù)用戶的個人隱私信息,又無需依賴用戶已注冊的任何賬號便可準(zhǔn)確、高效地完成身份核實,實現(xiàn)無密快捷注冊和登錄操作。
(2)安全性高。通過手機(jī)智能卡應(yīng)用的動態(tài)終端檢測技術(shù),可以及時更新服務(wù)器所存儲的卡片與終端的綁定關(guān)系,確保用戶身份的可靠性與安全性。此外,由于服務(wù)器與智能卡之間采用的是芯片級的短信安全通信協(xié)議,因此相較傳統(tǒng)的短信驗證碼方式,避免了推送信息被手機(jī)端應(yīng)用層APP所攔截、破解和仿冒回復(fù)的情況,極大的提高了業(yè)務(wù)安全性。
(3)成本低。由于采用了“逆向認(rèn)證技術(shù)”,用戶的綁定信息通過卡片采集并與服務(wù)器實時同步。與傳統(tǒng)短信驗證碼登錄相比,無需每次登錄都需要進(jìn)行短信動態(tài)碼驗證,因此可節(jié)省大量的電信運營商短信通道資費,以達(dá)到節(jié)約運營成本的目的。
附圖說明
附圖用于更好地理解本發(fā)明,不構(gòu)成對本發(fā)明的不當(dāng)限定。其中:
圖1是根據(jù)本發(fā)明實施方式的適用于Andriod系統(tǒng)第三方應(yīng)用交互情景的面向移動用戶的身份驗證方法的基本步驟的示意圖;
圖2是根據(jù)本發(fā)明實施方式的適用于Andriod系統(tǒng)第三方應(yīng)用交互情景的面向移動用戶的身份驗證系統(tǒng)的基本模塊的示意圖;
圖3是圖2所示的面向移動用戶的身份驗證系統(tǒng)的工作時序圖;
圖4是根據(jù)本發(fā)明實施方式的適用于iOS系統(tǒng)第三方應(yīng)用交互情景的面向移動用戶的身份驗證方法的基本步驟的示意圖;
圖5是根據(jù)本發(fā)明實施方式的適用于iOS系統(tǒng)第三方應(yīng)用交互情景的面向移動用戶的身份驗證系統(tǒng)的基本模塊的示意圖;
圖6是圖5所示的面向移動用戶的身份驗證系統(tǒng)的工作時序圖;
圖7是根據(jù)本發(fā)明實施方式的適用于第三方web業(yè)務(wù)平臺交互情景的面向移動用戶的身份驗證方法的基本步驟的示意圖;
圖8是根據(jù)本發(fā)明實施方式的適用于第三方web業(yè)務(wù)平臺交互情景的面向移動用戶的身份驗證系統(tǒng)的基本模塊的示意圖;
圖9是圖8所示的面向移動用戶的身份驗證系統(tǒng)的工作時序圖。
具體實施方式
以下結(jié)合附圖對本發(fā)明的示范性實施方式做出說明,其中包括本發(fā)明實施方式的各種細(xì)節(jié)以助于理解,應(yīng)當(dāng)將它們認(rèn)為僅僅是示范性的。因此,本領(lǐng)域普通技術(shù)人員應(yīng)當(dāng)認(rèn)識到,可以對這里描述的實施方式做出各種改變和修改,而不會背離本發(fā)明的范圍和精神。同樣,為了清楚和簡明,以下的描述中省略了對公知功能和結(jié)構(gòu)的描述。為了使本領(lǐng)域技術(shù)人員更好地理解,現(xiàn)對部分名詞術(shù)語解釋如下:
安全服務(wù)卡應(yīng)用裝置:是一個安全芯片卡上的特殊應(yīng)用程序,該安全芯片卡以可插拔形式或內(nèi)嵌芯片形式安裝在移動終端內(nèi)使用。該裝置相當(dāng)于安全服務(wù)平臺裝置所對應(yīng)的客戶端。
安全服務(wù)平臺裝置:相當(dāng)于安全服務(wù)卡應(yīng)用裝置所對應(yīng)的服務(wù)器。
SDK:Software Development Kit,在本發(fā)明中代表安全服務(wù)平臺代理裝置,為移動終端APP與安全服務(wù)平臺裝置提供安全通信的橋梁。
MSISDN:Mobile Subscriber International ISDN/PSTN number,即用戶手機(jī)號碼。
IMSI:International Mobile Subscriber Identification Number,即國際移動用戶識別碼。
IMEI:International Mobile Equipment Identity,即移動終端串碼。
ICCID:Integrated Circuit Card Identifier,即集成電路卡識別碼。
KeyChain:iOS系統(tǒng)特有的提供給APP的密鑰管理系統(tǒng)??梢岳斫鉃閕OS系統(tǒng)替APP將敏感數(shù)據(jù)保存在移動終端的內(nèi)存上。
API:Application Programming Interface,即應(yīng)用程序編程接口。
圖1是根據(jù)本發(fā)明實施方式的適用于Andriod系統(tǒng)第三方應(yīng)用交互情景(包括免密注冊與登錄、以O(shè)penID為基準(zhǔn)進(jìn)行自有賬號創(chuàng)建或關(guān)聯(lián)等情景)的面向移動用戶的身份驗證方法的基本步驟的示意圖。如圖1所示,該實施方式的方法可以包括如下的步驟101至步驟108。
步驟101:安全服務(wù)卡應(yīng)用裝置向安全服務(wù)平臺裝置發(fā)出的卡注冊請求,卡注冊請求中包括安全服務(wù)卡應(yīng)用裝置對應(yīng)的用戶手機(jī)號碼MSISDN、國際移動用戶識別碼IMSI、移動終端串碼IMEI和集成電路卡識別碼ICCID。需要補(bǔ)充說明的是,在移動終端開機(jī)和卡片熱插拔時,安全服務(wù)卡應(yīng)用裝置檢測用戶終端是否變更并與安全服務(wù)平臺裝置保持信息同步;接收安全服務(wù)平臺裝置發(fā)送的身份驗證信息,并通過主動式命令控制移動終端向用戶展示;同時在接收到用戶確認(rèn)指令之后,向安全服務(wù)平臺裝置發(fā)送用戶確認(rèn)結(jié)果。
步驟102:安全服務(wù)平臺裝置保存MSISDN、IMSI、IMEI以及ICCID的綁定關(guān)系,然后向安全服務(wù)卡應(yīng)用裝置發(fā)出卡注冊成功通知。
步驟103:安全服務(wù)平臺裝置接收到Andriod系統(tǒng)第三方應(yīng)用發(fā)出的應(yīng)用注冊請求之后,向Andriod系統(tǒng)第三方應(yīng)用分配第三方接入碼。
步驟104:安全服務(wù)平臺代理裝置SDK接收來自Andriod系統(tǒng)第三方應(yīng)用的第一調(diào)用指令,其中第一調(diào)用指令是由Andriod系統(tǒng)第三方應(yīng)用接收到用戶首次登錄指令和外界輸入的MSISDN之后發(fā)出的,第一調(diào)用指令的攜帶信息包括MSISDN和第三方接入碼。
步驟105:SDK確認(rèn)當(dāng)前移動終端的移動網(wǎng)絡(luò)狀態(tài)正常并且未被獲取系統(tǒng)ROOT權(quán)限,然后通過Andriod系統(tǒng)提供的API獲取當(dāng)前的IMSI、IMEI以及ICCID。
步驟106:SDK向安全服務(wù)平臺裝置加密傳輸?shù)谝挥脩羯矸蒡炞C請求,第一用戶身份驗證請求的攜帶信息包括SDK的版本號、SDK的ID號、MSISDN、IMSI、IMEI、ICCID以及第三方接入碼。
步驟107:安全服務(wù)平臺裝置解密接收到的第一用戶身份驗證請求,根據(jù)SDK的版本號和SDK的ID號確認(rèn)SDK合法,確認(rèn)第三方接入碼合法,確認(rèn)MSISDN有效,然后將當(dāng)前的MSISDN、IMSI、IMEI以及ICCID的對應(yīng)關(guān)系與本地記錄比對以便于驗證用戶身份信息,若驗證通過則生成每個用戶在每個Andriod系統(tǒng)第三方應(yīng)用的唯一的用戶身份標(biāo)識碼OpenID,然后向SDK返回用戶驗證結(jié)果和OpenID。
步驟108:SDK向Andriod系統(tǒng)第三方應(yīng)用返回用戶驗證結(jié)果和OpenID。需要說明的是,Andriod系統(tǒng)第三方應(yīng)用可以根據(jù)該用戶驗證結(jié)果允許用戶免注冊免密碼登錄,以及Andriod系統(tǒng)第三方應(yīng)用應(yīng)以O(shè)penID為基準(zhǔn),進(jìn)行自有系統(tǒng)賬號的創(chuàng)建或關(guān)聯(lián)。
在本發(fā)明的實施方式中,在步驟108之后還可以包括如下的步驟109至步驟113(圖1中并未示出)。
步驟109:SDK接收來自Andriod系統(tǒng)第三方應(yīng)用的第二調(diào)用指令,其中第二調(diào)用指令是由Andriod系統(tǒng)第三方應(yīng)用接收到用戶二次登錄指令之后發(fā)出的,第二調(diào)用指令攜帶OpenID和第三方接入碼。
步驟110:SDK確認(rèn)當(dāng)前移動終端的移動網(wǎng)絡(luò)狀態(tài)正常并且未被獲取系統(tǒng)ROOT權(quán)限,然后通過Andriod系統(tǒng)提供的API獲取當(dāng)前的IMSI、IMEI以及ICCID。
步驟111:SDK向安全服務(wù)平臺裝置加密傳輸?shù)诙脩羯矸蒡炞C請求,第二用戶身份驗證請求的攜帶信息包括SDK的版本號、SDK的ID號、OpenID、IMSI、IMEI、ICCID以及第三方接入碼。
步驟112:安全服務(wù)平臺裝置通過SDK版本號區(qū)分當(dāng)前移動終端是Android系統(tǒng)還,是iOS系統(tǒng);通過SDK的ID號,檢查當(dāng)前SDK的合法性;通過第三方接入碼,檢查發(fā)送請求的第三方應(yīng)用的合法性;通過MSISDN,檢查目標(biāo)用戶(卡片)是否已在平臺注冊;通過對比同一個第三方接入碼的前后兩次驗證請求所攜帶的SDK的ID號是否一致,檢查發(fā)出兩次請求的第三方應(yīng)用是否為同一個;通過對比前后兩次驗證請求所攜帶的IMEI是否一致,檢查發(fā)出兩次請求的移動終端是否為同一個。若一致性檢測相同,則安全服務(wù)平臺裝置會將當(dāng)前的OpenID、IMSI、IMEI及ICCID的綁定關(guān)系與本地記錄進(jìn)行對比以驗證用戶的持卡人身份。若一致性檢測不相同,則安全服務(wù)平臺裝置會通過安全服務(wù)卡應(yīng)用裝置向用戶發(fā)送驗證彈窗獲取用戶的登錄授權(quán)。完成驗證安全服務(wù)平臺裝置會向SDK返回驗證結(jié)果和MSISDN。
步驟113:SDK向Andriod系統(tǒng)第三方應(yīng)用返回用戶驗證結(jié)果和MSISDN。Andriod系統(tǒng)第三方應(yīng)用可以根據(jù)該用戶驗證結(jié)果,允許用戶免注冊免密碼登。需要說明的是,對于用戶更換手機(jī)號的情況,返回的MSISDN可能有兩個,一個舊MSISDN,一個新MSISDN,需要Andriod系統(tǒng)第三方應(yīng)用加以識別和處理。
需要說明的是,步驟112中的一致性校驗不通過時,還需要將當(dāng)前登錄標(biāo)記為臨時登錄。臨時登錄也算驗證成功,只不過下一次登錄時還是需要再次進(jìn)行彈窗驗證。還需要說明的是,二次登錄階段中也允許以MSISDN為依據(jù)進(jìn)行認(rèn)證登錄,具體過程與步驟109至步驟113的過程相近,只是將涉及“OpenID”之處改寫成“MSISDN”,并且涉及“MSISDN”之處改寫成“OpenID”即可(具體可參考圖3)。
圖2是根據(jù)本發(fā)明實施方式的適用于Andriod系統(tǒng)第三方應(yīng)用交互情景的面向移動用戶的身份驗證系統(tǒng)的基本模塊的示意圖。如圖2所示,該實施方式的面向移動用戶的身份驗證系統(tǒng)20可以包括:安全服務(wù)卡應(yīng)用裝置201、安全服務(wù)平臺裝置202和安全服務(wù)平臺代理裝置(即SDK)203。
安全服務(wù)卡應(yīng)用裝置201用于:向安全服務(wù)平臺裝置202發(fā)出的卡注冊請求,卡注冊請求中包括安全服務(wù)卡應(yīng)用裝置201對應(yīng)的用戶手機(jī)號碼MSISDN、國際移動用戶識別碼IMSI、移動終端串碼IMEI和集成電路卡識別碼ICCID。需要補(bǔ)充說明的是,安全服務(wù)卡應(yīng)用裝置201還用于:在移動終端開機(jī)和卡片熱插拔時,檢測用戶終端是否變更并與安全服務(wù)平臺裝置202保持信息同步;接收安全服務(wù)平臺裝置202發(fā)送的身份驗證信息,并通過主動式命令控制移動終端向用戶展示;同時在接收到用戶確認(rèn)指令之后,向安全服務(wù)平臺裝置202發(fā)送用戶確認(rèn)結(jié)果。
安全服務(wù)平臺裝置202用于:保存MSISDN、IMSI、IMEI以及ICCID的綁定關(guān)系,然后向安全服務(wù)卡應(yīng)用裝置201發(fā)出卡注冊成功通知;接收到Andriod系統(tǒng)第三方應(yīng)用發(fā)出的應(yīng)用注冊請求之后,向Andriod系統(tǒng)第三方應(yīng)用分配第三方接入碼;解密接收到的第一用戶身份驗證請求,根據(jù)SDK的版本號和SDK的ID號確認(rèn)SDK合法,確認(rèn)第三方接入碼合法,確認(rèn)MSISDN有效,然后將當(dāng)前的MSISDN、IMSI、IMEI以及ICCID的對應(yīng)關(guān)系與本地記錄比對以便于驗證用戶身份信息,若驗證通過則生成每個用戶在每個Andriod系統(tǒng)第三方應(yīng)用的唯一的用戶身份標(biāo)識碼OpenID,然后向SDK203返回用戶驗證結(jié)果和OpenID。
SDK 203用于:接收來自Andriod系統(tǒng)第三方應(yīng)用的第一調(diào)用指令,其中第一調(diào)用指令是由Andriod系統(tǒng)第三方應(yīng)用接收到用戶首次登錄指令和外界輸入的MSISDN之后發(fā)出的,第一調(diào)用指令的攜帶信息包括MSISDN和第三方接入碼;確認(rèn)當(dāng)前移動終端的移動網(wǎng)絡(luò)狀態(tài)正常并且未被獲取系統(tǒng)ROOT權(quán)限,然后通過Andriod系統(tǒng)提供的API獲取當(dāng)前的IMSI、IMEI以及ICCID;向安全服務(wù)平臺裝置202加密傳輸?shù)谝挥脩羯矸蒡炞C請求,第一用戶身份驗證請求的攜帶信息包括SDK的版本號、SDK的ID號、MSISDN、IMSI、IMEI、ICCID以及第三方接入碼;向Andriod系統(tǒng)第三方應(yīng)用返回用戶驗證結(jié)果和OpenID。
根據(jù)本發(fā)明的實施方式,SDK203還可以用于:接收來自Andriod系統(tǒng)第三方應(yīng)用的第二調(diào)用指令,其中第二調(diào)用指令是由Andriod系統(tǒng)第三方應(yīng)用接收到用戶二次登錄指令之后發(fā)出的,第二調(diào)用指令的攜帶信息包括OpenID(或MSISDN)和第三方接入碼;確認(rèn)當(dāng)前移動終端的移動網(wǎng)絡(luò)狀態(tài)正常并且未被獲取系統(tǒng)ROOT權(quán)限,然后通過Andriod系統(tǒng)提供的API獲取當(dāng)前的IMSI、IMEI以及ICCID;向安全服務(wù)平臺裝置202加密傳輸?shù)诙脩羯矸蒡炞C請求,第二用戶身份驗證請求的攜帶信息包括SDK的版本號、SDK的ID號、OpenID(或MSISDN)、IMSI、IMEI、ICCID以及第三方接入碼;向Andriod系統(tǒng)第三方應(yīng)用返回用戶驗證結(jié)果和MSISDN(或OpenID)。并且,安全服務(wù)平臺裝置202還可以用于:解密接收到的第二用戶身份驗證請求,根據(jù)SDK的版本號和SDK的ID號確認(rèn)SDK合法,確認(rèn)第三方接入碼合法,確認(rèn)MSISDN有效,確認(rèn)連續(xù)兩次登錄驗證的Andriod系統(tǒng)第三方應(yīng)用一致性以及移動終端一致性,然后將當(dāng)前的OpenID(或MSISDN)、IMSI、IMEI以及ICCID的對應(yīng)關(guān)系與本地記錄比對以便于驗證用戶身份信息,若驗證通過則向SDK 203返回用戶驗證結(jié)果和MSISDN(或OpenID)。
為使公眾更好地理解上述的適用于Andriod系統(tǒng)第三方應(yīng)用交互情景的面向移動用戶的身份驗證方法和系統(tǒng),可以參考圖3。
需要說明的是,本發(fā)明的所有面向移動用戶的身份驗證方法(無論是適用于Andriod系統(tǒng)第三方應(yīng)用、iOS系統(tǒng)第三方應(yīng)用還是第三方web業(yè)務(wù)平臺)都會經(jīng)歷完全相同的卡注冊階段,其具體流程說明如下:
(1)確保用戶卡中已加載安全服務(wù)應(yīng)用裝置。用戶插卡開機(jī)(含開機(jī)熱插拔卡的情況),移動終端將按照電信國際標(biāo)準(zhǔn)去激活卡片。
(2)卡片收到終端的開機(jī)通知,則激活卡中的安全服務(wù)應(yīng)用。應(yīng)用激活后,將啟動開機(jī)處理流程(以下操作不分先后順序):A.檢查激活狀態(tài):通過應(yīng)用程序中的一個狀態(tài)標(biāo)識進(jìn)行判定。B.檢查終端信息:每次插卡開機(jī)時,安全服務(wù)應(yīng)用都會向終端發(fā)送主動式命令(一種機(jī)卡通信的底層交互指令,參見電信國際標(biāo)準(zhǔn)《ETSI TS 102 223》),以獲取終端的標(biāo)識信息(包括但不限于:IMEI,國際移動設(shè)備標(biāo)識)并進(jìn)行存儲。因此只要對每次新獲取的終端標(biāo)識信息與應(yīng)用中已存儲的終端標(biāo)識信息比較,便可判定出兩次插卡的移動終端是否是同一臺。對于未激活的安全服務(wù)應(yīng)用,其內(nèi)置的終端標(biāo)識信息為空。C.檢查卡片信息:對于未激活安全服務(wù)應(yīng)用,在首次運行時會從卡片中獲取卡片標(biāo)識信息(包括但不限于:ICCID、IMSI等)。獲取方法包括但不限于:讀取卡片文件、通過卡片API獲取等。
(3)上行卡片注冊信息,根據(jù)上述檢查結(jié)果:A.當(dāng)應(yīng)用處于未激活狀態(tài):則對獲取的卡片和終端標(biāo)識信息進(jìn)行安全報文封裝(通過卡應(yīng)用預(yù)置密鑰進(jìn)行加密),并通過短信通道上行至安全服務(wù)平臺。B.當(dāng)應(yīng)用處于終端變更狀態(tài):則對獲取到的終端標(biāo)識信息進(jìn)行安全報文封裝(通過卡應(yīng)用預(yù)置密鑰進(jìn)行加密),并通過短信通道上行至安全服務(wù)平臺。
(4)安全服務(wù)平臺收到卡應(yīng)用的上行注冊信息后,通過預(yù)置密鑰進(jìn)行報文解析,并作以下處理:A.若為新應(yīng)用激活信息,則通過手機(jī)號、終端標(biāo)識信息、卡片標(biāo)識信息,在平臺數(shù)據(jù)庫中建用戶、手機(jī)卡和終端三者的對應(yīng)關(guān)系。平臺為該用戶分配一個唯一的用戶標(biāo)識符,并動態(tài)生成若干把業(yè)務(wù)密鑰。這些數(shù)據(jù)都會利用安全短信技術(shù),下推到用戶的安全服務(wù)應(yīng)用中,并由此完成應(yīng)用的初始化工作。B.若為終端更換通知信息,則根據(jù)手機(jī)號找到該用戶的關(guān)系表并更新終端標(biāo)識信息。
圖4是根據(jù)本發(fā)明實施方式的適用于iOS系統(tǒng)第三方應(yīng)用交互情景的面向移動用戶的身份驗證方法的基本步驟的示意圖。如圖4所示,該實施方式的方法可以包括如下的步驟401至步驟410。
步驟401:安全服務(wù)卡應(yīng)用裝置向安全服務(wù)平臺裝置發(fā)出的卡注冊請求,卡注冊請求中包括安全服務(wù)卡應(yīng)用裝置對應(yīng)的用戶手機(jī)號碼MSISDN、國際移動用戶識別碼IMSI、移動終端串碼IMEI和集成電路卡識別碼ICCID。需要補(bǔ)充說明的是,在移動終端開機(jī)和卡片熱插拔時,安全服務(wù)卡應(yīng)用裝置檢測用戶終端是否變更并與安全服務(wù)平臺裝置保持信息同步;接收安全服務(wù)平臺裝置發(fā)送的身份驗證信息,并通過主動式命令控制移動終端向用戶展示;同時在接收到用戶確認(rèn)指令之后,向安全服務(wù)平臺裝置發(fā)送用戶確認(rèn)結(jié)果。
步驟402:安全服務(wù)平臺裝置保存MSISDN、IMSI、IMEI以及ICCID的綁定關(guān)系,然后向安全服務(wù)卡應(yīng)用裝置發(fā)出卡注冊成功通知。
步驟403:安全服務(wù)平臺裝置接收到iOS系統(tǒng)第三方應(yīng)用發(fā)出的應(yīng)用注冊請求之后,向iOS系統(tǒng)第三方應(yīng)用分配第三方接入碼。
步驟404:安全服務(wù)平臺代理裝置SDK接收來自iOS系統(tǒng)第三方應(yīng)用的第三調(diào)用指令,其中第三調(diào)用指令是由iOS系統(tǒng)第三方應(yīng)用接收到用戶首次登錄指令和外界輸入的MSISDN之后發(fā)出的,第三調(diào)用指令的攜帶信息包括MSISDN和第三方接入碼。
步驟405:SDK確認(rèn)當(dāng)前移動終端的移動網(wǎng)絡(luò)狀態(tài)正常,然后向安全服務(wù)平臺裝置加密傳輸?shù)谌脩羯矸蒡炞C請求,第三用戶身份驗證請求的攜帶信息包括SDK的版本號、SDK的ID號、MSISDN和第三方接入碼。
步驟406:安全服務(wù)平臺裝置解密接收到的第三用戶身份驗證請求,根據(jù)SDK的版本號和SDK的ID號確認(rèn)SDK合法,確認(rèn)第三方接入碼合法以及確認(rèn)MSISDN有效,然后通過短信通道向安全服務(wù)卡應(yīng)用裝置發(fā)送用戶授權(quán)邀請報文,以使安全服務(wù)卡應(yīng)用裝置控制移動終端的屏幕向用戶呈現(xiàn)用戶授權(quán)邀請信息。
步驟407:安全服務(wù)卡應(yīng)用裝置接收到移動終端傳遞的用戶確認(rèn)授權(quán)指令之后,向安全服務(wù)平臺裝置發(fā)送用戶確認(rèn)授權(quán)報文。
步驟408:安全服務(wù)平臺裝置生成每個用戶在每個iOS系統(tǒng)第三方應(yīng)用的唯一的用戶身份標(biāo)識碼OpenID,然后根據(jù)MSISDN查找對應(yīng)的ICCID-IMSI-IMEI的綁定關(guān)系數(shù)據(jù)然后生成用戶令牌。
步驟409:安全服務(wù)平臺裝置向SDK返回用戶驗證結(jié)果、OpenID和用戶令牌。
步驟410:SDK將用戶令牌加密后以密文形式保存在KeyChain中,并且向iOS系統(tǒng)第三方應(yīng)用返回用戶驗證結(jié)果和OpenID。需要說明的是,iOS系統(tǒng)第三方應(yīng)用可以根據(jù)該用戶驗證結(jié)果允許用戶免注冊免密碼登錄,以及iOS系統(tǒng)第三方應(yīng)用應(yīng)以O(shè)penID為基準(zhǔn),進(jìn)行自有系統(tǒng)賬號的創(chuàng)建或關(guān)聯(lián)。
在本發(fā)明的實施方式中,在步驟410之后還可以包括如下的步驟411至步驟114(圖4中并未示出)。
步驟411:SDK接收來自iOS系統(tǒng)第三方應(yīng)用的第四調(diào)用指令,其中第四調(diào)用指令是由iOS系統(tǒng)第三方應(yīng)用接收到用戶二次登錄指令之后發(fā)出的,第四調(diào)用指令的攜帶信息包括OpenID和第三方接入碼。
步驟412:SDK確認(rèn)當(dāng)前移動終端的移動網(wǎng)絡(luò)狀態(tài)正常,然后從KeyChain中讀取并解密得到明文的用戶令牌,并在用戶令牌中檢索OpenID對應(yīng)的ICCID-IMSI-IMEI的綁定關(guān)系數(shù)據(jù),然后向安全服務(wù)平臺裝置加密傳輸?shù)谒挠脩羯矸蒡炞C請求,第四用戶身份驗證請求的攜帶信息包括SDK的版本號、SDK的ID號、MSISDN、ICCID-IMSI-IMEI的綁定關(guān)系數(shù)據(jù)、第三方接入碼以及OpenID。
步驟413:安全服務(wù)平臺裝置解密接收到的第四用戶身份驗證請求,通過SDK版本號區(qū)分當(dāng)前移動終端是Android系統(tǒng)還,是iOS系統(tǒng);通過SDK的ID號,檢查當(dāng)前SDK的合法性;通過第三方接入碼,檢查發(fā)送請求的第三方應(yīng)用的合法性;通過MSISDN,檢查目標(biāo)用戶(卡片)是否已在平臺注冊;通過對比同一個第三方接入碼的前后兩次驗證請求所攜帶的SDK的ID號是否一致,檢查發(fā)出兩次請求的第三方應(yīng)用是否為同一個;通過對比前后兩次驗證請求所攜帶的IMEI是否一致,檢查發(fā)出兩次請求的移動終端是否為同一個。若一致性檢測為相同,則安全服務(wù)平臺裝置會將ICCID-IMSI-IMEI的綁定關(guān)系數(shù)據(jù)與本地記錄進(jìn)行對比以驗證用戶的持卡人身份。然后向SDK返回驗證結(jié)果和MSISDN(或OpenID);若一致性檢測為不相同,則安全服務(wù)平臺裝置會通過安全服務(wù)卡應(yīng)用裝置向用戶下發(fā)登錄授權(quán)邀請報文,若收到用戶的授權(quán)確認(rèn)信息,則安全服務(wù)平臺裝置檢索該用戶的MSISDN、OpenID及ICCID-IMSI-IMEI的綁定關(guān)系數(shù)據(jù),生成新的用戶令牌,然后向SDK發(fā)送授權(quán)驗證結(jié)果和新的用戶令牌。
步驟414:SDK向iOS系統(tǒng)第三方應(yīng)用返回用戶驗證結(jié)果以及MSISDN。iOS系統(tǒng)第三方應(yīng)用可以根據(jù)該用戶驗證結(jié)果,允許用戶免注冊免密碼登錄。需要說明的是,對于用戶更換手機(jī)號的情況,返回的MSISDN可能有兩個,一個舊MSISDN,一個新MSISDN,需要iOS系統(tǒng)第三方應(yīng)用加以識別和處理。
需要說明的是,二次登錄階段中也允許以MSISDN為依據(jù)進(jìn)行認(rèn)證登錄,具體過程與步驟411至步驟414的過程相近,只是將涉及“OpenID”之處改寫成“MSISDN”,并且涉及“MSISDN”之處改寫成“OpenID”即可(具體可參考圖6)。
圖5是根據(jù)本發(fā)明實施方式的適用于iOS系統(tǒng)第三方應(yīng)用交互情景的面向移動用戶的身份驗證系統(tǒng)的基本模塊的示意圖。如圖5所示,該實施方式的面向移動用戶的身份驗證系統(tǒng)50可以包括:安全服務(wù)卡應(yīng)用裝置501、安全服務(wù)平臺裝置502和安全服務(wù)平臺代理裝置(即SDK)503。
安全服務(wù)卡應(yīng)用裝置501用于:向安全服務(wù)平臺裝置502發(fā)出的卡注冊請求,卡注冊請求中包括安全服務(wù)卡應(yīng)用裝置501對應(yīng)的用戶手機(jī)號碼MSISDN、國際移動用戶識別碼IMSI、移動終端串碼IMEI和集成電路卡識別碼ICCID;接收到移動終端傳遞的用戶確認(rèn)授權(quán)指令之后,向安全服務(wù)平臺裝置502發(fā)送用戶確認(rèn)授權(quán)報文。需要補(bǔ)充說明的是,安全服務(wù)卡應(yīng)用裝置501還用于:在移動終端開機(jī)和卡片熱插拔時,檢測用戶終端是否變更并與安全服務(wù)平臺裝置502保持信息同步;接收安全服務(wù)平臺裝置502發(fā)送的身份驗證信息,并通過主動式命令控制移動終端向用戶展示;同時在接收到用戶確認(rèn)指令之后,向安全服務(wù)平臺裝置502發(fā)送用戶確認(rèn)結(jié)果。
安全服務(wù)平臺裝置502用于:保存MSISDN、IMSI、IMEI以及ICCID的綁定關(guān)系,然后向安全服務(wù)卡應(yīng)用裝置501發(fā)出卡注冊成功通知;接收到iOS系統(tǒng)第三方應(yīng)用發(fā)出的應(yīng)用注冊請求之后,向iOS系統(tǒng)第三方應(yīng)用分配第三方接入碼;解密接收到的第三用戶身份驗證請求,根據(jù)SDK的版本號和SDK的ID號確認(rèn)SDK合法,確認(rèn)第三方接入碼合法以及確認(rèn)MSISDN有效,然后通過短信通道向安全服務(wù)卡應(yīng)用裝置501發(fā)送用戶授權(quán)邀請報文,以使安全服務(wù)卡應(yīng)用裝置501控制移動終端的屏幕向用戶呈現(xiàn)用戶授權(quán)邀請信息;生成每個用戶在每個iOS系統(tǒng)第三方應(yīng)用的唯一的用戶身份標(biāo)識碼OpenID,然后根據(jù)MSISDN查找對應(yīng)的ICCID-IMSI-IMEI的綁定關(guān)系數(shù)據(jù)然后生成用戶令牌;向SDK 503返回用戶驗證結(jié)果、OpenID和用戶令牌。
SDK 503用于:接收來自iOS系統(tǒng)第三方應(yīng)用的第三調(diào)用指令,其中第三調(diào)用指令是由iOS系統(tǒng)第三方應(yīng)用接收到用戶首次登錄指令和外界輸入的MSISDN之后發(fā)出的,第三調(diào)用指令的攜帶信息包括MSISDN和第三方接入碼;確認(rèn)當(dāng)前移動終端的移動網(wǎng)絡(luò)狀態(tài)正常,然后向安全服務(wù)平臺裝置502加密傳輸?shù)谌脩羯矸蒡炞C請求,第三用戶身份驗證請求的攜帶信息包括SDK的版本號、SDK的ID號、MSISDN和第三方接入碼;將用戶令牌加密后以密文形式保存在KeyChain中,并且向iOS系統(tǒng)第三方應(yīng)用返回用戶驗證結(jié)果和OpenID。
根據(jù)本發(fā)明的實施方式,SDK 503還可以用于:接收來自iOS系統(tǒng)第三方應(yīng)用的第四調(diào)用指令,其中第四調(diào)用指令是由iOS系統(tǒng)第三方應(yīng)用接收到用戶二次登錄指令之后發(fā)出的,第四調(diào)用指令的攜帶信息包括OpenID(或MSISDN)和第三方接入碼;確認(rèn)當(dāng)前移動終端的移動網(wǎng)絡(luò)狀態(tài)正常,然后從KeyChain中讀取并解密得到明文的用戶令牌,并在用戶令牌中檢索OpenID(或MSISDN)對應(yīng)的ICCID-IMSI-IMEI的綁定關(guān)系數(shù)據(jù),然后向安全服務(wù)平臺裝置502加密傳輸?shù)谒挠脩羯矸蒡炞C請求,第四用戶身份驗證請求的攜帶信息包括SDK的版本號、SDK的ID號、MSISDN、ICCID-IMSI-IMEI的綁定關(guān)系數(shù)據(jù)、第三方接入碼以及OpenID;向iOS系統(tǒng)第三方應(yīng)用返回用戶驗證結(jié)果以及MSISDN。并且,安全服務(wù)平臺裝置502還可以用于:解密接收到的第四用戶身份驗證請求,根據(jù)SDK的版本號和SDK的ID號確認(rèn)SDK合法,確認(rèn)第三方接入碼合法,確認(rèn)MSISDN有效,確認(rèn)連續(xù)兩次登錄驗證的iOS系統(tǒng)第三方應(yīng)用一致性以及移動終端一致性,然后將ICCID-IMSI-IMEI的綁定關(guān)系數(shù)據(jù)與本地記錄比對以便于驗證用戶身份信息,若驗證通過則向SDK 503返回用戶驗證結(jié)果以及MSISDN(或OpenID)。
為使公眾更好地理解上述的適用于iOS系統(tǒng)第三方應(yīng)用交互情景的面向移動用戶的身份驗證方法和系統(tǒng),可以參考圖6。
圖7是根據(jù)本發(fā)明實施方式的適用于第三方web業(yè)務(wù)平臺交互情景的面向移動用戶的身份驗證方法的基本步驟的示意圖。如圖7所示,該實施方式的方法可以包括如下的步驟701至步驟708。
步驟701:安全服務(wù)卡應(yīng)用裝置向安全服務(wù)平臺裝置發(fā)出的卡注冊請求,卡注冊請求中包括用戶手機(jī)號碼MSISDN、國際移動用戶識別碼IMSI、移動終端串碼IMEI和集成電路卡識別碼ICCID。
步驟702:安全服務(wù)平臺裝置保存MSISDN、IMEI以及ICCID的綁定關(guān)系,然后向安全服務(wù)卡應(yīng)用裝置發(fā)出卡注冊成功通知。
步驟703:安全服務(wù)平臺裝置接收到第三方web業(yè)務(wù)平臺發(fā)出的應(yīng)用注冊請求之后,向第三方web業(yè)務(wù)平臺分配第三方接入碼。
步驟704:安全服務(wù)平臺裝置接收第三方web業(yè)務(wù)平臺發(fā)出的用戶登錄請求,其中用戶登錄請求包括第三方接入碼和MSISDN。
步驟705:安全服務(wù)平臺裝置根據(jù)第三方接入碼和MSISDN進(jìn)行內(nèi)部鑒權(quán),鑒權(quán)通過后通過短信通道向安全服務(wù)卡應(yīng)用裝置推送身份驗證信息。
步驟706:安全服務(wù)卡應(yīng)用裝置接收身份驗證信息,并通過主動式命令控制移動終端向用戶展示;
步驟707:安全服務(wù)卡應(yīng)用裝置在接收到用戶確認(rèn)指令之后,向安全服務(wù)平臺裝置發(fā)送用戶確認(rèn)結(jié)果;
步驟708:安全服務(wù)平臺裝置根據(jù)用戶確認(rèn)結(jié)果,向第三方web業(yè)務(wù)平臺發(fā)送身份驗證結(jié)果和OpenID。
圖8是根據(jù)本發(fā)明實施方式的適用于第三方web業(yè)務(wù)平臺交互情景的面向移動用戶的身份驗證系統(tǒng)的基本模塊的示意圖。如圖8所示,該實施方式的面向移動用戶的身份驗證系統(tǒng)80可以包括:安全服務(wù)卡應(yīng)用裝置801、安全服務(wù)平臺裝置802。
安全服務(wù)卡應(yīng)用裝置801用于:向安全服務(wù)平臺裝置802發(fā)出的卡注冊請求,卡注冊請求中包括用戶手機(jī)號碼MSISDN、國際移動用戶識別碼IMSI、移動終端串碼IMEI和集成電路卡識別碼ICCID;接收身份驗證信息,并通過主動式命令控制移動終端向用戶展示;在接收到用戶確認(rèn)指令之后,向安全服務(wù)平臺裝置802發(fā)送用戶確認(rèn)結(jié)果。
安全服務(wù)平臺裝置802用于:保存MSISDN、IMSI、IMEI以及ICCID的綁定關(guān)系,然后向安全服務(wù)卡應(yīng)用裝置801發(fā)出卡注冊成功通知;接收到第三方web業(yè)務(wù)平臺發(fā)出的應(yīng)用注冊請求之后,向第三方web業(yè)務(wù)平臺分配第三方接入碼;接收第三方web業(yè)務(wù)平臺發(fā)出的用戶登錄請求,其中用戶登錄請求包括第三方接入碼和MSISDN;根據(jù)第三方接入碼和MSISDN進(jìn)行內(nèi)部鑒權(quán),鑒權(quán)通過后通過短信通道向安全服務(wù)卡應(yīng)用裝置801推送身份驗證信息;根據(jù)用戶確認(rèn)結(jié)果,向第三方web業(yè)務(wù)平臺發(fā)送身份驗證結(jié)果和OpenID。
為使公眾更好地理解上述的適用于第三方web業(yè)務(wù)平臺交互情景的面向移動用戶的身份驗證方法和系統(tǒng),可以參考圖9。
由上可知,本發(fā)明實施方式的面向移動用戶的身份驗證方法和系統(tǒng)至少具有使用方便、安全性高、成本低等優(yōu)點。
上述具體實施方式,并不構(gòu)成對本發(fā)明保護(hù)范圍的限制。本領(lǐng)域技術(shù)人員應(yīng)該明白的是,取決于設(shè)計要求和其他因素,可以發(fā)生各種各樣的修改、組合、子組合和替代。任何在本發(fā)明的精神和原則之內(nèi)所作的修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)范圍之內(nèi)。