当前位置: 首页 > news >正文

网络信息传输安全

目录

机密性-加密

对称加密

非对称加密

身份认证

摘要算法和数据完整性

数字签名 签名验签

数字证书

申请数字证书所需信息

数字证书的生成

数字证书的应用 https协议

数字证书的申请


数据在网络中传输过程中,怎么做到

  1. 数据没有被篡改?hash算法
  2. 信息发送者的身份认证?用发送者的私钥对数据进行加密,接收者只能用发送者的公钥进行解密。发送者的公钥怎么给到接收者?如果还是用网络进行传输,无法保证公钥本身的传输安全啊?比如,A用RSA算法生成了自己的一对公钥、私钥,A把信件的内容用hash算法生成摘要,用私钥加密摘要信息形成数字签名,在网络上发送信件的时候,A的公钥,信件本身,数字签名三者会在网络上进行传输,黑客可以截获到这些信息,黑客用新生成的一对公钥,私钥,重新生成数字签名,给到接收者,接收者收到的就是黑客篡改过的内容了
  3. 怎么确保信息发送者的身份没有被截获篡改?用数字证书证明发送者的身份。数字证书由发送者向权威机构申请,包含了身份信息(发送者的公钥)。
  4. 怎么保证数字证书的安全?数字证书是经过ca机构数字签名的,ca机构也生成一对公钥、私钥,用私钥对发送者的公钥及一些信息进行数字签名,放入数字证书当中,此时数字证书就相当于发送者的身份信息、公钥和数字签名的组合,在个人的电脑或手机里安装根证书,根证书中记录了可以信赖的ca机构和其对应的公钥,就可以用公钥去验证数字证书的内容,从而确认发送者的公钥是自己的。

机密性-加密

对称加密

AES加密算法,密钥长度128、192或256,安全强度很高,性能很好 

加密分组模式:将明文分组加密,微信支付中使用 AEAD_AES_256_GCM

非对称加密

 使用公钥加密后只能用私钥解密,反过来,私钥加密后也只能用公钥解密 

RSA加密算法:最著名的非对称加密算法

身份认证

公钥加密私钥解密,可以确保数据的机密性

私钥加密公钥解密,可以进行身份的认证

摘要算法和数据完整性

hash值一直表示文件内容没有被篡改过

常见的摘要算法:md5、sha1、sha2(sha224、sha256、sha384)

数字签名 签名验签

  1. A要发邮件给B,A把自己的信件内容用摘要算法,生成摘要
  2. A用自己的私钥加密摘要,形成一份签名,追加到信件中
  3. B收到信件,先把信件的内容用相同的hash算法,生成摘要1
  4. B把信件中的签名,用A的公钥加密,生成摘要2
  5. 比对两份摘要,如果一致,可以说明信件没有被篡改过,并且是A发的信件

B怎么拿到的A的公钥?如果也是通过网络进行传输,又可能被黑客截取篡改,怎么办?

数字证书

公钥信任问题,黑客可能伪造公钥,这个怎么办呢?把公钥放到数字证书中,数字证书需要向有社会公信力的CA机构进行申请,申请时需要提供身份信息

申请数字证书所需信息

数字证书的生成

  1. A向ca机构申请数字证书,填入相关的身份信息和A的公钥
  2. ca机构把A的公钥和身份信息hash运算后,用自己生成的私钥加密形成数字签名
  3. 把生成的数字签名追加到数字证书中颁布给A

  1. bob发送的信件,包含数字证书、数字签名和内容
  2. pat拿到信件,用自己本地安装的ca机构的公钥解密数字证书,获取bob用自己的公钥和身份信息生成的hash值,用相同的hash算法也生成hash值,比对,如果一致证明公钥是bob的
  3. 用拿到的bob的公钥再去解密信件内容,剩下的步骤就和上面的一样了

数字证书的应用 https协议

网站想要使用https

数字证书的申请

  免费的数字证书申请可访问Let's Encrypt

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 1.《DevOps》系列K8S部署CICD流水线之部署K8S集群~version1.28.2
  • Qt_事件的介绍
  • C语言中的typedef简介
  • 达梦-华为鲲鹏ARM架构下性能测试最佳实践
  • 【字符串】介绍
  • 『功能项目』事件中心处理怪物死亡【55】
  • MyBatis 源码解析:Mapper 文件加载与解析
  • Redis学习以及SpringBoot集成使用Redis
  • 使用 Internet 共享 (ICS) 方式分配ip
  • 【JS】forEach中push为何不会陷入死循环,稀疏数组空元素为何不会被遍历
  • linux-vim的使用
  • 关于区块链的安全和隐私
  • Linux 开发工具(vim、gcc/g++、make/Makefile)+【小程序:进度条】-- 详解
  • java核心基础
  • Java流程控制语句——条件控制语句详解(附有流程图)#Java条件控制语句有哪些?#if-else、switch
  • 0x05 Python数据分析,Anaconda八斩刀
  • 3.7、@ResponseBody 和 @RestController
  • Android系统模拟器绘制实现概述
  • angular2开源库收集
  • Apache的80端口被占用以及访问时报错403
  • css的样式优先级
  • happypack两次报错的问题
  • iOS | NSProxy
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • JavaScript设计模式与开发实践系列之策略模式
  • JavaWeb(学习笔记二)
  • JSDuck 与 AngularJS 融合技巧
  • js对象的深浅拷贝
  • SQLServer之索引简介
  • Terraform入门 - 1. 安装Terraform
  • win10下安装mysql5.7
  • WinRAR存在严重的安全漏洞影响5亿用户
  • Yeoman_Bower_Grunt
  • 从重复到重用
  • 大主子表关联的性能优化方法
  • 对JS继承的一点思考
  • 猴子数据域名防封接口降低小说被封的风险
  • 警报:线上事故之CountDownLatch的威力
  • 快速构建spring-cloud+sleuth+rabbit+ zipkin+es+kibana+grafana日志跟踪平台
  • 聊聊redis的数据结构的应用
  • 判断客户端类型,Android,iOS,PC
  • 使用 5W1H 写出高可读的 Git Commit Message
  • 学习HTTP相关知识笔记
  • 与 ConTeXt MkIV 官方文档的接驳
  • 进程与线程(三)——进程/线程间通信
  • ​ubuntu下安装kvm虚拟机
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • $(function(){})与(function($){....})(jQuery)的区别
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (Java入门)抽象类,接口,内部类
  • (void) (_x == _y)的作用
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (二)换源+apt-get基础配置+搜狗拼音
  • (论文阅读40-45)图像描述1