安全通信的特性

机密性

仅有发送方和希望的接收方能够理解传输报文的内容。

报文完整性

通信的内容在传输过程中未被改变——或者恶意篡改或者意外改动。

端点鉴别

发送方和接收方都应该能证实通信过程所涉及的另一方,以确信通信的另一方确实具有他们所声称的身份。

运行安全性

机密性

对称密钥密码体系

凯撒密码

凯撒密码用于英语文本时,将明文报文中的每个字母用字母表中该字母后第k个字母进行替换(允许回绕,即把字母“ a ” 排在字母“ z ” 之后)。
凯撒密码的一种改进方法是单码代替密码,也是使用字母表中的一个字母替换该字母表中的另一个字母。然而,并非按照规则的模式进行替换,只要每个字母都有一个唯一的替换字母,任一字母都可用另一字母替换,反之亦然。
500年前,发明了多码代替密码,这种技术是对单码代替密码的改进。多码代替密码的基本思想是使用多个单码代替密码,一个单码代替密码用于加密某明文报文中一个特定位置的一个字母。因此,在某明文报文中不同位置出现的相同 字母可能以不同的方式编码。我们可以选择使用两个凯撒密码(K1=n和K2=m),加密时,第一个字母使用K1,第二个字母使用K2如此往复。

块密码

在块密码中,要加密的报文被处理为K比特的块。例如,如果k=64,则报义被划分 为64比特的块,每块被独立加密。为了加密一个块,该密码采用了一对一映射,将K比特块的明文映射为K比特块的密文。

块密码通常使用函数模拟随机排列表。在图中显示了当k=64时 这种函数的一个例子。该函数首先将64比特块划分为8个块,每个块由8 比特组成。每个8 比特块由一个“ 8 比特到8 比特”表处理,这是个可管理的长度。例如,第一个块由标志为T:的表来处理。接下来,这8个输出块被重新装配成一 个64比特的块。该输出被回馈到64比特的输人,开始了第二次循环。经n次这样的循环后,该函数提供了一个64比特的密文块。这种循环的目的是使得每个输入比特影响最后输出比特的大部分(即使不是全部)。(如果仅使用一次循环,一个给定的输入比特将仅 影响64输出比特中的8比特。)这种块密码算法的密钥将是8张排列表(假定置乱函数是公共已知的)。

块密码连接

在计算机网络应用中,我们通常需要加密长报文。如果我们使用前面描述的块密码,通过直接将报文切割成k比特块并独立地加密每块,将出现一个问题。注意到两个或更多个明文块可能是相同的。例如,两个或 更多块中的明文可能是“HTTP/1.1”。对于这些相同的块,块密码当然将产生相同的密文。当攻击者看到相同的密文块时,它可能潜在地猜出其明文,并且通过识别相同的密文 块和利用支撑协议结构的知识,甚至能够解密整个报文。
为了解决这个问题,我们能够在密文中混合某些随机性,使得相同的明文块产生不同的密文块。

公开密钥加密

公开密钥密码的使用在概念上相当简单。发送方用接收方发布的公钥加密报文,然后将加密好的报文发送给接收方,接收方使用自己的私钥进行解密。

RSA

RSA算法几乎已经成了公开密钥密码的代名词。
RSA广泛地使用了模n算术的算术运算。

报文完整性和数字签名

密码散列函数

密码散列函数要求具有下列附加的性质:
•找到任意两个不同的报文x和y使得H(x) =H(y),在计算上是不可能的。
不严格地说,这种性质就意味着人侵者在计算上不可能用其他报文替换由散列函数保护的报文。

报文鉴别码

为了执行报文完整性,除了使用密码散列函数,Alice和Bob将需要共享秘密S。这个共享的秘密只不过是一个比特串,它被称为鉴别密钥。使用这个共享秘密,报文完整性能够执行如下:

  1. Alice 生成报文m ,用s级联m以生成m + s , 并计算散列H ( m + s ) (例如使用 SHA-1)。H(m + s)被称为报文鉴别码MAC.
  2. 然后A l i c e 将MAC 附加到报文m 上,生成扩展报文(m ,H( m + s ) ) , 并将该扩展报文发送给Bob。
  3. Bob接收到一个扩展报文(m,h),由于知道s,计算出报文鉴别码H(m+s)。如 果H(m+s) =h,Bob得到结论:一切正常。

