学渣的密码学笔记 Chap.1 计算机攻击与计算机安全
四大安全性原则
保密性,完整性,认证,不可抵赖性。
针对整个系统:
访问控制 可用性
对应的攻击类型:
截获、伪造、篡改、中断
进一步可以分成主动攻击和被动攻击两类,
被动攻击:
不会对数据进行任何篡改:
分为消息内容泄漏和流量分析
主动攻击
中断攻击:伪装攻击
篡改攻击:重放攻击、消息更改
伪造:拒绝服务
实际攻击
应用层攻击:攻击者攻击特定应用程序的信息或者应用程序本身
网络层攻击:降低网络能力,通常减慢或停止激素那几网络。可能自动导致应用层攻击。
注意:安全攻击可能发生在应用层或网络层。
攻击程序
病毒:
可以把自己连接到另一个合法程序中,导致计算机系统或网络的破坏。
生存期四个时期:
(a)蛰伏期:空闲状态,在特定动作或事件下才进行活动。非必经阶段。
(b)传播期:病毒自我复制,传播更多副本
(c)触发期:某个动作或事件发生时病毒进入的阶段
(d)运行期:病毒实际工作,有害或具有破坏性的
病毒分类:
寄生虫病毒:连接到可运行文件中
内存驻留病毒:把自己附加到主存区感染每个正在运行的可运行程序
启动区病毒:感染磁盘的主启动纪录,操作系统启动计算机时,病毒在磁盘上扩散。
潜行病毒:具有一定智能,防止反病毒软件程序检测到它
多态病毒:运行时改变其签名(标识),更难被检测到
变形病毒:可以改写签名,并能重写自己,使得其更难被检测到
宏病毒:感染特定的应用程序软件。如微软的 Word和Excel软件,利用宏的特性感染由用户创建的文档,因为文档经常通过电子邮件进行交换所以很容易扩散。
蠕虫
与病毒相似,是另一种实现方式。不篡改程序,只是不断的复制自己。
蠕虫不进行任何破坏性操作,只是耗尽系统能够资源,使其停滞。
特洛伊木马
同病毒一样隐藏代码,但是病毒的主要目的是对目标计算机或网络进行某种篡改,而特洛伊木马则是为了向攻击者显示计算机和网络的某种保密信息。
特洛伊木马可能把自己连接到登录屏幕代码中。用户输入用户名和口令信息时特洛伊木马捕获信息并发送给攻击者。
小程序和ActiveX控件
其产生是随着Internet和万维网应用程序的产生而产生的。
这些程序或在客户端进行某种处理,或者自动或定期用“拉”技术从Web服务器请求信息。如果执行病毒功能也可进行破坏操作。
为了防止这类攻击,Java小程序要严格检查所完成的工作和不能完成的工作,但是ActiveX没有这些安全限制。新版的已签名小程序(signed applet)可以进行ActiveX相似的访问,也要采用某种检查保证小程序与ActiveX软件不会造成太大损害,至少要能探测其造成的损害。但是
在理论上小程序与ActiveX软件有一定安全风险。
Cookie
Cookie是从Internet的特定特性产生的,是个无状态协议。Cookie是维护状态信息的最常用机制,以文本字符串形式存放在客户计算机的文本文件中。
Cookie带来的危害很小的原因:
1.生成Cookie的web服务器只能访问这个Cookie,2.Cookie只能包含文本信息 3.用户可以拒绝接受Cookie
攻击者可以利用Cookie来手机个人数据,入侵个人隐私。
JavaScript\VBScript\JScript
除了HTML标志外,Web页面还可以包含客户端脚本。用脚本语言写成的小程序在客户计算机的浏览器中直行。
脚本有时候很危险,虽然功能有限但是有过脚本破坏的案例。
对付病毒
反病毒软件:4代 检测、识别、删除病毒
行为阻止软件:检测到类似于病毒的行为就可以阻止他防止产生破坏。
监视之下的动作有:
打开、显示、删除文件
网络通信
各种设置(如启动脚本)的修改
试图格式化磁盘
可运行程序的修改
发送可运行代码给其他人的电子邮件脚本和即时信息
病毒防止而非检测,在破坏之前就阻止病毒。
Java安全性
Java沙箱 SandBox
沙箱模型和安全模型密切相关。沙箱模型可以存放和执行程序,但是有一定限制。开发人员/最终用户可以制定程序能够访问的资源。在不同层次上保护几个资源。
Java程序安全性
字节码验证器:保证Java类文件遵守Java编程语言的规则。字节码验证器保证所有Java程序的内存保护,但并不是所有文件都要进行字节码验证。
类载入器:
装入Java默认路径中的类,在Java1.2中,类装入器还装入不再ClassPath中的类。
访问控制器:在Java1.2中,访问控制器允许或进制核心Java API访问操作系统
安全管理器:核心Java API与操作系统间的主要接口,最终负责允许或进制访问所有操作系统资源。安全管理器的许多决策都使用访问控制器。
安全包:认证签名Java类
密钥数据库:一族密钥,安全管理器和访问控制器用其检验签名类文件所带的数字签名。在Java体系结构中,它放在安全包中,但也可以放在外部文件或数据库。
内置Java应用程序的安全性
从1.2开始,CLASSPATH的类需要安全检查,保证:
严格遵守访问方法;
程序不能访问任意内存地址;
不能改变声明为final的实体;
变量要先初始化后才能使用;
所有数组访问都要检查数组边界;
对象不能任意转换成其他对象类型;
特定攻击:
窃听与伪装:IP窃听与IP伪装 或 分组窃听和分组伪装
分组窃听,对正在进行的回话发动被动攻击。最简单的方法是控制通信量经过的计算机。通常是路由器。但是常常会转而攻击同一路径中保护较差的计算机
分组伪装:用不正确的源地址发送分组,接收方会像伪装地址发送答复
如果攻击者截获答复,则可以看到答复并进行劫持攻击。
如果攻击者的意图是拒绝服务攻击,则不用看到答复
钓鱼欺骗:
伪造真实web站点,无法肉眼分辨。可以用很多技术进行欺骗,试图让用户提供保密信息。
DNS欺骗(DNS伪装)
攻击者把DNS服务器中的IP地址进行更改,则在通信中实现伪装攻击。只要攻击ISP DNS服务器修改DNS实体即可,
DNSSec协议可以防止这种DNS伪装攻击,但使用并不广泛。
Chap 2 加密的概念与技术