基于PKI的物联网安全服务体系建设

news2024/12/28 19:17:27

文章目录

  • 1. PKI 概况
    • 1.1 PKI 简介
    • 1.2 CA 介绍
      • 1.2.1 CA证书包含主要内容
      • 1.2.1 CA 的工作原理
      • 1.2.2 主流的CA机构
    • 1.4 PKI 应用场景
  • 2. PKI 在物联网领域中的应用
    • 2.1 物联网PKI架构包含组件
    • 2.2 物联网PKI证书链
  • 3. 创建自签CA证书
    • 3.1 自签名根证书创建
    • 3.2 创建云平台证书
      • 3.3 创建项目设备二级根证书
      • 3.4 创建设备证书
  • 4. 总结

1. PKI 概况

1.1 PKI 简介

  PKI(Public Key Infrastructure,公钥基础设施)是一种数字证书体系结构,用于管理和分发数字证书,以确保通信安全和身份验证。PKI采用了公钥密码学来提供保密性完整性认证和不可否认性等安全服务。

  PKI主要组件:

  • 证书颁发机构(CA):CA是负责颁发数字证书的可信机构。它验证证书请求者的身份,并为其生成数字证书。CA还负责管理证书吊销列表(CRL),以确保吊销被撤销或不再使用的数字证书。

  • 数字证书:数字证书是一种由CA颁发的证明证书请求者身份的数字凭证。数字证书包含证书请求者的公钥、证书有效期和证书签名等信息。

  • 公钥:公钥是由数字证书包含的证书请求者的公共密钥,用于加密和解密数据。

  • 私钥:私钥是证书请求者保留的私有密钥,用于对接收到的加密数据进行解密和签名。

  • 证书吊销列表(CRL):CRL是由CA维护的列表,其中包含被吊销或失效的数字证书列表。接收者可以使用CRL来验证数字证书是否有效。

  • 证书状态协议(OCSP):一种用于在线验证数字证书状态的协议。

  关于PKI与CA往往容易混为一谈,一言以蔽之,PKI 是一种安全机制,通过使用公钥密码学的数字证书实现安全通信。CA 是 PKI 的核心组成部分之一,负责颁发和管理数字证书,以确保数字证书的真实性和有效性。CA 证书是 CA 自身的数字证书,用于验证 CA 的身份和公钥。数字证书是由 CA 颁发的,用于验证持有人的身份和提供加密服务。

1.2 CA 介绍

  证书颁发机构(CA)在整个PKI体系中扮演了非常关键的角色。它是公钥基础设施的核心组成部分,负责验证和颁发数字证书,以确保通信安全和身份验证。在PKI体系中,每个用户和系统都有一对公钥私钥。公钥可以向任何人公开,而私钥应该严格保密。数字证书是一个包含公钥的文件,由证书颁发机构签名,以证明公钥属于特定用户或实体。证书颁发机构还负责验证证书请求者的身份,并将证书信息发布到证书仓库中,以供其他人验证。

1.2.1 CA证书包含主要内容

  • 公钥:CA 证书中包含 CA 的公钥,用于验证由 CA 签名的证书。
  • 签名:CA 证书被数字签名,以保证其真实性和完整性。签名是由 CA 的私钥生成的,因此只有拥有 CA 的私钥的人才能签署有效的 CA 证书。
  • 有效期:CA 证书包含其颁发日期和过期日期。证书在过期日期之前可用,过期后必须重新颁发。
  • 发行者信息:CA 证书包含发行者的信息,如组织名称、联系人信息、国家和地区等。
  • 主题信息:CA 证书包含主题的信息,即该证书所代表的实体的信息,如组织名称、联系人信息、国家和地区等。
  • 其他扩展:CA 证书可以包含其他扩展信息,如证书策略、密钥用途、扩展密钥用途等。

