首页 > 其他分享 >网络安全基础

网络安全基础

时间:2024-07-07 10:08:35浏览次数:15  
标签:网络安全 数字签名 报文 基础 认证 密码 密钥 消息

概述

基本概念

网络安全通信的基本属性

  1. 机密性。只有发送方与预定接收方能理解报文内容。

  2. 消息完整性。发送方与接收方希望确保消息未被篡改,发生篡改一定会被检测到。

  3. 可访问性与可用性。可访问性与可用性是网络信息可被授权实体访问并按需求使用的特性。

  4. 身份认证。发送方与接收方希望确认彼此的真实身份。

网络安全是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者 恶意的原因遭受到破坏、更改、泄漏,系统连续可靠正常地运行,网络服务不中断。

 

安全威胁

报文传输方面:窃听 、插入、假冒、劫持等安全威胁。

网络攻击:拒绝服务DoS以及分布式拒绝服务DDoS。

映射:在发起攻击前先探路找出网络上在运行什么服务,然后利用ping命令确定网络上的主机地址,最后使用端口扫描的方法依次尝试与每个端口建立TCP连接。

嗅探:通常发生在共享式以太网或者无线网络中,嗅探主机通过混杂模式网络接口卡,可以接收或记录所有广播介质上的分组/帧,可以读取到所有未加密数据。

IP欺骗:由应用直接生成“原始”IP分组,设置分组的源IP为任意值,接收方无法判断源地址是否真实,可能导致错误数据的接收或者隐藏身份网络安全攻击。

 

数据加密

密码技术是保障信息安全的核心基础,解决数据的机密性、完整性、不可否认性以及身份识别等问题均需要以密码为基础。密码学包括密码编码学和密码分析学两部分。

密码编码:将密码变化的客观规律应用于编制密码来保守通信秘密。

密码分析学:研究密码变化客观规律中的固有缺陷,并应用于破译密码以获取通信情报。

 

传统密码算法

  1. 替代密码

    替代密码是将明文字母表M中的每个字母用密文字母表C中的相应字母来代替,常见的加密模型有移位密码、乘数密码、仿射密码等

    凯撒密码是移位密码的一个典型应用。

  2. 换位密码

    又称置换密码,根据一定的规则重新排列明文,以便打破明文的结构特性。置换密码的特点是保持明文的所有字符不变,只是利用置换打乱了明文字符的位置和次序。

对称密钥算法

对称密钥加密系统又可分为分组密码和流密码。计算机网络常用的对称密钥加密为分组密码。

分组密码又称块密码,是将明文消息分成若干固定长度的消息组,每组消息进行单独加密/解密。比较常见的分组密码有DESAESIDEA等。

 

非对称/公开密钥算法

对称密钥加密算法经过多年的发展与改进,在防止暴力破解上做的已经非常完美了,但是仍然面临一个最大的问题,就是密钥分发问题

不管使用的密码系统有多强,如果密码分析者能直接偷取到密钥,则整个系统将变得毫无价值。但是密钥总需要发送给用户(需要解密密文的一方)。如何既方便密钥的分发,又确保密码体系安全?非对称密钥密码,或称公开密钥密码(简称公钥密码),则便于解决密钥分发问题。

一个公钥,一对私钥;私钥加密,公钥解密。

 

消息完整性与数字签名

报文/消息完整性,也称为报文/消息认证(或报文鉴别),其主要目标是:

  • 证明报文确实来自声称的发送方;

  • 验证报文在传输过程中没有被篡改;

  • 预防报文的时间、顺序被篡改;

  • 预防报文持有期被篡改;

  • 预防抵赖(如发送方否认已发送的消息或接收方否认已接收的消息)。

消息完整性检测方法

为了实现消息完整性检测,需要用到密码散列函数H(m),表示对报文m进行散列化。

  1. MD5

  2. SHA-1

报文认证

消息完整性检测的一个重要目的就是要完成报文认证的任务。对报文m应用散列函数H,得到一个固定长度的散列码,称为报文摘要,记为H(m)。报文摘要可以作为报文m的数字指纹。

报文认证是使消息的接受者能够检验收到的消息是否是真实的认证方法。报文(消息)认证的目的有两个:一是消息源的认证,即验证消息的来源是真实的;另一个是消息的认证,即验证消息在传送过程中未被篡改。

  1. 简单报文验证

    没有达到对消息来源认证的目的。

  2. 报文认证码

    没法保证消息在接收方没有被篡改。

数字签名

以上两种报文认证方法均存在不足,没办法很好地完成报文认证的目的。亟待解决的问题有:发送方不承认自己发送过某一报文。接收方 自己伪造一份报文,并声称来自发送方。某个用户冒充另一个用户接收和发送报文。接收方对收到的信息进行篡改。解决这些问题的有效技术手段是数字签名。

数字签名与消息认证的区别:

消息认证使接收方能验证发送方以及所发消息内容是否被篡改过。当收发者没有利害冲突时,这对于防止第三者的破坏来说是足够了。但当接收者和发送者之间有利害冲突时,就无法解决他们之间的纠纷,此时须借助满足要求的数字签名技术。

数字签名应满足以下要求:

  1. 接收方能够确认或证实发送方的签名,但不能伪造

  2. 发送方发出签名的消息给接收方后,就不能再否认他所签发的消息

  3. 接收方对已收到的签名消息不能否认,即有收报认证

  4. 第三者可以确认收发双方之间的消息传送,但不能伪造此过程

 

  1. 简单数字签名

    数字签名就是对用私有密钥进行加密,而认证就是利用公开密钥解密,所以报文加密技术是数字签名的基础。

  2. 签名报文摘要

    简单数字签名确实可以很好地达到信息验证的目的,但是由于数字签名利用私有密钥对整个报文m进行加密,造成加密算法在报文很大时计算量很大,运行效率很低同时生成的扩展报文 是原始报文数量的两倍多,这样就造成接收方流量的极大浪费。

    签名报文摘要 是对报文m应用散列函数生成报文摘要,然后对报文摘要进行加密

 

