清華大學莫一林:信息物理系統中的安全控制算法

中文講的“安全”,其實基本上包含了英文中的兩重含義,一個是Safety,一個是Security。信息物理系統中的安全問題主要是指Security,也就是說,如果有人想要攻擊你,在這種情況下,怎麼能夠保證系統的正常運行?

信息物理系統

“信息物理系統”,這個詞大概是2006年由美國的National Science Foundation(美國國家科學基金會)最開始提出來的。信息物理系統本質上來說是Computation(計算)、Communication(通訊)、Control(控制)三C的融合,把三個C互相之間結合起來,嵌入到一個物理世界當中,從而能夠使得整個系統更好地感知或者控制物理世界。

比如,無人駕駛就是一個信息物理系統,因爲無人駕駛本身是有一個物理的實體,有很多傳感器來收集數據,這些數據經過通訊上傳到計算機或者雲上面,同時車和車之間可能還有通訊,然後去做感知、去做導航,再反饋到無人車的執行單元,最後反饋到物理空間。這些過程既包括了計算,也包括了控制的一些問題。

其實,信息物理系統是一個很大的概念。之前大家說安全,其實更多的是想到計算機安全或者網絡安全,現在更多的是手機這類智能設備的安全。但是,信息物理系統安全爲什麼現在被提上了議程?這其中主要的原因是傳統的控制系統,比如汽車內部的通訊是通過CANBUS實現的,這樣的通訊本質上來說是一個獨立的、專用的網絡,並不和其他網絡產生任何的連接。所以在這種情況下,就很難去大規模地攻擊這樣一個系統。

信息物理系統的安全威脅

但是,現在智能化逐漸成爲了一種趨勢,而且智能化的一個核心的事情,就是要使用很多新興的感知和網絡的技術,實現萬物互聯。在這種背景下,就會產生非常多的問題,因爲所有東西都聯網了,那麼系統受到攻擊的可能性就放大了很多。在這種情況下,怎麼保證整個系統的穩定性或者說維護系統正常運行,這是一個很大的挑戰。

上圖是我們之前說的智能家居的一個示意圖。智能家居希望人們可以通過比如手機App去控制家裏的電器,但是一旦家裏的電器都上網之後,智能家居控制系統的安全就會變得非常重要,如果當一個攻擊者可以操縱成千上萬個家庭電器的話,這就可能帶來非常嚴重的問題。

我們實驗室從2010年前就開始做信息物理系統安全方面的研究。當時,有黑客設計了“震網病毒”,它的目標是伊朗用來提純鈾235的離心機。“震網病毒”破壞了伊朗上千臺的離心機,最後對伊朗核計劃造成了很大的損害。這也算是一個利用“信息戰”成功帶來破壞的一個例子。也是因爲這個事情,讓我們把信息物理系統的安全問題迅速提上了日程。

震網病毒

“震網病毒”的例子屬於國家行爲,可能比較少見,現在針對一般信息物理系統的攻擊行爲也越來越多。比如2016年,美國機構的報告就指出,全年一共有290多次針對美國工業控制系統的攻擊,覆蓋了製造業、通訊、能源等多個行業。

攻擊有很多種類型,先說比較常見的。如果系統聯網,可以通過網絡去侵入系統;即使系統沒有聯網,那麼還有一些方式方法,比如像“震網病毒”的例子,是通過U盤一層一層帶進去的。這些方式都能造成很大的破壞。

我覺得比較值得關注的是第二個問題,一般做控制或者這種背景的研究人員,很多時候對計算機安全並不是特別有經驗,那麼開發的系統就可能會存在很多的漏洞。甚至有很多軟件的開發者自己都不知道自己的系統有漏洞,但是黑客就可以發現你的漏洞。比如說像“震網病毒”的例子,伊朗不知道系統有問題,但黑客有內部資料,發現這個系統有問題,然後就利用這種漏洞去侵入了伊朗的系統。

大家比較擔心的一個事情就是現在的系統變得越來越複雜,比如一輛車可能有幾百個ECU(Electronic Control Unit),一個波音787可能有上百萬個零件,這上百萬零件中的70%都是外包出去的,而一級外包商可能再外包給二級、三級,最後整個供應鏈就變得很複雜,這相當於是全球生產,最後彙集到西雅圖去裝配。那麼在這個過程中,怎麼保證裝到系統上的每一個零件都是安全的,這也是一個值得思考的問題。

