控制系統、程序發送裝置、認證服務器、程序保護方法、程序發送方法以及程序發送裝置的程序的制作方法
【技術領域】
[0001]本發明涉及控制系統、程序發送裝置程序、認證服務器、程序保護方法以及程序發送方法。
【背景技術】
[0002]在工廠自動化(Factory.Automat1n:FA)系統中,配置有用于控制工場內的生產設備的動作的控制器。該控制器被稱為可編程邏輯控制器(Programmable.Logic.Controller:PLC)。用于使PLC進行動作的控制程序使用梯形圖等語言進行設計。使用梯形圖程序開發環境將設計出的控制程序變換成執行用控制程序,并經由通信線纜寫入至PLC。如上所述,將開發控制程序、并向PLC寫入控制程序的裝置稱為開發用計算機。
[0003]梯形圖程序開發環境作為在Windows (注冊商標)上運行的軟件被大量地出售。如果具有運行Windows (注冊商標)的計算機、和梯形圖程序開發環境,則能夠使用計算機容易地進行向PLC寫入執行用控制程序、和從PLC讀出執行用控制程序。因此,近年來發生了下述問題,即,從已經在工場中取得運轉實績的PLC中抽取執行用控制程序,模仿該程序而制作出用于控制其他生產設備的動作的PLC。
[0004]為了應對如上所述的問題,采取了用于防止在FA系統中改用模仿品的各種對策。作為一個具體例子,根據專利文獻1,在向PLC寫入控制程序的執行用控制程序時,開發用計算機將執行用控制程序加密而轉送至PLC。在執行控制程序時,PLC解析預先生成的加密規則,提取已在開發用計算機中登記的控制儀器固有的信息。而且,介紹了下述技術,即,PLC基于提取出的控制儀器固有的信息,確認執行用控制程序是否是控制儀器(PLC)固有的程序,如果是固有的程序,則通過在PLC中解密出執行用控制程序,從而保護PLC內部的數據。
[0005]專利文獻1:日本特開2008-65678號公報
【發明內容】
[0006]在專利文獻I所示的方式中,執行用控制程序的加密、解密所需的信息由開發用計算機進行管理,因此,存在下述課題,即,如果盜取開發用計算機,則能夠容易地得到執行用控制程序的解密所需的密鑰,因此,無法保護執行用控制程序。
[0007]另外,在構建、使用FA系統時,大多數情況下進行PLC的控制程序的開發、設計的公司與進行維護的公司是不同的。在該狀況下,執行用控制程序的解密所需的密鑰由開發出PLC的執行用控制程序的公司的計算機創建。但是,包含該密鑰在內,將開發數據作為機密信息在公司內進行管理,因此,在公司不同的情況下,從機密管理的方面考慮,難以進行公司之間的數據傳遞。由此,在進行維護的公司中,無法得到PLC的控制程序的解密所需的密鑰,因此,在專利文獻I所示的方式中,存在無法由進行維護的公司的計算機閱覽控制程序的課題。
[0008]另外,專利文獻I所示的方式是在始終與網絡連接的狀態下,將執行用控制程序以及執行用控制程序的加密、解密所需的信息在開發用個人計算機與控制儀器之間進行交換。因此,在專利文獻I所示的方式中,在網絡上進行轉送的數據量變多。因此,存在下述課題,即,如果將專利文獻I所示的方式應用于網絡質量較差的環境中,則會經常發生超時、通信線路故障,容易發生執行用控制程序的轉送失敗。
[0009]作為解決這些課題的方法,考慮下述方式,S卩,由開發出執行用控制程序的公司的計算機生成執行用控制程序的解密所需的密鑰,將生成的密鑰記錄至其他的介質(USB存儲器等),將介質從開發出執行用控制程序的公司送交至進行維護的公司。然后,維護執行用控制程序的公司能夠使用介質所記錄的密鑰,由維護執行用控制程序的公司的計算機閱覽控制程序。但是,在該方式中也留有下述課題,即,在介質被盜的情況下,執行用控制程序的解密所需的密鑰被泄漏,因此,無法保護控制程序。
[0010]本發明就是為了解決上述所示的課題而提出的,其目的在于,針對特定的用戶,容易從PLC讀出執行用控制程序、向PLC寫入執行用控制程序,并且,防止執行用控制程序的閱覽、編輯所需的密鑰向除了特定的用戶以外的范圍泄露。
[0011]本發明所涉及的控制系統具有:控制裝置,其執行儀器的控制;程序發送裝置,其將記述有通過所述控制裝置執行的所述儀器的控制的源程序變換為能夠通過所述控制裝置執行的執行用程序,將變換后的所述執行用程序加密而生成加密執行用程序,將生成的所述加密執行用程序發送至所述控制裝置;以及認證服務器,
[0012]該控制系統的特征在于,所述程序發送裝置具有:
[0013]發送側獲取部,其獲取用于識別所述控制裝置的儀器標識符;以及
[0014]發送側通信部,其將編輯用密鑰和由所述發送側獲取部獲取到的所述儀器標識符發送至所述認證服務器,并且,將執行用密鑰和所述加密執行用程序發送至所述控制裝置,該編輯用密鑰在將所述加密執行用程序解密成所述執行用程序,并且將解密后的所述執行用程序變換為所述源程序時使用,該執行用密鑰在將所述加密執行用程序解密為所述執行用程序時使用,
[0015]所述認證服務器從所述發送側通信部接收所述編輯用密鑰和所述儀器標識符,將接收到的所述編輯用密鑰與所述儀器標識符相關聯地存儲至存儲裝置,
[0016]所述控制裝置接收由所述發送側通信部發送出的所述執行用密鑰和所述加密執行用程序,基于接收到的所述執行用密鑰和所述加密執行用程序,執行所述儀器的控制。
[0017]發明的效果
[0018]根據本發明所涉及的控制系統,能夠防止控制程序解讀所需的編輯用密鑰的泄漏,安全地保護控制程序,并且,即使寫入PLC的控制程序的公司與讀出PLC的控制程序的公司不同,也能夠提高從PLC讀出執行用控制程序、向PLC寫入執行用控制程序的便利性。
【附圖說明】
[0019]圖1是表示實施方式I所涉及的控制系統800的結構框圖。
[0020]圖2是表示實施方式I所涉及的開發用計算機200的詳細結構框圖。
[0021]圖3是表示實施方式I所涉及的管理服務器100所具有的用戶管理表101的結構圖。
[0022]圖4是表示實施方式I所涉及的管理服務器100、開發用計算機200、控制器300的硬件結構的一個例子的圖。
[0023]圖5是表示在實施方式I所涉及的控制系統800中,將執行用控制程序651從開發用計算機200寫出至控制器300的順序的時序圖。
[0024]圖6是表示實施方式I所涉及的管理服務器100的用戶認證處理710的流程的流程圖。
[0025]圖7是表示實施方式I所涉及的開發用計算機200的控制程序變換處理720的流程的流程圖。
[0026]圖8是表示實施方式I所涉及的管理服務器100的編輯用密鑰登記處理730的流程的流程圖。
[0027]圖9是表示在實施方式2所涉及的控制系統800中,將加密執行用控制程序651a從控制器300讀出至維護用計算機250的順序的時序圖。
[0028]圖10是表示實施方式2所涉及的管理服務器100的編輯用密鑰認證處理S750的流程的流程圖。
[0029]圖11是表示實施方式3所涉及的控制系統801的結構框圖。
[0030]圖12是表示在實施方式3所涉及的控制系統801中,將執行用控制程序651從開發用計算機200寫出至控制器300、300a、300b的順序的時序圖。
[0031]圖13是表示實施方式3所涉及的開發用計算機200的控制程序變換處理720的流程的流程圖。
[0032]圖14是表示在實施方式4所涉及的控制系統801中,將加密執行用控制程序651a從控制器300讀出至維護用計算機250的順序的時序圖。
[0033]圖15是實施方式5所涉及的控制系統802的結構框圖。
[0034]圖16是實施方式5所涉及的管理服務器100所具有的儀器識別ID表112的結構圖。
[0035]圖17是實施方式5所涉及的開發用計算機200的詳細結構框圖。
[0036]圖18是表示在實施方式5所涉及的控制系統800中,將執行用控制程序651從開發用計算機200寫出至控制器300的順序的時序圖。
[0037]圖19是表示實施方式5所涉及的開發用計算機200的有效期限設定處理S810的流程的流程圖。
[0038]圖20是表示實施方式5所涉及的管理服務器100的編輯用密鑰登記處理S770的流程的流程圖。
[0039]圖21是表示實施方式5所涉及的管理服務器100的有效期限確認處理S790的流程的流程圖。
[0040]圖22是表示在實施方式6所涉及的控制系統802中,將執行用控制程序651從開發用計算機200寫出至控制器300的順序的時序圖。
[0041]圖23是表示實施方式6所涉及的管理服務器100的編輯用密鑰認證處理S780的流程的流程圖。
【具體實施方式】
[0042]實施方式1.
[0043]圖1是表示本實施方式所涉及的控制系統800的結構框圖。
[0044]本實施方式所涉及的控制系統800例如是用于控制工場內的生產儀器500的動作的系統。
[0045]如圖1所示,控制系統800具有管理服務器100、開發用計算機200、以及控制器300。管理服務器100與開發用計算機200通過通信線路400連接。另外,開發用計算機200與控制器300通過通信線路401連接。
[0046]管理服務器100在控制系統800中,對進行控制程序的設計、維護等的用戶進行管理。管理服務器100是執行用戶的認證處理等的認證服務器的一個例子。
[0047]控制器300是執行儀器的控制的控制裝置的一個例子。
[0048]開發用計算機200接受由用戶進行的操作,基于接受到的操作的內容,執行控制程序的設計、開發等處理。
[0049]控制程序是記述有由控制器300執行的生產儀器500的控制的源程序。
[0050]開發用計算機200將控制程序變換成能夠由控制器300執行的執行用控制程序,并將變換后的執行用控制程序加密,生成加密后的執行用控制程序(加密執行用程序的一個例子)。
[0051]另外,開發用計算機200生成編輯用密鑰以及執行用密鑰,該編輯用密鑰在將加密后的執行用控制程序(下面,稱為加密執行用控制程序651a)解密成執行用控制程序、且將解密后的執行用控制程序變換成控制程序時使用,該執行用密鑰在將加密執行用控制程序651a解密成執行用控制程序時使用。
[0052]開發用計算機200是將加密執行用控制程序651a寫出至控制器300的程序發送裝置的一個例子。
[0053]將加密執行用控制程序651a寫出至控制器300是指,經由通信線路401將加密執行用控制程序651a發送至控制器300。
[0054]開發用計算機200從用戶接受將執行用控制程序寫出至控制器300的請求,將執行用控制程序和執行用密鑰寫出至控制器300,將用于閱覽控制程序的編輯用密鑰登記至管理服務器100。
[0055]控制系統800也可以與維護用計算機250連接。
[0056]維護用計算機250從控制器300接受讀出執行用控制程序的請求,從控制器300讀出加密執行用控制程序651a。
[0057]維護用計算機250在進行用戶的認證處理時從管理服務器100獲取編輯用密鑰。
[0058]在維護用計算機250中,使用編輯用密鑰將讀出的加密執行用控制程序651a變換成能夠閱覽的控制程序220。
[0059]開發用計算機200與維護用計算機250的內部結構相同。可以是在I臺計算機中具有開發用計算機200和維護用計算機250兩者的功能。或者,也可以是僅具有開發用計算機200和維護用計算機250中的某一個功能的I臺計算機。
[0060]例如,開發用計算機200是開發公司所使用的計算機,維護用計算機250是維護公司所利用的計算機。
[0061]控制器300通過執行控制程序,從而執行生產儀器500的控制。控制器300接收從開發用計算機200發送出的執行用密鑰和加密執行用控制程序651a,基于接收到的執行用密鑰和加密執行用控制程序651a,執行生產儀器500的控制。
[0062]使用圖1,對控制器300的功能進行說明。
[0063]控制器300具有通信控制部301、執行用控制程序保管部302、內部總線303、儀器識別ID管理部304、控制程序執行部305、以及解密部306。
[0064]控制器300的內部構成為,經由內部總線303,將通信控制部301、執行用控制程序保管部302、儀器識別ID管理部304、控制程序執行部305、解密部306進行了連接。
[0065]通信控制部301經由通信線路401與開發用計算機200的控制器通信部201連接。
[0066]通信線路401例如是USB線纜、與Ethernet (注冊商標)相對應的LAN線纜等。
[0067]執行用控制程序保管部302將執行用控制程序存儲至控制器300所具有的存儲裝置。
[0068]儀器識別ID管理部304將控制器300的儀器識別ID存儲至控制器300所具有的存儲裝置。
[0069]解密部306對由執行用控制程序保管部302保管的執行用控制程序進行解密。
[0070]控制程序執行部305與生產儀器500連接。控制程序執行部305通過執行由解密部306解密出的執行用控制程序,從而控制生產儀器500的動作。
[0071]控制程序執行部305從執行用控制程序保管部302依次讀出代碼,執行生產儀器500的控制所需的程序。
[0072]圖2是本實施方式所涉及的開發用計算機200的詳細結構框圖。
[0073]下面,使用圖1以及圖2,說明開發用計算機200的功能。
[0074]如圖1所示,開發用計算機200具有控制器通信部201 (發送側通信部、接收側通信部)、控制程序管理部202、以及服務器通信部203 (發送側通信部、接收側通信部)。
[0075]控制器通信部201經由通信線路401進行與控制器300的通信。
[0076]控制程序管理部202對控制程序220進行管理。另外,控制程序管理部202將控制程序220變換成執行用控制程序。將控制程序220變換成執行用控制程序是指,為了在控制器300 (PLC的一個例子)中執行,而對控制程序220實施所需的處理,生成執行用控制程序。
[0077]服務器通信部203經由通信線路400在與管理服務器100之間進行通信。
[0078]另外,如圖2所示,控制程序管理部202具有控制程序存儲部227、執行用程序變換部221、密鑰生成部223、解密部224、用戶操作接受部222、以及公司管理部226。
[0079]控制程序存儲部227將控制程序220存儲至開發用計算機200所具有的存儲裝置。
[0080]執行用程序變換部221將控制程序220變換成執行用控制程序。另外,執行用程序變換部221將執行用控制程序變換成控制程序220。
[0081]密鑰生成部223生成控制程序220的閱覽、控制程序220的執行所需的密鑰。
[0082]解密部224解密控制程序220的閱覽、控制程序220的執行所需的密鑰。
[0083]用戶操作接受部222 (發送側接受部、接收側接受部)接受用戶的操作,決定由執行用程序變換部221進行的處理。
[0084]公司管理部226對開發用計算機200的所屬公司進行管理。
[0085]圖3是本實施方式所涉及的管理服務器100所具有的用戶管理表101的結構圖。
[0086]下面,使用圖1以及圖3,對管理服務器100的功能進行說明。
[0087]如圖1所示,管理服務器100具有用戶管理表101、用戶通信部102(服務器側通信部)。
[0088]用戶管理表101是對與利用控制系統800的用戶,例如進行控制程序220的開發、維護等的用戶相關的信息進行管理的表。
[0089]用戶通信部102經由通信線路400與開發用計算機200進行通信。
[0090]如圖3所示,用戶管理表101具有用戶表110、所屬公司表