网络安全与密码学

1、网络安全威胁

  破坏网络安全的一些理论方式:

    窃听:窃听信息,在网路通信双方直接进行窃听。

    插入:主动在网络连接中插入信息(可以在message中插入恶意信息)

    假冒:伪造(spoof)分组中的源地址,假冒客户端或服务器。

    劫持:通过移除/取代发送方发或接收方“接管”(take over)连接

    拒绝服务(dos):阻止服务器为其他用户提供服务。

  破坏网络安全的一些实践方式:

    映射(mapping):①探路。②ping命令获取主机地址。③端口扫描(nmap www.insecure.org/nmap/)

    嗅探(sniffing):在广播介质(共享的以太网或无线网络中),混杂(promiscuous)模式的网络接口卡,可以接受所有经过的分组。(wireshark就是一个分组嗅探软件)

    ip欺骗(spoofing)发送分组的源ip地址可以任意改写。网络攻击中大量使用ip欺骗。(应对策略,入口过滤:路由器不转发源ip地址不属于此网络的分组)

    DOS拒绝服务攻击:向接受方恶意泛洪(flood)分组,淹没(swamp)接受方(即耗尽接受方的资源)。

    DDOS分布式拒绝服务攻击:入侵网络中的主机,构建僵尸网络(肉鸡),发动僵尸网络同时攻击目标服务器。

    反射式DDOS攻击:控制僵尸网络,选择反射服务器,运用ip欺骗将请求发向反射服务器,反射服务器将服务响应发送给要攻击的服务器。

    

    DOS应对策略:过滤泛洪分组,追溯攻击源,SYN cookie(测试第三次握手的确认序列号)

    

2、密码学(cryptography)

  密码学基本概念:

    明文(plaintext)--->加密算法(已知) + 秘钥KA(未知)---->密文(ciphertext)---->解密算法 + 秘钥KB ---->明文。    m = KB(KA(m))

    对称秘钥加密:KA == KB。  明文m = KS(KS(m))

    非对称秘钥加密(公开秘钥加密):KA+,KA-;KB+,KB-;m = KB-(KB+(m))

    破解加密方法:暴力破解;统计分析(对传统加密方法很有效);

  传统加密方式:

    替代密码:利用一种东西替代另一种东西

      凯撒密码(Casesar cipher):利用字母表中后面的第k个字母替换当前字母;如果k=3,则a->d;b->e,c->f...........x->a;y->b;z->c。

      单字母替代:每一个字母都有一个固定的替代值。

      多字母替代:明文不同位置的字母使用不同的单码替代密码。

      

    换位密码:

      置换法:将明文划分为固定长度(d)的分组,每个分组内的字母按置换规则(f)变换位置,秘钥(d,f)

      

  现代加密技术:

    不在针对一个个字母处理,而是针对二进制位操作

    对称秘钥加密:(存在秘钥分发问题,如何让对方知道加密秘钥)

      流密码:秘钥流z = z0z1z2z3....;明文流(串)x = x0x1x2x3.....;加密y = y0y1y2...... = Ez0(x0)Ez1(x1)Ez2(x2).....。解密时,使用相同的秘钥流与密文做异或运算(XOR)

      

      分组密码:将明文划分长度为m的明文组(m = 64bit,128bit,256bit等);各明文组在长为i的秘钥组的控制下变成长为n的密文组。通常m == n。

        Feistel分组密码结构(思想):DES(Date Encryption Standard)加密算法(IBM公司研制,1998年12不在成为加密标准)。分组长度64bit(左32bit,右32bit),56bit初始秘钥,16次迭代加密。

    AES(Advanced Encryption Standard)加密算法(Rijndael加密算法):不属于Feistel结构,数据块长度(128/192/256bit),秘钥(128/192/256bit),10轮加密,安全性更高,如果1秒破解DES,则需要149万亿年破解AES。

    非对称秘钥加密(公开秘钥加密):

      RAS加密算法,前提条件:

      

      秘钥生成:

      

       确实有点难。。。先到这里

