TWI503690B - 身份合法性驗證的方法、裝置及伺服器 - Google Patents

身份合法性驗證的方法、裝置及伺服器 Download PDF

Info

Publication number
TWI503690B
TWI503690B TW103124948A TW103124948A TWI503690B TW I503690 B TWI503690 B TW I503690B TW 103124948 A TW103124948 A TW 103124948A TW 103124948 A TW103124948 A TW 103124948A TW I503690 B TWI503690 B TW I503690B
Authority
TW
Taiwan
Prior art keywords
bit
character
version
access
check
Prior art date
Application number
TW103124948A
Other languages
English (en)
Other versions
TW201504837A (zh
Inventor
Dong-Shan Xu
He-Tao Huang
Original Assignee
Tencent Tech Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Tech Shenzhen Co Ltd filed Critical Tencent Tech Shenzhen Co Ltd
Publication of TW201504837A publication Critical patent/TW201504837A/zh
Application granted granted Critical
Publication of TWI503690B publication Critical patent/TWI503690B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

身份合法性驗證的方法、裝置及伺服器
本發明係有關於通信技術領域,尤其是有關於一種身份合法性驗證的方法、裝置及伺服器。
隨著網際網路技術的飛速發展,網路端伺服器向協力廠商開發商開放雲端平臺已成為一種資訊化建設的趨勢。網路端伺服器面向協力廠商開發商開源,提供用於請求資源的應用程式設計發展介面(Application Programming Interface,簡稱API)。協力廠商在進行資源請求時向伺服器請求呼叫API,透過伺服器的API對相關資料進行處理。
為保證API呼叫的安全,在呼叫API前網路端伺服器需要對協力廠商的身份進行合法性驗證,只有在驗證成功後伺服器才允許協力廠商對API進行呼叫。通常,在呼叫API之前,伺服器會為已授權的協力廠商分配存取身份標識(Access Identity,Access ID)和加密金鑰。在呼叫API時,協力廠商會將存取ID以及根據加密金鑰生成的數位簽章攜帶在呼叫請求中發送給伺服器。在身份合法性驗證時,伺服器對協力廠商的呼叫請求進行重放攻擊驗證、呼叫頻率驗證以及數位簽章驗證等驗證操作,只有這幾步均驗證成功時,伺 服器才向協力廠商提供API。
具體的,在接收到API呼叫請求後,伺服器訪問儲存系統驗證該請求是否為重放攻擊,如果不為重放攻擊,則進一步對該請求的呼叫頻率進行驗證。在通過呼叫頻率驗證後,伺服器將該請求涉及的API資料發送給API審計系統進行審計,並更新頻率控制系統中的請求頻率記錄。在數位簽章驗證環節中,伺服器訪問儲存系統調取與存取ID對應的加密金鑰,並根據該加密金鑰生成伺服器端的數位簽章,然後將API呼叫請求中攜帶的數位簽章與生成的伺服器端的數位簽章進行比對,如果兩者相同,則向協力廠商提供API。
在實現上述身份合法性驗證的過程中,發明人發現現有技術中至少存在如下問題:在進行上述驗證操作時,伺服器都需要對API審計系統、頻率控制系統以及儲存系統進行訪問。如果未授權的協力廠商或駭客惡意生成大量無效的存取ID攻擊伺服器,則伺服器將會對這三個系統頻行繁進的訪問,極易使系統產生訪問瓶頸,出現拒絕服務或者系統崩潰的現象。
本發明實施例提供一種身份合法性驗證的方法、裝置及伺服器,能夠解決因大量無效存取ID攻擊導致的系統負荷過重的問題。
一方面,本實施例提供了一種身份合法性驗證的方法,包括:伺服器接收協力廠商上報的應用程式設計發展介面(API)呼叫請求,所述API呼叫請求中攜帶有所述伺服器為所述 協力廠商預先生成並分配的存取身份標識(存取ID);搜尋所述存取ID中的版本位元字元,所述版本位元字元用於標識校驗位元生成規則的版本號;根據版本位元生成規則驗證所述版本位元字元所標識的版本號與伺服器使用的校驗位元生成規則的版本號是否一致;當所述版本位元字元驗證成功時,搜尋所述存取ID中的至少一位元校驗位元字元;根據所述校驗位元生成規則分別對所述至少一位元校驗位元字元進行驗證。
另一方面,本實施例提供了一種身份合法性驗證的裝置,包括:接收單元,用於接收協力廠商上報的應用程式設計發展介面(API)呼叫請求,所述API呼叫請求中攜帶有所述伺服器為所述協力廠商預先生成並分配的存取身份標識(ID);搜尋單元,用於搜尋所述接收單元接收的所述存取ID中的版本位元字元,所述版本位元字元用於標識校驗位元生成規則的版本號;第一驗證單元,用於根據版本位元生成規則驗證所述搜尋單元搜尋到的所述版本位元字元所標識的版本號與伺服器使用的校驗位元生成規則的版本號是否一致;所述搜尋單元還用於當所述第一驗證單元對所述版本位元字元驗證成功時,搜尋所述接收單元接收的所述存取ID中的至少一位元校驗位元字元;第二驗證單元,用於根據所述校驗位元生成規則分別對所 述搜尋單元搜尋到的所述至少一位元校驗位元字元進行驗證。
再一方面,本實施例提供了一種伺服器,包括:輸入輸出電路、記憶體、處理器以及匯流排,其中,所述輸入輸出電路,用於接收協力廠商上報的應用程式設計發展介面(API)呼叫請求,所述API呼叫請求中攜帶有所述伺服器為所述協力廠商預先生成並分配的存取身份標識(ID);所述記憶體用於儲存版本位元生成規則、校驗位元生成規則以及校驗位元生成規則的版本號;所述處理器,用於搜尋所述輸入輸出電路接收的所述存取ID中的版本位元字元,所述版本位元字元用於標識校驗位元生成規則的版本號,根據所述記憶體儲存的版本位元生成規則驗證所述版本位元字元所標識的版本號與所述記憶體儲存的校驗位元生成規則的版本號是否一致,當所述版本位元字元驗證成功時,搜尋所述存取ID中的至少一位元校驗位元字元,根據所述記憶體儲存的所述校驗位元生成規則分別對所述至少一位元校驗位元字元進行驗證;所述匯流排,用於連接所述輸入輸出電路、所述記憶體以及所述處理器。
本發明實施例提供的身份合法性驗證的方法、裝置及伺服器,能夠在對API呼叫請求進行重放攻擊驗證之前,首先對API呼叫請求中攜帶的存取ID進行合法性驗證。伺服器搜尋存取ID中用於標識校驗位元生成規則版本號的版本位元字元,然後根據版本位元生成規則驗證版本位元字元所標 識的版本號與伺服器使用的校驗位元生成規則的版本號是否一致。該驗證操作的目的在於對校驗位元生成規則的版本進行驗證,如果版本位元字元所標識的版本號與伺服器生成該存取ID時使用的校驗位元生成規則的版本號不一致,則該存取ID為非法存取ID;如果驗證結果為兩者相同,則版本位元字元驗證成功,伺服器對存取ID中的至少一位元校驗位元字元進行驗證。伺服器搜尋存取ID中的至少一位元校驗位元字元,根據校驗位元生成規則分別對至少一位元校驗位元字元進行驗證,當至少一位元校驗位元字元驗證或均驗證成功時,確定該存取ID為合法存取ID。與現有技術中直接根據API呼叫請求進行重放攻擊等驗證相比,本發明實施例能夠在重放攻擊驗證前增加對存取ID合法性驗證的步驟,對攜帶非法存取ID的API呼叫請求進行剔除,僅對攜帶合法存取ID的API呼叫請求進行重放攻擊等驗證,由此減少伺服器對API審計等系統的訪問次數,進而消除因協力廠商惡意生成大量非法存取ID對系統造成的負荷影響。
201~205‧‧‧步驟
301~307‧‧‧步驟
131‧‧‧接收單元
132‧‧‧搜尋單元
133‧‧‧第一驗證單元
134‧‧‧第二驗證單元
141‧‧‧生成單元
142‧‧‧發送單元
151‧‧‧確定子單元
152‧‧‧選擇子單元
153‧‧‧劃分子單元
154‧‧‧第一生成子單元
155‧‧‧第二生成子單元
161‧‧‧建立子單元
171‧‧‧第一解析子單元
172‧‧‧判斷子單元
181‧‧‧第二解析子單元
182‧‧‧比對子單元
191‧‧‧第三驗證單元
201‧‧‧輸入輸出電路
202‧‧‧記憶體
203‧‧‧處理器
204‧‧‧匯流排
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為現有技術中對API呼叫請求驗證的流程圖;圖2為本發明實施例中身份合法性驗證的方法的流程圖; 圖3為本發明實施例中另一個身份合法性驗證的方法的流程圖;圖4為本發明實施例中32位元存取ID的示意圖;圖5為本發明實施例中確定版本位元和校驗位元位置後的存取ID的示意圖;圖6為本發明實施例中初始化字元陣列的示意圖;圖7為本發明實施例中確定次級字元後的存取ID的示意圖;圖8為本發明實施例中一種生成字元組劃分方式的示意圖;圖9為本發明實施例中另一種生成字元組劃分方式的示意圖;圖10為本發明實施例中確定版本位元字元後的存取ID的示意圖;圖11為本發明實施例中確定版本位元字元和校驗位元字元後的存取ID的示意圖;圖12為本發明實施例中協力廠商隨機生成的存取ID的示意圖;圖13為本發明實施例中第一個身份合法性驗證的裝置的結構示意圖;圖14為本發明實施例中第二個身份合法性驗證的裝置的結構示意圖;圖15為本發明實施例中第三個身份合法性驗證的裝置的結構示意圖;圖16為本發明實施例中第四個身份合法性驗證的裝置的結構示意圖; 圖17為本發明實施例中第五個身份合法性驗證的裝置的結構示意圖;圖18為本發明實施例中第六個身份合法性驗證的裝置的結構示意圖;圖19為本發明實施例中第七個身份合法性驗證的裝置的結構示意圖;圖20為本發明實施例中伺服器的結構示意圖。
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
在對本實施例進行說明前,首先對API的呼叫流程進行簡要介紹。如圖1所示,伺服器在接收到協力廠商發送的API呼叫請求後,首先驗證該呼叫請求是否為重放攻擊。在進行重放攻擊驗證時伺服器需要訪問儲存系統,如果該呼叫請求為重放攻擊則報錯返回,如果不為重放攻擊則進行下一步呼叫頻率驗證。呼叫頻率驗證的目的在於限制同一個網際網路通訊協定(Internet Protocol,IP)號在單位時間內的請求次數,例如當某個IP號在一分鐘之內進行的呼叫請求超過了60次時,該IP號的第61次的呼叫請求將無法通過呼叫頻率驗證,本次呼叫請求報錯返回;如果本次呼叫請求通過了呼叫頻率驗證,則伺服器將本次呼叫請求的資料上報給API審計系統及頻率控制系統,然後進行下一步數位簽章驗證。在驗證數位簽章時,伺服器從呼叫請求中獲取協力廠商提供 的數位簽章,然後訪問儲存系統獲取與呼叫請求中存取ID對應的加密金鑰,並根據獲取的加密金鑰生成的數位簽章。最後伺服器對協力廠商提供的數位簽章和生成的數位簽章進行比對,如果兩者相同則為協力廠商分配API,如果兩者不同則報錯返回。
透過上述流程可以看到,在協力廠商請求呼叫API時,伺服器需要多次訪問API審計系統、頻率控制系統以及儲存系統。如果協力廠商透過惡意生成非法存取ID的方式向伺服器發送大量無效的API呼叫請求,則伺服器需要對上述系統進行頻繁訪問,容易導致系統產生瓶頸甚至發生崩潰。
為消除大量無效API呼叫請求對系統負荷造成的衝擊,本實施例提供了一種身份合法性驗證的方法,該方法主要應用於伺服器端,用以在驗證重放攻擊前對存取ID的合法性進行驗證。如圖2所示,該方法包括:
步驟201、伺服器接收協力廠商上報的API呼叫請求。
協力廠商開發商向網路端伺服器發送API呼叫請求,請求呼叫API的相關資來源資料,該API呼叫請求中攜帶有伺服器為協力廠商預先生成並分配的存取ID。
在協力廠商請求呼叫API之前,伺服器會為授權的協力廠商預先生成並分配一個合法的存取ID。在請求呼叫API時,協力廠商將伺服器分配的存取ID添加到在API請求中發送給伺服器,由伺服器對該存取ID進行合法性驗證。
本實施例中,只有授權的協力廠商所發送的存取ID能夠通過伺服器的合法性驗證,而未授權的協力廠商所發送的存取ID(例如透過私自編纂或隨機生成的存取ID)由於 與伺服器生成的存取ID不相同,因此無法通過伺服器的合法性驗證。伺服器後續不對其對應的API呼叫請求進行重放攻擊等驗證,由此節省因對非法API呼叫請求進行驗證所產生的系統負荷。
步驟202、伺服器搜尋存取ID中的版本位元字元。
伺服器在為授權的協力廠商生成存取ID時,會在存取ID中設置一位元版本位元字元和至少一位元校驗位元字元。其中,版本位元字元用於標識校驗位元生成規則的版本號,而校驗位元字元則用於對存取ID中的其他字元進行驗證(版本位元字元除用於標識版本號以外,也能夠對存取ID中的部分字元進行驗證)。伺服器在生成存取ID時,根據版本位元生成規則生成一位元版本位元字元,根據校驗位元生成規則生成至少一位元校驗位元字元,然後將版本位元字元和校驗位元字元設置到存取ID中預設的字元位元上。
本實施例中,伺服器可以預先儲存多種版本位元生成規則以及多種校驗位元生成規則,在生成存取ID時根據網管人員的設置或者自身的腳本程式選擇一種版本位元生成規則和一種校驗位元生成規則使用,本實施例對版本位元生成規則和校驗位元生成規則的種類及數量不做限制。
在協力廠商請求呼叫API時,伺服器依次對存取ID中的版本位元字元和校驗位元字元進行驗證,即伺服器首先根據版本位元生成規則驗證校驗位元生成規則的版本號是否與伺服器使用的校驗位元生成規則的版本號相同,然後根據校驗位元生成規則依次對至少一位元校驗位元字元進行驗證。本步驟的目的在於在驗證前對版本位元字元進行搜尋,以便後續進行驗證。
步驟203、伺服器根據版本位元生成規則驗證版本位元字元所標識的版本號與伺服器使用的校驗位元生成規則的版本號是否一致。
伺服器根據生成版本位元字元時所使用的版本位元生成規則對版本位元字元進行解析,獲得校驗位元生成規則的版本號。如果解析出的版本號與伺服器使用的校驗位元生成規則的版本號不一致,則API呼叫請求中攜帶的存取ID為非法存取ID,伺服器報錯返回;如果驗證結果為兩者一致,則伺服器繼續執行步驟204。例如,在生成存取ID時伺服器根據校驗位元生成規則4生成了兩位元驗證位元字元,根據版本位元生成規則1以及校驗位元生成規則的版本號4生成了一位元版本位元字元。在驗證存取ID時,如果伺服器根據版本位元生成規則1解析出的版本號為4,則版本位元字元驗證成功;如果伺服器根據版本位元生成規則1解析出的版本號不為4,例如為3,則版本位元字元驗證失敗。
在實際應用中,版本位元字元驗證失敗的可能性是存在的。譬如,伺服器在生成存取ID時使用校驗位元生成規則4生成校驗位元字元,在將生成的存取ID發送給協力廠商後,校驗位元生成規則4被駭客惡意破解,則伺服器根據新的校驗位元生成規則,例如校驗位元生成規則3重新生成新的存取ID併發送給協力廠商,而此前發送給協力廠商的存取ID失效作廢。如果協力廠商使用失效的存取ID呼叫API,即協力廠商使用伺服器根據校驗位元生成規則4生成的存取ID請求API,則在本步驟中版本位元字元驗證失敗。
步驟204、當版本位元字元驗證成功時,伺服器搜尋存取ID中的至少一位元校驗位元字元。
在版本位元字元驗證成功後,即在校驗位元生成規則校驗一致後,伺服器根據生成存取ID時使用的校驗位元生成規則對至少一位元校驗位元進行驗證。本步驟的目的在於對校驗位元字元進行搜尋,以便後續進行驗證。
步驟205、伺服器根據校驗位元生成規則分別對至少一位元校驗位元字元進行驗證。
在生成存取ID時伺服器使用校驗位元生成規則2生成校驗位元字元,本步驟中伺服器根據校驗位元生成規則2對至少一位元校驗位元字元依次進行驗證。如果至少一位元校驗位元字元驗證成功或者均驗證成功,則API呼叫請求中的存取ID為合法存取ID,伺服器繼續對API呼叫請求進行重放攻擊等驗證;如果有至少一位元校驗位元字元驗證失敗,則伺服器報錯返回。本實施例中,所述至少一位元校驗位元字元驗證成功或者均驗證成功,是指當有一位元校驗位元字元時,該校驗位元字元驗證成功,當有兩位元以上校驗位元字元時,所有校驗位元字元均驗證成功。
本實施例中,校驗位元字元是根據存取ID中的其他字元生成得到的,校驗位元字元與其他字元之間存在關聯關係。如果校驗位元字元驗證成功,則證明協力廠商上報的存取ID中的字元與伺服器為授權協力廠商生成的存取ID中的字元對應相同,因此得出存取ID合法的驗證結果;如果校驗位元字元驗證失敗,則證明協力廠商上報的存取ID中至少有一位元字元與伺服器為授權協力廠商生成的存取ID中對應的字元不相同,因此得出存取ID不合法的驗證結果。本實施例中所述的其他字元是指存取ID中除版本位元字元和校驗位元字元以外的字元,在本實施例後續的說明中,統一以次 級字元或次級字元位元字元替代說明。
本發明實施例提供的身份合法性驗證的方法,能夠在重放攻擊驗證之前,對API呼叫請求中的存取ID進行合法性驗證。該存取ID為伺服器事先為授權的協力廠商生成的存取ID。在合法性驗證時,伺服器首先對存取ID中的版本位元字元進行驗證,當版本位元字元驗證成功時,伺服器進一步對存取ID中的校驗位元字元進行驗證。當所有校驗位元字元均驗證成功時,確定該存取ID合法。與現有技術中直接對API呼叫請求進行重放攻擊等驗證相比,可以在重放攻擊驗證之前,先對API呼叫請求中的存取ID進行合法性驗證,如果存取ID為非法存取ID則停止後續的驗證步驟,直接報錯返回。由此節省大量無效API呼叫請求對系統負荷的衝擊,保證系統的正常運行。
此外,本發明實施例提供的身份合法性驗證的方法,還能夠有效防止未授權的協力廠商或者駭客暴力破解存取ID。以伺服器生成32位元存取ID為例,其中除版本位元字元及校驗位元字元以外,每一位元字元均可以從1至9、a至z以及A至Z共62位元字元中隨機產生。假設存取ID中包含1位元版本位元字元和2位元校驗位元字元,那麼暴力破解所需的遍歷次數為62的29次方,達到10的51次方的數量級。在如此高的數量級下,駭客還需要獲取版本位元生成規則及校驗位元生成規則,其破解難度進一步加大。再者,即使不考慮生成規則,按照現有電腦的運行速度,如果進行如此該數量級的運算,其所耗費的時間也已遠遠超過存取ID的有效時間,因此駭客幾乎無法破解成功。
進一步的,作為對圖2所示方法的詳細說明以及 進一步擴展,本實施例還提供了一種身份合法性驗證的方法,該方法同樣主要應用於伺服器端,用以在驗證重放攻擊前對存取ID的合法性進行驗證。如圖3所示,該方法包括:
步驟301、伺服器根據版本位元生成規則以及校驗位元生成規則生成存取ID。
伺服器首先為授權的協力廠商生成一個合法的存取ID,以便協力廠商後續根據該存取ID向伺服器請求API。本實施例中步驟301和步驟302即為在驗證存取ID之前伺服器生成及發送存取ID的步驟。
具體的,以32位元存取ID為例,伺服器生成存取ID的過程包括:
步驟301a、伺服器在存取ID中確定一位元版本位元以及至少一位元校驗位元。
如圖4所示,伺服器首先生成一個32位元的存取ID,其中字元位元中暫未設置具體字元。然後伺服器在這32個字元位元中確定一位元版本位元以及至少一位元校驗位元,本實施例以確定1位元版本位元以及2位元校驗位元為例進行說明。
伺服器確定版本位元和校驗位元的依據可以是根據網管人員的設置進行確定,也可以根據預設的腳本程式自行進行確定。例如,隨機選擇某3個字元位元作為版本位元和校驗位元,或者從字元位元1開始按照“逢十抽一”規則選擇3個字元位元。事例性的,如圖5所示,伺服器將字元位元3確定為版本位元,將字元位元14和字元位元28確定為校驗位元。
步驟301b、伺服器從初始化字元陣列中選擇多個字元作為存取ID中次級字元位元的字元。
如前所述,所述次級字元位元是指存取ID中除版本位元和校驗位元以外的其他字元位元,在圖5中,字元位元1至字元位元2、字元位元4至字元位元13、字元位元15至字元位元27以及字元位元29至字元位元32為次級字元位元。
所述初始化字元陣列用於為存取ID的生成提供具體字元,由伺服器事先建立。如圖6所示,該初始化字元陣列由數字0至9、小寫字母a至z以及大寫字母A至Z共62位元字元組成。圖6所示的初始化字元陣列僅為事例性說明,實際應用中不對初始化字元陣列中的字元內容及排列順序進行限定。
伺服器按照預設規則從初始化字元陣列中選擇字元作為存取ID中次級字元位元的字元。本實施例中,以隨機選擇演算法作為預設規則,伺服器從存取ID的字元位元1開始依次為每一個次級字元位元隨機選擇字元,生成次級字元位元字元後的存取ID如圖7所示。
步驟301c、伺服器將多個次級字元位元字元劃分為至少兩組生成字元組。
該至少兩組生成字元組包括一組版本位元生成字元組和至少一組校驗位元生成字元組。在本實施例中,伺服器將29個次級字元位元字元劃分為1個版本位元生成字元組和2個校驗位元生成字元組。
具體的,伺服器按照次級字元位元之字元數量a、版本位元數量b以及校驗位元數量c對次級字元位元字元進行劃分,得到至少兩組生成字元組。在本實施例中,次級字元位元字元數量a為29、版本位元數量b為1、校驗位元 數量c為2。事例性的,伺服器首先為各個生成字元組分配字元數量,然後從存取ID的第一位元字元開始(不包含版本位元字元和校驗位元字元)順序為版本位元生成字元組和校驗位元生成字元組分配字元。伺服器劃分出的版本位元生成字元組和校驗位元生成字元組如圖8所示。
為提高駭客對存取ID的破解難度,在本實施例的一個優選方案中,伺服器為3個生成字元組平均分配字元數量,例如伺服器按照圖9所示劃分版本位元生成字元組和校驗位元生成字元組。如果伺服器按照圖8所示方式劃分生成字元組,則駭客遍歷次級字元位元的次數為××,而按照圖9所示方式劃分生成字元組,則駭客遍歷次級字元位元的次數為××,平均分配規則生成的存取ID破解起來(不包含版本位元和校驗位元的破解)的遍歷次數明顯多於非平均分配規則生成的存取ID。這一點較為容易理解,打個比方,1×2×9=18(相當於非平均分配規則),而4×4×4=64(相當於平均分配規則),明顯可以看出平均分配規則的排列組合數量多於非平均分配規則的排列組合數量。
本實施例後續以圖9所示的3個生成字元組為例進行說明。
步驟301d、伺服器根據版本位元生成字元組以及版本位元生成規則生成版本位元字元。
具體的:
步驟1、在版本位元生成字元組中伺服器將每個字元的位元數分別與與該字元對應的美國資訊交換標準代碼(American Standard Code for Information Interchange,簡稱ASCII)相乘,獲得多個一級版本位元數值。
所述字元的位元數可以是該字元在存取ID中的字元位元之位元數,也可以是該字元在初始化字元陣列中的字元位元之位元數。例如對於字元“c”,其在存取ID中的字元位元之位元數為1,而在初始化字元陣列中的字元位元之位元數則為13,本實施例中以初始化字元陣列中的字元位元之位元數為例進行說明。
對於圖9所示的版本位元生成字元組,伺服器計算得到的9個一級版本位元數值依次為:10×57(9)=570、21×107(k )=2247、27×113(q )=3051、11×97(a )=1067、4×51(3)=204、38×66(B )=2508、36×122(z )=4392、62×90(Z )=5580、8×55(7)=440、23×109(m )=2507,其中乘號左邊的數字為字元在初始化字元陣列中的字元位元之位元數,乘號右邊的數字為字元對應的ASCII碼,括弧內為字元本身。
本實施例以十進位ASCII碼為例進行說明,實際應用中還可以採用十六進位或八進制的ASCII碼進行計算,本實施例對此不做限制。
步驟2、伺服器對多個一級版本位元數值求和並對62取模,得到一個二級版本位元數值。
伺服器對9個一級版本位元數值求和得到:1278+1632+150+2120+378+504+3192+98+260=9621,然後將9621對62取模,得到的二級版本位元數值為11。
步驟3、伺服器對二級版本位元數值及校驗位元生成規則的版本號求和並對62取模,得到一個三級版本位元數值。
事例性的,伺服器生成存取ID時使用校驗位元生成規則4,即校驗位元生成規則的版本號為4,伺服器按照 如下方式計算得到三級版本位元數值:(11+4)/62=15,其中運算子“/”為取模運算。
步驟4、伺服器在初始化字元陣列中搜尋字元位元數與三級版本位元數值相同的字元位元,將該字元位元上的字元確定為版本位元字元。
伺服器在圖6所示的初始化字元陣列搜尋到第15位元字元“e”作為存取ID的版本位元字元,確定版本位元字元的存取ID如圖10所示。
步驟301e、伺服器根據至少一組校驗位元生成字元組以及校驗位元生成規則分別生成至少一個校驗位元字元。
生成版本位元字元後,伺服器按照校驗位元生成規則4依次生成2位元校驗位元字元。具體的:
步驟1、伺服器在一個校驗位元生成字元組中,將每個字元的位元數分別與與該字元對應的ASCII碼相乘,獲得多個一級校驗位元數值。
以根據圖9中第一校驗位元生成字元組生成第1位元校驗位元字元為例,伺服器計算得到的10個一級校驗位元數值依次為:10×57(9)=570、21×107(k )=2247、27×113(q )=3051、11×97(a )=1067、4×51(3)=204、38×66(B )=2508、36×122(z )=4392、62×90(Z )=5580、8×55(7)=440、23×109(m )=2507,其中乘號左邊的數字為字元在初始化字元陣列中的字元位元之位元數,乘號右邊的數字為字元對應的ASCII碼,括弧內為字元本身。
步驟2、伺服器對多個一級校驗位元數值求和並對62取模,得到一個二級校驗位元數值。
伺服器對10個一級校驗位元數值求和得到: 570+2247+3051+1067+204+2508+4392+5580+440+2507=22566,然後將22566對62取模,得到的二級校驗位元數值為60。
步驟3、伺服器在初始化字元陣列中搜尋字元位元數與二級校驗位元數值相同的字元位元,將該字元位元上的字元確定為一個校驗位元字元。
伺服器在圖6所示的初始化字元陣列搜尋到第60位元字元“X”作為存取ID的第1位元校驗位元字元。
接著,伺服器根據與步驟1和步驟2相同的實現方式生成第2位元校驗位元字元“D”,確定校驗位元字元的存取ID如圖11所示,該存取ID為一個完成的存取ID。
步驟302、伺服器將生成的存取ID發送給協力廠商。
伺服器將圖11所示的存取ID發送給授權的協力廠商,以便協力廠商後續請求呼叫API使用。
步驟303、伺服器接收協力廠商上報的API呼叫請求。
當協力廠商請求呼叫API時,伺服器獲取API呼叫請求中的存取ID,該存取ID為步驟302中伺服器發送給授權協力廠商的存取ID。
步驟304、伺服器搜尋存取ID中的版本位元字元。
伺服器根據步驟301a中確定版本位元的規則搜尋存取ID中的版本位元字元,即伺服器將存取ID的第3位元字元“e”確定為版本位元字元。
步驟305、伺服器根據版本位元生成規則驗證版本位元字元所標識的版本號與伺服器使用的校驗位元生成規 則的版本號是否一致。
具體的:
步驟305a、伺服器根據版本位元生成規則的逆向規則對版本位元字元“e”進行解析,獲得版本號。
伺服器首先在初始化字元陣列中搜尋到字元“e”的字元位元數15,然後按照步驟301d中步驟1和步驟2的實現方式,對圖9中所示的版本位元生成字元組中的每一位元字元進行ASCII相乘求和,並且對62取模得到二級版本位元數值11。接著伺服器將字元“e”的字元位元數值15減去二級版本位元數值11,得到版本號為4。本實施例中,如果字元“e”的字元位元數減去二級版本位元數值為負數,則伺服器將相減得到的數值與62相加,得到版本號。
步驟305b、伺服器判斷解析出的版本號與伺服器使用的校驗位元生成規則的版本號是否相同,得出判斷結果。
本實施例中,由於請求呼叫API的協力廠商為已授權的協力廠商,因此其發送的存取ID為合法存取ID,因而伺服器根據該存取ID解析出的版本號4與伺服器在步驟301e中使用的校驗位元生成規則4的版本號相同。當未授權的協力廠商或駭客暴力破解存取ID時,只要其遍歷得到的版本位元生成字元組與伺服器所使用的版本位元生成字元組相比有一位元字元不同,則伺服器解析出的版本號就會與伺服器使用的版本號不相同。
在本實施例中,對版本位元字元進行驗證除了可以驗證其所標識的版本號是否與伺服器使用的版本號相同以外,還可以對版本位元生成字元組中的9位元字元進行驗證。
當伺服器的判斷結果為解析出的版本號與伺服 器使用的版本號相同時,執行步驟306,進行校驗位元字元的驗證;當伺服器的判斷結果為解析出的版本號與伺服器使用的版本號不同時,確定協力廠商上報的存取ID為非法存取ID,伺服器報錯返回。
步驟306、伺服器搜尋存取ID中的校驗位元字元。
伺服器根據步驟301a中確定校驗位元的規則搜尋存取ID中的校驗位元字元,即伺服器將存取ID中的第14位元字元“X”和第28位元字元“D”分別確定為第1位元校驗位元字元和第2位元校驗位元字元。
步驟307、伺服器根據校驗位元生成規則分別對至少一位元校驗位元字元進行驗證。
對校驗位元字元進行驗證的目的在於對存取ID中次級字元的正確性進行驗證。由於1個校驗位元字元是由10個次級字元生成的,如果這10個次級字元中有1個次級字元與伺服器生的次級字元不同,則伺服器解析出的校驗位元字元就與其生成的校驗位元字元不同,因此可以對存取ID的正確性進行檢測。以對第1位元校驗位元字元進行驗證為例:
步驟1、伺服器根據校驗位元生成規則解析出校驗位元字元。
伺服器根據生成校驗位元字元時使用的校驗位元生成規則4從存取ID中解析出校驗位元字元。具體的,伺服器從存取ID中獲取第11位元字元至第21位元字元(不包含第14位元校驗位元字元),即伺服器獲取圖9中所示的第一校驗位元生成字元組。然後,伺服器按照步驟301e中步驟1至步驟3的實現方式,根據獲取的第一校驗位元生成字元組解析出第 1位元校驗位元字元“X”。
步驟2、伺服器將解析出的校驗位元字元與生成存取ID時生成的校驗位元字元對應進行比對。
本步驟中,伺服器比對的物件分別為步驟1中解析出的校驗位元字元和伺服器生成的校驗位元字元,其中伺服器生成的校驗位元字元亦即為存取ID中第14字元位元上的字元“X”。需要說明的是,步驟1中解析校驗位元字元的目的並非是要獲取校驗位元字元,(如果需要獲取校驗位元字元,直接讀取存取ID中第14字元位元上的字元“X”即可),伺服器解析校驗位元字元的目的在於,根據協力廠商無法獲知的校驗位元生成規則對存取ID獨立進行驗證,如果解析出的校驗位元字元與伺服器此前生成的校驗位元字元相同,則說明存取ID中的其他字元位元與生成存取ID時的次級字元位元之字元對應相同。本實施例中是以協力廠商上報合法存取ID為例進行的說明,因此伺服器從該存取ID中解析出的校驗位元字元必然與生的校驗位元字元相同,亦即伺服器解析出的校驗位元字元即為存取ID中第14字元位元上的字元。但是當協力廠商上報的存取ID為非法存取ID時,本步驟中解析和比較校驗位元字元的意義就能夠體現出來了。例如,協力廠商透過排列組合隨機生成了如圖12所示的存取ID,由於存取ID中的字元與伺服器生的存取ID中的字元不對應相同,因此伺服器根據非法存取ID中第11位元字元至第21位元字元(不包含第14位元校驗位元字元)以及校驗位元生成規則解析出的校驗位元字元與伺服器生成的校驗位元字元不同,由此可以判斷出該存取ID為非法存取ID。
在比對完第14位元的校驗位元字元後,伺服器 按照與步驟1和步驟2相同的實現方式對第28位元的校驗位元字元進行比對,此處不再贅述。當2位元校驗位元字元中有至少1位元校驗位元字元比對不同時,伺服器確定該存取ID為非法存取ID,報錯返回;當2位元校驗位元字元均比對相同時,伺服器確定該存取ID為合法存取ID。
進一步的,作為本實施例的另一個優選方案,當伺服器使用的校驗位元生成規則4被協力廠商破解時,伺服器還可以使用新的校驗位元生成規則重新生成存取ID,其中在重新生成的存取ID中,新的版本位元字元用於標識新的校驗位元生成規則的版本號。然後伺服器將重新生成的存取ID發送給授權的協力廠商。如前所述,伺服器內部儲存有多種校驗位元生成規則,在本優選方案中,如果當前使用的校驗位元生成規則被協力廠商破解,則伺服器可以根據新的校驗位元生成規則例如校驗位元生成規則2重新生成存取ID。在新的存取ID中,伺服器將校驗位元生成規則2的版本號體現在新的版本位元字元中,對於破解了校驗位元生成規則4的協力廠商而言,在其根據校驗位元生成規則4生成的存取ID中,版本位元字元所標識的版本號為已經失效的版本號4,如果透過該存取ID請求呼叫API介面,則在版本位元字元驗證時伺服器就會報錯返回,由此達到更新存取ID的作用。
再進一步的,在本實施例的一個可選技術方案中,在執行完步驟307後,如果驗證存取ID為合法存取ID,則伺服器可以按照圖1所示的流程對API呼叫請求做進一步的驗證操作,包括重放攻擊驗證、呼叫頻率驗證以及數位簽章驗證等驗證。其驗證的實現方式此處不再一一贅述,當後續驗證均成功時,伺服器為協力廠商呼叫API。
本實施例提供的身份合法性驗證的方法,能夠通過版本位元字元對存取ID中使用的校驗位元生成規則的版本進行驗證,當版本驗證成功時,進一步對至少一位元校驗位元字元進行驗證。由於校驗位元是由次級字元生成得到的,因此可以間接對存取ID中每一位元次級字元的正確性進行驗證,由此達到驗證存取ID合法性的目的。另外,由於版本位元字元也是透過次級字元生成得到的,因此對版本位元字元的驗證除了可以驗證校驗位元生成規則的版本是否正確以外,也可以對生成版本位元字元的次級字元的正確性進行驗證。
此外,本實施例提供的身份合法性驗證的方法,還可以在當前校驗位元生成規則被破解時靈活切換校驗位元生成規則,並將新規則的版本號體現在新的存取ID中發送給授權的協力廠商,使舊存取ID失效,由此進一步增加破解存取ID的難度。
下面對本實施例方法的可行性進行分析。要破解存取ID的驗證規則需要確定版本位元和校驗位元的位數和位置,以及版本位元生成字元組和校驗位元生成字元組的位元數。以32位元存取ID中包含1位元版本位元、2位元校驗位元、版本位元生成字元組9位元字元、校驗位元生成字元組10位元字元為例,在不考慮版本位、校驗位元的位置以及生成字元組中字元排列組合的前提下,駭客成功破解存取ID的概率為:
此外,由於版本位元個數、校驗位元個數、版本位元生成字元組中字元個數以及校驗位元生成字元組中字元個數均可變,因此成功破解存取ID的概率更低。另外,在實 際應用中由於版本位元生成規則和校驗位元生成規則均可以靈活變動,因此,駭客意圖破解存取ID幾乎不存在可能性。
參考圖3所示方法的實現,本實施例還提供了一種身份合法性驗證的裝置,該裝置可以位於網路端伺服器內部,用以對圖3所示的方法進行實現。如圖13所示,所述裝置包括:接收單元131、搜尋單元132、第一驗證單元133以及第二驗證單元134,其中,所述接收單元131,用於接收協力廠商上報的應用程式設計發展介面(API)呼叫請求,所述API呼叫請求中攜帶有所述伺服器為所述協力廠商預先生成並分配的存取身份標識(ID);所述搜尋單元132,用於搜尋所述接收單元131接收的所述存取ID中的版本位元字元,所述版本位元字元用於標識校驗位元生成規則的版本號;所述第一驗證單元133,用於根據版本位元生成規則驗證所述搜尋單元132搜尋到的所述版本位元字元所標識的版本號與伺服器使用的校驗位元生成規則的版本號是否一致;所述搜尋單元132還用於當所述第一驗證單元133對所述版本位元字元驗證成功時,搜尋所述接收單元131接收的所述存取ID中的至少一位元校驗位元字元;所述第二驗證單元134,用於根據所述校驗位元生成規則分別對所述搜尋單元132搜尋到的所述至少一位元校驗位元字元進行驗證。
進一步的,如圖14所示,所述裝置還包括生成單元141及發送單元142; 所述生成單元141,用於在所述接收單元131接收所述接收協力廠商上報的API呼叫請求之前,根據所述版本位元生成規則以及所述校驗位元生成規則生成所述存取ID;所述發送單元142,用於將所述生成單元141生成的所述存取ID發送給所述協力廠商。
進一步的,如圖15所示,所述生成單元141包括確定子單元151、選擇子單元152、劃分子單元153、第一生成子單元154以及第二生成子單元155;所述確定子單元151,用於在所述存取ID中確定一位元版本位元以及至少一位元校驗位元;所述選擇子單元152,用於從初始化字元陣列中選擇多個字元作為所述存取ID中次級字元位元的字元,其中,所述次級字元位元為所述存取ID中除所述確定子單元151確定的所述版本位元以及所述校驗位元以外的其他字元位元;所述劃分子單元153,用於將所述選擇子單元152選擇的所述多個次級字元位元字元劃分為至少兩組生成字元組,所述至少兩組生成字元組包括一組版本位元生成字元組和至少一組校驗位元生成字元組;所述第一生成子單元154,用於根據所述劃分子單元153劃分的所述版本位元生成字元組以及所述版本位元生成規則生成版本位元字元;所述第二生成子單元155,用於根據所述劃分子單元153劃分的所述至少一組校驗位元生成字元組以及所述校驗位元生成規則分別生成至少一個校驗位元字元。
進一步的,如圖16所示,所述生成單元141還包 括建立子單元161;所述建立子單元161,用於所述確定子單元151在所述存取ID中確定一位元版本位元以及至少一位元校驗位元之前,建立初始化字元陣列,所述初始化字元陣列由數字0至9、小寫字母a至z以及大寫字母A至Z共62位元字元組成。
進一步的,所述劃分子單元153,用於按照次級字元位元字元數量a、版本位元數量b以及校驗位元數量c對所述次級字元位元字元進行劃分,得到所述至少兩組生成字元組。
進一步的,所述第一生成子單元154,用於:在所述版本位元生成字元組中,將每個字元的位元數分別與與該字元對應的美國資訊交換標準代碼(ASCII)相乘,獲得多個一級版本位元數值;對所述多個一級版本位元數值求和並對62取模,得到一個二級版本位元數值;對所述二級版本位元數值及所述校驗位元生成規則的版本號求和並對62取模,得到一個三級版本位元數值;在所述初始化字元陣列中搜尋字元位元數與所述三級版本位元數值相同的字元位元,將該字元位元上的字元確定為所述版本位元字元。
進一步的,所述第二生成子單元155,用於:在一個校驗位元生成字元組中,將每個字元的位元數分別與與該字元對應的ASCII碼相乘,獲得多個一級校驗位元數值;對所述多個一級校驗位元數值求和並對62取模,得到一個二級校驗位元數值; 在所述初始化字元陣列中搜尋字元位元數與所述二級校驗位元數值相同的字元位元,將該字元位元上的字元確定為一個校驗位元字元。
進一步的,如圖17所示,所述第一驗證單元133包括第一解析子單元171以及判斷子單元172;所述第一解析子單元171,用於根據所述版本位元生成規則的逆向規則對所述版本位元字元進行解析,獲得版本號;所述判斷子單元172,用於判斷所述第一解析子單元171解析出的版本號與伺服器使用的校驗位元生成規則的版本號是否相同,得出判斷結果;所述第一驗證單元133還用於當所述判斷結果為相同時,指示所述第二驗證單元134進行校驗位元字元的驗證;所述第一驗證單元133還用於當所述判斷結果為不同時,確定所述存取ID為非法存取ID。
進一步的,如圖18所示,所述第二驗證單元134還包括:第二解析子單元181,用於根據所述校驗位元生成規則分別解析出至少一個校驗位元字元;比對子單元182,用於將所述第二解析子單元181解析出的校驗位元字元分別與生成所述存取ID時生成的至少一個校驗位元字元對應進行比對;所述第二驗證單元134還用於當所有校驗位元均比對相同時,確定所述存取ID為合法存取ID;所述第二驗證單元134還用於當有至少一位元校 驗位元比對不同時,確定所述存取ID為非法存取ID。
進一步的,所述生成單元141還用於在所述發送單元142將所述存取ID發送給所述協力廠商的之後,當所述校驗位元生成規則被協力廠商破解時,使用新的校驗位元生成規則重新生成存取ID,其中在重新生成的存取ID中,新的版本位元字元用於標識新的校驗位元生成規則的版本號;所述發送單元142還用於將所述生成單元141重新生成的存取ID發送給所述協力廠商。
進一步的,如圖19所示,所述裝置還包括第三驗證單元191;所述第三驗證單元191,用於當所述第二驗證單元134驗證所述存取ID為合法存取ID時,對所述接收單元131接收的所述API呼叫請求進行重放攻擊驗證。
本實施例提供的身份合法性驗證的裝置,能夠通過版本位元字元對存取ID中使用的校驗位元生成規則的版本進行驗證,當版本驗證成功時,進一步對至少一位元校驗位元字元進行驗證。由於校驗位元是由次級字元生成得到的,因此可以間接對存取ID中每一位元次級字元的正確性進行驗證,由此達到驗證存取ID合法性的目的。另外,由於版本位元字元也是透過次級字元生成得到的,因此對版本位元字元的驗證除了可以驗證校驗位元生成規則的版本是否正確以外,也可以對生成版本位元字元的次級字元的正確性進行驗證。
此外,本實施例提供的身份合法性驗證的裝置,還可以在當前校驗位元生成規則被破解時靈活切換校驗位元生成規則,並將新規則的版本號體現在新的存取ID中發送給 授權的協力廠商,使舊存取ID失效,由此進一步增加破解存取ID的難度。
參考圖3所示方法的實現,本實施例還提供了一種伺服器,該伺服器位於網路端,用以對圖3所示的方法進行實現。如圖20所示,所述伺服器包括:輸入輸出電路201、記憶體202、處理器203以及匯流排204,其中,所述輸入輸出電路201,用於接收協力廠商上報的應用程式設計發展介面(API)呼叫請求,所述API呼叫請求中攜帶有所述伺服器為所述協力廠商預先生成並分配的存取身份標識(ID);所述記憶體202用於儲存版本位元生成規則、校驗位元生成規則以及校驗位元生成規則的版本號;所述處理器203,用於搜尋所述輸入輸出電路201接收的所述存取ID中的版本位元字元,所述版本位元字元用於標識校驗位元生成規則的版本號,根據所述記憶體202儲存的版本位元生成規則驗證所述版本位元字元所標識的版本號與所述記憶體202儲存的校驗位元生成規則的版本號是否一致,當所述版本位元字元驗證成功時,搜尋所述存取ID中的至少一位元校驗位元字元,根據所述記憶體202儲存的所述校驗位元生成規則分別對所述至少一位元校驗位元字元進行驗證;所述匯流排204,用於連接所述輸入輸出電路201、所述記憶體202以及所述處理器203。
本實施例提供的伺服器,能夠透過版本位元字元對存取ID中使用的校驗位元生成規則的版本進行驗證,當版本驗證成功時,進一步對至少一位元校驗位元字元進行驗 證。由於校驗位元是由次級字元生成得到的,因此可以間接對存取ID中每一位元次級字元的正確性進行驗證,由此達到驗證存取ID合法性的目的。另外,由於版本位元字元也是透過次級字元生成得到的,因此對版本位元字元的驗證除了可以驗證校驗位元生成規則的版本是否正確以外,也可以對生成版本位元字元的次級字元的正確性進行驗證。
此外,本實施例提供的伺服器,還可以在當前校驗位元生成規則被破解時靈活切換校驗位元生成規則,並將新規則的版本號體現在新的存取ID中發送給授權的協力廠商,使舊存取ID失效,由此進一步增加破解存取ID的難度。
透過以上的實施方式的描述,所屬領域的技術人員可以清楚地瞭解到本發明可借助軟體加必需的通用硬體的方式來實現,當然也可以透過硬體,但很多情況下前者是更佳的實施方式。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該電腦軟體產品儲存在可讀取的儲存介質中,如電腦的軟碟,硬碟或光碟等,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)執行本發明各個實施例所述的方法。
以上所述,僅為本發明的具體實施方式,但本發明的保護範圍並不局限於此,任何熟悉本技術領域的技術人員在本發明揭露的技術範圍內,可輕易想到變化或替換,都應涵蓋在本發明的保護範圍之內。因此,本發明的保護範圍應所述以權利要求的保護範圍為准。
S201~S205‧‧‧步驟

