国科微首席科学家康新海:全力打造存储系统安全

12月11日, 在北京国际饭店举行的“2018中国存储与数据峰会(DATA & STORAGE SUMMIT 2018)”上,国科微首席科学家康新海以“全力打造存储系统安全”为题发表主题演讲。

以下内容根据速记整理,未经本人审定。

国科微首席科学家康新海

康新海:了解国科微的都知道,我们是一家从事芯片开发的公司,我们开发的芯片涉及IOT和一些消费级以及企业机的存储芯片。

今天为什么我站在台上讲存储系统的安全?回答这个问题之前,我想分享一下我对业界科技发展的一个看法。

我一直认为,技术的发展其实是一个螺旋上升的过程,所以走到一定时候的时候,我们发现好象历史在重演,就像今天上午有位嘉宾说有时候感觉很吊诡,我的感觉也是这样。

举例子,在互联网出现之前,大家都很辛苦的开发基于windows的程序,当互联网火热以后,应用程序开始慢慢的消沉,转成网页的操作;智能手机出现和普及以后,大家现在都是用APP,但我个人不喜欢用APP,我每次手机浏览百度的时候,总是让我安装APP,但是不管怎么样,可能我反潮流,但是潮流就是这样,似乎又重复的回到了之前的时代。

还有一个例子,我们存储的设备,在最开始我上大学的时候,要去访问一个硬盘,我们要知道数据在硬盘的哪个柱面、哪个磁头、哪个扇区。那时候我们用CHS而不是现在的LBA来寻址。更复杂地应用程序可能需要直接访问磁盘控制器的寄存器,而且硬件和软件都没有标准化。后来慢慢的开始出现一些标准,从高层的应用层协议,比如ATA协议出现了,控制器芯片的接口,比如说基于PCIe的,就出现了最早的IDE到后来的AHCI,还有现在对于闪存来说有NVMe这样一个标准的协议,把这些标准化以后,应用层就变得比较简单了。这个时候我们就发现存储设备做的越来越复杂,当然这也得力于芯片技术的不断发展,在一个嵌入系统里的CPU越来越强大,所以存储设备自身做的事情越来越多,也越来越复杂,特别是到了SSD,由于Flash重写之前要擦除,导致SSD软硬件非常复杂。随着颗粒的成本不断的下降,我们对控制器本身的成本要求也越来越严格,虽然现在SSD闪存颗粒的价格下降了,但是DRAM价格没有下降,于是SSD里面的RAM很少。但是大家对性能要求没有降低,反而时要求越来越高,包括了带宽和访问的时延,这样SSD越来越复杂。当数据中心云计算等领域开始大量使用SSD以后,很多人希望在上层直接控制颗粒,而不是说通过一个Flash Translation Layer (FTL)。就像刚才那个朋友说的,让应用层直接控制颗粒,让主机侧的软件来做闪存的管理,包括FTL、磨损均衡等等。

但是我们现在又发现一个问题,随着人工智能的火热,大家希望把人工智能和深度学习的功能放进存储设备里来做一些所谓的智能设备,又重新把复杂的功能拉到了SSD里。总之我们的主要功能在不断的变化,有一段时间可能在设备里,有一段时间会被拉到主机侧,又被拉回来。

我举例子的原因是为了引入我开始给我自己提出的问题,为什么作为芯片公司的人要谈系统的安全。

我认为单纯做芯片不能说没有出路,但很辛苦,做芯片的必须要和系统紧密结合,做出不管是存储还是加速的芯片,不能说做一个芯片,告诉你怎么样访问我的芯片,你去做其他的事情,这样不行,必须要深入的了解系统时如何使用存储设备的,切入到系统的领域来,才能充分的发挥系统芯片的功能,设计出更好的芯片。

当然,数据的安全或者说信息安全其实是一个很泛的课题,包括物理安全,容灾,包括网络的安全,服务器本身系统的安全,但是今天我会着重讲密码学在存储系统安全中的应用和国科在上面所进行的工作。

安全层面,基本上要解决这几个问题,第一,机密性,必须保证数据不能被不该看的人看到,第二个,完整性和真实性,也就是数据放在那里,你虽然看不到,因为你没有被授权,我也不能让你修改,或者你修改了我的数据我是能知道的,比如说我有一段视频,被你篡改了,我都不知道,那么可能真实性完全没有了,我看到的内容完全是错误的,第三个重要的方面,抗抵赖,你送给我一段消息,张三送给我的,我一定要确认是张三送的,

说安全一定要谈攻击,但是今天我只想说一点,攻击者对加密数据的破解可能超乎你的想象。现在的密码学算法本身都是公开的,也必须公开,一个靠保密算法来实现安全的措施,基本上可以说是耍流氓,所以算法是公开的,破解者甚至可以根据硬件在执行一个算法的过程里,所花费的时间、所消耗的功耗已经电磁辐射破译出密钥,对于数据加密来说,如果密钥被破解了,数据基本上一览无余,所以我只是想强调一下数据安全的重要性,别人破解你的手段是很高的。

应用安全密码学的算法基本上都是很成熟的算法,对应刚才说的三大课题,其实在密码学里有三大类的算法,有对称密钥算法和杂凑算法和非对称密钥算法,当然他们并不是一个算法只解决一个问题,有时候是多类算法联合起来,可以实现刚才安全的服务,所以这是三大类算法。