数字签名

数字签名就是在数字领域实现这些目标的一种密码技术。
公钥密钥是一种提供数字签名的优秀候选者。
Bob让他的初始长报文通过一个散列函数。然后他用自己的私钥对得到的散列进行数字签名。明文形式的初始报文连同已经数字签名的报文摘要一道被发送给Alice。Alice先把发送方的公钥应用于报文获得一个散列结果。然后她再把该散列函数应用于明文报文以得到第二个散列结果。如果这两个散列匹配,则Alice可以确信报文的完整性及其发送方。

密钥分发与认证

对称密钥

可信的密钥分发中心(KDC)担当实体之间的中介

公钥问题

可信证书权威机构(CA)

端点鉴别

端点鉴别就是一个实体经过计算机网络向另一个实体证明其身份的过程。

ap1.0

直接发送一个报文给Bob,说她就是Alice。

ap2.0

如果Alice有一个总是用于通信的周知网络地址(如一个IP地址),则Bob能够试图通过验证携带鉴別报文的IP数据报的源地址是否与Alice的周知IP地址相匹配来进行鉴别。(IP哄骗)

ap3.0

进行鉴别的一种经典方法是使用秘密口令。口令是鉴别者和被鉴别者之间的一个共享秘密。Gmail、Telnet、FTP和许多其他服务使用口令鉴别。(重放攻击)

ap3.1

通过加密口令,我们能够防止攻击者得知Alice 的口令。我们假定Alice 和Bob 共享一个对称密钥,则Alice可以加密口令,并向Bob发送其识别报文 “我是Alice” 和加密的口令。(重放攻击)

ap4.0

在3.1中Bob不能区分Alice的初始鉴別报文和后来入侵者回放的Alice的初始鉴别报文。可以使用不重数来解决这个问题。
不重数是在一个协议的生存期中只使用一次的数。也就是说,一旦某协议使用了一个不重数,就永远不会再使用那个数字了。
协议ap4.0以如下方式使用一个不重数:

  1. Alice向Bob发送报文“我是Alice”。
  2. Bob选择一个不重数N,然后把这个值发送给Alice。
  3. Alice 使用她与Bob 共享的对称密钥来加密这个不重数,然后把加密的不重数K发回给Bob 。与在协议aP3.1 中一样,由于Alice 知道并用它加密一个值,就使得Bob知道收到的报文是由Alice产生的。这个不重数用于确定Alice是活跃的。
  4. Bob解密接收到的报文。如果解密得到的不重数等于他发送给Alice的那个不重数,则可鉴别Alice的身份。

ap5.0

使用不重数+公钥

  1. Alice向Bob发送报文“我是Alice”。
  2. Bob选择一个不重数N,然后把这个值发送给Alice。
  3. Alice 使用她私钥加密这个不重数,然后把加密的不重数K发回给Bob 。
  4. Bob用公钥解密接收到的报文。如果解密得到的不重数等于他发送给Alice的那个不重数,则可鉴别Alice的身份。
    (中间人攻击)

运行安全性

防火墙

防火墙是一个硬件和软件的结合体,它将一个机构的内部网络与整个因特网隔离开,允许一些数据分组通过而阻止另一些分组通过。
防火墙具有3个目标::

  1. 防止拒绝服务攻击
  2. 防止非法的修改访问内部数据
  3. 仅允许授权的访问进行内部网络
    防火墙能够分为3类:
    传统分组过滤器
    状态分组过滤器
    应用程序网关

传统的分组过滤器