黑客攻擊汽車系統

其實,在傳統的汽車信息物理系統當中,漏洞還是有很多的。比如2015年有一個比較著名的事件,有兩個黑客(這兩個人應該只是研究者,並不是真的想要搞破壞)通過攻擊克萊斯勒吉普的一款車,入侵了這輛車的顯示信息,就是所謂的implementation,還包括一些娛樂系統,然後通過這個系統,進入車內部的網絡來控制這個車,比如說方向、控制剎車,甚至包括安全氣囊等等。

有人可能會說,像你們碰到這些問題,在計算機裏面也都有,而且已經研究了很長時間了,爲什麼還要單獨提這樣一個概念,這個信息物理系統安全中到底有什麼新的東西嗎?我覺得這個核心價值在於:傳統的研究主要都是在所謂的Cyber Physical System。而信息物理系統,它的核心的是說那些有“物理”的系統,那麼這個物理系統就帶來了很多的挑戰。

首先,從傳統上來說,如果一個計算機受到攻擊,最差的情況,也就是將這個計算機關閉就結束了。但是如果是一個高速行駛的車,無法將它直接關閉,只能讓它緩慢地停下來,但是停下來這件事情本身因爲有物理系統的參與,所以就不是一個簡單的事情。而對於無人機來說,甚至都不能讓它停下來,必須讓它以一定的速度去飛,因爲如果是固定翼無人機,停下來就可能意味着墜毀,所以在這個過程中,物理系統帶來了很多的挑戰。

另外一個問題是,我們不一定能夠讓物理系統停下來,比如說如果一個電網受到攻擊,那麼我們希望能夠儘可能把被攻擊的地方隔離出來,而不是要讓整個地區比如北京市出現停電。這個意思就是說,在系統受到攻擊的時候,要讓這個系統還能帶着“傷”去運行,而不是一旦有一點風吹草動就需要重啓,這個也是一個很大的問題。最後,這些物理系統其實都需要非常高的可靠性,比如對飛機來說,我們之前跟波音做過一些項目,他們要求放上飛機的任何東西都需要經過鑑定,必須保證飛機有極高的可靠性,要遠遠高於殺毒軟件要能檢測出99%病毒的這種可靠性。

很多傳統的信息安全方法,都是一個所謂的Best of Effort Approach,就是說,儘可能地提供能提供的最好的服務,但是並不能給出特別多的保證,因爲對於一些需要非常高可靠性的系統,即便存在很小的可能也許就隱藏着一個很大的威脅。

爲信息物理系統構建“護城河”

在信息物理系統裏面,爲了保證這個系統的安全,我們需要保證這個系統有非常高的可靠性。其實,任何一個單一的方法都是很難完成這個目標的,我們需要是一個多層的防禦機制,它就像一個城堡一樣,外面還有一個護城河,中間有一個城牆,裏面還有一個城牆,必須要層層地設防,只有這樣才能解決這個問題。

我覺得這其中有幾個比較關鍵的點,比如Prevention、 Detection、 Resiliency 、Recovery。其中,Prevention就是怎麼防止別人進來,那麼這個地方可能是需要更好的防火牆,比如說殺毒軟件等等這些東西。

當然,我們不可能百分之百地把別人都擋在系統之外,如果有人進來了之後,我們就需要去檢測這個系統到底有沒有被入侵,包括在一個大的系統怎麼去定位哪幾個部分被入侵了,這就是所謂的Detection。另外,我們設計一個系統,需要考慮到一定的Resiliency,比如說有一個汽車上面有一個零件壞了,這個系統就完蛋了,那麼這個系統就不是很有韌性,所以系統能不能帶“傷”運行,也是一個需要考慮的因素。最後,當發現這個系統出現問題之後,我們可能就會需要有一個所謂的恢復過程,比如重啓等等手段。整體來說,我覺得要通過很多方面,通過多層防禦來保證信息物理系統的安全。

信息物理系統中的安全控制算法

今天,我想給大家講一講我們在信息物理系統做的一些比較初步的工作,主要講兩個方面:一個是檢測,一個是韌性。首先,從控制這個方式來說,怎麼去思考信息物理系統安全性這個問題?當然,並不是說控制就能夠徹底解決這個問題,還是需要一個多層的防禦。

