热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

计算机网络学习——网络安全

我们在使用网络时(尤其是做一些隐私的事情,比方账号密码等),希望计算机网络有对应的机制能够保证:1.机密性。即一旦通信双方的报文被窃听者截获,窃听者无法理解截获的报文。2.报文完整性

我们在使用网络时(尤其是做一些隐私的事情,比方账号密码等),希望计算机网络有对应的机制能够保证:

1.机密性。即一旦通信双方的报文被窃听者截获,窃听者无法理解截获的报文。

2.报文完整性。即防止有恶意篡改我们的数据。

3.端点识别。A和B通信是需要明确在电脑前的是A和B,而不是其他人。

4.运行安全。这里主要是服务器如何应对攻击。

下面我们分别对以上几个方面进行较为深入的了解。

1.机密性

有几个术语需要先介绍下。例如A和B进行通信,A向B发送的原始报文(例如“i love you”)称为 明文,未防止第三方截获到这个重要信息需要通过加密算法进行加密,加密后的报文称为 密文(例如e joiv qvo)。可是现在这些加密算法都是已知的,只不过每次加密用到的数据编码不同,我们称这个数据编码为 密钥(可以理解为密码表)。
A提供一个密钥Ka然后用加密算法把数据加密传输给B,B用密钥Kb对加密数据进行解密然后获取报文。如果A和B使用的密钥相同而且是秘密的(仅有A和B知道,截获报文的第三方不知),那么称为 对称密钥系统。相对应的还有 公开密钥系统,在公开密钥系统中,A和B使用一对(两个)密钥,一个密钥A和B都知道(截获报文的第三方也知道),称为 公钥。而另一个密钥仅有A或B知道。A自己知道的密钥称为A的 私钥,对应的B自己知道的密钥称为B的私钥。
下面我们来看公开密钥系统是如何加密数据的。如果A要向B发送数据,那么A首先要获取B的 公钥,然后使用加密算法对明文进行加密。B收到A发送的密文后,用 B的私钥进行解密。下面介绍公开密钥系统中著名的RSA算法

RSA加密算法

密钥的生成:
1.选择两个大的素数p和q
2.计算n=pq和z=(p-1)(q-1)
3.选择一个小于n的数e使得e和z互质。
4.找整数d使得ed%z==1
5.这样公钥就是(n,e),私钥是(n,d)
加密和解密:
设明文是m,加密后的密文为c=m^e%n。收到密文后用m=c^d%n进行解密

2.报文完整性和数字签名

当B收到A发送过来的报文后,B需要确认两点:该报文确实来自A而不是冒充A的第三方,而且报文在传输途中没有被篡改。

密码散列函数

把不同长度的数据m输入,经过散列函数计算后得到相同长度的值H(m),要求是如果X≠Y,则H(X)≠H(Y)基本成立(事实上我们前面提到过的报文鉴别码就是一种密码散列函数,只不过这个散列函数太弱了)。例如MD5算法就是把输入的数据映射成一个128字节的MD5值。我们平时使用的百度云的极速秒传就是根据MD5算法计算出你要上传文件的MD5值然后和百度云服务器上的MD5值比对,如果有相同的那就说明你要上传的文件在云端已经存在了。

报文鉴别码

