12月11日, 在北京國際飯店舉行的“2018中國存儲與數(shù)據(jù)峰會(DATA & STORAGE SUMMIT 2018)”上,國科微首席科學(xué)家康新海以“全力打造存儲系統(tǒng)安全”為題發(fā)表主題演講。
以下內(nèi)容根據(jù)速記整理,未經(jīng)本人審定。
國科微首席科學(xué)家康新海
康新海:了解國科微的都知道,我們是一家從事芯片開發(fā)的公司,我們開發(fā)的芯片涉及IOT和一些消費(fèi)級以及企業(yè)機(jī)的存儲芯片。
今天為什么我站在臺上講存儲系統(tǒng)的安全?回答這個(gè)問題之前,我想分享一下我對業(yè)界科技發(fā)展的一個(gè)看法。
我一直認(rèn)為,技術(shù)的發(fā)展其實(shí)是一個(gè)螺旋上升的過程,所以走到一定時(shí)候的時(shí)候,我們發(fā)現(xiàn)好象歷史在重演,就像今天上午有位嘉賓說有時(shí)候感覺很吊詭,我的感覺也是這樣。
舉例子,在互聯(lián)網(wǎng)出現(xiàn)之前,大家都很辛苦的開發(fā)基于windows的程序,當(dāng)互聯(lián)網(wǎng)火熱以后,應(yīng)用程序開始慢慢的消沉,轉(zhuǎn)成網(wǎng)頁的操作;智能手機(jī)出現(xiàn)和普及以后,大家現(xiàn)在都是用APP,但我個(gè)人不喜歡用APP,我每次手機(jī)瀏覽百度的時(shí)候,總是讓我安裝APP,但是不管怎么樣,可能我反潮流,但是潮流就是這樣,似乎又重復(fù)的回到了之前的時(shí)代。
還有一個(gè)例子,我們存儲的設(shè)備,在最開始我上大學(xué)的時(shí)候,要去訪問一個(gè)硬盤,我們要知道數(shù)據(jù)在硬盤的哪個(gè)柱面、哪個(gè)磁頭、哪個(gè)扇區(qū)。那時(shí)候我們用CHS而不是現(xiàn)在的LBA來尋址。更復(fù)雜地應(yīng)用程序可能需要直接訪問磁盤控制器的寄存器,而且硬件和軟件都沒有標(biāo)準(zhǔn)化。后來慢慢的開始出現(xiàn)一些標(biāo)準(zhǔn),從高層的應(yīng)用層協(xié)議,比如ATA協(xié)議出現(xiàn)了,控制器芯片的接口,比如說基于PCIe的,就出現(xiàn)了最早的IDE到后來的AHCI,還有現(xiàn)在對于閃存來說有NVMe這樣一個(gè)標(biāo)準(zhǔn)的協(xié)議,把這些標(biāo)準(zhǔn)化以后,應(yīng)用層就變得比較簡單了。這個(gè)時(shí)候我們就發(fā)現(xiàn)存儲設(shè)備做的越來越復(fù)雜,當(dāng)然這也得力于芯片技術(shù)的不斷發(fā)展,在一個(gè)嵌入系統(tǒng)里的CPU越來越強(qiáng)大,所以存儲設(shè)備自身做的事情越來越多,也越來越復(fù)雜,特別是到了SSD,由于Flash重寫之前要擦除,導(dǎo)致SSD軟硬件非常復(fù)雜。隨著顆粒的成本不斷的下降,我們對控制器本身的成本要求也越來越嚴(yán)格,雖然現(xiàn)在SSD閃存顆粒的價(jià)格下降了,但是DRAM價(jià)格沒有下降,于是SSD里面的RAM很少。但是大家對性能要求沒有降低,反而時(shí)要求越來越高,包括了帶寬和訪問的時(shí)延,這樣SSD越來越復(fù)雜。當(dāng)數(shù)據(jù)中心云計(jì)算等領(lǐng)域開始大量使用SSD以后,很多人希望在上層直接控制顆粒,而不是說通過一個(gè)Flash Translation Layer (FTL)。就像剛才那個(gè)朋友說的,讓應(yīng)用層直接控制顆粒,讓主機(jī)側(cè)的軟件來做閃存的管理,包括FTL、磨損均衡等等。
但是我們現(xiàn)在又發(fā)現(xiàn)一個(gè)問題,隨著人工智能的火熱,大家希望把人工智能和深度學(xué)習(xí)的功能放進(jìn)存儲設(shè)備里來做一些所謂的智能設(shè)備,又重新把復(fù)雜的功能拉到了SSD里。總之我們的主要功能在不斷的變化,有一段時(shí)間可能在設(shè)備里,有一段時(shí)間會被拉到主機(jī)側(cè),又被拉回來。
我舉例子的原因是為了引入我開始給我自己提出的問題,為什么作為芯片公司的人要談系統(tǒng)的安全。
我認(rèn)為單純做芯片不能說沒有出路,但很辛苦,做芯片的必須要和系統(tǒng)緊密結(jié)合,做出不管是存儲還是加速的芯片,不能說做一個(gè)芯片,告訴你怎么樣訪問我的芯片,你去做其他的事情,這樣不行,必須要深入的了解系統(tǒng)時(shí)如何使用存儲設(shè)備的,切入到系統(tǒng)的領(lǐng)域來,才能充分的發(fā)揮系統(tǒng)芯片的功能,設(shè)計(jì)出更好的芯片。
當(dāng)然,數(shù)據(jù)的安全或者說信息安全其實(shí)是一個(gè)很泛的課題,包括物理安全,容災(zāi),包括網(wǎng)絡(luò)的安全,服務(wù)器本身系統(tǒng)的安全,但是今天我會著重講密碼學(xué)在存儲系統(tǒng)安全中的應(yīng)用和國科在上面所進(jìn)行的工作。
安全層面,基本上要解決這幾個(gè)問題,第一,機(jī)密性,必須保證數(shù)據(jù)不能被不該看的人看到,第二個(gè),完整性和真實(shí)性,也就是數(shù)據(jù)放在那里,你雖然看不到,因?yàn)槟銢]有被授權(quán),我也不能讓你修改,或者你修改了我的數(shù)據(jù)我是能知道的,比如說我有一段視頻,被你篡改了,我都不知道,那么可能真實(shí)性完全沒有了,我看到的內(nèi)容完全是錯(cuò)誤的,第三個(gè)重要的方面,抗抵賴,你送給我一段消息,張三送給我的,我一定要確認(rèn)是張三送的,
說安全一定要談攻擊,但是今天我只想說一點(diǎn),攻擊者對加密數(shù)據(jù)的破解可能超乎你的想象。現(xiàn)在的密碼學(xué)算法本身都是公開的,也必須公開,一個(gè)靠保密算法來實(shí)現(xiàn)安全的措施,基本上可以說是耍流氓,所以算法是公開的,破解者甚至可以根據(jù)硬件在執(zhí)行一個(gè)算法的過程里,所花費(fèi)的時(shí)間、所消耗的功耗已經(jīng)電磁輻射破譯出密鑰,對于數(shù)據(jù)加密來說,如果密鑰被破解了,數(shù)據(jù)基本上一覽無余,所以我只是想強(qiáng)調(diào)一下數(shù)據(jù)安全的重要性,別人破解你的手段是很高的。
應(yīng)用安全密碼學(xué)的算法基本上都是很成熟的算法,對應(yīng)剛才說的三大課題,其實(shí)在密碼學(xué)里有三大類的算法,有對稱密鑰算法和雜湊算法和非對稱密鑰算法,當(dāng)然他們并不是一個(gè)算法只解決一個(gè)問題,有時(shí)候是多類算法聯(lián)合起來,可以實(shí)現(xiàn)剛才安全的服務(wù),所以這是三大類算法。
說到密碼學(xué),有重要地一點(diǎn),就是密鑰,因?yàn)樗械臇|西都是靠密鑰實(shí)現(xiàn)保護(hù)的,那么密鑰的管理就包括密碼的生成、密鑰的生成、密鑰的存儲和交換、密鑰的使用、更替、銷毀等等,這些都是很重要的課題。比如說密鑰生成,通常做數(shù)據(jù)加密的時(shí)候,我們都會用所謂的對稱加密算法,用一個(gè)128或者256比特的密鑰,這個(gè)密鑰通常就是一個(gè)簡單的隨機(jī)數(shù)或者通過一個(gè)隨機(jī)數(shù)通過特定運(yùn)算生成,但是對這個(gè)隨機(jī)數(shù)就會有一寫要求,比如說我們隨便在電腦上調(diào)一個(gè)高級語言的函數(shù)產(chǎn)生一個(gè)隨機(jī)數(shù),這個(gè)隨機(jī)數(shù)我們叫偽隨機(jī)數(shù),都是靠算法實(shí)現(xiàn)的,是可重現(xiàn)的,如果是這種方式實(shí)現(xiàn)隨機(jī)數(shù),來生成一個(gè)密鑰,那是非常不安全的,所以通常來說安全的方法一定要有一個(gè)真正的隨機(jī)數(shù),這個(gè)只能是靠硬件實(shí)現(xiàn),而不能靠軟件實(shí)現(xiàn)。
密鑰其實(shí)有很多很多種,根據(jù)我們最佳實(shí)踐,最安全的方法是一個(gè)密鑰只能是做一件事,而且一個(gè)密鑰只能是保護(hù)盡量少的數(shù)據(jù),如果一個(gè)密鑰保護(hù)了太多的數(shù)據(jù),密鑰被破解的幾率就會大大增加。我們可以看到一系列各種各樣的密鑰,比如對稱加密密鑰、非對稱密鑰,隨機(jī)數(shù)生成密鑰、簽名密鑰、驗(yàn)證密鑰、交換密鑰、導(dǎo)入導(dǎo)出密鑰等等,五花八門。
剛才我簡單的介紹了跟安全有關(guān)的一些密碼學(xué)的知識,下面再來看一看落到存儲系統(tǒng)里,數(shù)據(jù)安全到底要保護(hù)什么數(shù)據(jù),我們的數(shù)據(jù)可以分為三大類,第一,動(dòng)態(tài)數(shù)據(jù),第二,靜態(tài)數(shù)據(jù),第三,工作數(shù)據(jù)。
什么是靜態(tài)數(shù)據(jù)?靜態(tài)數(shù)據(jù)就是已經(jīng)保存到到存儲介質(zhì)上的數(shù)據(jù),這個(gè)數(shù)據(jù)一定要保護(hù),不然別人把你的盤偷走了,你的數(shù)據(jù)就沒有了。第二,動(dòng)態(tài)數(shù)據(jù),因?yàn)閿?shù)據(jù)不是靜止的,特別是現(xiàn)在的分布式時(shí)代,數(shù)據(jù)應(yīng)用程序在很遙遠(yuǎn)的地方,要從存儲設(shè)備把數(shù)據(jù)讀取出去,都要經(jīng)過各式各樣的網(wǎng)絡(luò)和網(wǎng)關(guān)以及各種各樣的服務(wù)器,這個(gè)數(shù)據(jù)在流動(dòng)過程里任何時(shí)候都可能會被別人攔截,所以動(dòng)態(tài)數(shù)據(jù)是需要保護(hù)的。還有正在被使用的數(shù)據(jù),比如你把數(shù)據(jù)已經(jīng)從數(shù)據(jù)中心拿到本機(jī)了,你在使用它肯定會在內(nèi)存里留下痕跡,這個(gè)時(shí)候也有可能別人如何黑到你的電腦里,你正在使用這個(gè)數(shù)據(jù),也會被人竊取,所以這個(gè)是安全領(lǐng)域需要解決的三大類數(shù)據(jù)的保護(hù)。
這個(gè)圖是來自ISO關(guān)于存儲安全的一份文檔的圖,描述了數(shù)據(jù)從左側(cè)到最右側(cè),右側(cè)是存儲設(shè)備,就是靜態(tài)的數(shù)據(jù),在最左側(cè)是一些客戶端,在使用數(shù)據(jù),或者說產(chǎn)生一些數(shù)據(jù),數(shù)據(jù)總是有的地方產(chǎn)生,我們姑且稱之為數(shù)據(jù)源,這些數(shù)據(jù)中間要經(jīng)過網(wǎng)絡(luò),網(wǎng)關(guān)和各個(gè)服務(wù)器,最終到存儲設(shè)備,我們選擇安全的時(shí)候,必須要選擇在什么地方去實(shí)現(xiàn)數(shù)據(jù)的加密,我們可以選擇在應(yīng)用層加密,也就是我的數(shù)據(jù)一產(chǎn)生就把它加密,把數(shù)據(jù)發(fā)送到網(wǎng)絡(luò),發(fā)送到存儲的系統(tǒng)過程之前,就把它加密,這樣是最安全的,我們就不用保護(hù)網(wǎng)絡(luò)了,我們也不用保護(hù)存儲設(shè)備了,數(shù)據(jù)一產(chǎn)生就被加密了。
第二類方式,我們選擇在文件系統(tǒng)加密,因?yàn)槟闳ジ囊粋€(gè)應(yīng)用程序,比如應(yīng)用程序產(chǎn)生數(shù)據(jù)的時(shí)候,一定要加密,這個(gè)很嚴(yán)格,你要改應(yīng)用程序,太多了,我們不妨選擇在文件系統(tǒng)層加密,應(yīng)用程序調(diào)用標(biāo)準(zhǔn)的文件訪問接口讀取文件的時(shí)候,我們寫文件的時(shí)候加密,讀文件的時(shí)候解密,文件系統(tǒng),不管是集中式的文件系統(tǒng)還是分布式的文件系統(tǒng),都有一些加密的文件。
另一個(gè)選擇,可能在網(wǎng)絡(luò)層加密,做一個(gè)加密網(wǎng)關(guān),數(shù)據(jù)在這里就加密要讀出去時(shí)候解密,這是網(wǎng)絡(luò)層。
最后一個(gè)層,在存儲設(shè)備層來加密,這是最底層的加密,理論來說在應(yīng)用層加密是最安全的,但是它最復(fù)雜的,存儲設(shè)備層加密是相對最簡單的,但是是最不安全的,前面還有一條暢長的路,沒有得到保護(hù)。
這里是一個(gè)存儲系統(tǒng)的邏輯拓?fù)鋱D。一個(gè)存儲系統(tǒng)集群,無非就提供了不同訪問類型的接口,就是快存儲接口、文件存儲接口、對象存儲接口,我可以提供不同的服務(wù),在不同的服務(wù)上有不同的應(yīng)用,比如云計(jì)算,網(wǎng)關(guān)服務(wù),共享文件服務(wù),流媒體服務(wù)。
我們看一個(gè)物理圖。
存儲系統(tǒng)集群是很多的服務(wù)器和很多的存儲設(shè)備,在上面有各種各樣的接入服務(wù)器,或者說叫網(wǎng)關(guān),有塊存儲網(wǎng)關(guān)和文件存儲網(wǎng)關(guān)和各種網(wǎng)關(guān)做協(xié)議的轉(zhuǎn)換,最上面有一些計(jì)算節(jié)點(diǎn),就是數(shù)據(jù)源存在的地方,選擇安全的方案時(shí)可以在最底層的磁盤加密,就像現(xiàn)在我們使用很多的自加密硬盤,也可以選擇在這些各類接入服務(wù)器做協(xié)議轉(zhuǎn)換的時(shí)候進(jìn)行加密,可以選擇在計(jì)算節(jié)點(diǎn)進(jìn)行加密,就像剛才說的我們理想的情況是應(yīng)用層加密,其實(shí)比較難實(shí)現(xiàn),但是有一個(gè)特例,就是虛擬計(jì)算,虛擬計(jì)算我們可以這么理解,其實(shí)宿主機(jī)每一個(gè)虛擬機(jī)就是一個(gè)數(shù)據(jù)源,在虛擬機(jī)環(huán)境下很容易的實(shí)現(xiàn)應(yīng)用層的加密,虛擬機(jī)有一個(gè)虛擬硬盤,做一個(gè)啟動(dòng)盤,也會使用存儲設(shè)備的存儲,通常有幾種方式,一個(gè)是以本地文件的方式,遠(yuǎn)程的文件系統(tǒng)放到宿主機(jī)上,用本地的文件做一個(gè)虛擬盤,也可能連到存儲設(shè)備上。
我下面介紹一下我們在存儲安全領(lǐng)域的一些工作。作為一家芯片公司,我們提供了一些存儲和加速芯片,提供了加密學(xué)各類算法的硬件實(shí)現(xiàn),比如對稱算法,非對稱算法,密鑰存儲,等等。提供不同的接口形態(tài),有USB接口,SATA接口,還有PCIe接口以適應(yīng)不同的應(yīng)用場景,我們也提供中間件,包括驅(qū)動(dòng)和應(yīng)用軟件的接口,針對不同的特別是開源的分布式的文件系統(tǒng),包括ceph和Gluster和插件,在ceph基礎(chǔ)上怎么應(yīng)用中間件實(shí)現(xiàn)數(shù)據(jù)的安全。
我的匯報(bào)就到這里,我們的口號是,“你的數(shù)據(jù),我們?yōu)槟闶刈o(hù)”。
評論
查看更多