[發明專利]一種令牌生成方法、系統及裝置在審
| 申請號: | 202111364570.5 | 申請日: | 2021-11-17 |
| 公開(公告)號: | CN114139177A | 公開(公告)日: | 2022-03-04 |
| 發明(設計)人: | 劉碩 | 申請(專利權)人: | 鄭州云海信息技術有限公司 |
| 主分類號: | G06F21/60 | 分類號: | G06F21/60;G06F21/64 |
| 代理公司: | 北京集佳知識產權代理有限公司 11227 | 代理人: | 王曉芬 |
| 地址: | 450018 河南省鄭州市*** | 國省代碼: | 河南;41 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 令牌 生成 方法 系統 裝置 | ||
本發明公開了一種令牌生成方法、系統及裝置,基于系統當前的項目名稱和待下發令牌的用戶名稱構造SM4算法的密鑰,以基于SM4算法及其密鑰加密待加密數據,得到第一數據;將第一數據按照預設數據組合策略進行數據組合,得到第二數據;利用SM3算法計算第二數據的第一特征值,并將第二數據及其第一特征值進行組合,得到第三數據;將第三數據按照預設編碼算法進行編碼,得到編碼數據,并將編碼數據作為令牌下發至對應用戶。可見,本申請基于系統當前的項目名稱和待下發令牌的用戶名稱構造預設SM4算法的密鑰,即將密鑰與系統中的用戶和項目綁定,降低了密鑰泄露的影響范圍,提升了安全性;而且,國密SM4算法和SM3算法的安全性較高。
技術領域
本發明涉及云計算管理平臺領域,特別是涉及一種令牌生成方法、系統及裝置。
背景技術
在openstack(一個開源的云計算管理平臺項目)系統中,使用令牌(token)作為用戶身份認證的標識。當用戶首次登陸openstack系統時,需要注冊用戶名和密碼登陸,此時openstack系統會生成一個令牌給用戶,以后用戶只需帶上這個令牌向openstack系統請求數據即可,無需再帶上用戶名和密碼。
目前,openstack系統生成令牌的方法是:將待加密數據按照AES(AdvancedEncryption Standard,高級加密標準)-CBC(Cipher Block Chaining,密碼分組鏈接模式)算法加密、SHA256(Secure Hash Algorithm,安全散列算法)-HMAC(Hash-based MessageAuthentication Code,密鑰相關的哈希運算消息認證碼)算法簽名,以將得到的密文作為令牌下發給用戶(加密的目的是不想讓外界獲知令牌下發規律)。但是,不同用戶或同一用戶在不同系統項目下對應的令牌密鑰均相同,這樣帶來的問題是密鑰一旦泄露,則所有用戶的令牌均會被破解,風險性較高。
因此,如何提供一種解決上述技術問題的方案是本領域的技術人員目前需要解決的問題。
發明內容
本發明的目的是提供一種令牌生成方法、系統及裝置,基于系統當前的項目名稱和待下發令牌的用戶名稱構造預設SM4算法的密鑰,即將密鑰與系統中的用戶和項目綁定,降低了密鑰泄露的影響范圍,提升了安全性;而且,相比于國際通用算法AES-CBC算法和SHA256-HMAC算法,國密SM4算法和SM3算法的安全性更高。
為解決上述技術問題,本發明提供了一種令牌生成方法,包括:
基于系統當前的項目名稱和待下發令牌的用戶名稱構造預設SM4算法的密鑰,以基于所述SM4算法及其密鑰加密待加密數據,得到第一數據;
將所述第一數據按照預設數據組合策略進行數據組合,得到第二數據;
利用預設SM3算法計算所述第二數據的第一特征值,并將所述第二數據及其第一特征值進行組合,得到第三數據;
將所述第三數據按照預設編碼算法進行編碼,得到編碼數據,并將所述編碼數據作為令牌下發至對應用戶。
可選地,在基于所述SM4算法及其密鑰加密待加密數據之前,所述令牌生成方法還包括:
根據預設填充關系式n-(x%n)確定在所述待加密數據后面預填充的字節數目;其中,x為所述待加密數據的原字節數目;n為預設基本填充字節數目;%為取模運算;
按照所述字節數目在所述待加密數據后面填充字節,以基于所述SM4算法及其密鑰加密填充字節的所述待加密數據。
可選地,基于所述SM4算法及其密鑰加密待加密數據,得到第一數據,包括:
獲取系統當前的第一時間戳,并構造預設長度的隨機向量;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于鄭州云海信息技術有限公司,未經鄭州云海信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111364570.5/2.html,轉載請聲明來源鉆瓜專利網。





