【Top Talk/大咖說】由美團技術學院主辦,面向全體技術同窗,按期邀請美團各技術團隊負責人、業界大咖、高校學者及暢銷書做者,爲你們分享最佳實踐、互聯網熱門話題、學術界前沿技術進展等內容,從而創建工程師文化、提高技術視野。2020年9月10日,Top Talk邀請到了清華大學自動化系莫一林副教授,請他帶來題爲《信息物理系統中的安全控制算法設計》的分享。本文系本次分享內容的文字實錄,但願能對你們有所幫助或者啓發。算法
如下系文字實錄:安全
中文講的「安全」,其實基本上包含了英文中的兩重含義,一個是Safety,一個是Security。信息物理系統中的安全問題主要是指Security,也就是說,若是有人想要攻擊你,在這種狀況下,怎麼可以保證系統的正常運行?微信
「信息物理系統」,這個詞大概是2006年由美國的National Science Foundation(美國國家科學基金會)最開始提出來的。信息物理系統本質上來講是Computation(計算)、Communication(通信)、Control(控制)三C的融合,把三個C互相之間結合起來,嵌入到一個物理世界當中,從而可以使得整個系統更好地感知或者控制物理世界。好比,無人駕駛就是一個信息物理系統,由於無人駕駛自己是有一個物理的實體,有不少傳感器來收集數據,這些數據通過通信上傳到計算機或者雲上面,同時車和車之間可能還有通信,而後去作感知、去作導航,再反饋到無人車的執行單元,最後反饋到物理空間。這些過程既包括了計算,也包括了控制的一些問題。網絡
其實,信息物理系統是一個很大的概念。以前你們說安全,其實更多的是想到計算機安全或者網絡安全,如今更多的是手機這類智能設備的安全。可是,信息物理系統安全爲何如今被提上了議程?這其中主要的緣由是傳統的控制系統,好比汽車內部的通信是經過CANBUS實現的,這樣的通信本質上來講是一個獨立的、專用的網絡,並不和其餘網絡產生任何的鏈接。因此在這種狀況下,就很難去大規模地攻擊這樣一個系統。函數
可是,如今智能化逐漸成爲了一種趨勢,並且智能化的一個核心的事情,就是要使用不少新興的感知和網絡的技術,實現萬物互聯。在這種背景下,就會產生很是多的問題,由於全部東西都聯網了,那麼系統受到攻擊的可能性就放大了不少。在這種狀況下,怎麼保證整個系統的穩定性或者說維護系統正常運行,這是一個很大的挑戰。 工具
上圖是咱們以前說的智能家居的一個示意圖。智能家居但願人們能夠經過好比手機App去控制家裏的電器,可是一旦家裏的電器都上網以後,智能家居控制系統的安全就會變得很是重要,若是當一個攻擊者能夠操縱成千上萬個家庭電器的話,這就可能帶來很是嚴重的問題。性能
咱們實驗室從2010年前就開始作信息物理系統安全方面的研究。當時,有黑客設計了「震網病毒」,它的目標是伊朗用來提純鈾235的離心機。「震網病毒」破壞了伊朗上千臺的離心機,最後對伊朗核計劃形成了很大的損害。這也算是一個利用「信息戰」成功帶來破壞的一個例子。也是由於這個事情,讓咱們把信息物理系統的安全問題迅速提上了日程。 學習
「震網病毒」的例子屬於國家行爲,可能比較少見,如今針對通常信息物理系統的攻擊行爲也愈來愈多。好比2016年,美國機構的報告就指出,整年一共有290屢次針對美國工業控制系統的攻擊,覆蓋了製造業、通信、能源等多個行業。優化
攻擊有不少種類型,先說比較常見的。若是系統聯網,能夠經過網絡去侵入系統;即便系統沒有聯網,那麼還有一些方式方法,好比像「震網病毒」的例子,是經過U盤一層一層帶進去的。這些方式都能形成很大的破壞。我以爲比較值得關注的是第二個問題,通常作控制或者這種背景的研究人員,不少時候對計算機安全並非特別有經驗,那麼開發的系統就可能會存在不少的漏洞。甚至有不少軟件的開發者本身都不知道本身的系統有漏洞,可是黑客就能夠發現你的漏洞。好比說像「震網病毒」的例子,伊朗不知道系統有問題,但黑客有內部資料,發現這個系統有問題,而後就利用這種漏洞去侵入了伊朗的系統。spa
你們比較擔憂的一個事情就是如今的系統變得愈來愈複雜,好比一輛車可能有幾百個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年左右纔能有一些成果,可是我以爲仍是要多多學習。我但願作的一些東西,可以給真實的信息物理系統提供一些額外的安全保障。
感謝你們!
想閱讀更多技術文章,請關注美團技術團隊(meituantech)官方微信公衆號。