身份认证

身份认证又称身份鉴别,是一个实体经过计算机网络向另一个实体证明其身份的过程。例如一个人向某个电子邮件服务器证明其身份。

 

密钥分发中心与证书认证机构

密钥分发中心

在对大量信息进行加密时,对称密钥密码因为其加密/解密效率高、速度快等特点,而比非对称密钥密码更为有效。然而对称密钥的应用,需要在通信方之间建立一个共享密钥。如果一方需要和N方进行保密通信,则需要建立N对共享密钥。显然,解决对称密钥的安全可靠分发,是成功利用对称密钥的关键

对称密钥分发的典型解决方案是,通信各方建立一个大家都信赖的密钥分发中心(KDC),并且每一方和KDC之间都保持一个长期的共享密钥。

证书认证机构

将公钥与特定实体绑定,通常是由认证中心(CA)完成的。

CA有以下作用:

  1. CA可以证实一个实体 (一个人、一台路由器)的 真实身份

  2. 一旦CA验证了某个实体的身份,CA会生成一个把其身份和实体的公钥绑定起来的证书,其中包含该实体的公钥及其全局唯一的身份识别信息(例如人的姓名或IP地址)等,并由CA对证书进行数字签名。

标签:网络安全,数字签名,报文,基础,认证,密码,密钥,消息
From: https://www.cnblogs.com/chenyonghua/p/18288232

相关文章

  • C++基础(九):C/C++内存管理
       经过前面的学习,相信已经对面向对象有了一定的理解,这一篇博客,我们来系统的学习一下C/C++内存管理,这方便我们从内存角度,理解我们的代码。目录一、C/C++内存分布二、C语言中动态内存管理方式三、C++中动态内存管理3.1new/delete操作内置类型3.2new和delete操作自......
  • C++基础(四):C++入门(三)
         通过前面的学习,我们已经掌握了一些最基本的C++入门知识,这一篇博客我们主要聚焦于:C/C++内存管理和C++11的一些新特性,为后续深入学习做好铺垫。目录一、C/C++内存管理1.1 C/C++内存分布1.2 C语言中动态内存管理方式:malloc/calloc/realloc/free1.3 C++内存......
  • python基础
    Python基础一、前序查看Python版本pyhton-V或Python--version二、基础部分2.1基础语法编码默认情况下,Python3源码文件以UTF-8编码,所有字符串都是unicode字符串。当然你也可以为源码文件指定不同的编码:#-*-coding:cp-1252-*-标......
  • 在ENSP里对DHCP的基础部署实验
    一:实验要求:建立一个小型网络(包含一台路由器,两台交换机,两台电脑,两个服务器(一个HTTP服务器,一个DNS服务器),两个平板)并使电脑自动获取IP地址,平板可以跨广播域访问网址。二:拓扑模板:三:实验步骤:第一步,在ENSP里新建一个拓扑并准备好相应的设备,如图所示:第二步,服务器和路由器和平板......
  • 微信小程序开发基础知识5----自定义组件
    一、组件的创建与引用1、创建组件①在项目的根目录中,鼠标右键,创建components->test文件夹②)在新建的components->test文件夹上,鼠标右键,点击“新建Component'③键入组件的名称之后回车,会自动生成组件对应的4个文件,后名分别为.js,json,.wxml和.wxss2、引用组件组......
  • CSS基础知识总结(3)
    1、如何从外面引入我们喜欢的字体?引用在线字体:这里需要引入一个网站:https://fonts.google.com/从这个网站中,我们可以找到自己想要的字体,然后点击进去,选择Getfont,,后面我们再Getembedcode;我们再把它提供给我们的字体链接复制到我们HTML文件的相应位置。就可以了。把字体下载......
  • JAVA零基础小白自学日志——第八天
    文章目录1.封装2.变量的作用域3.构造函数今日提要:封装(其实说白了,封装就是对访问范围的限制,不用因为名字就觉得高大上了)哦,对了,还要顺便讲个构造函数我在两天的学习里都提到了封装,而且是很严肃的,那你就应该知道这个封装对于Java程序非常重要;把昨天最后一个狗狗的......
  • JAVA零基础小白自学日志——第七天
    文章目录一、类1.类名2.这是啥东西?虽然在类里,但是不在构造方法里面,也不在语句块里,它是谁?它要干啥?3.方法二、对象(重头戏来喽)1.类与对象的关系2.类不是对象,对象由类构造3.类和对象到底在程序里是什么样的今日提要:类和对象(什么?你说你没对象!?去去去,别打岔,我这对象不是你......
  • Python基础语法
    #1.注释-代码中不参与编译执行的部分就是注释。(不会被翻译成机器码,它的存在不会影响程序的功能)#1)注释的作用#a.对代码进行注解和说明,提高代码的可读性(对人)#b.取消代码的功能##2)添加注释的方法#a.单行注释-在一行注释内容前加#(添加和取消单行注......
  • 零基础STM32单片机编程入门(八)定时器PWM输入实战含源码视频
    文章目录一.概要二.PWM输入框架图三.CubeMX配置一个PWM输入例程1.硬件准备2.创建工程3.调试四.CubeMX工程源代码下载五.讲解视频链接地址六.小结一.概要脉冲宽度调制(PWM),是英文“PulseWidthModulation”的缩写,简称脉宽调制,是利用单片机数字输出(1或0)来对外部模拟......