Claims (20)

  1. 一種身份合法性驗證的方法,包括以下步驟:根據版本位元生成規則以及校驗位元生成規則生成存取身份標識(ID);將所述存取ID發送給協力廠商伺服器接收所述協力廠商上報的應用程式設計發展介面(API)呼叫請求,所述API呼叫請求中攜帶有所述伺服器為所述協力廠商預先生成並分配的存取身份標識(ID);搜尋所述存取ID中的版本位元字元,所述版本位元字元用於標識所述校驗位元生成規則的版本號;根據所述版本位元生成規則驗證所述版本位元字元所標識的版本號與伺服器使用的校驗位元生成規則的版本號是否一致;當所述版本位元字元驗證成功時,搜尋所述存取ID中的至少一位元校驗位元字元;以及根據所述校驗位元生成規則分別對所述至少一位元校驗位元字元進行驗證。
  2. 如申請專利範圍第1項所述身份合法性驗證的方法,其中所述根據所述版本位元生成規則以及所述校驗位元生成規則生成所述存取ID的步驟,包括以下步驟:在所述存取ID中確定一位元版本位元以及至少一位元校驗位元;從初始化字元陣列中選擇多個字元作為所述存取ID中次級字元位元的字元,其中,所述次級字元位元為所述存取 ID中除所述版本位元以及所述校驗位元以外的其他字元位元;將所述多個次級字元位元字元劃分為至少兩組生成字元組,所述至少兩組生成字元組包括一組版本位元生成字元組和至少一組校驗位元生成字元組;根據所述版本位元生成字元組以及所述版本位元生成規則生成版本位元字元;以及根據所述至少一組校驗位元生成字元組以及所述校驗位元生成規則分別生成至少一個校驗位元字元。
  3. 如申請專利範圍第2項所述身份合法性驗證的方法,其中在所述存取ID中確定一位元版本位元以及至少一位元校驗位元的步驟之前,所述方法進一步包括以下步驟:建立初始化字元陣列,所述初始化字元陣列由數字0至9、小寫字母a至z以及大寫字母A至Z共62位元字元組成。
  4. 如申請專利範圍第3項所述身份合法性驗證的方法,其中所述將所述次級字元位元字元劃分為至少兩組生成字元組的步驟,包括以下步驟:按照次級字元位元字元數量a、版本位元數量b以及校驗位元數量c對所述次級字元位元字元進行劃分,得到所述至少兩組生成字元組。
  5. 如申請專利範圍第4項所述身份合法性驗證的方法,其中所述根據所述版本位元生成字元組以及所述版本位元生成 規則生成版本位元字元的步驟,包括以下步驟:在所述版本位元生成字元組中,將每個字元的位元數分別與與該字元對應的美國資訊交換標準代碼(ASCII)相乘,獲得多個一級版本位元數值;對所述多個一級版本位元數值求和並對62取模,得到一個二級版本位元數值;對所述二級版本位元數值及所述校驗位元生成規則的版本號求和並對62取模,得到一個三級版本位元數值;以及在所述初始化字元陣列中搜尋字元位元數與所述三級版本位元數值相同的字元位元,將該字元位元上的字元確定為所述版本位元字元。
  6. 如申請專利範圍第5項所述身份合法性驗證的方法,其中所述根據所述至少一組校驗位元生成字元組以及所述校驗位元生成規則分別生成至少一個校驗位元字元的步驟,包括以下步驟:在一個校驗位元生成字元組中,將每個字元的位元數分別與與該字元對應的ASCII碼相乘,獲得多個一級校驗位元數值;對所述多個一級校驗位元數值求和並對62取模,得到一個二級校驗位元數值;以及在所述初始化字元陣列中搜尋字元位元數與所述二級校驗位元數值相同的字元位元,將該字元位元上的字元確定為一個校驗位元字元。
  7. 如申請專利範圍第6項所述身份合法性驗證的方法,其中所述根據版本位元生成規則驗證所述版本位元字元所標識的版本號與伺服器使用的校驗位元生成規則的版本號是否一致的步驟,包括以下步驟:根據所述版本位元生成規則的逆向規則對所述版本位元字元進行解析,獲得版本號;判斷解析出的版本號與伺服器使用的校驗位元生成規則的版本號是否相同,得出判斷結果;若所述判斷結果為相同,則進行校驗位元字元的驗證;以及若所述判斷結果為不同,則確定所述存取ID為非法存取ID。
  8. 如申請專利範圍第7項所述身份合法性驗證的方法,其中所述根據所述校驗位元生成規則分別對所述至少一位元校驗位元字元進行驗證的步驟,包括以下步驟:根據所述校驗位元生成規則分別解析出至少一個校驗位元字元;將解析出的校驗位元字元分別與生成所述存取ID時生成的至少一個校驗位元字元對應進行比對;若所有校驗位元均比對相同,則確定所述存取ID為合法存取ID;以及若有至少一位元校驗位元比對不同,則確定所述存取ID為非法存取ID。
  9. 如申請專利範圍第8項所述身份合法性驗證的方法,其中 在所述將所述存取ID發送給所述協力廠商的步驟之後,所述方法進一步包括以下步驟:若所述校驗位元生成規則被協力廠商破解,則使用新的校驗位元生成規則重新生成存取ID,其中在重新生成的存取ID中,新的版本位元字元用於標識新的校驗位元生成規則的版本號;以及將重新生成的存取ID發送給所述協力廠商。
  10. 如申請專利範圍第1至9項中任一項所述身份合法性驗證的方法,其中在所述根據所述校驗位元生成規則分別對所述至少一位元校驗位元字元進行驗證的步驟之後,所述方法進一步包括以下步驟:當所述存取ID為合法存取ID時,對所述API呼叫請求進行重放攻擊驗證。
  11. 一種身份合法性驗證的裝置,包括:接收單元,用於接收協力廠商上報的應用程式設計發展介面(API)呼叫請求,所述API呼叫請求中攜帶有所述伺服器為所述協力廠商預先生成並分配的存取身份標識(ID);搜尋單元,用於搜尋所述接收單元接收的所述存取ID中的版本位元字元,所述版本位元字元用於標識校驗位元生成規則的版本號;第一驗證單元,用於根據版本位元生成規則驗證所述搜尋單元搜尋到的所述版本位元字元所標識的版本號與伺服器使用的校驗位元生成規則的版本號是否一致; 所述搜尋單元還用於當所述第一驗證單元對所述版本位元字元驗證成功時,搜尋所述接收單元接收的所述存取ID中的至少一位元校驗位元字元;第二驗證單元,用於根據所述校驗位元生成規則分別對所述搜尋單元搜尋到的所述至少一位元校驗位元字元進行驗證;生成單元,用於在所述接收單元接收所述接收協力廠商上報的API呼叫請求之前,根據所述版本位元生成規則以及所述校驗位元生成規則生成所述存取ID;以及發送單元,用於將所述生成單元生成的所述存取ID發送給所述協力廠商。
  12. 如申請專利範圍第11項所述身份合法性驗證的裝置,其中所述生成單元包括確定子單元、選擇子單元、劃分子單元、第一生成子單元以及第二生成子單元;所述確定子單元,用於在所述存取ID中確定一位元版本位元以及至少一位元校驗位元;所述選擇子單元,用於從初始化字元陣列中選擇多個字元作為所述存取ID中次級字元位元的字元,其中,所述次級字元位元為所述存取ID中除所述確定子單元確定的所述版本位元以及所述校驗位元以外的其他字元位元;所述劃分子單元,用於將所述選擇子單元選擇的所述多個次級字元位元字元劃分為至少兩組生成字元組,所述至少兩組生成字元組包括一組版本位元生成字元組和至少一組校驗位元生成字元組;所述第一生成子單元,用於根據所述劃分子單元劃分的所 述版本位元生成字元組以及所述版本位元生成規則生成版本位元字元;以及所述第二生成子單元,用於根據所述劃分子單元劃分的所述至少一組校驗位元生成字元組以及所述校驗位元生成規則分別生成至少一個校驗位元字元。
  13. 如申請專利範圍第12項所述身份合法性驗證的裝置,其中所述生成單元更包括建立子單元;所述建立子單元,用於所述確定子單元在所述存取ID中確定一位元版本位元以及至少一位元校驗位元之前,建立初始化字元陣列,所述初始化字元陣列由數字0至9、小寫字母a至z以及大寫字母A至Z共62位元字元組成。
  14. 如申請專利範圍第13項所述身份合法性驗證的裝置,其中所述劃分子單元,用於按照次級字元位元字元數量a、版本位元數量b以及校驗位元數量c對所述次級字元位元字元進行劃分,得到所述至少兩組生成字元組。
  15. 如申請專利範圍第14項所述身份合法性驗證的裝置,其中所述第一生成子單元,用於:在所述版本位元生成字元組中,將每個字元的位元數分別與與該字元對應的美國資訊交換標準代碼(ASCII)相乘,獲得多個一級版本位元數值;對所述多個一級版本位元數值求和並對62取模,得到一個二級版本位元數值;對所述二級版本位元數值及所述校驗位元生成規則的版 本號求和並對62取模,得到一個三級版本位元數值;以及在所述初始化字元陣列中搜尋字元位元數與所述三級版本位元數值相同的字元位元,將該字元位元上的字元確定為所述版本位元字元。
  16. 如申請專利範圍第15項所述身份合法性驗證的裝置,其中所述第二生成子單元,用於:在一個校驗位元生成字元組中,將每個字元的位元數分別與與該字元對應的ASCII碼相乘,獲得多個一級校驗位元數值;對所述多個一級校驗位元數值求和並對62取模,得到一個二級校驗位元數值;以及在所述初始化字元陣列中搜尋字元位元數與所述二級校驗位元數值相同的字元位元,將該字元位元上的字元確定為一個校驗位元字元。
  17. 如申請專利範圍第16項所述身份合法性驗證的裝置,其中所述第一驗證單元包括第一解析子單元以及判斷子單元;所述第一解析子單元,用於根據所述版本位元生成規則的逆向規則對所述版本位元字元進行解析,獲得版本號;所述判斷子單元,用於判斷所述第一解析子單元解析出的版本號與伺服器使用的校驗位元生成規則的版本號是否相同,得出判斷結果;所述第一驗證單元還用於當所述判斷結果為相同時,指示 所述第二驗證單元進行校驗位元字元的驗證;以及所述第一驗證單元還用於當所述判斷結果為不同時,確定所述存取ID為非法存取ID。
  18. 如申請專利範圍第17項所述身份合法性驗證的裝置,其中所述第二驗證單元更包括:第二解析子單元,用於根據所述校驗位元生成規則分別解析出至少一個校驗位元字元;比對子單元,用於將所述第二解析子單元解析出的校驗位元字元分別與生成所述存取ID時生成的至少一個校驗位元字元對應進行比對;所述第二驗證單元還用於當所有校驗位元均比對相同時,確定所述存取ID為合法存取ID;以及所述第二驗證單元還用於當有至少一位元校驗位元比對不同時,確定所述存取ID為非法存取ID。
  19. 如申請專利範圍第18項所述身份合法性驗證的裝置,其中所述生成單元還用於在所述發送單元將所述存取ID發送給所述協力廠商的之後,當所述校驗位元生成規則被協力廠商破解時,使用新的校驗位元生成規則重新生成存取ID,其中在重新生成的存取ID中,新的版本位元字元用於標識新的校驗位元生成規則的版本號;所述發送單元還用於將所述生成單元重新生成的存取ID發送給所述協力廠商。
  20. 如申請專利範圍第12至19項中任一項所述身份合法性驗 證的裝置,其中所述裝置更包括第三驗證單元;所述第三驗證單元,用於當所述第二驗證單元驗證所述存取ID為合法存取ID時,對所述接收單元接收的所述API呼叫請求進行重放攻擊驗證。
