此部分规范描述了OPC UA的安全模型;描述了在OPC UA在具体硬件软件环境运行时的安全风险;怎样依赖其它安全标准;提供OPC UA规范所有部分常用到的安全术语,并对其它部分里明确说明的安全特征进行总概;还引用了其它部分里明确说明的服务、映射和配置文件;给予实现安全模型的一些建议或最佳实例。这部分规范是很有意义的但不是很标准的,所以你会看到这部分规范和其他标准规范之间会出现些模棱两可的东西。
注意当开发应用时必须处理不同安全方面的问题。但是自从OPC UA规范了一套通信协议,就只关注应用之间的数据交换安全。这并不意味着应用开发者就能忽视其它方面的安全问题比如保护数据不被篡改。开发者了解安全的所有方面并知道在应用中如何解决这些问题也是重要的。
这部分内容是针对于开发OPC UA客户端、服务端或要实现服务层的开发者。当然这部分内容也适用于想要理解OPC UA提供的安全的功能特征的用户。它还提供了一些你配置系统的说明,当细节是依赖于OPC UA应用的实现和网站安全的选择时这些说明才是合理的。
你得先熟悉下Web服务和XML/SOAP。这些技术信息在第一部分和此部分的SOAP有讲。
SOAP Part 1: SOAP Version 1.2 Part 1: Messaging Framework
http://www.w3.org/TR/soap12-part1/
SOAP Part 2: SOAP Version 1.2 Part 2: Adjuncts
http://www.w3.org/TR/soap12-part2/
XML Encryption: XML Encryption Syntax and Processing
http://www.w3.org/TR/xmlenc-core/
XML Signature:: XML-Signature Syntax and Processing
http://www.w3.org/TR/xmldsig-core/
WS Security: SOAP Message Security 1.1
http://www.oasis-open.org/committees/download.php/16790/wss-v1.1-spec-os-SOAPMessageSecurity.pdf
WS Addressing: Web Services Addressing (WS-Addressing)
http://www.w3.org/Submission/ws-addressing/
WS Trust: Web Services Trust Language (WS-Trust)
http://specs.xmlsoap.org/ws/2005/02/trust/WS-Trust.pdf
WS Secure Conversation: Web Services Secure Conversation Language (WS-SecureConversation)
http://specs.xmlsoap.org/ws/2005/02/sc/WS-SecureConversation.pdf
SSL/TLS: RFC 2246: The TLS Protocol Version 1.0
http://www.ietf.org/rfc/rfc2246.txt
X509: X.509 Public Key Certificate Infrastructure
http://www.itu.int/rec/T-REC-X.509-200003-I/e
HTTP: RFC 2616: Hypertext Transfer Protocol - HTTP/1.1
http://www.ietf.org/rfc/rfc2616.txt
HTTPS: RFC 2818: HTTP Over TLS
http://www.ietf.org/rfc/rfc2818.txt
IS Glossary: Internet Security Glossary
http://www.ietf.org/rfc/rfc2828.txt
NIST 800-12: Introduction to Computer Security
http://csrc.nist.gov/publications/nistpubs/800-12/
NIST 800-57: Part 3: Application-Specific Key Management Guidance
http://csrc.nist.gov/publications/nistpubs/800-57/sp800-57_PART3_key-management_Dec2009.pdf
NERC CIP: CIP 002-1 through CIP 009-1, by North-American Electric Reliability Council
http://www.nerc.com/page.php?cid=2|20
IEC 62351: Data and Communications Security
http://www.iec.ch/heb/d_mdoc-e050507.htm
SPP-ICS: System Protection Profile – Industrial Control System, by Process Control Security Requirements Forum (PCSRF)
http://www.isd.mel.nist.gov/projects/processcontrol/SPP-ICSv1.0.pdf
Part 2 SHA-1: Secure Hash Algorithm RFC
http://tools.ietf.org/html/rfc3174
PKI: Public Key Infrastructure article in Wikipedia
http://en.wikipedia.org/wiki/Public_key_infrastructure
X509 PKI: Internet X.509 Public Key Infrastructure
http://www.ietf.org/rfc/rfc3280.txt
本文档用到的术语和定义有第一部分说明过的还有下面要说明的。
一段于电脑上正在运行的程序。
注意:能在同一时间一个应用的多个应用实例运行在在一台电脑上或者几台电脑上。
一种数字证书,安装在单独主机上的单独应用实例的证书。
注意:一个软件产品不同的装法会有不同的应用实例证书
一种密码学方法,需要一对钥匙,一把叫私钥用来加密,另一把叫公钥用来解密。
注意:非对称加密也叫公私钥加密。如果一个实体A需要把数据机密地传给实体B,可以使用非对称加密算法,实体A应该用实体B的公钥加密这些数据,然后实体B用与之匹配的自己的私钥将这些数据解密。如果实体A需要把完整的消息或者带有身份验证的数据传给实体B,可以使用非对称数字签名算法,实体A使用自己的私钥签名这些数据,实体B就用匹配的A的公钥来认证签名。在非对称密钥协议算法里,实体A和实体B都只把自己的公钥给其他的实体,然后他们使用自己的私钥和别人的公钥根据IS Glossary计算出新的键值对。
原理就是用一个实体的公钥加密数据并用它的私钥解密。
原理就是使用一个实体的私钥签名数据并使用这个实体的公钥来认证数据的签名。
一个安全目的,确保一个系统的任何行为或者活动都能被记录。
追踪系统里的行为或活动,包括审计记录的安全相关活动。这些追踪信息能被用来审查认证系统操作。
一个安全目的,确保一个实体能被认证,如客户端、服务端、用户。
保证系统资源能被访问。
一个安全目的,保证系统正常运行;meaning no services have been compromised in such a way to become unavailable or severely degraded。
一个能发布数字证书的实体,就是我们常说的CA。
将认证证书和失效证书列表保持在固定位置。
注意:它可能是一个磁盘的常驻文件结构,在Windows平台上它可能是一个Windows注册位置。
一个安全目的,保护数据不被那些无计划的组织读取。
使用一种算法和一把钥匙将有意义的可读的数据转为不可读的密文。
组织设计一段程序来维持整个组织资源的安全性,并创建机密性、完整性、有效性等级,无论是在商业领域还是工业自动化控制系统。
将身份和实体如用户联系起来的一个结构,在产品或者应用实例里证书有对关联的非对称钥匙,能用来认证拥有私钥的实体。
使用密码算法计算出值使用这种方式加在原始数据上,然后接受数据者可以用签名来认证原始性和完整性。
一种算法例如SHA-1for which it is computationally infeasible to find either a data object that maps to a given hash result (the “one-way” property) or two data objects that map to the same hash result (the “collision-free” property) , see IS Glossary。
用内部hash功能产生消息认证代码MAC。
一种协议,用于不安全环境下两个实体间建立安全通信路径,whereby both entities apply a specific algorithm to securely exchange secret keys that are used for securing the communication between them。
注意:一种典型的钥匙交换算法是SSL/TSL的SSL Handshake协议
一种数字签名,用来保证两个实体间传送消息的完整性。
注意:有几种方法来产生和认证消息签名,主要分为对称的(见3.1.34)和非对称的(3.1.35)
用一个随机的值通过算法产生安全钥匙。
一个可以指行这些服务的OPC UA客户端或者服务端。
非对称密码里一对密钥中的私密的那个组件
非对称密码里一对密钥中的公开的那个组件,见IS Glossary。
用来创建、管理、保存、发布、吊销基于非对称密码的数字证书的一个实体,如一组硬件、一套软件、一群人、一堆政策、一组过程。
注意:PKI的核心功能是注册用户,发布他们的公钥证书,吊销证书,把需要用于认证证书的数据归档。Key pairs for data Confidentiality may be generated by a Certificate authority (CA); it is a good idea to require a Private Key owner to generate their own key pair as it improves security because the Private Key would never be transmitted according to IS Glossary. See PKI and X509 PKI for more details on Public Key Infrastructures.
OPC UA中客户端和服务端使用一些OPC服务需要互相认证,建立通信路径就相当于协商应用好安全参数。
一个密码学分支,涉及到算法,这个算法是使用同一把钥匙来操作不同步骤(如加密解密,创建签名认证签名),详细内容见IS Glossary。
原理是两个实体共享一把密钥来加密解密。
原理是两个实体共享一把密钥来创建签名和认证签名。
注意:根据数据创建的签名和认证时产生的签名如果一样则证书是有效的,否则不是两个实体的钥匙不一样就是数据不一样。3.1.19就为产生对称签名的算法提供了个典型的例子。
AES Advanced Encryption Standard
CA Certificate Authority
CRL Certificate Revocation List
CSMS Cyber Security Management System DNS Domain Name System
DSA Digital Signature Algorithm
ECDH Elliptic Curve Diffie-Hellman
ECDSA Elliptic Curve Digital Signature Algorithm
HMAC Hash-based Message Authentication Code
PKI Public Key Infrastructure
RSA public key algorithm for signing or encryption, Rivest, Shamir, Adleman SHA Secure Hash Algorithm (Multiple versions exist SHA1, SHA256,…) SOAP Simple Object Access Protocol
SSL Secure Sockets Layer
TLS Transport Layer Security
UA Unified Architecture
URI Uniform Resource Identifier
XML Extensible Mark-up Language
The figures in this document do not use any special conventions. Any conventions used in a particular figure are explained for that figure.
OPC UA适用于不同级别的工业设施里两个组件操作时的一个协议:从高层企业管理到底层的直接过程控制设备。OPC UA的使用在企业管理中包含处理顾客和供应商问题。例如一个系统可能成为工业间谍和破坏组织感兴趣的目标,也可能会被一些恶意软件攻击出现威胁如蠕虫病毒流通于公共网络。过程控制的的通信被破坏可能不仅导致经济损失还会影响员工和公共安全,甚至破坏环境。