1.2.1 CA 的工作原理

  • 验证请求者身份:证书颁发机构验证证书请求者的身份,确保其合法性和真实性。
  • 颁发数字证书:CA使用证书模板生成数字证书,包括证书有效期、公钥、证书序列号、证书颁发机构的名称等信息。
  • 数字签名:CA使用其私钥对数字证书进行签名,以证明证书的真实性和完整性。
  • 证书吊销:如果数字证书被吊销或失效,证书颁发机构将其添加到证书吊销列表(CRL)中,并将CRL分发给信任的实体。
  • 证书更新:证书颁发机构负责更新数字证书,确保其仍然有效并反映实体的当前状态。

1.2.2 主流的CA机构

  • Symantec(前身为VeriSign):Symantec是全球最大的CA机构之一,提供数字证书、SSL证书和其他安全服务。
  • Comodo:Comodo是全球领先的数字证书颁发机构之一,提供各种类型的数字证书,包括SSL证书、代码签名证书和电子邮件证书等。
  • GlobalSign:GlobalSign是一家数字证书颁发机构,提供各种数字证书,包括SSL证书、代码签名证书、身份验证证书和设备证书等。
  • DigiCert:DigiCert是一家数字证书颁发机构,提供各种类型的数字证书,包括SSL证书、代码签名证书和身份验证证书等。
  • Let’s Encrypt:Let’s Encrypt是一个非营利性的数字证书颁发机构,提供免费的SSL/TLS证书。
  • Trustwave:Trustwave是一家全球领先的数字证书颁发机构,提供数字证书、SSL证书和其他网络安全服务。
  • GoDaddy:GoDaddy是一家提供各种互联网服务的公司,包括域名注册、SSL证书和其他数字证书等。

  在PKI体系中,任何组织或个人都可以扮演CA机构的角色,只是不同的组织或个人扮演的CA机构角色的可信度有高有低,通常组织或个人自己扮演CA机构签发的证书称之为自签发证书。使用自签发证书存在一些问题,其中最主要的问题是信任。由于自签发证书没有经过第三方机构的验证和认证,因此在公共环境中,它们很容易被攻击者伪造和篡改,从而引发安全风险。此外,自签发证书也无法与其他系统和应用程序的证书进行互操作,因为它们没有被信任的第三方证书颁发机构所签名。以下是自签发证书可能面临的其他问题:

  • 安全风险:自签发证书容易被攻击者伪造和篡改,从而导致中间人攻击和数据泄露等安全问题。
  • 不受信任:自签发证书未被受信任的第三方证书颁发机构签发,因此它们可能不被其他系统和应用程序所信任。
  • 互操作性问题:自签发证书无法与其他系统和应用程序的证书进行互操作,因为它们没有被信任的第三方证书颁发机构所签名。
  • 管理复杂性:自签发证书需要自己管理,包括更新证书、管理证书吊销列表等,这增加了管理复杂性和工作量。

  使用自签发证书部署到互联网给用户直接使用存在信任问题、安全问题。但是对于一些内部系统或者与外界没有交互的系统中采用自签发证书,能够解决内部系统信任问题,可以节省大量的证书采购费用,且又能在一定程度上保障系统的安全性。

1.4 PKI 应用场景

  • 数字签名:数字签名是一种验证文件或数据完整性和真实性的方法,通过将文档哈希加密并用私钥签名,证明文件的来源和完整性。数字签名通常用于电子商务、合同签署和法律文件等领域。
  • SSL/TLS加密通信:SSL/TLS协议是用于保护Web通信的协议。PKI系统用于验证SSL/TLS证书的有效性和可信度,从而确保加密通信的安全性。
  • VPN安全连接:虚拟私人网络(VPN)是一种用于加密和保护远程连接的技术。PKI系统用于验证客户端和服务器证书的有效性,从而确保VPN通信的安全性。
  • 数字身份验证:PKI系统可以用于数字身份验证,包括电子邮件、登录和访问控制等。数字证书可以用于证明用户的身份,并提供加密和签名功能来保护通信的安全性。
  • 移动设备安全:PKI系统可以用于保护移动设备的安全性,包括移动设备管理、应用程序签名和安全数据存储等。通过使用数字证书和加密技术,可以确保移动设备的安全性和可靠性。