3、身份认证

  身份认证过程中存在:假冒身份,ip欺骗,回放攻击。

  提出一种机制:一次性随机数(nonce)

  

  存在问题:在传输过程开始时必须知道本次通信的秘钥KA-B(对称秘钥)。

  

  存在问题:中间人攻击

  

 4、消息完整性和数字签名

  message integrity:确定来自声称的发送发,传输过程中没有被篡改(内容,时间,顺序),持有期被修改,抵赖(发送方抵赖,接收方抵赖)。

  密码散列函数:H(m) ,m为message。

    特性:散列算法公开;H(m)足够快;对于任意长度message均生成定长的输出;不同message不能产生相同散列值,根据散列值不能倒推出message。

    

    MD5算法:通过4个步骤,对任意长度的message输出128bit的散列值。不是足够安全,1996曾被找到两个不同的512bit块在MD5算法下产生两个相同的散列值。

    SHA-1:消息长度不超过2的64次方bit,散列值固定160bit,速度慢于MD5,安全性高于MD5。

  message digests(消息摘要):H(m) 可以作为m的数字指纹。

  message认证:将message 和 message digests组成新的message发送。(m,H(m))。存在问题:伪造m

  message认证码(MAC):m + s认证秘钥 + H数列函数 ---->(m,H(m+s))。如果s为对称秘钥,存在接受方和发送方抵赖问题。

  数字签名(Digital signatures):

    要求:可验证性,不可伪造性,不可抵赖性。

    采用私钥加密技术,将私钥加密的密文和message一起发送给接收方。(m,KB-(m))。缺点:message过大,因此加密后的KB-(m)太大,导致速度慢

    采用签名消息摘要:(m,KB-(H(m)))。解决数字签名问题。

 5、秘钥分发:

  在身份认证中,对称秘钥如何分发?

  机制:秘钥分发中心(KDC):在网络上是一个服务器的存在,这是一个可信任机构。

    在KDC上注册自己的秘钥(对称秘钥,此秘钥只有用户和KDC知道)。

    

  机制:认证中心(CA):在网络上是一个服务器的存在,这是一个可信任机构。

    在CA上注册公钥 ---->生成公钥证书

    

     

6、总结:

  ①如何建立安全的传输:秘钥分发中心和认证中心,有了这两个可以说在用户之间建立连接时是安全的,意味着不会和第三方(恶意中间方)建立连接。在认证中心中用到了私钥和公钥技术,但这是为了解决身份问题(在建立连接时的身份问题)

  ②如何在传输中保持数据安全:对称加密中随机的R1(对称秘钥)加密数据。非对称加密中使用私钥加密和公钥解密。

  ③如何保证传输的数据不会让对方抵赖。对明文进行hasn算法得到固定的消息摘要H(m),再对消息摘要进行私钥加密KB-(H(m)),最后得到新消息(m,KB-(H(m)))。传输过程可以为:密文 = KA+((m,KB-(H(m)))),即可保证传输安全性,又可保证不可抵赖性。

  ④有一个很重要的概念:私钥加密的数据公钥解密,公钥加密的数据私钥解密。

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

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

相关文章

SQLServer2022安装(Windows),已验证

二、安装可视化工具SSMS 接下来安装可视化工具SSMS,现在新版本默认都是没有可视化界面,需要单独安装 (1)地址:下载 SQL Server Management Studio (SSMS) - SQL Server Management Studio (SSMS) | Microsoft Learn…

I/O多路复用-redis单线程模型快的根本原因

目录 BIO BIO单线程模式 BIO多线程模型 NIO IO multiplexing select函数: poll函数: epoll函数: 首先了解同步和异步,阻塞和非阻塞的概念: 同步:发起请求的一方需要等待操作完成并获得结果后才能继…

LayUI之CRUD(增删改查)

目录 一、前期准备 1.数据表格 2.弹出层 3.用户表数据查询 二、用户管理后台编写 三、前端JS编写 四、效果展示 一、前期准备 1.数据表格 在layui官网找到我们需要的数据表格 根据需求复制修改代码,再找到表单复制一个输入框和按钮,做一个搜索功能…

React Native 解决 TextInput 设置 maxLength 后,拼音输入法无法输入的问题

目前只发现在 iOS 上存在这个问题,这是由于 iOS 系统的问题,需要添加一个 OC 分类来解决,这里有一个封装好的 react-native-textinput-maxlength-fixed ,直接安装即可。 npm install react-native-textinput-maxlength-fixed npx…

数字游民 digital nomad 常见问题解答

目录 什么是数字游民?数字游民是怎么产生的?如何向数字游民转型?常见的数字游民网络聚集地数字游民旅居城市推荐国际版柏林(德国)巴塞罗那(西班牙)布达佩斯(匈牙利)里斯本(葡萄牙)首尔/釜山(韩国) 国内版杭州成都三亚大连厦门 什么是数字游民…

数据仓库-拉链算法

数据仓库-拉链算法,如何处理开链、闭链数据 \timing on set client_encodingGBK; /******程序功能说明*********************************//*****以下根据任务不同进行变量设置*****************/SELECT:AUTO_PDMVIEW AS "PDM_VIEW",:20230710 AS &qu…

