网络安全的历史,原理和实现

信息系统在交换数据的过程中,会出现一些安全的问题。 总结一下,主要包括以下几个问题:

 1. 保密性(不允许第3者看到): A向B发送一个文件,文件的内容可能是银行卡号等敏感信息,在信息传输的过程中,不能被第三者看到。

 2.完整性(不允许第3者修改): A向B发送一个文件,A不希望该文件在半路被第三者修改,这样会让B收到一个被更改了的错误的内容。

 3.不可否认性(明确发送者,也称为抗抵赖性):B收到一个号称是A的人发过来的一个文件,但是,究竟是不是真的是A发送的呢,B需要通过收到的文件能够真实地判断是否真是A发送过来的。

 

   4. 可用性:这个是很让人生气的术语,什么叫可用,根本没有说明白。 其实,在这里,它指的就是控制什么人有权访问,什么人无权访问的问题以及当系统崩溃了以后,快速恢复的功能, 是面向使用者来说的,属于系统的权限控制(确定不同的登录的账户分别能访问系统的那些特定资源),包括认证:确定什么样的人才能登录系统和健壮性的问题了。 

    5. 可控性:这个就属于管理方面的问题了,意思就是说,要保证当加密算法交由第三方管理时,必须严格按规定可控执行。

 

 

 

其实,后2点都是废话。 真正我们需要关注的是前面的3点安全需求。下面我们主要来说一说人们是通过什么样的方式来实现前3点的安全需求。

     要想让信息保密,不让他人看,是通过采用加密来实现的。 最开始, 采用一些很基本的方式,就是在发信人和收信人之间约定好一个变换规则,然后,按照该规则对信息进行加密,将加密后的信息发送给收信方,然后收信方根据约定好的规则解密就可以看到原文了。    最开始的加密采用的是置换加密,也就是说将明文中的字符按照一定的密码表的对应规则替换成密文,者就好像那些黑道人物的黑话一样,他们使用一些隐语,表面上是说的这个东西实质上指的是另一个东西。采用这种加密方式的话,加密规则就变得很重要了,不管是谁,只要知道了加密规则,就能破解密文了。这样的加密很不安全, 人们把明文样本和密文样本结果多次比较研究就很容易推断出加密方法来。而且这样的加密规则,时间一长,也就容易暴露,一旦暴露,人们就不得不重新想其它的加密方法了。 所以,这种加密不是很好。

   后来, 加密的方法慢慢发展,采用了更加复杂的变换方式,虽然变换方式变复杂了,但是基本思想还是一样的,就是将明文打乱,让别人看不懂。一般是采用变换函数来进行变换的了,这些变换函数处理的都是二进制的数据, 也就是说,首先要将明文的字符串转变成二进制编码,然后利用变换函数进行处理得到密文。这种变换函数都有一个特点,就是在处理的过程中,都需要输入一个长长的字符串作为参数,而且输入的参数不同,产生的密文也完全不同。

    上述是现代密码中的对称加密,对称加密的加密算法很重要,因为对称加密加密得到的密文结果相同的加密算法出来后就可以得到明文了。

       后来,人们发明了非对称加密(公/私匙加密),使用的数学原理是单向函数和单向暗门函数。 在这种加密算法中,存在公匙和私匙。

每个人都有一个个人特定的唯一的公匙/私匙对。 公匙是开放的,任何人都可以获得,而私匙是自己身份的代表,只有自己才有。假设A要向B发送文件,但是又想获得保密性的需求,那么A就向B索取B的公匙,当然,如果B在认证中心(CA)注册了的话,B也可以去认证中心的网站下载B的公匙。

      注: 具体的过程是这样的:A首先需要从CA的网站上下载CA的RootCA(也就是认证中心自身的公匙),然后,去下载B的数字证书(数字证书实质上就是B的公匙和数字签名的一个打包),当然,B的这个数字证书是用CA的私匙签名过了的,也就是说,CA以其自身的信用向A保证该数字证书是CA自己发布的,而且不可否认。 这样,A得到可以信任的B的数字证书了以后,就是要CA的公匙解密该数字证书,于是就可以得到B的值得信任的数字证书。 从该数字证书中就可以得到B的真实的公匙。  

 

      A得到B的公匙后, 使用该公匙加密要发送的明文得到只有B才能解密的密文(因为只有B采用私匙)。B收到密文用自己的私匙解密即可得到明文了。

      如果A除了要求保密性以外,还要保证传输的完整性,那么A可以在传输之前,先利用一个哈希函数(哈希算法)对明文进行处理,得到一个消息摘要,该消息摘要是根据明文的内容生成的一个很短的字符片段,而且,只要明文的内容稍微有一点点的改动的话,生成的消息摘要就会有很大的差异。 这样,当B获得解密以后的明文了以后,他自己就可以使用相同的哈希函数通过明文得到一个消息摘要(也称为散列码),通过对比得到的消息摘要与A所发送过来的消息摘要是否相同,就可以得知文件在传输的过程中是否被改动了。这样就能保证文件在传输过程中的完整性了。

    当然,为了安全起见,A在传输消息摘要的时候往往使用自己的私匙进行加密,然后B接受到了以后再使用A的公匙解密得到传送过来的消息摘要。这一方面保证了消息摘要在传输过程中的保密性,同时,也相当于使用了A的私匙(A身份的唯一标识)对消息摘要进行了数字签名,这样,当B使用可信任的A的公匙解密时,如果能加密成功,那么就可以证明信息的确是从A传送过来的了,也就可以认定发信人的身份了(具有不可抵赖性)。

 

    实际上,我们就是通过数字签名(电子签名的一种,所谓签名,就好比合同上的签字和盖章,主要目的是为了证明确实是某个人所发送的)来确认发信人的真实身份的。 因为私匙是个人身份的唯一标识(这个是由CA 认证机构所保证的),所以,只有其本人才有相应的私匙,那么使用该私匙签名的人只可能是他自己了。由此,当我们看到特定私匙签名的文件的时候,就可以认定该文件是其本人所发送的,而且具有不可否认性。

 

 

 

 

 

