存储器操作方法、存储器及存储系统与流程

    专利查询2022-07-07  124



    1.本技术实施例涉及存储器领域,涉及但不限于一种存储器操作方法、存储器及存储系统。


    背景技术:

    2.存储器在现代生活中的使用越来越广泛,无论是电脑、手机还是其他用户终端中都需要使用各种类型的存储器。
    3.而目前的存储器的使用,都是直接对存储器进行访问,当存储器存储的数据是重要数据时,重要数据非常容易被泄露。
    4.如何提高存储器的安全性,成为了亟需解决的问题。


    技术实现要素:

    5.有鉴于此,本技术实施例提供一种存储器操作方法、存储器及存储系统。
    6.第一方面,本技术实施例提供一种存储器操作方法,所述方法由存储器执行,包括:
    7.接收携带有第一认证信息的认证请求;
    8.根据所述第一认证信息和预存在所述存储器中的第一密钥,确定是否通过认证;
    9.若通过认证,则允许执行接收到的读指令和/或写指令;
    10.若未通过认证,则不允许执行接收到的读指令和/或写指令。
    11.在一些实施例中,所述根据所述第一认证信息和预存在所述存储器中的第一密钥,确定是否通过认证,包括:
    12.对所述第一密钥进行第一处理,得到第二认证信息;
    13.根据所述第一认证信息与所述第二认证信息是否匹配,确定是否通过认证。
    14.在一些实施例中,所述第一认证信息为:对第二密钥进行第二处理得到的认证信息;其中,所述第一处理与所述第二处理的算法相同。
    15.在一些实施例中,所述认证请求中,包括:动态信息;所述对所述第一密钥进行第一处理,得到第二认证信息,包括:
    16.根据所述动态信息对所述第一密钥进行所述第一处理,得到所述第二认证信息。
    17.在一些实施例中,所述第二处理为:根据所述动态信息对所述第二密钥进行的处理。
    18.在一些实施例中,所述动态信息为:利用随机数种子得到的随机数。
    19.在一些实施例中,所述存储器中存储有认证标志;所述认证标志,用于标识所述存储器是否通过认证;
    20.所述方法还包括:
    21.若通过认证,则更新所述认证标志为第一状态;
    22.若未通过认证,则更新所述认证标志为第二状态。
    23.在一些实施例中,所述若通过认证,则允许执行接收到的读指令和/或写指令,包括:
    24.若所述认证标志的状态为所述第一状态,则允许执行接收到的读指令和/或写指令。
    25.在一些实施例中,所述若未通过认证,则不允许执行接收到的读指令和/或写指令,包括:
    26.若所述认证标志的状态为所述第二状态,则不允许执行接收到的读指令和/或写指令。
    27.在一些实施例中,所述存储器包括:
    28.密钥存储区,用于存储所述第一密钥;
    29.所述方法还包括:
    30.接收携带有配置所述第一密钥的配置请求;
    31.根据所述配置请求,在所述密钥存储区中存储所述第一密钥。
    32.在一些实施例中,所述方法还包括:
    33.根据所述配置请求,擦除所述存储器上的数据。
    34.第二方面,本技术实施例提供一种存储器,所述存储器,包括多个存储区域和外围电路;
    35.所述多个存储区域中包括至少一个密钥存储区;所述密钥存储区用于存储第一密钥;
    36.所述外围电路被配置为:
    37.接收携带有第一认证信息的认证请求;
    38.根据所述第一认证信息和预存在所述存储器中的第一密钥,确定是否通过认证;
    39.若通过认证,则允许执行接收到的读指令和/或写指令;
    40.若未通过认证,则不允许执行接收到的读指令和/或写指令。
    41.在一些实施例中,所述存储器中存储有认证标志;所述认证标志,用于标识所述存储器是否通过认证。
    42.在一些实施例中,所述外围电路还被配置为:
    43.若通过认证,则更新所述认证标志为第一状态;
    44.若未通过认证,则更新所述认证标志为第二状态。
    45.在一些实施例中,所述外围电路还被配置为:
    46.接收携带有配置所述第一密钥的配置请求;
    47.根据所述配置请求,在所述密钥存储区中存储所述第一密钥。
    48.第三方面,本技术实施例提供一种存储系统,所述存储系统,包括:控制器和存储器;
    49.所述控制器,被配置为控制所述存储器的外围电路;
    50.所述存储器;所述存储器的外围电路被配置为:接收携带有第一认证信息的认证请求;
    51.根据所述第一认证信息和预存在所述存储器中的第一密钥,确定是否通过认证;
    52.若通过认证,则允许执行接收到的读指令和/或写指令;
    53.若未通过认证,则不允许执行接收到的读指令和/或写指令。本技术实施例在访问存储器的时候,增加了认证请求,并且只有在认证请求通过的时候,才允许对存储器进行读指令和/或写指令的操作,大大增加了存储器在使用过程中的安全性。
    附图说明
    54.图1a为本技术实施例提供的一种示例性系统的结构示意图;
    55.图1b为本技术实施例提供的一种存储器卡的结构示意图;
    56.图1c为本技术实施例提供的一种固态硬盘的结构示意图;
    57.图1d和图1e为本技术实施例提供的一种包括存储单元阵列和外围电路的存储器的结构示意图;
    58.图2为本技术实施例提供的一种存储器操作方法的流程图;
    59.图3为本技术实施例提供的另一种存储器操作方法的流程图;
    60.图4为本技术实施例提供的又一种存储器操作方法的流程图;
    61.图5为本技术实施例提供的又一种存储器操作方法的流程图;
    62.图6为本技术实施例提供的又一种存储器操作方法的流程图;
    63.图7为本技术实施例提供的又一种存储器操作方法的流程图;
    64.图8为为本技术实施例提供的又一种存储器操作方法的流程图;
    65.图9为本技术实施例提供的一种存储器的结构示意图;
    66.图10为本技术实施例提供的一种存储系统的结构示意图;
    67.图11为一种用户终端和控制器的认证流程图;
    68.图12为本技术实施例提供另一种用户终端和控制器的认证流程图;
    69.图13为本技术实施例提供的另一种存储器的结构示意图;
    70.图14为本技术实施例提供的又一种存储器的结构示意图;
    71.图15为本技术实施例提供的又一种存储器操作方法的流程图;
    72.图16为本技术实施例提供的又一种存储器操作方法的流程图;
    73.图17为本技术实施例提供的又一种存储器操作方法的流程图。
    具体实施方式
    74.为了便于理解本技术,下面将参照相关附图对本技术进行更全面的描述。附图中给出了本技术的首选实施例。但是,本技术可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本技术的公开内容更加透彻全面。
    75.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。
    76.如图1a所示,本技术实施例示出了一种示例性系统10,该示例性系统10可以包括主机20和存储系统30。其中,示例性系统10可以包括但不限于移动电话、台式计算机、膝上型计算机、平板计算机、车辆计算机、游戏控制台、打印机、定位设备、可穿戴电子设备、智能传感器、虚拟现实(vr)设备、增强现实(ar)设备或者其中具有存储器34的任何其他合适的
    电子设备;主机20可以是电子设备的处理器(例如,中央处理单元(cpu))或者片上系统(soc)(例如,应用处理器(ap))。
    77.在本技术实施例中,主机20可以被配置为将数据发送到存储系统30或者从存储系统30接收数据。这里,存储系统30可以包括控制器32和一个或多个存储器34。其中,存储器34可以包括但不限于nand闪存(nand flash memory)、垂直nand闪存(vertical nand flash memory)、nor闪存(nor flash memory)、动态随机存储器(dynamic random access memory,dram)、铁电随机存储器(ferroelectric random access memory,fram)、磁性随机存储器(magnetoresistive random access memory,mram)、相变随机存储器(phase change random access memory,pcram)、阻变随机存储器(resistive random access memory,rram)、纳米随机存储器(nano random access memory,nram)等。
    78.在本技术实施例中,控制器32可以耦合到存储器34和主机20,且用于控制存储器34。示例性地,控制器可以被设计为用于在低占空比环境中操作,如安全数字(sd)卡、紧凑型闪存(cf)卡、通用串行总线(usb)闪存驱动器或者用于在诸如个人计算器、数字相机、移动电话等电子设备中使用的其他介质。在一些实施例中,控制器还可以被设计为用于在高占空比环境ssd(solid state disk,固态硬盘)或嵌入式多媒体卡(emmc)中操作,ssd或emmc用作诸如智能电话、平板计算机、膝上型计算机等移动设备的数据储存器以及企业存储阵列。进一步地,控制器可以管理存储器中的数据,并且与主机通信。控制器可以被配置为控制存储器读取、擦除和编程等操作;还可以被配置为管理关于存储在或要存储在存储器中的数据的各种功能,包括但不限于坏块管理、垃圾收集、逻辑到物理地址转换、损耗均衡等;还可以被配置为处理关于从存储器读取的或者被写入到存储器中的数据的纠错码(ecc)。此外,控制器还可以执行任何其他合适的功能,例如格式化存储器,或者根据特定通信协议与外部设备(例如,图1a中主机20)通信。示例性地,控制器可以通过各种接口协议中的至少一种与外部设备通信,接口协议例如usb协议、mmc协议、外围部件互连(pci)协议、pci高速(pci-e)协议、高级技术附件(ata)协议、串行ata协议、并行ata协议、小型计算机小型接口(scsi)协议、增强型小型磁盘接口(esdi)协议、集成驱动电子设备(ide)协议、firewire协议等。
    79.在本技术实施例中,控制器和一个或多个存储器可以集成到各种类型的存储设备中,例如,包括在相同封装(例如,通用闪存存储(ufs)封装或emmc封装)中。也就是说,存储系统可以实施并且封装到不同类型的终端电子产品中。如图1b所示,控制器32和单个存储器34可以集成到存储器卡40中。存储器卡40可以包括pc卡(pcmcia,个人计算机存储器卡国际协会)、cf卡、智能媒体(sm)卡、存储器棒、多媒体卡(mmc、rs-mmc、mmcmicro)、sd卡(sd、minisd、microsd、sdhc)、ufs等。存储器卡40还可以包括将存储器卡40与主机(例如,图1a中的主机20)耦合的存储器卡连接器42。在如图1c中所示的另一实施例中,控制器32和多个存储器34可以集成到ssd50中。ssd 50还可以包括将ssd 50与主机(例如,图1a中的主机20)耦合的ssd连接器52。在一些实施方式中,ssd 50的存储容量和/或操作速度大于存储器卡40的存储容量和/或操作速度。
    80.需要说明的是,本技术实施例涉及的存储器可以是半导体存储器,是用半导体集成电路工艺制成的存储数据信息的固态电子器件。示例性地,图1d为本技术实施例中一种可选的存储器60的示意图。其中,存储器60可以是图1a至图1c中的存储器34。如图1d所示,
    存储器60可以由存储单元阵列62和耦合到存储单元阵列62的外围电路64等组成。这里,存储单元阵列可以是nand闪存存储单元阵列,其中,存储单元以nand存储串66阵列的形式提供,每个nand存储串66在衬底上方垂直地延伸。在一些实施例中,每个nand存储串66可以包括串联耦合并且垂直地堆叠的多个存储单元。其中,每个存储单元以保持连续模拟值,例如,电压或电荷,其取决于在存储单元区域内捕获的电子的数量。另外,上述存储单元阵列62中的每个存储单元可以是包括浮栅晶体管的浮栅类型的存储单元,或者是包括电荷捕获晶体管的电荷捕获类型的存储单元。
    81.在本技术实施例中,上述存储单元可以是具有两种可能的存储状态并且因此可以存储一位数据的单层存储单元(single level cell,slc)。例如,第一存储状态“0”可以对应于第一电压范围,并且第二存储状态“1”可以对应于第二电压范围。在另一些实施例中,每个存储单元是能够在多于四个的存储器状态中存储多于单个位的数据的多层存储单元(multi level cell,mlc)。例如,mlc可以每单元存储两位,每单元存储三位(又被称为三层存储单元(triple level cell,tlc)),或者每单元存储四位(又被称为四层存储单元(quad level cell,qlc))。每个mlc可以被编程为采取可能的标称存储值的范围。示例性地,如果每个mlc存储两位数据,则mlc可以被编程为通过将三个可能的标称存储值中的一个写入到该存储单元而从擦除状态采取三个可能的编程级中的一个。其中,第四标称存储值可以用于擦除状态。
    82.在本技术实施例中,上述外围电路可以通过位线(bit line,bl)、字线(word line,wl)、源极(source line)、源极选择栅(source select gate,ssg)和漏极选择栅(drain select gate,dsg)耦合到存储单元阵列。这里,外围电路可以包括任何合适的模拟、数字以及混合信号电路,以用于通过经由位线、字线、源极、ssg和dsg将电压信号和/或电流信号施加到每个目标存储单元以及从每个目标存储单元感测电压信号和/或电流信号来促进存储单元阵列的操作。此外。外围电路还可以包括使用金属-氧化物-半导体(mos)技术形成的各种类型的外围电路。示例性地,如图1e所示。外围电路70包括页缓冲器(page buffer)/感测放大器71、列解码器/位线驱动器72、行解码器/字线驱动器73、电压发生器74、控制逻辑单元75、寄存器76、接口77和数据总线78。应当理解,上述外围电路70可以与图1d中的外围电路64相同,并且在另一些实施例中,外围电路70还可以包括图1e中未示出的附加外围电路。
    83.在一些实施例中,为了防止用户存储在存储器的数据被非授权人员读写,可以通过ssd启动阶段的安全认证流程进行用户鉴权,认证通过的用户可以被允许进行数据的读和/或写操作。但是用户数据实际上完全存在于nand闪存存储器中,而闪存存储器本身的启动过程并无安全认证,所以任何人都可以通过一些技术手段直接访问nand闪存存储器,从而跳过ssd固件上层面的的认证机制。例如,将控制器或者固件替换为无认证机制的恶意控制器和固件,从而随意访问nand闪存上的数据。又如将nand闪存从ssd中取下在特定硬件上直接进行读写以获取数据,从而使nand上存储的数据暴露于恶意访问的风险之下。
    84.因此,本技术实施例提供一种存储器的操作方法,如图2所示,所述方法由存储器执行,包括:
    85.s101、接收携带有第一认证信息的认证请求;
    86.s102、根据所述第一认证信息和预存在所述存储器中的第一密钥,确定是否通过
    认证;
    87.s103、若通过认证,则允许执行接收到的读指令和/或写指令;
    88.s104、若未通过认证,则不允许执行接收到的读指令和/或写指令。
    89.本技术实施例所述的存储器包括但不限于非易失性存储器、易失性存储器和新型存储器。非易失性存储器包括但不限于带电可擦可编程只读存储器(electrically erasable programmable read only memory,eeprom)、可编程只读存储器(programmable read only memory,prom)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)以及闪存(flash memory)等;其中,闪存包括但不限于或非型闪存(nor flash)和与非型闪存(nand flash);易失性存储器包括但不限于静态随机存取存储器(static random-access memory,sram)和动态随机存取存储器(dynamic random access memory,dram)等。新型存储器包括但不限于3d xpoint、磁性随机存储器(magnetoresistive random access memory,mram)、阻变式存储器(resistive random access memory,rram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)等。固态硬盘(solid state disk,ssd)可以由一个或多个存储器和ssd控制器组成。
    90.本技术实施例针对存储器提供了认证过程,存储器可以在外部的控制器通过认证的情况下允许读操作、写操作等各种存储器操作。例如,通过在控制器启动存储器时,增加一个认证过程允许通过认证的控制器和固件可以对存储器进行读操作、写操作以及擦除操作等。
    91.这里,为了便于描述,将发出第一认证信息的装置称为“控制器”,该控制器可以是能够与存储器建立连接并控制存储器进行读写等操作任何硬件装置或软件模块,例如,上述图1a所示主机设备或主机设备中的控制模块、软件模块等,这里不做具体限定。
    92.当需要对存储器进行读和/或写操作时,存储器可以先对控制器进行认证,在控制器通过认证的情况下,则可以允许对存储器进行读和/或写操作,即在通过认证的情况下,存储器如果接收到读指令和/或写指令,则可以允许执行收到的读指令和/或写指令。
    93.控制器对存储器发送带有第一认证信息的认证请求,存储器接收携带有第一认证信息的认证请求,然后将第一认证信息和存储器内预存的第一密钥进行对比,对比方式可以是直接对比也可以是间接对比。例如,直接将第一认证信息与第一密钥进行对比,第一认证信息可以是由用户终端输入并传输到控制器中的第二密钥。又如,第一认证信息可以与间接处理后的第一密钥进行对比。再如,第一认证信息和第一密钥都可以经过间接处理后再进行对比。
    94.当对比结果表明第一认证信息与存储器中预存的第一密钥匹配时,可以认为控制器通过了认证,那么存储器可以允许执行接收到的读指令和/或写指令;当对比结果表明第一认证信息与存储器中预存的第一密钥不匹配时,可以认为控制器未通过认证,存储器不允许执行接收到的读指令和/或写指令。
    95.在一些实施例中,控制器发出的第一认证信息还可以与至少两个存储器进行对比,每个存储器内均存储有对应的第一密钥,并且每个存储器内存储的密钥可以相同,也可以各不相同。当控制器发出的第一认证信息,与某个存储器的密钥对比成功时,该存储器即为可以执行上述读操作和/或写操作的目标存储器。
    96.本技术实施例针对存储器提供了控制器和存储器的双向认证过程,提升了目标存储器上数据安全性,有利于存储器上数据的保护。
    97.在一些实施例中,如图3所示,所述根据所述第一认证信息和预存在所述存储器中的第一密钥,确定是否通过认证,包括:
    98.s201、对所述第一密钥进行第一处理,得到第二认证信息;
    99.s202、根据所述第一认证信息与所述第二认证信息是否匹配,确定是否通过认证。
    100.在一些实施例中,可以通过将存储器接收到的第一认证信息与存储器的第二认证信息进行对比来确认是否通过认证。第二认证信息是对第一密钥进行第一处理得到的,示例性地,第一处理可以用一个函数f(x)来表示。在本技术实施例中,第二认证信息可以等于f(x1)的值,其中,x1为第一密钥。当第一认证信息与所述第二认证信息匹配时,可以认为控制器通过了认证;当第一认证信息与所述第二认证信息不匹配时,可以认为控制器未通过认证。在一些实施例中,第一处理可以为固定的函数,并预存在存储器中。在另一些实施例中,第一处理也可以由控制器提供,例如,存储器在接收上述第一认证信息的同时,接收第一处理所对应的函数,这样,存储器可以根据接收到的函数对预存的第一密钥进行处理,得到第二认证信息,然后再将第二认证信息与第一认证信息进行对比,以判断是否通过认证。
    101.这样,通过将第一密钥进行处理后得到第二认证信息,然后再比对第一认证信息和第二认证信息的方式,相比于直接对比第一密钥的方式具有更强的安全性,存储在存储器中的第一密钥不容易被破解。
    102.在一些实施例中,所述第一认证信息为:对第二密钥进行第二处理得到的认证信息。
    103.控制器发出的第一认证信息也可以是对第二密钥进行第二处理得到的认证信息。示例性地,通过主机输入第二密钥至控制器中,控制器对第二密钥进行第二处理。第二处理可以用函数g(x)表示。第一认证信息可以等于g(x2)的值,其中,x2为第二密钥。此外,第一认证信息也可以截取g(x2)值的指定区域的指定位数作为第一认证信息。例如,若g(x2)值为10位数,可以截取后6位作为第一认证信息。
    104.在一些实施例中,所述第一处理与所述第二处理的算法相同。
    105.上述第一处理可以用函数f(x)表示,第二处理可以用函数g(x)表示。这里,f(x)可以与g(x)为相同函数。示例性地,控制器针对第二密钥x2进行第二处理,得到第一认证信息,并发送至存储器,即第一认证信息为g(x2)。存储器接收到第一认证信息g(x2)后,可以对预存的第一密钥x1进行与第二处理相同的处理,即上述第一处理f(x),并得到第二认证信息f(x1)。这里,f(x1)=g(x1)且f(x2)=g(x2)。
    106.示例性地,第二认证信息也可以是截取f(x1)值的指定区域的指定位数作为第二认证信息。例如,若f(x1)值为10位数,可以截取后6位作为第二认证信息,然后再将第一认证信息和第二认证信息对比。可以理解,当第一密钥与第二密钥匹配时,无论是对第一密钥和第二密钥经过相同的算法后得到的值,还是取全部数值还是指定区域的指定位数的数值,还是所得值再经过其他相同的算法处理得到的值,都是匹配的。
    107.因此,经过上述第一处理和第二处理后,可以有效提升密钥的安全性,在进行认证的过程中控制器与存储器之间传输的是对第二密钥进行处理后得到的第一认证信息,因此,相比于直接传输第二密钥并与第一密钥进行比对的方法可以降低密钥被破解的可能
    性。
    108.在一些实施例中,如图4所示,所述认证请求中,包括:动态信息;所述对所述第一密钥进行第一处理,得到第二认证信息,包括:
    109.s301、根据所述动态信息对所述第一密钥进行所述第一处理,得到所述第二认证信息。
    110.控制器对存储器发出认证请求可以携带一些用于认证的信息,包括但不限于第一认证信息和动态信息。控制器将第一认证信息和动态信息都发送给存储器,其中,第一认证信息是用于认证对比的信息,动态信息是一个中间信息,用于对第一密钥进行第一处理。也就是说,存储器可以通过动态信息确定进行认证时要对第一密钥进行的第一处理为何种处理,示例性地,对第一密钥进行的处理可以用函数f(x,y)来表示,其中,x为待处理的密钥,y则为动态信息。上述对第一密钥处理得到的即第二认证信息则等于f(x1,y),其中,x1为第一密钥。
    111.动态信息可以是一个动态变化的信息,每次认证对应的动态信息可以是不同的信息。在实际使用中,动态信息越随机越不容易重复,或者越没有规律性,其所能够达到越高的安全性。通过引入动态信息,即使当控制器发出的认证请求及认证请求中的相关信息被非法用户截取,因为动态信息的随机性,非法用户想要使用第一认证信息和动态信息破解密钥十分困难。因此,采用上述方法大大提高了存储器的安全性。
    112.在一些实施例中,所述第二处理为:根据所述动态信息对所述第二密钥进行的处理。
    113.控制器在发送第一认证信息之前,可以先生成动态信息,并基于动态信息对第二密钥进行处理,即上述第二处理。第二处理可以用函数g(x,y)表示。其中,y为动态信息。因此,存储器接收到的第一认证信息可以由控制器对第二密钥经过上述第二处理得到,即g(x2,y),其中,x2为上述第二密钥。
    114.在一些实施例中,所述动态信息为:利用随机数种子得到的随机数。
    115.动态信息可以是根据随机数种子得到的随机数,随机数种子(random seed)是指在随机数生成器中用于生成随机数的初始数值。随机数种子可以利用软件获取也可以利用硬件获取。例如,当随机数种子通过硬件方式获得时,种子的随机性来源自采集到的硬件信息是随机的,例如可以采集当前环境的声、光以及电信息,又如可以采集计算机系统运行中的噪声:i/o(input/output,输入输出)操作的时间戳。其中i/o操作的时间戳包括但不限于磁盘、网络以及键盘、鼠标等设备的输入时间戳,这些时间戳会被捕获并截取其毫秒或微秒部分的数值,这一部分的数值通常具有随机性和不可重复性。这种通过硬件方式获得的随机数种子是真随机数。
    116.随机数种子也可以通过软件方式获得,例如通过seed(a)函数获得随机数种子。其中,a为通过软件或硬件方式获得的数值。
    117.随机数可以通过random(b)函数获得,其中,b为随机数种子。随机数种子的获得方法如上所述。
    118.在一些实施例中,所述存储器中存储有认证标志;所述认证标志,用于标识所述存储器是否通过认证;
    119.如图5所示,所述方法还包括:
    120.s401、若通过认证,则更新所述认证标志为第一状态;
    121.s402、若未通过认证,则更新所述认证标志为第二状态。
    122.存储器内还可以存储认证标志,认证标志用于标识存储器和控制器是否通过了双向认证。
    123.认证标志可以存储在存储器中预设的固定存储区,该存储区可以与存储上述第一密钥的存储区位于同一存储区内,也可以位于不同存储区内。在另一实施例中,该认证标志也可以存储在存储器的随机位置,但可以由存储器通过该认证标志的特征识别。
    124.在一些实施例中,若在存储器对接收到的第一认证信息进行认证后得到了通过认证的结果,则可以更新所述认证标志为第一状态,第一状态可以用二进制数值“1”标识(反之,也可以用“0”标识,在此不做限定)并存储在存储器的指定位置中。若未通过认证,则更新所述认证标志为第二状态,第二状态可以用二进制数值“0”标识(反之,也可以用“1”标识,在此不做限定)并存储在存储器的指定位置中。
    125.存储器在进行上电或复位后,可以对认证标志进行复位,即将认证标志更新至第二状态。即当存储器上电或复位后,可以重新对控制器进行认证,即重新对控制器进行用户鉴权。
    126.在本技术实施例中,可以在未对控制器进行用户鉴权前,读取存储器的认证标志状态,即认证状态的读取可以是不需要权限的。故认证状态可以存储在存储器内不需要保密的数据区域中。
    127.在一些实施例中,如图6所示,所述若通过认证,则允许执行接收到的读指令和/或写指令,包括:
    128.s501、若所述认证标志的状态为所述第一状态,则允许执行接收到的读指令和/或写指令。
    129.若认证通过,存储器可以将认证标志修改为第一状态,然后存储器则可以根据认证标志是否为第一状态来确定是否允许执行接收到的指令。示例性地,可以使用存储器指定位置中存储的数据表示认证标识的状态。例如,当指定位置中存储的数据为二进制数值“1”时,用于表示第一状态。当存储器接收到读和/或写指令后,先读取指定位置中存储的数据,若存储的数据为“1”,即认证标识为第一状态,则允许存储器后续执行读指令和/或写指令。
    130.在一些实施例中,如图6所示,所述若未通过认证,则不允许执行接收到的读指令和/或写指令,包括:
    131.s502、若所述认证标志的状态为所述第二状态,则不允许执行接收到的读指令和/或写指令。
    132.若认证未通过,存储器可以将认证标志修改为第二状态。当然,如果认证标志在进行认证之前就为第二状态,则不需要修改认证标志,维持其状态为第二状态即可。
    133.示例性地,可以使用存储器指定位置中存储的数据表示认证标识的状态。例如,当指定位置中存储的数据为二进制数值“0”时,用于表示第二状态。当存储器接收到读和/或写指令后,先读取指定位置中存储的数据,若存储的数据为“0”,即认证标识为第二状态,则不允许存储器后续执行读指令和/或写指令。此时,存储器可以忽略接收到的读指令和/或写指令,也可以向控制器返回提示信息,以提示认证未通过,不允许进行操作。
    134.在一些实施例中,如图7所示,所述存储器包括:
    135.密钥存储区,用于存储所述第一密钥;
    136.所述方法还包括:
    137.s601、接收携带有配置所述第一密钥的配置请求;
    138.s602、根据所述配置请求,在所述密钥存储区中存储所述第一密钥。
    139.存储器可以包括密钥存储区用于存储所述第一密钥,密钥存储区可以是存储器在出厂时就划分并设置好的,也可以利用存储器分区软件对未设置的存储器进行处理并划分出一个新的密钥存储区。
    140.在一些实施例中,存储器的密钥存储区内没有存储密钥。当存储器接收到控制器发出的配置所述第一密钥的配置请求,则可以直接将配置请求中携带的第一密钥存储在密钥存储区中。
    141.在一些实施例中,存储器的密钥存储区内已经存储有密钥(如第三密钥),并且存储器也已经通过了认证,故此时存储器中认证标志的认证状态处于第一状态。此时,存储器接收到了新的第一密钥配置请求,则可以对已存储的密钥进行更新,更改为新的第一密钥。即将配置请求中的第一密钥存储到存储器的密钥存储区中,使其覆盖原有的密钥。
    142.在一些实施例中,如图8所示,所述方法还包括:
    143.s701、根据所述配置请求,擦除所述存储器上的数据。
    144.在一些实施例中,存储器的密钥存储区还未存储过密钥,当存储器接收到控制器发出的携带有配置所述第一密钥的配置请求,存储器根据所述配置请求,可以选择擦除存储器上的所有数据,即将数据复位。这是因为存储器在出厂的时候,由于受到电荷干扰、出厂时的器件测试等原因,出厂的存储器在使用时,内部数据不一定都处在复位状态,这不利于后续数据的读和/或写操作,可以会造成数据的误写和/或误读。选择对存储器上的所有数据进行擦除,有利于进行后续的读和/或写操作。
    145.此外,存储器也可以在未设置密钥的情况下进行使用,并存储有无需加密的数据等。在存储器接收到配置请求时,可以先对存储器中已经存储的数据进行擦除,便于后续以加密的状态使用。
    146.在一些实施例中,存储器的密钥存储区内已经存储了密钥,并且存储器已经通过了认证,此时的认证状态处于第一状态。存储器接收到了新的第一密钥配置请求,存储器可以擦除密钥存储区中的数据,而保留非密钥存储区中的数据。这是因为此时发出修改密钥请求的控制器已经是被认证的,被认证的控制器后续对存储器进行的操作可以认为是安全的操作,故存储器上存储的数据可以被保留。
    147.在一些实施例中,存储器的密钥存储区内已经存储了密钥,并且存储器内可以设置一个计数器,所述计数器用于记录认证失败的次数,当认证失败次数达到预设值时,说明控制器已多次尝试认证,为了便于控制器对存储器的使用,可以允许对存储器进行密钥的重新配置。但为了维护存储器中已有数据的安全性,可以先擦除存储器中的数据,并进行密钥的更新。
    148.示例性地,控制器可以重新发送携带有新的第一密钥的配置请求给存储器。当存储器接收到了该配置请求,则可以擦除密钥存储区中的数据,并可以根据存储数据的安全性有选择地擦除非密钥存储区(即密钥存储区以外的其他存储器)上的数据。例如,当非密
    钥存储区上的数据是需要一级保密的,此时可以选择擦除非密钥存储区上的数据。当非密钥存储区上的数据是需要二级保密的,此时可以选择不擦除非密钥存储区上的数据。故存储器内还可以包括一个保密等级标识,用于标识数据的保密等级。例如,当保密等级标识内存储的二进制数据为“1”时为一级保密,当保密等级标识内存储的二进制数据为“0”时为二级保密。可以理解的是,二进制数据“1”或“0”是由用户设置在存储器中的保密标识区内的。
    149.在一些实施例中,存储器的密钥存储区内已经存储了密钥,并且存储器内还具有一个计数器,所述计数器用于记录认证失败的次数,当认证失败次数达到预设值时,控制器将重新发送携带有新的第一密钥的配置请求给存储器。存储器接收到了该配置请求,可以同时保留原始密钥存储区和原始数据。
    150.在存储器的空白区域中,重新划分用于第二读写操作的指定区域以及第二密钥存储区,第二密钥存储区用于存储第二密钥,所述第二密钥可以用于保护新划分出来的所述第二读写操作的指定区域。第二读写操作的指定区域,也可以在认证后使用,通过是否完成认证确定是否允许对该第二读写操作的指定区域进行读写操作。若通过认证,则可以运行对该第二读写操作的指定区域进行读写操作,但不能对原有的数据所存储的区域进行读写操作。
    151.此外,当控制器重新针对原有数据进行了第一认证信息的认证时,存储器仍可以通过认证结果,确定是否允许对原有的数据区域进行读操作和/或写操作。可以理解的是,未写入数据的区域内可以有第二认证标志,用于标识未写入区域是否被认证。
    152.本技术实施例提供一种存储器,如图9所示,所述存储器100,包括多个存储区域101和外围电路103;
    153.所述多个存储区域101中包括至少一个密钥存储区102;所述密钥存储区102用于存储第一密钥;
    154.所述外围电路103被配置为:
    155.接收携带有第一认证信息的认证请求;
    156.根据所述第一认证信息和预存在所述存储器中的第一密钥,确定是否通过认证;
    157.若通过认证,则允许执行接收到的读指令和/或写指令;
    158.若未通过认证,则不允许执行接收到的读指令和/或写指令。
    159.在一些实施例中,所述存储器可以是nand芯片等非易失性存储器产品。
    160.在一些实施例中,存储器100可以包括多个存储区域101,存储区域101中有一个密钥存储区102,密钥存储区102内存储有第一密钥,用于对其他非密钥存储区进行保护。
    161.在一些实施例中,存储器100可以包括多个存储区域101,存储区域中有多个密钥存储区102,不同的密钥存储区对不同的存储区域101分别进行保护。不同的密钥存储区102存储的密钥可以一样也可以不一样。
    162.在一些实施例中,所述存储器100中存储有认证标志;所述认证标志,用于标识所述存储器100是否通过认证。
    163.在一些实施例中,所述外围电路103还被配置为:
    164.若通过认证,则更新所述认证标志为第一状态;
    165.若未通过认证,则更新所述认证标志为第二状态。
    166.在一些实施例中,所述外围电路103还被配置为:
    167.接收携带有配置所述第一密钥的配置请求;
    168.根据所述配置请求,在所述密钥存储区中存储所述第一密钥。
    169.本技术实施例提供一种存储系统,如图10所示,所述存储系统300,包括:控制器200和存储器100;
    170.所述控制器200,被配置为控制所述存储器100的外围电路103;
    171.所述存储器100;所述存储器的外围电路103被配置为:接收携带有第一认证信息的认证请求;
    172.根据所述第一认证信息和预存在所述存储器中的第一密钥,确定是否通过认证;
    173.若通过认证,则允许执行接收到的读指令和/或写指令;
    174.若未通过认证,则不允许执行接收到的读指令和/或写指令。
    175.在一些实施例中,所述存储系统可以是ssd等产品,也可以是包含存储装置的电子设备,如计算机设备等。
    176.本技术实施例还提供如下示例:
    177.如图11所示,主机1001仅针对ssd控制器1002进行认证,而不对nand存储器1003进行认证。其中,主机1001可以利用各种电子装置中的任意一种来实施。在一些实施例中,主机1001可以包括电子装置,例如台式计算机、工作站、三维(3d)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器和/或数字视频记录器和数字视频播放器。在一些实施例中,主机1001可以包括便携式电子装置,例如移动电话、智能电话、电子书、mp3播放器、便携式多媒体播放器以及便携式游戏机等。当主机1001为计算机时,其针对ssd的启动阶段的安全认证流程如图12所示,包括:
    178.s1101、启动计算机;
    179.s1102、启动ssd;
    180.s1103、计算机与ssd进行安全认证;
    181.s1104、若认证失败,禁止数据读写;
    182.s1105、若认证成功,允许数据读写。
    183.其中,启动ssd的流程可以包括:ssd控制器复位、nand复位和读写nand。
    184.虽然这样也能一定程度上保护数据,但是当恶意将控制器或者固件替换为无认证机制的恶意控制器和固件,从而可以随意访问nand存储器上的数据或将nand存储器从ssd中取下在特定硬件上直接进行读写以获取数据时。存储在nand存储器上的数据的安全性将无法得到保证。
    185.本技术实施例通过在ssd控制器和nand存储器之间增加安全认证流程,确保只有通过认证的控制器才能对nand存储器进行访问,从而确保存储在nand存储器上的数据的安全性。
    186.首先,对nand存储器进行分区,划分出密钥存储区和其他数据区,用于区分密钥和其他数据,如图13所示,nand存储器1200可以分为密钥存储区1201和其他数据区1202,并在其他数据区1202中指定一个区域记录认证状态标志,这个存储认证状态标志的区域为认证状态标志区1203,用于存放认证状态标志,方便读取认证状态。
    187.在一些实施例中,如图14所示,还可以将认证状态标志区1203与其他数据区1202区分开来。其他数据区1202的数据可以是通过认证后才可以进行读和/或写操作,而认证状
    态标志区1203内的数据,无需通过认证即可进行读和/或写操作。可以使用认证标志区1203的部分或全部区域记录认证标志状态,当使用部分区域作为认证标志区用于认证标志状态时,剩余区域可以用于存储其他可以直接进行读和/或写操作的数据。
    188.在一些实施例中,对nand存储器1200完成区域划分后,可以对nand存储器1200增加一个配置密钥的阶段,可以由控制器将密钥写入nand存储器1200的密钥存储区1201中,用于后续认证其他控制器。
    189.nand存储器1200配置密钥的过程包括:控制器发出携带有密钥信息的认证请求,nand存储器1200收到认证请求后,擦除nand存储器1200内的原始数据,并将接收到的密钥信息写入到nand存储器1200的密钥存储区1201中。
    190.写入到nand存储器1200的密钥储存区中的密钥,不能从nand存储器1200外部被控制器读出。在一些实施例中,若存储器的认证标志状态处于已认证状态,可以允许密钥被已经通过认证的控制器读出。而其他数据区1202的数据在认证通过后,可以被执行读/写命令。认证状态标志是一个用于表明控制器与存储器是否完成双向认证的标志,当nand存储器1200在上电和复位时候,无论之前的认证状态标志的状态如何,都可以被修改为未认证的状态,即上电和复位后可以重新对控制器进行用户鉴权。
    191.本技术实时例的控制器和nand存储器1200之间的认证流程如图15所示:
    192.s1501:控制器向nand存储器发起认证;
    193.s1502、nand存储器通知控制器认证通过;
    194.s1503、允许nand存储器执行接收到的读指令和/或写指令。
    195.如图16所示:其中,s1501:所述控制器向nand存储器发起认证还可以包括:
    196.s1601:控制器向nand存储器发出认证请求;
    197.s1602:控制器获取随机数种子并生成随机数;
    198.s1603:控制器基于密钥和随机数利用加密算法生成第一校验信息,并将第一校验信息和随机数发送给nand存储器;
    199.s1604:nand存储器基于密钥和随机数利用加密算法生成第二校验信息;
    200.s1605:将第一校验信息和第二校验信息进行对比;
    201.s1606:如果比对相同,将认证状态改为“已认证”状态,并返回校验成功的结果;
    202.s1607:如果比对不同,认证状态改为“未认证”,返回校验失败的结果。
    203.具体为:控制器对nand存储器1200发出认证请求,控制器获取随机数种子,随机数种子可以来自于控制器也可以来自于主机1001,随机数种子可以是真随机数种子也可以是伪随机数种子,根据随机数种子可以生成随机数,生成的随机数也分为真随机数和伪随机数。控制器利用主机1001输入的密钥或存储在控制器中的密钥信息和随机数一起,运用加密算法,例如哈希算法,生成消息验证码。这个消息验证码作为第一认证信息和随机数一起被发送给nand存储器1200。nand存储器1200收到随机数后和存储在密钥存储区1201中的密钥一起,运用同样的哈希运算,生成第二消息验证码,当第一消息验证码和第二消息验证码被确认是相同的时候,认为控制器和存储器完成了双向认证。并在认证通过后,将认证状态改为已认证状态。当第一消息验证码和第二消息验证码被确认是不相同的时候,认为控制器和存储器未完成双向认证。认证未通过后,将认证状态改为未认证状态。还可以使用计数器,记录未认证成功的次数。
    204.故当nand存储器1200收到控制器发出的指令时,nand存储器1200可以按照如图17所示的流程判断是否执行所述指令。
    205.s1701、nand存储器接收到指令;
    206.s1702、判断所述指令是否为读写指令;
    207.s1703、若为非读写指令,允许执行所述指令;
    208.s1704、若为读写指令,继续判断所述控制器是否通过认证;
    209.s1705、若通过认证,允许执行所述指令;
    210.s1706、若未通过认证,不允许执行所述指令。
    211.具体为:先判断nand存储器1200接受到的指令是读写指令还是非读写指令,若为读写指令,则先不执行所述指令,继续判断发出指令的控制器是否通过了nand存储器1200的认证,若所述控制器通过了认证,则可以执行所述读写指令。
    212.若所述控制器未通过认证,则可以不执行所述指令。
    213.若判断出nand存储器1200接受到的指令是非读写指令,nand存储器1200可以直接执行所述指令。
    214.本技术实施例由于增加了nand存储器1200在执行读写命令前的认证机制,从而避免了nand存储器1200上数据被未授权用户的读写,解决了nand存储器1200数据可以被直接读取安全漏洞。从根本上提高了基于nand存储器1200的存储系统的数据安全性。
    215.应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
    216.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
    ……”
    限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
    217.以上所述,仅为本技术的实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
    转载请注明原文地址:https://tc.8miu.com/read-1353.html

    最新回复(0)