2. PKI 在物联网领域中的应用

  随着物联网的蓬勃发展,对安全性的要求逐渐提高,PKI在物联网中的应用也越来越多。常见物联网平台PKI体系架构如下图所示;
在这里插入图片描述
  首先从CA机构获取根证书,用于整个物联网云平台的证书签发以及物联网设备证书签发。项目云平台二级证书用于云平台,项目设备二级根证书用于给每个设备签发独立的设备证书。双向认证时云端的负载均衡服务或网关需要获取设备证书用于完成对设备的验证,由于设备数量众多,如何验证设备证书是否合法?CA证书采用链式认证,只需要将签发设备证书的项目设备二级根证书配置到云平台负载均衡服务或网关,使用项目设备二级根证书来验证其颁发的所有设备证书,验证通过表示设备可信。

2.1 物联网PKI架构包含组件

  • 物联网设备:物联网设备是物联网PKI架构的核心组件。它们需要能够处理数字证书和加密算法,并支持安全通信协议,如TLS(Transport Layer Security)和DTLS(Datagram Transport Layer Security)。
  • CA(证书颁发机构):物联网PKI架构需要至少一个CA,用于颁发和管理数字证书。由于物联网设备通常是低功耗设备,因此需要CA提供轻量级的证书管理和验证服务。
  • RA(注册机构):RA负责管理数字证书的注册过程。在物联网PKI架构中,RA可以与CA合并,以减少复杂性和延迟。
  • 证书吊销列表(CRL):CRL用于记录已撤销的数字证书,以防止已丢失或被盗用的设备继续使用其数字证书。
  • OCSP(在线证书状态协议):OCSP是一种用于在线验证数字证书状态的协议,可以快速确定数字证书是否已被撤销。
  • IoT网关:IoT网关是物联网PKI架构中的重要组件。它可以充当设备和网络之间的中间件,为设备提供连接和安全性,包括数字证书管理和验证等。
  • 安全通信协议:物联网设备通常使用一些安全通信协议,如TLS和DTLS等,以确保通信的机密性和完整性。

2.2 物联网PKI证书链

  PKI证书链是由一系列数字证书组成的层级结构,用于验证数字证书的真实性和可信度。PKI证书链通常由以下三个组件组成:

  • 根证书:根证书是PKI证书链中的顶级证书,由根CA颁发。根证书的公钥是一个信任锚点,用于验证下级证书的真实性和可信度。
  • 中间证书:中间证书是由根证书颁发的,它们用于验证下一级证书的真实性和可信度。中间证书通常由中间CA颁发。
  • 服务器证书:服务器证书是由中间证书颁发的,它们用于验证特定服务器的真实性和可信度。服务器证书包含服务器的公钥、颁发者的信息和有效期等。
  • 终端设备证书:终端设备证书是由中间证书颁发的,它们用于验证特定终端设备的真实性和可信度。终端设备证书包含终端设备的公钥、颁发者的信息和有效期等。

  当客户端连接到一个使用SSL/TLS协议的服务器时,服务器会向客户端发送其数字证书。客户端根据数字证书链来验证服务器证书的真实性和可信度。客户端首先使用根证书的公钥来验证中间证书的真实性和可信度,然后使用中间证书的公钥来验证服务器证书的真实性和可信度。如果证书链上的任何一个证书无效或已被撤销,则客户端将拒绝连接服务器。

  在PKI证书链中,每个证书都是由下一级证书签名的。这意味着,如果中间CA的私钥被泄露,攻击者可以签署伪造的证书,并伪装成受信任的服务器或网站。为了防止这种情况发生,PKI证书链的每个证书都需要定期更新和撤销,并使用安全存储设备来保护私钥的安全性。

3. 创建自签CA证书

3.1 自签名根证书创建

  • 创建根证书私钥,此命令将生成一个 2048 位的 RSA 私钥文件 ca.key。
openssl genrsa -out ca.key 2048
  • 生成自签名的 CA 证书,此命令将使用 CA 私钥 ca.key 生成一个新的自签名的 X.509 格式的 CA 证书 ca.crt。
openssl req -new -x509 -key ca.key -out ca.crt

3.2 创建云平台证书

  • 创建云平台证书私钥,生成 server.key 私钥
