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

【架构师从入门到进阶】第五章:DNSCDN网关优化思路——第十节:网关安全-单向加密

【架构师从入门到进阶】第五章:DNS&CDN&网关优化思路——第十节:网关安全-单向加密

  • 网络安全中的加密场景
  • 单向加密
  • 彩虹表
  • 预防彩虹表的方式
  • 参数防篡改

本篇文章我们来学习网站安全性的信息加密。

网关的安全性,我们在这里面先把一些常用的信息加密的手段给大家说一下,然后再说一下这些常用的加密手段在实际工作中的一些用法。

网络安全中的加密场景

在网络安全中有一些加密的场景,比如说数据安全方面,信息加密的技术经常会被用到,在很多网站系统中,尤其是一些小型的网站,一些内部系统,或者说比较小的网站,它存的这个用户名和密码尤其是密码,它都是明文存储的。

曾经在二零一一年的12月份,当时发生一件事情是csdn密码泄露,当时由于这个网站的安全措施不利,导致用户数据库被黑客拖库,拖库是什么意思呢?就是把整个数据库全部down下来了。更让人惊奇的是,当时他们的用户的密码竟然是明文。

在这里插入图片描述

所以,为了保护网站的数据安全,系统需要对这些信息进行加密的处理。信息技术的加密,分为三类:

  • 单向加密
  • 对称加密
  • 非对称加密

单向加密

我们先来说单向加密,单向加密也称为单向散列加密。比如说我们有一个信息叫做a,这个a不管有多长,然后进行一些散列计算,通过散列计算得到一个固定长度的输出b,这个b是一个固定长度。

在这里插入图片描述

计算的过程是单向的,也就是说你已知a能知道b,但是知道b无法算出a。

那么利用单向散列加密的这个特性,可以进行密码的加密保存,也就是说我把我的密码通过散列算法变成了一个b,那么你从b是无法知道别人的明文的。

在这里插入图片描述

这样的话,在用户登录时进行密码的验证的时候,验证的方法是将用户输入的密码进行单向散列的加密,加密之后的密文和数据库存储的密文进行对比,如果一致则验证成功。通过这样的方式呢,即使数据库泄露,也就是被人拖库之后,他也拿不到密码,也就无法去登录。

彩虹表

但是在实际中,这种方式虽然不能通过反向的知道明文,但是由于人们设置密码具有一定的模式,好多人设的密码就是那么固定的几种形式,所以可以通过彩虹表去破解。也就是说,好多人整理了一张表,这张表是明文和密文的对应关系表,也就是当我拿到密文之后,和我的密文一对比,发现你的密文和我的密文一样,那么你的明文我就知道了。就这么反向对比一下,通过这种对比方式,也可以进行猜测式的破解。

在这里插入图片描述

预防彩虹表的方式

为了预防这种方式呢,通常人们在使用单向加密的时候,会在里面加一点点盐,也叫做salt。

在这里插入图片描述

比如说这是一个正常的信息a,然后再加一个salt,可能是随机生成的一串字符串,最后生成一个密文b。里面多了一个盐,它通过彩虹表,就不知道这个盐是什么,就会增加它破解的难度。

常用的单向散列算法有md5,有sha的单项散列算法。

参数防篡改

还有一个特点,就是输入的任何微小的变化都会导致输出的完全不同。这个特性,有时也会被用来生成信息的摘要,计算具有高离散程度的随机数等用途。

比如说,可以用在我们的接口参数防篡改的验证上,举个例子。

在这里插入图片描述

我们现在这个接口的参数有三个参数,那么我们这三个参数加上一个盐,然后生成一个密文。然后再向后端传输这个参数的时候,除了传输正常的参数之外,还把密文也传进去。后端拿到这些参数之后,会根据前端正常的参数,后端也有一个盐是彼此商量好的,再根据和前端约定的生成密文的方式,去生成一个密文。如果生成的密文和前端传过来的这个密文是一致的,那么我们认为参数没被篡改过,如果参数被黑客篡改了,那么根据输入的微小的变化会导致输出的大不相同的这个特性,密文就对不上了,我们就知道我们的参数被人修改掉了。

http://www.lryc.cn/news/600484.html

相关文章:

  • Item11:在operator=中处理自我赋值
  • Go-Elasticsearch v9 安装与版本兼容性
  • 全文检索官网示例
  • “给予” 超越 “莲花”,支持图片在线编辑
  • [论文阅读] 人工智能 + 软件工程 | NoCode-bench:评估LLM无代码功能添加能力的新基准
  • SSRF_XXE_RCE_反序列化学习
  • 面试实战,问题十三,Redis在Java项目中的作用及使用场景详解,怎么回答
  • 大语言模型 LLM 通过 Excel 知识库 增强日志分析,根因分析能力的技术方案(3):使用云平台最小外部依赖方案
  • GMP模型
  • 深入解析Java内存模型:原理与并发优化实践
  • Oracle 误删数据恢复
  • ClickHouse高性能实时分析数据库-高性能的模式设计
  • 学习随想录-- web3学习入门计划
  • 50道JavaScript基础面试题:从基础到进阶
  • haproxy原理及实战部署
  • 根本是什么
  • 统计学07:概率论基础
  • Chukonu 阅读笔记
  • 分类预测 | MATLAB实现DBO-SVM蜣螂算法优化支持向量机分类预测
  • 深入解析YARN中的FairScheduler与CapacityScheduler:资源分配策略的核心区别
  • 检索召回率优化探究一:基于 LangChain 0.3集成 Milvus 2.5向量数据库构建的智能问答系统
  • 微信小程序 自定义带图片弹窗
  • 数据存储:OLAP vs OLTP
  • Flutter实现Retrofit风格的网络请求封装
  • Apache Doris Data Agent 解决方案:开启智能运维与数据治理新纪元
  • RS485转Profinet网关配置指南:高效启动JRT激光测距传感器测量模式
  • React入门学习——指北指南(第四节)
  • SQL Developer Data Modeler:一款免费跨平台的数据库建模工具
  • Flutter 提取图像主色调 ColorScheme.fromImageProvider
  • Javaweb————HTTP消息体拆分讲解