Istio 安全管理 加密证书中心

news2024/11/25 13:53:08

1 tls认证

2 设置ACL 允许哪些客户端可以访问 哪些客户端不能访问

3 istio里面的认证

加密是可以分为三种类型

  • 对称加密(加密和解密用的是同一个密钥)
  • 非对称加密
  • 哈希函数

对称加密

A要发送数据传送给B,那么A要使用一个密钥,里面写的是密码,要使用密钥对这个数据进行加密。

密码给到B那么B是打不开的,因为这个数据是被加密的,这个密码即使被别人截获了也没用的,对于B来说也是打不开的。A要想办法去告诉B说加密密码是haha001。

现在A不知道如何将密码告诉给B,所以这是一个问题。

加密和解密使用相同的密钥    优点:加密数据的速度比较快(适合加密大数据)    缺点:密钥不知该如何告诉对方(如果密钥传递给对方那么很容易被截获了)

非对称加密有两个密钥:

  • 公钥:可以公开的(谁都可以去获取的,安全性没有那么强而已)
  • 私钥:保存好,不可让别人获取
非对称加密的两个作用:
  • 数据加密:公钥加密,私钥解密
  • 数字签名:私钥加密,公钥解密

 A要发送数据给B,那么A要获取B的公钥,也就是A有了B的公钥。有了公钥之后会去加密需要传输的数据,完成之后将密钥发送给B,这个过程是不怕被别人截获的。截获了必须使用B的私钥去解密,所以私钥被保护好,不在其他人手上。

截获了因为没有私钥,这个时候数据传输到了B,那么B使用私钥去解密就行了。

可以看到对称加密时候加密大数据,非对称加密算法不适合加密大数据,所以可以将非对称加密算法和对称加密算法整合在一块去使用。

对称和非对称结合使用

 A使用对称算法加密了数据发送给B,这个时候B是不知道如何解密,因为A不知道如何将对称算法传输给B。

整合了非对称加密算法就容易多了,首先B会将自己的公钥发送给A,A会使用B的公钥加密对称算法的密钥,注意不是加密原始数据。

加密了对称算法的密钥之后,记住是使用B的公钥加密的,然后再传输给B,这个传输过程当中是安全的,被别人截获了也没用,被别人截获了之后也解不开,因为使用B的私钥才可以解开。

B收到使用自己公钥加密的数据之后,然后使用私钥对其解密,之后就得到了对称加密算法的密钥。最后就可以去解密对称加密算法的密钥了。

注意:这里使用B的公钥加密的是对称算法的密钥,而不是加密的原始数据。

 上面都有一个前提是B将公钥发送给A,A就真的以为是B的公钥。

中间人攻击 


B的公钥要传送给A的时候,这一步就被C给截获了,对于C来说也有自己的公钥和私钥的。C将自己的公钥传递给A,这叫伪装。它伪装为B的公钥。其实也就是被中间人调包了。

现在A是不明真相的群众不知道真假,用被调包的公钥去加密对称算法的密钥。在传输给B的过程当中又被截获了。之后C使用自己的私钥就完全可以解开这里面的数据。以为C截获了B的公钥,然后又使用B的公钥加密一份数据给B,这样就不存在解不开的情况。

上面就是所谓的中间人攻击。(1)泄露了数据,可以随意去看A和B之间的数据了。(2)c也可能会去修改其中的数据。

上面出现问题的环节就在第一步出现问题了。因为A就是不明真相的吃瓜群众。不能说别人发送给你,你就相信,发送给你B的公钥你就信任这个是B的公钥吗?这里是容易受到中间人攻击的。

这里就需要证书中心了。

 

数字签名


你去签合同,怎么证明才是你签名的合同呢?那就需要手印了。

所谓的数字签名就是给你发数据的时候给你按了一个手印,证明这个数据就是我的,这是我发送的,上面有我的手印。

数据签名就是用来验证数据的真伪,不去做数据的加密。

B要发送数据给A,要发送给A那么得要向A去证明数据就是B发送的。这个时候A依然是需要B的公钥的,因为数字签名是私钥加密,公钥解密。

B的公钥发送给A的时候依然会发生中间人攻击的问题,B第一步依然是将公钥发送给A,B怎么向A证明这个数据就是我的,它首先会去使用某种哈希算法对要传输的数据取得一个哈希值。

哈希函数的特点是输入不定长的值,总能够得到定长的值,且不可以逆向反推。也就是给你一个哈希值让你去反推原始数据是推断不出来的。

可以看到通过哈希取出来的值是一样的。不同哈希算法最后得出来的值长度是不一样的。

只要数据不变的出来的哈希值也是不变的,只要这个值变了,那么哈希值也是变的。

