LiveGBS/LiveNVR组合实现GB35114平台端和GB35114设备端的GB35114的交互流程
概述:
GB35114是在GB28181基礎上擴展而來,增加了身份認證和數(shù)據(jù)加密。LiveNVR設備通過GB35114注冊到LiveGBS時,LiveGBS平臺端需要校驗LiveNVR設備的身份,這是單向認證。同時可選LiveNVR也檢驗LiveGBS平臺的身份,如果互相校驗就為雙向認證。注冊認證通過后,LiveNVR就可以通過GB35114注冊到LiveGBS平臺了,之后平臺向設備發(fā)起的信令請求也都需要進行加密認證。
- 注冊認證
注冊認證分只有平臺校驗設備的單向認證,以及相互校驗的雙向認證。
1、LiveNVR向LiveGBS服務器發(fā)送REGISTER請求。增加Authorization頭字段,Authorization的值為Capability,攜帶參數(shù)algorithm、keyversion。參數(shù)algorithm的值分為四部分,中間以分號分割。第一部分定義為“A”,為非對稱算法描述,取值為設備支持的非對稱算法/模式/填充方式,多種算法之間用逗號分隔。例如:A:SM2;第二部分定義為“H”,為雜湊算法描述,取值為設備支持的雜湊算法,多種算法之間用逗號分隔。例如:H:SM3;第三部分定義為“SM3”,為對稱算法的描述,取值為設備支持的對稱算法/模式/填充方式,多種算法之間用逗號分隔。例如:S:SM1/OFB/PKCS5,SM1/CBC/PKCS5,SM4/OFB/PKCS5,SM4/CBC/PKCS5。第四部分定義為“SI”,為簽名算法的描述。例如:SI:SM3-SM2。keyversion為密鑰版本號。
2、LiveGBS服務器產(chǎn)生隨機數(shù)R1,向LiveNVR發(fā)送一個挑戰(zhàn)響應401,響應的消息頭域WWW-Authenticate取值為為UnIDirection,用來攜帶驗證LiveGBS服務器身份的數(shù)據(jù)。攜帶參數(shù)random1、algorithm。random1取值為R1。algorithm 的值為LiveGBS服務器使用的安全算法。3、LiveNVR收到401 響應后,得到random1和algorithm 的值。產(chǎn)生隨機數(shù)R2;用LiveNVR私鑰對random2+ random1+LiveGBS服務器ID 做數(shù)字簽名,得到結(jié)果sign1。LiveNVR重新向LiveGBS服務器發(fā)送REGISTER 請求,Authorization 取值為UnIDirection,攜帶random1、random2、serverid、sign1、algorithm。random2為LiveNVR產(chǎn)生的隨機數(shù)R2,random1為LiveGBS服務器產(chǎn)生的隨機數(shù)R1,serverid 為LiveGBS服務器設備ID,sign1 為用LiveNVR私鑰對random2+random1+LiveGBS服務器ID 做數(shù)字簽名后的結(jié)果,algorithm 為采用的安全算法。4.LiveGBS服務器收到請求后,校驗LiveNVR簽名的有效性(是否被驗證過);校驗R1有效性(只能1次+時效性);校驗LiveGBS服務器ID 與自身是否相符;用設備證書校驗sign1簽名結(jié)果;校驗成功,證明LiveNVR身份合法。用LiveNVR公鑰對VKEK 加密做Base64編碼后得到cryptkey,向LiveNVR發(fā)送成功響應200 OK消息,攜帶cryptkey參數(shù)、algorithm 參數(shù)。如果校驗失敗則發(fā)送拒絕服務應答。LiveNVR收到200 OK后用LiveNVR私鑰解密cryptkey,即可獲得VKEK 的值。
具體流程如圖1:LiveNVR為具有安全功能的前端設備,LiveGBS為具有安全功能的LiveGBS。
圖1、單向認證流程圖
1、LiveNVR向LiveGBS發(fā)送REGISTER請求,消息頭域中攜帶LiveNVR的安全能力。增加Authorization頭字段,Authorization的值為Capability,攜帶參數(shù)algorithm、keyversion。參數(shù)algorithm 的值分為四部分,中間以分號分割。第一部分定義為“A”,為非對稱算法描述,取值為設備支持的非對稱算法/模式/填充方式,多種算法之間用逗號分隔。例如:A:SM2;第二部分定義為“H”,為雜湊算法描述,取值為設備支持的雜湊算法,多種算法之間用逗號分隔。例如:H:SM3;第三部分定義為“SM3”,為對稱算法的描述,取值為設備支持的對稱算法/模式/填充方式,多種算法之間用逗號分隔。例如:S:SM1/OFB/PKCS5,SM1/ECB/PKCS5。第四部分定義為“SI”,為簽名算法的描述。例如:SI:SM3-SM2。keyversion為密鑰版本號。
2、LiveGBS服務器產(chǎn)生隨機數(shù)R1,向LiveNVR發(fā)送一個挑戰(zhàn)響應401,響應的消息頭域WWW-Authenticate取值為為BIDirection,用來攜帶驗證LiveGBS服務器身份的數(shù)據(jù)。攜帶參數(shù)random1、algorithm。random1取值為R1。algorithm 的值為LiveGBS服務器使用的安全算法。
3、 LiveNVR收到401 響應后,得到random1和algorithm 的值。產(chǎn)生隨機數(shù)R2;用LiveNVR私鑰對random2+ random1+LiveGBS服務器ID做數(shù)字簽名,得到結(jié)果sign1。LiveNVR 重新向LiveGBS發(fā)送REGISTER請求,Authorization取值為Bidirection,攜帶random1、random2、serverid、sign1、algorithm。random2為LiveNVR產(chǎn)生的隨機數(shù)R2,random1為LiveGBS服務器產(chǎn)生的隨機數(shù)R1,serverid為LiveGBS服務器設備ID,sign1 為用LiveNVR 私鑰對random2+random1+LiveGBS服務器ID做數(shù)字簽名后的結(jié)果algorithm 為采用的安全算法。
4、LiveGBS服務器收到請求后,校驗LiveNVR簽名的有效性(是否被驗證過);校驗R1有效性(只能1次+時效性);校驗LiveGBS服務器ID與自身是否相符;用設備證書校驗sign1簽名結(jié)果;校驗成功,證明LiveNVR 身份合法。用LiveNVR 公鑰對VKEK 加密得到cryptkey,用管理平臺私鑰對random1+random2+DeviceID+cryptkey做數(shù)字簽名,得到結(jié)果sign2。向LiveNVR發(fā)送成功響應200 OK消息,攜帶random2、random1、DeviceID、sign2、algorithm。cryptkey 參數(shù)。random2為LiveNVR產(chǎn)生的隨機數(shù)R2,random1為LiveGBS服務器產(chǎn)生的隨機數(shù)R1,DeviceID為LiveNVR的ID,cryptkey為LiveNVR 公鑰對VKEK 加密結(jié)果經(jīng)Base64 編碼后的值,sign2 為用管理平臺私鑰對random1+random2+DeviceID+cryptkey做數(shù)字簽名后的結(jié)果,algorithm為采用的安全算法。LiveNVR 收到200 OK后,校驗LiveGBS服務器簽名的有效性(是否被驗證過);校驗R2有效性(只能1次+時效性);校驗DeviceID與自身是否相符;用LiveGBS服務器證書校驗sign2簽名結(jié)果;校驗成功,證明LiveGBS服務器身份合法。用LiveNVR私鑰解密cryptkey,即可獲得VKEK 的值。如果校驗失敗則發(fā)送拒絕服務應答。
圖2、雙向認證流程圖
二、信令認證
1、信令發(fā)送方發(fā)送信令前,需要對信令消息頭域中的METHOD、From、To、Call-ID、Date、密鑰和消息體做雜湊運算,得到結(jié)果1,并將結(jié)果1作為Note字段的參數(shù)nonce的值,本次使用的雜湊算法作為Note字段的參數(shù)algorithm 的值。
2、信令發(fā)送方將信令發(fā)至信令接收方。
3、信令接收方接收信令,比對Date 與當前時間,如果時間之差在有效區(qū)間內(nèi)則提取METHOD、From、To、Call-ID,Date、消息體、結(jié)果1、雜湊算法,使用雜湊算法對METHOD、From、To、Call-ID,Date、密鑰和消息體做雜湊運算,得到結(jié)果1′,匹配結(jié)果1和結(jié)果1′。如果匹配成功,則信令認證通過,否則認證失敗,丟棄該信令并終止該信令會話過程。
4、若信令接收方對收到的信令認證通過,則生成響應信令,并將即將發(fā)出的信令消息中的METHOD、From、To、Call-ID,Date、密鑰、消息體做雜湊運算,得到結(jié)果2。
5、得到結(jié)果2作為Note字段的參數(shù)nonce的值,本次使用的雜湊算法作為Note字段的參數(shù)algorithm 的值,將響應信令發(fā)送給信令發(fā)送方。
6、信令發(fā)送方接收到響應信令,提取METHOD、From、To、Call-ID,Date、消息體、結(jié)果2,比對Date與當前時間,如果時間之在差在有效區(qū)間內(nèi),則將這些參數(shù)和密鑰一起做雜湊運算,得到結(jié)果2′,匹配結(jié)果2和2′,如果匹配成功,則信令認證通過,否則失敗,丟棄該信令。
總結(jié)
以上是生活随笔為你收集整理的LiveGBS/LiveNVR组合实现GB35114平台端和GB35114设备端的GB35114的交互流程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TortoiseGit乌龟git添加公钥
- 下一篇: VMWare虚拟机Linux系统忘记登录