在线支付系列【5】支付安全之数字证书

news2024/9/17 9:08:53

有道无术,术尚可求,有术无道,止于术。

文章目录

    • 公钥信任问题
    • 数字证书
      • 颁发流程
      • 使用流程
    • SSL数字证书
      • HTTPS
      • SSL/TLS 证书
      • 如何申请SSL 证书
      • 使用keytool 生成ssl证书
      • 通信过程

公钥信任问题

之前我们使用对称、非对称加密、信息摘要、数字签名,能实现信息的完整性、加密性。但也存在安全问题。

比如A、B进行通信时,A需要将自己的公钥给对方,以便加密,如果被黑客拦截,并将黑客自己的公钥伪装为A的公钥发送给B,B收到黑客的秘钥后,误以为就是A的公钥,使用黑客的公钥加密数据发送,黑客再次拦截B发送的信息,用黑客的秘钥解密,读取原文内容,再使用A的公钥加密,发送给A。

在这里插入图片描述

同样B 发送给A 公钥时,也被拦截,这样黑客都有A、B的公钥,A、B获取的都是黑客的公钥,在通信时,都可以被黑客截取并获取内容,这样是非常不安全的。
在这里插入图片描述
以上问题是由于无法知道公钥可否可信任导致,如果第三方公证机构,对公钥进行公证,发送信息前,去机构查询当前公钥的拥有者及其他信息,则可解决这些问题。

数字证书

数字证书是由认证机构(认证权威)颁发,包含公开密钥拥有者信息、公开密钥、签发者信息、有效期以及一些扩展信息的数字文件。

数字证书解决公钥的信任问题,防止黑客伪造公钥。

在这里插入图片描述
数字证书的格式普遍采用的是X.509V3国际标准,一个标准的X.509数字证书包含以下一些内容:

  • 证书的版本信息;
  • 证书的序列号,每个证书都有一个唯一的证书序列号
  • 证书所使用的签名算法
  • 证书的发行机构名称,命名规则一般采用X.500格式
  • 证书的有效期,通用的证书—般采用UTC时间格式
  • 证书所有人的名称,命名规则一般采用X.500格式
  • 证书所有人的公开密钥
  • 证书发行者对证书的签名

颁发流程

数字证书的颁发流程如下:

  1. 数字证书申请人将申请数字证书所需的数字证书内容信息提供给认证机构
  2. 认证机构确认申请人所提交信息的正确性,这些信息将包含在数字证书中
  3. 由持有认证机构私钥的签证设备给数字证书加上数字签名
  4. 将数字证书的一个副本传送给用户
  5. 将数字证书的一个副本传送到数字证书数据库如目录服务,以便公布
    在这里插入图片描述

使用流程

数字证书中,最重要的是拥有者的公钥和CA 添加的数字签名

使用数字证书的发送信息校验流程如下:

  1. 小明发送加密信息并携带CA 机构颁发的数字证书
  2. 小红收到后,去CA机构查询当前证书是否可信
  3. 证书可信,使用CA机构公开的公钥,对证书进行验签
  4. 验签通过,说明改证书未被篡改
  5. 取出小明的公钥,对小明发送的信息进行验签
  6. 验签通过,说明小明发送的信息可信
    在这里插入图片描述

SSL数字证书

HTTPS

HTTP协议英文全称是Hyper Text Transfer Protocol,翻译为超文本传输协议。

HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。提供身份验证与加密通讯。

HTTPS协议= HTTP协议 + SSL/TLS协议 ,在HTTPS数据传输的过程中,需要用SSL/TLS对数据进行加密和解密。
在这里插入图片描述
当用户通过HTTP协议访问网站时,客户端与服务器之间传输的数据,如账号、密码、在线交易记录等敏感信息都是明文的,这样就会存在诸如信息泄露、窃取、篡改等安全隐患。而在使用HTTPS协议进行访问网站,客户端与服务器之间建立起SSL加密通道,并给网站加上一把安全锁,从而防止敏感数据被窃听、泄露或篡改,保证网络数据传输的安全,确保通信数据的保密性和完整性。

SSL/TLS 证书

SSL证书数字证书的一种,全称是Secure Sockets Layer,即安全套接层协议,是为网络通信提供安全及数据完整性的一种安全协议。SSL协议在1994年被Netscape发明,后来各个浏览器均支持SSL,其最新的版本是3.0。