控制

控制,到底能給我們帶來什麼? 以離線設計系統爲例,首先我們可以通過控制找到這個系統關鍵的部件,然後對這些部件做額外的冗餘設計。在這個系統沒有上線之前,我們可以對系統做一些可控、可觀的分析,進而提升系統本身的韌性;上線之後,我們可以利用傳統的方法如故障診斷,當然這裏就變成了入侵診斷和入侵定位的問題。此外,我們還可以做一些魯棒控制,保證系統的控制器在有攻擊情況下依然能夠容錯。最後還有一個問題,一個大的系統想要讓它更安全,我們到底應該先加固哪個地方?這都是控制可以提供給我們的一些東西。

檢測

接下來,我主要講一下關於檢測的問題,我們也是受到“震網病毒”例子的啓發之後開始做了相關的研究。“震網病毒”是2010年被發現的,從計算機的角度來說,它是一個很複雜的、很難防禦的病毒。但是從控制角度來說,它的策略其實相當簡單。離心機本身是一個類似於快速旋轉東西,如果想要毀壞離心機,那就需要讓它轉的比原本設定的轉速快很多,但是如果只是讓它轉的特別快的話,由於整個系統有傳感器,傳感器就會發現離心機轉速太快,從而觸發報警,報警之後就會有技術人員前來檢查,整個過程並不能對這個系統造成很大破壞。

但是,“震網病毒”採取的一個策略是先不去攻擊這個系統,而是在這個系統正常運行的時候,記錄下它的傳感器輸出是什麼情況(比如說離心機的轉速)。爲了很好地說明問題,我們假設離心機每秒1000轉,“震網病毒”就記錄了很多這樣的數據。然後,當真正開始去攻擊系統的時候,震網病毒就會把它記錄的數據做一個重放,就是說把整個系統的轉速調到比如2000轉的時候,會使用之前正常的數據去替換異常數據,那麼系統操作員看到依然是正常的轉速,就不會察覺這個系統已經出現問題了。比如在一些警匪片中,匪徒會去把他們想要搶劫的地方的監控視頻的影像做一個重放,比如用前一天沒有異常的影像去覆蓋掉搶劫的影像,跟“震網病毒”的策略很類似,在信息安全領域也是比較常見的“重放”攻擊。

大家可以簡單地看一下這個系統的框圖,比如說我們做一個離心機或者一個其他的物理系統,需要做控制。那麼我們使用傳感器去監測這個系統,傳感器的輸出會給一個估計器,對於無人駕駛來說,可能這個應該叫感知,而不能簡單地叫估計,因爲它的功能可能會更復雜。但不管怎樣的系統,我們都需要通過一個這樣的東西,對收集到的信息做一個處理,然後得到系統的狀態,再根據狀態來設計系統的控制,最後反饋給物理系統。估計器可能還會輸出一些信息傳遞到故障檢測器裏面,然後故障檢測器會檢測收到的信息y(k)是不是有問題,大概就是這樣的一個系統。

對於攻擊來說,也分成了兩個階段,第一階段攻擊者先不去修改系統控制這一部分,只是被動的去記錄一些傳感器的信號。當記錄足夠多的傳感器信號之後,進入第二階段,開始去修改系統的控制信號,修改這個信號的同時,攻擊者還要做的另外一件事,就是要把系統的傳感器的這一邊給斷開,從而把傳感器的真實數據替換成之前記錄的正常數據。

由於系統本身是有故障檢測器的,所以最原始的系統在設計的時候根本沒有考慮安全性,沒有考慮是否能檢測出來所謂的“重放”攻擊。事實上,“重放”攻擊並不是總是有效的,我們發現有一些系統可以檢測到“重放”攻擊,而有一些系統是不能檢測的。如上圖所示,Y軸表示檢測器報警的概率,報警概率最大值是1。整個系統的重放是在時刻零開始,那麼作爲第一個系統,也就是藍線標記的系統,我們可以看到在重放開始的時候,它有一個比較短暫的損害過程,就是說這個時候報警的概率有一些,但是也不是特別高,然後很快報警概率就縮減到一個接近於0的值;而第二個系統,也就是紅線標記的系統,我們發現它的報警概率隨着“重放”變得越來越高,最後會趨向於1。

