西門子PLC模塊CPU226型號(hào)216-2AD23-0XB8
使用 CSR
可通過以下兩種方式使用 CSR:
● 將 CSR 發(fā)送到證書頒發(fā)機(jī)構(gòu) (CA):讀取特定證書頒發(fā)機(jī)構(gòu)的信息。證書頒發(fā)機(jī)構(gòu)
(CA) 將檢查用戶的身份和信息(認(rèn)證),并使用該證書頒發(fā)機(jī)構(gòu)的私鑰對(duì)該證書進(jìn)行
簽名。如,接收已簽名的 X.509 證書,并將該證書用于 OPC UA、HTTPS 或 Secure
OUC (secure open user communication) 中。通信伙伴將使用該證書頒發(fā)機(jī)構(gòu)的公鑰
檢查該證書是否確實(shí)由 CA 機(jī)構(gòu)頒發(fā)(即,該證書頒發(fā)機(jī)構(gòu)已確定您的信息)。
● 用戶對(duì) CSR 進(jìn)行自簽名:使用用戶的私鑰。該選項(xiàng)將在下一個(gè)操作步驟中介紹。

自簽名證書西門子PLC模塊CPU226型號(hào)216-2AD23-0XB8
輸入以下命令,生成一個(gè)證書并對(duì)自簽名(自簽名證書):“x509 -req -days 365 -in
myRequest.csr -signkey myKey.key -out myCertificate.crt”。
下圖顯示了包含以下命令和 OpenSSL 的命令行窗口:
該命令將生成一個(gè) X.509 證書,其中包含通過 CSR 傳送的屬性信息(在本示例中,為
“myRequest.csr”),例如有效期為一年(-days 365)。該命令還將使用私鑰對(duì)證書進(jìn)行
簽名(在本示例中為“myKey.key”)。通信伙伴可使用公鑰(包含在證書中)檢查您是否
擁有屬于該公鑰的私鑰。這樣還可以防止公鑰被攻擊者濫用。
通過自簽名證書,用戶可確定自己證書中的信息是否正確。此時(shí),無需依靠任何機(jī)構(gòu)即可
檢查信息是否正確。

消息的安全模式
OPC UA 使用以下安全策略確保消息安全:
● 不安全
所有消息均不安全。要使用該安全策略,則需與服務(wù)器建立安全策略為“無”(None) 的
端點(diǎn)連接。
● 簽名
所有消息均已簽名。系統(tǒng)將對(duì)所接收消息的完整性進(jìn)行檢查。檢測(cè)篡改行為。要使用
該安全策略,則需與端點(diǎn)安全策略為“簽名”(Sign) 的服務(wù)器立連接。
● 簽名和加密
對(duì)所有消息進(jìn)行簽名并加密。系統(tǒng)將對(duì)所接收消息的完整性進(jìn)行檢查。檢測(cè)篡改行
為。而且,攻擊者無法讀取消息內(nèi)容(保護(hù)機(jī)密)。要使用該安全策略,則需與端點(diǎn)
安全策略為“簽名并加密”(SignAndEncrypt) 的服務(wù)器建立連接。
安全策略還可根據(jù)所使用的算法命名。示例:“Basic256Sha256 -簽名和加密”表示:端點(diǎn)
進(jìn)行安全連接,支持一系列 256 位哈希和 256 位加密算法。

所需層級(jí)
下圖顯示了建立連接時(shí)通常所需的三個(gè)層:傳輸層、安全通道和會(huì)話。
圖 9-6
所需層級(jí):傳輸層、安全通道和會(huì)話
● 傳輸層:
該層用于發(fā)送和接收消息。OPC UA 在此使用優(yōu)化的基于 TCP 的二進(jìn)制協(xié)議。傳輸層
是后續(xù)安全通道的基礎(chǔ)。
● 安全通道
安全層從傳輸層接收數(shù)據(jù),再轉(zhuǎn)發(fā)到會(huì)話層中。安全通道將待發(fā)送的會(huì)話數(shù)據(jù)轉(zhuǎn)發(fā)到
傳輸層中。
在“簽名”(Sign) 安全模式中,安全通道將對(duì)待發(fā)送的數(shù)據(jù)(消息)進(jìn)行簽名。接收消息
時(shí),安全通道將檢查簽名以檢測(cè)是否存在篡改的情況。
采用安全策略“簽名并加密”(SignAndEncrypt) 時(shí),安全通道將對(duì)待發(fā)送數(shù)據(jù)進(jìn)行簽名并
加密。安全通道將對(duì)接收到的數(shù)據(jù)進(jìn)行解密,并檢查簽名。
采用安全策略“不安全”(No security) 時(shí),安全通道將直接傳送該消息包而不進(jìn)行任何更
改(消息將以純文本形式接收和發(fā)送)。

會(huì)話
會(huì)話將安全通道的消息轉(zhuǎn)發(fā)給應(yīng)用程序,或接收應(yīng)用程序中待發(fā)送的消息。此時(shí),應(yīng)
用程序即可使用這些過程值或提供這些值。