




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
GB/TXXXXX—XXXXII信息安全技術(shù)動態(tài)口令密碼應(yīng)用技術(shù)規(guī)范范圍本標(biāo)準(zhǔn)規(guī)定了動態(tài)口令系統(tǒng),動態(tài)口令生成方式、鑒別系統(tǒng)和密鑰管理系統(tǒng)等的相關(guān)內(nèi)容,并給出了硬件令牌產(chǎn)品需遵循的產(chǎn)品特性。本標(biāo)準(zhǔn)適用于動態(tài)口令相關(guān)產(chǎn)品的研制、生產(chǎn),也可用于指導(dǎo)相關(guān)產(chǎn)品的檢測。規(guī)范性引用文件下列文件對于本標(biāo)準(zhǔn)的應(yīng)用是必不可少的。凡是注日期的引用文件,僅所注日期的版本適用于本標(biāo)準(zhǔn),凡是不注日期的引用文件,其最新版本(包括所有的修改單)適用于本標(biāo)準(zhǔn)。GB/T2423.1-2008電工電子產(chǎn)品環(huán)境試驗(yàn)第2部分:試驗(yàn)方法試驗(yàn)A:低溫GB/T2423.2-2008電工電子產(chǎn)品環(huán)境試驗(yàn)第2部分:試驗(yàn)方法試驗(yàn)B:高溫GB/T2423.8-1995電工電子產(chǎn)品環(huán)境試驗(yàn)第2部分:試驗(yàn)方法試驗(yàn)Ed:自由跌落GB/T2423.9-2001電工電子產(chǎn)品環(huán)境試驗(yàn)第2部分:試驗(yàn)方法試驗(yàn)Cb設(shè)備用恒定濕熱GB/T2423.10-2008電工電子產(chǎn)品環(huán)境試驗(yàn)第2部分:試驗(yàn)方法試驗(yàn)Fc:振動(正弦)GB/T2423.21-2008電工電子產(chǎn)品基本環(huán)境試驗(yàn)規(guī)程:試驗(yàn)M:低氣壓試驗(yàn)方法GB/T2423.22-2012電工電子產(chǎn)品環(huán)境試驗(yàn)第2部分:試驗(yàn)方法N:溫度變化GB/T2423.53-2005電工電子產(chǎn)品環(huán)境試驗(yàn)第2部分:試驗(yàn)方法試驗(yàn)Xb由手的摩擦造成標(biāo)記和印刷文字的磨損GB/T4208-2017外殼防護(hù)等級(IP代碼)GB/T17626.2-2006電磁兼容試驗(yàn)和測量技術(shù)靜電放電抗擾度試驗(yàn)GB/T18336.1-2015信息技術(shù)安全技術(shù)信息技術(shù)安全性評估準(zhǔn)則第1部分:簡介和一般模型GB/T18336.2-2015信息技術(shù)安全技術(shù)信息技術(shù)安全性評估準(zhǔn)則第2部分:安全功能要求GB/T18336.3-2015信息技術(shù)安全技術(shù)信息技術(shù)安全性評估準(zhǔn)則第3部分:安全保證要求GB/T21079.1-2007銀行業(yè)務(wù)安全加密設(shè)備(零售)第1部分概念、要求和評估方法GB/T32905-2016信息安全技術(shù)SM3密碼雜湊算法GB/T32907-2016信息安全技術(shù)SM4分組密碼算法GB/T32915-2016信息安全技術(shù)二元序列隨機(jī)性檢測規(guī)范GM/TXXXX-2017移動智能終端密碼安全技術(shù)要求術(shù)語和定義下列術(shù)語和定義適用于本文件。動態(tài)令牌one-time-passwordtoken生成并顯示動態(tài)口令的載體,包括但不限于硬件產(chǎn)品。動態(tài)口令one-time-password,dynamicpassword由種子密鑰與其它數(shù)據(jù),通過特定算法,運(yùn)算生成的一次性口令。靜態(tài)口令staticpassword用戶設(shè)置的,除非用戶主動修改,否則不會發(fā)生變化的口令。挑戰(zhàn)碼challengecode即挑戰(zhàn)因子,可參與到動態(tài)口令生成過程中的一種數(shù)據(jù)。UTC時間UniversalTimeCoordinated由國際無線電咨詢委員會規(guī)定和推薦,并由國際時間局(BIH)負(fù)責(zé)保持的以秒為基礎(chǔ)的時間標(biāo)度,是距1970年1月1日00:00時(格林尼治標(biāo)準(zhǔn)時間)的秒數(shù)。種子密鑰seedkey即令牌種子密鑰,計算動態(tài)口令的密鑰。大端big-endian數(shù)據(jù)在內(nèi)存中的一種表示格式,規(guī)定左邊為高有效位,右邊為低有效位。數(shù)的高階字節(jié)放在存儲器的低地址,數(shù)的低階字節(jié)放在存儲器的高地址。鑒別系統(tǒng)authenticationsystem能夠?yàn)閼?yīng)用系統(tǒng)提供動態(tài)口令身份鑒別服務(wù)的系統(tǒng)。未激活notactivated本狀態(tài)為出廠時狀態(tài),成功激活后進(jìn)入就緒狀態(tài)。就緒beready令牌為正常工作狀態(tài)。鎖定belocked令牌因連續(xù)錯誤、重放攻擊等原因被鎖定后處于鎖定狀態(tài)。掛起hungup令牌被人為掛起后,處于掛起狀態(tài)。作廢invalidate令牌執(zhí)行作廢操作后,進(jìn)入作廢狀態(tài)。自動解鎖automaticallyunlock令牌被鎖定以后,經(jīng)過一定時間,系統(tǒng)會將令牌的鎖定狀態(tài)解除。服務(wù)報表servicelist系統(tǒng)提供的,對于令牌和系統(tǒng)不同時間段對應(yīng)的狀態(tài)和結(jié)果的統(tǒng)計報表。大窗口largewindow用于令牌時間與系統(tǒng)時間同步的窗口,窗口大小不應(yīng)超過±10分鐘。中窗口middlewindow用于令牌時間與系統(tǒng)時間同步的窗口,窗口大小不應(yīng)超過±5分鐘。小窗口smallwindow用于令牌時間與系統(tǒng)時間同步的窗口,窗口大小不應(yīng)超過±2分鐘。主密鑰mainkey系統(tǒng)的根密鑰,用于生成種子密鑰,種子密鑰加密密鑰,廠商生產(chǎn)主密鑰等。種子密鑰加密密鑰encryptionkeyforseedkey用于對種子密鑰進(jìn)行加密的密鑰。廠商生產(chǎn)主密鑰mainkeyformanufacturerproduction生成令牌生產(chǎn)時所需的種子密鑰加密密鑰。廠商代碼manufacturercode用于標(biāo)識廠商的代碼,可以是數(shù)字、英文字母、數(shù)字與英文字母的混合。內(nèi)部挑戰(zhàn)鑒別internalchallengeauthentication一種由用戶主動解除令牌異常狀態(tài)時采用的挑戰(zhàn)鑒別方式。符號和縮略語下列符號和縮略語適用于本文件。bitN指一個字節(jié)當(dāng)中的第N+1個比特位(從低位計起)C參與運(yùn)算的事件因子F()算法函數(shù)ID雜湊及分組算法的輸入信息IP44防護(hù)等級第一特性4(防塵),防護(hù)等級第二特性4(防水)。K長度不少于128比特的運(yùn)算密鑰Km主密鑰Kt傳輸密鑰Kp廠商生產(chǎn)主密鑰Ks種子密鑰加密密鑰N令牌或其它終端顯示口令的位數(shù)OD輸出結(jié)果PIN指用于使令牌工作并顯示動態(tài)口令的一種口令,是一個至少6位長度的十進(jìn)制數(shù)。Q鑒別雙方通過協(xié)商輸入的挑戰(zhàn)因子S算法函數(shù)輸出結(jié)果T參與運(yùn)算的時間因子T0是以UTC時間為標(biāo)準(zhǔn)的一個長度為8字節(jié)的整數(shù)Tc以秒為單位的口令變化周期Truncate()截位函數(shù)^冪運(yùn)算符,即2^n代表2的n次方%求余運(yùn)算,即5%3=2<<循環(huán)左移符號|連接符,將兩組數(shù)據(jù)根據(jù)左右順序拼接田算術(shù)加符號,且不進(jìn)位。動態(tài)口令系統(tǒng)框架總體框架動態(tài)口令系統(tǒng)是一種包含動態(tài)令牌和動態(tài)令牌鑒別系統(tǒng),可以為應(yīng)用系統(tǒng)提供動態(tài)口令鑒別服務(wù)。動態(tài)令牌鑒別系統(tǒng)由鑒別系統(tǒng)和密鑰管理系統(tǒng)組成。動態(tài)令牌負(fù)責(zé)生成動態(tài)口令,鑒別系統(tǒng)負(fù)責(zé)驗(yàn)證動態(tài)口令的正確性,密鑰管理系統(tǒng)負(fù)責(zé)動態(tài)令牌的密鑰管理,應(yīng)用系統(tǒng)負(fù)責(zé)將動態(tài)口令按照指定的協(xié)議(報文)發(fā)送至鑒別系統(tǒng)進(jìn)行鑒別。動態(tài)口令系統(tǒng)架構(gòu)圖如圖1所示:系統(tǒng)架構(gòu)系統(tǒng)組成動態(tài)令牌生成并顯示動態(tài)口令的載體,包括但不限于硬件產(chǎn)品。動態(tài)令牌產(chǎn)生動態(tài)口令,做為用戶身份鑒別依據(jù)。在移動網(wǎng)絡(luò)環(huán)境使用的軟件令牌產(chǎn)品,動態(tài)口令生成方式、鑒別系統(tǒng)和密鑰管理系統(tǒng)應(yīng)符合本標(biāo)準(zhǔn),軟件令牌自身的安全參考GM/TXXXX-2017《移動智能終端密碼安全技術(shù)要求》。鑒別系統(tǒng)鑒別系統(tǒng)用于執(zhí)行動態(tài)口令鑒別和令牌同步,以及令牌相關(guān)狀態(tài)的管理及配置等功能的服務(wù)集合。鑒別系統(tǒng)通過鑒別通訊協(xié)議與應(yīng)用系統(tǒng)進(jìn)行通訊,或支持調(diào)用鑒別接口的方式,用以完成動態(tài)口令的鑒別、同步等功能。密鑰管理系統(tǒng)密鑰管理系統(tǒng)用于動態(tài)令牌種子密鑰的生成、傳輸和存儲的安全管理系統(tǒng),包括系統(tǒng)登錄鑒別模塊、用戶管理模塊、保護(hù)密鑰生成模塊、種子密鑰生成模塊、令牌序號生成模塊、時間同步模塊(可選)、令牌生產(chǎn)配置模塊、密碼機(jī)接口模塊和動態(tài)令牌讀寫接口等模塊。應(yīng)用系統(tǒng)應(yīng)用系統(tǒng)是指集成了將動態(tài)口令按照鑒別通訊協(xié)議(或鑒別接口)與鑒別系統(tǒng)交互完成動態(tài)口令鑒別的應(yīng)用程序集合,應(yīng)用系統(tǒng)可以是軟件系統(tǒng),也可以是硬件設(shè)備,還可以是軟件和硬件相結(jié)合的形式。應(yīng)用系統(tǒng)不是本標(biāo)準(zhǔn)的重點(diǎn)描述對象。鑒別接口鑒別接口是鑒別系統(tǒng)提供的用于連接應(yīng)用系統(tǒng)與鑒別服務(wù)器的接口集合。開發(fā)語言包括但不限于C/C++、Java、php、ASP、ASP.NET、C#等。應(yīng)用系統(tǒng)通過調(diào)用接口,可以完成動態(tài)口令鑒別、同步等功能。鑒別通訊協(xié)議鑒別通訊協(xié)議是鑒別服務(wù)通過標(biāo)準(zhǔn)的通訊協(xié)議和應(yīng)用系統(tǒng)進(jìn)行通訊的依據(jù)。應(yīng)用系統(tǒng)通過發(fā)送報文的形式完成動態(tài)口令的鑒別、同步等功能。鑒別原理簡述動態(tài)口令的基本鑒別原理,是通過用戶端與鑒別服務(wù)提供端,以相同的運(yùn)算因子,采用相同的運(yùn)算方法,生成相同的口令,并進(jìn)行比對,來完成整個鑒別過程。通常,口令的比對是由鑒別服務(wù)提供端完成。具體如圖2所示:圖2基本鑒別原理圖動態(tài)口令生成方式口令生成方式計算時間因子T=T0/TcT是參與運(yùn)算的時間因子,是一個8字節(jié)整數(shù)。T0是以UTC時間或用戶選擇的時間標(biāo)準(zhǔn)為計量標(biāo)準(zhǔn)的一個8字節(jié)整數(shù)。Tc是以秒為單位的口令變化周期,最大長度為60秒;組裝輸入序列ID={T|C|Q}ID是雜湊或分組算法的輸入序列。T是6.1.1的計算結(jié)果。C是參與運(yùn)算的事件因子,是一個4字節(jié)整數(shù)。Q是鑒別雙方通過協(xié)商輸入的挑戰(zhàn)因子或其它類型需要參與運(yùn)算的因子,使用ASCII碼表示,最小長度為4字節(jié)。ID最小長度為128比特,至少需要包含T、C的其中一個參數(shù),Q為可選參數(shù),并按照T|C|Q的順序進(jìn)行數(shù)據(jù)組裝。未包含的參數(shù)位置,由下一個參數(shù)進(jìn)行補(bǔ)充。如ID由T、Q組成,則數(shù)據(jù)組裝方式為T|Q。如ID由C、Q組成,則數(shù)據(jù)組裝方式為C|Q。如組成ID的數(shù)據(jù)不足128比特,ID的數(shù)據(jù)末端填零至128比特。計算一次性中間值S=F(K,ID)K是長度不小于128比特的種子密鑰,只有鑒別雙方持有;F()是算法函數(shù),使用分組算法SM4或者雜湊算法SM3,其中分組算法的輸出長度為128比特,雜湊算法的輸出(即雜湊值)長度為256比特。截位計算OD=Truncate(S)輸入為6.1.3的輸出。Truncate()是截位函數(shù),OD是其輸出結(jié)果,長度為32比特。選用雜湊算法作為F運(yùn)算時,定義S1,S2,S3,S4,S5,S6,S7,S8為8個4字節(jié)整數(shù),通過如下方法賦值:S1=S[0]<<24|S[1]<<16|S[2]<<8|S[3]S2=S[4]<<24|S[5]<<16|S[6]<<8|S[7]S3=S[8]<<24|S[9]<<16|S[10]<<8|S[11]S4=S[12]<<24|S[13]<<16|S[14]<<8|S[15]S5=S[16]<<24|S[17]<<16|S[18]<<8|S[19]S6=S[20]<<24|S[21]<<16|S[22]<<8|S[23]S7=S[24]<<24|S[25]<<16|S[26]<<8|S[27]S8=S[28]<<24|S[29]<<16|S[30]<<8|S[31]OD=(S1+S2+S3+S4+S5+S6+S7+S8)MOD2^32使用分組算法作為F運(yùn)算時,定義S1,S2,S3,S4為4個4字節(jié)整數(shù),通過如下方法賦值:S1=S[0]<<24|S[1]<<16|S[2]<<8|S[3]S2=S[4]<<24|S[5]<<16|S[6]<<8|S[7]S3=S[8]<<24|S[9]<<16||S[10]<<8|S[11]S4=S[12]<<24|S[13]<<16|S[14]<<8|S[15]OD=(S1+S2+S3+S4)MOD2^32計算動態(tài)口令P=OD%(10^N)N是令牌或其它終端顯示口令的位數(shù),N不小于6。P是最終顯示的動態(tài)口令。算法使用說明使用要求——分組密碼算法應(yīng)采用SM4算法,滿足GB/T32907-2016的要求。分組長度為128比特,密鑰長度為128比特,運(yùn)算方式選用ECB加密的工作模式,加密結(jié)果長度為128比特。——密碼雜湊算法應(yīng)采用SM3算法,滿足GB/T32905-2016的要求。——本標(biāo)準(zhǔn)涉及隨機(jī)數(shù)生成的算法,應(yīng)滿足GB/T32915-2016的要求。雜湊算法使用說明在S=F(K,ID)環(huán)節(jié),當(dāng)使用SM3算法時,K|ID為輸入?yún)?shù)分組算法使用說明在S=F(K,ID)環(huán)節(jié),當(dāng)使用SM4算法時,K為運(yùn)算密鑰,ID為輸入?yún)?shù),K或ID大于128比特時,運(yùn)算過程如下:K大于128比特時,在K末端填零至128比特的整數(shù)倍長度。再將K以128比特長度進(jìn)行分組,高位在前,分別為K1、K2、K3……Kn。ID大于128比特時,在ID末端填零至128比特的整數(shù)倍長度。再將ID以128比特長度進(jìn)行分組,高位在前,分別為ID1、ID2、ID3……IDm。運(yùn)算過程如圖3所示:圖3SM4運(yùn)算過程圖ID1和K1作為第一個分組運(yùn)算的輸入,通過SM4運(yùn)算生成S1。將S1分別與ID2和K2進(jìn)行算術(shù)加運(yùn)算(高位溢出舍去),獲得ID2'和K2',用于第二個分組的輸入,通過SM4運(yùn)算生成S2。之后的運(yùn)算以此類推。如Kn和IDm中,n>m,則m次運(yùn)算以后,使用IDm與Si(m-1<i<n)算術(shù)加運(yùn)算(高位溢出舍去)生成IDi+1',參與后續(xù)運(yùn)算。如Kn和IDm中,n<m,則n次運(yùn)算以后,使用Kn與Si(n-1<i<m)算術(shù)加運(yùn)算(高位溢出舍去)生成Ki+1',參與后續(xù)運(yùn)算。如圖3中所示,S=Smax{m,n}。數(shù)據(jù)格式數(shù)據(jù)運(yùn)算與存儲,均采用大端(big-endian)格式??蓞⒁姼戒汥。鑒別系統(tǒng)鑒別系統(tǒng)說明鑒別系統(tǒng)構(gòu)成鑒別系統(tǒng)是為應(yīng)用系統(tǒng)提供動態(tài)令牌鑒別及管理的服務(wù)系統(tǒng),由兩個部分構(gòu)成:鑒別服務(wù)子系統(tǒng)、管理子系統(tǒng):鑒別服務(wù)子系統(tǒng)對應(yīng)用提供鑒別和管理服務(wù)。管理子系統(tǒng)對鑒別系統(tǒng)的運(yùn)行進(jìn)行管理。令牌的系統(tǒng)狀態(tài)令牌的系統(tǒng)狀態(tài)為鑒別系統(tǒng)內(nèi)保存的令牌工作狀態(tài),如表1所示:表1令牌工作狀態(tài)表狀態(tài)描述說明未激活令牌出廠時的狀態(tài),須激活后令牌才能進(jìn)入就緒狀態(tài)未激活令牌不能提供正常的口令鑒別就緒令牌正常工作狀態(tài)就緒狀態(tài)下令牌可用于口令鑒別鎖定令牌因連續(xù)錯誤、重放攻擊、人工方式等原因被鎖定后處于鎖定狀態(tài)鎖定狀態(tài)的令牌不能提供正常的口令鑒別掛起令牌被人為掛起后,處于掛起狀態(tài)掛起狀態(tài)的令牌不能提供正常的口令鑒別作廢令牌執(zhí)行作廢操作后,進(jìn)入作廢狀態(tài)作廢的令牌不能提供正常的口令鑒別令牌的系統(tǒng)數(shù)據(jù)令牌的系統(tǒng)數(shù)據(jù)應(yīng)包括:令牌序列號、密鑰數(shù)據(jù)、令牌狀態(tài)、上次使用時間、連續(xù)錯誤次數(shù)、令牌偏移量、其它配置參數(shù)等,其中:密鑰數(shù)據(jù)應(yīng)加密存放。其它系統(tǒng)數(shù)據(jù)應(yīng)采用校驗(yàn)機(jī)制保證完整性。令牌的同步鑒別系統(tǒng)應(yīng)提供對令牌的內(nèi)部計數(shù)器與系統(tǒng)的令牌計數(shù)器之間的同步處理。對于時間型令牌,使用雙向時間窗口;對于事件型令牌,使用單向事件窗口。時間型令牌根據(jù)不同的令牌同步需求,分別采用大窗口、中窗口、小窗口進(jìn)行同步。使用各種窗口時,要求如下(窗口大小的單位是鑒別周期):大窗口,窗口大小不應(yīng)超過±10分鐘。使用大窗口同步時,要求下一個連續(xù)的動態(tài)口令匹配,同時調(diào)整系統(tǒng)的令牌偏移量。大窗口要求使用受限的同步服務(wù),即進(jìn)一步身份鑒別或需要更高權(quán)限才能執(zhí)行大窗口的同步服務(wù)。大窗口可由鑒別系統(tǒng)的授權(quán)運(yùn)維人員使用,并應(yīng)與應(yīng)用系統(tǒng)的驗(yàn)證碼機(jī)制同時使用。中窗口,窗口大小不應(yīng)超過±5分鐘。使用中窗口同步時,要求下一個連續(xù)的動態(tài)口令匹配,同時調(diào)整系統(tǒng)的令牌偏移量。中窗口可由令牌用戶或鑒別系統(tǒng)的運(yùn)維人員使用,并應(yīng)與應(yīng)用系統(tǒng)的驗(yàn)證碼機(jī)制同時使用。小窗口,窗口大小不應(yīng)超過±2分鐘。使用小窗口同步時,鑒別系統(tǒng)通過動態(tài)口令鑒別,同時調(diào)整系統(tǒng)的令牌偏移量。小窗口可由鑒別系統(tǒng)自動調(diào)用,在令牌用戶使用動態(tài)口令進(jìn)行身份鑒別時使用。事件型令牌的大窗口、中窗口、小窗口的大小,可由用戶與廠商協(xié)商制定,但應(yīng)保證其鑒別的安全性和有效性。自動鎖定和自動解鎖令牌在使用過程中若連續(xù)多次驗(yàn)證錯誤超過最大次數(shù)后,鑒別系統(tǒng)會自動將該令牌狀態(tài)修改為“鎖定”。在超過設(shè)定的自動解鎖時間后,鑒別系統(tǒng)會自動解除該令牌的鎖定狀態(tài)。自動解鎖只能解除被自動鎖定的令牌。鑒別系統(tǒng)服務(wù)安全服務(wù)安全服務(wù)用于支持應(yīng)用系統(tǒng)對用戶身份和交易內(nèi)容進(jìn)行驗(yàn)證。動態(tài)口令鑒別對提交的動態(tài)口令進(jìn)行鑒別的服務(wù),鑒別方式包括:靜態(tài)口令+動態(tài)口令、動態(tài)口令。其中靜態(tài)口令為與該動態(tài)令牌綁定的靜態(tài)口令。挑戰(zhàn)應(yīng)答鑒別對提交的挑戰(zhàn)應(yīng)答碼進(jìn)行鑒別的服務(wù),鑒別方式包括:挑戰(zhàn)鑒別、內(nèi)部挑戰(zhàn)鑒別。挑戰(zhàn)鑒別是用戶采用向令牌輸入應(yīng)用服務(wù)提供的挑戰(zhàn)碼的方式,獲取相應(yīng)的動態(tài)口令,完成鑒別。內(nèi)部挑戰(zhàn)鑒別是用戶通過向令牌輸入PIN、靜態(tài)口令等用戶私有數(shù)據(jù),獲取相應(yīng)的動態(tài)口令,完成鑒別。產(chǎn)生挑戰(zhàn)碼根據(jù)應(yīng)用的請求產(chǎn)生挑戰(zhàn)碼,生成的挑戰(zhàn)碼格式包括:數(shù)字型、字符型、數(shù)字+字符型。其中數(shù)字為阿拉伯?dāng)?shù)字0-9,字符為英文字符或符號字符,區(qū)分大小寫。挑戰(zhàn)碼的最小長度和最大長度可由鑒別系統(tǒng)進(jìn)行設(shè)置。管理服務(wù)激活將未激活的令牌設(shè)為可用狀態(tài)。激活時,要求驗(yàn)證令牌的動態(tài)口令。激活時驗(yàn)證動態(tài)口令的窗口使用大窗口。令牌成功激活后,狀態(tài)設(shè)置為就緒。激活不成功,記錄激活錯誤次數(shù),但不鎖定令牌。鎖定/解鎖鎖定:將就緒狀態(tài)的令牌設(shè)置為鎖定狀態(tài)。令牌被鎖定后,應(yīng)通過解鎖服務(wù)回到就緒狀態(tài)。令牌被鎖定后,應(yīng)通過廢止服務(wù)設(shè)置為廢止?fàn)顟B(tài)。解鎖:將鎖定狀態(tài)的令牌解鎖,設(shè)置為就緒狀態(tài)。解鎖時,要求當(dāng)前的動態(tài)口令。若設(shè)置了靜態(tài)口令,要求驗(yàn)證靜態(tài)口令。若靜態(tài)口令的驗(yàn)證方式是內(nèi)部挑戰(zhàn)方式,使用內(nèi)部挑戰(zhàn)鑒別。若靜態(tài)口令的驗(yàn)證方式是靜動態(tài)混合方式,使用靜態(tài)口令+動態(tài)口令鑒別。掛起/解掛掛起:將動態(tài)令牌設(shè)置為掛起狀態(tài)。只有就緒或鎖定狀態(tài)的令牌應(yīng)被設(shè)置為掛起狀態(tài)。令牌被掛起后,應(yīng)通過廢止服務(wù)設(shè)置為廢止?fàn)顟B(tài)。解掛:解除令牌的掛起狀態(tài)。解掛成功后令牌的狀態(tài)設(shè)置為就緒狀態(tài)。要求驗(yàn)證當(dāng)前的動態(tài)口令。若設(shè)置了靜態(tài)口令,要求驗(yàn)證靜態(tài)口令。若靜態(tài)口令的驗(yàn)證方式是內(nèi)部挑戰(zhàn)方式,使用內(nèi)部挑戰(zhàn)鑒別。若靜態(tài)口令的驗(yàn)證方式是普通方式,使用靜態(tài)口令+動態(tài)口令鑒別。設(shè)置靜態(tài)口令設(shè)置動態(tài)令牌綁定的靜態(tài)口令。要求驗(yàn)證原有的靜態(tài)口令。若靜態(tài)口令的驗(yàn)證方式是內(nèi)部挑戰(zhàn)方式,使用內(nèi)部挑戰(zhàn)鑒別。若靜態(tài)口令的驗(yàn)證方式是靜動態(tài)混合方式,使用靜態(tài)口令+動態(tài)口令鑒別。遠(yuǎn)程解PIN鑒別系統(tǒng)可提供遠(yuǎn)程解PIN的功能(針對具有PIN保護(hù)的令牌)。根據(jù)應(yīng)用請求,鑒別系統(tǒng)生成當(dāng)前的遠(yuǎn)程解PIN密碼。解PIN的密碼為0-9的數(shù)字串,長度最少為6位。解PIN的操作最大嘗試次數(shù)不可超過5次,若超過最大嘗試次數(shù),應(yīng)至少等待1h才可繼續(xù)嘗試。超過最大嘗試次數(shù)的情況不可超過5次,否則令牌應(yīng)永久鎖定,不可再使用。同步與窗口要求鑒別系統(tǒng)提供令牌的同步服務(wù)。在大窗口、中窗口內(nèi)驗(yàn)證令牌的連續(xù)2個動態(tài)口令,若成功,調(diào)整令牌的系統(tǒng)偏移量。在小窗口內(nèi)驗(yàn)證令牌的當(dāng)前動態(tài)口令,若成功,調(diào)整令牌的系統(tǒng)偏移量。令牌的同步服務(wù)不改變令牌狀態(tài)。廢止令牌損壞或失效后,可使用鑒別系統(tǒng)的廢止服務(wù)將其廢止。廢止的令牌不可再用于用戶的身份鑒別和交易驗(yàn)證。系統(tǒng)僅保留該令牌的使用歷史記錄。令牌信息查詢鑒別系統(tǒng)應(yīng)提供令牌的信息查詢服務(wù),包括:令牌的當(dāng)前狀態(tài)、上次使用時間、當(dāng)前累計錯誤次數(shù)等。信息查詢服務(wù)不改變令牌狀態(tài)。鑒別系統(tǒng)管理功能權(quán)限管理鑒別系統(tǒng)應(yīng)對訪問人員采取權(quán)限控制,不同角色的訪問人員賦予不同的操作權(quán)限。參數(shù)配置鑒別系統(tǒng)應(yīng)能對鑒別和管理功能參數(shù)進(jìn)行配置。日志管理日志管理包括日志的寫入,查詢等功能,每條日志至少記錄事件的日期和時間、事件類型、主體身份、事件的結(jié)果(成功或失效)、日志級別。以下事件應(yīng)該記錄日志:動態(tài)口令鑒別,同步的結(jié)果。令牌系統(tǒng)狀態(tài)的變更。日志應(yīng)保留一段時間服務(wù)報表系統(tǒng)應(yīng)可提供對令牌和系統(tǒng)不同時間段對應(yīng)的狀態(tài)和結(jié)果的統(tǒng)計報表。種子導(dǎo)入鑒別系統(tǒng)應(yīng)能導(dǎo)入令牌的種子密鑰,并設(shè)置令牌的初始狀態(tài)。備份恢復(fù)鑒別系統(tǒng)應(yīng)能對敏感信息進(jìn)行備份和恢復(fù)。安全要求接入端控制鑒別服務(wù)器應(yīng)具有控制應(yīng)用服務(wù)器安全接入的方法和措施。通訊敏感字段加密為了防止網(wǎng)絡(luò)監(jiān)聽的形式對鑒別數(shù)據(jù)進(jìn)行竊聽和分析,應(yīng)在鑒別服務(wù)器和應(yīng)用服務(wù)器之間的通訊數(shù)據(jù)上做加密處理。種子密鑰存儲加密鑒別系統(tǒng)中的種子密鑰是加密存儲的,當(dāng)鑒別服務(wù)器接收到鑒別請求時,鑒別服務(wù)器應(yīng)首先解密種子密鑰加密密鑰密文,然后讀通過種子密鑰和時間因子等信息生成對應(yīng)的動態(tài)口令,并與接收到的動態(tài)口令進(jìn)行比較,從而完成動態(tài)口令身份鑒別。令牌安全性控制鎖定及解鎖可以按照用戶要求提供鎖定機(jī)制,當(dāng)一個令牌連續(xù)嘗試鑒別失敗次數(shù)累計達(dá)到上限,則對令牌進(jìn)行鎖定,同時提供人工解鎖和自動解鎖機(jī)制。防重復(fù)鑒別重復(fù)鑒別檢測,對于已經(jīng)通過鑒別的動態(tài)口令,鑒別服務(wù)器將予以作廢,只要已經(jīng)通過鑒別的動態(tài)口令,均不能再次通過鑒別。對于特定的使用場景,可允許正確的動態(tài)口令一定次數(shù)范圍內(nèi)的重復(fù)使用,但鑒別系統(tǒng)必須具備保護(hù)此環(huán)境下身份鑒別安全性和有效性的機(jī)制。日志安全日志信息應(yīng)具有校驗(yàn)碼,只要用戶對日志信息進(jìn)行修改,就可通過校驗(yàn)碼檢查出來。敏感數(shù)據(jù)應(yīng)具有備份恢復(fù)機(jī)制。鑒別系統(tǒng)針對日志訪問應(yīng)具備相應(yīng)的訪問控制策略,對日志的操作應(yīng)有對應(yīng)記錄,以保證日志的完整性和安全性。接入端控制鑒別服務(wù)器應(yīng)具有時間校準(zhǔn)的處理方法和措施。鑒別系統(tǒng)安全鑒別系統(tǒng)安全應(yīng)符合目標(biāo)應(yīng)用服務(wù)或系統(tǒng)的安全需求。密鑰管理系統(tǒng)概述密鑰管理主要是指對種子密鑰的生成、傳輸和存儲的安全管理,種子密鑰是否安全直接影響到整個鑒別系統(tǒng)是否安全。因此,保護(hù)種子密鑰的安全至關(guān)重要,具體可從以下幾個方面來保護(hù):種子密鑰生成的安全性;種子密鑰傳輸?shù)陌踩?;種子密鑰存儲的安全性;種子密鑰使用的安全性。系統(tǒng)架構(gòu)系統(tǒng)組成密鑰管理系統(tǒng)組成密鑰管理系統(tǒng)主要由系統(tǒng)登錄鑒別模塊、用戶管理模塊、保護(hù)密鑰生成模塊、種子密鑰生成模塊、令牌序號生成模塊、時間同步模塊(可選)、令牌生產(chǎn)配置模塊、硬件密碼設(shè)備接口模塊和動態(tài)令牌讀寫接口模塊組成,如圖4所示:圖4密鑰管理系統(tǒng)組成圖系統(tǒng)登錄鑒別模塊該模塊負(fù)責(zé)密鑰管理系統(tǒng)的用戶登錄鑒別。用戶管理模塊該模塊負(fù)責(zé)密鑰管理系統(tǒng)操作員的管理(新建、刪除和修改)和權(quán)限分配。保護(hù)密鑰生成模塊該模塊主要用于生成密鑰系統(tǒng)的根密鑰及傳輸密鑰。種子密鑰生成模塊該模塊的功能是調(diào)用硬件密碼設(shè)備接口生成動態(tài)令牌的種子密鑰,同時將生成的種子密鑰加密后寫入導(dǎo)出數(shù)據(jù)文件。令牌序號生成模塊該模塊的功能是根據(jù)序號生成規(guī)則生成動態(tài)令牌的唯一序列號。時間同步模塊(可選)該模塊的功能是同步密鑰系統(tǒng)的系統(tǒng)時間,以保證種子密鑰生成系統(tǒng)與動態(tài)口令鑒別系統(tǒng)的時間一致。令牌生產(chǎn)配置模塊該模塊的功能是將令牌序列號和種子密鑰通過動態(tài)令牌讀寫接口模塊寫入動態(tài)令牌。硬件密碼設(shè)備接口模塊該模塊的功能是完成軟件與硬件密碼設(shè)備之間的通訊。動態(tài)令牌讀寫接口模塊該模塊的功能是完成軟件和令牌之間的通訊。系統(tǒng)安全系統(tǒng)安全的主要目標(biāo)是保障網(wǎng)絡(luò)、主機(jī)系統(tǒng)、應(yīng)用系統(tǒng)及數(shù)據(jù)庫運(yùn)行的安全。應(yīng)采取防火墻、病毒防治、漏洞掃描、入侵監(jiān)測、數(shù)據(jù)備份、災(zāi)難恢復(fù)等安全防護(hù)措施。功能要求系統(tǒng)功能系統(tǒng)登錄鑒別系統(tǒng)登錄鑒別是指密鑰管理系統(tǒng)的使用必須在系統(tǒng)合法用戶登錄以后才能使用,且系統(tǒng)對用戶分權(quán)限管理,不同的用戶授權(quán)使用不同的功能。用戶登錄系統(tǒng)一段時間未操作后,系統(tǒng)需要能夠自動鎖定。用戶管理用戶管理的功能包用戶賬號和角色的分配、修改和刪除。系統(tǒng)角色包括:系統(tǒng)管理員、密鑰管理操作員、種子生成操作員和令牌生成操作員。密碼管理系統(tǒng)的用戶應(yīng)使用包括但不限于USB-KEY的安全措施作為登錄系統(tǒng)操作的憑證。保護(hù)密鑰管理保護(hù)密鑰管理是指密鑰系統(tǒng)主密鑰、傳輸密鑰的生成、備份和更新。密鑰的備用載體使用IC卡或者USB-KEY。令牌序列號管理令牌序列號管理功能包括:令牌序列號模板的定義、修改和刪除;令牌序列號的生成。種子密鑰生成種子密鑰管理功能包括:種子密鑰的生成和加密導(dǎo)出。令牌生產(chǎn)配置令牌生成配置功能主要是指將種子密鑰、序列號和時間(可選)寫入動態(tài)令牌時間同步時間同步功能是指生產(chǎn)時間同步令牌時,需預(yù)先校對生產(chǎn)電腦的時間。系統(tǒng)日志系統(tǒng)日志功能記錄密鑰管理系統(tǒng)的所有操作及系統(tǒng)運(yùn)行日志。系統(tǒng)兼容性系統(tǒng)算法兼容性:能夠支持多種分組密碼算法來對密鑰的管理。硬件密碼設(shè)備兼容性:系統(tǒng)能夠兼容多種密碼硬件設(shè)備,如密碼機(jī)、密碼卡、IC卡等。系統(tǒng)安全性設(shè)計密鑰管理的目的密鑰安全的主要目的是保障系統(tǒng)中所使用的密鑰,在其生成、存儲、使用、生命周期中的安全性。密鑰管理的原則本系統(tǒng)中密鑰安全設(shè)計遵循以下原則:硬件密碼設(shè)備采用國家密碼管理局批準(zhǔn)定型的產(chǎn)品。主密鑰的生成、存儲在硬件密碼設(shè)備中,并且無法導(dǎo)出。所有密鑰的運(yùn)算都在硬件密碼設(shè)備中完成。種子加密密鑰由主密鑰對令牌序號分散得到。嚴(yán)格的主密鑰管理機(jī)制和災(zāi)難恢復(fù)機(jī)制。密鑰管理的機(jī)制系統(tǒng)中密鑰簡介主密鑰Km:在令牌應(yīng)用服務(wù)商(如銀行、電信公司、企業(yè)等)的硬件密碼設(shè)備中生成與存儲,使用時不離開該硬件密碼設(shè)備。種子密鑰加密密鑰Ks:由主密鑰Km對序列號分散獲得,存儲在令牌應(yīng)用服務(wù)商的硬件密碼設(shè)備中。廠商生產(chǎn)主密鑰Kp:由主密鑰Km對廠商代碼分散獲得,存儲在令牌應(yīng)用服務(wù)商的硬件密碼設(shè)備中,可通過安全加密方式提供給廠商使用。廠商種子密鑰加密密鑰Kps:由廠商生產(chǎn)主密鑰Kp對序列號分散獲得,存儲在令牌應(yīng)用服務(wù)商和令牌廠商的硬件密碼設(shè)備中傳輸密鑰Kt:由令牌應(yīng)用服務(wù)商的硬件密碼設(shè)備隨機(jī)生成,可通過分段導(dǎo)出的方式,交付給令牌廠商使用。種子密鑰:由硬件密碼設(shè)備生成,生成時如采用了密碼算法,則應(yīng)采用國家密碼管理局批準(zhǔn)的密碼算法。具體密鑰管理流程與機(jī)制,如圖5所示:圖5密鑰管理機(jī)制主密鑰主密鑰Km是在令牌應(yīng)用服務(wù)商(如銀行、電信公司、企業(yè)等)的硬件密碼設(shè)備中生成與存儲,使用時不離開該硬件密碼設(shè)備。有嚴(yán)格的主密鑰管理機(jī)制和災(zāi)難恢復(fù)機(jī)制。廠商生產(chǎn)主密鑰廠商生產(chǎn)主密鑰Kp由主密鑰Km分散廠商代碼后得到,通過Kt加密提供給廠商使用,存儲在令牌應(yīng)用服務(wù)商的硬件密碼設(shè)備中。傳輸密鑰Kt用于加密保護(hù)廠商生產(chǎn)主密鑰Kp的交換,保障生產(chǎn)所用的硬件密碼設(shè)備和鑒別所用的硬件密碼設(shè)備之間廠商生產(chǎn)主密鑰Kp交換的安全。導(dǎo)出廠商生產(chǎn)主密鑰Kp時,傳輸密鑰Kt臨時隨機(jī)產(chǎn)生,輸出其多個成份及傳輸密鑰加密的廠商生產(chǎn)主密鑰Kp密文;導(dǎo)入廠商生產(chǎn)主密鑰Kp時,輸入傳輸密鑰的多個成份及廠商生產(chǎn)主密鑰Kp密文,內(nèi)部合成傳輸密鑰并解密出廠商生產(chǎn)主密鑰Kp保存。種子密鑰加密密鑰系統(tǒng)中有兩種類型的種子密鑰加密密鑰分別是鑒別硬件密碼設(shè)備中的種子密鑰加密密鑰Ks和生產(chǎn)所用的硬件密碼設(shè)備中的Kps。Ks在硬件密碼設(shè)備內(nèi)部由主密鑰Km對令牌序號分散后生成。Kps在硬件密碼設(shè)備內(nèi)部由廠商生產(chǎn)主密鑰Kp對令牌序號分散后生成。硬件密碼設(shè)備內(nèi)部使用SM4算法負(fù)責(zé)密鑰的分散過程,但分散出的種子密鑰加密密鑰不向硬件密碼設(shè)備以外導(dǎo)出。種子密鑰加密密鑰實(shí)際上為臨時密鑰,不在硬件密碼設(shè)備內(nèi)部保存。上述密鑰的相關(guān)管理操作受一定的權(quán)限控制,未經(jīng)授權(quán)無法操作硬件密碼設(shè)備。種子密鑰的安全種子密鑰的生成安全種子密鑰由國家密碼管理機(jī)構(gòu)批準(zhǔn)定型的隨機(jī)數(shù)發(fā)生器生成。種子密鑰的傳輸安全種子密鑰的傳輸安全主要是指種子密鑰在生成以后,寫入令牌和導(dǎo)入鑒別系統(tǒng)過程中種子密鑰的安全。種子密鑰寫入動態(tài)令牌過程的安全種子密鑰寫入動態(tài)令牌時,該過程必須在安全的生產(chǎn)環(huán)境中進(jìn)行,具有安全的管理機(jī)制,保證其寫入線路的安全性。種子密鑰導(dǎo)入鑒別系統(tǒng)過程的安全通過硬件傳輸方式導(dǎo)入到相關(guān)鑒別系統(tǒng)中。數(shù)據(jù)文件命名規(guī)則:otp_[廠商代碼]_yyyymmdd_[數(shù)量].data數(shù)據(jù)文件內(nèi)容格式如圖6所示:圖6數(shù)據(jù)文件的內(nèi)部格式種子密鑰的存儲安全種子密鑰的存儲安全是指種子密鑰在鑒別系統(tǒng)中的存儲安全。當(dāng)種子密鑰在鑒別服務(wù)器中以SM4算法加密后的密文方式存儲時,種子密鑰具體的加密流程如下:硬件密碼設(shè)備使用主密鑰K對令牌的序列號填充數(shù)據(jù)到16字節(jié)(填充數(shù)據(jù)為0x00),然后使用SM4算法進(jìn)行分散,得到種子密鑰加密密鑰K′。對剛剛生成種子密鑰進(jìn)行填充到16字節(jié)的整數(shù)倍,填充數(shù)據(jù)的規(guī)則遵循PKCS#5中定義的規(guī)范(即:對輸入數(shù)據(jù)MSG,在MSG的右端添加16-(||MSG||%16)個取值為16-(||MSG||%10)的PAD字符;也就是說,對MSG,最右端數(shù)據(jù)塊,缺n個字節(jié)則補(bǔ)充n個數(shù)值n,最少補(bǔ)1個0x01,最多補(bǔ)16個0x10(當(dāng)MSG長度為16字節(jié)的整數(shù)倍時)。使用種子密鑰加密密鑰K′對填充后的種子密鑰數(shù)據(jù)進(jìn)行SM4加密。加密完成后,將種子密鑰加密密鑰K′和明文種子密鑰數(shù)據(jù)銷毀。采用上述加密過程好處是每個令牌的種子密鑰加密密鑰發(fā)生重復(fù)情況為小概率事件。即便意外失竊一份加密后的令牌種子密鑰,并對其破譯,對系統(tǒng)內(nèi)其它令牌的種子密鑰安全性也不會造成影響。種子密鑰存儲時,應(yīng)至少包含以下幾個屬性,如表2所示:表2種子密鑰存儲格式令牌序列號密文種子密鑰索引校驗(yàn)值創(chuàng)建時間種子密鑰的使用安全種子密鑰的使用安全是指使用種子密鑰計算動態(tài)口令過程中的安全。種子密鑰的使用過程全部在硬件密碼設(shè)備內(nèi)完成,杜絕了種子密鑰在使用過程中泄密的可能。具體使用流程如下:將令牌序號和種子密鑰加密數(shù)據(jù)發(fā)送到硬件密碼設(shè)備中,硬件密碼設(shè)備對加密的種子密鑰根據(jù)令牌序號進(jìn)行“種子密鑰存儲”相同運(yùn)算,即使用令牌序號由主密鑰K分散得到種子密鑰解密密鑰Ks。對種子密鑰密文進(jìn)行SM4解密獲得種子密鑰的原文。使用明文種子密鑰和其它相應(yīng)的參數(shù)運(yùn)算得到動態(tài)口令,對客戶端發(fā)送的鑒別請求進(jìn)行甄別。解密完成后,將種子密鑰解密密鑰Ks和明文種子密鑰數(shù)據(jù)銷毀。硬件密碼設(shè)備接口說明硬件密碼設(shè)備應(yīng)用接口動態(tài)口令計算功能:使用種子密鑰密文,計算動態(tài)口令。鑒別系統(tǒng)密鑰管理接口種子密鑰的生成接口功能:隨機(jī)產(chǎn)生或運(yùn)算產(chǎn)生指定長度的種子密鑰,根據(jù)令牌序號產(chǎn)生種子密鑰加密密鑰,返回加密后的種子密鑰密文。向令牌導(dǎo)入種子密鑰功能:將種子明文寫入令牌中;合成主密鑰接口功能:根據(jù)密鑰成分合成主密鑰主密鑰的備份接口功能:將主密鑰備份成多個密文密鑰成分。主密鑰的恢復(fù)接口功能:將備份的密鑰成分,在硬件設(shè)備內(nèi)恢復(fù)成主密鑰。傳輸密鑰保護(hù)導(dǎo)出主密鑰接口功能:將主密鑰從硬件密碼設(shè)備中密文導(dǎo)出。傳輸密鑰保護(hù)導(dǎo)入主密鑰接口功能:將密文主密要導(dǎo)入硬件密碼設(shè)備。接口使用權(quán)限控制機(jī)制建立接口使用權(quán)限機(jī)制,以達(dá)到控制管理接口使用權(quán)限的目的。
(規(guī)范性附錄)硬件動態(tài)令牌特性令牌硬件要求高溫使用GB/T2423.2-2008中試驗(yàn)方法Bb,嚴(yán)酷等級選擇溫度:+50℃,持續(xù)時間:2h。低溫使用GB/T2423.1-2008中試驗(yàn)方法Ab,嚴(yán)酷等級選擇溫度:-10℃,持續(xù)時間:2h。高低溫沖擊使用GB/T2423.22-2002,嚴(yán)酷等級選擇高溫溫度:+50℃,低溫溫度:-10℃,暴露試驗(yàn)時間:10min,轉(zhuǎn)換時間:(2~3)min,循環(huán)數(shù):3個。濕度使用GB/T2423.9-2001,嚴(yán)酷等級選擇溫度:30℃±2℃,相對濕度93%±3%,試驗(yàn)時間:2h。工作海拔使用GB/T2423.21-1991,嚴(yán)酷等級選擇氣壓:55kPa,持續(xù)時間:2h。跌落使用GB/T2423.8-1995中方法一,嚴(yán)酷等級選擇跌落高度:1000mm。防塵防水遵守GB/T4208-2008中IP44的要求。標(biāo)記和印刷使用GB/T2423.53-2005,試驗(yàn)液體:人工合成汗液,力的大小:1N±0.2N,循環(huán)次數(shù):1000次。產(chǎn)品必須具備標(biāo)記文字為:“序列號”和“有效期”。振動使用GB/T2423.10-2008,嚴(yán)酷等級選擇頻率范圍:10Hz到300Hz,振動幅值:3.5mm,持續(xù)時間:60min。靜電放電不低于GB/T17626.2-2006中試驗(yàn)等級3的標(biāo)準(zhǔn),即滿足外殼端口接觸放電±6kV,空氣放電±8kV。試驗(yàn)過程中試驗(yàn)樣品是否處于工作狀態(tài)的判斷標(biāo)準(zhǔn)樣品帶電運(yùn)行,目視檢查,提供最少12個顯示相同動態(tài)口令的樣品,6個一組為參與試驗(yàn)樣品,6個一組為不參與試驗(yàn)樣品,參與試驗(yàn)的樣品顯示動態(tài)口令與不參與試驗(yàn)樣品一致即為合格。令牌安全特性種子密鑰安全種子密鑰為令牌重要安全要素,令牌必須保證產(chǎn)品內(nèi)的種子密鑰的完整性,且種子密鑰為單向?qū)肓钆疲ɑ蛟诹钆苾?nèi)生成),種子密鑰不能被導(dǎo)出產(chǎn)品外部。令牌必須擁有種子密鑰的保護(hù)功能。令牌種子密鑰加密、存儲、使用在令牌芯片的安全區(qū)域內(nèi)實(shí)現(xiàn)。令牌芯片安全本標(biāo)準(zhǔn)涉及的令牌芯片,應(yīng)是國家密碼管理局批準(zhǔn)產(chǎn)品型號證書的安全芯片。令牌物理安全令牌具有低電壓檢測功能。令牌完成種子密鑰導(dǎo)入后,通訊I/O端口應(yīng)失效,不能再輸入或輸出信息,包括但不限于內(nèi)部參與口令生成運(yùn)算的K、T、C信息。令牌應(yīng)防范通過物理攻擊的手段獲取設(shè)備內(nèi)的敏感信息,物理攻擊的手段包括但不限于開蓋、搭線、復(fù)制等。令牌芯片必須具備令牌掉電后,會自動銷毀種子密鑰的措施。令牌芯片應(yīng)保證種子密鑰無法通過外部或內(nèi)部的方式讀出,包括但不限于:調(diào)試接口、改編的程序。令牌芯片可防范通過物理攻擊的手段獲取芯片內(nèi)的敏感信息,確保種子密鑰和算法程序的安全性。令牌芯片應(yīng)具備抵抗旁路攻擊的能力,包括但不限于:抗SPA/DPA攻擊能力,抗SEMA/DEMA攻擊能力。在外部環(huán)境發(fā)生變化時,令牌芯片不應(yīng)泄漏敏感信息或影響安全功能。外部環(huán)境的變化包含但不限于:高低電壓、高低溫、強(qiáng)光干擾、電磁干擾、紫外線干擾、靜電干擾。使用安全具有數(shù)字和功能按鍵的令牌必須具有PIN保護(hù)功能,PIN長度不少于6位,并具有PIN防暴力窮舉功能。令牌可具有PIN找回功能,即令牌用戶如果忘記令牌PIN,可通過安全有效的環(huán)境與機(jī)制找回令牌PIN,或?qū)α钆芇IN進(jìn)行重新設(shè)置(如遠(yuǎn)程解PIN)。PIN輸入錯誤的次數(shù)不可超過5次,若超過,應(yīng)至少等待1h才可繼續(xù)嘗試。PIN輸入超過最大嘗試次數(shù)的情況不可超過5次,否則令牌應(yīng)永久鎖定,不可再使用。令牌基本使用壽命為3年,令牌產(chǎn)品最長使用不超過5年。室溫環(huán)境下,令牌時間偏差小于2min/年。安全評估動態(tài)令牌產(chǎn)品安全評估遵守以下國標(biāo)規(guī)定: GB/T18336.1-2008 GB/T18336.2-2008 GB/T18336.3-2008GB/T21079.1-2007(資料性附錄)動態(tài)口令生成算法C語言實(shí)現(xiàn)用例采用SM3的動態(tài)口令生成算法用例#include<stdio.h>#include<string.h>#include<math.h>#include"sm3.h"#include"sm_dpwd.h"#ifdef__cplusplus#defineINLINEinline#else#defineINLINE#endifINLINEboolIsBigEndian(){unionT{charc[2];shorts;};Tt;t.s=0x0031;if(t.c[1]==0x31){returntrue;}returnfalse;}INLINEboolIsLittleEndian(){return!IsBigEndian();}INLINEuint32Reverse32(uint32x){return((x&0x000000ff)<<24)|((x&0x0000ff00)<<8)|((x&0x00ff0000)>>8)|((x&0xff000000)>>24);}INLINEuint64Reverse64(uint64x){uint32nTemp[3]={0};memcpy(nTemp+1,&x,sizeof(uint64));nTemp[0]=Reverse32(nTemp[2]);nTemp[1]=Reverse32(nTemp[1]);return*(uint64*)nTemp;}INLINEsm_wordML(byteX,uint8j){if(IsBigEndian()){return(sm_word)(X<<(j%32));}else{returnReverse32((sm_word)(X<<(j%32)));}}INLINEsm_wordSUM(sm_wordX,sm_wordY){if(IsBigEndian()){return(X+Y);}else{returnReverse32(Reverse32(X)+Reverse32(Y));}}intTruncateSM3(INbytepSrc[32],INintnSrcLen,OUTbytepDst[4],INintnDstSize){if(nSrcLen!=32||nDstSize<4){return-1;}memset(pDst,0,nDstSize);byte*S=(byte*)pSrc;sm_wordS1=ML(S[0],24)|ML(S[1],16)|ML(S[2],8)|ML(S[3],0);sm_wordS2=ML(S[4],24)|ML(S[5],16)|ML(S[6],8)|ML(S[7],0);sm_wordS3=ML(S[8],24)|ML(S[9],16)|ML(S[10],8)|ML(S[11],0);sm_wordS4=ML(S[12],24)|ML(S[13],16)|ML(S[14],8)|ML(S[15],0);sm_wordS5=ML(S[16],24)|ML(S[17],16)|ML(S[18],8)|ML(S[19],0);sm_wordS6=ML(S[20],24)|ML(S[21],16)|ML(S[22],8)|ML(S[23],0);sm_wordS7=ML(S[24],24)|ML(S[25],16)|ML(S[26],8)|ML(S[27],0);sm_wordS8=ML(S[28],24)|ML(S[29],16)|ML(S[30],8)|ML(S[31],0);sm_wordOD=SUM(SUM(SUM(SUM(SUM(SUM(SUM(S1,S2),S3),S4),S5),S6),S7),S8);memcpy(pDst,&OD,sizeof(sm_word));return0;}#defineSM_DPWD_KEY_LEN_MIN(128/8)#defineSM_DPWD_CHALLENGE_LEN_MIN(4)#defineSM_DPWD_LEN_MAX(10)#defineSM_HASH_OUT_LEN(32)intSM3_DPasswd(INbyte*pKey,INintnKeyLen,INuint64*pTime,INuint64*pInterval,INuint32*pCounter,INchar*pChallenge,INintnGenLen,OUTchar*pDynPwd,INintnDynPwdSize){if(pKey==NULL||(pTime==NULL&&pCounter==NULL&&pChallenge==NULL)||pDynPwd==NULL||nKeyLen<SM_DPWD_KEY_LEN_MIN||nGenLen>SM_DPWD_LEN_MAX||(pChallenge!=NULL&&strlen(pChallenge)<SM_DPWD_CHALLENGE_LEN_MIN)||nDynPwdSize<nGenLen+1){returnSM_DPWD_PARAM_ERROR;}memset(pDynPwd,0,nDynPwdSize);//T=To/Tcif(pTime!=NULL&&pInterval!=NULL&&*pInterval!=0){*pTime=(*pTime)/(*pInterval);}//Converttobig-endian.if(!IsBigEndian()){if(pTime!=NULL){*pTime=Reverse64(*pTime);}if(pCounter!=NULL){*pCounter=Reverse32(*pCounter);}}intoffset=0;byte*sm_i=NULL;bytesm_o[SM_HASH_OUT_LEN]={0};intsm_i_len=0;intsm_o_len=sizeof(sm_o);uint32pwd={0};//ID(T|C|Q)Lengthatleast128bitssm_i_len=(pTime?sizeof(uint64):0)+(pCounter?sizeof(uint32):0)+(pChallenge?strlen(pChallenge):0);if(sm_i_len<16){//FillIDto128bitswith0attheend.sm_i_len=16;}sm_i_len+=nKeyLen;//AllocateIN-Datamemory.sm_i=newbyte[sm_i_len];if(sm_i==NULL){returnSM_DPWD_NO_MEMORY;}memset(sm_i,0,sm_i_len);//1.KEY|ID(T|C|Q)memcpy(sm_i,pKey,nKeyLen);offset=nKeyLen;if(pTime!=NULL){memcpy(sm_i+offset,pTime,sizeof(uint64));offset+=sizeof(uint64);}if(pCounter!=NULL){memcpy(sm_i+offset,pCounter,sizeof(uint32));offset+=sizeof(uint32);}if(pChallenge!=NULL){memcpy(sm_i+offset,pChallenge,strlen(pChallenge));}//2.SM3SM3(sm_i,sm_i_len,sm_o,sm_o_len);//3.TruncateTruncateSM3(sm_o,sm_o_len,(byte*)&pwd,sizeof(pwd));#ifdef__SM_DBG_OUT___DInit();___DAdd("K:[%s]\r\n",___S2M(pKey,nKeyLen));___DAdd("T:[%016s]\r\n",___S2M(pTime,8));___DAdd("C:[%08s]\r\n",___S2M(pCounter,4));___DAdd("Q:[%s]\r\n",___S2M(pChallenge,pChallenge==NULL?0:strlen(pChallenge)));___DAdd("SM3-IN:[%s]\r\n",___S2M(sm_i,sm_i_len));___DAdd("SM3-OUT:[%s]\r\n",___S2M(sm_o,sm_o_len));___DAdd("Cut:[%s]\r\n",___S2M(&pwd,sizeof(pwd)));#endif//__SM_DBG_OUT//4.MODif(!IsBigEndian()){pwd=Reverse32(pwd);}pwd=pwd%(int)pow(10,nGenLen);//OutputcharszFmt[32]={0};sprintf(szFmt,"%%0%dd",nGenLen);sprintf(pDynPwd,szFmt,pwd);delete[]sm_i;return0;}采用SM4的動態(tài)口令生成算法用例#include<stdio.h>#include<string.h>#include<math.h>#include"sm4.h"#include"sm_dpwd.h"#ifdef__cplusplus#defineINLINEinline#else#defineINLINE#endif#ifndefmax#definemax(a,b)(((a)>(b))?(a):(b))#endif#ifndefmin#definemin(a,b)(((a)<(b))?(a):(b))#endifINLINEboolIsBigEndian(){unionT{charc[2];shorts;};Tt;t.s=0x0031;if(t.c[1]==0x31){returntrue;}returnfalse;}INLINEboolIsLittleEndian(){return!IsBigEndian();}INLINEuint32Reverse32(uint32x){return((x&0x000000ff)<<24)|((x&0x0000ff00)<<8)|((x&0x00ff0000)>>8)|((x&0xff000000)>>24);}INLINEuint64Reverse64(uint64x){uint32nTemp[3]={0};memcpy(nTemp+1,&x,sizeof(uint64));nTemp[0]=Reverse32(nTemp[2]);nTemp[1]=Reverse32(nTemp[1]);return*(uint64*)nTemp;}INLINEsm_wordML(byteX,uint8j){if(IsBigEndian()){return(sm_word)(X<<(j%32));}else{returnReverse32((sm_word)(X<<(j%32)));}}INLINEsm_wordSUM(sm_wordX,sm_wordY){if(IsBigEndian()){return(X+Y);}else{returnReverse32(Reverse32(X)+Reverse32(Y));}}intTruncateSM4(INbytepSrc[16],INintnSrcLen,OUTbytepDst[4],INintnDstSize){if(nSrcLen!=16||nDstSize<4){return-1;}memset(pDst,0,nDstSize);byte*S=(byte*)pSrc;sm_wordS1=ML(S[0],24)|ML(S[1],16)|ML(S[2],8)|ML(S[3],0);sm_wordS2=ML(S[4],24)|ML(S[5],16)|ML(S[6],8)|ML(S[7],0);sm_wordS3=ML(S[8],24)|ML(S[9],16)|ML(S[10],8)|ML(S[11],0);sm_wordS4=ML(S[12],24)|ML(S[13],16)|ML(S[14],8)|ML(S[15],0);sm_wordOD=SUM(SUM(SUM(S1,S2),S3),S4);memcpy(pDst,&OD,sizeof(sm_word));return0;}#defineSM_DPWD_KEY_LEN_MIN(128/8)#defineSM_DPWD_CHALLENGE_LEN_MIN(4)#defineSM_DPWD_LEN_MAX(10)#defineSM_HASH_OUT_LEN(32)intSM4_DPasswd(INbyte*pKey,INintnKeyLen,INuint64*pTime,INuint64*pInterval,INuint32*pCounter,INchar*pChallenge,INintnGenLen,OUTchar*pDynPwd,INintnDynPwdSize){if(pKey==NULL||(pTime==NULL&&pCounter==NULL&&pChallenge==NULL)||pDynPwd==NULL||nKeyLen<SM_DPWD_KEY_LEN_MIN||nGenLen>SM_DPWD_LEN_MAX||(pChallenge!=NULL&&strlen(pChallenge)<SM_DPWD_CHALLENGE_LEN_MIN)||nDynPwdSize<nGenLen+1){returnSM_DPWD_PARAM_ERROR;}memset(pDynPwd,0,nDynPwdSize);//T=To/Tcif(pTime!=NULL&&pInterval!=NULL&&*pInterval!=0){*pTime=(*pTime)/(*pInterval);}//Converttobig-endian.if(!IsBigEndian()){if(pTime!=NULL){*pTime=Reverse64(*pTime);}if(pCounter!=NULL){*pCounter=Reverse32(*pCounter);}}intoffset=0;byte*sm_buf=NULL;byte*sm_k=NULL;byte*sm_i=NULL;bytesm_o[16]={0};intsm_k_len=0;intsm_i_len=0;intsm_o_len=sizeof(sm_o);uint32pwd={0};//IflengthofKeyisnotmultipleof128bits,extendittomultipleof128with0.sm_k_len=nKeyLen;if(sm_k_len%16!=0){sm_k_len+=16-sm_k_len%16;}//IflengthofID(T|C|Q)isnotmultipleof128bits,extendittomultipleof128with0.sm_i_len=(pTime?sizeof(uint64):0)+(pCounter?sizeof(uint32):0)+(pChallenge?strlen(pChallenge):0);if(sm_i_len%16!=0){sm_i_len+=16-sm_i_len%16;}//AllocateSM4buffer(KEYandID)memory.sm_buf=newbyte[sm_k_len+sm_i_len];if(sm_buf==NULL){returnSM_DPWD_NO_MEMORY;}memset(sm_buf,0,sm_k_len+sm_i_len);sm_k=sm_buf;sm_i=sm_buf+sm_k_len;//KEYmemcpy(sm_k,pKey,nKeyLen);//ID=T|C|Qif(pTime!=NULL){memcpy(sm_i,pTime,sizeof(uint64));offset+=sizeof(uint64);}if(pCounter!=NULL){memcpy(sm_i+offset,pCounter,sizeof(uint32));offset+=sizeof(uint32);}if(pChallenge!=NULL){memcpy(sm_i+offset,pChallenge,strlen(pChallenge));}intk_cnt=sm_k_len/16;inti_cnt=sm_i_len/16;int_cnt=max(k_cnt,i_cnt);#ifdef__SM_DBG_OUT___Dump("K:[%s]\r\n",___S2M(pKey,nKeyLen));___Dump("T:[%016s]\r\n",___S2M(pTime,8));___Dump("C:[%08s]\r\n",___S2M(pCounter,4));___Dump("Q:[%s]\r\n",___S2M(pChallenge,pChallenge==NULL?0:strlen(pChallenge)));#endif//__SM_DBG_OUTfor(inti=0;i<_cnt;++i){intrc=SM4_Encrypt(sm_k,16,sm_i,16,sm_o,sm_o_len);if(rc<0){returnrc;}#ifdef__SM_DBG_OUT___Dump("SM4-IN:[%s]\r\n",___S2M(sm_i,16));___Dump("SM4-OUT:[%s]\r\n",___S2M(sm_o,sm_o_len));#endif//__SM_DBG_OUTintj,k;uint8overflow;//'out'+next16bytes'key'.overflow=0;k=min(i+1,k_cnt-1);for(j=15;j>=0;--j){uint16sum=sm_o[j]+sm_k[16*k+j]+overflow;sm_k[j]=(uint8)sum;overflow=(uint8)(sum>>8);}//'out'+next16bytes'in'.overflow=0;k=min(i+1,i_cnt-1);for(j=15;j>=0;--j){uint16sum=sm_o[j]+sm_i[16*k+j]+overflow;sm_i[j]=(uint8)sum;overflow=(uint8)(sum>>8);}}TruncateSM4(sm_o,sm_o_len,(byte*)&pwd,sizeof(pwd));#ifdef__SM_DBG_OUT___Dump("Cut:[%s]\r\n",___S2M(&pwd,sizeof(pwd)));#endif//__SM_DBG_OUTif(!IsBigEndian()){pwd=Reverse32(pwd);}pwd=pwd%(int)pow(10,nGenLen);charszFmt[32]={0};sprintf(szFmt,"%%0%dd",nGenLen);sprintf(pDynPwd,szFmt,pwd);delete[]sm_buf;return0;}(資料性附錄)動態(tài)口令生成算法計算輸入輸出用例采用SM3的動態(tài)口令生成算法輸入輸出用例K為種子密鑰,Tc為1秒,T=T0為UTC時間表示的時間因子,C為事件因子,Q為挑戰(zhàn)數(shù)據(jù),P為最終顯示的6位長度動態(tài)口令。具體如表3:表3SM3算法產(chǎn)生動態(tài)口令的輸入輸出實(shí)例表KTCQP(SM3)1234567890abcdef1234567890abcdef1313998979123456788140951234567890abcdefabcdef12345678901313998995562136989596911234567890abcdef0987654321abcdef1313999014562136980630141234567890abcdefabcdef098765432113139990472053698430259387524138025adcfe2584376195abfedc13139990672058302465733787524138025adcfeabfedc2584376195131399909820562018345821adcfe87524138025abfedc258437619513139991312358103662966058ade3698fe280cb6925010dd236caef13139991552547205847982158ade365201d80cbdd236caef692501013139991746031205889382665201d80cb58ade3dd236caef6925010131399918965801047607614采用SM4的動態(tài)口令生成算法輸入輸出用例K為種子密鑰,Tc為1秒,T=T0為UTC時間表示的時間因子,C為事件因子,Q為挑戰(zhàn)數(shù)據(jù),P為最終顯示的6位長度動態(tài)口令。具體如4表:
表4SM4算法產(chǎn)生動態(tài)口令的輸入輸出實(shí)例表KTCQP(SM4)1234567890abcdef1234567890abcdef1340783053123456784467201234567890abcdefabcdef12345678901340783416562136980498451234567890abcdef0987654321abcdef13407834762584210571777787524138025adcfeabfedc258437619513407835092053698403700087524138025
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 面試即興演講試題及范例
- 2024血透治療中的監(jiān)護(hù)及護(hù)理要點(diǎn)試題及答案
- 新進(jìn)員工崗前安全教育培訓(xùn)試題及答案
- 2025年新《公司法》知識競賽題庫(含答案)
- 2024年大學(xué)禮儀知識競賽題庫與答案
- 2024年公職人員考試時事政治考試題庫(附答案)
- 北京戶外徒步知識培訓(xùn)課件
- 2025年安全生產(chǎn)培訓(xùn)考試題及答案
- 標(biāo)本采集順序課件
- 2024海南省消防宣傳月知識競賽練習(xí)題及答案
- 風(fēng)電吊裝勞務(wù)分包合同
- 2.石化廠15萬噸常減壓及30萬噸催化裝置拆除
- 2025重慶市建筑安全員《B證》考試題庫及答案
- 2025年江蘇省鹽城公證處招聘公證人員5人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年中交分包商培訓(xùn)參考答案
- 檢察院書記員筆試試題
- 品管圈PDCA改善案例-呼吸科提高住院患者痰標(biāo)本送檢合格率
- 固定式樁基海上光伏結(jié)構(gòu)設(shè)計荷載標(biāo)準(zhǔn)化研究
- 肥厚型梗阻性心肌病護(hù)理
- 腹腔熱灌注化療術(shù)后護(hù)理
- 鐵路防寒安全培訓(xùn)
評論
0/150
提交評論