一个机构通常都有一个将其内部网络与其ISP相连的网关路由器, 而这个路由器正是分组过滤出现的地方。分组过滤器独立地检査每个数据报,然后基于管理员特定的规则决定该数据报应当允许通过还是应当丢弃。
例子1:阻塞所有UDP报文和所有Telnet,以防止外部人员使用Telnet登录到内部的主机上,防止内部人员使用Telnet,登录到外部网络的主机上。
过滤规则设置为
阻塞UDP报文:对于进入和离开的分组,凡是IP头部中传输层协议为UDP的报文,全部丢弃。
阻塞Telnet应用:对于进入和离开的分组,凡是源或者目的端口号为23的分组,全部丢弃。
例子2:阻止入TCP段(协议字段=6)具有ACK=0
防止外部客户就与内部客户机进行TCP链接,但允许内部客户机与外部链接。
例子3:
假设Aliec管理一个公司网络222.2.0.0/16,且一般不允许来自公众网的用户访问内部网络,但是Alice正在与某个大学的Bob及其同事合作,因此来自Bob所在大学的访问(111.11/6)能到达其公司网络的一个特点子网(222.22.22/24)。Alice知道攻击者也在Bob的大学中,且其子网为111.11.11/24
逐个分解要阻塞的内容:
R3:目的地址:0.0.0.0。源地址:0.0.0.0。动作:拒绝
R2:目的地址:222.22/16。源地址:111.11.11/24。动作:拒绝
R1:目的地址:222.22/16。源地址:111.11/16。动作:允许
优先级:R1>R2>R3

状态分组过滤器

在传统的分组过滤器中,根据每个分组分离地作出过滤决定。状态过滤器实际地跟踪TCP连接,并使用这种知识作出过滤决定。

应用程序网关

为了得到更高水平的安全性,防火墙必须把分组过滤器和应用程序网关结合起来。应用程序网关还除了看IP/TCP/UDP首部外,还基于应用数据来做策略决定。一个应用程序网关是一个应用程序特定的服务器,所有应用程序数据都必须通过它。多个应用程序网关可以在同一主机上运行,但是每一个网关都是有自 己的进程的单独服务器。

例子:允许选定的内部用户Telnet外部

  1. 要求所有Telnet用户通过网关出去
  2. 对于授权的用户,网关对目的主机建立Telnet链接。网关中继2个链接之间的数据
  3. 路由器过滤器阻止所有不是从网关起始的Telnet链接

入侵检测系统 (IDS)

一种不仅能够检査所有通过它传递的分组的首部(类似于分组过滤器),而且能执行深度分组检查(与分组过滤器不同)的设备。当这样的设备观察到一个可疑的分组时,它能够防止这些分组进入该机构网络。或者仅仅是因为觉得该活动可疑,该设备虽说能够让这些分组通过,但要向网络管理员发出告警,网络管理员然后密切关注该流量并采取适当的行动。当观察到潜在恶意流量时能产生告警的设备称为入侵检测系统

基于特征的IDS

基于特征的IDS维护了一个范围广泛的攻击特征数据库。每个特征是与一个入侵活动相关联的规则集。一个特征可能只是有关单个分组的特性列表(例如 源和目的端口号、协议类型和在分组载荷中的特定比特串),或者可能与一系列分组有关。
基于特征的IDS对不记录的新攻击完全缺乏判断力。另一个缺点是,即使与一个特征匹配,它也可能不是一个攻击的结果, 因此产生了一个虚假告警。最后,因为每个分组必须与范围广泛的特征集合相比较,IDS 可能处于处理过载状态并因此难以检测出许多恶意分组。

基于异常的IDS

当基于异常的IDS观察正常运行的流量时,它会生成一个流量概况文件。然后,它寻找统计上不寻常的分组流,例如,ICMP分组不寻常的百分比,或端口扫描和ping掠过导致指数性突然增长。基于异常的IDS系统最大的特点是它们不依赖现有攻击的以前知识。 迄今为止,大多数部署的IDS主要是基于特征的,尽管某些IDS包括了某些基于异常的特性。

因特网安全性威胁

分组嗅探

攻击者能够读取所有未加密的数据
对策:
组织中的所有主机运行软件进行周期性的检查,看是否主机接口为混杂模式
广播媒体的每段一台主机

IP哄骗

伪装IP
对策
入口过滤:路由器对于非法源地址不应当向外转发。

DOS攻击(拒绝服务攻击)

攻击者产生大量分组淹没了接收方
分布式DOS:多个协同的源淹没接收方
如:SYN攻击
对策
在到达主机前过滤出洪泛分组(如SYN)
溯源到洪泛的源

多个层次中的安全问题

安全电子邮件

我们利用了会话密钥来解决机密性问题。具体来说:
①A l i c e 选择一个随机对称会话密钥Ks ;
②用这个对称密钥加密她的报文
③用B o b 的公钥加密这个对称密钥;
④级联该加密的报文和加密的对称密钥以形成一个“包”;
⑤向Bob的电子邮件地址发送这个包。
当B o b 接收到这个包时:
①他使用其私钥Kb得到对称密钥Ks;
②使用这个对称密钥Ks解密报文zn。

解决报文完整性和端点鉴别:
①Alice对她要发送的报文m应用一个散列函数H,从而得到一个报文摘要;
②用她的私钥对散列函数的结果进行 签名,从而得到一个数字签名;
③把初始报文(未加密)和该数字签名级联起来生成一个包;
④向Bob的电子邮件地址发送这个包。
当Bob接收到这个包时:
①他将Alice的公钥应用到被签名的报文摘要上;
②将该操作的结果与他自己对该报的散列H进行比较。

综合:
现在我们考虑设计一个提供机密性、发送方鉴别和报文完整性的电子邮件系统。
Alice首先生成一个预备包,它与图2中的包完全相同,其中包含她的初始报文和该报文数字签名过的散列。然后Alice把这个预备包看作一个报文,再用图1中的发送方的步骤发送这个新报文。
当Bob接收到这个包后,他首先应用图1中他这一侧的步骤,然后再应用图2中他这一侧的步骤。
Alice两次使用了公开密钥密码:一次用了她的私钥,另一次用了 Bob的公钥。同样,Bob也两次使用了公开密钥密码:一次用了他的私钥,一次用了 Alice的公钥。

SSL

我们从描述一个简化的SSL版本开始,这将使我们从宏观上理解SSL的工作原理和工作过程。我们将这个SSL的简化版本称之为“类SSL”。描述过类SSL之后,在下一小节中我们将描述真实的SSL,填充细节。类SSL (和SSL)具有三个阶段:握手、密钥导出和数据传输。我们现在描述针对一个客户(Bob)和一个服务器(Alice)之间的通信会话的这三个阶段,其中Alice具有私钥/公钥对和将她的身份与其公钥绑定的证书。

握手

在握手阶段,Bob需要:

  1. 与Alice创建一条TCP连接;
  2. 验证Alice是真实的Alice;
  3. 发送给Alice 一个主密钥,Bob和Alice持用该主密钥生成SSL会话所需的所有对称密钥。

一旦创建了 TCP连接,Bob就向Alice发送一个hello报文。Alice则用她的证书进行响应,证书中包含了她的公钥。因为该证书已被某CA证实过,Bob明白无误地知道该公钥属于Alice。然后,Bob产生一个主密钥(MS)(该MS将仅用于这个SSL会话),用Alice的公钥加密该MS以生成加密的主密钥(EMS),并将该EMS发送给Alice。Alice用她的私钥解密该EMS从而得到该MS。在这个阶段后,Bob和Alice均知道了用于这次SSL会话的主密钥。

密钥导出

从原则上讲,MS此时已由Bob和Alice共享,它能够用作所有后继加密和数据完整性检查的对称会话密钥。然而,对于Alice和Bob每人而言,使用不同的密码密钥,并且对于加密和完整性检查也使用不同的密钥,通常认为更为安全。因此,Alice和Bob都使用 MS生成4个密钥:

Eb,用于从Bob发送到Alice的数据的会话加密密钥
Mb,用于从Bob发送到Alice的数据的会话MAC密钥

Ea,用于从Alice发送到Bob的数据的会话加密密钥
Ma,用于从Alice发送到Bob的数据的会话MAC密钥

Alice和Bob每人都从MS生成4个密钥。这能够通过直接将该MS分为4个密钥来实现。在密钥导出阶段结束时,Alice和Bob都有了 4个密钥。其中的两个加密密钥将用于加密数据;两个MAC密钥将用于验证数据的完整性。

数据传输

既然Alice和Bob共享相同的4个会话密钥,他们就能够经TCP连接开始发送安全的数据。因为TCP是一种字节流协议,一种自然的方法是用SSL在传输中加密应用数据,然后将加密的数据在传输中传给TCP。但是如果我们真的这样做,我们将用于完整性检查的MAC置于何处呢?我们无疑不希望等到TCP会话结束时才验证所有Bob数据的完整性,Bob数据的发送要经历整个会话!为了解决这个问题,SSL将数据流分割成记录,对每个记录附加一个MAC用于完整性检查,然后加密该“记录+ MAC”。为了产生这个MAC,Bob将数据连同密钥放人一个散列函数中。为了加密“记录+ MAC”这个包,Bob使用他的会话加密密钥然后这个加密的包将传递给TCP经因特网传输。

SSL记录

SSL记录由类型字段、版本字段、长度字段、数据字段和MAC字段组成。注意到前三个字段是不加密的。类型字段指出了该字段是握手报文还是包含应用数据的报文。它也用于关闭SSL连接,如下面所讨论。在接收端的SSL使用长度字段以从到达的TCP字节流中提取SSL记录。版本字段是自解释的。

IPsec和VPN

IP安全(IP Security)协议更常被称为IPsec,它为网络层提供了安全性。IPsec为任意两个网络层实体之间的IP数据报提供了安全。
跨越在多个地理区域上的某机构常常希望有自己的IP网络,使它的主机和服务器能 够以一种安全和机密的方式彼此发送数据。为了达到这个目标,该机构能够实际部署一个 单独的物理网络,该网络包括路由器、链路和DNS基础设施且与公共因特网完全分离。 这样一种为特定的机构专用的分立网络被称为专用网络

AH协议和ESP协议

在IPsec协议族中,有两个主要协议:鉴别首部(AH)协议和封装安全性载荷(ESP)协议。AH协议提供源鉴别和数据完整性服务,但不提 供机密性服务。ESP协议提供了源鉴别、数据完整性和机密性服务。

安全关联

在从源实体向目的实体发送IPsec数据报之前,源和目的实体创建 了一个网络层的逻辑连接。这个逻辑连接称为安全关联。一个 SA是一个单工逻辑连接;也就是说,它是从源到目的地单向的。如果两个实体要互相发 送安全数据报,则需创建两个SA,每个方向一个。

在802.11中的安全性

有线等效保密

IEEE 802. 11的WEP协议为在主机和无线接入点(即基站)之间提供鉴別和数据的加密。WEP并没有指定密钥管理算法,因此它假定主机和无线接入点之 间通过带外方式就密钥达成了某种一致鉴别以下列方式进行:

  1. 无线主机通过接入点请求鉴别。
  2. 接入点以一个128字节的不重数值响应该鉴别请求。
  3. 无线主机用它与这个接入点共享的密钥加密这个不重数值。
  4. 接入点解密主机加密的不重数值。
    如果解密所得不重数值与初始发给主机的值相同,则这个接入点鉴別了该主机。

考纲

计算机网络中的安全
(1) 网络安全的概念
(2) 密码学的基本原则
(3) 消息完整性和数字签名的概念
(4) SSL、IPsec、VPN的基本概念
(5) 秘钥分发和认证的过程
(6) 入侵检测的概念

计算机网络——计算机网络中的安全相关推荐

  1. 计算机网络技术中的NAT,计算机网络技术中的NAT-2.ppt

    计算机网络技术中的NAT-2.ppt 网络地址转换 概述 NAT最初的目的是允许把私有IP地址映射到外部网络的合法IP地址,以减缓可用IP地址空间的消耗. 位于inside网络和outside网络中的 ...

  2. 计算机网络安全六要素,六要素教学在计算机网络教学中的探索与反思

    <六要素教学在计算机网络教学中的探索与反思>由会员分享,可在线阅读,更多相关<六要素教学在计算机网络教学中的探索与反思(5页珍藏版)>请在装配图网上搜索. 1.六要素教学在计算 ...

  3. 计算机网络路由器方面的论文,简析计算机网络问题中路由器故障的论文

    1 路由器的概念及基本构成 1.1 路由器的概念 路由器是计算机硬件的一个组成部分,其作为网络设备,起到连接计算机与网络的作用,一实现用户顺利上网,完成所需要的工作内容和休闲娱乐.路由器最初产生于上世 ...

  4. 纵观计算机网络发展历程,人工智能在计算机网络技术中的应用分析

    人工智能在计算机网络技术中的应用分析 罗思浩 宁波工程学院 315020 摘要:人工智能技术随着科学技术的发展,目前已相当成熟,其拥有众多优势,可对计算机技术存在的诸多问题予以解决.在此背景之下,本文 ...

  5. 在计算机网络术语中wan的中文意思是什么,在计算机网络术语中,WAN的中文含义是...

    语音内容: 大家好,我是时间财富网智能客服时间君,上述问题将由我为大家进行解答. 在计算机网络术语中,WAN的中文含义是广域网. 电子计算机(electronic computer)通称电脑,是现代一 ...

  6. 网络安全下用c语言写蠕虫病毒,神经网络在计算机网络安全管理中的应用

    摘 要:伴随着改革开放的不断深入和发展,新的世纪,全球进入信息时代,计算机网络平台在人们日常生活中扮演的角色越来越重要,计算机网络能够储存大量的信息资源,不仅给人们的生活带来了极大的便利,而且丰富了人 ...

  7. 计算机网络建设中涉及到哪些硬件,网络基础知识入门

    网络基础知识入门 导语:随着计算机的广泛应用和网络的流行,我们应该要知道一些网络基础知识,下面是小编收集整理的网络基础入门知识,欢迎参考! 计算机网络是什么 这是首先必须解决的一个问题,绝对是核心概念 ...

  8. 网络教学在计算机专业应用研究,移动终端在中职计算机网络教学中的应用研究...

    摘 要:为了顺应国家的发展及社会的需求,我国从九年义务教育就开始切入基础的计算机课程,到了大学阶段就需要对计算机有较全面的了解,由此可见计算机行业技能与素质兼备人才的稀缺.中职院校在办学初期的宗旨是成 ...

  9. 在计算机网络系统中一般要求误码率低于,[单选] 在计算机网络通信系统中,一般要求误码率低于()。...

    [单选] 在计算机网络通信系统中,一般要求误码率低于(). 更多相关问题 [判断题]"京剧"指的是北京的戏剧. [多选题]某电子技术类期刊的主办单位根据市场情况,决定对刊物进行以下 ...

  10. 计算机网络搭建软件,计算机网络搭建中的虚拟仿真技术

    计算机网络搭建中的虚拟仿真技术 来源:用户上传 作者:胥果 [摘           要]  现代计算机技术.通信技术的快速发展将二者成功地连接在一起,形成计算机网络,广泛地应用于当前的生活和工作中. ...

最新文章

  1. 解读《这就是 OKR》 | 你制定的 OKR 真的合格吗?
  2. PIE SDK Geometry的坐标转换
  3. 验证码识别Burp reCAPTCHA插件使用
  4. 网站收录工具(php导航自动收录源码)_10步把企业网站优化做到极致,SEO优化的核心知识...
  5. 路由技术(来自百度百科)
  6. 烘烤店LOGO在线设计制作教程
  7. 摩拜APP、小程序停服 摩拜单车全面接入美团
  8. 关于软件开发的一些常识和思考
  9. ArmLinux BOOTLOADER全程详解
  10. JSONObject.fromObject() 转换时的日期处理问题
  11. Eviews9.0---软件安装
  12. html如何转换为opml,使用并解析 OPML 格式的订阅列表来转移自己的 RSS 订阅(解析篇)...
  13. 第二次作业——时事点评
  14. php 获取当天是星期几,获取当天或某个日期是星期几
  15. 广州楼市:这种楼盘谨慎购买,未来难转手,投资请回避!
  16. 用 Python 抓取了 7000 多本电子书
  17. 关于 SCJP 1.4 考试
  18. mingw64亲测有效版本,直接解压,无需安装
  19. 2017年6月最新木星照片
  20. 表单的一些样式以及属性

热门文章

  1. 最小二乘拟合(矩阵)
  2. HashMap底层详讲
  3. centos安装mysql_centos如何安装mysql
  4. 论文阅读:SO-Net: Self-Organizing Network for Point Cloud Analysis
  5. [Music]五月天-知足
  6. 对io.UnsupportedOperation: fileno错误的解决办法
  7. apktools使用
  8. 渗透测试工具集(非常详细),从零基础入门到精通,看完这一篇就够了(附安装)
  9. 1. Two Sum查找列表中两数加和等于特定值Python Java
  10. 堆栈指针寄存器-SP详解