openssl genrsa -out server.key 2048
  • 创建证书申请文件,生成 server.csr 申请文件
openssl req -new -key server.key -out server.csr
  • 签发云平台证书,生成 server.crt 证书
openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt

3.3 创建项目设备二级根证书

  • 创建私钥 intermediate.key 文件
openssl genrsa -out intermediate.key 2048
  • 创建证书请求文件
openssl req -new -key intermediate.key -out intermediate.csr
  • 创建项目设备二级根证书
openssl x509 -req -in intermediate.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out intermediate.crt -days 3650

  使用 -req 参数指定输入的是证书请求,使用 -in 参数指定证书请求文件名,使用 -CA 参数指定签署证书的 CA 证书文件名,使用 -CAkey 参数指定签署证书的 CA 私钥文件名,使用 -CAcreateserial 参数创建序列号文件,使用 -out 参数指定输出文件名,使用 -days 参数指定证书的有效期。

3.4 创建设备证书

  可以创建无数个设备证书,用户支持每个设备拥有独立的设备证书。

  • 创建设备私钥
openssl genrsa -out device.key 2048
  • 创建证书申请文件
openssl req -new -key device.key -out device.csr
  • 签发设备证书
openssl x509 -req -in device.csr -CA intermediate.crt -CAkey intermediate.key -CAcreateserial -out device.crt -days 3650

  使用 -req 参数指定输入的是证书请求,使用 -in 参数指定证书请求文件名,使用 -CA 参数指定签署证书的 CA 证书文件名,使用 -CAkey 参数指定签署证书的 CA 私钥文件名,使用 -CAcreateserial 参数创建序列号文件,使用 -out 参数指定输出文件名,使用 -days 参数指定证书的有效期。

4. 总结

  PKI是一套成熟的安全体系,实现安全认证与通信的核心是数字证书,而数字证书的核心是非对称公钥/私钥对。公钥可以自由分发,公钥丢失后可以通过私钥提取出公钥,但是无法通过公钥提取私钥,所以私钥必须严格保密存储,私钥的安全保管成为整个PKI体系安全的最核心前提条件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/526576.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

甘肃非煤矿山电子封条 智慧矿山 opencv

甘肃非煤矿山电子封条 智慧煤矿接入国家矿山安全平台是通过pythonopencv网络模型,甘肃非煤矿山电子封条pythonopencv网络模型对关键位置(回风井口、运人井口、车辆出入口)对现场人员行为、数量、穿戴着装及设备状态各数据进行实时监控分析。p…

【连续介质力学】特征值和特征向量问题

特征值和特征向量问题 二阶张量和一个向量(单位向量 n ^ ′ \hat n n^′)的点积会得到一个向量,也就是说,将一个二阶张量投影到某个方向所得到的向量的方向实际上与 n ^ ′ \hat n n^′ 的方向不一样: 特征值和特征向…

IDEA添加.gitignore忽略不需要提交的文件

问题 git上传的时候,我们已经将 xxx 文件添加到了.gitignore 中,但是在push 后,远程仓库还是会显示此文件,比如我们在.gitignore文件当中添加了不需要提交的target目录,但是提交的时候,还是会被提交。 原因…

2023.5.14总结

这周平时在刷蓝桥杯的题目,周天打了一场2021年陕西省的省赛的重现赛。 重现赛我们没打满,打了三个小时,A了四个,不过应该也差不多了。 登录—专业IT笔试面试备考平台_牛客网 以前没学过数论分块,今天学了学。对于一些向…

Hadoop上传及下载数据流程

网络拓扑及机架感知 网络拓扑 节点距离:两个节点到达共同父节点的距离和 机架感知 ( 副本节点的选择 ) 例如:500个节点,上传数据my.tar.gz,副本数为3, 根据机架感知,副本数据…

防止攻击者对您使用合法工具

恶意行为者越来越多地利用合法工具来实现其目标,其中包括禁用安全措施、横向移动和传输文件。使用常用工具可以让攻击者逃避检测。 虽然端点产品可以将定制工具或恶意软件标记为恶意软件,但商业上可用的工具通常被组织标记为干净或列入允许列表。 这让…

