admin管理员组

文章数量:1531225

什么是“指纹”?

看过警匪片或者破案小说的人,应该都知道“指纹”在刑侦中的作用——警方虽然没有直接看到犯罪现场的作案人员,但可以根据现场留下的指纹来猜测/判断作案人员。

如果你时常接触信息安全领域的一些资料,也会听到“指纹”这个形象的说法(比如:操作系统指纹、网络协议栈指纹、等等)。IT 领域提到的“指纹”一词,其原理跟“刑侦”是类似的——“当你需要研究某个对象的类型/类别,但这个对象你又无法直接接触到。这时候你可以利用若干技术来获取该对象的某些特征,然后根据这些特征来猜测/判断该对象的类型/类别。”
  

什么“指纹”的“信息量”?

在 IT 领域有各种各样的特征可以用来充当“指纹”。这时候就需要判断,用哪个特征做指纹,效果更好。为了讨论这个问题,就得扫盲一下“指纹的信息量”。

为了帮助大家理解,先举一个例子:

假设你要在学校中定位某个人,如果你光知道此人的性别,你是比较难定位的(只能排除 1/2 的人);反之如果你不知道性别,但是知道此人的生日,就比较容易定位(可以排除掉大约 364/365 的人,只剩大约 1/365 的人)。为什么呢?因为“生日”比“性别”更加独特,所以“生日”比“性别”能够提供更多的信息量。

从这个例子可以看出:某个特征越独特,则该特征的信息量越大;反之亦然。信息量越大的特征,就可以把对象定位到越小的范围。

“指纹”的“信息量”如何度量——关于指纹的比特数?

在 IT 领域中,可以用比特数来衡量某个指纹所包含的信息量。为了通俗起见,先以前面提到的“性别”来说事儿。性别只有两种可能性——“男”或者“女”,并且男女的比例是大致平均的。(那些喜欢抬杠的人,别跟我扯啥双性人,我没空搭理)所以,当你知道了某人的性别,就可以把范围缩小到原先的 1/2。用 IT 的术语来讲,就是:“性别” 这个特征只包含 “一个比特” 的信息量。

以此类推:

当我们说:某特征包含3比特信息量,意思就是:该特征会有8种大致平均的可能性(8等于2的3次方)。一旦知道该特征,可以把目标定位到八分之一。

当我们说:某特征包含7比特信息量,意思就是:该特征会有128种大致平均的可能性(128=2^7)。一旦知道该特征,可以定位到 1/128

再来说“生日”。(不考虑闰年的情况下)生日有365种可能性(并且也是平均分布的),所以生日包含的比特数大约是 8.51。为什么是 8.51 呢,因为“2 的 8.51 次方”约等于 365。因此,知道了某人的生日就可以把范围缩小到 1/365

通过上述举例,大家对于指纹的信息量,应该有一些粗浅的认识了吧?

多个指纹的综合定位

如果能同时获取互不相关的若干个指纹,就可以大大增加定位的精确性。

比如要在某个公司里面定位某人,如果你知道此人的“生日”和“生肖”,那么就可以达到 1/4380(1/4380 = 1/12 * 1/365) 的定位精度。因为综合定位之后,比例之间是乘法的关系,所以范围

本文标签: 指纹浏览器都是什么意思