翻譯|使用教程|編輯:吳園園|2020-05-11 14:30:33.893|閱讀 915 次
概述:在第二篇文章中,我們將看看在您信任應(yīng)用程序證書(shū)并在OPC UA端點(diǎn)上啟用安全性之后消息將如何處理。具體來(lái)說(shuō),“簽名和加密”在端點(diǎn)上意味著什么,以及我們?nèi)绾未_保數(shù)據(jù)真正安全。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
相關(guān)鏈接:
TOP Server OPC Server采用業(yè)界領(lǐng)先的Kepware技術(shù),是Software Toolbox's OPC和原生HMI設(shè)備的連接軟件,也是一款多線程應(yīng)用程序,能夠利用最新的雙核處理器和多處理器技術(shù)最大化您的性能。其靈活而強(qiáng)大的功能可最大程度降低項(xiàng)目的生命周期成本;模塊化架構(gòu)和通用用戶界面可以降低您的培訓(xùn)成本,因?yàn)樵诓煌尿?qū)動(dòng)程序中使用了100種常用方法,幫助您學(xué)習(xí)TOP Server,并快速應(yīng)用與其他驅(qū)動(dòng)程序相同的知識(shí)。
點(diǎn)擊下載TOP Server OPC Server最新試用版
在正在進(jìn)行的“ 探索OPC UA”博客系列的第一篇文章中,我們介紹了OPC UA證書(shū)(也稱為應(yīng)用程序證書(shū))在OPC UA安全性上下文中發(fā)揮的三個(gè)功能。
在第二篇文章中,我們將看看在您信任應(yīng)用程序證書(shū)并在OPC UA端點(diǎn)上啟用安全性之后消息將如何處理。具體來(lái)說(shuō),“簽名和加密”在端點(diǎn)上意味著什么,以及我們?nèi)绾未_保數(shù)據(jù)真正安全。
要真正了解兩個(gè)應(yīng)用程序之間的OPC UA安全性是如何工作的,我們需要了解對(duì)稱和非對(duì)稱(或公鑰)加密的工作原理,因?yàn)樽罱K它們之間并沒(méi)有太大的區(qū)別。從最基本的角度(這是我們?cè)谶@樣的博客中所花的全部時(shí)間),對(duì)稱和非對(duì)稱加密并不那么復(fù)雜,因此讓我們看一下它們?nèi)绾螆?zhí)行其工作。
對(duì)稱加密如何工作?
對(duì)稱加密之所以這樣命名(非常恰當(dāng))是因?yàn)橥幻荑€既用于加密和解密編碼的消息,又不同于物理鎖,在物理鎖中,同一密鑰用于鎖定和解鎖該鎖。這種對(duì)稱性非常好,因?yàn)檫@是加密/解密信息的非常快速的方法,因?yàn)閮烧叨际褂孟嗤拿荑€,并且由于它相當(dāng)安全(盡管不如其非對(duì)稱兄弟安全)。
對(duì)稱加密的工作方式示例:
如果運(yùn)行在服務(wù)器B上的OPC UA服務(wù)器想要發(fā)送加密的響應(yīng),則只需使用相同的密鑰(先前已交換過(guò))來(lái)加密消息,過(guò)程將反向重復(fù)。
由于使用相同的密鑰進(jìn)行加密和解密,因此對(duì)稱加密速度很快–相對(duì)于非對(duì)稱加密,它的主要優(yōu)勢(shì)就在于此。速度。但是這種速度是有代價(jià)的,而代價(jià)就是安全。
該示例僅簡(jiǎn)要地談到了對(duì)稱加密的最關(guān)鍵步驟,那就是密鑰交換。您如何安全地執(zhí)行保護(hù)惡意者無(wú)法訪問(wèn)密鑰的交換,并且如果舊密鑰遭到破壞,又可以輕松地與新密鑰交換新密鑰呢?
由于同一密鑰同時(shí)用于加密和解密,因此,如果惡意方獲得了對(duì)該密鑰的訪問(wèn)權(quán),則他們不僅能夠解密雙方的消息,而且還能夠生成自己的消息,這些消息現(xiàn)在可能被視為有效。
對(duì)稱加密的另一個(gè)不太理想的方面是,當(dāng)處理多于兩臺(tái)計(jì)算機(jī)時(shí),證書(shū)的數(shù)量也可能會(huì)過(guò)高。對(duì)于單個(gè)客戶機(jī)/服務(wù)器對(duì),只需要一個(gè)密鑰,但是對(duì)于100個(gè)服務(wù)器/客戶機(jī),每臺(tái)計(jì)算機(jī)可能希望與系統(tǒng)中的其他每臺(tái)計(jì)算機(jī)進(jìn)行通信,因此所需證書(shū)的數(shù)量呈指數(shù)增長(zhǎng)。非對(duì)稱加密解決了許多這些問(wèn)題……
非對(duì)稱加密如何工作?
非對(duì)稱加密或公共密鑰加密(也很恰當(dāng)?shù)孛┍徽J(rèn)為是非對(duì)稱的,因?yàn)椴辉偈褂猛幻荑€進(jìn)行加密和解密。你怎么可能問(wèn)?如何使用一個(gè)密鑰來(lái)加密數(shù)據(jù),而另一個(gè)密鑰來(lái)解密數(shù)據(jù)呢?
我希望我有時(shí)間在這里更詳細(xì)地介紹該概念,但是現(xiàn)在,我們將需要選擇簡(jiǎn)短的版本(因?yàn)檩^長(zhǎng)的版本涉及大量的數(shù)學(xué)運(yùn)算)。使用非對(duì)稱加密,每個(gè)應(yīng)用程序?qū)⒕哂袃蓚€(gè)以數(shù)學(xué)方式鏈接的證書(shū)(更多信息將在第二秒顯示):
這些密鑰在數(shù)學(xué)上是鏈接的,這意味著僅可以使用相應(yīng)的私鑰解密使用公鑰加密的消息。使用非對(duì)稱加密的任何連接的第一步是交換公共密鑰。
由于只能使用相應(yīng)的私鑰來(lái)解密加密的消息,因此應(yīng)用程序可以非常自由地將其公開(kāi)密鑰提供給誰(shuí),因?yàn)槿魏谓孬@加密消息的人都不能解密該消息(即使他們使用了公開(kāi)密鑰的副本)執(zhí)行加密)。這也意味著一個(gè)應(yīng)用程序只需要一個(gè)可以被許多應(yīng)用程序使用的公共密鑰,從而解決了我們?cè)谑褂脤?duì)稱加密時(shí)看到的證書(shū)計(jì)數(shù)問(wèn)題。
非對(duì)稱加密如何工作的示例:
還有一個(gè)很酷的功能,就是上述私鑰和公鑰之間的數(shù)學(xué)聯(lián)系為我們帶來(lái)了好處。不僅可以使用公鑰來(lái)加密只有相應(yīng)的私鑰才能解密的流量。服務(wù)器還可以使用私鑰對(duì)消息進(jìn)行簽名,并生成消息哈希(與公鑰進(jìn)行比較時(shí)),以確保消息未更改,并且消息源自我們認(rèn)為是的機(jī)器。
剛才我說(shuō)過(guò),公鑰和私鑰在數(shù)學(xué)上是鏈接的,所以我想重新審視這個(gè)概念。這意味著一個(gè)密鑰(或一個(gè)密鑰的一部分)是使用另一密鑰以某種方式生成的,或者兩個(gè)密鑰都是從相同的大隨機(jī)素?cái)?shù)生成的。
生成的完成方式取決于所使用的算法(RSA,橢圓曲線等),但重要的是,由于該操作,兩者之間存在數(shù)學(xué)關(guān)系。僅知道私鑰就幾乎不可能導(dǎo)出公鑰,而僅僅知道公鑰就幾乎不可能導(dǎo)出私鑰。(鑒于有足夠的時(shí)間,足夠的計(jì)算能力和足夠的數(shù)學(xué)腦力,沒(méi)有什么是牢不可破的,因此適用“幾乎不可能”。)
雖然比對(duì)稱加密安全得多,但非對(duì)稱加密有一個(gè)主要缺點(diǎn),那就是速度。這些“數(shù)學(xué)鏈接”鍵雖然很棒,但必須對(duì)每條消息進(jìn)行數(shù)學(xué)運(yùn)算會(huì)增加大量的計(jì)算開(kāi)銷(xiāo)。這使我們可以進(jìn)行比較-哪個(gè)更好?
比較對(duì)稱和非對(duì)稱加密
對(duì)稱加密
非對(duì)稱加密
優(yōu)點(diǎn)
缺點(diǎn)
優(yōu)點(diǎn)
缺點(diǎn)
難以置信的安全
用于加密和解密的密鑰相同(泄露的密鑰具有很高的影響力)
比對(duì)稱更安全
比對(duì)稱加密慢(不容小margin)
加密和解密更快
沒(méi)有好的方法來(lái)安全地交換密鑰
公開(kāi)密鑰可以自由共享(只要私有密鑰保持安全)
沒(méi)有復(fù)雜的數(shù)學(xué)關(guān)系
密鑰泄露只會(huì)影響一個(gè)方向的通信
Bad actors截取公鑰的影響很小
最終,要回答該問(wèn)題,您將需要考慮特定項(xiàng)目的目標(biāo)。如果無(wú)論其他因素如何,最高的安全級(jí)別都至關(guān)重要,那么非對(duì)稱加密顯然是正確的選擇。如果您的項(xiàng)目可以接受安全性稍低的加密級(jí)別以換取更高的性能和更少的開(kāi)銷(xiāo),那么對(duì)稱加密可能是正確的選擇。
對(duì)稱和非對(duì)稱加密如何應(yīng)用于OPC UA?
當(dāng)您為客戶端和服務(wù)器交換應(yīng)用程序/ OPC UA證書(shū)時(shí),您將交換公鑰作為這些證書(shū)的一部分。這意味著,當(dāng)您選擇加密OPC UA連接時(shí),OPC UA使用非對(duì)稱加密來(lái)保護(hù)初始連接,但是,為了解決非對(duì)稱加密帶來(lái)的較慢的通信性能,一旦通道安全了,就交換一個(gè)對(duì)稱加密密鑰用于通訊。
這使兩種加密標(biāo)準(zhǔn)都不再關(guān)注兩個(gè)主要問(wèn)題:
為了長(zhǎng)期保持連接的安全,定期更新“ SecureChannel”(在本系列博客的第三部分中對(duì)此進(jìn)行了詳細(xì)介紹),因此長(zhǎng)期不使用相同的對(duì)稱密鑰。 因此,當(dāng)OPC UA端點(diǎn)引用“簽名”與“簽名和加密”術(shù)語(yǔ)時(shí),它實(shí)際上是指將使用公鑰和私鑰的方式(即,應(yīng)使用私鑰對(duì)消息進(jìn)行簽名,和/或應(yīng)使用公鑰對(duì)消息進(jìn)行加密) 。
了解OPC UA更多相關(guān)信息,歡迎持續(xù)關(guān)注后續(xù)文章
要購(gòu)買(mǎi)該產(chǎn)品正版授權(quán),或了解更多產(chǎn)品信息請(qǐng)點(diǎn)擊
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: