了解网络安全:公钥加密和工业自动化

随着物联网(IoT)的快速发展,消除不必要的恐惧,采取积极主动的网络安全措施。

作者:Nate Kay, p.e., martinsi 2018年9月10日

随着物联网(IoT)的快速发展,网络安全是每个人都关心的问题。随着越来越多的关于控制系统攻击的报道,网络安全成为控制工程师的首要任务。更令人担忧的是,围绕网络安全有很多恐惧甚至错误的信息。对于控制工程师来说,最好的防御是彻底掌握网络安全的工作原理。网络安全的一个关键因素是一种“特殊类型”的加密:公钥加密。

无论是保护工业设备还是商业网络,网络安全在很大程度上依赖于公钥加密,有时也被称为非对称加密。公钥加密用于互联网安全,并越来越多地用于工业自动化应用,特别是与工业物联网(IIoT)、远程访问、移动应用、警报通知和云计算相关的应用。

要了解网络安全及其与未来工业自动化的关系,需要对公钥加密有基本的了解。今天的控制工程师还经常使用证书和签名形式的安全性,了解公钥加密可以帮助他们设置这些安全特性。

当涉及到数据时,保护它的最好方法是加密它。大多数人都熟悉加密,它本质上涉及到对数据进行加密,并使有意义的数据显示为位、字节或字符的随机序列。当有人需要访问这些数据时,通过将编码数据转换回可用信息来对其进行解密。在这个过程中,使用加密密钥是很有帮助的。一旦信息被正确加密,除非有人拥有这个密钥,否则它基本上是没有意义的。同样,如果有人试图篡改加密的信息,可以通过使用加密密钥来检测。

私钥加密

图1说明了使用共享私钥对数据进行加密、传输和解密的简单过程。因为使用相同的密钥加密和解密数据,所以这被称为对称密钥加密。此外,由于密钥是对公众隐藏的,因此也称为私钥加密。

这种方法似乎既简单又安全。所以为什么不直接用这个呢?因为这个模型有个问题。发送方和接收方必须共享密钥的副本。如果发送方和接收方距离很近,他们可以简单地见面,交换密钥的副本,然后开始发送数据。然而,如果它们相距很远,比如在地球的另一端,交换密钥就会很困难。当然,发送者可以将密钥的副本“邮寄”给接收者,但随后总有人可以拦截该密钥,为自己复制一份副本,并开始“监视”对话。这就是公钥加密发挥作用的地方。

公钥加密

要解释公钥加密,请考虑一个字母和一个保险箱的例子。

让我们假设Alice想给Bob发一封安全信件。她可以简单地把信锁在保险箱里(是的,这是一种昂贵的寄信方式),然后把锁着的保险箱寄给鲍勃。然后鲍勃就可以打开保险柜读信了。这本质上是对称(私钥)加密,因为Alice和Bob都有相同密钥的副本。Alice和Bob如何安全地共享密钥的副本?

有没有一种方法可以让Alice在不交换密钥副本的情况下安全地将她的信发送给Bob ?排序的。该解决方案涉及创建两个密钥,一个仅用于锁定保险箱的公钥和一个用于解锁保险箱的私钥(参见图2)。在我们的示例中,Bob使用未解锁的保险箱并创建了两个密钥,一个私钥(由他保存)和一个公钥(由他交给Alice)。接下来,Bob将公钥和空的、未上锁的保险箱发送给Alice。爱丽丝把她的信放在保险箱里,然后用鲍勃发给她的公钥来锁保险箱。爱丽丝把保险箱寄回给鲍勃,鲍勃用他的私钥打开保险箱,读了这封信。假设某人,比如说Charlie,复制了Bob发给Alice的公钥。即使他找到了,他也不能打开保险箱看信。Bob给Alice的公钥只能用来锁保险箱,不能开锁。

身份验证方案

通过这种方式,无论谁有权访问公钥,Alice都可以安全地将她的信发送给Bob。如果查理拦截了公钥并解锁了保险箱,假装是爱丽丝,这样他就可以给鲍勃发送伪造的信息了呢?这就是公钥加密的另一个好处——身份验证发挥作用的地方。

在我们的示例中,是Bob创建了私钥和公钥。然而,为了说明身份验证是如何工作的,让我们将其带入下一个层次。在我们的新示例中,Bob仍然创建一个私钥和一个公钥,Alice创建她自己的私钥和公钥。接下来,Bob和Alice交换他们的公钥。Alice将她的公钥发送给Bob, Bob将他的公钥发送给Alice。和之前一样,Bob将未上锁的保险箱发送给Alice。Alice将她的信放入保险箱,并用Bob提供的公钥将其锁上。