TLS的全称是Transport Layer Security,即安全传输层协议,建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。在TLSSSL3.0之间存在着显著的差别,主要是它们所支持的加密算法不同,所以TLSSSL3.0不能互操作。虽然TLSSSL3.0在加密算法上不同,但是在我们理解HTTPS的过程中,我们可以把SSLTLS看做是同一个协议。

如何申请SSL 证书

SSL 证书由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。

阿里云、腾讯云、华为云都可以直接申请,但是看了下一年要4000多大洋。。。
在这里插入图片描述

使用keytool 生成ssl证书

keytool JDK自带的证书工具,当然我们自己生成的不安全,所以浏览器会提示:
在这里插入图片描述
使用以下命令就可以生成一个证书:

keytool -genkey -alias gateway -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore scg-keystore.p12  -validity 3650

命令参数说明:

-genkey 生成秘钥

-alias 别名

-keyalg 秘钥算法

-keysize 秘钥长度

-validity 有效期(天)

-keystore 生成秘钥库的存储路径和名称

-keypass 秘钥口令

-storepass 秘钥库口令

-dname 拥有者信息,CN:姓名;OU:组织单位名称;O:组织名称;L:省//自治区名称;C:国家/地区代码

执行后如下图:
在这里插入图片描述
按照提示,依次输入,就可以看到证书了:
在这里插入图片描述

通信过程

在这里插入图片描述

  1. 网站向CA机构申请数字证书
  2. CA机构颁发证书给网站,使用私钥对证书进行签名,网站部署证书,提供HTTPS访问链接
  3. 浏览器发起HTTPS请求
  4. 网站服务端会将证书响应给浏览器
  5. 浏览器保存当前证书,对证书进行检查,验证其合法性
  6. 对证书进行验签,操作系统默认会有CA机构的公钥,验签通过,取出证书中网站的公钥
  7. 浏览器会生成一个随机值对称秘钥(客户端对称秘钥)
  8. 浏览器使用网站公钥将客户端对称秘钥加密,并发送网站,网站收到后,使用私钥解密,并保存客户端的公钥
  9. 客户端和服务端都保存了对称秘钥,这样,就可以进行加密互相传输数据了

谷歌浏览器输入https 网站,可以看到一把标识,点击这把锁,可以弹出该链接是安全的提示。
在这里插入图片描述
点击该链接是安全的,再点击证书有效

在这里插入图片描述
可以查看到当前网站证书中包含的基本信息和详细信息
在这里插入图片描述

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

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

相关文章

DPDK系列之一基础环境搭建

一、DPDK是什么 DPDK,Data Plane Development Kit,数据平面开发套装,它还有一个兄弟SPDK,专门用来做存储优化的。它主要运行于Linux,是由Intel几家公司共同开发,用于快速处理数据的一个网络开发工具套装。更详细的说明…

python数据清洗1

数据获取——》数据清洗——》数据转换——》数据分析 通过设置步长,有间隔的取元素通过设置步长为-1,将元素颠倒 数据清洗工具 目前在Python中, numpy和pandas是最主流的工具。 Numpy中的向量化运算使得数据处理变得高效;Pandas提供了大量…

【Java入门】Java数据类型

✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:Java入门 💬个人格言:不断的翻越一座又一…

(十四)线程池

线程池线程池是一组线程的集合。线程池维护一个队列,调用者向这个队列中添加任务,而线程池中的线程则不停地从队列中取出任务执行。线程池的继承关系如下图,其中ThreadPoolExecutor和ScheduledThreadPoolExecutor是具体的实现。ThreadPoolExe…

LeetCode刷题模版:141 - 150

目录 简介141. 环形链表142. 环形链表 II143. 重排链表144. 二叉树的前序遍历145. 二叉树的后序遍历146. LRU 缓存【未实现】147. 对链表进行插入排序148. 排序链表149. 直线上最多的点数150. 逆波兰表达式求值结语简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方…

多轮对话(三):Spoken Language Understanding 进展和前沿

本篇博客基于哈工大发表在IJCAI上的论文:A Survey on Spoken Language Understanding - Recent Advances and New Frontiers。 论文链接 github链接 口语理解(SLU)旨在提取用户查询的语义框架,是面向任务的对话系统的核心组件。本…

