假设两个用户A和B进行通信,公钥为c驱动没有数字签名,私钥为d,明文为x。 A用公钥对明文进行加密,形成密文c(x),然后传输密文; B收到密文,用私钥d(c(x))解密密文,得到要通信的明文x。对于通信,如果C的私钥是eC,接收到密文,用私钥解密密文e(c(x)),得到要通信的明文x。 Bob 将公钥交给了他的朋友 Patty、Doug 和 Susan。苏珊打算给鲍勃写一封保密信。她写完后,用鲍勃的公钥加密,达到保密的效果。 Bob 收到这封信后,他用他的私钥解密它并看到这封信的内容。这里需要强调的是,只要 Bob 的私钥不泄露,这封信就是安全的,即使落入他人手中也无法解密。 Bob 回信给 Susan 并决定使用“数字签名”。写完之后,他先用Hash函数生成了一封信的摘要。然后 Bob 使用他的私钥加密这个摘要以生成“数字签名”。 10 Susan 收到信后,取下数字签名,用 Bob 的公钥解密,得到信的摘要。这证明了这封信确实是 Bob 发出的。实现了反否认。 11 Susan 然后对字母本身使用 Hash 函数,并将结果与上一步获得的摘要进行比较。如果两者一致,就证明信没有被篡改。达到了完整性。 12 复杂的情况出现了。
Doug 想要欺骗 Susan,他偷偷使用了 Susan 的电脑,并用他的公钥交换了 Bob 的公钥。此时,Susan 实际上拥有 Doug 的公钥,但认为这是 Bob 的公钥。因此,Doug 可以伪装成 Bob,用他的私钥做一个“数字签名”,写信给 Susan,让 Susan 用假 Bob 的公钥解密。 13 后来,苏珊觉得不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想了一个办法让 Bob 找到一个“证书颁发机构”(CA)来验证公钥。证书中心使用自己的私钥对 Bob 的公钥和一些相关信息进行加密,生成“数字证书”。 14 Bob拿到数字证书后,就可以放心了。如果以后给Susan写信,我只需要在签名时附上数字证书(保证证书是CA颁发的)。 15 Susan 收到信后,使用 CA 的公钥解锁数字证书,就可以得到 Bob 的真实公钥,然后就可以证明“数字签名”是否在 16 岁以下。我们来看一个“数字签名”的应用证书”。示例:https 协议。该协议主要用于网页加密。 17 首先,客户端向服务器发出加密请求。 18 服务器用自己的私钥加密网页后,连同自己的数字证书一起发送给客户端。 19 客户端(浏览器)的“证书管理器”有一个“受信任的根证书颁发机构”列表。
根据这个列表,客户端会检查用于解锁数字证书的公钥是否在列表中。 20 如果数字证书中记录的 URL 与您正在浏览的 URL 不一致,则说明证书可能被冒用,浏览器会发出警报。 21 如果数字证书不是由受信任的组织颁发的,浏览器会再次发出警告。 22 如果数字证书可靠,客户端可以使用证书中的服务器公钥对信息进行加密,然后与服务器交换加密后的信息。 23 加密方法可分为两大类。一种是私钥密码术,另一种是公钥密码术。前者的加解密过程使用同一组密码,而后者的加解密过程使用两组密码。历史上,人类传统的加密方式都是前者,比如二战期间德军使用的Enigma电报密码。摩尔斯电码也可以看作是一种私钥加密方式。在单密钥加密的情况下,只有一个密钥,所以密钥的保存变得非常重要。一旦密钥泄露,密码也会被破解。 24 在双密钥加密的情况下,有两个密钥,一个是公钥,一个是私钥。公钥和私钥是一一对应的。如果有公钥,则必须有对应的唯一私钥,反之亦然。所有(公共、私有)对都是不同的。
同时生成公钥和私钥应该相对容易,但是从公钥中推导出私钥应该是困难的或不可能的。 25 目前,常见的单密钥加密算法是 DES(数据加密标准),常见的双密钥加密算法是 RSA(Rivest-Shamir-Adleman)驱动没有数字签名,这两种算法都是 1970 年代产生的。因为任何人都可以生成自己的(公、私)对,所以为了防止有人散布假公钥来欺骗信任,需要可靠的第三方机构来生成经过认证的(公、私)对。目前全球领先的数字服务认证机构是总部位于加州的威瑞信公司,其主要业务是分发RSA数字证书。 26个CA都是大而可靠的机构,他们的公钥可以在自己的网站上下载,所以不能伪造。证书必须使用 CA 的私钥加密。如果能用 CA 的公钥打开,就证明它确实是 CA 签发的。苏珊必须亲自确保她的计算机的物理安全。如果其他人可以直接控制您的计算机并修改根证书列表,那么没有证书安全可以拯救您。 27 事实上,数字签名保证了数据的完整性,但不保证数据的加密,也不保证在数据传输过程中不存在嗅探和窃听。 – 这就像驾驶一辆大型敞篷卡车从 A 到 B 没有任何溢出,完整性得到保证。但是车里有东西,路人也看到了。
– 数据加密就是建立一个从A到B的虚拟隧道,卡车在里面行驶,路人不知道它是什么。 – 车到B后,派送员给出自己的ID,证明自己确实来自A,收件人可以选择信任这个ID。您也可以将您的身份证放入您的身份证验证器中,以检查它是否是公安部颁发的真实身份证。如果您的身份证验证设备(CA)已经是假的,您需要重新安装系统或更新它。证书。 28 通常使用公钥算法进行相互认证,然后建立会话密钥(例如 128 位 AES 密钥)。后续信息交换使用会话密钥和对称加密算法(如AES)进行加密和解密,与证书本身和公钥无关。因为公钥算法比对称密钥算法昂贵得多。 29 什么是签名驱动程序:驱动程序的数字签名是计算机硬件和驱动程序可靠性和兼容性的标志。签名驱动程序是包含数字签名的设备驱动程序。数字签名是一种电子安全令牌,用于标识软件的发布者以及是否有人更改了驱动程序包的原始内容。如果驱动程序已由使用证书颁发机构验证其身份的发布者签名,则您可以确信驱动程序实际上来自该发布者并且没有被更改。如果驱动程序未签名、未由使用证书颁发机构验证其身份的发布者签名或自发布后发生更改,Windows 将通过以下消息警告您。
30 Windows 无法验证此驱动程序的发布者驱动程序未经数字签名,或者其数字签名未经证书颁发机构验证。仅当您从原始制造商的光盘或系统管理员处获得驱动程序时,才应安装该驱动程序。此驱动程序已更改此驱动程序在经过验证的发布者进行数字签名后已更改。该软件包可能已被更改为包含可能损坏计算机或窃取信息的恶意软件。在极少数情况下,合法发布者会在驱动程序包经过数字签名后对其进行更改。仅当您从原始制造商的光盘中获得更改后的驱动程序时,才应安装该软件。 Windows 无法安装驱动程序 缺少有效数字签名或自签名后已更改的驱动程序无法安装在基于 x64 的 Windows 版本上。因此,只有在运行基于 x64 的 Windows 版本时,您才会看到此消息。如果您在尝试安装驱动程序时看到任何这些消息,您应该访问设备制造商的支持网站以获取经过数字签名的设备驱动程序。 31 Windows操作系统本身内核模式下运行的程序往往经过微软系统全面的测试,因此用户在使用过程中因Windows内核程序错误导致蓝屏错误的情况非常少。
驱动程序由各种硬件制造商与其生产的计算机硬件合作提供。大多数知名品牌厂商也能做到合理开发和完善检测,并且有严格的质量控制体系,所以很少发布。问题。但是,为了赶上开发进度或降低成本,一些小厂商在兼容性测试和质量控制上会做得不够完善,经常会出售一些带有硬件隐藏缺陷的驱动程序。用户在购买这样的产品时,在使用中存在隐患。微软发现大部分蓝屏都是这个原因造成的。这也是小厂的产品质量往往不如大厂的原因之一。使用不可靠的硬件通常会导致计算机突然死机、自动重新启动或无缘无故的蓝屏。过去人们倾向于将 Windows 操作系统的不稳定归咎于微软。但是,操作系统是计算机最基本的软件平台。为了提高整个系统的稳定性,减少用户对操作系统的指责,微软引入了识别“好”和“坏”驱动程序的机制。一个“好”的驱动伴随着一个扩展名为.cat的文件,该文件使用加密算法记录驱动包含哪些文件,这些文件是否都是原始文件,是否没有被修改过。这个驱动文件放在一起成为驱动的一部分,这个文件叫做驱动的数字签名。 32 微软对数字签名文件的管理非常严格,在微软的硬件质量实验室(Windows Hardware Quality Lab,根据每个单词的缩写缩写为WHQL)申请并不复杂。微软WHQL推出了一套不断更新的测试软件,称为HCT(Hardware Compatibility Test,即硬件兼容性测试)。该测试工具集可以在微软网站上免费下载到最新版本。驱动程序开发人员可以使用 HCT。该工具对自己的驱动进行测试,如果这些测试项可以通过,就可以通过互联网向WHQL申请数字签名。