基于SATA桥接芯片的数据安全保障方法与流程

文档序号:32133445发布日期:2022-11-09 11:17阅读:109来源:国知局
基于SATA桥接芯片的数据安全保障方法与流程
基于sata桥接芯片的数据安全保障方法
技术领域
1.本发明涉及信息安全存储领域,具体是基于sata桥接芯片的数据安全保障方法。


背景技术:

2.随着人工智能、深度学习、知识图谱、大数据等领域的蓬勃发展,数据规模和数据安全作为支撑以上领域发展的重要基础,以数字经济为代表的新经济成为经济增长新引擎,数据作为核心生产要素成为了基础战略资源。
3.针对海量存储的设备主要分为sata接口和pcie接口硬盘设备,pcie固态硬盘作为目前主要技术发展方向,占据越来越多的市场。然而sata接口的机械硬盘(后简称hdd)、固态硬盘(后简称ssd),尤其是hdd,由于其磁存储介质的可恢复性、高dsata retention(数据保存时间)表现、成本低廉的特点,在更关注稳定性和价格敏感的场景例如:小规模的数据中心、高校数据库、安防视频服务器等领域,往往有着不可替代的作用。
4.目前安全ssd采用的方法是使用标准的国际(aes)/国内(sm4)的密码算对数据进行加密,存储密文。而对硬盘(也指代sata接口的ssd/hdd)通过一定的认证机制(如opal指令集),通过密码、硬盘序列号等手段保护使用者的合法性。这种方法对未取得认可的ssd有一定的安全防范作用,但是在认证通过后的第三方隐式攻击,例如通过sata标准指令集更新硬盘固件、篡改分区表、伪造硬盘序列号等攻击手段显得保护能力不足。而通过主机与硬盘的直接绑定,由于两方都存储有安全信息,并且考虑到产品的兼容性和通用性的原因,对数据的窥探、暴力破解等往往是比较宽容的,例如在主机端或者硬盘就地存储密钥,会通过对内存读取或监测硬盘的特定位置进行密钥猜测。另外,对分区表的破坏可以起到对整个数据硬盘的损坏的目的。


技术实现要素:

5.针对现有技术的缺陷,本发明提供一种基于sata桥接芯片的数据安全保障方法,在运行态对ssd进行全面的保护,有效防止指令后门、固件篡改、引导扇区攻击、接触式攻击,并且赋予通用硬盘以权限分级和设备绑定功能,达到通用存储产品专用应用的目的。
6.为了解决所述技术问题,本发明采用的技术方案是:基于sata桥接芯片的数据安全保障方法,本方法将hy0168 sata桥接芯片连接于主机/服务器与sata存储设备之间,sata桥接芯片作为主机/服务器与sata存储设备之间数据传输的桥梁,对sata指令和用户数据起到加密和转发的作用,同时sata桥接芯片中存储有安全策略,对sata指令和数据进行管控,防止非法侵入和后门监听;安全策略包括白名单体系、数据过滤、三方认证和分区保护,分别从指令、数据、整体系统、分区维度对数据进行安全保护。
7.本发明中,sata桥接芯片采用山东华翼半导体有限公司的sata桥接芯片hy0168。
8.针对恶意指令攻击,例如非法固件升级、覆盖管理员密码等针对sata指令集的攻击,设置白名单体系。所述白名单体系是sata桥接芯片对sata指令集进行筛选,将指令集分为激活、禁止、管理三种状态,激活态下,sata桥接芯片转发主机指令到sata存储设备,作为
数据通讯桥梁进行sata指令数据转发,sata存储设备作为sata指令最终受体响应指令并通过sata桥接芯片反馈给主机;禁止态下,sata桥接芯片直接响应主机指令,通过显性失败或隐性失败来响应sata指令,sata桥接芯片作为最终sata指令受体,不进行转发,sata存储设备无法获取禁止态下所有指令;管理态下,sata桥接芯片参与指令判断,根据sata桥接芯片当前运行状态来决定进入激活态或者禁止态。
9.具体的,sata桥接芯片通过sata指令集筛选器对sata指令集进行筛选,激活态和禁止态由sata指令集筛选器直接处理,管理态先由sata指令集筛选器判断,然后传递给sata桥接芯片,由sata桥接芯片进行指令和状态判断。
10.针对对分区表的恶意破坏攻击设置数据过滤,数据过滤是对mbr分区表进行保护,防范主引导分区攻击,具体做法是mbr分区表修改依赖于定制工具,无法通过第三方工具进行修改,当sata桥接芯片检测到mbr数据修改时,判断当前操作是否是合法用户行为,如果是,则继续,如果不是,则反馈修改失败,然后sata桥接芯片随机生成一个硬盘实际容量范围之外的lba地址s,第三方工具获取地址s后生成新分区表信息,并通过s地址写入,sata桥接芯片解析分区表信息并判断解析出的s与原生成的s是否一致,如果一致则将分区表信息写入sata桥接芯片内部,并根据分区表修改sata存储设备分区表的信息和位置,sata桥接芯片复位,返回分区表修改成功。
11.为了保证安全,s具有一定的保活时间,sata桥接芯片通过定时器计时,在超过保活时间后,s失效。每次修改mbr分区表时,s重新产生,每次使用s后,sata桥接芯片将丢弃s不再使用。
12.正常情况下,系统可以读取mbr地址(lba0)/ gpt(lba2)获取分区信息,但是当lba0/lba2遭受非法写入攻击,hy0168固件将拒绝写入操作,重新分区或者格式化必须通过专用工具进行修改,这样保证了分区表以及分区分配的合法性。分区成功后,将分区表存放到hy0168的内部存储区中,不存储到外部硬盘。当hy0168与硬盘分离,由于硬盘存储的分区表是错误的,在脱离对应的hy0168的情况下,单独连接硬盘呈现未初始化状态。针对gpt分区,也可以通过存储lba2(gpt分区表的关键数据是存储在lba2中)来完成分区表保护。
13.针对通用设备的抗攻击情况和篡改序列号等行为,hy0168提出了一套以hy0168为中间介质的三方认证的方法。三方认证是由sata桥接芯片基于国产商密算法分别认证主机和sata存储设备,对主机、sata桥接芯片、sata存储设备进行三方绑定,主机端要求bios或tpm模块支持sm2加解密算法,并具备非易失存储功能;三方认证的流程为:上电后bios/tpm获取sata桥接芯片hy0168生成的sm2密钥对(pub_a,pri_a),pub_a 表示该密钥对中的公钥,pri_a 表示该密钥对中的私钥,bios/tpm获取公钥pub_a, bios/tpm生成一组sm2密钥对(pub_b,pri_b), pub_b表示该密钥对中的公钥,pri_b表示该密钥对中的私钥,读取bios/tpm存储的密钥分量r1,产生一组随机数r11,r11与r1长度相同,将r1、r11以及pub_b进行连接操作产生c,即c= r1‖r11‖pub_b,使用pub_a加密c,加密结果为c1,则c1=sm2pub_a(c),将c1发送给sata桥接芯片hy0168, sata桥接芯片hy0168使用pri_a解密c1得到c,然后读取hy0168 sata桥接芯片中存储的r2,计算得到r’,r’=r1 xor r2,计算sm3(r’)并比较存储在hy0168 sata桥接芯片中的sm3(r)是否一致,如果一致,则认证通过,计算r22,r22 = r xor r11,r是sata桥接芯片中设置的计算参数,r=r1 xor r2,并且r在sata桥接芯片中以哈希值的方式存储,使用pub_b加密r11,即c2=sm2pub_b(r11),发
送c2至bios/tpm,使用bios/tpm模块生成的sm2私钥pri_b解密c2得到r’11,比对r’11与r11是否一致,如果一致,则将r1更新为r11,hy0168 sata桥接芯片将r2更新为r22;读取sata存储设备序列号s1、隐藏空间的关键信息s2进入sata桥接芯片与存储设备互认,认证一致后,三方设备相互信任,sata存储设备进行数据通路释放,将存储在sata存储设备内部的真实分区表信息发送给主机,主机开始对硬盘进行识别。
14.针对单一密钥对全盘数据的保护强度不够的问题,设置分区保护机制。分区保护是指在sata桥接芯片内集成lba分析器和分区密钥扩展模块,分区密钥扩展模块与分区相对应,用于存储每个分区的范围、密钥和模式,并且分区密钥扩展模块进行密钥扩展,完成每个分区的密钥装配;数据传输时,lba分析器根据每次写入数据的地址和长度解析得到lba和分区对应关系,调用对应的分区密钥扩展模块的密钥信息进行数据加解密操作。
15.分区密钥来源包括自动产生和外部导入,hy0168固件量产阶段决定密钥产生模式。
16.自动产生:hy0168固件量产完成后,量产工具生成密钥信息,密钥存储到hy0168内部非易失存储区,并且锁定外部导入和密钥生成功能。
17.外部导入:hy0168固件量产完成后,量产工具不生成密钥信息,通过安全方法将密钥由外部导入密钥,密钥存储到hy0168内部非易失存储区,并且锁定密钥生成功能。
18.从数据恢复角度,外部导入密钥用户友好性更高。由于外部导入是由使用厂商完成,密钥由使用厂商保管并进行维护,在hy0168损坏或者进入快速销毁后,可通过重新导入密钥进行密钥导入国产,保证硬盘数据依然可用。
19.从数据安全角度,自动生成密钥安全性更高。自动产生密钥无法被导出到外部,并且一旦产生会锁定外部导入和密钥生成功能,在hy0168损坏或者进入快速销毁后,hy0168将自动重新生成新密钥替代旧密钥,密钥将永久失去,硬盘数据将无法恢复。
20.本发明的有益效果:本发明在主机/服务器与sata存储设备之间,将sata桥接芯片定义为“门卫”角色,通过白名单体系、数据过滤、分区密钥、三方认证等机制,在运行态对ssd进行全面的保护,并且通过在主板增加hy0168,完成通用硬盘存储设备变为高安全等级的专用存储设备目的。本发明可以解决存储数据安全及稳定性的问题,利于快速市场化推广,尤其是关注存储安全的行业,具备十分广泛的产业化前景。
附图说明
21.图1为sata桥接芯片存储数据控制示意图;图2是sata指令筛选状态示意图;图3是使用第三方工具修改mbr(lba0)/ gpt(lba2)的示意图;图4是bios、hy0168、硬盘三方认证过程示意图;图5是分区保护示意图。
具体实施方式
22.下面结合附图和具体实施例对本发明做进一步的说明。
23.实施例1本实施例公开一种基于sata桥接芯片的数据安全保障方法,如图1所示,本方法将
sata桥接芯片连接于主机/服务器与sata存储设备之间,将hy0168定义为“门卫”角色,通过白名单体系、数据过滤、分区密钥、三方认证机制,分别从指令、数据、分区、整体系统这几个维度对sata存储设备进行数据安全防护,有效防止指令后门、固件篡改、引导扇区攻击、接触式攻击、并且可以赋予通用硬盘以权限分级和设备绑定功能,达到通用存储产品专用应用的目的。
24.本实施例中,sata桥接芯片采用山东华翼半导体有限公司研发生产的sata桥接芯片hy0168,下面简称hy0168,sata存储设备为ssd硬盘,下面简称硬盘。
25.如图2所示,针对恶意指令攻击,例如非法固件升级、覆盖管理员密码等针对sata指令集的攻击。hy0168通过sata指令集筛选器将指令集分为激活(active)、禁止(forbidden),管理(manage)三种状态,hy0168量产后激活态和禁止态确定,管理态由hy0168固件根据使用场景进行灵活控制。
26.激活态下hy0168转发主机指令到硬盘,作为数据通讯桥梁进行sata指令数据转发,硬盘作为sata指令最终受体响应指令,并通过hy0168反馈给主机。具体的,当指令为激活(active)态,hy0168将指令由固件控制由sata 存储设备转发给sata 主机(sata 主机转发给sata 存储设备),实际指令受体为硬盘设备,根据硬盘指令响应结果和内容向主机端传递数据,例如identify device(0xec)。
27.禁止态下hy0168直接响应主机指令,通过显性失败和隐性失败来响应sata指令,hy0168作为最终sata指令受体,不进行转发。硬盘无法获取禁止态下所有指令。具体的,当指令为禁止(forbidden)态,具体指令内容由过滤模块处理,当为读取指令时,自动填充读取长度的数据,数据内容无意义;当为写入指令时,自动将数据丢弃,并返回主机端指令成功,指令功能不发生实际意义,例如download microcode,指令不发生实际功效,但从sata指令发起方获取的指令处理结果为成功。
28.管理态下hy0168固件参与指令判断,根据hy0168当前运行状态来进一步分析处理,来决定进入激活态或者禁止态。
29.具体的,当指令为管理(manage)态,hy0168将指令由固件进行解析,根据当前hy0168的安全状态,决定由hy0168应答还是硬盘进行应答。本实施例中通过sata私有指令实现状态控制,私有指令的方法参见专利cn107729777b 一种安全加密固态存储方法 。
30.例如进行security disable password(0xf6h)时,hy0168根据sata私有指令确认身份非法,固件直接拒绝指令行为,显性通知主机端指令失败或隐性通知主机端指令成功但不实际转发给硬盘。
31.或者进行security disable password(0xf6h)时,hy0168根据sata私有指令确认身份合法,指令和数据转发给硬盘设备启动功能。
32.本实施例中,激活态和禁止态由sata指令集筛选器硬件直接处理,hy0168固件不进行识别和判断。管理态先由sata指令集筛选器硬件判断,然后传递给hy0168固件,hy0168固件进行指令和状态判断,根据当前状态进行后续处理。
33.如图3所示,针对对分区表的恶意破坏攻击设置数据过滤,数据过滤是对mbr分区表进行保护,防范主引导分区攻击,具体做法是mbr分区表修改依赖于定制工具,无法通过第三方工具进行修改,当sata桥接芯片检测到mbr数据修改时,判断当前操作是否是合法用户行为,如果是,则继续,如果不是,则反馈修改失败,然后sata桥接芯片随机生成一个硬盘
实际容量范围之外的lba地址s,第三方工具获取地址s后生成新分区表信息,并通过s地址写入,sata桥接芯片解析分区表信息并判断解析出的s与原生成的s是否一致,如果一致则将分区表信息写入sata桥接芯片内部,并根据分区表修改sata存储设备分区表的信息和位置,sata桥接芯片复位,返回分区表修改成功。
34.本实施例中,s是一个系统可见分区之外的地址,类似于隐藏分区。比如硬盘实际容量为1024g,固件控制呈献给用户可见区域为1000g,剩下的24g通过固件来控制访问,而无法通过系统或者工具来访问。选取这24g范围内的一个地址作为s,备份分区表。这么做是对分区表的保护,默认系统分区表在lba0处,暴力修改mbr可能会导致别的分区被呈现出来。
35.每次修改mbr(lba0) /gpt(lba2)时s将重新产生,并且每次使用s后,hy0168将丢弃s不再使用。hy0168提供限时修改功能,每次使用s后,hy0168启动定时器计时,在规定时间内如果未返回s,hy0168将丢弃s不再使用。
36.当非法用户/病毒通过系统自带的分区工具或者格式化工具,进行分区表操作时,hy0168固件返回操作成功但是不转发指令,防止系统触发重试或者长时间卡顿。
37.正常情况下,系统可以读取mbr地址(lba0)/ gpt(lba2)获取分区信息,但是当lba0/lba2遭受非法写入攻击,hy0168固件将拒绝写入操作,重新分区或者格式化必须通过专用工具进行修改,这样保证了分区表以及分区分配的合法性。分区成功后,将分区表存放到hy0168的内部存储区中,不存储到外部硬盘。当hy0168与硬盘分离,由于硬盘存储的分区表是错误的,在脱离对应的hy0168的情况下,单独连接硬盘呈现未初始化状态。
38.针对gpt分区,也可以通过存储lba2(gpt分区表的关键数据是存储在lba2中)来完成分区表保护。
39.针对通用设备的抗攻击情况和篡改序列号等行为,hy0168提出了一套以hy0168为中间介质的三方认证的方法。三方认证是由sata桥接芯片基于国产商密算法分别认证主机和硬盘,对主机、sata桥接芯片、硬盘进行三方绑定,主机端要求bios或tpm模块支持sm2加解密算法,并具备非易失存储功能。
40.如图4所示,三方认证的流程为:上电后bios/tpm获取sata桥接芯片hy0168生成的sm2密钥对(pub_a,pri_a),pub_a 表示该密钥对中的公钥,pri_a 表示该密钥对中的私钥,bios/tpm获取公钥pub_a, bios/tpm生成一组sm2密钥对(pub_b,pri_b), pub_b表示该密钥对中的公钥,pri_b表示该密钥对中的私钥,读取bios/tpm存储的密钥分量r1,产生一组随机数r11,r11与r1长度相同,将r1、r11以及pub_b进行连接操作产生c,即c= r1‖r11‖pub_b,使用pub_a加密c,加密结果为c1,则c1=sm2pub_a(c),将c1发送给sata桥接芯片hy0168, sata桥接芯片hy0168使用pri_a解密c1得到c,然后读取hy0168 sata桥接芯片中存储的r2,计算得到r’,r’=r1 xor r2,计算sm3(r’)并比较存储在hy0168 sata桥接芯片中的sm3(r)是否一致,如果一致,则认证通过并计算r22,r22 = r xor r11,r是sata桥接芯片中设置的计算参数,r=r1 xor r2,并且r在sata桥接芯片中以哈希值的方式存储,使用pub_b加密r11,即c2=sm2pub_b(r11),发送c2至bios/tpm,使用bios/tpm模块生成的sm2私钥pri_b解密c2得到r’11,比对r’11与r11是否一致,如果一致,则将r1更新为r11,hy0168 sata桥接芯片将r2更新为r22;读取sata存储设备序列号s1、隐藏空间的关键信息s2进入sata桥接芯片与存储设
备互认,具体为:sata桥接芯片获取信息s1、s2后,令m=sm3(sm3(s1)xor s2),比较m与sata桥接芯片存储的m1是否一致,如果一致,则认证通过三方设备相互信任,sata存储设备进行数据通路释放,将存储在sata存储设备内部的真实分区表信息发送给主机,主机开始对硬盘进行识别。
41.bios/tpm与sata桥接芯片认证过程采用一次一密机制:即r是不变的(r=r1xor r2),每次认证完成,用bios/tpm生成的r11,计算出r22,r22 = r xor r11,然后替换r1和r2。为了保证传输过程的安全,引入了两组密钥,对r11和r22在通讯过程中进行加密保护。并且hy1068不存储r2、r22的明文,通过sm3(r2)/sm3(r22)来识别是否认证的数据是正确的。并且hy0168不存储r的明文,存储sm3(r),通过计算sm3(r`)与sm3(r)是否一致,来识别是否认证正确。
42.hy0168量产之后,处于初装状态,初装状态下hy0168不存储任何设备认证信息,在未进行绑定设备和绑定主机之前,hy0168可与任意硬盘主机进行连接使用。
43.当hy0168进行绑定存储设备后,hy0168根据硬盘设备序列号s1作为运算因子,并将一段随机数据s2写入硬盘的隐藏区,将s1和s2作为硬盘的认证信息,通过多次哈希算法生成m1,存储到hy0168中。
44.bios/主机tpm模块需要具备存储能力和sm2密码运算能力。如果都不具备,则hy0168管控从盘设备,在windows或linux系统通过软件实现密码算法来进行三方认证,这种方式安全性低于bios或tpm直接进行关键数据存储和运算bios/tpm模块获取密钥分量r1,通过hy0168上电产生的sm2密钥对连接产生的因子c进行加密。
45.hy0168解密认证数据,然后获取r2进行计算,比较是否一致,来验证bios/tpm与hy0168桥接芯片是否匹配。
46.bios/tpm与hy0168桥接芯片匹配成功后,hy0168重新生成认证数据,通过pub_b进行加密传输更新认证数据r11,这么做的目的是将r11传递给bios/tpm,由bios/tpm来判断是否流程成功,进入下一步操作,bios/tpm经过计算,更新认证数据,将r1更新为r11,将r2更新为r22,达到认证信息动态更新的目的,提高安全强度。
47.当hy0168认证主机后,获取设备序列号s1、s2,进行运算来认定hdd/ssd的合法性,并通过读取hy0168存储到隐藏空间的信息进行二元操作,这样可以防止通过篡改identify指令中的序列号来进行硬盘克隆。
48.当m和m1一致时,认为hy0168和硬盘绑定,加载hy0168中存储的真实分区表信息,替换mbr/lba2反馈给主机。这里替换mbr/lba2不是对硬盘进行覆盖写入,而是当固件检测到读取mbr/lba0地址时,直接从hy0168中将数据返回主机,不再获取硬盘中的信息。
49.完成上述认证,hy0168释放主机到硬盘的通路,这样所有的数据在hy0168的监督下进行转发,指令在hy0168的监督下进行过滤。
50.针对单一密钥对全盘数据的保护强度不够的问题,设置分区保护机制。如图5所示,分区保护是指在sata桥接芯片内集成lba分析器和分区密钥扩展模块,分区密钥扩展模块与分区相对应,用于存储每个分区的范围、密钥和模式,并且分区密钥扩展模块进行密钥扩展,完成每个分区的密钥装配;数据传输时,lba分析器根据每次写入数据的地址和长度解析得到lba和分区对应关系,调用对应的分区密钥扩展模块的密钥信息进行数据加解密
操作。
51.分区密钥来源包括自动产生和外部导入,hy0168固件量产阶段决定密钥产生模式。
52.自动产生:hy0168固件量产完成后,量产工具生成密钥信息,密钥存储到hy0168内部非易失存储区,并且锁定外部导入和密钥生成功能。
53.外部导入:hy0168固件量产完成后,量产工具不生成密钥信息,通过安全方法将密钥由外部导入密钥,密钥存储到hy0168内部非易失存储区,并且锁定密钥生成功能。
54.从数据恢复角度,外部导入密钥用户友好性更高。由于外部导入是由使用厂商完成,密钥由使用厂商保管并进行维护,在hy0168损坏或者进入快速销毁后,可通过重新导入密钥进行密钥导入国产,保证硬盘数据依然可用。
55.从数据安全角度,自动生成密钥安全性更高。自动产生密钥无法被导出到外部,并且一旦产生会锁定外部导入和密钥生成功能,在hy0168损坏或者进入快速销毁后,hy0168将自动重新生成新密钥替代旧密钥,密钥将永久失去,硬盘数据将无法恢复。
56.以上描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明做出的改进和替换,属于本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1