然而,这一次,爱丽丝做了别的事情。她还将自己的锁应用到保险箱上,并使用她创建的私钥将其锁上。然后Alice把保险箱寄回给Bob。这一次,在Bob用他的私钥打开保险箱之前,他首先获取Alice发送给他的公钥,并试图移除Alice应用的锁。如果Bob可以使用公钥解除锁,那么Bob就知道这封信来自Alice。这个过程称为身份验证。可以将Alice应用于保险箱的锁视为签名(参见图3)。

公钥加密如何与工业自动化相关?越来越多的工业自动化设备正在采用公钥加密。这包括软件和硬件,如工业路由器,监控和数据采集(SCADA)系统,甚至可编程逻辑控制器(plc)。远程访问通常依赖于虚拟专用网(vpn)和远程桌面软件等技术,所有这些技术都使用公钥加密。此外,许多基于web浏览器的SCADA系统开始整合HTTPS网页支持,这也是基于公钥加密的。(subhed)

选择设备

在选择设备或软件时,制造商可能会使用与公钥加密相关的术语。例如,TLS (Transport Layer Security)是基于公钥加密的一系列协议。签名和证书在工业设备中得到广泛应用。正如示例中所指出的,签名是一种验证发送者确实是他们所说的那个人的方法。证书和证书颁发机构与证明公钥所有权的受信任第三方有关。这有助于防止中间人攻击,就像查理试图冒充鲍勃或爱丽丝的例子一样。许多控制工程师在建立控制系统时已经不得不使用签名和证书,预计这种情况将会更多。

到目前为止,示例已经提到使用“保险柜”和“密钥”。在现实世界中,如何创建公钥加密?其中一种方法与数学中一个有趣而又非常困难的问题密切相关,即将大数分解为质数。

例如,考虑以下简单的加密算法:e模N = c(1)

在这个等式中,m是要加密的消息,e是用来加密消息的公钥,N是两个素数(N = P)的乘积1* P2), c为加密后的消息。在我们的例子中,Bob选择质数P1和P2他还选择了公钥e。然后Bob将e和N发送给Alice,尽管他保留了P1和P2自言自语。Alice将她的消息m以及Bob发送的数字e和N代入上述方程,生成她的加密消息c,并将其发送回Bob。一旦Bob收到来自Alice的加密消息c,他只需要使用下面的等式对其解密:cdmod N = m以获取原始信息。

在这个等式中,他没有使用他发送给Alice的公钥e,而是使用他的私钥d来解密消息。如果鲍勃,而且只有鲍勃,能算出d是多少,那么这个就成立。正好d可以用欧拉全局性函数φ(N)来计算,其中d * e≡kφ(N) + 1(2)欧拉全等函数φ(N)的一个重要性质是它被称为陷门函数。对于我们的例子来说,这意味着很容易计算(P1* P2提供;提供1和P2是已知的,但是很难计算φ(N),如果P1和P2是未知的,但N是已知的。(3)

试图解密消息的人可以考虑取N(因为N是Bob已经发送给Alice的公开信息),将N分解为两个素数P1和P2,然后解密该消息。然而,真正的诀窍在于此。把一个大数N分解成质数是非常耗时的。事实上,它是如此的困难,以至于用超级计算机来解决它是不现实的。这就是公钥加密背后的真正力量所在。鲍勃可以将P相乘1* P2生成数字N,爱丽丝可以用它来加密消息。但N是否公开并不重要。解密消息还需要知道P1和P2。鲍勃对这些号码保密。

保持安全

网络安全是当今控制工程师的首要任务。大多数控制系统都以某种方式连接到以太网。对远程访问、数据收集、移动应用程序以及物联网等技术的需求将继续增长。

因此,控制工程师越来越多地使用基于公钥加密的技术。虽然可能没有必要了解其背后的数学原理,但对公钥加密的一般理解有助于理解该技术如何与最佳安全实践相关联。

在选择和配置安全设备时,了解公钥加密也会有所帮助。了解安全有助于消除不必要的恐惧。相反,可以采取更积极主动的方法来保护网络安全。

内特凯项目经理是什么MartinCSI。凯文·帕克编辑,面向工程师的IIoT内容管理器,kparker@cfemedia.com

在线额外

脚注:

(1)国防部N是模算子。当一个正数除以N时,它返回余数。

(2)可以使用欧拉全等定理来确定私钥。它说αφ(n)设和N为素数正整数。欧拉全等函数φ(N)对N以内的相对素数为N的正整数进行计数。

(3)在这个例子中,φ(N) = φ(P)1* P2= (p)11) * (P21)。例如,如果P1=3和P2=7则N=7*3=21, φ(N)=(3-1)*(7-1)=12。21的公数(素数整数)有12个,分别是:1、2、4、5、8、10、11、13、16、17、19、20。