这就是保证信息安全的三个需求:隐密性,完整性,不可否认性(身份确认性)的方法,通过这些方法,我们就可以确定某个文件的确是某人发出的,而且在传送的过程中没有被修改,而且该文件的内容不会被第三者所看到。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
协议分析绝对有用 配合原书使用效果更好 《网络安全开发包详解》——前言 随着网络技术的飞速发展,网络安全问题变得日益严重,对网络安全的研究也越来越重要。在网络安全领域,有很多网络安全技术,如防火墙、入侵检测、安全扫描、网络嗅探、协议分析、流量统计、网络管理以及蜜罐技术等,无论是研究这些技术的原理,还是直接使用这些技术来设计网络安全系统,都会遇到它们的程序设计与开发问题。例如,在研究这些技术的时候,通常要根据研究的理论来设计一个模型,以此模型来验证技术的正确性和性能;还有就是直接运用成熟的网络安全技术来设计一个应用系统,其中常见的有:防火墙系统(如Netfilter,pktfilter等),入侵检测系统(如Snort等),网络安全扫描系统(如Nmap,Nessus等),网络嗅探器(如Tcpdump/Windump,Sniffer等),网络协议分析系统(如Ethereal,Ettercap等),蜜罐系统(如H Honeyd)等。 无论是作为研究的模型还是成熟的应用系统,它们的设计和实现都离不开一些网络安全操作,其中一些操作是很基本的,使用频繁,而且很多都是底层操作,如网络地址的操作、网络接口的操作、数据包的捕获、数据包的构造、数据包的发送等。还有一些操作比较复杂,如流量的统计、路由的管理、ARP缓存的配置、防火墙的管理和配置等。这些操作都会在开发模型或应用系统时碰到,如果这些功能都已经实现,就只需调用它们,这样会大大提高开发的效率,从而降低成本,节省时间和精力。 为了实现这一目标,人们开发了关于这些操作的专用网络安全开发包。网络安全开发包是指用于网络安全研究和开发的一些专业开发函数库,它的主要作用是实现网络安全研究和开发的基本功能,为研究者和开发者进一步研究和开发网络安全提供编程接口,使网络开发人员能够忽略网络底层细节的实现,从而专注于程序本身具体功能的设计与开发。使用它们,会大大加快程序设计的速度。由于这些开发包已经经过时间的考验,非常稳定,使用它们也会提高程序的稳定性。利用它们,网络安全开发者可以很方便地编写出具有结构化强、健壮性好、可移植性高等特点的网络安全应用程序。网络安全开发包实现的都是某一种或某一类网络安全技术,都是经过很多网络安全研究和开发者的长期研究而形成的,人们的不断测试和使用使它们逐渐成熟起来,在实际应用中得到了深入推广。 网络安全开发包有很多种,功能也大不相同,其中比较著名、应用广泛、最具代表性的开发包有以下几种: · 网络数据包捕获开发包Libpcap; · Windows网络数据包捕获开发包WinPcap; · 网络数据包构造和发送开发包Libnet; · 网络入侵检测开发包Libnids; · 通用网络安全开发包Libdnet。 这些著名的网络安全开发包与上述网络安全技术密切相关,它们在网络安全领域得到了广泛的应用。这些网络安全开发包实现了一些网络安全技术,并为其他网络安全技术的开发打下坚实的基础,因而对于研究网络安全技术和开发网络安全应用程序是很有帮助的。 本书对上述网络安全开发包进行了详细讨论,详细阐述开发包的原理、数据结构、输出函数和使用方法。 本书的特点如下: ·介绍当今最著名的网络安全开发包,包括Libpcap,WinPcap,Libnet,Libdnet和Libndis等,全部以最新版本进行介绍。 · 讲解详细、透彻,对每个网络安全开发包的数据结构、输出函数以及使用方法都进行了详细阐述,特别对其使用方法进行了深入而细致的讨论。 · 针对每个网络安全开发包,提供了丰富的例程,每个程序短小精悍,都有全部源代码(需要这些源代码电子文档的读者,请与作者或本书责任编辑联系),对程序都做了详细注解,对其编译过程和运行结果都进行了详细分析。 在本书的编写过程中,得到了很多朋友的帮助,在此对他们表示真挚的感谢。同时也感谢我的亲人,他们的支持和理解是我创作的动力。 由于作者水平有限,再加上网络安全技术的发展十分迅速,书中难免有不妥和错误之处,恳请广大读者赐教。读者可以通过E-mail与作者联系。E-mail:securitybook@163.com(作者);zhangls@phei.com.cn(责任编辑) 刘文涛 2005年7月于武汉

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

walkingmanc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值