0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

了解公钥基础结构

星星科技指导员 来源:ADI 作者:ADI 2023-06-27 11:20 次阅读

证书将标识符与公钥安全地绑定在一起。当计算机请求访问网络资源时,将根据计算机的标识授予访问权限。借助证书,访问控制代理可以通过验证证书的签名来检测请求计算机的身份是否被伪造或篡改。但是,仅提供有效的证书是不够的,因为其他人很容易捕获并使用它。访问控制代理还必须通过质询-响应身份验证控制请求计算机是否真正知道与播发证书中的公钥匹配的私钥。该过程完全证明了计算机的身份,因为私钥永远不会透露给其他计算机。

现在,让我们解决证书信任的启用问题。证书颁发机构是相互信任的第三方,可实现这种信任。证书颁发机构 (CA) 有两种类型:封闭网络上的私有 CA 和互联网上的公共 CA。公共 CA 通过在互联网上建立信任来开展业务。如果他们碰巧错误地颁发证书,他们将不信任并被排除在业务之外,因此他们往往会做得很好。私有 CA 由公司的IT 部门维护。他们的作用是为公司资产颁发证书。根据定义,这些 CA 必然是受信任的。

CA 正在颁发证书。证书颁发是计算机注册过程的一部分,其工作原理如下:

请求者(要注册的计算机)已经拥有公钥和相应的私钥,如博客 1 中所述

证书申请者生成“CSR”,又名证书签名请求。CSR 包含请求者的声明身份(计算机名称、IP 地址、服务器 URL)及其公钥。CSR 是使用请求者的私钥“自签名”的。

CA 确保请求者的身份(此过程取决于颁发策略)

CA 从 CSR 创建证书(与 CSR 的内容基本相同,具有 CA 标识和其他技术信息等附加属性,以帮助解释证书本身)

CA 使用 CA 的私有签名密钥对证书进行签名,并将签名附加到证书

证书的使用者现在可以使用 CA 证书中找到的 CA 公钥来验证其有效性。如果数字签名有效,则表示身份和公钥已由受信任的 CA 正式验证。

下图 [2] 描述了 x.509 证书的外观。它是包含技术数据的一系列字段。我们可以清楚地看到颁发者的身份、证书持有者的身份以及 CA 颁发的数字签名。

wKgaomSaXeuAVm_6AASOJyC3HSI810.png

相同的证书 [2],以二进制 (DER) 格式编码:

wKgZomSaXfKAHOxuAAREPyQm4Gs947.png

现在,让我们看一个 Web 服务器的证书颁发策略示例。当公司需要为其 Web 服务器“www.server.com”提供证书时,他们可以通过向 CA 发送 CSR 从公共 CA 请求证书。CA 将要求 Web 服务器所有者在服务器的根目录下存放一次性使用令牌(包含随机值的文件)。服务器的合法所有者可以通过使用文件传输协议(FTP)等方式对Web服务器的内容进行特权访问来做到这一点。假设流氓玩家不能这样做。然后,CA 尝试从“www.server.com”获取此特殊文件。如果成功,则证明CSR来自服务器的合法所有者,并颁发证书。否则,不会颁发证书。因此,没有其他人可以声称“www.server.com”身份。

