基于iec62351的goose報(bào)文的安全交互方法
【專利摘要】本發(fā)明的目的在于提供一種基于IEC62351的GOOSE報(bào)文的安全交互方法,包括如下步驟:服務(wù)端準(zhǔn)備一套帶有私鑰的數(shù)字證書,同時(shí)將證書分發(fā)給GOOSE報(bào)文的客戶端,由客戶端將證書與服務(wù)端的網(wǎng)卡MAC地址進(jìn)行關(guān)聯(lián),接著對報(bào)文的簽名和驗(yàn)證。本發(fā)明方法基于IEC62351標(biāo)準(zhǔn),對GOOSE報(bào)文CRC計(jì)算、報(bào)文摘要計(jì)算以及對摘要進(jìn)行簽名的安全處理,目的在于解決IEC61850標(biāo)準(zhǔn)的變電站自動(dòng)化系統(tǒng)在基于IEC62351標(biāo)準(zhǔn)的安全通信加固問題。
【專利說明】基于IEC62351的GOOSE報(bào)文的安全交互方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及電力信息安全領(lǐng)域,具體來說涉及一種基于IEC62351的智能變電站中智能電子設(shè)備的GOOSE報(bào)文的安全交互方法。
【背景技術(shù)】
[0002]IEC61850提出了變電站的一組公共通信標(biāo)準(zhǔn),通過對設(shè)備的一系列規(guī)范化,使得IED (智能電子設(shè)備)能夠在統(tǒng)一規(guī)范下進(jìn)行無縫連接,為了推進(jìn)國內(nèi)變電站的發(fā)展需要,國內(nèi)提出了基于IEC61850的DL/T860標(biāo)準(zhǔn)。
[0003]IEC61850的特點(diǎn)是I)面向?qū)ο蠼#?)抽象通信服務(wù)接口 ; 3)面向?qū)崟r(shí)的服務(wù);4)配置語言;5)整個(gè)電力系統(tǒng)統(tǒng)一建模。
[0004]IEC61850標(biāo)準(zhǔn)將變電站通信體系分為變電站層、間隔層、過程層。IEC61850的網(wǎng)絡(luò)通信上層統(tǒng)一采用抽象通信服務(wù)接口,對具體的網(wǎng)絡(luò),通過將底層實(shí)現(xiàn)接口映射到抽象通信接口來對接。在變電站層與間隔層之間將抽象通信服務(wù)接口映射到制造報(bào)文規(guī)范(MMS)、傳輸控制協(xié)議/網(wǎng)際協(xié)議(TCP/IP)以太網(wǎng)或光纖網(wǎng)。在間隔層與過程層之間的網(wǎng)絡(luò)采用廣播式的以太網(wǎng)傳輸。
[0005]國家電網(wǎng)公司在^一五”規(guī)劃中明確提出研究和推廣以IEC61850和電子式PT/CT為基礎(chǔ)的數(shù)字化變電站。IEC61850提出了變電站過程層、間隔層、站控層三層之間所有設(shè)備直接接入以太網(wǎng)。由此可見網(wǎng)絡(luò)在變電站中已成為最重要的通信方式。
[0006]但是,由于IEC61850標(biāo)準(zhǔn)提出時(shí),只注重IED之間的共享通信,而對通信過程中的安全并未重視,導(dǎo)致變電站一旦被入侵,而變電站內(nèi)部又沒有任何防護(hù)措施,后果將很難想象。`
[0007]2005年4月,國際標(biāo)準(zhǔn)化組織IEC制定了 IEC62351數(shù)據(jù)和通信安全標(biāo)準(zhǔn)(草案),以解決電力通訊領(lǐng)域的數(shù)據(jù)和通訊安全問題。在IEC62351中,認(rèn)證和加密是核心內(nèi)容。由于GOOSE報(bào)文的時(shí)間要求極高,針對GOOSE報(bào)文進(jìn)行加密,在時(shí)間上不能滿足要求,而對GOOSE報(bào)文進(jìn)行認(rèn)證能夠滿足要求。
[0008]本專利提出基于IEC62351的GOOSE報(bào)文的安全交互方法。通過對GOOSE報(bào)文保留字段進(jìn)行利用,保存計(jì)算GOOSE報(bào)文部分的CRC值,以及對GOOSE報(bào)文進(jìn)行擴(kuò)展,用于存放GOOSE報(bào)文的摘要及對摘要的簽名,從而對GOOSE報(bào)文進(jìn)行安全處理,防止GOOSE報(bào)文被篡改,以及確認(rèn)GOOSE報(bào)文來源,從而防止GOOSE報(bào)文的欺騙攻擊。
【發(fā)明內(nèi)容】
[0009]本發(fā)明的目的在于提供一種基于IEC62351的GOOSE報(bào)文的安全交互方法,本方法針對智能變電站中智能電子設(shè)備使用GOOSE報(bào)文通信時(shí),在基于IEC62351標(biāo)準(zhǔn)的基礎(chǔ)上,對GOOSE報(bào)文進(jìn)行CRC校驗(yàn)和數(shù)字簽名處理后,再進(jìn)行交互,以達(dá)到在GOOSE報(bào)文交互過程中,能夠確認(rèn)GOOSE報(bào)文的發(fā)送者的目的。
[0010]本發(fā)明的目的可通過以下的技術(shù)措施來實(shí)現(xiàn):[0011]—種基于IEC62351的GOOSE報(bào)文的安全交互方法,首先,服務(wù)端(發(fā)送方)準(zhǔn)備一套帶有私鑰的數(shù)字證書,同時(shí)將證書(不含私鑰)分發(fā)給GOOSE報(bào)文的客戶端(接收方),由客戶端將證書與服務(wù)端的網(wǎng)卡MAC地址進(jìn)行關(guān)聯(lián),接著對報(bào)文的簽名和驗(yàn)證過程如下:
[0012]I)簽名流程
[0013]1.1)對應(yīng)用生成的GOOSE報(bào)文G進(jìn)行解析,得到各個(gè)字段的值;簽名與驗(yàn)證操作需要的字段包括GOOSE報(bào)文中的標(biāo)志協(xié)議標(biāo)識(shí)域TPID、標(biāo)志控制信息域TC1、以太網(wǎng)報(bào)文類型域EtherType、應(yīng)用標(biāo)識(shí)域APPID、應(yīng)用協(xié)議數(shù)據(jù)單元APDU,以及為未來標(biāo)準(zhǔn)化應(yīng)用保留的保留字段I (Reservedl)、保留字段2 (Reserved〗)。
[0014]1.2)取得待計(jì)算CRC校驗(yàn)值的四個(gè)字段TPID、TC1、EtherType、APPID的值,并將其拼接成一個(gè)字符數(shù)組;
[0015]1.3)計(jì)算該字節(jié)數(shù)組的CRC校驗(yàn)值;所述計(jì)算CRC校驗(yàn)值的方法是采用循環(huán)冗余校驗(yàn)(Cyclic redundancy check,通稱 “CRC”)。
[0016]1.4)將計(jì)算出的CRC值填入GOOSE報(bào)文的Reserved2字段;
[0017]1.5)讀取并解析服務(wù)端的私鑰P。
[0018]1.6)取得待計(jì)算RSA簽名的三個(gè)字段APDU、Reserved、Private的值,并將其拼接成一個(gè)字符數(shù)組;其中,Reserved字段作為保留位用于后續(xù)擴(kuò)展,Private字段作為GOOSE報(bào)文服務(wù)端和客戶端傳遞非標(biāo)準(zhǔn)內(nèi)容,該非標(biāo)準(zhǔn)內(nèi)容的格式,由服務(wù)端和客戶端提前自行約定。
[0019]1.7)使用散列算法MD5Hash (即哈希函數(shù)Hash Function)計(jì)算該字節(jié)數(shù)組的摘要值S”;·
[0020]1.8)使用服務(wù)端私鑰對摘要值進(jìn)行簽名,獲得簽名值S ;
[0021]1.9)將RSA簽名添加到GOOSE報(bào)文的末尾;
[0022]1.10)計(jì)算新的GOOSE報(bào)文擴(kuò)展部分的長度;
[0023]1.11)將擴(kuò)展部分的長度填入Reservedl字段的第一個(gè)字節(jié)中。
[0024]2)驗(yàn)證流程
[0025]2.1)根據(jù)接收到的網(wǎng)絡(luò)報(bào)文的源MAC地址,查找對應(yīng)的服務(wù)端證書X ;
[0026]2.2)對應(yīng)用生成的GOOSE報(bào)文G進(jìn)行解析,得到各個(gè)字段的值;
[0027]2.3)判定Reservedl字段的第一個(gè)字節(jié)是否大于O ;如果不大于O則該GOOSE報(bào)文未經(jīng)過簽名,驗(yàn)證結(jié)束;
[0028]2.4)取得待計(jì)算CRC校驗(yàn)值的四個(gè)字段TPID、TC1、EtherType、APPID的值,并將其拼接成一個(gè)字符數(shù)組;
[0029]2.5)計(jì)算該字節(jié)數(shù)組的CRC校驗(yàn)值;
[0030]2.6)將計(jì)算出的CRC校驗(yàn)值與GOOSE報(bào)文中的Reserved2字段值進(jìn)行比較;若不相等則驗(yàn)證失敗,記錄日志,丟棄該報(bào)文;
[0031]2.7)取得待計(jì)算RSA簽名的三個(gè)字段APDU、Reserved、Private的值,并將其拼接成一個(gè)字符數(shù)組;
[0032]2.8)使用散列算法MD5Hash計(jì)算該字節(jié)數(shù)組的摘要值S” ;
[0033]2.9)使用服務(wù)端證書對報(bào)文中的簽名值進(jìn)行解密,得到服務(wù)端計(jì)算的摘要值S ;
[0034]2.10)比較兩個(gè)摘要值S”與S ;若不相等則驗(yàn)證失敗,記錄日志,丟棄該報(bào)文;若相等,貝1J驗(yàn)證成功。
[0035]本發(fā)明對比現(xiàn)有技術(shù),有如下優(yōu)點(diǎn):
[0036]本發(fā)明基于IEC62351的GOOSE報(bào)文的安全交互方法,通過對基于IEC61850的GOOSE報(bào)文,對保留字段進(jìn)行利用,并擴(kuò)展GOOSE報(bào)文結(jié)構(gòu),通過對GOOSE報(bào)文頭部分進(jìn)行CRC計(jì)算、對GOOSE報(bào)文體進(jìn)行SHA-256摘要計(jì)算,最終在擴(kuò)展部分對摘要進(jìn)行簽名,保護(hù)GOOSE報(bào)文的完整性,以及確定GOOSE報(bào)文的源。能夠達(dá)到確定GOOSE報(bào)文的源的目的,以防止在變電站被人攻擊時(shí),任何人都可以發(fā)送GOOSE報(bào)文來操作智能電子設(shè)備,特別是影響智能變電內(nèi)部重要的高壓變壓設(shè)備。
[0037]本發(fā)明方法基于IEC62351標(biāo)準(zhǔn),對GOOSE報(bào)文CRC計(jì)算、報(bào)文摘要計(jì)算以及對摘要進(jìn)行簽名的安全處理,目的在于解決IEC61850標(biāo)準(zhǔn)的變電站自動(dòng)化系統(tǒng)在基于IEC62351標(biāo)準(zhǔn)的安全通信加固問題。由于基于IEC61850標(biāo)準(zhǔn)的GOOSE報(bào)文只涉及數(shù)據(jù)的交互,變電內(nèi)GOOSE報(bào)文交互沒有任何安全的防護(hù),一旦變電站的防護(hù)出現(xiàn)意外,變電站內(nèi)部的GOOSE報(bào)文將會(huì)被隨意發(fā)送。而基于IEC62351標(biāo)準(zhǔn)提出以來,智能電子設(shè)備在GOOSE報(bào)文交互時(shí),需要對報(bào)文的源頭和數(shù)據(jù)本身進(jìn)行驗(yàn)證,從而能夠確保在一定時(shí)間內(nèi),即使變電站外部防護(hù)存在安全問題,驗(yàn)證過程也能夠保證GOOSE交互過程的安全,以延緩攻擊者的速度,為變電站安全爭取寶貴時(shí)間。
【專利附圖】
【附圖說明】
[0038]圖1是本發(fā)明參考體系結(jié)構(gòu)示意圖;
[0039]圖2是GOOSE的報(bào)文結(jié)構(gòu)示意圖,(a)為IEC61850標(biāo)準(zhǔn)的結(jié)構(gòu),(b)為基于IEC62351標(biāo)準(zhǔn)的結(jié)構(gòu);
[0040]圖3是本發(fā)明方法流程不意圖。
【具體實(shí)施方式】
[0041]圖1是本發(fā)明參考體系結(jié)構(gòu)示意圖,示出了本發(fā)明所包含的組件,給出了基于IEC62351的GOOSE報(bào)文的安全交互方法的參考體系結(jié)構(gòu)圖,它主要包括三個(gè)部分:服務(wù)端對GOOSE報(bào)文的處理、GOOSE報(bào)文和客戶端對GOOSE報(bào)文的驗(yàn)證。
[0042]如圖2所示,GOOSE報(bào)文分為IEC61850標(biāo)準(zhǔn)的GOOSE報(bào)文和IEC62351標(biāo)準(zhǔn)的GOOSE報(bào)文。IEC61850標(biāo)準(zhǔn)的GOOSE報(bào)文報(bào)文不包括安全項(xiàng);IEC62351標(biāo)準(zhǔn)的GOOSE報(bào)文是基本結(jié)構(gòu)基于IEC61850標(biāo)準(zhǔn)的GOOSE報(bào)文結(jié)構(gòu),并在此基礎(chǔ)上擴(kuò)展報(bào)文,以保存對GOOSE報(bào)文進(jìn)行摘要后的簽名值。
[0043]在IEC62351標(biāo)準(zhǔn)提出后,本專利基于IEC62351標(biāo)準(zhǔn),提出通過GOOSE報(bào)文進(jìn)行擴(kuò)展,并安全處理,以確定GOOSE報(bào)文的源,和防止GOOSE報(bào)文被篡改,從而防止GOOSE報(bào)文從不確定的源頭發(fā)出,和GOOSE報(bào)文被隨意篡改。
[0044]服務(wù)端在組裝GOOSE報(bào)文時(shí),對GOOSE報(bào)文進(jìn)行安全處理,首先對GOOSE報(bào)文頭部分字段進(jìn)行CRC計(jì)算,以保存在GOOSE報(bào)文的保留字段中,再對GOOSE報(bào)文進(jìn)行摘要計(jì)算,并對摘要進(jìn)行簽名,并將簽名值存放于擴(kuò)展字段中。
[0045]客戶端在接收到GOOSE報(bào)文后,對安全處理過的GOOSE報(bào)文進(jìn)行驗(yàn)證,通過簽名驗(yàn)證,以確定GOOSE報(bào)文的源,通過摘要驗(yàn)證和CRC驗(yàn)證,以確定內(nèi)容是否被篡改。[0046]下面通過具體實(shí)施例說明基于IEC62351的GOOSE報(bào)文的安全交互方法的流程,如圖3所示,例如有一個(gè)服務(wù)端程序,需要向一個(gè)客戶端程序發(fā)送經(jīng)過簽名的GOOSE報(bào)文,首先,需要通過證書系統(tǒng)為服務(wù)端申請簽發(fā)一個(gè)數(shù)字證書,以及相對應(yīng)的RSA私鑰,通過文件的形式配置給服務(wù)器程序使用。同時(shí),需要將證書(不含私鑰)與服務(wù)端的網(wǎng)卡MAC地址配置給客戶端使用。接著,服務(wù)器端和客戶端對該報(bào)文的處理流程分別如下:
[0047]1.服務(wù)器端:首先,服務(wù)端按照應(yīng)用規(guī)則,生成GOOSE報(bào)文之后,在準(zhǔn)備發(fā)送給客戶端之前,需要對該報(bào)文的內(nèi)容進(jìn)行簽名。
[0048]1.1服務(wù)端將GOOSE報(bào)文中的TPID、TC1、EtherType、APPID四個(gè)字段的值取出組成一個(gè)8字節(jié)的字節(jié)數(shù)組,計(jì)算其CRC校驗(yàn)值,并填入GOOSE報(bào)文中原來的Reserved〗字段中,具體過程如下:
[0049]對應(yīng)用生成的GOOSE報(bào)文G進(jìn)行解析,得到各個(gè)字段的值。簽名與驗(yàn)證操作需要的字段有TPID、TC1、EtherType、APPID、APDU等,以及兩個(gè)保留字段的位置。
[0050]取得待計(jì)算CRC校驗(yàn)值的四個(gè)字段TPID、TC1、EtherType、APPID的值,并將其拼接成一個(gè)字符數(shù)組,
[0051]C,=concatenate (G.TPID, G.TCI, G.EtherType, G.APPID)。
[0052]計(jì)算該字節(jié)數(shù)組的CRC校驗(yàn)值,
[0053]C=CRC (C,)。
[0054]將計(jì)算出的CRC值填入GOOSE報(bào)文的R eserved2字段,
[0055]G.Retain2=C。
[0056]讀取并解析服務(wù)端的私鑰P。
[0057]1.2服務(wù)端將GOOSE報(bào)文中的APDU、Reserved、Private三個(gè)字段的值取出組成一個(gè)字節(jié)數(shù)組,計(jì)算其RSA-SHA256簽名值A(chǔ)uthenticationValue,并編碼添加到GOOSE報(bào)文的末尾,具體過程如下:
[0058]取得待計(jì)算RSA簽名的三個(gè)字段APDU、Reserved、Private的值,并將其拼接成一個(gè)字符數(shù)組,
[0059]S,=concatenate (G.APDU, G.Reserved, G.Private)。
[0060]使用Hash算法計(jì)算該字節(jié)數(shù)組的摘要值S”,
[0061]S”=SHA256(S’)。
[0062]使用服務(wù)端私鑰對摘要值進(jìn)行簽名,獲得簽名值S,
[0063]S=RSAPrivateEncrypt (S,,, P)。
[0064]將RSA簽名添加到GOOSE報(bào)文的末尾,
[0065]G,=concatenate (G, S)。
[0066]計(jì)算新的GOOSE報(bào)文擴(kuò)展部分的長度,
[0067]L=Ien (G,)-1en (G)。
[0068]1.3 服務(wù)端計(jì)算報(bào)文擴(kuò)展的 Reserved、Private、AuthenticationValue 三個(gè)字段的長度,并填入GOOSE報(bào)文的Reservedl字段第一個(gè)字節(jié)中,具體過程如下:
[0069]將擴(kuò)展部分的長度填入Reservedl字段的第一個(gè)字節(jié),
[0070]G,.Retainl [O] =L。
[0071]1.4服務(wù)端將新的GOOSE報(bào)文通過網(wǎng)絡(luò)發(fā)送給客戶端。[0072]2.客戶端:客戶端接收到服務(wù)端發(fā)送過來的GOOSE報(bào)文之后,需要對其簽名的合法性進(jìn)行驗(yàn)證。
[0073]2.1客戶端首先根據(jù)接收報(bào)文的源MAC地址,查找對應(yīng)的服務(wù)端證書:根據(jù)接收到的網(wǎng)絡(luò)報(bào)文的源MAC地址,查找對應(yīng)的服務(wù)端證書X。對應(yīng)用生成的GOOSE報(bào)文G進(jìn)行解析,得到各個(gè)字段的值。
[0074]2.2客戶端檢查GOOSE報(bào)文中Reservedl字段的第一個(gè)字節(jié),如果是0,說明該GOOSE報(bào)文沒有經(jīng)過簽名操作,跳過后續(xù)的驗(yàn)證操作,具體過程如下:
[0075]判定Reservedl字段的第一個(gè)字節(jié)是否大于O,
[0076]G.Retainl [O] >0。
[0077]如果不大于O則該GOOSE報(bào)文未經(jīng)過簽名,驗(yàn)證結(jié)束。
[0078]2.3客戶端將GOOSE報(bào)文中的TPID、TC1、EtherType、APPID四個(gè)字段的值取出組成一個(gè)8字節(jié)的字節(jié)數(shù)組,計(jì)算其CRC校驗(yàn)值,然后與GOOSE報(bào)文中的Reserved2字段中的值進(jìn)行比較,相等說明CRC校驗(yàn)通過
[0079]取得待計(jì)算CRC校驗(yàn)值的四個(gè)字段TPID、TC1、EtherType、APPID的值,并將其拼接成一個(gè)字符數(shù)組,
[0080]C,=concatenate (G.TPID, G.TCI, G.EtherType, G.APPID)。
[0081]計(jì)算該字節(jié)數(shù)組的CRC校驗(yàn)值,
[0082]C=CRC (C,)。
[0083]將計(jì)算出的CRC值與GOOSE報(bào)文中的Reserved2字段值進(jìn)行比較,
[0084]C==G.Retain2
[0085]若不相等則驗(yàn)證失敗,記錄日志,丟棄該報(bào)文。
[0086]2.4客戶端將GOOSE報(bào)文中的APDU、Reserved、Private三個(gè)字段的值取出組成一個(gè)字節(jié)數(shù)組,同時(shí)將AuthenticationValue字段中的值(即服務(wù)端計(jì)算的簽名值)取出,根據(jù)之前查找到的服務(wù)端證書進(jìn)行RSA-SHA256驗(yàn)簽操作,通過則整個(gè)報(bào)文的簽名驗(yàn)證成功,具體過程如下:
[0087]取得待計(jì)算RSA簽名的三個(gè)字段APDU、Reserved、Private的值,并將其拼接成一個(gè)字符數(shù)組,
[0088]S,=concatenate (G.APDU, G.Reserved, G.Private)。
[0089]使用Hash算法計(jì)算該字節(jié)數(shù)組的摘要值S”,
[0090]S”=SHA256(S’)。
[0091]使用服務(wù)端證書對報(bào)文中的簽名值進(jìn)行解密,得到服務(wù)端計(jì)算的摘要值S,
[0092]S=RSAPublicDecrypt (S,,, X)。
[0093]比較兩個(gè)摘要值S”與S,
[0094]S,,==S
[0095]若不相等則驗(yàn)證失敗,記錄日志,丟棄該報(bào)文。若相等,則驗(yàn)證成功。
[0096]2.5客戶端繼續(xù)進(jìn)行后續(xù)的業(yè)務(wù)層數(shù)據(jù)處理。
[0097]本發(fā)明方法基于IEC62351標(biāo)準(zhǔn),對GOOSE報(bào)文進(jìn)行CRC計(jì)算、報(bào)文摘要計(jì)算以及對摘要進(jìn)行簽名的安全處理,目的在于解決IEC61850標(biāo)準(zhǔn)的變電站自動(dòng)化系統(tǒng)在基于IEC62351標(biāo)準(zhǔn)的GOOSE報(bào)文安全通信加固問題。通過對基于IEC61850標(biāo)準(zhǔn)的GOOSE報(bào)文保留字段進(jìn)行利用,保存計(jì)算GOOSE報(bào)文的頭部CRC值,同時(shí)擴(kuò)展GOOSE報(bào)文結(jié)構(gòu),對GOOSE報(bào)文體進(jìn)行SHA-256摘要計(jì)算,對摘要進(jìn)行數(shù)字簽名,并保存于擴(kuò)展部分,從而保護(hù)GOOSE報(bào)文的完整性和確定GOOSE報(bào)文的發(fā)送者,以確保GOOSE事件的真實(shí)性。
[0098]由于基于IEC61850標(biāo)準(zhǔn)的GOOSE報(bào)文僅涉及數(shù)據(jù)的交互,變電內(nèi)GOOSE報(bào)文交互沒有任何安全的防護(hù),一旦變電站的防護(hù)出現(xiàn)意外,變電站內(nèi)部的GOOSE報(bào)文將會(huì)被隨意發(fā)送。而基于IEC62351標(biāo)準(zhǔn)提出以來,智能電子設(shè)備在GOOSE報(bào)文交互時(shí),需要對報(bào)文的源頭和數(shù)據(jù)本身進(jìn)行驗(yàn)證,從而能夠確保在一定時(shí)間內(nèi),即使變電站外部防護(hù)存在安全問題,驗(yàn)證過程也能夠保證GOOSE交互過程的安全,以延緩攻擊者的速度,為變電站安全爭取寶貴時(shí)間,從而保護(hù)智能變電站內(nèi)部的安全。
[0099]本發(fā)明的實(shí)施方式不限于此,在本發(fā)明上述基本技術(shù)思想前提下,按照本領(lǐng)域的普通技術(shù)知識(shí)和慣用手段對本
【發(fā)明內(nèi)容】
所做出其它多種形式的修改、替換或變更,均落在本發(fā)明權(quán)利保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種基于IEC62351的GOOSE報(bào)文的安全交互方法,其特征在于:服務(wù)端準(zhǔn)備一套帶有私鑰的數(shù)字證書,同時(shí)將證書分發(fā)給GOOSE報(bào)文的客戶端,由客戶端將證書與服務(wù)端的網(wǎng)卡MAC地址進(jìn)行關(guān)聯(lián),接著對報(bào)文的簽名和驗(yàn)證過程如下: 1)簽名流程 .1.0對應(yīng)用生成的GOOSE報(bào)文G進(jìn)行解析,得到各個(gè)字段的值;簽名與驗(yàn)證操作需要的字段包括GOOSE報(bào)文中的標(biāo)志協(xié)議標(biāo)識(shí)域TPID、標(biāo)志控制信息域TC1、以太網(wǎng)報(bào)文類型域EtherType、應(yīng)用標(biāo)識(shí)域APPID、應(yīng)用協(xié)議數(shù)據(jù)單元APDU,以及為未來標(biāo)準(zhǔn)化應(yīng)用保留的保留字段1、保留字段2; .1.2)取得待計(jì)算CRC校驗(yàn)值的四個(gè)字段TPID、TC1、EtherType、APPID的值,并將其拼接成一個(gè)字符數(shù)組; . 1.3)計(jì)算該字節(jié)數(shù)組的CRC校驗(yàn)值;所述計(jì)算CRC校驗(yàn)值的方法是采用循環(huán)冗余校驗(yàn); . 1.4)將計(jì)算出的CRC值填入GOOSE報(bào)文的Reserved2字段; .1.5)讀取并解析服務(wù)端的私鑰P ; .1.6)取得待計(jì)算RSA簽名的三個(gè)字段APDU、Reserved、Private的值,并將其拼接成一個(gè)字符數(shù)組;其中,Reserved字段作為保留位用于后續(xù)擴(kuò)展,Private字段作為GOOSE報(bào)文服務(wù)端和客戶端傳遞非標(biāo)準(zhǔn)內(nèi)容,該非標(biāo)準(zhǔn)內(nèi)容的格式,由服務(wù)端和客戶端提前自行約定; . 1.7)使用散列算法MD5Hash計(jì)算該字節(jié)數(shù)組的摘要值S” ; . 1.8)使用服務(wù)端私鑰對摘要值進(jìn)行簽名,獲得簽名值S ; . 1.9)將RSA簽名添加到GOOSE報(bào)文的末尾; . 1.10)計(jì)算新的GOOSE報(bào)文擴(kuò)展部分的長度;. 1.11)將擴(kuò)展部分的長度填入Reservedl字段的第一個(gè)字節(jié)中; 2)驗(yàn)證流程 . 2.1)根據(jù)接收到的網(wǎng)絡(luò)報(bào)文的源MAC地址,查找對應(yīng)的服務(wù)端證書X ; . 2.2)對應(yīng)用生成的GOOSE報(bào)文G進(jìn)行解析,得到各個(gè)字段的值; . 2.3)判定Reservedl字段的第一個(gè)字節(jié)是否大于O ;如果不大于O則該GOOSE報(bào)文未經(jīng)過簽名,驗(yàn)證結(jié)束; . 2.4)取得待計(jì)算CRC校驗(yàn)值的四個(gè)字段TPID、TC1、EtherType、APPID的值,并將其拼接成一個(gè)字符數(shù)組; .2.5)計(jì)算該字節(jié)數(shù)組的CRC校驗(yàn)值; . 2.6)將計(jì)算出的CRC校驗(yàn)值與GOOSE報(bào)文中的Reserved2字段值進(jìn)行比較;若不相等則驗(yàn)證失敗,記錄日志,丟棄該報(bào)文; . 2.7)取得待計(jì)算RSA簽名的三個(gè)字段APDU、ReserVed、PriVate的值,并將其拼接成一個(gè)字符數(shù)組; . 2.8)使用散列算法MD5Hash計(jì)算該字節(jié)數(shù)組的摘要值S” ; . 2.9)使用服務(wù)端證書對報(bào)文中的簽名值進(jìn)行解密,得到服務(wù)端計(jì)算的摘要值S ; . 2.10)比較兩個(gè)摘要值S”與S ;若不相等則驗(yàn)證失敗,記錄日志,丟棄該報(bào)文;若相等,則驗(yàn)證成功。
【文檔編號(hào)】H04L29/06GK103873461SQ201410051666
【公開日】2014年6月18日 申請日期:2014年2月14日 優(yōu)先權(quán)日:2014年2月14日
【發(fā)明者】陶文偉, 李金 , 周鵬, 張喜銘, 樊騰飛, 梁壽愚 申請人:中國南方電網(wǎng)有限責(zé)任公司