CISSP学习笔记:PKI和密码学应用
第七章 PKI和密码学应用
7.1 非对称密码学
- 对称密码系统具有共享的秘钥系统,从而产生了安全秘钥分发的问题
- 非对称密码学使用公钥和私钥对,无需支出复杂密码分发系统
7.1.1 公钥与私钥
7.1.2 RSA(兼具加密和数字签名)
- RSA算法依赖于大质数在因素分解时固有的计算难度
7.1.3 EI Gamal
- EI Gamal优点: 公开发布,使用免费(扩展了Diffie-Hellman秘钥交换协议,支持消息的加解密)
- 缺点:算法加密的任何消息的长度都加倍
7.1.4 椭圆曲线密码系统(ECC)
- 1088位的RSA秘钥相当于160位的椭圆曲线密码系统的秘钥强度
7.2 散列函数
- 散列函数的用途: 产生消息摘要
- 散列函数的基本要求:
- 输入值可以是任意长度
- 输出值具有固定长度
- 散列函数在计算任何输入值要相对容易
- 散列函数是单向的
- 散列函数是不会发生冲突的
7.2.1 SHA
- SHA-1不安全,SHA-2理论上不安全
7.2.2 MD2
- 非单向函数,已不再使用
7.2.3 MD4
- MD4存在消息摘要冲突,不是安全的散列算法
7.2.4 MD5
- 512位的消息分组,消息摘要128位
- 散列函数以及生成函数值的长度