TW103124948A 2013-07-24 2014-07-21 身份合法性驗證的方法、裝置及伺服器 TWI503690B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310313918.7A CN104348614B (zh) 2013-07-24 2013-07-24 身份合法性验证的方法、装置及服务器

Publications (2)

Publication Number Publication Date
TW201504837A TW201504837A (zh) 2015-02-01
TWI503690B true TWI503690B (zh) 2015-10-11

Family

ID=52392709

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103124948A TWI503690B (zh) 2013-07-24 2014-07-21 身份合法性驗證的方法、裝置及伺服器

Country Status (4)

Country Link
US (1) US9444806B2 (zh)
CN (1) CN104348614B (zh)
TW (1) TWI503690B (zh)
WO (1) WO2015010568A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9807104B1 (en) * 2016-04-29 2017-10-31 STEALTHbits Technologies, Inc. Systems and methods for detecting and blocking malicious network activity
CN108809896A (zh) * 2017-04-28 2018-11-13 阿里巴巴集团控股有限公司 一种信息校验方法、装置和电子设备
CN107562813A (zh) * 2017-08-11 2018-01-09 环球智达科技(北京)有限公司 业务数据识别码生成系统
CN107528694A (zh) * 2017-08-11 2017-12-29 环球智达科技(北京)有限公司 业务数据识别码生成方法
CN107453878A (zh) * 2017-08-11 2017-12-08 四川长虹电器股份有限公司 一种支持rest api防篡改防重放的方法
CN107918739B (zh) * 2017-12-29 2020-05-12 咪咕文化科技有限公司 一种数据的保护方法、装置及存储介质
CN109344642B (zh) * 2018-08-31 2024-03-01 平安科技(深圳)有限公司 接口规则校验方法、装置、计算机设备及存储介质
CN109787954B (zh) * 2018-12-12 2021-08-10 四川商通实业有限公司 一种php接口安全过滤方法及系统
CN110034926B (zh) * 2019-03-08 2021-11-05 平安科技(深圳)有限公司 物联网动态密码的生成及验证方法、系统和计算机设备
US11477190B2 (en) * 2019-05-01 2022-10-18 Salesforce, Inc. Dynamic user ID
CN110389765B (zh) * 2019-07-24 2023-06-09 深圳市盟天科技有限公司 一种参数校验方法和参数校验系统
CN111200599A (zh) * 2019-12-28 2020-05-26 浪潮电子信息产业股份有限公司 一种访问认证方法、装置、设备及可读存储介质
CN111654476B (zh) * 2020-05-20 2022-07-29 中国工商银行股份有限公司 一种用户授权访问处理方法及装置
CN113724437B (zh) * 2021-08-30 2022-08-19 四川虹美智能科技有限公司 面向无人售卖柜的无人值守告警方法及系统
CN113922970B (zh) * 2021-10-29 2024-08-13 许昌许继软件技术有限公司 一种用于微服务的特征认证标识系统和方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050094806A1 (en) * 2003-11-03 2005-05-05 Microsoft Corporation Use of isogenies for design of cryptosystems
TWI242704B (en) * 2001-06-27 2005-11-01 Microsoft Corp Secure video card in computing device having digital rights management (DRM) system
US20080014937A1 (en) * 2006-07-14 2008-01-17 Rajiv Laroia Status validation for terminals in a wireless communication system
TWI310649B (en) * 2002-04-29 2009-06-01 Microsoft Corp Peer-to-peer name resolution protocol (pnrp) security infrastructure and method
US20100332841A1 (en) * 2009-06-24 2010-12-30 Vierfire Software Ltd. Authentication Method and System
TW201145878A (en) * 2010-02-26 2011-12-16 Panasonic Corp Transmission method, reception method, transmission apparatus, and reception apparatus
TW201203983A (en) * 2010-03-18 2012-01-16 Qualcomm Inc Methods of resolving PDCCH confusion in LTE

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020159588A1 (en) * 2001-04-27 2002-10-31 Kauffman Jason R. Cryptography with unconditional security for the internet, commercial intranets, and data storage
JP2005078139A (ja) * 2003-08-28 2005-03-24 Toshiba Corp 情報処理装置、その制御方法、プログラム並びに電子メールシステム
US20050129228A1 (en) * 2003-12-12 2005-06-16 Lagarde Victor J. Modular computerized encryption scheme
US9137012B2 (en) * 2006-02-03 2015-09-15 Emc Corporation Wireless authentication methods and apparatus
CN101087208B (zh) * 2007-06-27 2010-08-11 华为技术有限公司 配置用户接入网配置数据的方法、功能实体及系统
CN101552676B (zh) * 2009-05-06 2012-12-05 阿里巴巴集团控股有限公司 插件模块验证宿主模块合法性的方法、系统及设备
CN102255726A (zh) * 2011-06-05 2011-11-23 田小平 用于执行对称密钥数字签名的装置和方法
US8838982B2 (en) * 2011-09-21 2014-09-16 Visa International Service Association Systems and methods to secure user identification
US8973091B2 (en) * 2011-10-03 2015-03-03 Imprivata, Inc. Secure authentication using mobile device
CN103049385B (zh) * 2012-12-29 2015-09-09 百度在线网络技术(北京)有限公司 一种云环境下的php代码调试方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI242704B (en) * 2001-06-27 2005-11-01 Microsoft Corp Secure video card in computing device having digital rights management (DRM) system
TWI310649B (en) * 2002-04-29 2009-06-01 Microsoft Corp Peer-to-peer name resolution protocol (pnrp) security infrastructure and method
US20050094806A1 (en) * 2003-11-03 2005-05-05 Microsoft Corporation Use of isogenies for design of cryptosystems
US20080014937A1 (en) * 2006-07-14 2008-01-17 Rajiv Laroia Status validation for terminals in a wireless communication system
US20100332841A1 (en) * 2009-06-24 2010-12-30 Vierfire Software Ltd. Authentication Method and System
TW201145878A (en) * 2010-02-26 2011-12-16 Panasonic Corp Transmission method, reception method, transmission apparatus, and reception apparatus
TW201203983A (en) * 2010-03-18 2012-01-16 Qualcomm Inc Methods of resolving PDCCH confusion in LTE