但是,很多系統跟藍線標記的系統一樣,沒有辦法檢測出“重放”攻擊。那就可能會陷入一個問題,攻擊者會揹着系統的操作人員在系統裏面做一些手腳。針對這種問題,我們設計了一種主動檢測的方法。剛纔所說的檢測是被動的檢測,通過收集很多的傳感器的信息,然後去看傳感器的信息是不是和這個系統本身模型是相符合的。但這個方法存在一個很大的問題,比如控制離心機,它的轉速就一直是1000轉,那麼當傳感器告訴我們轉速是1000轉時,事實上這個傳感器從某種角度來說就沒有給我們任何信息,因爲系統控制的很好。

我們的想法是能否可以不把系統控制得這麼好,我們主動在控制信號中加一個擾動信號,也可以叫做水印信號。這就是說水印信號是藏在真實的控制信號中的一個比較小的噪聲。如果我們的系統沒有受到攻擊的話,那麼這個噪聲就會被傳感器監測到,然後進入估計器,估計器能夠在傳感器輸出的信號中識別這個噪聲。當系統遭遇了“重放”攻擊,因爲系統的這個噪聲是完全隨機的,那麼傳感器裏面的隨機信號跟現在接收到的隨機信號就對應不上,因爲現在接受到的隨機信號是之前的信號“重放”過來的。因此,我們可以通過添加一個這樣小的擾動的方式去刺激這個系統,然後讓這個系統對這個小的擾動產生一個響應,這樣我們就可以去檢測出這個系統到底有沒有出問題了。我們稱這種方式爲主動檢測方式,主動地去激勵系統,而不是被動的去收集信息。其實,這個方法也跟計算機科學領域所說的Challenge-Response比較相似,通過給這個系統一個Challenge,然後這個系統就要返回Response,這樣就能感知到整個系統、整個控制迴路是不是都是完好無損的。

上圖是我們做的一些實驗的結果。針對的是一個非常簡單的系統,大家可以認爲這個是噪聲的能力,我們發現隨着加的能量越高,檢測的概率會變得越高。我們大概的處理思路就是這樣的,後面會有一些技術的問題,比如說加個擾動信號進去之後,系統的控制就沒那麼好,這產生代價會有多大?代價和檢測性能之間會存在什麼樣的關係?其中的Trade Off到底應該怎麼樣去做權衡?我們可以把它看成一個類似於優化的問題,然後我們可以去做一個求解。

事實上,我們現在做的這些設計都是基於模型已知的,因爲做系統控制通常來說大部分都是假設系統模型已知的。目前,基於數據的方式越來越流行了,我們也嘗試去做了一些數據驅動的實驗。其中我們需要作一些簡單的假設,比如系統本身是穩定的,我們知道x到底有幾維,其他具體的參數假設是未知的。然後我們可以去做一些數據驅動的方式。

想法也很簡單,就是我們要在這個地方加一個隨機信號,加了這個隨機信號,這個系統會產生一些刺激,產生這些刺激之後,我們就可以通過輸入和輸出的關係來對系統內部的具體參數做一些推斷。關於最好的信號具體應該怎麼加?檢測裝置應該怎麼去做?這些屬於具體的細節,在這裏我就不展開仔細講了。下面是我們針對化工領域常用的TEP系統做的一個仿真。虛線是我們在沒有模型知識的情況下,通過數據學習了水印信號和檢測器的最優設計,得到的檢測器的輸出。

可以看到,跟有模型的實線吻合得非常好。另外,這個系統在100時刻收到了“重放”攻擊,可以看到我們的水印方法可以有效地檢測到攻擊。

算法設計

下面我想講的是一個有韌性的算法到底應該怎麼去設計。這裏講的也是一個非常簡單的問題,類似於一個簡單的狀態估計的問題。比如說自動駕駛的汽車裏面有很多傳感器都可以給這個車做定位,比如雷達、GPS、IMU、視覺傳感器,那麼我們應該怎麼把這個東西給融合起來,這就是一個很傳統的狀態估計的問題。