说到密码学,有重要地一点,就是密钥,因为所有的东西都是靠密钥实现保护的,那么密钥的管理就包括密码的生成、密钥的生成、密钥的存储和交换、密钥的使用、更替、销毁等等,这些都是很重要的课题。比如说密钥生成,通常做数据加密的时候,我们都会用所谓的对称加密算法,用一个128或者256比特的密钥,这个密钥通常就是一个简单的随机数或者通过一个随机数通过特定运算生成,但是对这个随机数就会有一写要求,比如说我们随便在电脑上调一个高级语言的函数产生一个随机数,这个随机数我们叫伪随机数,都是靠算法实现的,是可重现的,如果是这种方式实现随机数,来生成一个密钥,那是非常不安全的,所以通常来说安全的方法一定要有一个真正的随机数,这个只能是靠硬件实现,而不能靠软件实现。

密钥其实有很多很多种,根据我们最佳实践,最安全的方法是一个密钥只能是做一件事,而且一个密钥只能是保护尽量少的数据,如果一个密钥保护了太多的数据,密钥被破解的几率就会大大增加。我们可以看到一系列各种各样的密钥,比如对称加密密钥、非对称密钥,随机数生成密钥、签名密钥、验证密钥、交换密钥、导入导出密钥等等,五花八门。

刚才我简单的介绍了跟安全有关的一些密码学的知识,下面再来看一看落到存储系统里,数据安全到底要保护什么数据,我们的数据可以分为三大类,第一,动态数据,第二,静态数据,第三,工作数据。

什么是静态数据?静态数据就是已经保存到到存储介质上的数据,这个数据一定要保护,不然别人把你的盘偷走了,你的数据就没有了。第二,动态数据,因为数据不是静止的,特别是现在的分布式时代,数据应用程序在很遥远的地方,要从存储设备把数据读取出去,都要经过各式各样的网络和网关以及各种各样的服务器,这个数据在流动过程里任何时候都可能会被别人拦截,所以动态数据是需要保护的。还有正在被使用的数据,比如你把数据已经从数据中心拿到本机了,你在使用它肯定会在内存里留下痕迹,这个时候也有可能别人如何黑到你的电脑里,你正在使用这个数据,也会被人窃取,所以这个是安全领域需要解决的三大类数据的保护。

这个图是来自ISO关于存储安全的一份文档的图,描述了数据从左侧到最右侧,右侧是存储设备,就是静态的数据,在最左侧是一些客户端,在使用数据,或者说产生一些数据,数据总是有的地方产生,我们姑且称之为数据源,这些数据中间要经过网络,网关和各个服务器,最终到存储设备,我们选择安全的时候,必须要选择在什么地方去实现数据的加密,我们可以选择在应用层加密,也就是我的数据一产生就把它加密,把数据发送到网络,发送到存储的系统过程之前,就把它加密,这样是最安全的,我们就不用保护网络了,我们也不用保护存储设备了,数据一产生就被加密了。

第二类方式,我们选择在文件系统加密,因为你去改一个应用程序,比如应用程序产生数据的时候,一定要加密,这个很严格,你要改应用程序,太多了,我们不妨选择在文件系统层加密,应用程序调用标准的文件访问接口读取文件的时候,我们写文件的时候加密,读文件的时候解密,文件系统,不管是集中式的文件系统还是分布式的文件系统,都有一些加密的文件。

另一个选择,可能在网络层加密,做一个加密网关,数据在这里就加密要读出去时候解密,这是网络层。

最后一个层,在存储设备层来加密,这是最底层的加密,理论来说在应用层加密是最安全的,但是它最复杂的,存储设备层加密是相对最简单的,但是是最不安全的,前面还有一条畅长的路,没有得到保护。

这里是一个存储系统的逻辑拓扑图。一个存储系统集群,无非就提供了不同访问类型的接口,就是快存储接口、文件存储接口、对象存储接口,我可以提供不同的服务,在不同的服务上有不同的应用,比如云计算,网关服务,共享文件服务,流媒体服务。

我们看一个物理图。

存储系统集群是很多的服务器和很多的存储设备,在上面有各种各样的接入服务器,或者说叫网关,有块存储网关和文件存储网关和各种网关做协议的转换,最上面有一些计算节点,就是数据源存在的地方,选择安全的方案时可以在最底层的磁盘加密,就像现在我们使用很多的自加密硬盘,也可以选择在这些各类接入服务器做协议转换的时候进行加密,可以选择在计算节点进行加密,就像刚才说的我们理想的情况是应用层加密,其实比较难实现,但是有一个特例,就是虚拟计算,虚拟计算我们可以这么理解,其实宿主机每一个虚拟机就是一个数据源,在虚拟机环境下很容易的实现应用层的加密,虚拟机有一个虚拟硬盘,做一个启动盘,也会使用存储设备的存储,通常有几种方式,一个是以本地文件的方式,远程的文件系统放到宿主机上,用本地的文件做一个虚拟盘,也可能连到存储设备上。

我下面介绍一下我们在存储安全领域的一些工作。作为一家芯片公司,我们提供了一些存储和加速芯片,提供了加密学各类算法的硬件实现,比如对称算法,非对称算法,密钥存储,等等。提供不同的接口形态,有USB接口,SATA接口,还有PCIe接口以适应不同的应用场景,我们也提供中间件,包括驱动和应用软件的接口,针对不同的特别是开源的分布式的文件系统,包括ceph和Gluster和插件,在ceph基础上怎么应用中间件实现数据的安全。

我的汇报就到这里,我们的口号是,“你的数据,我们为你守护”。

谢谢大家。