B会使用某种哈希函数对其取到哈希值,取得这个值之后叫做hash1,B的私钥加密的不是原始数据,它是对哈希值来做加密的,对哈希值加密之后就得到了数字签名,B就可以将原始数据以及它加密之后的哈希值,也即是使用私钥加密的哈希值传输给A,这个时候data依然是以明文的方式传输过来的。

数字签名并不是对数据来加密的,而是验证数据是否是B来给我发送的。

A收到data原始数据,以及B的私钥加密的哈希值,收到的是这两个东西。A要验证数据是否是B发送的,那到底是不是B发送的呢?在传输的过程当中有没有被别人改过呢?那么A要去考虑这些问题。

A有B的公钥,既然数字签名是使用B的私钥加密,那么可以使用B的公钥去解密,所以它会使用B的公钥去解密数字签名。A使用B的公钥能够解密出来,那么说明这个数据的确就是B发送过来的,

A会使用相同的哈希算法去对data取得一个哈希值,也就是传输之后的哈希值,然后和传输之前的哈希值对比hash2和hash1是否一样,求得的哈希值和你发送过来的hash值一样,那么就说明这个数据是真的。如果不一样就是假的,在传输过程当中被人修改了,这个就是所说的数字签名。

这个也很容易受到中间人攻击。

密钥对和主体没有关联:A和B是没有关联的,A是没有理由去相信B的。同时B的公钥和私钥是可以随时变化的,可以删除然后重新生成。

 

证书中心

证书中心简称为CA。

B 首先生成自己的私钥,生成私钥之后会去使用自己的私钥去生成证书请求文件,然后发送给CA。

CA审核完之后给我们颁发证书,颁发的证书就是公钥,只不过这个证书上面有盖章,这个是CA给我们盖章的,这个就是数字签名,这个密钥对和主体就有联系了,因为证书私钥是绑定的,也是CA审核过的。所以B要说这个证书和密钥对不是你的都抵赖不了,因为有权威机构去证明了。

B将自己的公钥,也就是证书发送给A的时候,既然证书上有CA的数字签名,它会去使用CA的公钥来验证数字签名。也就是使用CA的公钥去解密然后去验证。

中间人攻击的问题就解决了,因为都信任ca。因为A会去CA验证B的证书的真伪。很容易避免中间人攻击。同时也解决密钥和主体之间没有联系的这样一个问题。

如果A也从CA获取了一个证书,B将证书发送给A的时候,A来验证B的数字签名。同理A将证书发送给B,B也要验证A发来的证书。这样A B就互相验证了,这样就实现了双向认证,这也就是双向TLS认证。

在网格内部pod通信其实都建立了mtls的通信。也就是双向TLS的通信。k8s组件之间也是mtls通信。

所以这里有两套CA,一套k8s的CA,还有一套是istio使用的CA。

 

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

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

相关文章

MySQL-数据库读写分离(下)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏&#xf…

Verilog 学习之路二——基础学习总结(摘取自菜鸟教程)