MacBook Pro合上盖子不休眠的问题简单分析

15年款的MacBook Pro每次不用的时候都是直接合上盖子(开着一堆程序)系统会自动休眠,但是升级了新系统Sierra之后就发现合上盖子竟然没有休眠(第二次打开盖子后发现掉了50%多的电,而且温度比较高)&#xff0…

软考A计划-真题-分类精讲汇总-第十一章(多媒体基础)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

MySQL只有information_schema一个数据库

背景:centos新安装的mysql数据库。使用DbEaver连接mysql库时,发现左边不显示表。使用命令框mysql -uroot回车登录时,发现只能看到information_schema一个数据库了。 原因:   因为mysql数据库的user表里,存在用户名为…

Julia入门-1、使用C++调用Julia脚本语言

文章目录 0、开发环境1、测试Julia环境2、调用Julia脚本语言准备3、使用C++调用Julia脚本语言(1)使用C++调用简单的Julia脚本语言(2)使用C++调用复杂的Julia脚本语言0、开发环境 操作系统: ①Windows 10 开发编译器: ①VS 2015 Professional ②VS Code + julia-vscode插件(…

《计算机网络—自顶向下方法》 第六章Wireshark实验:IP 协议分析

IP 协议(Internet Protocol),又译为网际协议或互联网协议,是用在 TCP/IP 协议簇中的网络层协议。主要功能是无连接数据报传送、数据报路由选择和差错控制。IP 协议是 TCP/IP 协议族的核心协议,其主要包含两个方面&…

Spring Boot 配置文件总结

前言 Spring Boot 中提供一个全局的配置文件:application.properties,这个配置文件的作用就是,允许我们通过这个配置文件去修改 Spring Boot 自动配置的默认值。 Spring Boot 支持两种格式的配置文件:application.properties 和…

C/C++每日一练(20230515) 区间和的个数、BST最近公共祖先、最接近元素

目录 1. 区间和的个数 🌟🌟🌟 2. 二叉搜索树的最近公共祖先 🌟 3. 找最接近元素 🌟🌟 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏…

前端路由、vue-router常见用法、路由重定向、动态路由匹配、声明式导航 编程式导航 、导航守卫

前端路由、vue-router常见用法、路由重定向、动态路由匹配、声明式导航 & 编程式导航 、导航守卫 前端路由的概念与原理前端路由 vue-router 的基本使用vue-router 的常见用法路由重定向动态路由匹配声明式导航 & 编程式导航导航守卫 后台管理案例 前端路由的概念与原理…

mysqld之mha高可用

1.MHA的相关知识 1.1 什么是 MHA MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点故障的问题。 MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。 MHA能在…

C语言设计三子棋

引入 谈到三子棋,大家应该都不陌生,学生时代我们大多人都爱拿作文本有事没事就跟同桌下两把,只要任意一方三点连成一线,就可以胜利。今天我作为一个计算机方面的博主,将会用C语言实现这个简单的小游戏(人机…

sort命令 uniq命令 tr命令 cut命令

sort命令 ——以行为单位对文件内容进行排序,也可以根据不同的数据类型来排序 比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出 语法格式: sort [选项] 参数 cat file | sort 选项 -n按照数字进行排序…

MySQL高可用之MHA集群

一、MHA概述 1.1 什么是 MHA MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点故障的问题。 MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。 MHA能在…

【模式识别9】python计算目标检测IoU、TP、FP、FN、Precision、Recall指标

python计算目标检测IoU、TP、FP、FN、Precision、Recall指标 1. 基础概念1.1 TP、TN、FP、FN1.2 IoU1.3 Precision(P)、Recall(R)、F1-score 2. python代码3. 总结 代码资源:IoU_P_R.py 1. 基础概念 1.1 TP、TN、FP、…

2023/5/14总结

哈夫曼树 哈夫曼树:给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度(WPL)达到最小,则称该二叉树为哈夫曼树,也被称为最优二叉树。 怎样才能使带权路径长度最短:根据…