excel函数技巧:两个查询函数的用法比较 上篇

EXCEL函数江湖烽烟再起,函数大擂台迎来两位重量级选手。守擂者是号称全民偶像、人见人爱车见车载的巨星级函数VLOOKUP,挑战者则是名气不大实力强劲高手的LOOKUP函数!这对与生俱来的对手,究竟会在函数擂台上擦出怎样的火花&#xf…

Nginx原理

一、master和worker二、worker当客户端发送请求,先到达master,master通知所有的worker,然后所有的worker开始竞争任务。三、一个master和多个worker有什么好处(1)可以使用nginx -s reload热部署,利用nginx进行热部署(2…

8、MariaDB11数据库安装初始化密码Navicat连接

MariaDB11安装 安装前准备 下载安装包 点我去MariaDB官网下载安装包 查看相关文档 Mariadb Server官方文档 使用zip安装 解压缩zip 将下载到的zip解压缩到想安装的位置。 生成data目录 打开cmd并进入到刚才解压后的bin目录, 执行mysql_install_db.exe程序生…

Python异步编程Future对象详解

今天继续给大家介绍Python相关知识,本文主要内容是Python异步编程Future对象详解。 一、Python Future对象简介 在上文Python Task对象详解中,我们介绍到了Task对象,而Future对象是Task对象的基类,比Task更加底层。一个Future是…

英方软件在科创板上市:总市值89亿元,胡军擎、江俊夫妇为实控人

1月19日,上海英方软件股份有限公司(下称“英方软件”,SH:688435)在上海证券交易所科创板上市。本次上市,英方软件的发行价为38.66元/股,发行2094.6737万股,募资总额约为8.10亿元,募资…

linux的工具(yum,vim)

前言 linux工具的意义Linux已经成为工作、娱乐和个人生活等多个领域的支柱,人们已经越来越离不开它。在 Linux 的帮助下,技术的变革速度超出了人们的想象,Linux 开发的速度也以指数规模增长。因此,越来越多的开发者也不断地加入开…

pycharm远程链接服务器配置

拿到gpu的节点以后开始下面的配置 1. 下载专业版pycharm,一定是专业版,community版本没有远程连接ssh的功能。 2. python编译器->添加ssh编译器->新创建服务器配置 3. 输入host名,用户名。 host名字如:vpcc-gpu032&#xf…

【自学Docker】Docker wait命令

Docker wait命令 大纲 docker wait教程 docker wait 命令可以用于阻塞一个或多个 Docker容器 直到容器停止,然后打印退出代码。 docker wait命令后面的 CONTAINER 可以是容器Id,或者是容器名。 docker wait语法 haicoder(www.haicoder.net)# docker…

基于蒙特卡洛随机潮流研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

代码审计-8 ThinkPHP框架代码审计 2

文章目录熟悉网站结构确定网站的路由1.通过分析url直接得出路由2.查看app/route.php了解参数过滤情况SQL注入举例任意文件下载与删除任意文件下载代码分析任意文件删除代码分析熟悉网站结构 首先对系统的功能点进行大致的了解,对系统的目录情况进行大致了解&#x…

9. 列表list类型详解

python3 list类型的使用 1. 基本知识 List(列表) 是 Python 中使用最频繁的数据类型。 列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套&#xff…

全球化商家平台技术探索与演进

作者:马金金 阿里全球化业务平台团队 全球化业务高速发展给平台技术带来了极大的挑战。如何差异化支撑全局业务的高效迭代?如何轻量化支撑创新业务的快速建站?本文将聚焦全球化商家平台技术架构演进,为大家分享背后的技术思考。 一…

Understanding LSTM Networks

文章目录Recurrent Neural NetworksThe Problem of Long-Term DependenciesLSTM NetworksThe Core Idea Behind LSTMs.Step-by-Step LSTM Walk Through本篇文章记述了自己对“Understanding LSTM Networks”的理解 Recurrent Neural Networks Humans don’t start their thin…

springmvc统一日志打印request和response内容

在web项目中,有不少场景需要统一处理一些和实际业务基本不相关的逻辑,比如rest接口的监控、出入参日志、操作记录、统一异常处理(避免将错误堆栈等信息直接打到web端)。如果你觉得日志打印rest接口出入参非常简单,直接getParameter()就好了&a…