Also Published As

Publication number Publication date
US20150163216A1 (en) 2015-06-11
TW201504837A (zh) 2015-02-01
CN104348614B (zh) 2019-02-01
CN104348614A (zh) 2015-02-11
WO2015010568A1 (en) 2015-01-29
US9444806B2 (en) 2016-09-13

Similar Documents

Publication Publication Date Title
TWI503690B (zh) 身份合法性驗證的方法、裝置及伺服器
CN110086822B (zh) 面向微服务架构的统一身份认证策略的实现方法及系统
JP6574168B2 (ja) 端末識別方法、ならびにマシン識別コードを登録する方法、システム及び装置
WO2017076193A1 (zh) 一种处理客户端请求的方法和装置
CN102378170B (zh) 一种鉴权及业务调用方法、装置和系统
CN112671720B (zh) 一种云平台资源访问控制的令牌构造方法、装置及设备
US20120054848A1 (en) Securely Accessing An Advertised Service
CN104869102B (zh) 基于xAuth协议的授权方法、装置和系统
CN107426235B (zh) 基于设备指纹的权限认证方法、装置及系统
CN103581108A (zh) 一种登录验证方法、客户端、服务器及系统
CN110213263B (zh) 基于联盟区块链的身份验证方法、设备及存储介质
CN106549957B (zh) 一种终端应用正版的认证方法及系统
CN109861968A (zh) 资源访问控制方法、装置、计算机设备及存储介质
CN112000951A (zh) 一种访问方法、装置、系统、电子设备及存储介质
WO2021137769A1 (en) Method and apparatus for sending and verifying request, and device thereof
US11784993B2 (en) Cross site request forgery (CSRF) protection for web browsers
CN110336807A (zh) 一种基于Web服务的身份认证方法、设备以及存储介质
CN103384249B (zh) 网络接入认证方法、装置及系统、认证服务器
CN111371811A (zh) 一种资源调用方法、资源调用装置、客户端及业务服务器
CN109639695A (zh) 基于互信架构的动态身份认证方法、电子设备及存储介质
CN114520724A (zh) 一种开放api接口的签名验证方法
CN112865981A (zh) 一种令牌获取、验证方法及装置
CN109218773B (zh) 一种视频流地址的鉴权方法及装置
CN112468446A (zh) 一种保护用户隐私的移动运行环境安全检测系统
CN113806798B (zh) 一种用户端验证方法、系统、设备以及介质