50读取表11所示的数据帖,并随后计算HMAC。
[0152] 3、WP描述符更新请求
[0153] 为了重新设置写保护,主机3100重新构造将被应用的'WP描述符',并请求利用由 此构造的WP描述符在存储装置3200处进行更新。为了请求'WP描述符'的更新,主机3100 利用下表12所示的输入值产生HMAC。
[0154] 表 12 [0 巧 5]
[0巧6] 参照表12,'私钥'是主机3100和存储装置3200共享的密钥,H青求类型'为<0x3', 并且'WP描述符更新计数器'指示目前为止多少存储装置3200更新了 'WP描述符'。'Nonce' 为0x0, 'WP描述符'是将被改变的'WP描述符'值,并且'结果'为'0x0'。
[0157] 下表13示出了用于'WP描述符更新请求'的数据帖。主机3100向存储装置3200 提供如表13所示地组织的数据帖。
[0巧8] 表13
[0 巧 9]
[0160] 参照表13,'请求类型'为'0x3',并且'WP描述符更新计数器'指示目前为止多少 存储装置3200更新了 'WP描述符'。'Nonce'为'0x0','WP描述符'是将被改变的'WP描 述符'的值,并且'结果'为'0x0'。'HMAC'是主机3100利用表12所示的数据帖计算的值。
[0161] 主机3100将表13所示的数据帖提供至存储装置3200 W更新'WP描述符'。存储 装置3200接收WP描述符更新请求,正常地处理请求,并且增加WP描述符更新计数器。
[0162] 4、结果读请求/响应
[016引主机3100请求对'WP描述符'的更新,并且随后使用'结果读请求'来检查请求的 结果。针对结果读请求,主机3100如下表14所示地构造数据帖,并且接着将其提供至存储 装置3200。
[0164]表 14 [01妨I
[0166] 参照表14,'请求类型'为'0x4',并且'WP描述符更新计数器'为'0x0'。'Nonce' 为'0x0','WP描述符'为'0x0',并且'结果'为'0x0'。'HMAC'为'0x0'。存储装置3200 响应于表14所示的请求向主机3100提供下表15所示的响应。主机3100读取表15所示 的数据帖,并且检查更新'WP描述符'的结果。
[0167] 表 15
[0168]
[01~]参照表15,'响应类型'为'0巧',并且'WP描述符更新计数器''指示目前为止多少 存储装置3200更新了 'WP描述符'。'Nonce'为'0x0','WP描述符'为'0x0',并且'结果' 为执行请求的结果。'HMAC'是安全管理器3234计算的值。在产生表15所示的数据帖时, 安全管理器3234或HMAC 3250利用下表16所示的值计算'HMAC'。
[0170] 表 16
[0171]
[0172] 参照表16,'私钥'是主机3100和存储装置3200共享的密钥,'响应类型'为'0巧', 并且'WP描述符更新计数器'指示目前为止多少存储装置3200更新了 'WP描述符'。'Nonce' 为'0x0','WP描述符'为'0x0',并且'结果'是执行请求的结果。主机3100读取表16所 示的数据帖并计算'HMAC'。
[0173]III、WP描述符更新请求的验证
[0174] 图9是示意性地示出图3所示的存储系统的HMAC验证方法的流程图。图9示出 了其中存储装置3200验证'WP描述符更新请求'的方法。
[01巧]在步骤S110中,存储装置3200的命令管理器3232从主机3100接收WP描述符更 新请求。存储装置3200响应于WP描述符更新请求更新对于写保护的设置。也就是说,存 储装置3200重新构造将被应用的WP描述符。
[0176] 在步骤S120中,命令管理器3232解析WP描述符更新请求的数据帖。上述表13 示出了WP描述符更新请求的数据帖。参照表13,数据帖包含'请求类型'、'WP描述符更新 计数器'、<WP描述符'、<Nonce'、<结果'和<HMAC'。
[0177] 在步骤S130中,存储装置3200的安全管理器3234利用参照图8描述的共享的私 钥来计算HMAC。也就是说,安全管理器3234利用私钥和消息计算HMAC。消息可包括'请求 类型'、'WP描述符更新计数器'、'Nonce'、'WP描述符'和'结果'。安全管理器3234可利用 MD5、SHA1、SHA256等计算HMAC。作为另外一种选择,HMAC 3250计算HMAC,并将结果提供 至安全管理器3234。
[0178] 在步骤S140中,安全管理器3234将从WP描述符更新请求的数据帖中获得的HMAC 与在步骤S130中计算出的HMAC进行比较。如表13所示,从主机3100提供的数据帖包括 'HMAC'。安全管理器3234通过将来自主机3100的HMAC与存储装置3200计算的HMAC进 行比较来验证WP描述符更新请求。
[0179] 在步骤S150中,安全管理器3234根据步骤S140的比较结果确定WP描述符更新 请求是否有效。如果来自主机3100的HMAC等于存储装置3200中计算出的HMAC,则安全管 理器3234确定WP描述符更新请求是有效的。如果来自主机3100的HMAC与存储装置3200 中计算出的HMAC不同,则安全管理器3234确定WP描述符更新请求是无效的。
[0180] 当WP描述符更新请求有效时,在步骤S160中,安全管理器3234响应于WP描述 符更新请求来更新WP描述符。当WP描述符更新请求无效时,在步骤S165中,安全管理器 3234拒绝WP描述符更新请求。
[0181] IV、写保护的执行
[0182] 图10是用于描述图3所示的存储系统的写保护执行方法的流程图。当从主机3100 接收写命令或擦除命令时,存储装置3200根据是否执行写保护来执行或防止在地址区域 写数据的操作。
[0183] 在步骤S210中,存储装置3200的命令管理器3232从主机3100接收写命令。在 步骤S220中,命令管理器3232解析写命令的参数。写命令的参数可包含起始LBA、长度和 分区ID (PID)。在步骤S230中,存储装置3200的安全管理器3234从WP描述符取出sdA。
[0184] 在步骤S240中,安全管理器3234将写命令的分区ID PID_h与WP描述符的分区 10口10_(1进行比较。啊D_h'来自主机3100,而啊D_d'得自存储装置3200。安全管理器 3234确定写命令的分区ID PID_h是否等于WP描述符的分区ID PID_d。
[0185] 当写命令的分区ID PID_h与WP描述符的分区ID PID_d不等时,在步骤S245中, 确定WP描述符是否是最后一个WP描述符。当WP描述符不是最后一个时,方法前进至步骤 S230,并且获得下一 WP描述符。当WP描述符是最后一个时,方法前进至步骤S295 W在其 中执行写命令。
[0186] 返回步骤S240,当写命令的分区ID PID_h等于WP描述符的分区ID PID_d时,方 法前进至步骤S250,在步骤S250中安全管理器3234检查WP描述符的'可写'。例如,安全 管理器3234确定WP描述符的'可写'是否设为'假'。当WP描述符的'可写'未设为'假' 时,方法前进至步骤S245。
[0187] 当WP描述符的呵写'设为'假'时,在步骤S260中,存储装置3200检查WP描述 符的长度。存储装置3200检查WP描述符的长度是否设为'0'。如果是,则在步骤S290中, 存储装置3200拒绝写命令。如参照表1的描述,WP描述符的长度设为'0'意味着整个分 区被写保护。
[0188] 当WP描述符的长度未设为'0'时,在步骤S270中,安全管理器3234检查由起始 LBA和WP描述符的长度指示的写保护范围。
[0189] 在步骤S280中,安全管理器3234确定写命令中的逻辑块地址LBA是否在写保护 范围内。当写命令中的逻辑块地址LBA在写保护范围W外时,方法前进至步骤S245。
[0190] 当写命令的逻辑块地址LBA在写保护范围内时,在步骤S290中,存储装置3200拒 绝写命令。也就是说,存储装置3200将对应于WP描述符中的逻辑块地址LBA和长度的存 储器区域写保护。
[0191] 图11是示意性地示出其中根据本发明构思的实施例的存储系统的一个或多个存 储器区域被写保护的实施例的概念图。在图3所示的存储系统3000中,一个分区的一个或 多个区域可被写保护。作为另外一种选择,多个分区中的多个区域可被写保护。参照图11, 第一分区PID1包括两个写保护区域。第一写保护区域WP1从LBA500至LBA1000,并且第二 写保护区域WP2从LBA2000至LBA3000。第二分区PID2包括一个写保护区域。第S写保 护区域WP3从LBA1100至LBA2200。第S分区PID3包括S个写保护区域。第四写保护区 域WP4从LBA100至LBA600,第五写保护区域WP5从LBA1300至LBA2000,并且第六写保护 区域WP6从LBA2900至LBA3300。第n分区PI化整个被写保护。WP描述符的LBA分配方 式可改变W在一个分区设置多个写保护区域。
[0192] 根据本发明构思的实施例的存储系统设及一种利用'带有密钥的加密散列函数' 的写保护方法。例如,HMAC是一种形式的'带有密钥的加密散列函数'。如果通过'带有密 钥的加密散列函数'验证命令,则可仅通过具有与存储装置共享的私钥的主机来进行对写 保护设置的改变,从而可防止数据被未经验证的主机改变。另外,根据本发明构思的实施例 的存储系统在验证命令的同时通过逻辑块地址设置将被写保护的存储器区域。
[0193] 在本发明的概念中,通过利用'带有密钥的加密散列函数'、'私钥'、'请求计数'等 执行的验证来完成写保护的设置,并且W主机的逻辑块地址为单位来设置写保护区域。另 夕F,可通过防止未经验证的主机设置写保护来检查数据的无意改变。另外,主机通过逻辑块 地址改变写保护区域从而动态和灵活地执行写保护。
[0194] 同时,根据本发明构思的实施例的存储系统可应用于多种产品。根据本发明构思 的实施例的存储系统可在诸如个人计算机、数码相机、摄像机、手持式电话、MP3播放器、便 携式媒体播放器(PMP)、游戏站播放器任S巧和个人数字助理(PDA)之类的电子装置中实 现。可通过诸如存储卡、USB存储器和固态驱动器(SSD)之类的存储装置实现存储系统的 存储介质。
[0195] 图14是示出应用根据本发明构思的存储装置的固态驱动器的框图。参照图14,固 态驱动器(SSD)系统4000包括主机4100和SSD 4200。
[0196] SSD 4200通过信号连接器4211与主机4100交换信号SGL并且通过电源连接器 4221被供应电源。SSD 4200包括多个闪速存储器4201至420n、SSD控制器4210和辅助电 源 4220。
[0197] 多个闪速存储器4201至420n可用作SSD 4200的存储介质。SSD4200不仅可采用 闪速存储器,而且可采用诸如(相变随机存取存储器(RAM))PRAM、(磁阻式RAM)MRAM、(电 阻式RAM)ReRAM和(铁电式RAM)FRAM之类的非易失性存储器装置。闪速存储器4201至 42化通过多个通道CH1至CHn与SSD控制器4210连接。一个通道与一个或多个闪速存储 器连接。与一个通道连接的闪速存储器可与相同的数据总线连接。
[0198] SSD控制器4210通过信号连接器4211与主机4100交换信号SGL。信号S化可包 括W下部分;命令、地址和数据。SSD控制器4210适于响应于主机4100的命令将数据写到 对应的闪速存储器或从对应的闪速存储器读出数据。将参