目录 1 Verilog 设计方法2. 基础语法2.1 格式2.2 数值表示数值种类表示方法 2.3 数据类型2.4 表达式 3. 编译指令4. 连续赋值5. 过程结构6 过程赋值7 时序控制8 语句块9 循环10 函数例子-数码管译码 1 Verilog 设计方法 Verilog 的设计多采用自上而下的设计方法(to…

TypeScript + React 环境搭建

React 安装 vscode 或者 webstrom 代码编辑器TypeScript 开发环境搭建1.1、下载 node.js1.2、安装 node.js1.3、npm 安装 typeScript1.4、创建和编写 ts 文件1.5、编译1.6、运行 js文件 React 环境搭建2.1、homebrow2.2、安装 cnpm:2.3、安装yarn:2.4、安…

[oeasy]python0074[专业选修]字节序_byte_order_struct_pack_大端序_小端序

进制转化 回忆上次内容 上次 总结了 计算字符串值的函数 eval 四种进制的转化函数 binoctinthex 函数名前缀目标字符串所用进制bin0b二进制oct0o八进制hex0x十六进制eval无前缀十进制 数字41 和 字符串"41" 的不同 字符串"41" 两个字符字符存储依据是…

部署ELK+Kafka+Filebeat日志收集分析系统

部署ELKKafkaFilebeat日志收集分析系统 文章目录 部署ELKKafkaFilebeat日志收集分析系统一、ELK 简介1、ELK日志分析系统组成2、Elasticsearch(es)3、Logstash4、Kibana5、日志处理步骤 二、Elasticsearch介绍1、Elasticsearch核心概念2、开启分片副本的…

AcWing 244. 谜一样的牛—树状数组、二分

题目链接 AcWing 244. 谜一样的牛 题目描述 分析 这道题挺巧妙的,感觉树状数组方面的题就是比较难想,先分析一下样例,样例中每头牛前面比自己低的牛的数量分别为 0 1 2 1 0牛的高度是1~n的排列,如何分析出每头牛的高度呢&…

Linux学习之if判断的使用

if的基本用法 if后边可以直接跟着命令。 echo "good" > ifecho.txt把good输出到当前目录下ifecho.txt文件里边,cat ifecho.txt首先可以看一下这个文件里边的内容。 然后依次输入: if cat ifecho.txt thenecho "right" fi可以看…

Windows系统实现唤醒+合成+命令词智能语音交互

1、之前写过离线能力调用,今天来个终极版,实现智能交互或者结合大模型的智能交互示例,下面进入正题。上B站效果离线唤醒离线合成离线命令词实现智能交互_哔哩哔哩_bilibili 2、到讯飞开放平台下载唤醒合成命令词的离线组合包,找到…

关于正则表达式的简单介绍以及使用

一、介绍 正则表达式通常被用来检索匹配某种模式(规律)的文本 日常文本检索,如果单纯检索某个数字,字母,或者单词匹配出来的结果较多,而面对目标文件内容较大的时,我们也不可能肉眼对检索出来的…

Kotlin 新版本 1.9.0重要更新预览

释放 Kotlin 新版本 1.9.0 的强大功能 1. Kotlin K2编译器用于多平台 对K2编译器进行了进一步的改进,使其更加稳定。K2编译器针对JVM目标现已进入Beta版本,并且也可以在多平台项目中使用。 您可以通过将K2配置添加到项目的gradle.properties中&#x…

pytest-allure 生成测试报告

目录 前言: pytest 中 yield 和 return 的区别和相同点 共同点 区别 usefixtures 与传 fixture 区别 Pytest 常用的插件 一键安装多个模块 前言: 在软件测试中,生成清晰、易读的测试报告是非常重要的。pytest-allure是一个流行的测试…

centos逻辑分区磁盘扩展

最近碰到服务器磁盘空间不足,需要扩展逻辑分区的需求,特地做下小笔记,方便后续自己回忆。下图是磁盘的相关概念示意图: 1、查看磁盘空间 [rootlocalhost ~]# df -h #查看磁盘空间,根分区的大小是18G,已经用…

微服务——Eureka和Nacos

目录 提供者和消费者 ​编辑 Eureka注册中心——远程调用的问题 Eureka注册中心——原理分析 Eureka注册中心——搭建eureka服务 步骤: Eureka注册中心——服务注册 Eureka注册中心——服务发现 总结 Ribbon负载均衡——原理 流程: Ribbon负载均衡——策略 Ribbon负载均衡—…

ChatGPT:人工智能语言模型的革命性进步

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

idea中回退远程push过的提交(详细图文操作)

目录 git基本知识回顾git中本地文件保存的3个地方工作区暂存区本地仓库代码提交到远程仓库的流转 reset命令的3个参数softmixedhard 具体操作模拟两次提交远程分支回退到第一次提交第一次reset hard第二次reset soft/mixed git基本知识回顾 git中本地文件保存的3个地方 工作区…

CSS :nth-child

CSS :nth-child :nth-child 伪类根据元素在同级元素中的位置来匹配元素. CSS :nth-child 语法 值是关键词 odd/evenAnB最新的 [of S] 语法权重 浏览器兼容性 很简单的例子, 来直觉上理解这个伪类的意思 <ul><li class"me">Apple</li><li>B…

陪诊小程序搭建|陪诊接单平台开发|医疗陪诊小程序

陪诊小程序是一种提供陪同就诊服务的在线平台&#xff0c;具有广阔的发展前景。下面是对陪诊小程序发展前景的介绍&#xff1a;   随着社会的发展和人们生活水平的提高&#xff0c;人们对医疗服务的需求也越来越高。然而&#xff0c;由于工作繁忙、时间紧张等原因&#xff0c…

【C++】通过栈和队列学会使用适配器和优先队列学会仿函数的使用

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;命运给你一个低的起点&#xff0c;是想看你精彩的翻盘&#xff0c;而不是让你自甘堕落&#xff0c;脚下的路虽然难走&#xff0c;但我还能走&#xff0c;比起向阳而生&#xff0c;我更想尝试逆风…

网络超时导致namenode被kill的定位

交换机升级导致部分网络通信超时, 集群的namenode主从切换后,主namenode进程被杀死。 网络问题导致namenode与zk间的连接超时触发了hadoop集群的防脑裂机制而主动kill掉了超时的namenode进程。 日志分析发现zk和namenode之间的网络连接超时: 超时触发了namenode切换,并将超时…

flex布局进阶

推荐看一下阮一峰老师的flex布局博客【Flex 布局教程&#xff1a;语法篇】(https://www.ruanyifeng.com/blog/2015/07/flex-grammar.html#)&#xff0c;讲的非常清晰。 一、多行布局大小相同的子盒子技巧 使用弹性布局实现多行均匀布局时&#xff0c;如若子盒子数量不能被每行…