這是一個非常簡化模型,有很多傳感器,每一個傳感器都在測量一個叫做狀態的東西,這個狀態是記做x,傳感器的測量值記做z。當然這裏指的是一個簡化的線性高斯模型,就是說測量值是真實狀態的一個線性函數加上一定的噪聲。比如說最簡單的例子:有三個傳感器,這三個傳感器都在測量位置,這個位置在這裏假設它是一個一維的信號,三個傳感器都在測量位置,都帶有一些噪聲。這種情況下融合的規律很簡單,就是求這三個測量值的平均值,也可以證明在很多意義下是最大似然,或者是最小均方誤差的一個估計,這些都不是很很難。

但是問題是,如果針對這樣的一個估計器,假設有一個傳感器存在很大的問題,比如說有一個傳感器它可能特別大或者特別小,就會把整體的估計值帶偏,那麼這就會產生一個非常嚴重的後果。

當然這個問題也可以說非常簡單,因爲這三個傳感器都在測量同樣的內容,就知道這三個傳感器的測量值應該是接近的,如果其中有一個跟另外兩個之間差距很大,那麼我們就可以認爲這個傳感器是存在問題的,就可以把它剔除出去。這其實是一種叫做壞數據檢測的想法,就是把跟其他數據不匹配的數據給剔除掉,這樣的做法感覺上是比較簡單,但是其實也不是那麼簡單。因爲這個模型是一個非常簡單的模型,就是三個傳感器都在測一個同樣的東西、同樣的狀態,因此可以說如果有一個跟其他兩個差得很多,就是這個傳感器有問題。但是假設我們在測不同的狀態,比如說有的傳感器在測這個房間的溫度,有的在測走廊的溫度,有的在測另一個房間的溫度,那麼它們之間的數據怎樣叫做匹配,怎樣叫做不匹配,這個問題就變得很複雜了。

再比如說,無人駕駛車的GPS和雷達都在測位置,但是兩個位置可能是在不同時間測的,假如這個傳感器告訴我現在在這裏,而另外一個傳感器告訴我說下一個時刻在那裏,這種情況下判斷這兩個數據到底匹配不匹配,這個就是一個很複雜的問題。

因此,我們這個地方的想法是能否可以不用這種壞數據檢測的方法,因爲使用壞數據檢測,首先必須要定義什麼叫數據匹配。實際上,定義的一般的方法,也是先做一個狀態估計,然後通過狀態估計去算殘差,再通過殘差去確定數據是不是匹配,而我們想直接把一個好的狀態估計計算出來。所以這裏我們考慮這樣的一個問題,z是一個真實的傳感器的估計值,我們認爲這個估計值等於狀態的一個線性函數加上一個噪聲,可能會有一些傳感器受到攻擊,那麼要額外在這真實的估計值上加上一個攻擊項。z裏面既有噪聲也有攻擊,噪聲一般考慮是一個比較小的數,比如像高斯可能有一個固定的方差,它不會特別大,但是噪聲會影響到所有的傳感器。而作爲攻擊來講,我們認爲攻擊和噪聲不一樣,攻擊可能是一個任意值,也就是說它可能很大也可能很小,但是這個攻擊只能影響有限的傳感器,比如整個系統裏面有10個傳感器,可能只有1個受到攻擊,如果10個都受到攻擊,當然這個系統基本上就完蛋了,所以一般只有一小部分傳感器受到攻擊,然後在這種情況下,我們到底應該怎麼去解決這個問題。

我們提出利用凸優化的方法去求解這個問題,大概想法是:每一個傳感器的測量值,當然這個測量值可能是受到攻擊之後的值,假設這個系統既沒有攻擊也沒有噪聲的話,那麼應該是等於。但是,因爲有可能有攻擊,也有可能有噪聲,所以這個東西肯定是不相等的,就認爲它是第個傳感器的殘差,肯定不是等於0的。那麼在這種情況下,我們希望找到一個很好的x讓殘差儘可能小,就是希望去最小化這樣一個殘差的函數。我們在這裏假設是凸的,同時它是對稱的、非負的。事實上也可以證明有很多種的估計器,都可以寫成這種形式,比如說剛纔我們說的最小二乘估計器。

我們可以再看一些例子,比如有這樣的一個問題,還是跟剛纔完全一樣,有三個傳感器都在監測狀態,然後同時有一些噪聲,然後假設有一個傳感器可能會受到攻擊。在這種情況下,如果去優化平方的話,肯定是有問題的,因爲平方得出來的是說你的狀態估計應該是平均值,平均值本身是不太穩定的。但是你不去優化平方和而是優化絕對值的和,那麼這樣的話你的估計就會是一箇中位數,中位數就是說去掉最大、去掉最小,中間的那個數,那麼這樣的話,應該是一個比較好的結果。

通過這個東西,我們就可以得到類似於一個安全估計的一個充分條件,就是說你需要保證兩件事情,當然這個是從數學上來說比較簡單的想法。就是說首先每一個人所能產生的力必須是一個有限的,這個力其實本質上來說就是斜率,就是說它的最大的斜率必須是有限的。然後,另外就是說,你任何P個人所產生的力一定要小於剩下的人所產生的力,因爲在這裏我假設有P個人可能是有問題的,這樣的話P個人會有問題的話,不會把整個系統給帶跑,大概是這樣。當然,反過來你可以證明這兩個條件也是必要的。

當然,我們後面還做了很多關於動態系統的,因爲時間可能不太多,這裏就不展開了。2015年到2018年期間,我在新加坡,當時我們接了新加坡國防部一個關於自動駕駛的項目,他們也是比較關心自動駕駛中的安全問題,這裏給大家展示的是我們在一個仿真系統上做的一些東西。

問題是這樣的,現在系統裏面一共是有三個用於定位的傳感器:IMU、雷達、GPS。其中,這條黃色的線是GPS告訴我的位置,大家可以看到GPS逐漸偏移真實的位置,這個原因是因爲我們在這個系統裏面加了一個GPS的欺騙工具。這種工具也是比較常見,之前也有過伊朗通過GPS欺騙攻擊,捕獲了美國的一個無人機,因爲那個無人機認爲它已經飛到一個安全的地方,就降落了,但是其實那個地方是伊朗的佔領區,然後它就被捕獲了。因爲GPS信號是一個單方向,通訊員其實是沒有辦法去確認GPS信號是不是真的,所以如果我們有一個發射器,發射一個更強的信號,把真實的GPS信號壓過去,那麼在這種情況下你得到GPS就是錯的。

這張圖是我們採用傳統的信息融合方式EKF把IMU、雷達、GPS做一個融合,粉色的是我們做了一個融合的信息。這個時候,你也可以看到粉色線的已經偏出去了,最後偏的有兩米左右這個距離,就大概偏出了一個車道,就因爲 GPS的信號被人劫持了。這張圖是我們後面加了一些安全的設計結果,會發現當你偏得比較小的時候,你是沒有辦法檢測出來到底是由噪聲引起還是由攻擊引起的。但是,如果當GPS偏非常大的時候,我們在這個地方就可以發現GPS信號是有問題的,然後我們就會把三個傳感器融合變成只用雷達和IMU兩個傳感器去做融合。這樣的一個效果,就等於說已經檢測出來GPS有問題。

總結

今天講的Technical的東西比較多,主要就是想跟大家聊一聊信息物理系統的安全,因爲安全本身就是一個挺重要的問題。其次,從控制的角度來說,我們對這一方面的東西有一些自己的思考,可能跟傳統的計算機方向相比,大家思考的方式可能也不是特別一樣。但是我依然覺得,最終的一個解決方案應該是很多學科共同去協作配合,然後產生一個多層、多種角度、多種手段這樣一個防禦機制。

我今天主要講的一個是入侵檢測,一個是狀態估計這樣的兩個問題。事實上這個理念單純從控制角度來說也面臨很多的挑戰,現在這個領域大概也就是10年左右纔能有一些成果,但是我覺得還是要多多學習。我希望做的一些東西,能夠給真實的信息物理系統提供一些額外的安全保障。感謝大家。

作者介紹

莫一林

現任清華大學自動化系副教授。他於2007年在清華大學自動化係獲得學士學位,2012年於美國卡內基梅隆大學電子與計算機工程系獲得博士學位。加入清華大學之前,他曾於卡內基梅隆大學,加州理工學院進行博士後研究。2015年他加入了新加坡南洋理工大學電子與電機工程學院,任助理教授,2018年返回清華大學自動化系任職。目前擔任控制領域頂級期刊Automatica的Associate Editor。他的主要研究方向包括控制系統安全與網絡化控制系統,及其在智能電網、機器人與無人駕駛領域的應用。

本文轉載自公衆號美團技術團隊(ID:meituantech)。

原文鏈接

清華大學莫一林:信息物理系統中的安全控制算法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章