本公開內(nèi)容的各方面涉及計算硬件和軟件技術(shù),特別地,涉及工業(yè)自動化應(yīng)用。
背景技術(shù):
工業(yè)自動化環(huán)境在工業(yè)制造過程期間利用機器如驅(qū)動器、泵、電動機和機器人。這些機器通常具有由從工業(yè)控制器系統(tǒng)接收的指令驅(qū)動的各種運動部件和其他組件。機器制造商、解決方案提供商和其他內(nèi)容創(chuàng)建者通常生產(chǎn)運行這些控制器所需的控制邏輯以控制機器。
除了控制器邏輯以外,在工業(yè)自動化操作期間可以采用或生成其他內(nèi)容如數(shù)據(jù)集、驅(qū)動參數(shù)、凸輪表、產(chǎn)品配方、處方、生產(chǎn)數(shù)據(jù)和人機交互(hmi)組件。hmi接收并處理來自機器的狀態(tài)數(shù)據(jù)以生成各種圖形顯示。例如,hmi圖形顯示可以指示驅(qū)動器的狀態(tài)指標(biāo)、泵的壓力、電動機的速度或者機器人的輸出。hmi還可以為操作者提供機構(gòu)以將控制指令發(fā)送至控制機器的工業(yè)控制器系統(tǒng)。例如,操作者可以使用hmi來指示控制系統(tǒng)更新驅(qū)動參數(shù)、接通泵、加速電動機、或者停止機器人。
技術(shù)實現(xiàn)要素:
本文提供便于保護在工業(yè)自動化環(huán)境中使用的控制程序的系統(tǒng)、方法和軟件。在至少一個實施方式中,為工業(yè)控制器生成加密密鑰對,其中,加密密鑰對包括公鑰和私鑰。私鑰存儲在工業(yè)控制器的安全存儲系統(tǒng)內(nèi)。然后使用公鑰對控制器程序內(nèi)容進(jìn)行加密以生成經(jīng)加密的控制器內(nèi)容。然后,將經(jīng)加密的控制器內(nèi)容提供給工業(yè)控制器,并且該工業(yè)控制器被配置成使用私鑰對經(jīng)加密的控制器內(nèi)容進(jìn)行解密,并且執(zhí)行該控制器程序內(nèi)容。
提供該發(fā)明內(nèi)容來以簡化的形式介紹下面在具體實施方式中進(jìn)一步描述的構(gòu)思的選擇。應(yīng)該理解,該發(fā)明內(nèi)容不旨在識別所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護的主題的范圍。
附圖說明
參照下面的附圖可以更好地理解本公開內(nèi)容的許多方面。盡管結(jié)合這些附圖描述了若干實施方式,但是本公開內(nèi)容不限于本文所描述的實施方式。相反,其意圖是覆蓋所有替選、修改和等同形式。
圖1是以示例性實施方式例示描述邏輯源代碼的保護的工業(yè)自動化環(huán)境和操作方案的框圖。
圖2是以示例性實施方式例示工業(yè)自動化環(huán)境的操作的時序圖。
圖3是以示例性實施方式例示涉及工業(yè)自動化環(huán)境中的計算系統(tǒng)的操作方案的框圖。
圖4是以示例性實施方式例示計算系統(tǒng)的框圖。
具體實施方式
下面的描述和相關(guān)聯(lián)的附圖教示了本發(fā)明的最佳方式。出于教示發(fā)明原理的目的,可以簡化或省略最佳方式的一些常規(guī)方面。下面的權(quán)利要求指定了本發(fā)明的范圍。注意,最佳方式的一些方面可以不落在如由權(quán)利要求指定的本發(fā)明的范圍內(nèi)。因此,本領(lǐng)域技術(shù)人員將根據(jù)最佳方式認(rèn)識到落在本發(fā)明的范圍內(nèi)的變型。本領(lǐng)域技術(shù)人員將認(rèn)識到,可以以各種方式組合下面描述的特征以形成本發(fā)明的多個變型。因此,本發(fā)明不限于下面描述的具體示例,而僅由權(quán)利要求及其等同形式來限制。
本文所公開的實施方式提供了與工業(yè)自動化相關(guān)的知識產(chǎn)權(quán)的數(shù)字版權(quán)管理。例如,解決方案提供商或系統(tǒng)集成商可以利用集成架構(gòu)控制系統(tǒng)來生成機器邏輯、配置數(shù)據(jù)、例程、附加指令(aoi)、以及用于對邏輯控制器進(jìn)行編程的其他內(nèi)容,所述邏輯控制器控制用在工業(yè)自動化中使用的機器的操作。應(yīng)該保護這樣的控制器內(nèi)容以免被未經(jīng)授權(quán)方查看、編輯或執(zhí)行。本文所公開的是用于控制訪問和使用控制器項目文件和其他控制程序的內(nèi)容控制系統(tǒng)。利用該系統(tǒng),機器制造商、內(nèi)容創(chuàng)建者、原始設(shè)備制造商(oem)和解決方案提供商可以控制其知識產(chǎn)權(quán)的泄漏、控制將在其上運行內(nèi)容的裝置,即使該裝置正在不受控或潛在敵對的環(huán)境中運行或者需要經(jīng)由不安全的網(wǎng)絡(luò)發(fā)送內(nèi)容。
為了實現(xiàn)該保護,為將在其上運行受保護的內(nèi)容的每個裝置生成唯一的公/私加密密鑰對。私鑰可以以安全存儲硬件存儲在裝置內(nèi)。然后,將公鑰包括在由證書機構(gòu)生成并簽名的證書中。此時,然后使用裝置的公鑰對內(nèi)容進(jìn)行加密;這確保了僅該裝置能夠解密該內(nèi)容。未來的內(nèi)容可以由內(nèi)容創(chuàng)建者來生成,并且專門針對該裝置進(jìn)行加密。有利地,即使該裝置存在于潛在敵對的環(huán)境中,也可以將該內(nèi)容傳送至該裝置,使得將保持該內(nèi)容的機密性。注意,可以由內(nèi)容創(chuàng)建者或裝置供應(yīng)商來生成公/私加密密鑰對和證書機構(gòu),在任一情況下,保護內(nèi)容的步驟相同。此外,通過使用多于一個的加密密鑰可以實現(xiàn)另外的安全益處。例如,密鑰可以存儲在控制器的安全存儲器內(nèi),以及與安全存儲器一起包含在可移除介質(zhì)如安全數(shù)字(sd)卡上。
現(xiàn)在,參照附圖,圖1例示了描述控制器內(nèi)容的保護的示例性工業(yè)自動化環(huán)境。圖2以示例性實施方式例示了針對裝置的內(nèi)容進(jìn)行加密的操作的時序圖。圖3例示了包括計算系統(tǒng)的示例性工業(yè)自動化環(huán)境,該計算系統(tǒng)可以用于執(zhí)行控制程序保護過程,并且圖4例示了可以用于執(zhí)行本文所描述的過程和操作方案中的任意過程和操作方案的示例性計算系統(tǒng)。
現(xiàn)在轉(zhuǎn)向圖1,示出了以示例性實施方式例示工業(yè)自動化環(huán)境100的框圖。工業(yè)自動化環(huán)境100包括計算系統(tǒng)101、工業(yè)控制器120和機器系統(tǒng)130。工業(yè)控制器120和機器系統(tǒng)130通過通信鏈路進(jìn)行通信。計算系統(tǒng)101被示出為正在運行控制程序編輯器110。在一些示例中,控制程序編輯器110可以包括由洛克威爾自動控制技術(shù)股份有限公司提供的rslogixtm系統(tǒng)或者studio
工業(yè)自動化環(huán)境100包括汽車制造廠、食品加工廠、石油鉆井作業(yè)、微處理器制造設(shè)施、或一些其他類型的工業(yè)企業(yè)。機器系統(tǒng)130可以包括包含其相關(guān)聯(lián)的控制系統(tǒng)的傳感器、驅(qū)動器、泵、過濾器、鉆孔機、電動機、機器人、制造機械、磨粉機、印刷機或任何其他工業(yè)自動化設(shè)備??刂葡到y(tǒng)包括例如工業(yè)控制器120,其可以包括自動化控制器、可編程邏輯控制器(plc)或用在自動化控制中的其他任何控制器。在一些示例中,工業(yè)控制器120可以包括由洛克威爾自動控制技術(shù)股份有限公司提供的
由控制程序編輯器110生成的控制器邏輯內(nèi)容提供控制指令,該控制指令可以由工業(yè)控制器120處理以控制機器系統(tǒng)130的操作??刂破鬟壿媰?nèi)容包括梯形邏輯、例程和附加指令(aoi)等其他源數(shù)據(jù)。aoi通過創(chuàng)建較簡單的指令來提供設(shè)計更多模塊代碼的能力,較簡單的指令可以用于通過嵌套指令來構(gòu)建更復(fù)雜的功能。
原始設(shè)備制造商(oem)、解決方案提供商、機器制造商、系統(tǒng)集成商和其他設(shè)計者通常使用控制程序編輯器110來生成控制器邏輯內(nèi)容。oem通常設(shè)計和/或制造機器以及其相關(guān)聯(lián)的控制指令。解決方案提供商或系統(tǒng)集成商常常開發(fā)產(chǎn)品而不一定制造或銷售機器或設(shè)備。相反,解決方案提供商通常設(shè)計控制器邏輯代碼以對系統(tǒng)進(jìn)行編程,從而解決工業(yè)問題。例如,解決方案提供商可以使用控制程序編輯器110來生成梯形邏輯,該梯形邏輯指示工業(yè)控制器120驅(qū)動機器系統(tǒng)130,從而以新的且比常用的工業(yè)標(biāo)準(zhǔn)技術(shù)更高效的方式來從樹液中生產(chǎn)楓糖漿。oem、解決方案提供商或控制程序內(nèi)容的其他設(shè)計者和創(chuàng)建者對保護他們的專用控制器邏輯代碼以免被未經(jīng)授權(quán)的第三方(包括購買代碼的終端用戶)查看和編輯具有興趣。
如由圖1中出現(xiàn)的鎖定圖標(biāo)所示的,保護可以應(yīng)用于控制系統(tǒng)內(nèi)容以保護控制器邏輯源代碼和其他內(nèi)容以免被未經(jīng)許可而使用,其包括未經(jīng)授權(quán)的查看、編輯和執(zhí)行??刂葡到y(tǒng)內(nèi)容保護可以提供對查看或編輯控制系統(tǒng)內(nèi)容的訪問的設(shè)計時間控制和在控制系統(tǒng)內(nèi)容的執(zhí)行期間的運行時間控制。在一些示例中,該保護可以通過控制程序編輯器110或任何其他軟件、裝置或系統(tǒng)應(yīng)用于控制系統(tǒng)內(nèi)容。
執(zhí)行內(nèi)容的裝置如工業(yè)控制器120需要能夠以不暴露知識產(chǎn)權(quán)的安全的方式執(zhí)行內(nèi)容??梢栽趩为毜沫h(huán)境中針對裝置創(chuàng)建內(nèi)容,并且然后在到達(dá)該裝置之前經(jīng)由不安全的網(wǎng)絡(luò)或其他介質(zhì)被傳輸。此外,應(yīng)該將內(nèi)容與一個或更多個裝置專門地捆綁,使得其不能在任何相似的未經(jīng)授權(quán)的裝置上被自由地復(fù)制和執(zhí)行。使用強公鑰密碼技術(shù)、安全的密鑰存儲器和具有根源可靠性的公鑰基礎(chǔ)設(shè)施使內(nèi)容能夠被加密,使得其僅可以由指定的裝置來解密和執(zhí)行。
內(nèi)容創(chuàng)建者希望創(chuàng)建下述內(nèi)容,該內(nèi)容不能被第三方讀取或復(fù)制,但仍可以無縫地在其旨在針對的一個或多個裝置上執(zhí)行。不能對用于將該內(nèi)容從內(nèi)容創(chuàng)建者的環(huán)境傳輸至接收裝置的機構(gòu)作出保證。因此,即使內(nèi)容存在于潛在敵對的環(huán)境中,內(nèi)容創(chuàng)建者也必須采取適當(dāng)?shù)牟襟E來保護內(nèi)容的知識產(chǎn)權(quán)。使用全局加密密鑰來解決該問題的嘗試具有顯著的弱點:如果攻擊者發(fā)現(xiàn)了全局密鑰,則曾經(jīng)使用該機構(gòu)的所有內(nèi)容會處于暴露的風(fēng)險中。此外,使用全局密鑰意味著在潛在的攻擊者與潛在的內(nèi)容創(chuàng)建者之間不能做出區(qū)分,這是由于同一方可以容易地扮演這兩個角色。
為了實現(xiàn)裝置專用的加密內(nèi)容保護,在至少一個實施方式中,為將在其上運行受保護的內(nèi)容的每個裝置生成唯一的公/私加密密鑰對。在圖1的示例中,將在工業(yè)控制器120上運行內(nèi)容,所以為控制器120生成唯一的公/私加密密鑰對。私鑰以安全的存儲硬件存儲在控制器120內(nèi)。然后將公鑰包括在由證書機構(gòu)生成并簽名的證書中。
在公/私加密密鑰就位后,然后使用裝置的公鑰對內(nèi)容進(jìn)行加密。例如,用戶可以使用控制程序編輯器110來生成控制程序內(nèi)容,并且然后使用工業(yè)控制器120的公鑰對控制程序內(nèi)容進(jìn)行加密,這確保了僅工業(yè)控制器120能夠解密該內(nèi)容。以這種相同的方式,將來可以由內(nèi)容創(chuàng)建者生成附加內(nèi)容,并且然后專門針對工業(yè)控制器120對該附加內(nèi)容進(jìn)行加密。有利地,即使工業(yè)控制器120存在于潛在敵對的環(huán)境中,也可以將加密的內(nèi)容傳送至工業(yè)控制器120,使得將保持該內(nèi)容的機密性。注意,可以由內(nèi)容創(chuàng)建者或工業(yè)控制器120的供應(yīng)商來生成公/私加密密鑰對和證書機構(gòu),在任一情況下保護內(nèi)容的步驟保持相同。可以通過使用多于一個的加密密鑰來實現(xiàn)另外的安全益處。例如,密鑰可以存儲在工業(yè)控制器120的安全存儲系統(tǒng)內(nèi),以及與安全存儲器一起包含在可移除介質(zhì)如安全數(shù)字(sd)卡上。此外,如果還要求內(nèi)容的強認(rèn)證,則可以對裝置授予由內(nèi)容創(chuàng)建者生成的證書。如果是這種情況,則內(nèi)容創(chuàng)建者將對發(fā)送至裝置的所有內(nèi)容進(jìn)行簽名,并且裝置將使用證書對內(nèi)容進(jìn)行驗證。除了內(nèi)容加密以外或代替內(nèi)容加密,可以采用該簽名的證書認(rèn)證。
這種保護技術(shù)為內(nèi)容創(chuàng)建者提供了多個益處。除了限制他們的知識產(chǎn)權(quán)的暴露,內(nèi)容創(chuàng)建者還能夠控制在其上運行內(nèi)容的裝置,從而在內(nèi)容創(chuàng)建者的直接控制下配售(place)裝置更換的銷售。例如,為了控制裝置更換的市場,終端用戶可能被要求直接從內(nèi)容創(chuàng)建者購買更換裝置,這在使用以前的方案時是不可能的。即使裝置正在潛在敵對的環(huán)境中運行或者內(nèi)容需要通過潛在敵對的網(wǎng)絡(luò)來傳遞,內(nèi)容創(chuàng)建者也可以使用公鑰容易地為裝置更新內(nèi)容或生產(chǎn)新的內(nèi)容。此外,可以自由地分配公鑰,使得任何一方可以針對給定的裝置創(chuàng)建內(nèi)容,這是由于公鑰不具有機密性的限制。以這種方式保護的內(nèi)容還使得合法用戶能夠無縫地運行內(nèi)容,并且提供強有力的保障使得內(nèi)容在裝置上被執(zhí)行之前尚未被篡改。現(xiàn)在將參照圖2來討論便于保護控制系統(tǒng)內(nèi)容的計算系統(tǒng)101的示例性操作。
圖2是以示例性實施方式例示工業(yè)自動化環(huán)境100的操作的時序圖。在該示例中,內(nèi)容創(chuàng)建者使用在計算系統(tǒng)101上運行的控制程序編輯器110來生成旨在工業(yè)控制器120上執(zhí)行的內(nèi)容。首先,為裝置生成包括公鑰和私鑰的加密密鑰對。私鑰秘密地存儲在工業(yè)控制器120的安全存儲系統(tǒng)內(nèi)。然后將公鑰包括在由證書機構(gòu)生成并簽名的證書中。然后內(nèi)容創(chuàng)建者創(chuàng)建旨在工業(yè)控制器120上執(zhí)行的內(nèi)容,并且使用裝置的公鑰對內(nèi)容進(jìn)行加密。然后,內(nèi)容創(chuàng)建者能夠?qū)⒓用艿膬?nèi)容安全地傳輸至裝置,該裝置使用私鑰對內(nèi)容進(jìn)行解密并且運行該內(nèi)容。
如果終端用戶從也可以運行該內(nèi)容的內(nèi)容創(chuàng)建者購買另一控制器,則內(nèi)容創(chuàng)建者可能希望阻止終端用戶使用這第二個裝置來執(zhí)行未經(jīng)授權(quán)的內(nèi)容。然而,因為使用與工業(yè)控制器120相關(guān)聯(lián)的公鑰對內(nèi)容進(jìn)行了加密,所以僅控制器120能夠解密和執(zhí)行該內(nèi)容,這是由于任何其他的裝置不會具有控制器120的唯一私鑰。此外,如果使用控制器120的公鑰來生成和加密專用在工業(yè)控制器120上的新內(nèi)容,則內(nèi)容創(chuàng)建者可以將該加密的內(nèi)容提供至終端用戶而不必?fù)?dān)心任何未經(jīng)授權(quán)的執(zhí)行。這是因為終端用戶試圖在除控制器120以外的任何裝置上運行該內(nèi)容的任何嘗試都不會成功,因為僅工業(yè)控制器120具有解密該內(nèi)容所需的私鑰。針對終端用戶期望在其上運行內(nèi)容的任何其他裝置,內(nèi)容創(chuàng)建者可以使用不同的公/私密鑰對來對內(nèi)容進(jìn)行加密。
有利地,通過使用與控制器120相關(guān)聯(lián)的公鑰對控制系統(tǒng)內(nèi)容進(jìn)行加密,計算系統(tǒng)101生成加密的控制器內(nèi)容,從而確保了僅控制器120可以解密和執(zhí)行內(nèi)容。通過保護控制系統(tǒng)內(nèi)容,本文中所描述的技術(shù)提供了以下技術(shù)優(yōu)點:電子保護專有數(shù)據(jù)以免被未經(jīng)許可地訪問、執(zhí)行和任何其他使用。此外,通過消除控制系統(tǒng)內(nèi)容的未經(jīng)授權(quán)的訪問和使用,可以減小工業(yè)自動化環(huán)境的處理器、機械組件和其他元件上的負(fù)荷,從而通過避免未經(jīng)授權(quán)的操作來導(dǎo)致顯著的能量節(jié)約。以這種方式,控制系統(tǒng)內(nèi)容的擁有者可以更好地保護他們生產(chǎn)的內(nèi)容和管理他們的數(shù)字版權(quán)。
現(xiàn)在轉(zhuǎn)向圖3,示出了以示例性實施方式例示工業(yè)自動化環(huán)境350的框圖。工業(yè)自動化環(huán)境350提供了可以用于實施本文所公開的控制程序保護過程的工業(yè)自動化環(huán)境的示例,但是也可以使用其他環(huán)境。工業(yè)自動化環(huán)境350包括計算系統(tǒng)310、機器系統(tǒng)320、工業(yè)控制器325、數(shù)據(jù)庫系統(tǒng)330和應(yīng)用集成平臺335。機器系統(tǒng)320和工業(yè)控制器325通過通信鏈路進(jìn)行通信,工業(yè)控制器325和數(shù)據(jù)庫系統(tǒng)330通過通信鏈路進(jìn)行通信,數(shù)據(jù)庫系統(tǒng)330和應(yīng)用集成平臺335通過通信鏈路進(jìn)行通信,并且應(yīng)用集成平臺335和計算系統(tǒng)310通過通信鏈路進(jìn)行通信。注意,通常在大部分工業(yè)自動化環(huán)境中會存在許多更多的機器系統(tǒng),但是為了清楚起見,已經(jīng)限制了圖3中所示的機器系統(tǒng)的數(shù)目。
工業(yè)自動化環(huán)境350包括汽車制造廠、食品加工廠、石油鉆井作業(yè)、微處理器制造設(shè)施、或一些其他類型的工業(yè)企業(yè)。機器系統(tǒng)320可以包括包含其相關(guān)聯(lián)的控制系統(tǒng)的傳感器、驅(qū)動器、泵、過濾器、鉆孔機、電動機、機器人、制造機械、磨粉機、印刷機或任何其他工業(yè)自動化設(shè)備??刂葡到y(tǒng)包括例如工業(yè)控制器325,其可以包括自動化控制器、可編程邏輯控制器(plc)、可編程自動控制器(pac)或用在自動化控制中的任何其他控制器。此外,機器系統(tǒng)320可以包括其他工業(yè)設(shè)備,如釀酒廠中的釀造鍋、煤或其他資源的儲備物、或者可以存在于工業(yè)自動化環(huán)境350中的任何其他元件。
機器系統(tǒng)320隨時間連續(xù)地產(chǎn)生操作數(shù)據(jù)。操作數(shù)據(jù)指示機器系統(tǒng)320的當(dāng)前狀態(tài)如參數(shù)、壓力、溫度、速度、能量使用率、操作設(shè)備效率(oee)、平均故障間隔時間(mtbf)、平均維護時間(mttr)、電壓、吞吐量、時間、罐內(nèi)物位或任何其他性能狀態(tài)指標(biāo)。操作數(shù)據(jù)可以包括動態(tài)圖表或趨勢、實時視頻或一些其他圖表內(nèi)容。機器系統(tǒng)320和/或控制器325通常能夠經(jīng)由通信網(wǎng)絡(luò)將通信鏈路上的操作數(shù)據(jù)傳輸至數(shù)據(jù)庫系統(tǒng)330、應(yīng)用集成平臺335和計算系統(tǒng)310。數(shù)據(jù)庫系統(tǒng)330可以包括磁盤、磁帶、集成電路、服務(wù)器或一些其他存儲裝置。數(shù)據(jù)庫系統(tǒng)330可以存在于單個裝置中,或者可以分布在多個存儲裝置中。
應(yīng)用集成平臺335包括處理系統(tǒng)和通信收發(fā)器。應(yīng)用集成平臺335還可以包括其他組件如路由器、服務(wù)器、數(shù)據(jù)存儲系統(tǒng)和電源。應(yīng)用集成平臺335可以存在于單個裝置中,或者可以分布在多個裝置之間。應(yīng)用集成平臺335可以是離散系統(tǒng)或者可以集成在其他系統(tǒng)內(nèi)——包括工業(yè)自動化環(huán)境350內(nèi)的其他系統(tǒng)。在一些示例中,應(yīng)用集成平臺335可以包括由洛克威爾自動控制技術(shù)股份有限公司提供的factory
通過其在機器系統(tǒng)320、工業(yè)控制器325、數(shù)據(jù)庫系統(tǒng)330、應(yīng)用集成平臺335與計算系統(tǒng)310的通信接口308之間交換數(shù)據(jù)的通信鏈路可以使用金屬、空氣、空間、光纖如玻璃或塑料或一些其他材料(包括它們的組合)作為傳輸介質(zhì)。通信鏈路可以包括用于提供通信和數(shù)據(jù)服務(wù)的多個網(wǎng)絡(luò)元件如路由器、網(wǎng)關(guān)、電信開關(guān)、服務(wù)器、處理系統(tǒng)或其他通信設(shè)備和系統(tǒng)。這些通信鏈路可以使用各種通信協(xié)議如時分多路復(fù)用(tdm)、因特網(wǎng)協(xié)議(ip)、以太網(wǎng)、電話通訊、光聯(lián)網(wǎng)、包網(wǎng)絡(luò)、無線網(wǎng)狀網(wǎng)絡(luò)(wmn)、局域網(wǎng)(lan)、城域網(wǎng)(man)、廣域網(wǎng)(wan)、光纖同軸電纜混合網(wǎng)(hfc)、通信信號、無線協(xié)議、通信信號、藍(lán)牙對等網(wǎng)絡(luò)、低功耗藍(lán)牙、wi-fi直連(wi-fidirect)、近場通信(nfc)或一些其他通信形式(包括它們的組合)。通信鏈路可以是直接鏈路或者可以包括中間網(wǎng)絡(luò)、系統(tǒng)或裝置。
計算系統(tǒng)310可以是可以在其上合適地實施本文所公開的控制程序保護過程及其變型的任何計算設(shè)備、一個或多個系統(tǒng)的代表。雖然這樣的裝置可以具有替選的配置,但是在一些實施方式中,計算系統(tǒng)310提供可以用作服務(wù)器或客戶端裝置的計算系統(tǒng)的示例。計算系統(tǒng)310的示例包括移動計算裝置如手機、平板電腦、膝上型計算機、筆記本電腦和游戲裝置、以及任何其他類型的移動計算裝置及其任何組合或變型。計算系統(tǒng)310的示例還包括臺式計算機、服務(wù)器計算機和虛擬機、以及任何其他類型的計算系統(tǒng)及其變型或組合。在一些實施方式中,計算系統(tǒng)310可以包括能夠以類似服務(wù)器的方式操作的移動裝置,除了其他用途以外,其還可以在無線網(wǎng)狀網(wǎng)絡(luò)中使用。
計算系統(tǒng)310包括處理系統(tǒng)301、存儲系統(tǒng)303、軟件305、通信接口308和用戶接口309。處理系統(tǒng)301可操作地與存儲系統(tǒng)303、通信接口308和用戶接口309耦接。處理系統(tǒng)301從存儲系統(tǒng)303加載并執(zhí)行軟件305。軟件305包括應(yīng)用程序306和操作系統(tǒng)307。在一些示例中,應(yīng)用程序306可以包括控制程序保護過程300。當(dāng)總體上由計算系統(tǒng)310執(zhí)行軟件305,并且特別地由處理系統(tǒng)301執(zhí)行軟件305時,軟件305指示計算系統(tǒng)310如本文所描述的那樣對控制程序保護過程200或其變型進(jìn)行操作。在該示例中,用戶接口309包括顯示系統(tǒng)311,所述顯示系統(tǒng)311本身可以是觸摸屏幕的一部分,所述觸摸屏幕也經(jīng)由在其表面上的觸摸來接受用戶輸入。計算系統(tǒng)310可以可選地包括出于簡潔的目的而未在此討論的另外的裝置、特征或功能。
現(xiàn)在轉(zhuǎn)向圖4,示出了以示例性實施方式例示計算系統(tǒng)400的框圖。雖然這樣的系統(tǒng)可以使用替選的配置,但是計算系統(tǒng)400提供計算系統(tǒng)101、310或者可以用于執(zhí)行控制程序保護過程200或其變型的任何計算系統(tǒng)的示例。計算系統(tǒng)400包括處理系統(tǒng)401、存儲系統(tǒng)403、軟件405、通信接口407和用戶接口409。用戶接口409包括顯示系統(tǒng)408。軟件405包括應(yīng)用程序406,應(yīng)用程序406本身包括控制程序保護過程200??蛇x地,可以與應(yīng)用程序406分離地來實施控制程序保護過程200。
計算系統(tǒng)400可以是可以在其上合適地實施應(yīng)用程序406和控制程序保護過程200或其變型的任何計算設(shè)備、一個或多個系統(tǒng)的代表。計算系統(tǒng)400的示例包括移動計算裝置如手機、平板電腦、膝上型計算機、筆記本電腦和游戲裝置、以及任何其他類型的移動計算裝置及其任何組合或變型。注意,計算系統(tǒng)400的特征和功能也可以應(yīng)用于臺式計算機、服務(wù)器計算機和虛擬機、以及任何其他類型的計算系統(tǒng)及其變型或組合。
計算系統(tǒng)400包括處理系統(tǒng)401、存儲系統(tǒng)403、軟件405、通信接口407和用戶接口409。處理系統(tǒng)401可操作地與存儲系統(tǒng)403、通信接口407和用戶接口409耦接。處理系統(tǒng)401從存儲系統(tǒng)403加載并執(zhí)行軟件405。當(dāng)總體上由計算系統(tǒng)400執(zhí)行軟件405,并且特別地由處理系統(tǒng)401執(zhí)行軟件405時,軟件405指示計算系統(tǒng)400如本文所描述的那樣對控制程序保護過程200或其變型進(jìn)行操作。計算系統(tǒng)400可以可選地包括出于簡潔的目的而未在此討論的另外的裝置、特征或功能。
仍參照圖4,處理系統(tǒng)401可以包括從存儲系統(tǒng)403取得并執(zhí)行軟件405的微處理器和其他電路。可以在單個處理裝置內(nèi)實施處理系統(tǒng)401,但是處理系統(tǒng)401也可以分布在合作執(zhí)行程序指令的多個處理裝置或子系統(tǒng)之間。處理系統(tǒng)401的示例包括通用中央處理單元、專用處理器和邏輯裝置以及任何其他類型的處理裝置及其組合或變型。
存儲系統(tǒng)403可以包括能夠由處理系統(tǒng)401讀取并且能夠存儲軟件405的任何計算機可讀介質(zhì)或存儲介質(zhì)。存儲系統(tǒng)403可以包括以用于存儲信息如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)的任何方法或技術(shù)實施的易失性和非易失性介質(zhì)、可移除和不可移除介質(zhì)。存儲系統(tǒng)403可以被實施為單個存儲裝置,但是也可以在相對于彼此共同定位或分布的多個存儲裝置或子系統(tǒng)之間實施。存儲系統(tǒng)403可以包括能夠與處理系統(tǒng)401通信的附加元件如控制器。存儲介質(zhì)的示例包括隨機存取存儲器、只讀存儲器、磁盤、光盤、閃存、虛擬存儲器和非虛擬存儲器、磁帶盒、磁帶、磁盤存儲器或其他磁存儲裝置、或者可以用于存儲期望的信息并且可以由指令執(zhí)行系統(tǒng)訪問的任何其他介質(zhì)及其任何組合或變型、或者任何其他類型的存儲介質(zhì)。無論如何,存儲介質(zhì)不是傳播的信號。
在操作中,與用戶接口409結(jié)合,處理系統(tǒng)401加載并執(zhí)行軟件405的部分如控制程序保護過程200以通過用戶接口409的顯示系統(tǒng)408的顯示來呈現(xiàn)應(yīng)用程序406的圖形用戶界面。當(dāng)總體上由計算系統(tǒng)400執(zhí)行或者特別地由處理系統(tǒng)401執(zhí)行軟件405時,軟件405可以以程序指令等其他功能來實施,并且指示計算系統(tǒng)400或處理系統(tǒng)401生成針對工業(yè)控制器的加密密鑰對,其中,加密密鑰對包括公鑰和私鑰,并且私鑰存儲在工業(yè)控制器的安全存儲系統(tǒng)內(nèi)。軟件405可以進(jìn)一步指示計算系統(tǒng)400或處理系統(tǒng)401使用公鑰對控制器程序內(nèi)容進(jìn)行加密以生成加密的控制器內(nèi)容。此外,軟件405指示計算系統(tǒng)400或處理系統(tǒng)401將加密的控制器內(nèi)容提供至工業(yè)控制器,其中,工業(yè)控制器被配置成使用私鑰對加密的控制器內(nèi)容進(jìn)行解密并且執(zhí)行控制器程序內(nèi)容。
軟件405可以包括另外的過程、程序或組件如操作系統(tǒng)軟件或其他應(yīng)用軟件。操作系統(tǒng)的示例包括
通常,當(dāng)將軟件405加載至處理系統(tǒng)401中并且被執(zhí)行時,軟件405可以將計算系統(tǒng)400從通用計算系統(tǒng)整體轉(zhuǎn)換成專用計算系統(tǒng),針對每個實施方式定制該專用計算系統(tǒng)以便于保護在如本文所描述的工業(yè)自動化環(huán)境中使用的控制程序。例如,存儲系統(tǒng)403上的編碼軟件405可以轉(zhuǎn)換存儲系統(tǒng)403的物理結(jié)構(gòu)。在本說明書的不同實施方式中,物理結(jié)構(gòu)的具體轉(zhuǎn)換可以取決于各種因素。這些因素的示例可以包括但不限于用于實施存儲系統(tǒng)403的存儲介質(zhì)的技術(shù)以及計算機存儲介質(zhì)被表征為主存儲器還是輔助存儲器。
在一些示例中,如果計算機存儲介質(zhì)被實施為基于半導(dǎo)體的存儲器,則當(dāng)半導(dǎo)體存儲器中編碼有程序時,軟件405可以轉(zhuǎn)換半導(dǎo)體存儲器的物理狀態(tài)。例如,軟件405可以轉(zhuǎn)換構(gòu)成半導(dǎo)體存儲器的晶體管、電容器或其他離散電路元件的狀態(tài)。對于磁介質(zhì)或光學(xué)介質(zhì)可以發(fā)生類似的轉(zhuǎn)換。在不偏離本說明書的范圍的情況下,物理介質(zhì)的其他轉(zhuǎn)換也是可能的,提供前述示例僅是為了便于該討論。
應(yīng)當(dāng)理解,計算系統(tǒng)400通常旨在表示可以使用其來部署并執(zhí)行軟件405以實施應(yīng)用程序406和/或控制程序保護過程200(及其變型)的計算系統(tǒng)。然而,計算系統(tǒng)400還可以表示可以在其上存儲軟件405并且軟件405可以從其中分配、傳輸、下載或者提供至又一計算系統(tǒng)以用于部署和執(zhí)行或者再分配的任何計算系統(tǒng)。例如,計算系統(tǒng)405可以被配置成:如以基于云的部署方案,通過因特網(wǎng)將軟件405部署至一個或更多個客戶端計算系統(tǒng)以用于在其上執(zhí)行軟件405。
通信接口407可以包括使得能夠通過通信網(wǎng)絡(luò)411或網(wǎng)絡(luò)集在計算系統(tǒng)400與其他計算系統(tǒng)(未示出)或服務(wù)之間進(jìn)行通信的通信連接和裝置。在一些實施方式中,通信接口407通過通信網(wǎng)絡(luò)411接收動態(tài)數(shù)據(jù)421。一起使得能夠進(jìn)行系統(tǒng)內(nèi)通信的連接和裝置的示例可以包括網(wǎng)絡(luò)接口卡、天線、功率放大器、rf電路、收發(fā)器和其他通信電路。上述網(wǎng)絡(luò)、連接和裝置是公知的并且不需要在此進(jìn)行長篇討論。
用戶接口409可以包括語音輸入裝置、用于從用戶接收手勢的觸摸輸入裝置、用于檢測用戶的非觸摸手勢和其他運動的運動輸入裝置以及能夠從用戶接收用戶輸入的其他可比的輸入裝置及相關(guān)聯(lián)的處理元件。其他裝置如顯示系統(tǒng)408、揚聲器、觸覺式裝置和其他類型的輸出裝置也可以包括在用戶接口409中。上述用戶輸入裝置在本領(lǐng)域中是公知的,并且不需要在此進(jìn)行長篇討論。用戶接口409還可以包括能夠由支持以上所討論的各種用戶輸入和輸出裝置的處理系統(tǒng)401執(zhí)行的相關(guān)聯(lián)的用戶接口軟件。與彼此和其他硬件和軟件元件分離或者與彼此和其他硬件和軟件元件結(jié)合,用戶接口軟件和裝置可以提供圖形用戶界面、自然用戶界面或任何其他類型的用戶界面。
附圖中提供的功能框圖、操作時序圖和流程圖表示用于執(zhí)行本公開內(nèi)容的新的方面的示例性的架構(gòu)、環(huán)境和方法。雖然出了簡化說明的目的,本文中所包括的方法可以呈功能圖、操作時序圖或流程圖的形式,并且可以被描述為一系列動作,但是應(yīng)當(dāng)理解,方法不受動作的順序的限制,如根據(jù)該方法,本文所示出和描述的一些動作可以以不同的順序發(fā)生和/或與其他動作同時發(fā)生。例如,本領(lǐng)域技術(shù)人員將理解,方法可以替選地如以狀態(tài)圖表示為一系列相互關(guān)聯(lián)的狀態(tài)或事件。此外,方法中所示的所有動作并非都可以要求新的實施方式。
以上描述和相關(guān)聯(lián)的附圖教示了本發(fā)明的最佳方式。下面的權(quán)利要求指定本發(fā)明的范圍。最佳方式的一些方面可以不落在本發(fā)明的由權(quán)利要求指定的范圍內(nèi)。此外,雖然之前的討論描述了結(jié)合工業(yè)過程的監(jiān)測和分析具體采用的實施例,但是其他應(yīng)用如任何人造系統(tǒng)或自然存在的系統(tǒng)的數(shù)學(xué)建?;虮O(jiān)測可以得益于以上所討論的構(gòu)思的用途。此外,本領(lǐng)域技術(shù)人員將理解,以上所描述的特征可以以各種方式進(jìn)行組合以形成本發(fā)明的多個變型。因此,本發(fā)明不限于以上所描述的具體實施例,而僅由下面的權(quán)利要求及其等同形式來限制。