本發明是與一種于自動化網絡中操作安全控制的方法及具有這種安全控制的自動化網絡有關,所述自動化網絡具有主用戶和多個從用戶,它們被指定不同的安全完整性層級。
背景技術:
現代的工業自動化概念(也就是利用軟件的輔助進行技術工序的控制及監控)是基于利用分布式傳感器/作動器層級進行中央控制的構想。在這個情況下,用戶通過工業局域網絡(下文中也稱為自動化網絡)彼此通訊以及與上級系統通訊。控制功能是基于兩個基本構想:地理分散和控制功能的分級區分。在這種情況下,功能性的分級將自動化任務實質上區分為控制層級和傳感器/作動器層級。工業局域網絡通常會具有所謂的主/從式通訊網絡,其中主用戶形成控制層級,而從用戶形成傳感器/作動器層級。
對于自動化網絡的一個重要需求為故障安全(fail-safety)。在控制及監控技術工序時,必須確認的是,當自動化網絡不正確地操作時,這不會對人類和環境產生任何風險。自動化網絡一般都根據所謂的故障安全原則操作,其中在故障事件時,自動化網絡會改變為安全狀態。
為了能夠將來自自動化網絡的危險進行分類,有實施風險分析的強制需求。根據歐洲標準en1050,必須要以一系列的邏輯步驟實施風險評估,它允許對來自自動化網絡或個人用戶的危險進行系統化調查。然后,為了確保充分安全的目的,基于風險分析規定施加于自動化網絡的技術與組織化需求。
在機器及安裝安全的領域中,特別也是可編程電子控制系統,標準eniso13849-1及iec/en62061已經變成被建置為實施危險分析的國際標準。這些標準同時包括所有安全相關用戶,無論用戶類型是什么,并且將安全相關性能細分類別。接著基于已確定的安全類別規定自動化網絡中的控制結構,以達成對于安全功能的需求,并且在故障事件中實現需要的系統行為。
標準eniso13849-1及iec/en62062規定了為降低風險所需要的可編程電子控制系統的安全相關性能。為了細分安全相關性能的目的,這兩種標準定義了安全完整性層級。為了這個目的,自動化網絡的所有安全功能都被視為在它們的執行期間會涉及所有用戶。
標準iec/en62061規定了四個安全完整性層級(sil)sil1至sil4,其中各自層級是由錯誤發生的可允許殘余錯誤概率所定義。安全完整性層級sil1代表根據標準的最低需求。然后需求隨層級而增加,直到安全完整性層級sil4。在此情況中,自動化網絡的安全完整性層級是以安全功能中涉及的所有用戶的安全相關特性變量為基礎所決定。除了安全功能中所涉及的所有用戶的安全相關特性變量的知識以外,也需要有與自動化網絡中用戶的邏輯鏈接有關的精確信息來決定自動化網絡的安全完整性層級。安全完整性層級實質上也會受到自動化網絡中使用的總線架構影響。
關于安全功能方面,因為對于自動化網絡中的用戶的需求通常都不同,自動化網絡一般都以具有不同sil層級的用戶操作。然而,在此情況中,整體系統的安全完整性層級是由具有最低sil層級的用戶所決定。原因在于自動化網絡中具有不同sil層級的用戶之間的數據業務會導致可觀的安全相關問題。這是因為,若具有低sil層級的用戶對具有高sil層級的用戶傳送數據分組,即可為具有高sil層級的接收用戶生成有效的數據分組,即使在傳送用戶中生成數據分組時發生了簡單的錯誤,此錯誤在傳送用戶的低sil層級內也是可允許的。雖然,接著,由于接收器的高sil層級,在接收器中會有高度可能性偵測到所傳送數據分組中的錯誤,但具有低sil層級的用戶的可能數據業務會接著導致不再能夠確保與接收器中所需的高sil層級的相符性,因為本身有效的數據分組可由具有低sil層級的用戶形成。
進一步而言,在以進一步的安全相關用戶擴充自動化網絡時,特別是當他們的sil層級與其他用戶的sil層級不同時,一般需要都重組整個系統,以避免自動化系統中已經存在的用戶所執行的安全功能與新加入的用戶的安全功能產生沖突。在此情況中,存在有風險,特別是與舊用戶相同的地址在地址分配期間被分配給新的用戶,這會導致數據分組的錯誤定向,然后無法偵測到這些數據分組。地址分配是復雜的,特別是當數據分組中被指定給用戶的地址僅被隱式地作為安全碼的一部分而傳送時更是如此,安全碼是由數據保護機制所產生、及/或無法從外部決定。
技術實現要素:
本發明的目的在于提供一種操作安全控制方法以及一種自動化網絡,其中具有任何安全完整性層級的用戶都可以經由自動化網絡連接,不會不利地影響安全。
這個目的是以如權利要求1所述的方法、以及如權利要求5所述的自動化網絡達成。權利要求附屬項中說明了較佳的發展。
根據本發明,為了在具有實施安全控制的主用戶、被指定第一安全完整性層級的至少一個第一從用戶、以及被指定第二安全完整性層級的至少一個第二從用戶的自動化網絡中操作安全控制,所述主用戶、所述第一從用戶及所述第二從用戶是經由數據傳送路徑而彼此連接,并且每一者具有安全層與數據鏈路層;在傳送模式中,安全碼確定方法被使用于各自用戶的安全層以確定要被傳送的安全數據塊的安全碼,并且包含所述安全數據塊及所述安全碼的數據分組是在各自用戶的數據鏈路層中形成,以供于數據傳送路徑上傳送;并且在接收模式中,于各自用戶的數據鏈路層中,從經由數據傳送路徑接收的數據分組中擷取安全數據塊與相關的安全碼,并且在各自用戶的安全層中使用所述安全碼確定方法為所述安全數據塊驗證安全碼。在此例中,第一安全碼確定方法是被指定給第一從用戶,而第二安全碼確定方法是被指定給第二從用戶,主用戶與第一從用戶是使用所述第一安全碼確定方法互換安全數據塊,而主用戶與第二從用戶是使用所述第二安全碼確定方法互換安全數據塊。
根據本發明,獨立的安全碼確定方法被用于自動化網絡中具有相同安全完整性層級的用戶之間的通訊。因此特別是排除了具有不同安全完整性層級的用戶的彼此未偵測到的影響。在具有不同安全完整性層級的用戶之間數據業務中的數據分組錯誤定向被可靠地偵測到。因此,在自動化網絡中具有任何安全完整性層級的用戶之間也可有數據業務,而沒有安全相關問題。
根據一個較佳具體實施例,第一及第二安全碼確定方法是循環冗余校驗方法,第一安全碼生成多項式被分派給所述第一安全碼確定方法,并且第二安全碼生成多項式被分派給所述第二安全碼確定方法。在這個情況下,第一安全碼生成多項式的漢明距離(hammingdistance)較佳是與第二安全碼生成多項式的漢明距離不同。這個程序讓它可針對兩個安全碼確定方法都使用循環冗余校驗的目前標準安全機制,因而能夠省去額外耗時的安全措施(它們也需要額外的硬件和軟件)。設定第一及第二安全碼生成多項式的漢明距離會使得數據分組中的偵測錯誤概率可被確保為如同各自安全完整性層級所需要。
根據一個較佳具體實施例,具有第一安全完整性層級的用戶的自動化網絡可完全獨立于具有第二安全完整性層級的用戶的自動化網絡的設計而加以設計。接著可于兩個網絡區域中使用相同的地址,而不會于數據業務中產生錯誤定向,這是因為對每一個網絡區域都指定了能夠避免此類錯誤定向的獨立安全碼確定方法。
附圖說明
本發明將以如附圖式更詳細說明如下。
圖1示意說明了根據本發明的自動化網絡的結構,所述自動化網絡具有實施安全控制的主用戶、被指定第一安全完整性層級的第一從用戶、以及被指定第二安全完整性層級的第二從用戶。
圖2示出如圖1中所示自動化系統中的數據傳送的可能設計。
圖3示出安全完整性層級sil1至sil3中所使用的生成多項式的殘余錯誤率及漢明距離。
具體實施方式
工業自動化使用網絡,其中以分散形式配置的傳感器/作動器層級的組件(例如i/o模塊、測量值記錄器、閥件、驅動器等)是經由強大的總線系統與控制層級的自動化計算器通訊。較佳地是使用現場總線系統作為自動化網絡中的總線系統。
自動化網絡一般具有階層式結構,并且是根據主/從式原理來操作。主用戶被指定控制層級,并且是對于自動化網絡中的通訊連接具有接入授權、以及決定數據業務的主動用戶。從用戶是傳感器/作動器層級的一部分,并且形成被動用戶;他們對于總線系統不具有自身的接入授權,并且僅可確認接收數據、或可在主用戶請求時對主用戶傳送數據。
對于自動化系統的中央需求為安全且可靠的數據傳送。為了消除對人類與環境的風險,必須確保有用數據是無錯誤地在傳感器/作動器層級的從用戶以及控制層級的主用戶之間傳送,或是能夠可靠地偵測到數據傳送中的錯誤。因此要在自動化系統中實施安全措施,并且確保可以高度概率來偵測數據傳送中的錯誤,從而最小化未被偵測到的錯誤的風險。傳送用戶因此利用安全碼(安全碼后續由接收用戶驗證)提供要傳送的數據。循環冗余校驗方法(也稱為crc方法)一般被使用作為用于確定安全碼的方法。
在crc方法中,在數據傳送之前,利用生成多項式的輔助于傳送器中為要傳送的數據塊確定校驗字符串,所述校驗字符串接著被附加至所述數據塊,并且與數據塊一起被傳送至接收器。接收器利用傳送器使用的相同生成多項式的輔助來驗證所傳送的校驗字符串,以計算所傳送數據分組的校驗字符串,進以確定數據是否已經被傳送而無損壞。
一般而言,自動化網絡中并非所有用戶都具有相同安全相關性。自動化網絡中的安全功能數一般也會小于與安全無關的控制功能數。
為了分類來自自動化網絡對人類與環境的危險,有進行風險分析的必要需求。中央標準為iec/en62061,它規定了需要用來降低風險的可編程電子控制系統的安全相關性能。為了細分安全相關性能,所述標準iec/en62021定義了四個安全完整性層級(sil,sil1至sil4)。在此例中,各別的安全完整性層級規定了錯誤發生的可允許殘余錯誤概率。根據安全完整性層級sil1,每小時的危險故障平均概率(pfhd)為低于10-5,但是必須要大于10-6。對于安全完整性層級sil2而言數值范圍低于10-6但大于10-7,對于安全完整性層級sil3而言數值范圍低于10-7但大于10-8,而對于安全完整性層級sil4而言數值范圍低于10-8但大于10-9。除了標準iec/en62021以外,也常會使用比較易于應用及辨認性能層級a至e的標準eniso13849。
自動化網絡中的各別用戶所需要的安全需求是根據被指定給各自用戶的安全功能而定,因而自動化網絡通常是以因安全功能而具有不同安全需求的用戶來操作。
圖1示意說明了自動化網絡的基本結構,所述自動化網絡具有形成控制層級的主用戶m、以及代表傳感器/作動器層級的兩個從用戶s1和s2。主用戶m和兩個從用戶s1、s2是經由串行總線而彼此連接,在用戶之間經由所述串行總線發生數據業務。在此例中,自動化網絡中的數據業務是由主用戶m以數據分組的形式進行組織化,所述數據分組是由控制數據與有用數據組成,數據分組中的控制數據含有識別傳送器及/或接收器的地址信息項目。
在圖1所示的自動化網絡中,兩個從用戶s1與s2都與安全相關。當然可以提供超過兩個的安全相關從用戶。除了安全相關用戶之外,與安全無關的用戶也可被納入自動化網絡中。自動化網絡中的控制層級也可于多個主用戶間區分。
數據一般是以一致的形式于自動化網絡中傳送,較佳地是以以太網協議為基礎,在這種情況中,自動化系統中的所有安全相關用戶(也就是主用戶m和兩個從用戶s1、s2)除了用于處理標準數據的數據鏈路層以外還具有另外的上級安全層以處理安全數據。安全層與數據鏈路層彼此完全被封閉在安全相關用戶中,以避免在處理安全數據時的損壞風險。這種安全相關用戶的設計能夠減少在硬件與軟件上的支出,因為安全數據和標準有用數據兩者都可利用標準協議(例如以太網協議)的輔助而進行傳送。
圖2說明了在圖1所示自動化系統中的數據傳送。在傳送器的安全層中利用安全碼確定方法safetycrc的輔助生成要被傳送的安全數據塊ndsafety的安全碼fcssafety。若使用循環冗余校驗方法作為安全碼確定方法safetycrc,如圖2所示,則使用安全數據生成多項式來決定安全碼作為安全數據塊校驗字符串。安全碼fcssafety接著被附加至安全數據塊ndsafety,并且以安全塊的形式被傳送到數據鏈路層。
安全塊接著被嵌入傳送器的數據鏈路層中的標準數據塊ndstandard,較佳地利用另一安全碼確定方法standardcrc的輔助來確定另一安全碼fcsstandard。若再次使用循環冗余校驗方法作為安全碼確定方法standardcrc,如圖2所示,則使用標準數據生成多項式,相比于用于計算安全數據塊校驗字符串的安全數據生成多項式,標準數據生成多項式是改變的。
數據鏈路層接著傳送含有嵌入的安全數據塊ndsafety及安全碼fcssafety、以及嵌入的標準數據塊校驗字符串fcsstandard的標準數據分組塊ndstandard,并且通過總線信道將它傳送到接收器。接著在接收器中再次實施兩次循環冗余校驗,如圖2所示。在接收器的數據鏈路層中以循環冗余校驗standardcrc的輔助利用標準數據生成多項式來驗證所傳送的數據分組中的標準數據塊校驗字符串fcsstandard。接著進一步在接收器的安全層中以循環冗余校驗safetycrc的輔助利用安全數據生成多項式來驗證嵌入在所傳送數據分組中的安全數據塊校驗字符串fcssafety。若兩次校驗都產生正結果,則可使用所述安全數據;否則,它們會被舍棄。接收器接著等待另一數據分組,使用替代數據、或實施安全措施。
在此例中,安全數據生成多項式較佳地是產生具有長度r的安全數據塊校驗字符串。然后,較佳地是使用漢明距離(得自標準數據塊的校驗字符串的虛擬計算)與長了r的安全數據塊的校驗字符串的漢明距離不同的生成多項式作為安全數據生成多項式。這個程序確保安全數據塊字符串中的失真能夠被可靠地偵測到,即使是在安全相關用戶中的安全層與數據傳送彼此分開時,如圖1所示自動化系統中所設置者。
當安全相關用戶在自動化網絡中被指定不同的安全完整性層級,在數據業務中會發生可觀的安全相關問題。在圖1所示的自動化網絡中,從用戶s1符合安全需求標準sil3,而從用戶s2符合安全需求標準sil2。若具有低sil層級2的從用戶s2產生數據分組,則當所述從用戶s2中發生簡單錯誤時,仍可為具有較高sil層級3的從用戶s1產生有效數據分組,所述錯誤作為從用戶中低sil層級2的一部分是可靠的。雖然從用戶s1會以高度概率偵測到來自從用戶s2的所傳送數據分組中的錯誤,但因出現高錯誤率而不再符合從用戶s1所需要的高sil層級3。
根據本發明,通過被指定第一安全完整性層級的用戶使用第一安全碼確定方法來互換數據分組、并且被指定第二安全完整性層級的用戶使用第二安全碼確定方法來互換數據分組,即可避免這個問題。若總是使用循環冗余校驗方法作為安全碼確定方法,則針對具有不同安全需求的用戶使用不同的安全碼生成多項式。這個程序能夠在數據傳送期間可靠地偵測到錯誤定向,因為可以藉助不同的安全碼來彼此清楚界定具有不同安全需求的用戶群組之間的數據業務。
在圖1所示自動化系統中,程序是使得主用戶m和從用戶s1使用是適合安全完整性層級sil3的第一生成多項式互換數據。相較之下,為了與安全完整性層級為sil2的第二從用戶s2互換數據,主用戶m和從用戶s2是使用適合安全完整性層級sil2的不同生成多項式。
圖3作為示例說明了三種不同的生成多項式,它們各自被指定給安全完整性層級sil1、sil2與sil3中的其中一個。0x12a23被使用作為sil層級3的生成多項式,0x17b0f被使用作為sil層級2的生成多項式,而0x1571f被使用作為sil層級1的生成多項式。在此例中,對于各別的生成多項式各自申明漢明距離與殘余錯誤概率。在此例中,漢明距離代表在數據記錄中有多少字符一定至少是損壞的,因此會發生未偵測損壞,不管所使用的循環冗余校驗的安全措施為何。在此例中,選擇生成多項式,使得生成多項式的漢明距離可符合根據安全完整性層級所需的錯誤發生的殘余錯誤概率。在此例中,程序基本上是,若對安全完整性層級指定錯誤發生的不同殘余錯誤概率,所指定的生成多項式的漢明距離也就不同。
對自動化網絡中的不同用戶群組(每個用戶群組代表一個安全完整性層級)指定不同的安全碼確定方法也能夠輕易地擴充自動化網絡。當具有指定安全完整性層級的新的從用戶群組想要連接到所述自動化網絡時,即對加入的群組指定獨立的安全碼確定方法,以與彼此、以及與主用戶互換數據。因為有這個程序,當將新的從用戶群組配置于自動化網絡時即不再需要考慮剩下的從用戶,因為不同的用戶群組是各自被指定安全完整性層級,且利用獨立安全碼確定方法的輔助而彼此獨立地執行數據業務。只有主用戶必須要對所有用戶群組傳達意見,并且必須能夠實施與各自用戶群組互換數據分組時所規定的安全碼確定方法。
對通過安全完整性層級而彼此劃界的用戶群組指定不同的安全碼確定方法也使其能夠彼此獨立地將地址分配給各自安全群組中的用戶。通過實施各自獨立的安全碼確定方法,各種群組中的用戶都可接著具有相同地址,例如,因為可通過獨立安全碼確定方法可靠地避免數據分組錯誤定向。這在如圖2所示設計中安全數據塊是以封閉于標準數據塊中的形式進行傳送且地址不再顯式地出現在安全數據塊中、而是僅輸入校驗字符串時是特別有利的。在根據本發明的地址分配期間,一個安全完整性層級內的多個用戶僅需要具有唯一地址。