有了密码散列函数,我们很容易想到鉴别报文完整性的过程:
1.A将生成的报文m计算散列值H(m),然后把散列值附加到报文m上。
2.B收到A发送来的报文(m',h')后计算H(m')的值,如果H(m')==h'则B认为一切正常。
我们发现这样存在一个问题,那就是如果报文由第三方假冒则接收方并不会知道这是假冒的报文(因为B没有A生成的H(m)的一点信息,因此B无法确认收到的h'的正确性)。因此我们在报文中添加一个 鉴别密钥s,s仅有A和B知道。A的散列值由原来的H(m)变成H(m+s),这样的话即便是由第三方假冒了信息,可是它不知道鉴别密钥s的值因此B在进行确认时会察觉出数据是假冒的。H(m+s)称为 报文鉴别码

数字签名

我们日常生活中在签协议时为了表示同意会在协议书上签下自己的名字。我们的签名有两个特点:经过比对字迹可以知道这是我签的(可证实),只有我能够签出这样的字迹(无法伪造)。在网络传输时我们也需要这种表明身份的数字签名。
显然,私钥加密可以实现数字签名的效果。但是加密的代价太大,我们采用散列函数计算散列函数来简化这一操作。即先通过散列函数计算散列值(散列函数双方已知),然后用私钥加密这个散列值。

公钥认证

这是数字签名的一个很重要的领域,即证实一个公钥属于某个实体。这将由认证中心(CA)来进行验证和绑定。一旦身份验证成功,CA会生成一个把身份和公钥绑定的 证书,这个证书包含公钥和公钥所有者的唯一身份标识信息(名字或ip地址),并由CA对证书进行数字签名。

3.端点识别

如何确定接收方接收到的来自A的数据的确是来自A而不是别人假冒的呢?这叫做鉴别协议(ap)
ap1.0: A直接向B说:我是A。这个协议太弱了,因为C也可以向B说“我是A”来冒充A。
ap2.0: B来比对接收到的IP地址是否和A的IP地址相吻合。不过我们可以直接修改网络层数据报的内容来假冒A的IP地址。
ap3.0: 除了说“我是A”之外,还需要加上一个口令(例如“芝麻开门”),这个口令是仅有A和B已知的。可是我们可以通过嗅探局域网上传输的数据分组从而窃取到A的口令,然后冒充A。
ap4.0:当B收到“我是A”之后向发送方发送一个不重数R(即每次的值都不同),发送方收到R后用他的私钥进行加密然后把密文发送给B,B解密后通过查看是否为R来判断发送方是否为A。

4.使用TCP连接安全:SSL

SSL为了使TCP的双方能够安全的建立连接在握手后增加了身份确认的阶段。







推荐阅读
  • 内网渗透技术详解:PTH、PTT与PTK在域控环境中的应用及猫盘内网穿透配置
    本文深入探讨了内网渗透技术,特别是PTH、PTT与PTK在域控环境中的应用,并详细介绍了猫盘内网穿透的配置方法。通过这些技术,安全研究人员可以更有效地进行内网渗透测试,解决常见的渗透测试难题。此外,文章还提供了实用的配置示例和操作步骤,帮助读者更好地理解和应用这些技术。 ... [详细]
  • MD5,即消息摘要算法5,是一种广泛应用于确保数据传输完整性的哈希算法。作为计算机领域常用的杂凑算法之一,MD5在多种主流编程语言中均有实现。此外,本文还详细解析了SHA、DES、3DES、AES、RSA和ECC等加密算法的基本原理和应用场景,为读者提供全面的加密技术概览。 ... [详细]
  • 在Linux系统中Nginx环境下SSL证书的安装步骤与WordPress CDN的高级配置指南
    在Linux系统中,Nginx环境下安装SSL证书的具体步骤及WordPress CDN的高级配置指南。首先,安装SSL证书需要准备两个关键配置文件,并建议在操作前备份相关服务器配置文件,以确保数据安全。随后,本文将详细介绍如何在Nginx中正确配置SSL证书,以及如何优化WordPress的CDN设置,提升网站性能和安全性。 ... [详细]
  • HTML5大文件传输技术深度解析与实践分享
    本文深入探讨了HTML5在Web前端开发中实现大文件上传的技术细节与实践方法。通过实例分析,详细讲解了如何利用HTML5的相关特性高效、稳定地处理大文件传输问题,并提供了可供参考的代码示例和解决方案。此外,文章还讨论了常见的技术挑战及优化策略,旨在帮助开发者更好地理解和应用HTML5大文件上传技术。 ... [详细]
  • 观星盘人群包深度解析与优化设置指南:提升营销效果的关键工具 ... [详细]
  • 本课程首先介绍了全栈开发的最后一公里为何重要,并详细探讨了搭建线上生产环境的关键步骤。随后,通过五个本地Node.js项目的实战演练,逐步展示了从快速构建纯静态简易站点到复杂应用的全过程,涵盖了环境配置、代码优化、性能调优等多方面内容。 ... [详细]
  • 深入浅出解析HTTP协议的核心功能与应用
    前言——协议是指预先设定的通信规则,确保双方能够按照既定标准进行有效沟通,从而实现准确的信息交换。例如,驯兽师通过拍手使动物坐下,这实际上是一种预设的协议。本文将详细探讨HTTP协议的核心功能及其广泛应用,解析其在现代网络通信中的重要作用。 ... [详细]
  • H3C防火墙自动构建安全隧道
    实验拓扑结构:两端采用静态IP地址配置。H3C防火墙能够自动构建IPSec安全隧道,确保数据传输的安全性。通过配置防火墙的非信任区域,实现自动化安全连接的建立与维护,有效提升网络防护能力。 ... [详细]
  • Nginx入门指南:从零开始掌握基础配置与优化技巧
    Nginx入门指南:从零开始掌握基础配置与优化技巧 ... [详细]
  • 一键将应用部署至远程服务器,体验超乎想象的便捷与高效
    该插件作为IDEA的内置功能,用户可以直接启用,无需额外安装。通过简单的配置,即可实现应用的一键部署至远程服务器,极大地提升了开发效率和便捷性。插件支持镜像管理和容器管理,允许用户与容器进行交互,并且兼容Docker Compose,适用于复杂的多容器应用部署。总结部分详细介绍了插件的使用方法和优势,附带的参考资料和项目源码地址为用户提供更多学习和实践资源。 ... [详细]
  • RancherOS 是由 Rancher Labs 开发的一款专为 Docker 设计的轻量级 Linux 发行版,提供了一个全面的 Docker 运行环境。其引导镜像仅 20MB,非常适合在资源受限的环境中部署。本文将详细介绍如何在 ESXi 虚拟化平台上安装和配置 RancherOS,帮助用户快速搭建高效、稳定的容器化应用环境。 ... [详细]
  • 在Python 3环境中,当无法连接互联网时,可以通过下载离线模块包来实现模块的安装。具体步骤包括:首先从PyPI网站下载所需的模块包,然后将其传输到目标环境,并使用`pip install`命令进行本地安装。此方法不仅适用于单个模块,还支持依赖项的批量安装,确保开发环境的完整性和一致性。 ... [详细]
  • 深入解析 Unity URP/SRP 渲染管线:匠心打造的全面指南
    本文深入探讨了Unity中的URP、SRP和HDRP渲染管线,详细解析了它们之间的关系及各自的特点。首先介绍了SRP的基本概念及其在Unity渲染架构中的作用,随后重点阐述了URP和HDRP的设计理念与应用场景。文章还分析了SRP诞生的背景,解释了为何Unity需要引入这一灵活的渲染框架,以满足不同项目的需求。通过对比URP和HDRP,读者可以更好地理解如何选择合适的渲染管线,以优化项目的性能和视觉效果。 ... [详细]
  • 第11章详细探讨了DOM扩展,其中W3C将一些已经广泛采用的专有扩展标准化并纳入规范。本章重点介绍了两个主要的DOM扩展:Selectors API(选择符API)和HTML5选择符API。这些扩展不仅增强了DOM操作的灵活性和效率,还为开发者提供了更强大的选择器支持,使得复杂的选择和操作变得更加简便。此外,本章还讨论了这些API在实际开发中的应用案例和最佳实践。 ... [详细]
  • Kali Linux 渗透测试实战指南:第24章 客户端安全威胁分析与防御策略
    客户端安全威胁分析与防御策略主要探讨了终端设备(如计算机、平板电脑和移动设备)在使用互联网时可能面临的各种安全威胁。本章详细介绍了这些设备如何作为信息和服务的提供者或接收者,以及它们在与服务器等其他系统交互过程中可能遇到的安全风险,并提出了有效的防御措施。 ... [详细]
author-avatar
robinqianqcs521
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有