显然,如果网络中的所有计算机希望在相互通信时能够相互验证其证书,则必须信任相同的 CA。这意味着他们必须使用相同的 CA 证书来验证彼此的证书。事实上,CA 证书是自签名的(实际的 PKI 可能是相互认证的 CA 级联,但让我们暂时跳过它)。因此,CA 证书本质上必须是受信任的,因为它们没有经过父 CA 的认证(这将是一个永无止境的问题:谁在认证父 CA?因此,CA 证书必须安全地安装到计算机中,使其不能被任意修改。在 Windows 等操作系统上,CA 证书存储是一个安全组件,需要特殊权限才能修改。同样,在嵌入式设备中,CA 证书必须存储在具有严格写入访问控制的内存中。大多数情况下,CA 证书是预装的,不容易修改。并且存储必须不受恶意软件的影响。如果恶意 CA 可以将其 CA 证书注入计算机,则还可以颁发恶意标识。受恶意 CA 证书感染的计算机将信任这些恶意身份。对于简单的嵌入式设备,大多数情况下,将为受控制造环境中的每个设备生成证书,并与CA证书一起存储在设备中。部署后,所有这些设备将相互接受,因为它们共享相同的 CA 并拥有该 CA 颁发的证书。

总之,相互信任的 CA 与相互接受的证书颁发策略相结合,允许相互不受信任的各方相互进行身份验证。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 计算机
    +关注

    关注

    19

    文章

    7212

    浏览量

    87352
  • 服务器
    +关注

    关注

    12

    文章

    8751

    浏览量

    84747
  • WINDOWS
    +关注

    关注

    3

    文章

    3504

    浏览量

    88047
收藏 人收藏

    评论

    相关推荐

    企业鸿蒙原生应用元服务备案实操包名签名信息

    一、 鸿蒙应用/元服务如何查询包名? 登录 AppGallery Connect ,点击“我的应用”,输入应用名称可查询到需要备案的鸿蒙应用/元服务包名。 二、 鸿蒙应用/元服务如何获取和签名
    发表于 04-10 15:32

    基于神经网络混沌吸引子加密算法的FPGA实现

    【作者】:刘晋明;刘年生;【来源】:《厦门大学学报(自然科学版)》2010年02期【摘要】:利用具有顺序和并行执行的特点的VHDL语言,设计并实现了基于神经网络混沌吸引子的加密算法,在编
    发表于 04-24 09:15

    松下新推出的基于NTRU算法的加密芯片

    松下新推出的基于NTRU算法的加密芯片,采用WLCSP晶片级封装,使用单线通信,只需要一个GPIO资源,有极高的安全性。产品特点:1、使用NTRU算法进行授权管理。2、非易失性
    发表于 05-07 09:46

    git、私钥使用经验

    今天在windows用了git,整理下遇到的问题。首先生成密钥(包含和私钥),然后就等待通过管理员被服务器接收,接下来就可以clone了,但是最开始的时候,可以通过验证,但是不
    发表于 12-10 22:40

    什么是RSA指数

    什么是RSA指数RSA指数的选取
    发表于 01-01 06:09

    mbedTLS设置已知根本不验证或使用证书信息咋办?

    我正在将代码从 esp8266 迁移到 esp32-c3。在旧代码中,bearssl 通过提供已知的可信来使用,该在工厂时保存在闪存中 // 假设给定的
    发表于 03-01 08:10

    mbedTLS设置已知的问题求解

    我正在将代码从 esp8266 迁移到 esp32-c3。在旧代码中,bearssl 通过提供已知的可信来使用,该在工厂时保存在闪存中 // 假设给定的
    发表于 04-14 07:52

    基于Chebyshev多项式的密码系统算法

    介绍有限域Chebyshev多项式的定义和性质。针对基于有限域Chebyshev多项式的类ElGamal密码系统存在的弱点,提出一个新的密码算法。该算法的公开密钥隐藏了求秘密密
    发表于 04-08 08:36 13次下载

    基于椭圆曲线的EIGamal加密体制的组合分析及应用

    分析了基于椭圆曲线的EIGamal 密码的组合技术。基于种子和密钥映射的新技术可以实现从有限的种子变量产生几乎“无限”密钥对,有望解决大型专用网中中大规模的密
    发表于 08-28 08:20 8次下载

    用JAVA语言实现RSA密码算法

    用JAVA语言实现RSA密码算法:本文阐述了公开密钥密码体制RSA算法的原理及实现技术。并在此基础上,给出了JAVA语言实现的RSA算法源代码。关键词:ILSA体制;;密钥
    发表于 02-10 10:27 58次下载

    常见加密算法有哪些

    RSA、ElGamal、背包算法、Rabin(Rabin的加密法可以说是RSA方法的特例)、Diffie-Hellman (D-H) 密钥交换协议中的加密算法、Elliptic Curve
    发表于 12-10 09:41 4.3w次阅读

    密码分析简介

    对公密码体制的密码分析历史的形成,给出一些重要结果的描述和重要文献的历史发展线索,同时对2010年-2014年有限域和椭圆曲线的离散对数问题的突破性进展给予了简单介绍.自密码学1976年诞生
    发表于 01-16 11:38 1次下载

    如何使用生成的加密数据和私钥解密数据

    生成和私钥有两种算法。例如,比特币协议使用椭圆曲线数字签名算法(ECDSA)。在本文中,我将解释rivests - shamir - adleman (RSA),并与ECDSA进行比较。RSA
    发表于 12-06 10:23 7693次阅读

    加密货币的钱包、和私钥你都了解清楚了吗

    了它,任何人都可以给你转账。其实,任何人都可以独立地、不联网地生成自己的钱包。这是怎么做到的呢? 和私钥 这涉及到一个密码学上的一个基本概念:加密技术。
    发表于 10-31 09:12 1435次阅读

    EE-385:用加速器实现RSA密码系统

    EE-385:用加速器实现RSA密码系统
    发表于 04-29 17:29 7次下载
    EE-385:用<b class='flag-5'>公</b><b class='flag-5'>钥</b>加速器实现RSA密码系统