目录
第一章 概论
计算机犯罪
一、计算机犯罪的概念
二、计算机犯罪的特点
三、计算机犯罪的形式
数字取证的发展
一、数字取证科学的定义
二、数字取证面临的挑战
三、取证未来的趋势
数字证据
一、数字证据的定义
二、数字证据与传统证据的区别
三、数字证据的特点
四、法律对数字证据的要求
五、数字证据的来源
六、数字取证的基本流程
计算机取证与分析鉴定的模型
一、基本过程模型
二、事件响应过程模型
三、法律执行过程模型
四、过程抽象模型
取证技术类型
主机取证技术
网络取证技术
主动取证技术
面临的主要难题
第二章 密码学
一、密码学概述
二、古典密码技术(对称密码)
单字符单表代换:密码表仅1个,同一明文会被加密成同一密文
多字符单表代换:密码表有多个,同一明文会被加密成不同密文
置换技术:置换与代换不同,并不是将明文中的一个符号替换为密文中的一个符号,而是改变明文符号的排列顺序,使用置换表
三、高级数据加密标准AES
四、公钥密码体制RSA
五、HASH函数,保证数据的完整性
Hash函数的性质
HASH函数的应用
在散列函数中,最常见的要数MD5和SHA
六、DES加密算法——分组加密算法
七、3DES算法:相当于是对每个数据库用三次DES加密算法
第三章 密码学应用
一、四个安全要素
二、常用加密算法的特点
三、数字信封
四、数字签名
数字签名满足的条件
五、PKI(公钥基础设施)
PKI必须处理以下几个问题
PKI基本的组成部分
PKI模式的主要流程
PKI数字证书
PKI基本框架
数字证书的生命周期
六、国密算法
第四章、信息隐藏
信息隐藏原理
第五章 网络取证
一、网络分层结构
二、网络数据包的封装
TCP头部结构:
IP头部结构:
三、DNS(DOMAIN NAME SERVICE)
四、ARP(IP TO MAC)
五、TCP
六、应用层
七、域名的解析过程
八、万维网的工作方式
九、超文本传输协议HTTP
HTTP报文内容
十、万维网的工作过程
十一、用户点击鼠标后所发生的事件
十二、FTP的双重连接
十三、防火墙
防火墙的功能
防火墙的缺陷
防火墙的技术与类型
十四、网络安全工具的特点
十五、IDS 入侵检测系统 Intrusion Detection
IDS基本结构
IDS性能关键参数
IDS分类
十六、网络取证数据源
面临的技术问题
检查和分析网络通信数据
狭义:通常是对计算机资产本身进行的侵犯的犯罪。
广义:通常是对所有涉及计算机的犯罪。
数据欺骗:非法篡改
意大利香肠术:侵吞余额,积少成多
特洛伊木马、冒名顶替、清理垃圾
逻辑炸弹:插入的异常指令编码
使用被科学推导和证明的方法来保存,收集,验证,识别,分析,解释,记录和呈现从来源获得的数字证据,以促进或进一步重建被认为是犯罪的事件,或帮助预测对现有系统存在破坏隐患的未经授权的行为。
领域扩大化,与其他理论和技术融合、标准化、分析鉴定技术大大发展
法庭上可能成为证据的以二进制形式存储或传送的信息。
不是肉眼直接可见的,需要借助适当的工具
搜集计算机数据的过程,可能会对原始数据造成很严重的修改
技术发展迅猛,取证步骤和程序必须不断调整以适应技术的进步
信息与载体的可分离性和信息的高科技性
系统依赖性
脆弱性
隐蔽性
可挽救性
客观性、关联性、合法性
主机或网络
获取数据(数据保全,镜像获取)、提取数据、数据分析、可视化
按照传统取证流程对数字取证进行了约束与规范,但是该模型中并没有具体针对哪一类数字证据进行相关规定。提出的取证过程粒度较粗,没有把事件的准备作为取证过程的一个阶段。
1、攻击预防阶段(Pre-incident Preparation):事先进行相关培训,并准备好所需的数字取证设备。
2、事件侦测阶段(Detection of the Incident):识别可疑事件。
3、初始响应阶段(Initial Response):证实攻击事件己经发生,须尽快收集易丢失的证据(volatile evidence).
4、响应策略匹配(Response Strategy Formulation):依据现有的经验确定响应策略。
5、备份(Duplication):产生系统备份
6、调查((Investigation):调查系统以便识别攻击者身份、攻击手段及攻击过程。
7、安全方案实施(Secure Measure Implementation):对被侦察的系统进行安全隔离。
8、网络监控(Network Monitoring):监视网络以便识别攻击。
9、恢复(Recovery):将系统恢复到初始状态,并合理设置安全设施。
10、报告(Reporting):记录相应的步骤及补救的方法。
11、补充(Follow-up):对响应过程及方法进行回顾审查,并进行适当的调整。
1、准备阶段(Preparation)在调查前,准备好所需设备和工具。
2、收集阶段(Collection):搜索和定位电子证据。 保护与评估现场(Secure and Evaluate the Scene):保护现场人员的安全以及保证证据的完整性。并识别潜在的证据。对现场记录、归档(Document the Scene):记录包括现场的计算机照片等物证。 证据提取(Evidence Collection):提取计算机系统中的证据,或对计算机系统全部拷贝。
3、检验(Examination):对可能存在于系统中的证据进行校验与分析。
4、分析(Analysis):对检验分析的结果进行复审和再分析,提取与对案件侦破有价值的信息。
5、报告(Reporting):对案件的分析检验结果汇总提交。
1.现场证据多媒体传输技术的研究。
2.SCSI存储设备只读接口技术的研究。
3.计算机硬盘高速硬复制技术的研究。
4.常见格式文档碎片的分析解读技术的研究。
5.隐形文件识别和提取技术的研究。
IPv4/IPv6网络信息捕获和分析技术
网络代理与网络追踪
蜜罐技术
边界进入技术以及信息获取技术
密码分析与破解技术研究
技术、意识、法律
密码学:是研究信息系统安全保密的科学
密码编码学:主要研究对信息进行编码,实现对信息的隐藏
密码分析学:主要研究加密信息的破译或消息的伪造
密码学五元组(P,C,K,E,D):是明文、密文、密钥、加密算法、解密算法
Kercfhoff原则:一般假设攻击者已掌握密码算法,密码算法的抗攻击能力基于对秘密密钥的保护
密码分析的四种类型:
按照密钥的特点的密码算法加密分为:
对称加密算法,非对称加密算法
按照明文的处理方法的密码算法分类:
分组密码:将明文分成固定长度的组,用同一密钥和算法对每一块加密,输出也是固定长度的密文
流密码:又称序列密码,序列密码每次加密一位或一字节的明文,也可以称为流密码
古典对称密码的两个基本操作:
代换技术:明文中的每个元素映射为另一元素
置换技术:明文中的元素重新排列
凯撒密码:明文字母用其后的第三个字母代替,作为其密文字母,即,将明文字母表循环左移三位作为密码表
移位密码:明文字母用其后的第 k 个字母代替,作为其密文字母,即,将明文字母表循环左移 k 位作为密码表
单表密码:明文字母表的任一个全排列均构成一个对应的密码表
维吉尼亚密码:一种基于移位字母表的周期代替密码,它的密钥K由一个字母序列来指定:k=k1…kd。 其中: ki(i=1,…,d)给出了第i个字母表的移动位数,即fi(a)=(a+ki) mod n(a是0!)
解密过程与加密过程类似,不同的只是进行模26减,而不是模26加
AES算法的明文块长可以为128bit,192bit或256bit,密钥也可以分别为128bit,192bit或256bit
安全性基于数论中大整数分解的困难性。密钥长度应该介于1024bit到2048bit之间
此外ElGamal密码、椭圆曲线密码体制(ECC)也属于公钥密码体制
散列(Hash)函数是一种单项密码体制,它是一个从明文到密文的不可逆函数,是无法解密的。
单项散列(Hash)函数H(M)作用于任意长度的消息M,它返回一个固定长度的散列值
经常称函数值H(M)为散列值、哈希值、杂凑值、杂凑码或消息摘要、数组指纹。
(1)能够接受任意长度的消息作为输入;
(2)能够生成较短的固定长度的输出;
(3)对任何消息输入都应该能够容易和快速地计算出散列值;
(4)应该是一个单向函数——难以或不可能反推。也就是说,给定H(m),恢复m在 计算上是不可行的;
(5)应该能够抵抗弱冲突,即当两个不同消息输入生成相同的输出时,就产生了冲突;
(6)应该能够抵抗强冲突,即找到两个有意义的消息m1和m2,使得H(m1)=H(m2)几 乎是不可能的。
数字签名的应用、生成程序或文档的“数字指纹”、用于安全存储口令
MD5采用单向Hash函数将需加密的明文按512比特进行分组,生成长度128比特的密文,称为数字指纹。
SHA输出为160位的散列值,同样以512比特的分组处理。
DES是一种分组加密算法,数据分组长度为64位,密文分组长度也是64位
使用的密钥为64位,有效密钥长度为56位
密钥中有8位用于奇偶校验(8,16,24,32,40,48,56,64,使得每个密钥都有奇数个1),密钥空间2^56
DES基本运算操作: 置换、代换、异或与循环移位 。
K1,K2,K3决定了算法的安全性
若三个密钥互不相同,本质上相当于用一个长为168位的密钥进行加密。对付强力攻击时比较安全。
若数据对安全性要求不那么高,K1可以等于K3。这种情况,密钥的有效长度为112位。
多次运用DES的前提:即任意两个密钥K1和K2,不能找到另一个密钥K3,使得K3对明文的加密结果与经过K1和K2两个加密的结果相同,否则多次DES算法就没有意义了。
机密性:确认信息的保密,不被窃取
鉴别与授权:确认对方的身份并确保其不越权
完整性:确保你收到信息没有被篡改
抗抵赖:有证据保证网络行为不被否认
对称加密算法:快速的加密 / 解密,但密钥分发问题严重,不可能和与你不曾谋面的人通信
非对称加密算法:公钥可以公开、分布式存放,加/解密速度较慢,不适用于 大量的数据加密
杂凑函数:单向不可逆,计算速度快,结果长度统一,原始信息中一个字节的改变会导致摘要后的结果发生变化
产生一个一次性,对称密钥——会话密钥
用会话密钥加密信息
最后用接收者的公钥加密会话密钥——因为它很短
在以上过程中,用对称加密体制加密明文,再用非对称加密体制加密对称密钥,既有对称加密体制效率高速度快的优点,也有非对称加密体制安全性高且密钥分配、管理简便的优点。
提高了加密速度,避免了对称密钥的分发,保证了数据的机密性。只有用接受者的私钥才能够打开此数字信封,确保只有接收者才能对消息密文解密。
所谓数字签名(Digital Signature),也称电子签名,是指附加在某一电子文档中的一组特定的符号或代码,它是利用数学方法和密码算法对该电子文档进行关键信息提取并进行加密而形成的,用于标识签发者的身份以及签发者对电子文档的认可,并能被接收者用来验证该电子文档在传输过程中是否被篡改或伪造。
签名是可以被确认的;
签名是不可伪造的;
签名是不可重用的;
签名是不可抵赖的;
第三方可确认签名但不能篡改;
公钥基础设施(public key infrastructure,PKI)是一种遵循既定标准的密钥管理平台,它可以为各种网络应用透明地提供采用加密和数字签名等密码服务及所必需的密钥和证书管理体系。
PKI的主要任务是在开放环境中为开放性业务提供基于非对称密钥密码技术的一系列安全服务,包括身份证书和密钥管理、机密性、完整性、身份认证和数字签名等。
密钥的安全生成
初始身份的确认
证书的颁发、更新和终止
证书的有效性检查
证书及相关信息的发布
密钥的安全归档和恢复
签名和时间戳的产生
信任关系的建立和管理
公钥证书
证书吊销列表
策略管理机构
认证机构
注册机构
证书管理机构
证书存档
署名用户
依赖方
终端用户
数字证书又称公钥证书,是由可信赖的权威机构(CA)签发的、标志身份信息的一系列数据。它是用来在电子商务活动中证实申请者的身份的唯一电子文件。数字证书采用公钥密码体制,利用一对匹配的密钥对(公钥和私钥)来进行加密和解密。
在PKI的基本框架中,具体包括管理实体、端实体和证书库三类实体
管理实体包括CA和RA,同时管理实体是PKI的核心,是PKI服务的提供者。
端实体包括证书持有者和证书信任方
证书申请、证书生成、证书发布、证书吊销、证书过期和密钥备份与恢复
国密算法可分为对称算法和非对称算法,对称算法包括了SM1,SM4,SM7,祖冲之密码(zuc),非对称算法包括SM2,SM9。还有SM3是哈希算法,SM1和SM7对外是不公开的,想要调用的话,需要通过加密芯片的接口才可以。
信息隐藏是把一个有意义的信息隐藏在另一个称为载体(Cover)的信息中得到隐蔽载体(Stego Cover)S。非法者不知道这个普通信息中是否隐藏了其它的信息,而且即使知道也难以提取或去除隐藏的信息。
按载体类型分类:文字、图象、声音及视频的信息隐藏技术
按密钥分类:若嵌入和提取采用相同密钥,则称其为对称隐藏算法,否则称为公钥隐藏算法。
按嵌入域分类:主要可分为空域(或时域)方法及变换域方法。
按保护对象分类:主要可分为隐写术和水印技术。
整个隐藏系统模型如下图所示,首先产生一个密钥,秘密消息(需要隐藏的信息)和载体对象(公开的信息,秘密消息隐藏于其上)利用密钥,通过嵌入算法,将秘密消息隐藏于载体对象中,传送完后,由接收者通过检测装置将秘密消息和载体对象分离开。
1、物理层:负责光电信号传递方式。集线器工作在物理层。以太网协议。
2、数据链路层:负责设备之间的数据帧的传输和识别。交换机工作在数据链路层。例如网卡设备的驱动,帧同步,冲突检测,数据差错校验等工作。
3、网络层:负责地址管理和路由选择。路由器工作在网络层。
4、传输层:负责两台主机之间的数据传输。
5、应用层:负责应用程序之间的沟通。网络编程主要针对的就是应用层。
窗口:此字段用来进行流量控制。单位为字节数,这个值是本机期望一次接收的字节数。(16bit)
校验和:占16比特。对整个TCP报文段,即TCP头部和TCP数据进行校验和计算,并由目标端进行验证。(16bit)
紧急指针字段:占16比特。它是一个偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。(16bit)
选项和填充:可能包括"窗口扩大因子"、"时间"等选项。(32bit)
端口号:用来识别不同应用进程
源端口:标识报文的返回地址,即报文来源的地方(16bit)
目的端口:明确接收的计算上的应用接口(16bit)
顺序号:用来标识从TCP源端向TCP目标端发送的数据字节流,它表示在这个报文段中的第一个数据字节。(32bit)
确认号:ACK标志为1时,确认号字段有效。它包含目标端所期望收到源端的下一个数据字节。(32bit)
头部长度:给出头部占32比特的数目。如果没有任何选项字段,TCP头部长度为20字节;最多可以有60字节的TCP头部。(4bit)
标志位字段(U、A、P、R、S、F):各比特的含义如下(6bit):
URG:紧急指针(urgent pointer)
ACK:确认序号(acknowledgement )有效。(1bit)
PSH:传送(push)接收方应该尽快将这个报文段交给应用层。(1bit)
RST:(reset) 重建连接。(1bit)
SYN:(synchronous)发起一个连接。(1bit)
FIN:(finish结束)释放一个连接。(1bit)
IP报头前5块为必选,因此,IP包最少20字节:
Version(版本):标识了数据包的IP版本号,一共4位,0100表示IPV4,0110表示IPV6;
IHL(报头长度):表示32位字长的报头长度,一共4位;
TOS(服务类型):用来指定特殊的数据包处理方式。一共8位;
Total Length(总长度):接收者用IP数据包总程度减去IP报头长度,就可以确定数据包数据有效载荷的大小;
Identification(标识符):通常与标记字段和分片字段一起用于数据包的分段,长度为16位;
Flags(标记字段):用于IP数据包分段标记使用,长度为3位;
Fragment Offset(分段偏移):用于指明分段起始点相对于报头起始点的偏移量,可以使接受者按照正确的顺序重组数据包,长度为13位;
Time to Live(生存时间):用于防止数据包在网络上无休止地被传输,长度8位;
Protocol(协议):指定了数据包中信息的类型,长度8位;
Header Checksum(报头校验和):针对IP报头的纠错字段;
Source Address(源地址):表示发送者数据包源点的IP地址,长度为32位;
Destination Address(目标地址):表示发送者目标的IP地址,长度为32位;
Options(可选项):被添加在IP报头中,包括源点产生的信息和其它路由器加入的信息;可选字段,主要用于测试,长度可变;
Loose Source Routing(松散源路由选择):可以指定数据包传递的路径;可以跨越中间多台路由器;
Strict Soutce Routing(严格源路由选择):可以指定数据包传递的路径;不同于loose的是,数据包必须严格按照路由转发,如果下一跳不在路由表中,将会产生错误;
Record Route(记录路由):记录数据包离开每台路由的出接口,区别于traceroute的是,record可以记录来 回的路径,而traceroute只可以记录但方向的;
Timestamp(时间戳):记录数据包到达设备的时间;
Verbose(详细内容):查看数据包传送的详细内容;一般用于查看延迟;
Padding(填充):通过在可选字段后面添加0来补足32位,为了确保报头长度是32的倍数。
为了向google服务器发送http访问请求,主机www.google.com 的 IP 需要首选获得。
通过DNS服务协议向DNS服务器发送查询www.google.com主机IP地址的请求。
获取到www.google.com主机的IP地址
如果google的IP地址处于本地网络,可以向本地网络中的其他主机发送查询请求,获取该IP地址对应的MAC地址
假设Google server’s IP 地址是172.24.147.148
通过广播获取到对应IP地址的mac地址
TCP提供有保证的端口到端口通信。 在发送http请求之前,我们需要确保通信正常(通过3次握手或SYN,SYN-ACK,ACK)。
443是https 80是http
也许我们可以找到明文“消息”。
例如HTTP,FTP,SMTP,IMAP,POP3 HTTPS
主机向本地域名服务器的查询一般都是采用递归查询。
如果主机所询问的本地域名服务器不知道被查询域名的 IP 地址,那么本地域名服务器就以 DNS 客户的身份,向其他根域名服务器继续发出查询请求报文。
本地域名服务器向根域名服务器的查询通常是采用迭代查询。
当根域名服务器收到本地域名服务器的迭代查询请求报文时,要么给出所要查询的 IP 地址,要么告诉本地域名服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地域名服务器进行后续的查询。
万维网以客户/服务器方式工作。
浏览器就是在用户计算机上的万维网客户程序。
万维网的信息资源的文档驻留在因特网中的一系列计算机上,这些计算机运行着万维网服务器程序,称为万维网服务器(Web Server) 。
用户通过浏览器向Web服务器发出请求,服务器根据客户请求内容,将保存在Web服务器中的某个文档发送给客户。
HTTP(Hyper Text Transfer Protocol)超文本传输协议是万维网客户端进程与服务器端进程交互遵守的协议
HTTP是一个应用层的协议,通过TCP连接实现可靠的传输。
HTTP是万维网上资源传送的规则,是万维网能正常运行的基础保障。
请求报文由三个部分组成,即请求行、首部行和实体主体。
响应报文由三个部分组成,即状态行、首部行和实体主体。
1xx 表示通知信息的,如请求收到了或正在进行处理。
2xx 表示成功,如接受或知道了。
3xx 表示重定向,表示要完成请求还必须采取进一步的行动。
4xx 表示客户的差错,如请求中有错误的语法或不能完成。
5xx 表示服务器的差错,如服务器失效无法完成请求。
(1) 浏览器分析超链指向页面的 URL。
(2) 浏览器向 DNS 请求解析 www.tsinghua.edu.cn 的 IP 地址。
(3) 域名系统 DNS 解析出清华大学服务器的 IP 地址。
(4) 浏览器与服务器建立 TCP 连接
(5) 浏览器发出取文件命令: GET /chn/yxsz/index.htm。
(6) 服务器给出响应,把文件 index.htm 发给浏览器。
(7) TCP 连接释放。
(8) 浏览器显示“清华大学院系设置”文件 index.htm 中的所有文本。
FTP在客户和服务器之间要建立双重TCP连接。
一条由客户端发起的“控制连接”(21),用来传输FTP命令,在整个会话期间一直保持打开。
一条是FTP服务器端发起的“数据连接” (20),用来传输FTP数据。
防火墙简单的可以用路由器、交换机实现,复杂的就要用一台计算机,甚至一组计算机实现。
按照TCP/IP协议的层次,防火墙的访问控制可以作用于网络接口层、网络层、传输层、应用层
过滤非安全网络访问。
限制网络访问。
网络访问审计。
网络带宽控制。
协同防御。
防火墙不能完全防止感染病毒的软件或文件传输。
防火墙不能防止基于数据驱动式的攻击。
防火墙不能完全防止后门攻击。防火墙是粗粒度的网络访问控制,某些基于网络隐蔽通道的后门能绕过防火墙的控制,例如http tunnel等。
包过滤
包过滤根据包的源IP地址、目的IP地址、源端口、目的端口及包传递方向等包头信息判断是否允许包通过。
此外,还有一种可以分析包中数据区内容的智能型包过滤器。
应用服务代理
它能够提供在应用级的网络安全访问控制。
代理服务器按照所代理的服务可以分为FTP代理、TELENET、HTTP代理、SOCKET代理、邮件代理等。
代理服务器通常由一组按应用分类的代理服务程序和身份验证服务程序构成。
每个代理服务程序应用到一个指定的网络端口,代理客户程序通过该端口获得相应的代理服务。
网络地址转换
NAT Network Address Translation
为了解决公开地址不足,它可以缓解少量因特网IP地址和大量主机之间的矛盾。
用在网络安全应用方面,则能透明地对所有内部地址作转换,使外部网络无法了解内部网络的内部结构,从而提高内部网络的安全性。
(1)信息收集
(2)分析引擎
(3)响应部件
误报(false positive):如果系统错误地将异常活动定义为入侵
漏报(false negative):如果系统未能检测出真正的入侵行为
按照分析方法(检测方法)
异常检测模型(Anomaly Detection ):首先总结正常操作应该具有的特征(用户轮廓),当用户活动与正常行为有重大偏离时即被认为是入侵
误用检测模型(Misuse Detection):收集非正常操作的行为特征,建立相关的特征库,当监测的用户或系统行为与库中的记录相匹配时,系统就认为这种行为是入侵
按照对象
主机IDS、网络IDS、混合型IDS
防火墙和路由器
数据包嗅探器和协议分析器 :用来监视网络通信并捕获数据包,协议分析器不仅能处理实时数据通信,也能够分析数据包嗅探器事先捕获并保存为捕获文件的数据通信。
入侵检测系统
蜜罐(Honeypot)和蜜网(Honeynet)。
DHCP服务器。
网络监控软件。
ISP(互联网服务提供商)记录
客户端/服务器(C/S)应用程序
主机的网络配置和连接
关键字搜索技术
数据编码是根据一定的算法将数据转换成需要的格式。常见的数据编码有以下几种:
BASE64:将每3个字节的数据编码成4个字节的数据。主要用于电子邮件。
Quoted Printable:英文编码后不变,汉字(2个字节)编码后变成6个字节。主要用于电子邮件。
URL encode编码:HTTP协议中URL的参数只能传递可显示的ASCII字符,如果要传递空格或者汉字,则需要进行URL encode编码。编码方式是每个字节转换成“%”号加上16进制内码的形式,共3个字节。表是一些特殊字符的URL编码。
辨认相关的事件
查看Web服务器的记录是最直接和有效的方法。
可用对应的关键字来进行搜索,检查日志文件中是否有可疑的安全事件:
企图运行可执行文件或脚本的多次失败的命令;
来自一个IP地址的过多失败的登录尝试;
访问和修改.bat或.cmd文件的失败的尝试;
未经授权企图将文件上载到包含可执行文件的文件夹。