精华内容
下载资源
问答
  • 什么是网络安全 接人通信所需的资源)。考虑了这些问题后,我们能够指出安全通信( secure communication) 具有下列所需要的特性: 机密性( confidentiality)。仅有发送方和希望的接收方能够理解传输报文的内容。因为...

    计算机网络中的安全

    什么是网络安全

    接人通信所需的资源)。考虑了这些问题后,我们能够指出安全通信( secure communication)
    具有下列所需要的特性:

    • 机密性( confidentiality)。仅有发送方和希望的接收方能够理解传输报文的内容。因为窃听者可以截获报文,这必须要求报文在一定程度上进行加密( encrypted),使截取的报文无法被截获者所理解。机密性的这个方面大概就是通常意义上对于术语安全通信的理解。
    • 报文完整性( message integrity)。为了确保其通信的内容在传输过程中未被改变一一或者恶意篡改或者意外改动。我们在可靠传输和数据链路协议中遇到的检验和技术在扩展后能够用于提供这种报文完整性。
    • 端点鉴别(end- point authentication)。发送方和接收方都应该能证实通信过程所涉及的另一方,以确信通信的另一方确实具有他们所声称的身份。人类的面对面通信可以通过视觉识别轻易地解决这个问题。当通信实体在不能看到对方的媒体上交换报文时,鉴别就不是那么简单了。当某用户要访问一个邮箱,邮件服务器如何证实该用户就是他或她所声称的那个人呢?
    • 运行安全性( operational security)。几乎所有的机构(公司、大学等)今天都有了与公共因特网相连接的网络。这些网络都因此潜在地能够被危及安全。攻击者能够试图在网络主机中安放蠕虫,获取公司秘密,勘察内部网络配置并发起DoS攻击。防火墙位于机构网络和公共网络之间,控制接入和来自网络的分组。入侵检测系统执行“深度分组检查”任务,向网络管理员发出有关可疑活动的警告。

    入侵者能够潜在地执行下列行为:

    • 窃听一一监听并记录信道上传输的控制报文和数据报文
    • 修改、插入或删除报文或报文内容

    密码学的原则

    密码技术使得发送方可以伪装数据,使入侵者不能从截取到的数据中获得任何信息。当然,接收方必须能够从伪装的数据中恢复出初始数据。

    对称密钥密码体制

    所有密码算法都涉及用一种东西替换另一种东西的思想,例如,取明文的一部分进行计算,替换适当的密文以生成加密的报文。
    可以根据入侵者所拥有的信息区分三种不同的情况:

    • 唯密文攻击。有些情况下,入侵者只能得到截取的密文,也不了解明文报文的内容。我们已经看到,统计分析有助于对加密方案的唯密文攻击( ciphertext- only attack)。
    • 已知明文攻击。,如果 以某种方式确信在密文报文中会出现“bob”和“ alice",她就可以确定字母a、1、i、e、e、b和o的(明文,密文)匹配关系。 然后记录到传输的所有密文,然后在一张纸上找到Bob写下的已解密的明文。当入侵者知道(明文,密文)的一些匹配时,我们将其称之为对加密方案的已知明文攻击( known- plaintext attack)
    • 选择明文攻击。在选择明文攻击( chosen- plaintext attack)中,入侵者能够选择某明文报文并得到该明文报文对应的密文形式。
    1. 块密码
      对称加密技术有两种宽泛的类型:流密码( stream ciphers)和块密码( block ciphers)。
      快密码用于多种因特网协议的加密中,包括PGP(用于安全电子邮件)、SSL(用于使TCP连接更安全)和Pse(用于使网络层传输更安全)。
      在块密码中,要加密的报文被处理为k比特的块。例如,如果k=64,则报文被划分为64比特的块,每块被独立加密。为了加密一个块,该密码采用了一对一映射,将k比特块的明文映射为k比特块的密文。
      目前有一些流行的块密码,包括DES( Data Eneryption Standard,数据加密标准3DES和AES( Advanced Encryption Standard,高级加密标准)。这些标准中的每种都使用了函数(而不是预先决定的表)。这些算法中的每种也使用了比特串作为密钥。
    2. 密码块的链接
      在计算机网络应用中,我们通常需要加密长报文(或长数据流)。如果我们使用前面描述的块密码,通过直接将报文切割成k比特块并独立地加密每块,将出現一个微妙而重要的问题。为了理解这个问题,注意到两个或更多个明文块可能是相同的。例如,两个或更多块中的明文可能是“HTTP/1.1”。对于这些相同的块,块密码当然将产生相同的密文。当攻击者看到相同的密文块时,它可能潜在地猜出其明文,并且通过识别相同的密文块和利用支撑协议结构的知识,甚至能够解密整个报文。为了解决这个问题,我们能够在密文中混合某些随机性,使得相同的明文块产生不同的密文块。

    公开密钥加密

    从凯撒密码时代直到20世纪70年代的两千多年以来,加密通信都需要通信双方共享一个共同秘密,即用于加密和解密的对称密钥。这种方法的一个困难是两方必须就共享密钥达成一致;但是这样做的前提是需要通信(可假定是安全的)!可能是双方首先会面,人为协商确定密钥(例如,凯撒的两个百夫长在罗马浴室碰头),此后才能进行加密通信。但是,在网络世界中,通信各方之间可能从未见过面,也不会在网络以外的任何地方交谈。此时通信双方能够在没有预先商定的共享密钥的条件下进行加密通信吗?在1976年,Diie和 Hellman[ Diffie1976]论证了一个解决这个问题的算法(现在称为 Diffe- Hellman密钥交换),这是个完全不同、极为优雅的安全通信算法,开创了如今的公开密钥密码系统的发展之路。我们很快就会看到公开密钥密码系统也有许多很好的特性,使得它不仅可以用于加密,还可以用于鉴别和数字签名。有趣的是,最近发现20世纪70年代早期由英国通信电子安全团体的研究人员独立研究的一系列秘密报告中的思想,与[Die1976]和[RSA1978」中的思想类似[EIis1987]。事实常常如此,伟大的想法通常会在许多地方独立地闪现;幸运的是,公钥的进展不仅秘密地发生,而且也在公众视野中发生。

    1. RSA
      RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。
      1973年,在英国政府通讯总部工作的数学家克利福德·柯克斯(Clifford Cocks)在一个内部文件中提出了一个相同的算法,但他的发现被列入机密,一直到1997年才被发表。
      对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。假如有人找到一种快速因数分解的算法的话,那么用RSA加密的信息的可靠性就肯定会极度下降。但找到这样的算法的可能性是非常小的。今天只有短的RSA钥匙才可能被强力方式解破。到目前为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度足够长,用RSA加密的信息实际上是不能被解破的。
    • 密钥生成
      首先要使用概率算法来验证随机产生的大的整数是否是质数,这样的算法比较快而且可以消除掉大多数非质数。假如有一个数通过了这个测试的话,那么要使用一个精确的测试来保证它的确是一个质数。
      除此之外这样找到的p和q还要满足一定的要求,首先它们不能太靠近,此外p-1或q-1的因子不能太小,否则的话N也可以被很快地分解。
      此外寻找质数的算法不能给攻击者任何信息,这些质数是怎样找到的,尤其产生随机数的软件必须非常好。要求是随机和不可预测。这两个要求并不相同。一个随机过程可能可以产生一个不相关的数的系列,但假如有人能够预测出(或部分地预测出)这个系列的话,那么它就已经不可靠了。比如有一些非常好的随机数算法,但它们都已经被发表,因此它们不能被使用,因为假如一个攻击者可以猜出p和q一半的位的话,那么他们就已经可以轻而易举地推算出另一半。
      此外密钥d必须足够大,1990年有人证明假如p大于q而小于2q(这是一个很经常的情况)而d < N^(1/4)/3,那么d是e/N的某一个渐进分数的分母(这个算法的原理是利用N=pq来逼近phi(N):=(p-1)(q-1),而算法要求d*e除以phi(N)的余数是1,所以de=k phi(N)+1,e/phi(N)=k/d +1/phi(N),这说明了e/phi(N)与k/d近似相等,从而可以通过e/N的渐进分数来寻找d(当然更多的,我们也可以更好地估计phi(N)来获得一个更好的估计,但对通常情况(e=65537),RSA算法仍然是安全的))。
      最后,RSA的原理保证了d和e必须与(p-1)(q-1)的因子互素,因此d,e都不可能为2。 [2]
    • 运算速度
      由于进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。RSA的速度是对应同样安全级别的对称密码算法的1/1000左右。
      比起DES和其它对称算法来说,RSA要慢得多。实际上Bob一般使用一种对称算法来加密他的信息,然后用RSA来加密他的比较短的对称密码,然后将用RSA加密的对称密码和用对称算法加密的消息送给Alice。
      这样一来对随机数的要求就更高了,尤其对产生对称密码的要求非常高,因为否则的话可以越过RSA来直接攻击对称密码。
    • 密钥分配
      和其它加密过程一样,对RSA来说分配公钥的过程是非常重要的。分配公钥的过程必须能够抵挡中间人攻击。假设Eve交给Bob一个公钥,并使Bob相信这是Alice的公钥,并且她可以截下Alice和Bob之间的信息传递,那么她可以将她自己的公钥传给Bob,Bob以为这是Alice的公钥。Eve可以将所有Bob传递给Alice的消息截下来,将这个消息用她自己的密钥解密,读这个消息,然后将这个消息再用Alice的公钥加密后传给Alice。理论上Alice和Bob都不会发现Eve在偷听他们的消息。今天人们一般用数字认证来防止这样的攻击。
    • 时间攻击
      1995年有人提出了一种非常意想不到的攻击方式:假如Eve对Alice的硬件有充分的了解,而且知道它对一些特定的消息加密时所需要的时间的话,那么她可以很快地推导出d。这种攻击方式之所以会成立,主要是因为在进行加密时所进行的模指数运算是一个位元一个位元进行的而位元为1所花的运算比位元为0的运算要多很多,因此若能得到多组讯息与其加密时间,就会有机会可以反推出私钥的内容。
    • 彩虹表攻击
      原因生成的素数由于随机数是固定有限的集合产生的数量较少,可以用彩虹表攻击。
      百度百科RSA

    报文完整性和数字签名

    使用密码术为两个通信实体提供机密性。报文完整性也称为报文鉴别。连同报文完整性,在本节中我们将讨论两个相关的主题:数字签名和端点鉴别。
    我们再次使用Aice和Bob来定义报文完整性问题。假定Bob接收到一个报文(这可能已经加密或可能是明文),并且他认为这个报文是由Aice发送的。为了鉴别这个报文,Bob需要证实:

    1. 该报文的确源自Aice
    2. 该报文在到Bob的途中没有被篡改。

    报文完整性这个问题在所有安全网络协议中都是至关重要的。
    举一个特定的例子,考虑一个使用链路状态路由选择算法(例如 OSPF)的计算机网络,在该网络中决定每对路由器之间的路由(参见第4章)。在一个链路状态算法中,每台路由器需要向该网络中的所有其他路由器广播一个链路状态报文。路由器的链路状态报文包括直接相连邻居的列表以及到这些邻居的直接费用。一旦某台路由器从其他所有路由器收到了链路状态报文,它能够生成该网络的全图,运行它的最小费用路由选择算法并配置它的转发表。对路由选择算法的一个相对容易的攻击是, Trudy分发具有不正确状态信息的虚假链路状态报文。因此产生了报文完整性的需求:当路由器B收到来自路由器A的链路状态报文,路由器B应当证实路由器A实际生成了该报文,并且进一步证实在传输过程中该报文没有被纂改。

    密码散列函数

    密码散列函数(Cryptographic hash function),又译为加密散列函数,是散列函数的一种。它被认为是一种单向函数,也就是说极其难以由散列函数输出的结果,回推输入的数据是什么。这样的单向函数被称为“现代密码学的驮马”。这种散列函数的输入数据,通常被称为消息(message),而它的输出结果,经常被称为消息摘要(message digest)或摘要(digest)。在信息安全中,有许多重要的应用,都使用了密码散列函数来实现,例如数字签名,消息认证码。
    密码散列函数是一种单向散列函数,将任意长度的消息压缩到某一固定长度的消息摘要,一个理想的密码散列函数应该有四个主要的特性:对于任何一个给定的消息,它都很容易就能运算出散列数值。难以由一个已知的散列数值,去推算出原始的消息。在不更动散列数值的前提下,修改消息内容是不可行的。对于两个不同的消息,它不能给与相同的散列数值。单向散列函数生成的信息摘要是不可预见的,消息摘要看起来和原始的数据没有任何的关系。而且,原始数据的任何微小变化都会对生成的信息摘要产生很大的影响 。它的模型为: h=H(M)
    其中, M是待处理的明文,可以为任意长;H是单向散列函数, h是生成的报文摘要,它具有固定的长度,并且和M的长度无关。其中 H具有以下的单向性质:给 H和M ,很容易计算 h;给定 h 和 H ,很难计算 M,甚至得不到的 M任何消息;给定H ,要找两个不同的 M1 和M2 ,使得H(M1)=H(M2) 在计算上是不可行的。
    散列函数(Hash function)又称散列算法、哈希函数,是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。好的散列函数在输入域中很少出现散列冲突。在散列表和数据处理中,不抑制冲突来区别数据,会使得数据库记录更难找到。所有散列函数都有如下一个基本特性:如果两个散列值是不相同的(根据同一函数),那么这两个散列值的原始输入也是不相同的。这个特性是散列函数具有确定性的结果,具有这种性质的散列函数称为单向散列函数。但另一方面,散列函数的输入和输出不是确定对应关系的,如果两个散列值相同,两个输入值很可能是相同的,但也可能不同,这种情况称为“散列碰撞(collision)”,这通常是两个不同长度的输入值,刻意计算出相同的输出值。输入一些数据计算出散列值,然后部分改变输入值,一个具有强混淆特性的散列函数会产生一个完全不同的散列值。
    数字签名(又称公钥数字签名,Digital Signature)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证,但法条中的电子签章与数字签名,代表之意义并不相同,电子签章用以辨识及确认电子文件签署人身份、资格及电子文件真伪者。而数字签名则是以数学算法或其他方式运算对其加密,才形成电子签章,意即使用数字签名才创造出电子签章。数字签名不是指将签名扫描成数字图像,或者用触摸板获取的签名,更不是落款。数字签名了的文件的完整性是很容易验证的(不需要骑缝章、骑缝签名,也不需要笔迹鉴定),而且数字签名具有不可抵赖性(即不可否认性),不需要笔迹专家来验证。数字签名应用了公钥密码领域使用的单向函数原理。单向函数指的是正向操作非常简单,而逆向操作非常困难的函数,比如大整数乘法。这种函数往往提供一种难解或怀疑难解的数学问题。公钥密码领域具备实用性的三个怀疑难解问题为:质数分解,离散对数和椭圆曲线问题。
    在密码学中,消息认证码(Message authentication code,缩写为MAC),又译为消息鉴别码、文件消息认证码、讯息鉴别码、信息认证码,是经过特定算法后产生的一小段信息,检查某段消息的完整性,以及作身份验证。它可以用来检查在消息传递过程中,其内容是否被更改过,不管更改的原因是来自意外或是蓄意攻击。同时可以作为消息来源的身份验证,确认消息的来源。消息认证码的算法中,通常会使用带密钥的散列函数(HMAC),或者块密码的带认证工作模式(如CBC-MAC)。信息鉴别码不能提供对信息的保密,若要同时实现保密认证,同时需要对信息进行加密。
    百度百科-密码散列函数

    报文鉴别码(MAC)

    消息认证码(带密钥的Hash函数):密码学中,通信实体双方使用的一种验证机制,保证消息数据完整性的一种工具。构造方法由M.Bellare提出,安全性依赖于Hash函数,故也称带密钥的Hash函数。消息认证码是基于密钥和消息摘要所获得的一个值,可用于数据源发认证和完整性校验。
    消息认证码(带密钥的Hash函数):密码学中,通信实体双方使用的一种验证机制,保证消息数据完整性的一种工具。
    构造方法由M.Bellare提出,安全性依赖于Hash函数,故也称带密钥的Hash函数。消息认证码是基于密钥和消息摘要所获得的一个值,可用于数据源发认证和完整性校验。
    在发送数据之前,发送方首先使用通信双方协商好的散列函数计算其摘要值。在双方共享的会话密钥作用下,由摘要值获得消息验证码。之后,它和数据一起被发送。接收方收到报文后,首先利用会话密钥还原摘要值,同时利用散列函数在本地计算所收到数据的摘要值,并将这两个数据进行比对。若两者相等,则报文通过认证。
    消息验证码有两种计算方式 [1] :
    一种是利用已有的加密算法,如DES等直接对摘要值进行加密处理;另一种是使用专门的MAC算法。HMAC,它基于MD5或者SHA-1,在计算散列值时将密钥和数据同时作为输入,并采用了二次散列迭代的方式,实际计算方法如下:
    HMAC(K,M)=H(K⊕opad∣H(K⊕ipad∣M))
    其中K是密钥,长度应为64字节,若小于该长度,则自动在密钥后面用“0”填充补足。M是消息;H是散列函数;opad和Ipad分别是由若干个0x5c和0x36组成的字符串;⊕表示异或运算,∣表示连接操作。

    数字签名

    数字签名(又称公钥数字签名)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。
    数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。
    数字签名是非对称密钥加密技术与数字摘要技术的应用。
    数字签名的文件的完整性是很容易验证的(不需要骑缝章,骑缝签名,也不需要笔迹专家),而且数字签名具有不可抵赖性(不可否认性)。
    简单地说,所谓数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。这种数据或变换允许数据单元的接收者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。它是对电子形式的消息进行签名的一种方法,一个签名消息能在一个通信网络中传输。基于公钥密码体制和私钥密码体制都可以获得数字签名,主要是基于公钥密码体制的数字签名。包括普通数字签名和特殊数字签名。普通数字签名算法有RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir数字签名算法、Des/DSA,椭圆曲线数字签名算法和有限自动机数字签名算法等。特殊数字签名有盲签名、代理签名、群签名、不可否认签名、公平盲签名、门限签名、具有消息恢复功能的签名等,它与具体应用环境密切相关。显然,数字签名的应用涉及到法律问题,美国联邦政府基于有限域上的离散对数问题制定了自己的数字签名标准(DSS)。
    保证信息传输的完整性、发送者的身份认证、防止交易中的抵赖发生。
    数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。
    数字签名是个加密的过程,数字签名验证是个解密的过程。
    发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用自己的私人密钥对这个摘要进行加密,这个加密后的摘要将作为报文的数字签名和报文一起发送给接收方,接收方首先用与发送方一样的哈希函数从接收到的原始报文中计算出报文摘要,接着再用发送方的公用密钥来对报文附加的数字签名进行解密,如果这两个摘要相同、那么接收方就能确认该数字签名是发送方的。
    数字签名有两种功效:一是能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名。二是数字签名能确定消息的完整性。因为数字签名的特点是它代表了文件的特征,文件如果发生改变,数字摘要的值也将发生变化。不同的文件将得到不同的数字摘要。 一次数字签名涉及到一个哈希函数、发送者的公钥、发送者的私钥。”
    数字签名:
    发送方用自己的密钥对报文X进行Encrypt(编码)运算,生成不可读取的密文Dsk,然后将Dsk传送给接收方,接收方为了核实签名,用发送方的公用密钥进行Decrypt(解码)运算,还原报文。
    具有数字签名功能的个人安全邮件证书是用户证书的一种,是指单位用户收发电子邮件时采用证书机制保证安全所必须具备的证书。个人安全电子邮件证书是符合x.509标准的数字安全证书,结合数字证书和S/MIME技术对普通电子邮件做加密和数字签名处理,确保电子邮件内容的安全性、机密性、发件人身份确认性和不可抵赖性。 具有数字签名功能的 个人安全邮件证书中包含证书持有人的电子邮件地址、证书持有人的公钥、颁发者(CA)以及颁发者对该证书的签名。个人安全邮件证书功能的实现决定于用户使用的邮件系统是否支持相应功能。 MS Outlook 、Outlook Express、Foxmail及CA安全电子邮件系统均支持相应功能。使用个人安全邮件证书可以收发加密和数字签名邮件,保证电子邮件传输中的机密性、完整性和不可否认性,确保电子邮件通信各方身份的真实性。
    每个人都有一对“钥匙”(数字身份),其中一个只有她/他本人知道(密钥),另一个公开的(公钥)。签名的时候用密钥,验证签名的时候用公钥。又因为任何人都可以落款声称她/他就是你,因此公钥必须向接受者信任的人(身份认证机构)来注册。注册后身份认证机构给你发一数字证书。对文件签名后,你把此数字证书连同文件及签名一起发给接受者,接受者向身份认证机构求证是否真地是用你的密钥签发的文件。
    在通讯中使用数字签名一般基于以下原因:
    鉴权
    公钥加密系统允许任何人在发送信息时使用公钥进行加密,数字签名能够让信息接收者确认发送者的身份。当然,接收者不可能百分之百确信发送者的真实身份,而只能在密码系统未被破译的情况下才有理由确信。
    鉴权的重要性在财务数据上表现得尤为突出。举个例子,假设一家银行将指令由它的分行传输到它的中央管理系统,指令的格式是(a,b),其中a是账户的账号,而b是账户的现有金额。这时一位远程客户可以先存入100元,观察传输的结果,然后接二连三的发送格式为(a,b)的指令。这种方法被称作重放攻击。
    完整性
    传输数据的双方都总希望确认消息未在传输的过程中被修改。加密使得第三方想要读取数据十分困难,然而第三方仍然能采取可行的方法在传输的过程中修改数据。一个通俗的例子就是同形攻击:回想一下,还是上面的那家银行从它的分行向它的中央管理系统发送格式为(a,b)的指令,其中a是账号,而b是账户中的金额。一个远程客户可以先存100元,然后拦截传输结果,再传输(a,b3),这样他就立刻变成百万富翁了。
    不可抵赖
    在密文背景下,抵赖这个词指的是不承认与消息有关的举动(即声称消息来自第三方)。消息的接收方可以通过数字签名来防止所有后续的抵赖行为,因为接收方可以出示签名给别人看来证明信息的来源。

    端点鉴别

    端点鉴别(end- point authentication)就是一个实体经过计算机网络向另一个实体证明其身份的过程,例如一个人向某个电子邮件服务器证明其身份。作为人类,我们通过多种方式互相鉴别:见面时我们互相识别对方的面容,打电话时我们分辨对方的声音,海关的检查官员通过护照上的照片对我们进行鉴别。
    当经网络进行鉴别时,通信各方不能依靠生物信息比如外表、声波纹等进行身份鉴別。的确,我们会在后面的实例研究中看到,诸如路由器、客户/服务器进程等网络元素通常必须相互鉴别。此处,鉴别应当在报文和数据交换的基础上,作为某鉴别协议(au-thentication protocol)的一部分独立完成。鉴别协议通常在两个通信实体运行其他协议(例如,可靠数据传输协议、路由选择信息交换协议或电子邮件协议)之前运行。鉴别协议首先建立相互满意的各方的标识;仅当鉴别完成之后,各方才继续下面的工作。

    安全电子邮件

    安全电子邮件SMTP的安全漏洞

    安全问题分类

    SMTP的安全漏洞
    电子邮件在因特网传输时,一般采用SMTP,一种属于TCP/IP的协议,该协议明确定义了计算机系统间电子邮件的交换规则。邮件在发送时需要用不同的邮件服务器进行转发,这种转发过程一直持续到电子邮件到达最终接收主机。而SMTP自身存在先天安全隐患,它传输的数据没有经过任何加密,于是攻击者在电子邮件数据包经过这些邮件服务器的时候把它截取下来,就可获得这些邮件的信息,然后按照数据包的顺序重新还原成为你发送的原始文件。邮件发送者发送完电子邮件后,不知道它会通过哪些邮件服务器到达最终的主机,也无法确定在经过这些邮件服务器时是否有人把它截获下来。从技术上看,没有任何办法可以阻止攻击者截获在网络上传输的数据包。
    电子邮件接收客户端软件的安全漏洞
    邮件接收客户端软件的设计缺陷也会造成电子邮件的安全漏洞,如微软的Outlook和Outlook Express功能强大,能够和操作系统融为一体,具有相当多的使用者,但它们可能传播病毒和木马程序。一旦木马程序进入用户计算机,一切都将会处于黑客的控制之下。而病毒一旦发作,轻则损坏硬盘上的文件,甚至整个硬盘,重则会造成整个网络的瘫痪。电子邮件传播病毒通常是把自己作为附件发送给被攻击者,一旦被攻击者打开了病毒邮件的附件,病毒就会感染其计算机,然后自动打开其Outlook的地址簿,将自己发送到被攻击者地址簿上的每一个电子邮箱中,这正是电子邮件病毒能够迅速大而积传播的原因所在。电子邮件客户端程序的一些bug也常被攻击者利用来传播电子邮件病毒。Outlook曾经就因为存在这方而的漏洞被攻击者用来编制特殊的代码,这样,即使被攻击者收到邮件后不打开附件,也会自动运行病毒文件。
    垃圾邮件
    垃圾邮件是指向新闻组或他人电子邮箱发送的未经用户准许、不受用户欢迎的、难以退掉的电子邮件或电子邮件列表。垃圾邮件的常见内容包括:商业或个人网站广告、赚钱信息、成人广告、电子杂志、连环信等。垃圾邮件可以说是因特网给人类带来的副产品,其一,占用网络带宽,造成邮件服务器拥塞,降低了整个网络运行的速率。其二,侵犯收件人的隐私权,耗费收件人的时间、精力和金钱,占用收件人信箱空间。其三,严重影响ISP (Internet服务提供者)的形象。在国际上,频繁转发垃圾邮件的主机会被上级因特网服务提供商列入垃圾邮件数据库,从而导致该主机不能访问国外许多网络。而且收到垃圾邮件的用户会因为ISP没有建立完善的垃圾邮件过滤机制,而转向其他ISP。其四,骗人钱财,传播色情,发布反动言论等内容的垃圾邮件,已经对现实社会造成危害。其五,被黑客利用成为助纣为虐的工具。如2000年2月,黑客攻击雅虎等5大热门网站时,先是侵入并控制了一些高带宽的网站,集中众多服务器的带宽能力,然后用数以亿万计的垃圾邮件猛烈袭击口标,造成被攻击者网站网路堵塞,最终瘫痪。
    邮件炸弹
    邮件炸弹是指邮件发送者通过发送巨大的垃圾邮件使对方电子邮件服务器空间溢出,从而造成无法接受电子邮件,或者利用特殊的电子邮件软件在很短的时间内连续不断地将邮件发送给同一个信箱,在这些数以千万计的大容量信件而前,收件箱肯定不堪重负,最终“爆炸身亡”。信箱被撑满后,如果不及时清理,将导致所有发给该用户的电子邮件被主机退回。而被撑爆的信箱很可能会一直出错,从而导致其信箱长时间处于瘫痪状态。邮件炸弹还会大量消耗网络资源,常常导致网络塞车,使大量的用户不能正常使用。

    防范措施

    对电子邮件进行加密
    既然没有任何办法可以组织攻击者截获在网络上传输的数据包,那么,惟一能采取的措施就是在发送邮件前对其进行数宇加密处理,接受方接到电子邮件后对其进行数宇解密处理,这样,即使攻击者截获了电子邮件,他而对的也只是一堆没有任何意义的乱码。所谓加密,是指将一个明文信息经过加密密钥及加密函数的转换,变成无意义的密文,当需要的时候则将此密文经过解密函数、解密密钥还原成明文。最常用的加密软件是PGP (Pretty Good Privacy), PGP是一个基于RSA (Rivest Shamir Adleman)公钥加密体系的邮件加密软件,它提出了公共钥匙或不对称文件加密和数字签名。RSA算法是一种基于大数不可能质因数分解假设的公钥体系。简单地说就是找两个很大的质数,一个公开给世界,称之为“公钥”,另一个不告诉任何人,称之为“私钥”。两把密钥互补—用公钥加密的密文可以用私钥解密,反过来也一样。假设A寄信给B,他们知道对方的公钥,A可以用B的公钥加密邮件寄出,B收到后用自己的私钥解出A的原文,这样就保证了邮件的安全,以防阻止非授权者阅读,还能对邮件进行数字签名从而使收信人确信邮件是由你发出的。
    采用防火墙技术
    防火墙是在受保护的内部网和外部网之间建立的网络通信安全监控系统,也可称之为控制进/出两个方向通信的门槛。在网络边界上通过建立起来的相应网络通信监控系统来隔离内部和外部网络,以阻挡外部网络的侵入。目前的防火墙主要有包过滤防火墙、代理防火墙和双穴主机防火墙3种类型。其中应用最广泛的防火墙为代理防火墙又称应用层网关级防火墙,它是由代理服务器和过滤路由器组成。过滤路由器负责网络互联,并对数据进行严格选择,然后将筛选过的数据传送给代理服务器。代理服务器起到外部网络申请访问内部网络的中间转接作用,其功能类似于一个数据转发器,它主要控制哪些用户能访问哪些服务类型。当外部网络向内部网络申请某种网络服务时,代理服务器接受申请,然后它根据其服务类型、服务内容、被服务的对象、服务者申请的时间、申请者的域名范围等来决定是否接受此项服务,如果接受,它就向内部网络转发这项请求,从而保护了内部网络不被非法访问。
    及时升级病毒库
    计算机病毒在不断产生并演化变体,反病毒软件生产商都会根据最近新发现的病毒情况,随时补充新病毒代码到病毒库中,因此用户及时升级防病毒软件是必须做的工作。
    识别邮件病毒
    一些邮件病毒具有广泛的共同特征,找出它们的共同点可以防止病毒的破坏。当收到邮件时,先看邮件大小及对方地址,如果发现邮件中无内容,无附件,邮件自身的大小又有几十K或更大或者附件的后缀名是双后缀,那么此类邮件中极可能包含有病毒,可直接删除此邮件,然后再清空废件箱。在清空废件箱后,一定要压缩一遍邮箱,否则杀毒软件在下次查毒时还会报有病毒。
    打开实时监控防火墙
    实时监控技术为电子邮件和系统安全构筑起一道动态、实时的反病毒防线,它通过修改操作系统,使操作系统本身具备反病毒功能,拒病毒于计算机系统之门外。且优秀的反病毒软件由于采用与操作系统的底层无缝连接技术,实时监控器占用的系统资源极小,用户几乎感觉不到其对机器性能的影响,并且不用考虑病毒的入侵问题。

    PGP

    PGP(英语:Pretty Good Privacy,中文翻译“优良保密协议”)是一套用于消息加密、验证的应用程序,采用IDEA的散列算法作为加密与验证之用。
    PGP加密
    PGP加密由一系列散列、数据压缩、对称密钥加密,以及公钥加密的算法组合而成。每个步骤支持几种算法,可以选择一个使用。每个公钥均绑定唯一的用户名和/或者E-mail地址。这个系统的第一个版本通常称为可信Web或X.509系统;X.509系统使用的是基于数字证书认证机构的分层方案,该方案后来被加入到PGP的实现中。当前的PGP加密版本通过一个自动密钥管理服务器来进行密钥的可靠存放。 [1]
    兼容性
    随着PGP的版本更新,新版本的PGP系统开始支持新的特征和算法,新系统生成的加密消息不能直接被旧的PGP系统解密,即使是使用旧版存储的有效私钥也不行。因此,在PGP通讯中的通信双方应统一版本,或者至少协商好PGP的具体设置。
    机密性
    PGP可以用来发送机密消息。这是通过对称的一组密钥-公钥组合来实现的。消息采用对称加密算法加密,采用一组对称密钥。每个对称密钥只使用一次,所以也叫做会话密钥。会话密钥通过接收方的公钥来加密保护,因此只需确保仅接收方能解密会话密钥即可。加密的消息和加密的会话密钥一起发送给接收方。
    数字签名
    PGP支持消息认证和完整性检测。完整性检测被用来检查消息在传输过程中是否变更过(即验证消息完整性),而消息认证则是被用来决定消息是否确由某特定的人或实体发出(即数字签名验证)。在PGP中,这些特性默认是和消息加密同时开启的,而且同样可以被应用到明文的验证。发送者只需使用PGP为消息创建一个数字签名(签名算法采用RSA或DSA算法)。具体步骤为:PGP以数据或信息创建一个散列(参见消息摘要),然后使用发送者的私钥利用散列生成数字签名。
    信赖网络
    不管是在加密消息时还是在验证签名时,都需要注意用来发送消息的公钥是否确实属于期望的接收者。简单的从某个位置下载一个公钥是没有保障的。蓄意的或意外冒名顶替是可能的。PGP从它的第一个版本起,总是包含在一个’身份证书’中发布用户公钥,身份证书也是经过加密构造的,所以任何的篡改或意外的变动都可以被迅速的检测出来。但是仅通过创建一个即使最简单的篡改都会被发现证书仍然不够,这样的检测机制只能在证书创建之后用于避免篡改,而不是创建之前。用户也必须用某种形式确保证书中的公钥真正的属于特定的人/实体。从第一个发行版开始,PGP产品就包含一个内部的’审查方案’来协助。一个信任模型被叫做信赖网络(Web of Trust)。一个给定的公钥(如一个用户名到对应其密钥的绑定信息)可以被第三方用户。数字签名 来证明某人(一个用户名)和一个密钥关联。可以在这样的签名中包含几个信任级别,只不过许多程序都会读写这个信息,而只有少数会通过信任级别来决定是否信任一个密钥。
    信赖网络协议(Trusted-Web Protocol)在1992年的PGP 2.0手册中被菲利普·齐默曼(Philip R. Zimmermann)描述为:
    随着时间过去,你累积到许多人的密钥,其中有些人你也许愿意签署信赖他们,别人也会签署一些他们自己信赖的他人密钥。每个人都逐渐累积到一些他人已签署信赖的密钥,然后自己再签署并散发出去。那么便能期待,下一个拿到这把密钥的人在签署名单上总有一两个是自己信赖的。这最终能形成所有公钥的分布式防弊的信赖网络。
    信赖网络机制比S/MIME机制的集中管理的公钥基础设施有优势,但是没有被网络普罗大众普遍采用,一般只在Unix-like的爱好者、开源软件界、和对隐私特别注意而且有电脑知识的人群之间使用。如何使一般用户容易使用、乐意接收证书然后手动的验证它们的有效性,对于这些潜在的推广上阻碍还没有找到满意的解决方案。
    近来有一些电子邮件服务业者推出结合于网页邮件接口的简便PGP操作,用户就算不创设自己的PGP密钥也可以寄出PGP加密信,包括寄给不使用PGP的收信人,并以通关密语的问答来使收信人获取阅读权限。每封信可以设置不同的通关密语,并能设置每个密语的有效期限(对于寄信人而言则是无期限的)。收信人甚至可以在回答正确的通关密语后,以勾选选项的方式轻易回复PGP加密信,无需自行创设和管理PGP密钥。对于一般用户而言这也许足够安全,但对于信息安全极度谨慎的人而言,这机制把私钥也存在寄件人的邮件服务器上,仍存有私钥外泄的疑虑,不论是政府依法获取,或是黑客非法入侵后获取。针对非法入侵,只能信赖电子邮件服务业者的安全防护能力;对于合法途径则只能透过设置及复杂的通关密语来提高破解难度。

    使TCP连接安全:SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层对网络连接进行加密。

    宏观描述

    Secure Socket Layer,为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取及窃听。一般通用之规格为40 bit之安全标准,美国则已推出128 bit之更高安全标准,但限制出境。只要3.0版本以上之I.E.或Netscape浏览器即可支持SSL。
    当前版本为3.0。它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输。
    SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

    更完整的描述

    服务器认证阶段:1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;4)服务器回复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
    用户认证阶段:在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。
    SSL协议提供的安全通道有以下三个特性:

    • 机密性 SSL协议使用密钥加密通信数据。
    • 可靠性:服务器和客户都会被认证,客户的认证是可选的。
    • 完整性:SSL协议会对传送的数据进行完整性检查。

    从SSL 协议所提供的服务及其工作流程可以看出,SSL协议运行的基础是商家对消费者信息保密的承诺,这就有利于商家而不利于消费者。在电子商务初级阶段,由于运作电子商务的企业大多是信誉较高的大公司,因此这问题还没有充分暴露出来。但随着电子商务的发展,各中小型公司也参与进来,这样在电子支付过程中的单一认证问题就越来越突出。虽然在SSL3.0中通过数字签名和数字证书可实现浏览器和Web服务器双方的身份验证,但是SSL协议仍存在一些问题,比如,只能提供交易中客户与服务器间的双方认证,在涉及多方的电子交易中,SSL协议并不能协调各方间的安全传输和信任关系。在这种情况下,Visa和 MasterCard两大信用卡公组织制定了SET协议,为网上信用卡支付提供了全球性的标准。

    展开全文
  • 一、四种网络攻击 ★ 、 二、网络安区指标 ★ 、 三、数据加密模型 ★ 、 ...七、报文鉴别 ★ 、 八、实体鉴别 ★ 、 九、IP 安全 ( 网络层安全 ) ★ 、 十、传输层安全 ( SSL , TSL , HTTPS ) ★ 、 十一、防火墙 ★





    一、四种网络攻击 ★



    1 . 四种网络攻击 :

    ① 截获 : 窃听 其它的 通信内容 , 不影响网络通信 ;

    ② 中断 : 中断 他人 的网络通信 ;

    ③ 篡改 : 篡改 网络上传输的 报文 , 分组 信息 ;

    ④ 伪造 : 伪造 虚假 报文 信息 , 在网络中传递 ;


    2 . 攻击类型 :

    ① 被动攻击 : 截获 ;

    • 目的 : 窃听他人通信内容 ;
    • 操作 : 攻击者 只 观察 , 分析 某一协议对应的协议数据单元 PDU , 窃取其中的数据信息 , 但不干扰信息传输 ;
    • 别名 : 又称为 流量分析 ;

    ② 主动攻击 : 中断 , 篡改 , 伪造

    • 篡改 : 修改网络上的报文信息 , 又称为 更改 报文流 ;
    • 恶意程序 : 病毒 , 蠕虫 , 木马 , 逻辑炸弹 等 ;
    • 拒绝服务攻击 : 攻击者 向 某服务器 不停地发送大量分组 , 使服务器无法正常运行 ;

    3 . 检测攻击 :

    • 主动攻击检测 : 采取适当的措施 , 检测主动攻击 ;
    • 被动攻击检测 : 无法检测 ;

    4 . 恶意程序 :

    ① 病毒 : 可以传染其它程序 , 通过将自身 ( 病毒 ) 复制到其它程序中 , 破坏目标程序 ;

    ② 蠕虫 : 通过网络将自身发送给其它计算机 , 并在其它计算机中运行 ; 蠕虫主要以消耗系统资源为主 , 启动后开始占用 CPU , 内存 , 直至完全占满 , 导致设备宕机 ;

    ③ 木马 : 主要是与外部沟通 ; 盗号木马 , 远程控制木马 , 功能强大 ;

    ④ 逻辑炸弹 : 当运行环境满足某种特定条件 , 启动执行的程序 ;



    参考 : 【计算机网络】网络安全 : 计算机网络安全威胁 ( 四种网络攻击类型 | 主动攻击与被动攻击 | 分布式拒绝服务攻击 DDos | 恶意程序 | 计算机网络安全目标)





    二、网络安区指标 ★



    安全的计算机网络指标 :

    • 保密性
    • 端点鉴别
    • 信息完整性
    • 运行安全性


    1 . 保密性 :

    ① 数据加密 : 数据信息是加密的 , 只有 发送方 和 接收方 才能解码出其中的数据 ;

    ② 对应攻击 : 加密 是 针对被动攻击的 , 是网络安全最基本的功能 ;

    ③ 密码技术 : 使用各种密码技术 , 保证数据安全性 ;


    2 . 端点鉴别 : 使用 数字签名技术 鉴别 数据通信中的 发送方 和 接收方 的真实身份 , 防止数据被 中断 , 伪造 ;


    3 . 信息完整性 :

    ① 篡改 : 数据内容没有被 篡改 ;

    ② 应对攻击 : 应对 主动攻击方式 ;

    ③ 鉴别 : 鉴别包含 端点鉴别报文完整性检查 , 二者是密切相关的 ;


    4 . 运行安全性 :

    ① 正常运行 : 网络系统可以 正常运行 , 并提供通信服务 ;

    ② 访问控制 : 对系统安全性很重要 , 主要是 控制每个用户访问网络的权限 ,


    参考 : 【计算机网络】网络安全 : 安全的计算机网络指标 ( 保密性 | 端点鉴别 | 信息完整性 | 运行安全性 )





    三、数据加密模型 ★



    数据加密模型 :
    在这里插入图片描述

    ① 发送明文 : 用户 A 向 用户 B 发送 明文 X ;

    ② 加密 : 通过 加密算法 对 明文 X 进行 E 运算加密算法 , 进行加密 , 得到 密文 Y , 这个 密文 Y 是加密的数据 ;

    ③ 防止截获 : 密文 Y 即使被截获 , 也无法获取到真实信息 , 即 明文 X ;

    ④ 解密 : 密文 Y 在接收端 , 经过 D 运算 解密算法 , 进行解密 , 得到 明文 X ;



    密钥 :

    ① 密钥本质 : 加密 和 解密 使用的 密钥 , 是 一串 保密的 字符串 ;

    ② 加密 : 明文 通过 加密算法加密密钥 , 可以计算出 对应 密文 ;

    ③ 解密 : 密文 通过 解密算法解密密钥 , 可以计算出 对应 明文 ;

    ④ 密钥提供者 : 加密密钥 和 解密密钥 是 密钥中心 提供的 ;

    ⑤ 密钥特点 : 加密密钥 与 解密密钥 , 可以是相同的 , 也可以是不同的 ;

    ⑥ 密钥传输 : 传输 密钥 时 , 必须通过 安全信道 传输 ;



    密码安全 :

    ① 无条件安全 : 无论有多少密文 , 都 无法获取足够多的信息破解出明文 , 则称该密码体质 是 无条件安全的 , 理论上不可破的 ;

    ② 计算安全 : 密码 不能被 可以实现的计算资源破译 , 则称该密码体质是 计算上安全的 ; 如 破解需要计算 100 年 ;


    参考 : 【计算机网络】网络安全 : 数据加密模型 ( 加密模型 | 密钥 | 密码学 | 密码安全 )





    四、对称密钥密码体质 ★



    1 . 对称密钥密码体质 : 又称为 常规密钥密码体质 , 加密密钥解密密钥 是相同的 ;


    2 . 数据加密标准 DES :

    ① 性质 : 数据加密标准 DES 是 对称密钥密码体质 , 是 分组密码 ;

    ② 密钥 : 64 位 , 其中 实际密钥 56 位 , 奇偶校验位 8 位 ;


    3 . DES 加密过程 :

    ① 分组 : 加密前 先将明文 按照 每组 64 位 进行分组 ;

    ② 分组加密 : 然后 对 每个分组 进行 加密处理 , 产生 64 位密文数据 分组 ;

    ③ 拼接密文 : 将所有的 密文分组 串联起来 , 就是整个密文分组 ;



    每个 64 位 数据分组加密过程 :

    在这里插入图片描述

    ① 初始变换 : 首先先进行 初始变换 ;

    ② 迭代计算 : 然后经过 16 轮次的迭代计算 , 每次迭代计算引入一个密钥 ;

    ③ 32 位变换 : 之后进行 32 位变换 ;

    ④ 初始变换逆运算 : 最后进行 初始变换 的逆运算 , 得到 64 位 密文 ;


    4 . DES 保密性 :

    ① 密钥保密 : DES 算法是公开的 , 其密钥越保密 , 保密程度越高 ;

    ② 问题 : DES 密钥长度太短 ; 目前已经有 DES 密钥搜索芯片 , 可以轻松破解 56 位密钥 ;


    参考 : 【计算机网络】网络安全 : 对称密钥密码体质 ( 数据加密标准 DES | DES 加密过程 | DES 保密性 | 三重 DES 加密 )





    五、公钥密码体质 ★



    1 . 公钥密码体质 ( 公开密钥密码体质 ) :

    ① 本质 :加密密钥解密密钥 是不同的密钥 ;

    ② 前提 : 已知 加密密钥 , 无法计算出 解密密钥 ;

    ③ 公钥密码体质 产生原因 :

    • 常规密钥密码体质 密钥分配 有问题 ;
    • 数字签名 需求 ;

    2 . 公钥密码体质 中的 加密密钥 与 解密密钥 :

    ① 加密密钥 : 公钥 , 是对外公开的 ;

    ② 解密密钥 : 私钥 , 是保密的 ;

    ③ 算法 : 加密算法 和 解密算法 都是 公开 的 ;

    ④ 密钥计算 : 公钥 决定 私钥 , 但是 根据 公钥 无法计算出 私钥 ;


    3 . 公钥密码体质 与 对称密码体质对比 :

    ① 安全性 : 密码的安全性取决于 密钥长度 , 以及 破解密文的计算量 ; 二者安全性相同 ;

    ② 开销 : 公钥加密 其开销 大于 对称加密 , 传统的对称加密算法 还是需要继续使用 ;

    ③ 密钥分配协议 : 公钥密码体质 需要 密钥分配协议 , 其密钥分配过程 , 不比传统加密算法简单 ;

    ④ 通道性质 : 一对一 / 多对一 , 双向 / 单向 ;

    • 对称密钥体质 : 只能实现 信道上 一对一的双向保密通信 , 发送方和接收方 使用相同的密钥加密 和 解密 ;
    • 公钥密码体质 : 可以实现 信道上 多对一的单向保密通道 ;

    4 . 公钥密码体质算法特点 :

    ① 密钥对产生器 : 针对某个接收者 , 该 密钥对产生器 会 产生一对密钥 , 分别是 加密密钥 ( 公钥 ) 解密密钥 ( 私钥 ) ;

    ② 加密密钥 : 公钥 , 对外公开 , 用于 加密 ; 其不能用于解密 ;

    ③ 解密密钥 : 私钥 , 对外保密 , 用于解密 ;

    ④ 使用过程 : 发送者 使用 公钥 将 明文 加密成 密文 , 接收者 使用 私钥 将 密文 解密成 明文 ;

    ⑤ 加密 与 解密 互逆 :

    • 原文已知 , 先用公钥加密 , 然后用私钥解密 , 可以得到原文 ;
    • 原文已知 , 先用私钥解密 , 然后用公钥加密 , 可以得到原文 ;

    5 . 公钥密码体质 与 数字签名 :

    • 公钥密码体质 : 使用 公开密钥加密 , 私有密钥 解密 , 是公钥密码体质 ;
    • 数字签名 : 使用 私有密钥加密 , 公开密钥 解密 , 是数字签名方法 ;

    参考 : 【计算机网络】网络安全 : 公钥密码体质 ( 公钥 - 加密密钥 | 私钥 - 解密密钥 | 与对称密钥体质对比 | 特点 | 数字签名引入 )





    六、数字签名 ★



    1 . 数字签名 : 证明 数据 或 身份的 真实性 ; 需要有以下功能 :

    ① 报文鉴别 : 用于 证明来源 , 接收者 可以 通过签名 确定 是哪个发送者 进行的签名 ;

    ② 防止抵赖 : 防止 发送者 否认签名 , 发送者 一旦签名 , 标记就打上了 , 无法抵赖 ;

    ③ 防止伪造 : 防止 接收者 伪造 发送者 的签名 ;


    2 . 数字签名实现方式 : 数字签名算法很多 , 公钥算法 是最简单的算法 , 即 发送者 使用 私钥加密数据 , 接收者 使用 对应的公钥 解密数据 ;

    ( 接收者 持有着大量公钥 )


    3 . 数字签名 功能 :发送者 使用 私钥 加密密文 , 接收者 使用 公钥 解密密文 为例 ;

    ① 报文鉴别 : 发送者 持有 私钥 , 使用该私钥 加密密文 , 除了该 发送者之外 , 其它人无法产生该密文 , 接收者 使用 公钥解密出正确的信息 , 因此 接收者 相信 该密文 是发送者 使用私钥加密 并 发出的 ;

    ② 防止抵赖 : 如果发送者 抵赖 , 接收者可以将 密文 , 公钥 , 明文 , 提供给第三方进行验证 , 将密文通过公钥解密成明文 , 就能证明该密文是指定的发送者发送的 ;

    ③ 防止伪造 : 接收者 伪造了 密文 , 如果 接收者 将 伪造的 密文 , 公钥 , 明文 , 提供给第三方 , 使用 公钥 , 无法将密文解密成明文 , 证明该签名是伪造的 ;


    4 . 数字签名弊端 :

    ① 数据窃取 : A A A 的公钥可能有很多人持有 , 如果一个持有 A A A 公钥的一方截获了上述签名数据 , 就会被窃取数据 ;

    ② 解决方案 签名 + 公钥加密 : A A A 数字签名基础上 , 再进行公钥加密 , 就将数据保密了 , 只有对应私钥才能对其进行解密 ;


    保密数字签名实现方式 :

    ① 加密 : 发送者 A A A 使用 A A A 的私钥 S K A SK_A SKA ( Secret Key A ) 加密数据 , 然后在 使用 接收者 B B B 的公钥 P K B PK_B PKB ( Public Key B ) 加密数据 ;

    ② 解密 : 接收者 B B B 使用 B B B 的私钥 S K B SK_B SKB ( Secret Key B ) 解密数据 , 然后再 使用 发送者 A A A 的公钥 P K A PK_A PKA 解密数据 , 最终得到明文 ;


    保密数字签名实现方式优势 : 接收者 B B B 既可以识别 发送者 A A A 的身份 , 又能保证数据不会被截获 ;


    参考 : 【计算机网络】网络安全 : 数字签名 ( 数字签名简介 | 数字签名实现 | 数字签名功能 | 保密数字签名 )





    七、报文鉴别 ★



    1 . 计算机网络安全措施 :

    ① 针对被动攻击 ( 截获 ) : 加密 ;

    ② 针对主动攻击 ( 篡改 , 伪造 ) : 需要使用 鉴别 ;


    报文鉴别 : 接收方 可以 验证其接收到的 报文的真伪 ; 包括 发送者身份 , 内容 , 发送时间 , 报文序列等 ;

    报文鉴别方法 : 加密 可以 实现 报文鉴别 , 但是网络中对于保密性不高的数据来说 , 可以不进行加密 , 接收者 需要使用 简单方法确认报文的真伪 ;


    鉴别与授权 区别 : 这是两个不同的概念 ; 授权是指 所执行的操作是否被系统允许 ; 如 访问权限 , 读写权限 等 ;


    2 . 鉴别分类 :

    ① 报文鉴别 : 端点鉴别 + 报文完整性鉴别 ; 确认 报文 是由 发送者 发出 , 不是伪造的 ;

    ② 实体鉴别 : 端点鉴别 ; 确认 报文 发送者 实体 ( 应用进程 / 主机设备 / 人员 ) ;


    3 . 报文鉴别 : 报文 接收者 需要鉴别报文真伪 , 需要使用 数字签名 ;

    ① 弊端 : 增加计算负担 , 对数据很长的报文 进行 数字签名 , 需要 很大的计算量 ;

    ② 需求 : 在不需要对数据进行加密时 , 使用 简单方法 进行报文的真伪鉴别 ;

    不需加密时 , 使用密码散列函数进行 真伪鉴别 ;


    4 . 密码散列函数 : 是非常简单的 报文 鉴别方法 , 计算量小 ;

    ① 散列值 : 散列函数 输入 很长的 值 , 输出 较短的 固定的值 ; 输出值 称为 散列值 / 散列 ;

    ② 对应关系 : 输入 和 输出 是 多对一 的 , 不同的输入 可能对应 相同的输出 ;


    密码散列函数 :

    ① 概念 : 密码学 中使用的 散列函数 , 称为 密码散列函数 ;

    ② 单向性 ( 输入值 -> 散列值 ) : 给定 一个散列值 , 无法通过计算得出 输入值 ; 只能从 输入值 计算出 散列值 , 不能根据 散列值 计算 输入值 ;

    ③ 不可伪造 : 即使 固定长度的 散列值 被截获 , 截获者无法伪造出一个 对应的输入值 ( 明文 / 发送数据 ) ;


    密码散列函数 示例 :

    • 报文摘要算法 MD5
    • 安全散列算法 SHA-1
    • 性能比较 : SHA-1 的计算量 高于 MD5 , SHA-1 安全性高与 MD5 ;

    参考 : 【计算机网络】网络安全 : 报文鉴别 ( 密码散列函数 | 报文摘要算法 MD5 | 安全散列算法 SHA-1 | MAC 报文鉴别码 )





    八、实体鉴别 ★



    1 . 鉴别分类 :

    ① 报文鉴别 : 端点鉴别 + 报文完整性鉴别 ; 确认 报文 是由 发送者 发出 , 不是伪造的 ; 其中报文鉴别 要对每一个接收到的报文 , 都要鉴别 报文完整性 和 发送者 ; 鉴别多次 ;

    ② 实体鉴别 : 端点鉴别 ; 确认 报文 发送者 实体 ( 应用进程 / 主机设备 / 人员 ) ; 实体鉴别 只是在 系统接入的时候 , 对通信实体 只鉴别一次 ;


    2 . 简单实体鉴别过程 :

    ① 原理 : 基于 共享的 对称密钥 ;

    ② 加密 : 发送者 使用密钥将报文 加密 , 然后发送给 接收者 ;

    ③ 解密 : 接收者 收到密文后 , 使用 相同的密钥 解密 , 鉴别了 发送者的身份 ;

    ④ 相同密钥 : 发送者 和 接收者 持有 相同的密钥 ;



    漏洞 ( 重放攻击 ) : 黑客 截获 密文后 , 直接 将 密文 转发给接收者 , 此时接收者就会将 黑客 当做 发送者 ; 这种攻击称为 重放攻击 ;


    参考 : 【计算机网络】网络安全 : 实体鉴别 ( 实体鉴别过程 | 不重数机制 | 公钥体质加密不重数 | 中间人攻击 )





    九、IP 安全 ( 网络层安全 ) ★



    1 . 网络层 几乎不具备安全性 :

    • 没有 数据源鉴别机制 ;
    • 没有 数据完整性保护机制 ;
    • 没有 数据保密性机制 ;
    • 设计 / 实现 中 , 存在各种 安全漏洞 , 容易受到 IP 欺骗 , 会话劫持 , 流量嗅探 等攻击 ;

    2 . IPsec 协议族 :

    ① 全称 : IP 安全 , sec 是 Security 的缩写 ; 是 IETF 制定的开放安全标准 ;

    ② 内容 : 定义了 在网络层如何实现网络安全 , 提供了 数据完整性 , 保密性 , 认证 , 应用透明的安全性 ;

    ③ 性质 : IPsec 是一个协议族 ;

    ④ 框架 : IPsec 只提供了框架 , 通信双方的 加密算法可以自定义 , 如使用什么样的参数 , 密钥 等 ;

    ⑤ 互操作性 : IPsec 中提供了一套 所有 IPsec 都必须实现的加密算法 ;

    3 . IPsec 协议族组成 :

    ① IP 安全数据报格式 协议 :

    • 鉴别首部协议 ( AH , Authentication Header ) : 支持 源点鉴别 , 数据完整性 , 不支持 数据保密 ;
    • 封装有效载荷协议 ( ESP , Encapsulation Security Payload ) : 支持 源点鉴别 , 数据完整性 , 数据保密 ;

    ② 加密算法协议

    ③ 互联网密钥交换协议 ( IKE , Internet Key Exchange )


    IP 安全数据报 : 使用 ESP 或 AH 协议的 IP 数据报 称为 IP 安全数据报 , 又称为 IPsec 数据报 ;

    支持的 IP 协议版本 : IPsec 支持 IPv4 和 IPv6 两个版本的 IP 协议 ;

    包含关系 : ESP 协议包含 AH 协议功能 ;


    更多 IPsec 协议内容参考 : 【计算机网络】网络安全 : 网络层安全协议 ( IPsec 协议 | IPsec 协议族组成 | IP 安全数据报工作方式 | 安全关联 SA | SA 状态信息 | IP 安全数据报格式 )





    十、传输层安全 ( SSL , TSL , HTTPS ) ★



    1 . 运输层安全协议 :

    ① 安全套接字层 ( SSL , Secure Socket Layer ) :

    • 作用位置 : 端系统 应用层 HTTP 与 运输层 之间 ;

    • TCP 安全 : 在 TCP 基础上建立安全通道 , 为 TCP 传输提供安全服务 ;

    • WEB 安全标准 : SSL 3.0

    ② 运输层安全 ( TSL , Transport Layer Security ) :

    • 基础 : 基于 SSL 3.0 ;

    • 作用 : 为 基于 TCP 协议的应用提供安全服务 ;


    2 . 运输层使用 SSL 前后对比 :

    ① SSL 使用情况 : SSL 增强了 TCP 服务 , SSL 是运输层协议 , 但其需要使用安全运输程序 , 其实际被分在应用层 ;

    ② 普通 TCP 通信 : 应用程序 ( 应用层 ) -> TCP 套接字 -> TCP 协议 ( 运输层 )

    ③ SSL TCP 通信 : 应用程序 ( 应用层 ) -> SSL 套接字 -> SSL 子层 ( 应用层 ) -> TCP 套接字 -> TCP 协议 ( 运输层 ) ;


    3 . SSL 服务 :

    ① SSL 服务器鉴别 : 用于 鉴别 服务器身份 ; 客户端 ( 支持 SSL ) 验证 服务器 证书 , 鉴别服务器 , 并获取服务器的公钥 ;

    ② SSL 客户端鉴别 : 服务器 验证 客户端 身份 ; ( 可选 )

    ③ 加密 SSL 会话 : 端与端之间的 报文都进行加密 , 检测是否被篡改 ;


    4 . SSL 安全会话建立过程 : TCP 连接之后 , 开始建立 SSL 安全会话 ;

    ① 协商加密算法 : 浏览器 发送 SSL 版本号 , 可选的加密算法 ; 服务器 回送 自己支持的加密算法 ;

    ② 传输公钥 : 服务器 向 浏览器 发送包含 服务器公钥的 CA 数字证书 , 浏览器使用该 CA 发布机构验证该公钥 ;

    ③ 会话密钥计算 : 浏览器 产生 随机秘密数 , 使用 服务器公钥 加密后 , 发送给 服务器 ; 服务器 收到后 , 产生共享的 对称会话密钥 , 发送给 浏览器 ;


    之后进行 SSL 安全会话 ;


    参考 : 【计算机网络】网络安全 : 运输层安全协议 ( 安全套接字层 SSL | 运输层安全 TSL | SSL 服务 | SSL 安全会话建立流程 )





    十一、防火墙 ★



    1 . 防火墙简介 :

    ① 组成 : 防火墙是由 软件 , 硬件 构成的系统 ;

    ② 作用 : 用于在两个网络之间实施 访问控制策略 ;

    ③ 配置 : 访问控制策略由 网络管理员 配置 ;

    ④ 可信网络 : 防火墙内是 可信网络 , 防火墙外是 不可信网络 ;


    2 . 防火墙 功能 :

    ① 阻止 : 阻止 某些类型的流量 通过 ( 双向 ) 防火墙 ; ( 主要功能 )

    ② 允许 : 允许 某些类型的流量 通过 ( 双向 ) 防火墙 ;

    实现上述 阻止 允许 流量通过 , 防火墙需要能 识别通信流量 ;


    3 . 防火墙分类 :

    • 分组过滤路由器
    • 应用网关

    4 . 分组过滤路由器 :

    ① 功能 : 分组过滤通信流量 , 通过 过滤规则 , 将网络流量分组 转发 / 丢弃 ; 其中丢弃就是将该分组过滤掉了 ;

    ② 过滤规则 : 网络层 / 运输层 首部信息 , 作为过滤规则 ; 如 源地址 / 目的地址 , 源端口号 / 目的端口号 , 协议类型等 ;

    ③ 分组过滤状态 :

    • 无状态 : 每个分组都 独立处理 ;
    • 有状态 : 跟踪连接的通信状态 , 根据状态决定过滤规则 ;

    ④ 特点 : 简单 , 效率高 , 对用户透明 , 无法过滤高层数据 ;


    5 . 应用网关 :

    ① 别名 : 又称为 代理服务器 ;

    ② 数量 : 每个网络应用 , 都需要 配置一个应用网关 ;

    ③ 功能 : 所有的该应用的报文数据都必须 通过应用网关传输 , 可以实现 高层 ( 应用层 ) 数据的 过滤 和 高层 ( 应用层 ) 用户鉴别 ;

    ④ 缺点 :

    • 配置繁琐 : 每个应用都需要配置应用网关 ;
    • 消耗资源 : 应用层 转发处理报文 , 资源消耗比较大 ;
    • 透明性差 : 需要在每个客户端程序中配置 应用网关地址 ;

    参考 : 【计算机网络】网络安全 : 防火墙 ( 简介 | 防火墙功能 | 防火墙分类 | 分组过滤路由器 | 应用网关 )

    展开全文
  • 身份鉴别

    2021-10-08 20:09:33
    身份鉴别1、身份鉴别基础2、基于实体所知的鉴别3、基于实体所有的鉴别4、基于实体特征的鉴别5、 kerberos体系6、认证、授权和计费 1、身份鉴别基础 ◆理解标识与鉴别的区别、鉴别类型、鉴别方式等 ◆基本概念 ◆了解...

    1、身份鉴别基础

    ◆理解标识与鉴别的区别、鉴别类型、鉴别方式等
    ◆基本概念
    ◆了解对身份鉴别系统的主要要求
    身份鉴别的概念
    ◆标识
    ◆实体身份的一种计算机表达
    ◆每个实体与计算机内部的一个身份表达绑定
    ◆信息系统在执行操作时,首先要求用户标识自己的身份,并提供证明自己身份的依据,不同的系统使用不同的方式表示实体的身份,同一个实体可以有多个不同的身份
    ◆标识示例
    ◆用户ID、编号、用户名
    ◆身份鉴别的作用
    授权的前提
    ◆访问控制机制的正确执行依赖于对用户身份的正确识别,标识和别作为访问控制的必要支持,以实现对资源机密性、完整性、可用性及合法使用的支持。
    数据源认证
    ◆与完整性保护结合可对数据源进行认证
    为安全审计服务提供支撑
    ◆审计记录中,一般需要提供与某一活动关联的确知身份
    ◆身份鉴别的相关实体
    被验证者P( Prover):出示身份标识的人,又称声称者( Claimant)
    验证者V( Verifier):检验声称者提出的身份标识的正确性和合法性,决定是否满足要求
    可信赖者TP( Trusted Third Party):参与鉴别的第三方,參与调解纠纷
    单向鉴别和双向鉴别
    ◆单向鉴别:通信双方中只有一方向另一方进行鉴别
    ◆双向鉴别:通信双方相互进行鉴别
    ◆第三方鉴别:由可信第三方来确认身份
    ◆身份鉴别的基本方式(按照证据特点)
    ◆实体所知:验证实体所知什么,如一个秘密的口令戓PIN码。
    ◆实体所有:验证实体拥有什么,如钥匙、磁卡、智能IC卡。
    ◆实体特征:验证实体不可改变的特性,如指纹、声音等生物学测定得来的标识特征。如:声音、指纹、掌纹等。
    ◆多因素鉴别
    ◆使用两种(双因素鉴别)或两种以上鉴别方式的组合,例如:网上银行的转账验证时,必须同时使用用户名密码(实体所知)和 USB Key(实体所有)才能完成一次转证
    ◆对身份鉴别系统的主要要求
    ◆验证者正确鉴别合法申请者的概率极大化。
    ◆不具有可传递性,验证者B不可能重用申请者A提供给他的信息来伪装申请者A,骗取其他人的验证从而得到信任。
    ◆攻击者伪装申请者骗验证者成功的概率要小到可以忽略的程度,能抗击已知密文攻击,即能对抗攻击者截获到申请者和验证者的多次通信密文,然后伪装申请者欺骗验证者。
    ◆计算有效性,为实现身份鉴别所需的计算量要小

    2、基于实体所知的鉴别

    ◆理解基于实体所知的鉴別方式及特点
    ◆了解口令破解、嗅探、重放攻击等针对实体所知
    ◆鉴別方式的攻击方式;
    ◆掌握对抗口令破解的防御措施
    ◆理解对抗嗅探攻击、重放攻击的防御措施。
    基于实体所知的鉴别
    ◆使用可以记忆的秘密信息作为鉴別依据
    ◆目前广泛采用的使用用户名和登录密码进行登录验证就是一种基于“实体所知”的鉴别方式
    ◆实现简单、成本低,广泛应用在各类商业系统中
    ◆面临安全威胁
    ◆信息泄露:登录密码猜测、线路窃听
    ◆信息伪造:重放攻击
    登录密码猜测及防御揩施
    ◆登录密码猜测攻击
    ◆鉴别依据(登录密码)强度不足,攻击者容易猜出来
    ◆典型的弱密码
    ◆系统默认生成
    ◆为了方便记忆,用户使用筒单的数字或与自己相关的信息来设置
    ◆简单的数字组合,如88888
    ◆顺序字符组合,如abc123
    ◆键盘临近组合,如qwe123
    ◆特殊含义字符,如 password
    ◆2018全球弱口令排行榜
    1.123456
    4 2. password
    3.123456789
    4.12345678
    5.12345
    6.111111
    7.1234567
    8. sunshine
    9. qwerty
    10. iloveyou
    ◆要有密码复杂性要求,含有数字,字符,字母,特殊字符等。
    ◆以上的字符必须安装无规律的组合,不要使用英语单词年月份等组合。很容易被暴力破解或者字典破解
    ◆密码的位数至少达到8位以上,现在很多论坛,邮箱,网银等已经达到16位密码的支持。
    ◆定期的更换密码
    ◆最好不要使用以前被破解过的密码、也不要使用同一密码用做各种不同的账户密码。
    ◆穷举攻击是针对口令进行破解的一种方式,它通过穷举所有可能的口令的方法来进行攻击。
    ◆假设某用户设置的口令是7位数字,那么最多存在10的七次方种口令。尽管一次输入猜对口令的可能性为千万分之,但在现有网络计算环境中,猜测一个口令的投入很小,攻
    击者很容易做到利用软件连续测试10万、100万,甚至1000万个口令,理论上,只要有足够的时间,所有口令都可以被破解。
    ◆暴力破解防护
    ◆使用安全的密码(自己容易记,别人不好猜,强度、复杂度)
    ◆系统、应用安全策略(帐号锁定策略)
    ◆随机验证码
    ◆变形
    ◆干扰
    ◆滑块
    ◆图像识别…
    ◆窃听攻击:攻击者在用户名、密码传输路径上设置嗅探器,采集到用户发送的验证信息(用户名和密码)
    ◆窃听攻击背景:由于早期采用的网络协议在网络上以明文(如 Telnet,FTP,POP3)或简单的编码(如HTTP采用的BASE64)形式传输的口令等攻击者通过在会话路径中的任何节点部署嗅探器就可以获得用户的口令。
    ◆线路窃听防御措施
    ◆防御措施:加密(单向函数)
    在这里插入图片描述
    ◆攻击者可能构造一张q与p对应的表,表中的p尽可能包含所期望的值,例如彩虹表
    ◆解决办法:在口令中使用随机数
    ◆重放攻击
    ◆重放攻击又称重播攻击、回放攻击,是指攻击者发送目的主机已接收过的包,特别是在认证的过程中,用于认证用户身份所接收的包,来达到欺骗系统的目的。
    ◆对于传输的会话凭证(登录密码或 session等),如果仅采取简单加密措施,攻击者可以记录下来,并且在稍后的验证过程中进行重放,系统无法区分这次发送的登录信息是攻击者或是合法用户
    ◆针对重放攻击防御措施
    ◆在会话中引入时间戳,由于时间戳的存在,攻击者的重放攻击会被系统拒绝;
    ◆使用一次性口令
    ◆在会话中引入随机数

    3、基于实体所有的鉴别

    ◆理解基于实体所有的鉴别方式及特点
    ◆了解集成电路卡、内存卡、安全卡、CPU卡等常用鉴别物品。
    ◆使用用户所持有的东西来验证用户的身份
    ◆采用较多的一种鉴别方法
    ◆使用用户用于鉴别的东西通常不容易被复制的,具有唯一性
    ◆实体所有的鉴别方式是一种长期被使用的身份鉴别方式
    ◆集成电路卡( Integrated Circuitcard, IC Card)
    ◆信息化时代广泛使用的“实体所有”鉴别物品。
    ◆通过将一个专用的集成电路芯片镶嵌于符合ISO7816标准的PVC(或ABS等)塑料基片中,封装成外形与磁卡类似的卡片形式,也可以封装成细扣、钥匙、饰物等特殊形状。
    ◆IC卡根据实现方式可以分为内存卡、安全卡、CPU卡等不同类型。
    ◆内存卡( Memory Card)
    ◆内嵌存储器用于存储各种数据
    ◆信息存储方便,使用简单,价格便宜,很多场合可替代磁卡
    ◆由于其本身不对存储的数据进行加密并且易于被复制,因此通常用于保密性要求不高的应用场合。例如单位门禁卡、企业的会员卡等。
    ◆逻辑加密卡
    ◆内嵌芯片对存储区域增加了控制逻辑,在访可存储区之前要核对密码。如果连续多次密码验证错误,卡片可以自锁,成为死卡
    ◆由于具有一定的安全功能,因此安全卡适用于有一定保密需求的场合,例如存储着储值信息的餐忺企业会员卡、电话卡、水电燃气等公共事业收费卡等。
    ◆CPU卡( CPU Card)
    ◆也称智能卡( Smart Card),相当于一种特殊类型的单片机,在卡片中封装了微处理单元(CPU),存储单元(RAM、ROM等)和输入输出接口,甚至带有双方单元和操作系统
    ◆CPU卡具有存储容量大、处理能力强、信息存储安全等特点,因此广泛被用于保密性要求较高的场合,例如银行的信用卡等。
    ◆复制及篡改
    ◆鉴别物品可能被复制一份或簒改信息
    ◆选择具备保护其中存储C卡中存储和处理的各种信息不被非法访、复制、篡改或破坏的技

    ◆损坏
    ◆用于鉴别的物品可能会损坏导致不可用
    ◆封装应坚固耐用,承受日常使用中各种可能导致卡片损坏的行为

    4、基于实体特征的鉴别

    ◆理解基于实体特征的鉴別方式及特点
    ◆了解指纹、虹膜、声纹等常用的生物识别技术;
    ◆理解基于实体特征鉴别有效性判定的方法。
    ◆使用具有不可改变、唯一的生物特征作为鉴别依据
    ◆由于鉴别方便性及技术成熟、硬件成本下降,使用越来越广泛
    ◆实体特征鉴别特点
    ◆普遍性:鉴别的特征是每个人都具有的,因此不存在遗忘等问题
    ◆唯一性:每个实体拥有的特征都是独一无二的;
    ◆稳定性:实体的生物特征不随时间、空间和环境的变化而改变;
    ◆可比性用于鉴别的特征易于采集、测量和比较
    ◆鉴别系统构成
    ◆实体特征鉴别系统通常由信息采集和信息识别两个部分组成
    ◆信息采集:通过光学、声学、红外等传感器作为采集设施,采集待鉴别的用户的生物特征(如指纹、虹膜等)和行为特征(声音、笔记、步态等)
    ◆信息识别:与预先采集并存储在数据库中的用户生物特征进行比对,根据比对的结果验证是否通过验证
    ◆指纹
    ◆指纹是指尖表面的纹路,指纹识别主要利用纹路的起终点、中断处、分叉点、汇合点等的位置、数目和方向的分析比较来鉴别用户身份。
    ◆指纹识别在所有生物特征识别中是最成熟、使用最广泛的技术。
    ◆掌纹
    ◆手掌有折痕,起皱,还有凹槽还包括每个手指的指纹
    ◆人手的形状(手的长度,宽度和手指)表示了手的几何特征
    ◆静脉
    ◆个人静脉分布图(指静脉、掌静脉)
    ◆静脉识别是最近几年开始出现的生物特征识别方式,通过静脉识别设备提取实体的静脉分布图,采用特定算法从静脉图中提取特征并与预先存储在数据库中的特征进行比对以判断是否通过验证。
    ◆面部识别
    ◆人都有不同的骨骼结构,鼻梁,眼眶,额头和下颚形状
    ◆用人脸进行身份鉴别友好、方便,用户接受程度高,但识别的准确率要低于虹膜和指纹识别。
    ◆人脸识别系统的主要工作是在输入的图像中准确定位人脸,抽取人脸特征,并进行匹配识别。
    ◆目前,人面部的表情、姿态、化妆等的变化及采集图像时光线、角度、距离、遮挡等问题是影响人脸识别准确性的难题
    ◆视网膜
    ◆使用视网膜上面的血管分布作为识别特征
    ◆视网膜是人眼感受光线并产生信息的重要器官,位于眼球壁的内层,是一层透明的薄膜。视网膜由色素上皮层和视网膜感觉层组成,视网膜识别是通过采集视网膜独特的特征用于鉴别的技术
    ◆虹膜
    ◆使用环绕在曈孔四周有色彩的部分作为识别特征
    ◆虹膜是一个位于瞳孔和巩膜间的环状区域,每一个虹膜都包含水晶体、细丝、斑点、结构、凹点、射线、皱纹和条纹等特征。虹膜在出生后6-18个月成型后终生不再发生变化。虹膜识别系统用摄像机捕获用户眼晴的图像,从中定位虹膜,提取特征,并加以匹配判断。
    ◆巩膜
    ◆巩膜识别也称眼纹识别,使用现膜(眼白)中的血管分布图作为识别的依据。
    ◆技术实现上与虹膜识别类似,人的眼球会因为过敏红眼或者熬夜宿醉等情况发生充血的状况,但这些并不会影响虹膜上血管排布,所以“眼纹”识别具有良好的稳定性。
    ◆语音识别
    ◆语音识别是利用发声者的发声频率和幅值来辦识身份的一种特征识别技术,在远程传递中具有明显优势
    ◆识别方式
    ◆依赖特定文字:实现容易,安全性不高
    ◆不依赖特定文字:防伪性较高,准确率不稳定
    ◆其他实体特征鉴别
    ◆由于生物识别技术的便利性及广泛的应用前景,头骨、耳朵、脑电波等越来越多的生物识别技术被开发出来。
    ◆优势
    ◆实体特征鉴别体系相对实体所知、实体所有的鉴别方式优势在于用于鉴别的特征难以复制,也不会遗失。
    ◆安全风险
    ◆用于鉴别的生理特征终生不变,无法更换,一旦遗失特征数据,安全风险极大
    ◆随着技术进步,生理特征复制越来越简单
    ◆防御措施
    ◆谨慎使用,严格管理数据
    ◆鉴别系统的有效性判断
    ◆错误拒绝率(FRR
    ◆错误接受率(FAR)
    ◆交叉错判率(CER):FRR=FAR的交叉点,CER用来反映系统的准确度

    5、 kerberos体系

    ◆理解单点登录概念及其特点
    ◆了解 Kerberos体系架构及基本认证过程。
    单点登录基本概念
    ◆单点登录概念
    ◆单一身份认证,身份信息集中管理,一次认证就可以访问其授权的所有网络资源
    ◆单点登录实质是安全凭证在多个应用系统之间的传递或其享
    单点登录的安全优势
    ◆减轻安全维护工作量,减少错误
    ◆提高效率
    ◆统一安全可靠的登录验证
    Kerberos协议
    什么是 Kerberos协议
    ◆1985年由美国麻省理工学院开发,用于通信实体间的身份认证,1994年V5版本作为 Internet标准草案公布
    ◆基于对称密码算法为用户提供安全的单点登录服务
    ◆包含可信第三方认证服务
    Kerberos行环境
    ◆密钥分配中心(KDC)、应用服务器和客户端
    Kerberos协议的优点
    ◆避免本地保存密码及会话中传输密码
    ◆客户端和服务器可实现互认
    Kerberos认证过程三次通信
    ◆认证过程由三个阶段组成,例如需要访问OA
    ◆第一次:获得票据许可票据(TGT)
    ◆第二次:获得服务许可票据(SGT)
    ◆第三次:获得服务
    在这里插入图片描述
    Kerberos工作过程获得TGT
    ◆客户机向AS发送访可TGS请求(明文)
    ◆请求信息:用户名、IP地址、时间戳、随机数等
    ◆AS验证用户(只验证是否存在)
    ◆AS给予应答
    ◆TGT(包含TGS会话密钥),使用KDC密码加密
    ◆其他信息(包含TGS会话密钥),使用用户密码加密
    在这里插入图片描述
    Kerberos工作过程-获得SGT
    ◆客户机向TGS发送访问应用服务请求
    ◆请求信息使用TGS会话密钥加密(包含认证信息)
    ◆包含访可应用服务名称(htp)
    ◆TGS验证认证信息(包含用户名等)后,给予应答
    ◆SGT
    ◆客户机与应用服务器之间的会话密钥
    在这里插入图片描述
    Kerberos工作过程获得服务
    ◆客户机向应用服务器请求服务
    ◆SGT(使用htp服务器密码加密)
    ◆认证信息
    ◆应用服务器(验证认证信息)
    ◆提供服务器验证信息(如果需要验证服务器)
    在这里插入图片描述
    kerberos体系
    ◆Kerberos认证协议的缺陷
    ◆首先,协议中的认证信息依赖于时间标记来实现抗重放攻击,这要求使用该协议进行认证的计算机需要实现时间同步,严格的时间同步需要有时间服务器,因此,时间服务器的安全至关重要。
    ◆其次,协议认证的基础是通信方均无条件信任KDC,一旦其安全受到影响,将会威胁整个认证系统的安全,同时,随着用户数量的增加,这种第三方集中认证的方式容易形成系统性能的瓶颈。

    6、认证、授权和计费

    展开全文
  • 一般性假币称重鉴别问题

    千次阅读 2017-06-09 00:56:06
    一般性假币称重鉴别问题
    • 问题重述

      设有 n 枚硬币,其中仅有一枚假币,在已知或未知假币与真币之间重量关系两种情况下,通过无砝码天平称重的方法鉴别假币,求所需的最少称重次数。

    • 问题分析

      此问题是经典的信息论算法问题,许多大公司都曾以此作为面试、笔试题来考核员工。从信息论角度看,“有n枚硬币,其中仅有一枚假币”发生概率为 P=1n ,“假币与真币之间重量关系未知”发生概率为 P=12 ,为了确定哪一枚假币,即要消除上述事件的联合不确定性。
      又因为两事件独立,因此有 I1=logn+log2=log2n 比特;用天平称重,有三种可能:平衡、左倾、右倾,三者等概率,为 P=13 ,因此天平称重一次消除的不确定性为 I2=log3 比特,所以称重次数至少为 I1I2=log2nlog3 次。

    • 解题思路

      【问题一】当 n=12
      将12个硬币编号为:1,2,3,4,5,6,7,8,9,10,11,12
      称重安排如下表:
      这里写图片描述
      称重结果表示为:0:平衡 1:左倾 2:右倾
      可以得到如下表结果:
      这里写图片描述
      同理可用矩阵表示3次称重的安排,矩阵上方为硬币序号,矩阵的行为3次称重时矩阵的放置位置,1表示放到左盘,2表示放到右盘,0表示不参与称重。

      123456789101112110101102100221211212210002021022020

      由表格与矩阵,发现:如果检测结果与矩阵的某列符合,则对应序号的硬币即为假币,且重量较重;如果检测结果不在上述矩阵的列中,将1、2互换,得到假币对应序号,重量较轻。例如,若称重结果为110,则1号为假币,且重量较重;若称重结果为201,将1与2互换,得到102,则3号为假币,且重量较轻。

      【问题二】当 n=39
      查阅资料可得, k 次称重最多可以在3k32个硬币中找到不同的硬币,并判断其轻重。已知硬币数量为39,可求得需要称量的次数 k=5

      1. 编码
        以称量次数为编码长度,使用0、1、2排列组合进行编码,再去掉全为0、全为1和全为2,可知一共有 3k3 个编码。在一个编码中,第一处相邻数字不同的情况是01、12或20,则我们称它为正序码,如11010; 否则为逆序码,如11210;在长度为 的编码中,正序码和逆序码的数量相等,为 3k32 个。
      2. 赋值
        如果把一个正序码的0换成1,1换成2,2换成0,则它认为正序码。由此,将正序码每3个分为一组,例如11010、22121、00202。7将正序码的0与2互换,即可得到一个逆序码,因此每枚硬币均有一个正序码一个逆序码。
      3. 称重
        第一次,将正序码第一位为1的硬币放在左侧,为2的硬币放在右侧,其余不参与称重,如果天平平衡记为0,左倾记为1,右倾记为2;
        第二次,将正序码第二位为1的硬币放在左侧,为2的硬币放在右侧,其余不参与称重;
        每轮如此,重复 次,结果得到一个 位编码。如果此编码为某个硬币的正序码,则这个硬币比其余硬币重;如果此编码为某个硬币的逆序码,则这个硬币比其余硬币轻。
    • 可视化演示
      n=12 为例
      (1)编号(假设6号硬币为假币)
      这里写图片描述
      (2)赋值

      123456789101112110101102100221211212210002021022020

      (3)称重
      将正序码第一位为1的硬币放在天平的左侧,为2的放在右侧,为0的放在旁边:
      这里写图片描述
      将正序码第二位为1的硬币放在天平的左侧,为2的放在右侧,为0的放在旁边:
      这里写图片描述
      将正序码第三位为1的硬币放在天平的左侧,为2的放在右侧,为0的放在旁边:
      这里写图片描述
      结果与事先挑选的6号硬币一致

    • 附录
      称球通解问题的证明
      摘自The Problem of the Pennies, F. J. Dyson, The Mathematical Gazette , Vol. 30, No. 291 (Oct., 1946), pp. 231-234

    引理1:在多于2个的一堆球,已知次品在其中,称k次可以并最多在3^k个半确定的球中找出次品,并且知道其轻重。
    用数学归纳法,当 k=1 。3个半确定的球,一定至少有两个属于同一类,比如说疑重球,将这两个上天平,重的那个就是次品,如果平衡,外边的那个就是次品,而且从它的类别知道这次品是较重还是较轻。验证正确。
    假设结论对 k1 次正确。将不多于 3k 个半确定的球三等分,如果不能够等分,除天平两边要等数外,三方都不多于 3(k1) 个球,且使得两边共有偶数个疑重球,记为 2a 个。这总是可以做到的。因为我们可以把天平上“不齐整”的球和外面异类的球对调。这样天平左右各有 a 个疑重球和3k1a个疑轻球。这一般有多种可能的 a 值满足要求,任取一个都行。这时如果左边重,左边的a个疑重球和右边的 3k1a 个疑轻球,共 3k1 个半确定球有嫌疑,其他都是正品。如果右边重,同理将嫌疑缩小到 3k1 个半确定球。如果平衡,嫌疑在外面的 3k1 个半确定球中。如果这嫌疑是1个或2个半确定球,可以用一个正品与其中一个称一次解决,其他情况我们已知用 k1 次可以解决不多于 3k1 个半确定的球。证毕。
    引理2:已知次品在其中,加一个已知的正品球称k次,可以并最多在 3k+12 个球中找出次品,但有且仅有一种情况不知其次品的轻重。
    k=1 情况,有2个球,取一个与正品球上天平,如果平衡,次品在外面,但不知它比正品轻还是重,注意这是归纳证明中仅有的情况。如果只有1个球,它就是次品了,称一次可以知道比正品轻了还是重。
    假设结论对 k1 次正确。考虑第一次天平称量,一边取 3k112 个加上一个正品球,另一边取 3k112 个球。我们知道这次称量以后,如果天平平衡,那么嫌疑在外面。余下 k1 次可以解决这里的不超过 3k112 个球,有且仅有一种情况不知其次品的轻重。如果天平不平衡,天平的两边都是半确定的球。由引理1知道,余下 k1 次可以解决这里的 3k1 个球。因为这个数是奇数,所以我们必须在第一次天平称量时再加上一个已知的正品球。因此称 k 次,可以并最多解决3k+12个球。证毕。
    定理:在一堆等重球中有一个重量不同的次品球,用天平称 k 次找出来,这堆球最多且可以是3k12个球。
    在第一次称量我们最多可以将 3k11 个球两等分放在天平上,如果不平衡,由引理1,可以再称 k1 次解决。如果平衡,天平这里都是已知球,由引理2,可以再称 k1 次解决外面的 3k1+12 个球。所以总共可以解决 3k12 个球。证毕。

    • 程序代码
    package com.yrwan.findCoin;
    
    import java.util.ArrayList;  
    import java.util.List;  
    import java.util.Scanner;
    
    public class Main {
        static int round = 1;  
        static int maxSteps;  
        public static void run(Status root, List<Status> list) {  //求解 
            List<Status> newlist = new ArrayList<Status>();   
            for (int i=0; i<list.size(); i++) {  
                Status status = list.get(i);  
                status.produceBalances();  
                for (int j=0; j<status.bls.size(); j++) {  
                    Balance bl = status.bls.get(j);  
                    bl.weight();  
                    if (root.succeed()) {  
                        return;  
                    }  
                    if (bl.out1.isUnknown()) newlist.add(bl.out1);  
                    if (bl.out2.isUnknown()) newlist.add(bl.out2);  
                    if (bl.out3.isUnknown()) newlist.add(bl.out3);  
                }  
            }  
            round++;  
            run(root, newlist);   
        }  
        public static void print(Status st, int depth) { //输出结果  
            String indent="";  
            for (int i=0; i<depth-1; i++) indent = indent+"t";   
            Balance bl=null;  
            for (int i=0; i<st.bls.size(); i++)   
                if (st.bls.get(i).unresolved==0) bl=st.bls.get(i);  
            if (bl!=null) {  
                if (depth>maxSteps) maxSteps=depth;  
                System.out.println(indent + "第" + depth + "步称重: " + bl + "rn");  
                System.out.println(indent + "如果一样重: " + bl.out1 + (bl.out1.getConclusion()==Status.RESOLVED?"  *解决*":(bl.out1.getConclusion()==Status.REDICULOUS?"  ×不可能×":"")) + "rn");  
                print(bl.out1, depth+1);  
                System.out.println(indent + "如果左边重: " + bl.out2 + (bl.out2.getConclusion()==Status.RESOLVED?"  *解决*":(bl.out2.getConclusion()==Status.REDICULOUS?"  ×不可能×":"")) + "rn");  
                print(bl.out2, depth+1);  
                System.out.println(indent + "如果右边重: " + bl.out3 + (bl.out3.getConclusion()==Status.RESOLVED?"  *解决*":(bl.out3.getConclusion()==Status.REDICULOUS?"  ×不可能×":"")) + "rn");  
                print(bl.out3, depth+1);  
            }  
        }  
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);  
            System.out.println("请输入硬币个数:");  
            int n = sc.nextInt();  
            sc.close();
            Status root = new Status(n);  
            ArrayList<Status> list = new ArrayList<Status>();  
            list.add(root);  
            run(root, list);  
            System.out.println("***** 求解步骤*****");  
            maxSteps = 0;  
            print(root, 1);  
            System.out.println("***** 最少" + maxSteps + "步可找出假币*****");  
        }
    }
    
    package com.yrwan.findCoin;
    
    public class Balance {
        public int[] data;  
        public Status in,out1,out2,out3;   
        public int unresolved = 3;  
    
        public Balance(int[] data) {  
            this.data = data.clone();  
        }  
        public void weight() {//称重量,推理出三种可能的结果   
            int[] temp;  
            // 一样重   
            temp = in.data.clone();  
            for (int i=1; i<4; i++) { //所有参与称重的硬币都移入正常硬币集合   
                temp[0] = temp[0] + data[i] + data[i+4];  
                temp[i] = temp[i] - data[i] - data[i+4];  
            }  
            out1 = new Status(temp);  
            out1.addParent(this);  
    
            //左边重   
            temp = in.data.clone();  
            for (int i=1; i<4; i++) {  
                temp[0] = temp[0] + temp[i] - data[i] - data[i+4]; //未参与称重的硬币  -->> 正常硬币   
            }  
            temp[0] += data[3] + data[6]; //左边的疑似轻硬币、右边的疑似重硬币  -->> 正常硬币   
            temp[1] = 0;  
            temp[2] = data[1] + data[2]; //左边的不明轻重硬币移入疑似重硬币集合   
            temp[3] = data[5] + data[7]; //右边的不明轻重硬币移入疑似轻硬币集合   
            out2 = new Status(temp);  
            out2.addParent(this);  
    
            //右边重   
            temp = in.data.clone();  
            for (int i=1; i<4; i++) {  
                temp[0] = temp[0] + temp[i] - data[i] - data[i+4]; //未参与称重的硬币  -->> 正常硬币   
            }  
            temp[0] += data[2] + data[7]; //左边的疑似重硬币、右边的疑似轻硬币  -->> 正常硬币   
            temp[1] = 0;  
            temp[2] = data[5] + data[6]; //右边的不明轻重硬币移入疑似重硬币集合   
            temp[3] = data[1] + data[3]; //左边的不明轻重硬币移入疑似轻硬币集合   
            out3 = new Status(temp);  
            out3.addParent(this);  
        }  
        public String toString(){  
            return "(" + (data[0]>0?"正常硬币×"+data[0]+"个 ":"") + (data[1]>0?"不明硬币×"+data[1]+"个 ":"")   
            +(data[2]>0?"疑似重硬币×"+data[2]+"个 ":"") + (data[3]>0?"疑似轻硬币×"+data[3]+"个 ":"")      
            + ") --天平-- ("  
            + (data[4]>0?"正常硬币×"+data[4]+"个 ":"") + (data[5]>0?"不明硬币×"+data[5]+"个 ":"")   
            +(data[6]>0?"疑似重硬币×"+data[6]+"个 ":"") + (data[7]>0?"疑似轻硬币×"+data[7]+"个 ":"") + ")";     
        }  
        public void prop() {  
            if (unresolved <= 0) return;  
            unresolved--;  
            if (unresolved == 0) in.setConclusion(Status.RESOLVABLE);  
        }  
    }
    package com.yrwan.findCoin;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class Status {
        public static int RESOLVED=1, UNKNOWN=2, REDICULOUS=3, RESOLVABLE=4;  
        public int count=0;  
        public int[] data;  
        public List<Balance> parents = new ArrayList<Balance>();  
        public List<Balance> bls = new ArrayList<Balance>();  
        private int conclusion;  
    
        public Status(int c) {  
            count = c;  
            int[] data1 = {0,c,0,0};  
            data = data1;  
            int conc = data[0]<count-1?UNKNOWN:(data[0]==count-1?RESOLVED:REDICULOUS);  
            setConclusion(conc);  
        }  
        public Status(int[] is) {  
            data = is;  
            for (int i=0; i<is.length; i++) count+=is[i];  
            int conc = data[0]<count-1?UNKNOWN:(data[0]==count-1?RESOLVED:REDICULOUS);  
            setConclusion(conc);  
        }  
        public void addParent(Balance bl) {  
            parents.add(bl);  
            if (conclusion==RESOLVED || conclusion==RESOLVABLE || conclusion==REDICULOUS) bl.prop();  
        }  
        public String toString() {  
            return "正常" + data[0] + "、不明" + data[1] + "、或重" + data[2] + "、或轻" + data[3];  
        }  
        public void setConclusion(int conc) {  
            if (conclusion == conc) return;  
            conclusion = conc;  
            if (conclusion==RESOLVED || conclusion==RESOLVABLE || conclusion==REDICULOUS)   
                for (int i=0; i<parents.size(); i++)  
                    parents.get(i).prop();  
        }  
        public int getConclusion() {return conclusion;}  
        public boolean succeed() {return conclusion==RESOLVED || conclusion==RESOLVABLE;}  
        public boolean isUnknown(){return conclusion==UNKNOWN;}  
    
        public void produceBalances() {//得到当前状况下所有可能的称重方案   
            List<int[]> bldata = getBalanceDataArray(data);  
            bls = new ArrayList<Balance>();  
            for (int i=0; i<bldata.size(); i++) {  
                Balance bl = new Balance(bldata.get(i));  
                bl.in = this;  
                bls.add(bl);  
            }  
        }  
        private List<int[]> getBalanceDataArray(int[] src) {  
            List<int[]> list = new ArrayList<int[]>();  
            list.add(new int[src.length*2]);  
            return getBalanceDataArray(src,0,list);  
        }  
        private List<int[]> getBalanceDataArray(int[] src, int id, List<int[]> list) {  
            int total=0,left,right;  
            if (id>=src.length) {  
                for (int i=list.size()-1; i>=0; i--) {  
                    int[] is = list.get(i);  
                    left=0;  
                    right=0;  
                    for (int j=0; j<src.length; j++) left+=is[j];  
                    for (int j=src.length; j<src.length*2; j++) right+=is[j];  
                    if (left!=right || left==0 || is[0]>0&&is[is.length/2]>0)  
                        list.remove(i);  
                }  
                return list;  
            }  
            List<int[]> r = new ArrayList<int[]>();  
            for (int i=0; i<src.length; i++) total += src[i];  
            int half = total/2;  
            for (int i=0; i<list.size(); i++) {  
                int[] is = list.get(i);  
                left=0;  
                right=0;  
                for (int j=0; j<src.length; j++) left+=is[j];  
                for (int j=src.length; j<src.length*2; j++) right+=is[j];  
                for (int j=0; j<=Math.min(half-left, src[id]); j++) {  
                    for (int k=0; k<=Math.min(half-right, src[id]-j); k++) {  
                        int[] iis = list.get(i).clone();  
                        iis[id] = j;  
                        iis[id+src.length] = k;  
                        r.add(iis);  
                    }  
                }  
            }  
            return getBalanceDataArray(src,id+1,r);  
        }  
    }
    展开全文
  • 信息安全技术主要包括: 信息加密技术 ...数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常
  • 这种算法中,发送方使用加密密钥对原始数据( 之为明文) 进行加密之后,把它变成第三方无法看懂的复杂信息( 之为密文) 发送至接收方,接收方如果想看到原始数据,根据对称加密技术的原理,他必须通过此加密算法的...
  • 密码学身份鉴别

    2020-07-20 11:28:51
    身份验证又称“验证”、“鉴权”,是指通过一定的手段,完成对用户身份的确认。 身份认证分为三类: 实体所知 是最为广泛的方法,因为其成本低,实现简单,所以一般应用在密码、验证码等。 该方法面临的威胁...
  • 密码技术概述主要内容和重点密码技术的起源和历史对称密码基本原理分组密码数据加密标准DESS盒代换(S-box Substitution)单一性距离三重DES...和这个内容差不多【网络信息安全】密码学入门笔记 主要内容和重点 密...
  • 一篇文章让你初步了解信息安全领域。 1、简述安全攻击,安全... 2、安全服务(安全属性)的几个属性及定义 身份认证(鉴别):确保每个实体都是他们所声称的实体访问控制:防止对资源的未授权使用数据机密性:保护数据免...
  • 信息安全密码学期末复习重点总结

    千次阅读 多人点赞 2021-05-23 22:15:25
    文章目录信息系统5大目标威胁,攻击分别是什么什么是安全攻击,安全服务,安全机制;主动攻击和被动攻击的内容与区别古典密码用的基本方法经典密码机制分别有哪些经典方法对称和非对称密码的含义,各自的优缺点加...
  • 密码体制有哪五部分

    2021-07-21 01:56:49
    通常,信息的加密和解密过程是通过密码体制+密钥来控制的。密码体制必须易于使用,特别是应适合计算机运算使用。密码体制的分类方法有很多,常见的有以下几种。1.按照密码的发展历史分类根据密码的发展历史,可分为古典...
  • 消息空间M(又称明文空间):所有可能明文m的集合; 密文空间C:所有可能密文c的集合; 密钥空间K:所有可能密钥k的集合,其中每一密钥k由加密密钥ke和解密密钥kd组成,即k=(ke,kd); 加密算法E:一簇由加密...
  • 密码学应用-身份鉴别

    2020-07-08 14:36:15
    身份认证又称“验证”、“鉴权”,是通过一定的手段,完成对用户身份的确认。身份认证可分为三类(实体所知、实体所有、实体特性) 实体所知 身份鉴别的方法最为广泛的方法是实体所知,因为其成本低、实现简单,...
  • 密码学:保障信息安全的核心基础。源于保密通信技术,分为密码编码学(设计密码)和密码分析学(攻击密码系统)。 算法和传递秘钥的方式是影响保密程度的关键。 密码学发展经历了以下三个阶段: 古典密码时期 近代...
  • 经过一段时间的积累摸索,现将一些术语及其定义...用户通过身份鉴别后,由鉴别者为用户出具的一种可信任的电子凭据。 安全芯片security chip 含有密码算法、安全功能,可实现密钥管理机制的集成电路芯片。 差...
  • 类比的ELGamal体制) 公钥密钥的应用范围 加密/解密 数字签名(身份鉴别) 密钥交换 Diffie-Hellman密钥协商协议 Diffie-Hellman密钥交换算法 允许两个用户可以安全地交换一个秘密信息,用于后续的通讯过程 算法的安全...
  • 信息系统的要素有:计算机硬件、网络和通讯设备、计算机软件、信息资源、信息用户和规章制度 信息安全的主要目的是:保证信息的保密性、完整性和可用性 密码可以实现:信息的保密性、信息来源的真实性、数据的完整...
  • 《地理信息系统概论》课后习题全部答案_黄杏元

    千次阅读 多人点赞 2020-08-14 18:11:56
    1、什么是地理信息系统(GIS)?它与一般计算机应用系统有哪些异同点? 答:地理信息系统:是由计算机硬件、软件和不同的方法组成的系统,该系统设计支持空间数据的采集、管理、处理、分析、建模和显示,以便解决...
  • 口令只是进入个人计算机、手机、电子邮箱或者...这些口令与《密码法》草案中的“密码”不同,真正的“密码”,藏在安全支付设备中、藏在网络系统内,默默守护国家秘密信息安全、守护我们每个人的信息安全。《密码...
  • 可以作为主机数据安全存储系统、身份认证系统、以及对称/非对称密钥管理系统的主要密码设备和核心组件 VPN设备:为远程服务提供安全接入手段,为网络通信提供保密性、完整性保护,以及数据源的身份鉴别和抗重放...
  • 商用密码的安全性

    2021-09-29 19:26:28
    而商用密码用于保护不属于国家秘密的信息。 这样看来,是不是商用密码的安全性相对来说比较差呢?不少人有这样的疑惑。为了弄明白说清楚这个问题,让我们先从密码算法安全性的含义本身说起。 关于算法的安全性,密码...
  • 消息认证 消息认证 (Message Authentication):是一个证实收到的消息来自可信的源点且未被篡改的过程...散列函数(又称杂凑函数)是对不定长的输入产生定长输出的一种特殊函数:h = H(M) 其中M是变长的消息 h=H(M)是定...
  • 《GM/T 0064 基于数字证书的身份接口规范》 发布于2019年7月,对标于《GB/T 15843.3 信息技术 安全技术 实体鉴别 第3部分:采用数字签名技术的机制》 本标准的规范了接口参数,client和server采用xml进行交换,个人...
  • 1.选择题 (1)( )密码体制,不但具有保密功能,...(2)网络加密方式的( )是把网络上传输的数据报文的每一位进行加密,而且把路由信息、校验和等控制信息全部加密。 A. 链路加密 B. 节点对节点加密 C. 端对端加密
  • 密码及加密技术

    千次阅读 2019-10-23 13:10:32
    ... ... 数据的保密性是指未经授权的用户不可获得原始数据的内容。...密码学正是研究信息保密性、完整性和认证性的科学,是数学和计算机的交叉学科,也是一门新兴并极有发展前景的学科。 密码学包含两个互相对立...
  • 物联网信息安全复习笔记(从头开始,两天速成)

    千次阅读 多人点赞 2021-01-04 11:44:25
    5. 身份认证单向鉴别,双向鉴别的流程与运用 6. 无线局域网的开放性的特点安全问题常见的几种协议以及这几种协议的流程及缺陷 7. 网络安全中常见的几种攻击形式原理和流程 8. 恶意软件的分类以及主要特点 9. 防火墙...
  • 随着信息科学技术的发展和近年来人们的安全意识和隐私意识逐步提高,大家也越来越关注网络中的信息安全问题。这其中密码编码学是对付各种安全威胁最强有力的工具,它能有效的保证数据的隐私性和和安全性,在近年来在...
  • IBC密码技术分析研究

    千次阅读 2021-01-27 11:28:45
    其内容包括数字证书、不对称密钥密码技术、认证中心、证书和密钥的管理、安全代理软件、不可否认性服务、时间戳服务、相关信息标准、操作规范等。 20世纪80年代,美国学者提出了PKI的概念,PKI是一种普遍适用的网络...
  • 密码学应用(一)身份鉴别

    千次阅读 2020-07-08 22:51:55
    身份验证称为“验证”、“鉴权”,是指通过一定的手段,完成对用户身份的确定。 身份验证的方法: 基于共享密钥的身份验证; 基于生物学特征的身份验证; 基于公开密钥加密算法的公开验证。 身份验证的目的: ...
  • 密码协议概述

    千次阅读 2017-03-19 21:10:27
    1、密码协议又称安全协议,由密码算法设计而成,在网络环境中提供各种安全服务。 对称密码算法——DES,IDEA,AES,RC4 公钥密码算法——ECC,RSA 数字摘要算法——SHA,MD5 数字签名算法——RSA,DSA 2、密码协议分类 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,183
精华内容 2,073
关键字:

什么又称信息鉴别码