7.3 数字签名
- 数字签名的目标
- 可以向接收方保证、消息确实来自自己申明的发送者,且实施了不可否认性
- 向接收方保证:消息在传输过程中没有改变
- 消息签名本身不提供隐私保护,只满足加密目标中的完整性和不可否认性
7.3.1 HMAC 基于散列的消息身份认证代码
- 实现了部分数字签名功能,保证了消息传输过程的完整性、但不提供不可否认性
- HMAC依赖一个共享的秘钥,所以不提供不可否认性
7.3.2 数字签名标准
- DSS标准加密算法
- 数字签名算法(DSA)
- RSA算法(既能数字签名又能加密!)
- 椭圆曲线数字签名算法(ECDSA)
7.4 公钥基础设施(PKI)
- 公钥加密主要优点是原本不认识的双方之间的通信变得很容易,受信任的公钥基础设施层次使这一点称为可能
7.4.1 证书
- 数字证书为通信双方提供了保证,保证在与之通信的人确实具有他们所宣称的身份
7.4.2 证书授权机构
- 证书授权机构(CA)将基础设施绑定在一起,中立的组织机构为数字证书提供公证服务
7.4.3 证书的生成与撤销
- 注册
- 采取某种方式向证书授权机构证明身份的过程被称为注册
- 验证
- 通过CA的公钥检查CA的数字签名来验证证书,接着检查证书没在CRL(证书撤销列表)
- 撤销
- 证书撤销原因:证书遭到破坏、证书被错误的发放、证书的细节发生变化、安全性关联发生变化
- 证书撤销的技术:
- 证书撤销列表:缺点是必须顶起下载并交叉参照,证书的撤销和通知用户撤销之间存在时间延迟
- 联机证书状态协议:解决认证撤销列表的固有延迟
7.4.4 非对称秘钥的管理
- 选择加密系统
- 选择秘钥
- 使用公钥加密时,一定要保证私钥的机密性
- 秘钥在服务一段时期后应当停止使用
- 秘钥备份
7.5 密码学的应用
7.5.1 便携式设备
- 目前主流操作系统都包括磁盘加密功能、商业工具提供额外的功能和管理能力
7.5.2 电子邮件
- 电子邮件规则
- 邮件机密性,加密邮件
- 邮件完整性,进行散列运算
- 邮件身份认证和完整性,进行数字化签名
- 邮件机密性、完整性、身份认证和不可否认性,对邮件加密和数字化签名
- 电子邮件标准
- 可靠隐私(PGP)商业版RSA、IDEA加密协议,使用MD5生成消息摘要;免费版使用Diff-Hellman秘钥交换,CAST128位的加密/解密算法以及SHA-1散列函数
- S/MIME(安全多用途互联网邮件扩展协议):依靠X.509证书交换密码系统秘钥,这一支持AES、3DES和RSA
7.5.3 Web应用
- SSL协议,SSL的目标是建立安全的通信通道
- POODLE攻击(贵宾犬攻击)的攻击表明在TLS的SSL 3.0反馈机制中存在重大缺陷,很多机构放弃对SSL的支持,依靠TLS的安全性。
- 隐写术和水印
- 隐写术:使用密码学技术在另一条消息内嵌入秘密消息的方法
- 水印:检测拷贝并且跟踪拷贝来源
7.5.4 数字版权管理(DRM)
- 音乐、电影、电子书、视频游戏、文档
7.5.5 网络连接
- 链路加密
- 链路加密使用软件或硬件解决在两个点之间建立一条安全隧道
- 端到端加密有终于保护双方之间的通信安全,并且可以独立于链路加密实施
- 链路加密和端到端的加密区别:链路加密中,所有的数据都会被加密,下一条重新解密然后加密,降低了路由速度,端到端的加密不加密头、尾、地址和路由数据,容易被嗅探和偷听者攻击
- SSH是一个端到端的加密
- IPSec(Internet密钥交换(IKE)解决了在不安全的网络环境(如Internet)中安全地建立或更新共享密钥的问题。)
- IPSec通过公钥密码学提供加密、访问控制、不可否认性以及消息身份认证,并且一般使用IP协议
- IPSec组件:
- 身份验证头(AH),提供完整性和不可否认性的保证、提供身份认证和访问控制,并可以防止重放攻击
- 安全封装有效载荷(ESP) 提供数据包内容的机密性和完整性,提供有限的身份认证,防止重放攻击
- IPSec两种操作模式:
- 运输模式:只有数据包有效载荷被加密,为对等通信设计
- 隧道模式:整个数据包都会被加密,为网关间通信设计
- ISAKMP(网络安全关联秘钥管理协议)
- 通过协商、建立、修改和删除安全关联为IPSec提供后台的安全支持服务
- ISAKMP基本要求:
- 对通信对等进行身份关联
- 建立并管理安全关联
- 提供秘钥生成机制
- 防止遭受威胁
- 无线互联
- 有限等价隐私(WEP)
- WiFi安全访问:通过TKIP(临时秘钥完整协议)消除危害WEP的密码学弱点(客户端到无线接入点)
7.6 密码学攻击
- 分析攻击:试图降低算法复杂性的代数运算,关注算法本身的逻辑
- 实现攻击:利用密码学系统的实现中的弱点,涉及错误与权限,编写加密系统程序所使用的方法
- 统计攻击:试图发现驻留密码学应用程序的硬件或操作系统中的漏洞
- 蛮力攻击:尝试有可能的、有效的秘钥或密码组合,彩虹表和转为蛮力涉及和开发的专业化、可扩展的硬件
- 频率分析和仅知密文攻击:拥有加密后的密文信息,即仅知密文攻击;频率分析就是一种已证明可行的对抗简单密码的技术
- 已知明文攻击:攻击者具有已加密消息的副本以及用以产生密文的明文消息
- 选定密文攻击:攻击者能够解密所选的部分密文信息,并且可以使用已解密的部分消息来发现秘钥
- 选定明文攻击:攻击者能够加密所选的明文信息,可以分析加密算法输出的密文
- 中间相遇攻击:针对使用两轮加密的算法
- 中间人攻击:怀有恶意的人置身于通信双方之间的位置并截获所有的通信
- 生日攻击:冲突攻击或逆向散列匹配,寻找散列函数一一对应特性中的缺陷,基于两个不同的消息使用相同的散列函数产生共同的消息摘要的概率
- 重放攻击:拦截通信双方的加密消息,重放捕捉的信息以打开新的会话
相关文章:
CISSP学习笔记:PKI和密码学应用
第七章 PKI和密码学应用 7.1 非对称密码学 对称密码系统具有共享的秘钥系统,从而产生了安全秘钥分发的问题非对称密码学使用公钥和私钥对,无需支出复杂密码分发系统 7.1.1 公钥与私钥 7.1.2 RSA(兼具加密和数字签名) RSA算法…...
简述Java21新特性
Java21新特性 你发任你发我用Java8 不管Java更新了多少版本,我还是用Java8,因为在很多框架不知道支持不支持Java21,而且因为很多Jar包的版本冲突问题,所以我还是用Java8,但是对于新技术的了解是非常必要的。 Java 21是新推出的长…...
Composition API(常用部分)
1. Composition API(常用部分) 文档: https://composition-api.vuejs.org/zh/api.html 1) setup 新的option, 所有的组合API函数都在此使用, 只在初始化时执行一次函数如果返回对象, 对象中的属性或方法, 模板中可以直接使用2) ref 作用: 定义一个数据的响应式语法: cons…...
驱动插入中断门示例代码
驱动插入中断描述符示例代码 最近做实验,每次在应用层代码写测试代码的时候都要手动挂一个中断描述符,很不方便所以就想着写个驱动挂一个中断门比较省事 驱动测试效果如下: 下面的代码是个架子,用的时候找个驱动历程传递你要插…...
1 论文笔记:Efficient Trajectory Similarity Computation with ContrastiveLearning
2022CIKM 1 intro 1.1 背景 轨迹相似度计算是轨迹分析任务(相似子轨迹搜索、轨迹预测和轨迹聚类)最基础的组件之一现有的关于轨迹相似度计算的研究主要可以分为两大类: 传统方法 DTW、EDR、EDwP等二次计算复杂度O(n^2)缺乏稳健性 会受到非…...
如何做一个基于 Python 的搜索引擎?
怎么做一个基于 python 的搜索引擎? 1、确定搜索引擎范围和目标用户 在决定做一个基于Python的搜索引擎之前,首先需要确定搜索引擎的范围和目标用户。搜索引擎的范围可以包括新闻、商品、音乐等,不同的领域需要不同的数据来源和处理方式。同…...
Python报错:KeyError: ‘820‘
Python报错:KeyError: ‘820’ 问题描述 原因 操作的表格列名是数字 NIRdata[820] Rdata[630]以上是出错行,dataframe的这种索引方式不支持用数字。 解决方案 先修改列名为字符 然后将出错行改为对应列名 NIRdata[nir] Rdata[r]...
【kubernetes】kubernetes中的Deployment使用
1 Why need Deployment? K8S中Pod是用户管理工作负载的基本单位,Pod通常通过Service进行暴露,因此,通常需要管理一组Pod,RC和RS主要就实现了一组Pod的管理工作,其中,RC和RS的区别在于,RS提供更…...
百度2024校招机器学习、数据挖掘、自然语言处理方向面试经历
本文介绍2024届秋招中,百度的机器学习/数据挖掘/自然语言处理工程师岗位一面的面试基本情况、提问问题、代码题目等。 8月初参与了百度提前批的机器学习/数据挖掘/自然语言处理工程师岗位面试,所在部门是搜索方向的。一面结束之后就知道凉了,…...
RabbitMQ原理(二):SpringAMQP编程
文章目录 3.SpringAMQP3.1.导入Demo工程3.2.快速入门3.1.1.消息发送3.1.2.消息接收3.1.3.测试3.3.WorkQueues模型3.3.1.消息发送3.3.2.消息接收3.3.3.测试3.3.4.能者多劳3.3.5.总结3.4.交换机类型3.5.Fanout交换机3.5.1.声明队列和交换机3.5.2.消息发送3.5.3.消息接收3.5.4.总结…...
什么是SQL注入(SQL Injection)?如何预防它
什么是 SQL 注入(SQL Injection)?如何预防它? SQL注入(SQL Injection)是一种常见的网络安全漏洞,攻击者通过在应用程序的输入中插入恶意SQL代码来执行未经授权的数据库操作。SQL注入攻击可能导…...
metrology
创建模型:create_metrology_model 设置图像大小:set_metrology_model_image_size 添加测量模型:add_metrology_object_rectangle2_measure 设置对象参数:set_metrology_object_param 设置模型参数:set_metrology_model…...
UE学习记录06----根据Actor大小自适应相机位置
背景: staticMesh 会根据业务需要随时变化,然后通过staticMesh的大小自适应相机位置,捕捉画面用来预览该模型,使模型在画布中不会太大导致显示不全,也不会太小 参考: UE实现相机聚焦物体功能_右弦GISer的…...
Go-Python-Java-C-LeetCode高分解法-第八周合集
前言 本题解Go语言部分基于 LeetCode-Go 其他部分基于本人实践学习 个人题解GitHub连接:LeetCode-Go-Python-Java-C 欢迎订阅CSDN专栏,每日一题,和博主一起进步 LeetCode专栏 本文部分内容来自网上搜集与个人实践。如果任何信息存在错误,欢迎…...
数据结构--并查集
一、并查集的概念 并查集是一种树型的数据结构,用于处理一些不相交集合(disjoint sets)的合并及查询问题。常常在使用中以森林来表示。 最裸并查集: 合并元素a和元素b 所在的集合。查询元素a和元素b 是否属于同一组。是否在一个…...
Leetcode 224. 基本计算器
文章目录 题目代码(10.1 首刷看解析) 题目 Leetcode 224. 基本计算器 代码(10.1 首刷看解析) class Solution { public:int calculate(string s) {stack<int> sk; // 存储正负号sk.push(1);int sign 1;int res 0;int i…...
Linux基础命令汇总
用户管理 su 切换用户:su 用户名 logname 显示当前用户的登录用户名:logname useradd 创建用户:useradd 用户名创建用户时指定用户的主组:useradd -g 组名 用户名 usermod 添加附属组:usermod -G 组…...
JAVA 获得特定格式时间
0 背景 我们有时要获取时间,年月日时分秒周几,有时要以特定的格式出现。这时就要借助 SimpleDateFormat 或者 DateTimeFormatter。有时要某个月份有多少天需要借助 Calendar。所以有必要了解一些知识。 1 SimpleDateFormat simpledateFormat 线程不安全…...
问题: 视频颜色问题,偏绿
参考 什么是杜比视界? - https://www.youtube.com/watch?vldXDQ6VlC7g 【哈士亓说】07:HDR、杜比视界究竟是个啥?为什么这个视频还不是HDR视频? - https://www.youtube.com/watch?vrgb9Xg3cJns 正文 视频应该是 杜比视界 电…...
智能文字识别技术——AI赋能古彝文保护
前言 人工智能在古彝文古籍保护方面具有巨大的潜力和意义。通过数字化、自动化和智能化的手段,可以更好地保护和传承古彝文的文化遗产,促进彝族文化的传承和发展。 文章目录 前言一、古彝文是什么?1.1古彝文的背景1.2古彝文古籍保护背景 二、…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
视频字幕质量评估的大规模细粒度基准
大家读完觉得有帮助记得关注和点赞!!! 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用,因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型(VLMs)在字幕生成方面…...
从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
Python如何给视频添加音频和字幕
在Python中,给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加,包括必要的代码示例和详细解释。 环境准备 在开始之前,需要安装以下Python库:…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
