|
发表于 2011-11-1 05:28:29
|
显示全部楼层
基于硬件的FDE加密技术
这种技术采用一块内置到硬盘里的芯片进行加密/解密操作,密钥存放在该芯片里。当操作系统写入明文数据到硬盘时,加密芯片会将其加密,并将密文数据写入磁盘;而当操作系统从磁盘读取数据时,解密芯片会将密文数据解密,并将明文数据输出。
在硬盘中,所有写入的数据都需要先转化成二进制代码才能被存储。例如我们需要向硬盘中写入“6”这个阿拉伯数字,首先计算机会将“6”变成二进制代码的形式“110”,之后再加上ECC校验码,于是“110+ECC”便被写到硬盘中。这是传统的硬盘写入数据方式。
那么,FDE硬盘是如何工作的呢? 仍然以上面的例子为基础:我们需要往硬盘中写入阿拉伯数字“6”,这时加密/解密芯片需要首先对“6”进行加密,为了方便起见,我们假定加密公式F(x)=密钥×数据,且我们现在的密钥是“8”。那么我们得到的加密后的数据就是“48”,而最终写入硬盘中的二进制代码是“1001000+ECC”。在读取时,首先被读出的是二进制代码,然后被转换成数据“48”,再根据加密时的密钥“8”,利用解密公式“数据=F(x)/密钥”,得到原始数据48÷8=“6”。
从上面的过程中可以看到,密钥是整个过程的关键部分。在FDE硬盘中,密钥分为“主密码(SID)”和“用户密码(UID)”两个等级,主密码用于制作加密密钥之用(一旦输入之后,不能更改,原因后面介绍);而用户密码的作用与先前的BIOS开机密码相当,它只能对硬盘进行加锁或者解锁的操作。
如果用户想改变密钥,只需要发出“擦除FDE密码”的命令,这样,密钥会被重新置为KEY 0,当用户重新设置密码时,密钥就变成随机密钥。密钥是由加密/解密芯片控制的,而不是存储于硬盘存储介质中,所以黑客就很难破解。 更改主密码SID之后,硬盘的加密算法就会发生改变,先前写入的数据将会无法被识别。例如我们将SID从原来的“8”,换成“12”,那么按照算法得到的最终数据就是48÷12=4,这个值与原来的数据没有任何联系。
需要特别注意的是,虽然从道理上说硬盘可以更改密钥(指主密码SID),但是更改主密码之后,硬盘上原有的数据将不能再被识别(图6)!所以更改SID功能只有两个用途:一是新硬盘的初始化加密,另外一个就是快速擦除硬盘上的全部现有数据。 |
|