语言模型的自洽性思维链推理技术

论文标题:Self-Consistency Improves Chain of Thought Reasoning in Language Models 论文链接:https://arxiv.org/abs/2203.11171 论文来源:ICLR 2023 一、概述 尽管语言模型在一系列NLP任务中展现出了显著的成功,但它们在推理能…

QGIS批量将OSM水系进行可视化显示

要批量将OSM水系进行可视化显示,可以使用QGIS软件和Python语言来实现。以下是详细步骤: 1. 打开QGIS软件,导入OSM数据,可以使用插件OSMDownloader下载OSM数据,或者使用OSM数据下载网站下载数据。 2. 在QGIS中创建新图…

进制转换详解(解释原理简单易懂)

前言:在网上看了许多篇关于不同进制之间如何转换的文章,包括很多浏览量上万的博客。大多都只是把转换的规则罗列了出来,例如十进制转二进制,可能大家都知道方法,“除以2反向取余数,直到商为0”。应用该方法…

Kubespray v2.22.1 在线部署 kubernetes v1.26.5 集群

文章目录 1. 介绍2. 预备条件3. 配置 hostname4. yum5. 下载介质5.1 git 下载5.2 下载 kubespray v2.22.1 6. 编写 inventory.ini7. 配置互信8. 安装 ansible9. 关闭防火墙10. 安装 docker11. 配置内核参数12. 启动容器 kubespray13. 部署14. 配置连接集群 1. 介绍 kubespray​…

论文阅读—2023.7.13:遥感图像语义分割空间全局上下文信息网络(主要为unet网络以及改unet)附加个人理解与代码解析

前期看的文章大部分都是深度学习原理含量多一点,一直在纠结怎么改模型,论文看的很吃力,看一篇忘一篇,总感觉摸不到方向。想到自己是遥感专业,所以还是回归遥感影像去谈深度学习,回归问题,再想着…

5月更新,docsify综合漏洞知识库!

项目介绍 一个知识库,集成了Vulhub、Peiqi、EdgeSecurity、0sec、Wooyun等开源漏洞库,涵盖OA、CMS、开发框架、网络设备、开发语言、操作系统、Web应用、Web服务器、应用服务器等多种漏洞。 关注【Hack分享吧】公众号,回复关键字【230428】获…

C#设计模式之---观察者模式

观察者模式(Observer Pattern) 观察者模式(Observer Pattern)是一种对象行为模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。在观察者…

spring boot security自定义认证

前言 前置阅读 spring boot security快速使用示例 spring boot security之前后端分离配置 说明 实际场景,我们一般是把用户信息保存在db中(也可能是调用三方接口),需要自定义用户信息加载或认证部分的逻辑,下面提供…

bug:file name too long文件名超出系统最大限制

各操作系统支持最长的文件和目录名称长度(Linux、Win、Mac) 今天开发需求的时候发现无法新建文件,提示file name too lang,于是翻阅和查询了一些资料,发现不同操作系统下文件名和目录名最长的长度不同。 操作系统文件名…

小程序主包超1.5MB分包处理流程优化方案

"subPackages": [// 分包1 {"root": "src, // 根目录"pages": [{"path": "views/business/index", // 页面路径"name": "business_index","aliasPath": "/business/index",&…

make/makefile的使用

make/makefile 文章目录 make/makefile初步认识makefile的工作流程依赖关系和依赖方法make的使用 总结 make是一个命令,是一个解释makefile中指令的命令工具,makefile是一个文件,当前目录下的文件,两者搭配使用,完成项…

快速上手dva

Dva 是一个基于 redux 和 redux-saga 的前端框架,它简化了 redux 和 redux-saga 的使用,并且内置了 react-router 和 fetch,所以也支持路由和异步操作。以下是一些基本的 Dva 使用方法: 快速上手 安装:首先&#xff…

异常参数处理:如何处理前端传递的非法参数,确保系统安全稳定

当前端将参数传递给后端时,考虑到各种异常情况,以下是对应的解决示例: 缺少必要的参数: 异常情况:前端未传递必要的参数,导致后端无法正常处理请求。 解决方案:在后端进行参数校验,如…

HarmonyOS学习路之方舟开发框架—学习ArkTS语言(基本语法 二)

自定义组件 创建自定义组件 在ArkUI中,UI显示的内容均为组件,由框架直接提供的称为系统组件,由开发者定义的称为自定义组件。在进行 UI 界面开发时,通常不是简单的将系统组件进行组合使用,而是需要考虑代码可复用性、…