网络与协议安全复习 - 电子邮件安全
文章目录
- PGP(Pretty Good Privacy)
- 功能
- S/MIME(Secure/Multipurpose Internet Mail Extensions)
- DKIM(Domain Keys Identified Mail)
PGP(Pretty Good Privacy)
使用符号:
Ks:会话密钥、KRa:A 的私钥、KUa:A 的公钥、EP:公钥加密、DP:公钥解密、EC:常规加密、DC:常规解密、H: 散列函数、||: 连接操作、Z: 使用 ZIP 算法进行压缩、R64:基数为 64 的 ASCII 格式转换。
功能
- 认证
发送方:
(1)产生消息 M。
(2)用 SHA-1 对 M 生成一个 160 位的散列码 H。
(3)用私钥对 H 加密,与 M 连接。
接收方:
(1)用公钥解密,恢复出 H。
(2)对 M 生成一个新的 H’,比较 H 与 H’。若一致则 M 通过认证。
认证说明:
(1)RSA 保证了身份验证。
(2)SHA-1 保证了消息的有效性。
(3)签名和消息可以分离(比如对消息单独日志记录)。 - 保密
发送方:
(1)生成消息 M,并为消息生成一个随机数作为会话密钥 Ks。
(2)用会话秘钥加密 M。
(3)用接收方的公钥加密 Ks,并与加密过的 M 连接。
接收方:
(1)用私钥解密,得到 Ks。
(2)用 Ks 解密恢复 M。
保密性说明:
(1)对称加密算法和公钥加密算法结合可以缩短加密时间。
(2)公钥算法解决了 会话密钥 的单向分发问题。不用专门的 Ks 交换协议
(3)每个消息都有一次性密钥,提高了保密强度。 - 保密与认证的结合
两种服务都需要时,发送者先用自己的私钥签名,然后用会话密钥加密消息,再用接收者的公钥加密会话密钥。
简单来说,发送方先进行认证的操作,将操作完压缩后的结果作为新的“消息”进行保密操作。两部分操作并没有修改。
- 压缩
(1)有利于节省空间
(2)压缩在签名后进行
(3)压缩减少了冗余,因此提高了加密强度,使密码分析更困难
(4)PGP 采用 ZIP 压缩
总顺序:签名 —— 压缩 —— 加密。
- 电子邮件的兼容性
采用 R64 转换,每三个字节的二进制数据为一组映射成四个 ASCII 字符,附加CRC校验。
- 分段与重组
一般电子邮件工具限制消息的最大长度,PGP 自动进行分段。接收方只需去掉所有邮件头并重组即可。
S/MIME(Secure/Multipurpose Internet Mail Extensions)
S/MIME 是增强了安全性的 MIME,支持各种现代邮件代理。
MIME 不多做解释,知道它定义了许多格式和方式规范即可。
- 功能
保密、签名、清除签名(不知道在说啥)、保密和签名并行。
贴一下清除签名这块的原文:
Clear-signed data:只有签名部分用 Base64 编码,结果是,即使接收者没有 S/MIME 能力,他也能查看消息内容,只是他不能验证该签名
- 使用的密码算法
消息摘要:SHA-1 和 MD5
数字签名:DSS
对称密钥加密:三重 DES
公私钥加密:RSA、DH 密钥协商用于会话密钥
- 证书处理过程
(1)使用 X.509 v3 证书。
(2)混合 ‘X.509 CA 层次结构’ 和 ‘PGP 可信 Web’ 进行管理。
(3)每个客户有 CA 颁发的证书列表、自己的公私钥对、公钥证书。
(4)公钥证书必须经过 CA 签名。 - 增强安全性的服务
(1)签收:对签名数据对象要求进行签收。
(2)安全标签:在签名数据对象的认证属性中可以包含安全标签。
(3)安全邮寄列表:当用户向多个接收方发送消息时,需要进行与每个接收方相关的处理,包括使用各接收方的公钥。 - 与 PGP 的对比
(1)公钥可信度:
在 S/MIME 中,CA 签名和颁发公钥,并验证各方可信度。
而 PGP 由发件人自己创建签署密钥对。这意味着 PGP 没有权威可信中心,只能用户自己去决定信任问题。
(2)加密保护的范围:
PGP 解决纯文本,S/MIME 更旨在保护各种附件。
(3)集中化管理:
从管理角度来看,S/MIME 被认为优于 PGP,因为它支持通过 X.509 CA 进行集中式密钥管理。
(4)兼容性和易用性:
S/MIME 具备更广泛的行业支持。
DKIM(Domain Keys Identified Mail)
DKIM(域名密钥识别邮件)是一个电子邮件信息密码签名规范。
域名指地址中“@”符号之后的部分,可能会被冒充。
接收方直接查询签名者的域,获得适当公钥确定发送方身份,从而验证签名。
下方直接贴原文了。全是鸟语加车轱辘话。
工作机制:
- DKIM 有两个主要方面
DKIM 记录:存储在域的 Domain Name System (DNS) 记录中
DKIM 标头:附加在所有来自该域的电子邮件中 - DKIM 使用基于公钥密码的数字签名验证电子邮件的来源,证实邮件确实来自于从该域发送电子邮件的服务器。
- DKIM使用一对加密密钥:发件人用于签署邮件的私钥和接收者用于验证签名的公钥。
- 电子邮件提供商生成公钥和私钥。他们将公钥交给域名所有者,后者将公钥存储在一个公开的DNS 记录中,即 DKIM 记录(实际上是 DNS TXT<“文本”>记录)。
- 所有从该域名发送的电子邮件都包含一个 DKIM 标头,其中包含一段使用私钥生成的数字签名。电子邮件服务器可以查看 DKIM DNS 记录从而获得公钥,并使用公钥来验证数字签名。
相关文章:
网络与协议安全复习 - 电子邮件安全
文章目录 PGP(Pretty Good Privacy)功能 S/MIME(Secure/Multipurpose Internet Mail Extensions)DKIM(Domain Keys Identified Mail) PGP(Pretty Good Privacy) 使用符号: Ks:会话密钥、KRa:A 的私钥、KUa:A 的公钥、EPÿ…...
Python里的序列化是什么?
在Python中,序列化(serialization)是一个过程,它可以将数据结构或对象状态转换为可以存储或传输的形式。通常,这意味着将数据结构或对象转换为字节流,以便可以将其写入文件、发送到网络,或用于其…...
自动抓取服务器功耗
以下脚本为linux系统内通过ipmitool工具自动抓取服务器当前功耗,每隔5分钟抓取一次,累计抓取20次 脚本如下: #!/bin/bashcurrent_dirpwd node_list${current_dir}/nodelistbmc #BMC IP usernameAdministrator #BMC用…...
服务器接收苹果订阅通知
我们的服务器需要提供一个URL来接收苹果的通知,要使用HTTPS。 苹果会对这个URL发送HTTP POST请求,body是JSON格式,包含了通知的内容。 我们服务器处理成功后,应向苹果返回HTTP 200。若出现问题,需要苹果重新发送通知…...
2024年旅游与经济发展国际会议(ICTED 2024)
2024年旅游与经济发展国际会议(ICTED 2024) 2024 International Conference on Tourism and Economic Development 【重要信息】 大会地点:青岛 大会官网:http://www.icicted.com 投稿邮箱:icictedsub-conf.com 【注意…...
【NLP练习】Transformer实战-单词预测
🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 任务:自定义输入一段英文文本进行预测 一、定义模型 from tempfile import TemporaryDirectory from typing import Tuple from torch import nn…...
使用Lua脚本保证原子性的Redis分布式锁实现
这是原来的代码: Override public void unlock() {// 获取线程标示String threadId ID_PREFIX Thread.currentThread().getId();// 判断标示是否一致String id stringRedisTemplate.opsForValue().get(KEY_PREFIX name);if (threadId.equals(id)) {// 释放锁st…...
什么是nginx到底怎么配置,什么是网关到底怎么配置?
那使用upstream里面具体哪个服务器是怎么决定和区分的呢? AI生成 在Nginx中,使用upstream里面具体哪个服务器是通过负载均衡算法来决定的。upstream块定义了一组服务器,Nginx会根据配置的负载均衡算法来选择一个服务器来处理当前的请求。常见的负载均衡算法包括轮询(round-…...
轻量级服务器内存不够编译的情况解决方案(以安装Ta-Lib库为例)
安装 TA-Lib 时遇到的问题通常与系统缺少必要的编译依赖项或者内存不足有关。以下是一些解决步骤,你可以按照这些步骤尝试解决问题: 问题描述:编译安装Tal-ib库出现以下问题: root@tianbaobao12:~/shipan/ta-lib# pip install ta-lib Collecting ta-libUsing cached TA-L…...
学校校园考场电子钟,同步授时,助力考场公平公正-讯鹏科技
随着教育技术的不断发展,学校对于考场管理的需求也日益提高。传统的考场时钟往往存在时间误差、维护不便等问题,这在一定程度上影响了考试的公平性和公正性。为了解决这些问题,越来越多的学校开始引入考场电子钟,通过同步授时技术…...
MySQL存储管理(一):删数据
从表中删除数据 从表中删除数据,也即是delete过程。 什么是表空间 表空间可以看做是InnoDB存储引擎逻辑结构的最高层,所有的数据都存放在表空间中。默认情况下,InnoDB存储引擎有一个共享表空间idbdata1,即所有数据都存放在这个表…...
深度剖析现阶段的多模态大模型做不了医疗
导读 在人工智能的这波浪潮中,以ChatGPT为首的大语言模型(LLM)不仅在自然语言处理(NLP)领域掀起了一场技术革命,更是在计算机视觉(CV)乃至多模态领域展现出了令人瞩目的潜力。 这些…...
Zabbix 监控 Kubernetes 集群
Zabbix 监控 Kubernetes 集群 Zabbix作为一个成熟且功能强大的监控系统,被许多企业广泛采用。它能够对各种IT基础设施进行全面的监控,包括服务器、网络设备、应用程序等。而将Zabbix与Kubernetes结合,可以实现对Kubernetes集群的全面监控&am…...
网上预约就医取号系统
摘 要 近年来,随着信息技术的发展和普及,我国医疗信息产业快速发展,各大医院陆续推出自己的信息系统来实现医疗服务的现代化转型。不可否认,对一些大型三级医院来说,其信息服务质量还是广泛被大众所认可的。这就更需要…...
概念描述——TCP/IP模型中的两个重要分界线
TCP/IP模型中的两个重要分界线 协议的层次概念包含了两个也许不太明显的分界线,一个是协议地址分界线,区分出高层与低层寻址操作;另一个是操作系统分界线,它把系统与应用程序区分开来。 高层协议地址界限 当我们看到TCP/P软件的…...
ECharts,拿来吧你!
作为一名前端程序员,在日常的项目开发中,我们会遇到各种各样的图表设计,那么,为了提高我们的开发效率,ECharts便应运而生了!它提供了丰富的图表样式和多浏览器支持的API接口,不仅能够将静态的数据转换为图表,还可以动态的请求后端传递过来的数据,将其以可视化的形式展现给用户,…...
【DICOM】BitsAllocated字段值为8和16时区别
一、读取dicom C# 使用fo-dicom操作dicom文件-CSDN博客 二、DICOM中BitsAllocated字段值为8和16时区别 位深度差异: 当BitsAllocated为8时,意味着每个像素使用8位来表示其灰度值。这允许每个像素有2^8256种不同的灰度等级,适用于那些不需要高…...
【MySQL】 -- 事务
如果对表中的数据进行CRUD操作时,不加控制,会带来一些问题。 比如下面这种场景: 有一个tickets表,这个数据库被两个客户端机器A和B用时连接对此表进行操作。客户端A检查tickets表中还有一张票的时候,将票出售了&#x…...
c#调用c++生成的dll,c++端使用opencv, c#端使用OpenCvSharp, 返回一张图像
c代码: // OpenCVImageLibrary.cpp #include <opencv2/opencv.hpp> #include <vector> extern "C" { __declspec(dllexport) unsigned char* ReadImageToBGR(const char* filePath, int* width, int* height, int* step) { cv::Mat i…...
【Android面试八股文】你能说一说View绘制流程与自定义View注意点吗?
文章目录 一、自定义View的构造函数以及各参数的用法二、自定义View的几种方式三、自定义View的绘制流程四、自定义View需要注意的一些点五、举个例子一、自定义View的构造函数以及各参数的用法 在Android中,自定义View通常需要提供多个构造函数,以适应不同的使用场景。主要…...
【第24章】Vue实战篇之用户信息展示
文章目录 前言一、准备1. 获取用户信息2. 存储用户信息3. 加载用户信息 二、用户信息1.昵称2.头像 三、展示总结 前言 这里我们来展示用户昵称和头像。 一、准备 1. 获取用户信息 export const userInfoService ()>{return request.get(/user/info) }2. 存储用户信息 i…...
“打造智能售货机系统,基于ruoyi微服务版本生成基础代码“
目录 # 开篇 1. 菜单 2. 字典配置 3. 表配置 3.1 导入表 3.2 区域管理 3.3 合作商管理 3.4 点位管理 4. 代码导入 4.1 后端代码生成 4.2 前端代码生成 5. 数据库代码执行 6. 点位管理菜单顺序修改 7. 页面展示 8. 附加设备表 8.1 新增设备管理菜单 8.2 创建字…...
oracle12c到19c adg搭建(五)dg搭建后进行切换19c进行数据字典升级
一、备库切主库升级 12c切换为19c主库的时候是由低版本到高版本所以cdb和pdb的数据字典需要进行升级才可以让数据与软件版本兼容。 1.1切换 SQL> alter database recover managed standby database finish; Database altered. SQL> alter database commit to switcho…...
在公司的一些笔记
6.19 记住挂载在windows上的账户是DAHUATECH\401593,不是401593Windows与linux不能同时挂载在虚拟盘上 6.21 /******************************************************************************* pdc_ledSy7806e.c* * Description: 提供I2C访问sy7806e。 * * …...
2020C++等级考试二级真题题解
202012数组指定部分逆序重放c #include <iostream> using namespace std; int main() {int a[110];int n, k;cin >> n >> k;for (int i 0; i < n; i) {cin >> a[i];}for (int i 0; i < k / 2; i) {swap(a[i], a[k - 1 - i]);}for (int i 0…...
面试官:聊聊 nextTick
前言 在最近的面试中,不少面试官叫我聊聊 nextTick,nextTick 是个啥,这篇文章咱来好好聊聊! 我的回答 nextTick 是官方提供的一个异步方法,用于在 DOM 更新之后执行回调。正好在我的项目中用到了,就拿它来形容一下,大概的场景是渲染一个列表,每次点击按钮就会往列表后…...
shell编程之条件语句(shell脚本)
条件测试操作 要使shell脚本程序具备一定的“智能”,面临的第一个问题就是如何区分不同的情况以确定执行何种操作。例如,当磁盘使用率超过95%时,发送告警信息;当备份目录不存在时,能够自动创建;当源码编译程序时,若配置失败则不再继续安装等。 shell环境根据命令执行后…...
QT中QSettings的使用系列之二:保存和恢复应用程序主窗口
1、核心代码 #include "widget.h" #include "ui_widget.h" #include <QSettings> #include <QDebug> #include <QColo...
Linux系统上安装Miniconda并安装特定版本的Python
要在Linux系统上安装Miniconda并安装特定版本的Python(例如3.10.12),请按照以下步骤进行操作: 1. 下载并安装Miniconda 下载Miniconda安装脚本: 使用wget或curl下载Miniconda安装脚本。以下是使用wget的命令ÿ…...
解决Qt中 -lGL无法找到的问题
在使用Qt Creator创建并编译新项目时,可能会遇到以下错误: /usr/bin/ld: cannot find -lGL collect2: error: ld returned 1 exit status make: *** [untitled1] Error 1 18:07:41: The process "/usr/bin/make" exited with code 2. Error w…...
建立网站赚钱吗/最新病毒感染
组件就是创建html中不存在的标签。...
定制网站建设设计公司/seo系统培训班
什么是箱型图 箱形图(Box-plot)又称为盒须图、盒式图或箱线图,是一种用作显示一组数据分散情况资料的统计图。因形状如箱子而得名。在各种领域也经常被使用,常见于品质管理。(来源:百度百科【箱型图】词条&…...
外贸独立网站怎么做/在线搜索资源
一、索引的种类 mysql索引主要分为两大类:单列索引、组合索引 单列索引: 一个索引只包含一个列,一个表可以有多个单列索引。 其中单列索引又可以分为:主键索引、唯一索引、普通索引 普通索引: 最基本的索引࿰…...
石家庄网站托管/简单网页制作模板
大家都知道ArrayList底层就是一个可变的数组,所以我在这里使用课表数组简易的写一个MyArrayListpackage com.zzq.me;public class MyArrayList<T> {private Object [] value;private int size;public MyArrayList () {this(10);}public MyArrayList (int capa…...
做金融的看哪些网站/百度免费安装
镜像服务概览 OpenStack镜像服务包括以下组件: glance-api接收镜像API的调用,诸如镜像发现、恢复、存储。 glance-registry存储、处理和恢复镜像的元数据,元数据包括项诸如大小和类型。 数据库存放镜像元数据,用户是可以依据个人…...
青岛地产网站建设/内容营销的4个主要方式
游戏运行库大全 游戏运行环境 所有游戏组件 32位 64位系统常用运行库合集 3DM游戏常用运行库安装包 下载 本安装包集成32位和64位运行库,是目前互联网上最新最全的常用运行库合集,能自动识别系统版本以提供适合您的组件,无人值守自动安装。总…...