可以?xún)H限制為對(duì)等體。通過(guò)對(duì)通信加密和/或驗(yàn)證對(duì)等體的管理方提供進(jìn)一步的安全性。
[0045]在動(dòng)作34,在每一個(gè)現(xiàn)場(chǎng)設(shè)備接收到對(duì)等體的身份。與編程一起或與編程分開(kāi)接收對(duì)等體標(biāo)識(shí)。例如,編程自身包括用于特定類(lèi)型的通信或功能的對(duì)等體身份。替代性地,在協(xié)商安全通信中的特定用途的集合提供身份。
[0046]圖4示出了圖1的工業(yè)控制網(wǎng)絡(luò)中的示例性對(duì)等體分組。使用了三個(gè)對(duì)等體組。第一組是工程站26、可編程邏輯控制器20C和人機(jī)界面設(shè)備22的。第二組是兩個(gè)可編程邏輯控制器20A和20B以及人機(jī)界面設(shè)備22。第三組是可編程邏輯控制器20B和操作員站24??梢允褂闷渌姆纸M。
[0047]工程站26將這些對(duì)等體的身份發(fā)送到對(duì)等體。例如,用于可編程邏輯控制器20A的編程包括可編程邏輯控制器20B和人機(jī)界面設(shè)備22的身份(邏輯的或物理的)??删幊踢壿嬁刂破?0B接收一個(gè)對(duì)等體組中的可編程邏輯控制器20A和人機(jī)界面設(shè)備22以及另一對(duì)等體組中的操作員站24的身份。
[0048]為了保護(hù)通信安全,組件的操作系統(tǒng)或固件包括用于驗(yàn)證和/或加密的指令。當(dāng)在動(dòng)作36中將要開(kāi)始通信時(shí),激活或執(zhí)行該指令。替代性地,在需要在對(duì)等體之間通信之前的設(shè)置或投入使用過(guò)程中執(zhí)行該指令。
[0049]在動(dòng)作36,工業(yè)控制網(wǎng)絡(luò)的一個(gè)或多個(gè)組件確定將要發(fā)生與一對(duì)等體的通信。在處理編程(如對(duì)于測(cè)試運(yùn)行)過(guò)程中,編程要求通信。通信是對(duì)等體或?qū)Φ润w組的第一要求(call)。開(kāi)始通信觸發(fā)建立安全的通信。代替執(zhí)行通信或除執(zhí)行通信之外,要求通信還觸發(fā)通信安全性的自動(dòng)協(xié)商。
[0050]在動(dòng)作38,需要通信的組件對(duì)安全性的自動(dòng)協(xié)商進(jìn)行檢查。在一個(gè)實(shí)施例中,需要與對(duì)等體通信的組件首先檢查存儲(chǔ)器中的標(biāo)志位以確定是否要使用自動(dòng)協(xié)商的安全性。如果不,那么使得能夠在不執(zhí)行進(jìn)一步的安全性的情況下通信,或執(zhí)行其他的安全性條款(security provis1ning)。
[0051]被配置用于自動(dòng)協(xié)商的組件檢查對(duì)等體以確定兼容性。如果安全性要自動(dòng)協(xié)商,那么組件發(fā)送消息給對(duì)等體。消息請(qǐng)求指示對(duì)等體是否被配置用于自動(dòng)協(xié)商的響應(yīng)。
[0052]由于較老的設(shè)備可能不能被配置用于自動(dòng)協(xié)商,因此執(zhí)行保護(hù)通信的不同過(guò)程,或者在沒(méi)有進(jìn)一步安全性情況下進(jìn)行通信。在替代性實(shí)施例中,不保護(hù)與一個(gè)或多個(gè)組件的通信,而保護(hù)與其他組件的通信。不進(jìn)一步保護(hù)與不支持組件的通信,但保護(hù)所有其他的通信;或者不保護(hù)對(duì)等體組內(nèi)與不支持組件的通信,但保護(hù)其他對(duì)等體組內(nèi)的通信。
[0053]如果發(fā)送消息的組件從請(qǐng)求組件是否被配置用于自動(dòng)協(xié)商的對(duì)等體接收到消息,那么兩個(gè)對(duì)等體可以同時(shí)執(zhí)行該過(guò)程。消息在自動(dòng)協(xié)商完成之前接收。如果在從組件發(fā)送同一類(lèi)型的消息之前接收到來(lái)自對(duì)等體的消息,那么組件不發(fā)送消息,并使得其他對(duì)等體引導(dǎo)(lead)自動(dòng)協(xié)商。如果消息已經(jīng)發(fā)送,那么組件和對(duì)等體兩者都已經(jīng)發(fā)送相同的消息。組件均停止自動(dòng)協(xié)商,并開(kāi)始隨機(jī)或不同長(zhǎng)度的預(yù)定暫停(timeout)。當(dāng)暫停結(jié)束時(shí),再次嘗試該過(guò)程。由于暫停是不同長(zhǎng)度的,因此不太可能發(fā)生沖突。一旦在對(duì)等體組內(nèi)自動(dòng)協(xié)商安全性,就不進(jìn)行進(jìn)一步的協(xié)商,直到由工程站或某一其他事件觸發(fā)。
[0054]響應(yīng)于接收到消息,對(duì)等體對(duì)它們與安全性的自動(dòng)協(xié)商相關(guān)的配置進(jìn)行通信。例如,每個(gè)對(duì)等體都檢查標(biāo)志位,并指示參與自動(dòng)協(xié)商的能力。對(duì)等體對(duì)消息作出響應(yīng)。該響應(yīng)被提供給請(qǐng)求組件,但也可以提供給其他對(duì)等體。在替代性實(shí)施例中,引導(dǎo)組件在不發(fā)送消息的情況下讀取兼容性,無(wú)論是在不發(fā)送消息的情況下從工程站提供兼容性,還是假設(shè)兼容性。
[0055]請(qǐng)求或引導(dǎo)組件從對(duì)等體接收響應(yīng)。當(dāng)接收到肯定的響應(yīng)時(shí),自動(dòng)協(xié)商繼續(xù)以保護(hù)通信。當(dāng)對(duì)等體的全部或一部分具有自動(dòng)協(xié)商的安全性能力時(shí),使用自動(dòng)協(xié)商保護(hù)通信安全。
[0056]在動(dòng)作40中,運(yùn)行密鑰交換算法。引導(dǎo)自動(dòng)協(xié)商的組件運(yùn)行該算法。一旦確定引導(dǎo)組件,該引導(dǎo)組件就列出對(duì)應(yīng)對(duì)等體組中的所有對(duì)等體,并在動(dòng)作42中使用密鑰交換算法為每個(gè)對(duì)等體分配安全性令牌,并在動(dòng)作44中與對(duì)應(yīng)的對(duì)等體交換安全性令牌。到算法依賴(lài)對(duì)等體的動(dòng)作的程度,對(duì)等體還運(yùn)行合適的算法。例如,對(duì)等體還可以生成密鑰用于在公鑰-私鑰布置中實(shí)現(xiàn)雙向通信。
[0057]可以使用密鑰交換算法??梢允褂肏TTPS,IPSEC,SSL, PKI或其他加密方法。例如,算法隨機(jī)地生成密鑰對(duì)。組件保留一個(gè)私鑰,另一公鑰被發(fā)送給對(duì)等體。每個(gè)對(duì)等體都接收密鑰用于對(duì)消息和/或數(shù)字簽名加密。密鑰是安全性令牌??梢允褂脤?duì)稱(chēng)或非對(duì)稱(chēng)(例如,RSA)密鑰算法。在另一示例中,使用握手過(guò)程對(duì)狀態(tài)連接(stateful connect1n)進(jìn)行協(xié)商。引導(dǎo)組件發(fā)送數(shù)字證書(shū)給對(duì)等體。對(duì)等體可以或可以不類(lèi)似地發(fā)送數(shù)字證書(shū)給引導(dǎo)組件。證書(shū)可以用來(lái)生成引導(dǎo)組件和每個(gè)對(duì)等體之間共享的秘密用于稍后的認(rèn)證和/或加密。共享的秘密和/或證書(shū)是安全性令牌。在又一實(shí)施例中,工程站用作PKI系統(tǒng)中的認(rèn)證服務(wù)器。作為另一示例,使用預(yù)加載和已協(xié)商的密鑰,并交換算法使用預(yù)加載的密鑰確定可操作性。
[0058]在動(dòng)作42中,密鑰被分配給對(duì)等體??梢允褂萌魏伟踩粤钆?。密鑰交換算法為每個(gè)對(duì)等體輸出安全性令牌。替代性地,通過(guò)確認(rèn)令牌已經(jīng)存儲(chǔ)在對(duì)等體上來(lái)分配安全性令牌。例如,對(duì)等體響應(yīng)于從對(duì)等體組的引導(dǎo)組件發(fā)送消息而提供安全性令牌信息。
[0059]在不訪問(wèn)工業(yè)控制網(wǎng)絡(luò)的外部的情況下生成或分配安全性令牌。對(duì)等體組的成員被配置為在無(wú)認(rèn)證管理方或第三方驗(yàn)證服務(wù)的情況下分配安全性令牌給對(duì)等體組中的對(duì)等體。由于網(wǎng)絡(luò)未與其他網(wǎng)絡(luò)連接,和/或正在已知良好的環(huán)境中投入使用,因此可以在假設(shè)網(wǎng)絡(luò)組件至少在開(kāi)始時(shí)將是可信任的情況下實(shí)現(xiàn)密鑰交換。網(wǎng)絡(luò)組件(例如,對(duì)等體或工程站)從工業(yè)控制網(wǎng)絡(luò)內(nèi)部提供或生成安全性令牌。在投入使用期間或之后不下載加密密鑰到工業(yè)控制系統(tǒng)的情況下,在已知良好的環(huán)境中在組件之間交換加密密鑰。在不與因特網(wǎng)或除工業(yè)控制網(wǎng)絡(luò)之外其他的內(nèi)部網(wǎng)絡(luò)通信的情況下,分配安全性令牌。
[0060]安全性令牌通過(guò)生成加密密鑰、數(shù)字證書(shū)和/或在網(wǎng)絡(luò)內(nèi)部共享秘密來(lái)分配。例如,工程站在請(qǐng)求時(shí)或自動(dòng)地隨機(jī)生成安全性令牌。安全性令牌被傳送給引導(dǎo)組件和/或?qū)Φ润w。安全性令牌可以與編程一起或在編程之后生成和發(fā)送。在其他的實(shí)施例中,在組件處,如通過(guò)引導(dǎo)組件和/或通過(guò)對(duì)等體那樣隨機(jī)生成安全性令牌??梢允褂妹荑€導(dǎo)出函數(shù),而不是隨機(jī)生成。
[0061]在替代性實(shí)施例中,安全性令牌被預(yù)存儲(chǔ)在組件上。例如,制造商在將要在同一網(wǎng)絡(luò)中一起使用的組件上預(yù)安裝安全性令牌。通過(guò)從存儲(chǔ)器加載,而不是生成密鑰,來(lái)分配安全性令牌。
[0062]在動(dòng)作44,交換安全性令牌。從一個(gè)對(duì)等體向另一對(duì)等體提供數(shù)字證書(shū)、公鑰、共享秘密或其他信息。交換可以是單向、廣播或雙向。例如,可以或確實(shí)互相通信的對(duì)等體組內(nèi)的任何對(duì)等體互相交換安全性令牌。對(duì)于單向通信,交換可以是從一個(gè)對(duì)等體到其他的對(duì)等體,但不反過(guò)來(lái)。某些密鑰交換(例如,對(duì)稱(chēng)的)可以允許使用單向交換的雙向安全通信。安全性令牌在對(duì)等體之間傳送,或從一個(gè)對(duì)等體傳送到另一對(duì)等體。交換發(fā)生在已知良好的環(huán)境中。
[0063]不在具有給定組件的對(duì)等體組中的組件不與給定組件交換安全性令牌信息。因此,密鑰、共享的秘密或用于認(rèn)證和/或加密的證書(shū)對(duì)從給定組件到外部對(duì)等體組的組件的安全通信不可用。對(duì)等體組是排外性的(exclusive)。對(duì)等體組外部的通信是受限的或不允許的。
[0064]一旦對(duì)等體組中的對(duì)等體被分配安全性令牌,自動(dòng)協(xié)商就完成了。可以執(zhí)行驗(yàn)證操作。新的成員在工程站26不重新編程的情況下不可以添加到對(duì)等體組。
[0065]在動(dòng)作46,安全性令牌用于保護(hù)通信?;诎踩粤钆票Wo(hù)對(duì)等體之間或從一個(gè)對(duì)等體到另一對(duì)等體的通