根据2018版教程整理。
(一)背景概述
- 信息技术的发展
阶段 | 技术 | 时间 | 人物 |
---|---|---|---|
电讯 | 电报 | 1835 | 莫尔斯 |
电话 | 1876 | 贝尔 | |
电视 | 1925 | 贝德 | |
计算机 | 图灵机 | 1936 | 图灵 |
数字电路 | 1937 | 香农 | |
EDVAC | 1945 | 冯诺依曼 | |
ENIAC | 1946 | 宾法大学 | |
互联网 | ARPAnet | 1960s末 | TCP/IP |
Internet | 1990s |
信息技术的消极影响
(1) 信息泛滥
(2) 信息污染
(3) 信息犯罪信息安全的发展
(1) 通信保密 : (1949) 香农 -《保密系统的通信理论》
(2) 计算机安全
<1> 1976 : D-H : 公钥密码
<2> 1977 : DES
<3> 1980s : TCSEC : 4等级7级别 - 可信计算机系统评估准则 - 橘皮书 - USA
<4> 1990s : CC (ISO 15408) : 信息技术安全性评估通用准则 : 6国7方
<5> 2015 : GB/T 18336 : 安全评估的国家标准
(3) 信息安全保障
<1> 1995:PDRR模型(保护-监测-响应-恢复):美国防部
<2> 1999:BS 7799/ISO 7799:英
(i) BS 7799-1 :信息安全管理体系实施细则
(ii) BS 7799-2:信息安全管理体系规范
<3> 1998:IATF:美NSA:信息保障技术框架
<4> 1999:我国:WPDRRC:预警-保护-监测-应急-恢复-反击
(i) 能力:保护,检测,反应,恢复
(ii) 层面:人员,技术,管理信息安全的基本属性
(1) 机密性
(2) 完整性
(3) 可用性
(4) 可控性
(5) 不可否认性信息安全保障体系
(1) 体系框架
<1> 生命周期:规划组织,开发采购,实施交付,运行维护,废弃
<2> 保障要素:技术,管理,工程,人员
<3> 安全特征:机密性,完整性,可用性
(2) 安全模型:P2DR(策略,防护,检测,响应),核心是策略
(3) 技术框架(IATF)
<1> 核心思想:纵深防御战略
<2> 核心要素:人员,技术,操作
<3> 焦点域:本地,边界,网络,支撑我国信息安全建设
(1) 2003:《国家信息化领导小组关于加强信息安全保障的意见》- 开始
(2) 2004:《电子签名法》- 中国首部信息化法律
(3) 2016:《网络安全法》颁布
(二)基础技术
2.1 密码学
2.1.1 密码学概述
密码学分类
(1) 密码编码学(加密)
(2) 密码分析学(破译)密码体制组成
(1) 消息空间
(2) 密文空间
(3) 密钥空间
(4) 加密算法
(5) 解密算法密码体制分类
(1) 对称密码
<1> 优点:加解密速度快; 缺点:密钥管理困难,数字签名困难
<2> 公开设计原则:密钥保密
<3> 传统加密方法:代换,置换
<4>设计思想:扩散,混淆(方法是乘积迭代)
<5> 攻击方法
(i) 唯密文攻击
(ii) 已知明文攻击
(iii) 选择密文攻击
(iv) 选择明文攻击
差分分析
线性分析
<6> 分类
(i) 分组密码(分块密码)
DES:1970s,64位分组/密钥,8位奇偶校验,Feistel网络
AES:2001,128位分组,128/192/256位密钥,SP网络
IDEA:1990,64位分组,128位密钥
分组密码工作模式
a/. ECB:Electronic Codebook,电子密本,基本模式
b/. CBC:Cipher Block Chaining,密码分组链,IV明文,数据为分组整数倍
c/. CFB:Cipher Feedback,密码反馈
d/. OFB:Output Feedback,输出反馈,转成序列密码
e/. CTR:Counter,计数模式,安全性与CBC一样好
(ii) 序列密码(流密码) :RC4,SEAL
(2) 公钥密码(非对称)
<1>RSA:基于大整数因式分解困难性,n至少为1024位
(i) 随机选择两个大素数p,q
(ii) 计算 n=pq,phi(n) = (p-1)(q-1)
(iii) 选择e,满足:1(iv) 计算 ed = 1 mod phi(n)
(v) 公钥 :(e, n),密钥:(d, n),加密:C = M^e mod n,解密:M = C^d mod n
<2> ElGamal:基于离散对数困难性
<3> ECC:基于椭圆曲线离散对数问题,ECC-161 = RSA-1024国密算法
(1) SM4 = AES
(2) SM2 = RSA
(3) SM3 = SHA-256,Merkle-Damgard结构,512*n -> 256
2.1.2 哈希函数(散列/杂凑函数)
性质
(1) 压缩性:将任意长度的输入变换成固定长度的输出
(2) 单向易计算
(3) 抗碰撞
(4) 高灵敏应用:消息认证、数字签名、完整性校验、口令加密(非数据加密!)
常见
(1) MD5(消息摘要算法):512 * n -> 128
(2) SHA(安全散列算法):512 * n -> 160
注:SHA比MD5安全,但计算速度慢。
2.1.3 数字签名
- 原理:公钥密码 + Hash函数
- 应用:鉴权、抗抵赖、完整性
- DSS:美国数字签名标准(1994)
2.1.4 密钥管理
密钥生成
(1) 会话/文件密钥(两端一次交换数据所用):如用X9.17标准(3DES)生成
(2) 加密密钥(用于加密会话密钥):机器生成或人为选定,存于主机
(3) 主密钥(用于加密加密密钥):长期不变,存于主机
(4) 基本/初始密钥:人工选定或系统分配,与会话密钥一起控制密钥产生器密钥分配
(1) 基于人工分发
(2) 基于中心(第三方分发密钥)
注:第三方可以是KDC(密钥分发中心)或KTC(密钥转换中心)
<1> 拉模式:A想和B通信,通信前先从KDC拿回一个密钥
<2>推模式:A想和B通信,通信前A先让B从KDC拿回一个密钥
(3) 基于认证(公钥证书):CA为A建立公钥证书,A将自己的公钥通过此证书发给B,B用CA的公钥对证书加以验证。
(4) 基于Diffie-Hellman密钥交换协议:设p是素数,g是p的一个原根,g和p都是全局参数;甲和乙分别选定某数a和b,计算A=g^a mod p 和 B=g^b mod p,交换A和B;则共享 K =A^b = B^a mod p。密钥存储
(1) 公钥:通过CA验证公钥确实属于某个用户
(2) 私钥
<1> 本地硬盘
<2> 网络目录服务器:使用口令登录获取或修改私钥
<3> Smard Card(智能卡):信用卡大小,需要专门的读卡器,不易推广
<4> USB Key:形如U盘,内置CPU,运算均在此硬件内完成,私钥不出卡密钥更换及撤销
(1) 密钥更换:可采用批密钥生成方式,一个生效则另一个废除
(2) 密钥撤销:公钥的有效期为1到2年
注: C/S模式系统中的加密
- 用户口令以MD5存储,并发送。
- AES-128/ SHA-160/MD5-128/RSA-1024
- RSA的公钥 (n,e),e的二进制应尽量少含1(建议e=65537,两个1)
- RSA中d
- 会话密钥协商:Diffie-Hellman算法
- 公钥证书发给另一用户:
A=g^a mod p, B=g^b mod p, K=A^b = B^a=g^(ab) mod p
2.2 认证
认证不能防止发送方否认,需要用到数字签名。
- 消息认证
(1) 消息加密
(2) 消息认证码(MAC)
(3) 哈希函数 - 身份认证
(1) 静态密码
(2) 动态口令
<1> 短信
<2> 动态口令牌
(3) USB Key
<1> 挑战/应答模式
<2> PKI模式
(4) 生物识别
注:身份认证协议
<1> 基于口令
<2> 基于对称密码
<3> 基于公钥密码
2.3 访问控制
访问控制是用户进入系统的第一道防线。
主体访问客体,访问控制实质是一种授权行为。
访问控制模型
(1) 自主访问控制(DAC):访问控制矩阵
<1> 行:访问能力表(用户)
<2> 列:访问控制表(目标)
(2) 强制访问控制(MAC)
<1> Bell-Lapadula模型:不上读/不下写(保密)
<2> Biba模型:反BP(完整)
<3> Chinese Wall模型:DAC + MAC
(3) 基于角色的访问控制(RBAC):角色、用户、许可访问控制技术
(1) 集中式:AAA管理(认证、授权、审计)
<1> RADIUS:UDP,C/S模式,认证+授权,固定密码,仅加密密码
<2> Diameter:RADIUS的升级版协议,TCP,P2P模式,认证授权分离,IPsec,分布式审计
<3> TACACS+:TCP,认证授权分离,动态密码,加密所有数据
(2) 分布式:跨域访问
<1> 单点登录(SSO):仅一次认证能登录多个应用系统
<2> Kerberos协议:对称加密,单点登录,结合授权,不依赖系统
<3> SESAME:多厂商欧洲安全系统,支持Kerberos V5
2.4 审计监控
- 审计系统:日志记录器,分析器,通告器
- 恶意行为监控:监控攻击行为和入侵行为
(1) 主机监测:杀毒软件,基于主机的IDS
(2) 网络监测
<1> 流量监听
<2> 在未使用IP地址空间被动收集数据(???)
<3> 蜜罐技术:将未使用地址伪装成活动空间,与入侵者交互获取入侵详细信息
(i) 高交互蜜罐:具有完整操作系统的虚拟机(主机行为监控模块装于此)
(ii) 低交互蜜罐:虚拟部分操作系统及服务
<4> 密网技术(诱捕网络):一种高交互蜜罐,可包含多个蜜罐,其内的行为都是恶意的。
<5> 恶意代码诱捕系统:高交互蜜罐 + 低交互蜜罐 + 主机行为监控模块(装于高交互蜜罐) - 内容审计
(1) 内容监控主要方法:网络舆情分析
(2) 内容审计模型
<1> 流水线模型
<2> 分段式处理模型
(3) 不良信息监控方法
<1> 网址过滤
<2> 网页内容过滤
<3> 图像内容过滤
(三)系统安全
3.1 操作系统
- 操作系统基础
(1) CPU
<1> 内核模式:操作系统(0环)
<2> 用户模式:其他应用(3环)
注1:用户模式到内核模式的唯一方法是触发硬件自陷(中断,异常,显式执行自陷指令)
注2:保护环
<1> 0环:系统内核
<2> 1环:操作系统
<3> 2环(许多系统不用):I/O驱动及其他
<4> 3环:应用程序
(2) 内存管理:MMU
(3) 用户接口:作业级,程序级
(4) 系统调用(system call):系统内核中的一组子程序,供应用程序调用
(5) 进程管理
<1> 进程管理通过中断实现
<2> 进程是运行中的程序,是系统用于组织资源的最小单位
<3> 线程是CPU执行的最小单位,可在同一进程中共享资源
<4> 进程隔离:要求进程有不同的虚拟地址
(6) 文件系统
<1> 文件系统本质是数据链表。
<2> 文件系统在操作系统的下层,操作系统也是保存在文件系统中。 - Linux
(1) 重要进程
<1> init:id=1,linux启动后第一个进程
<2> inetd:监视网络请求的守护进程(xinetd)
<3> syslogd:审计工具
(2) 重要命令
<1>ls -l
查看文件权限
-rwxrw---- 1 root root 2967 Sep 15 10:25 mbox
(i)-
表示是正规文件,此外还有d
(目录),l
(软链接),s
(socket文件) 等
(ii) 之后的9位里每3位分别表示拥有者,所在组和其他用户的权限;
可读(r
),可写(w
),可执行(x
)
(iii)1 root root
表示链接数, 拥有者和所在组的ID
(iv)2967 Sep 15 10:25
文件大小,最后一次修改时间,文件名
<2>chmod number file
改变文件权限
number
为八进制数,拥有者的可读、可写、可执行分别对应400, 200, 100
;所在组的可读、可写、可执行分别对应40, 20, 10
;其他用户的可读、可写、可执行分别对应4, 2, 1
(i)chown
改变拥有权
(ii)chgrp
改变分组
<3>who
显示当前用户
注1:who
显示的是真正登录系统的用户,whoami
显示的是当前操作系统的用户(如果用su
命令切换了用户);
注2:users
只用一行打印出当前登陆的用户,每个用户对应一个登录会话
<4>last
显示自wtmp文件第一次创建以来登陆过的用户;如果指定用户,则列出其的近期活动
(3) 文件系统
<1> 文件的i节点:UID(文件拥有者),GID(文件所在组),模式(文件权限设置)
<2> 目录结构
/bin
用户命令的可执行文件
/dev
特殊设备文件
/etc
配置管理文件
/tmp
临时文件
/var
统计、日志文件
(4) 账号口令管理
<1>/etc/passwd
用户关键信息
root:x:0:0: root: /root: /bin/bash
注册名:口令:用户ID:组ID:用户名:用户主目录:登录shell
<2>/etc/shadow
真正的口令文件,只有超级用户才能读取
<3> 超级用户不只root一个,任何用户只要UID=SID=0
都可为超级用户
(5) 日志系统
/var/log/wtmp
一个用户每次登录和退出的时间记录
/var/run/utmp
记录当前的每个用户
lastlog
记录最近几次成功登录的事件和最后一次不成功的登录 - Windows
(1) Windows环境子系统 * 3
Win32
windows基础
POSIX
移植UNIX应用
OS/2
与POSIX
类似
(2) Windows核心组件
hal.dll
硬件抽象层
ntdll.dll
内部支持函数
kernel32.dll
核心系统DLL
win32k.sys
子系统内核模式
ntoskrnl.exe
ntkrnlpa.exe
执行体和内核
(3) Windows基本进程 * 9
explorer.exe
图形界面管理
csrss.exe
图形任务管理
lsass.exe
安全机制
winlogon.exe
域登录管理器
services.exe
服务管理
smss.exe
会话管理
spoolsv.exe
将文件加载到内存
svchost.exe
执行DLL文件
system idle process
收集CPU的空闲时间
(4) 进程管理工具
<1> 任务管理器
<2> DOS命令行
(i)tasklist
查看进程
(ii)Ntldr
读取boot.ini
文件
<3> Msinfo32
(5) 系统服务管理
<1>services.msc
服务控制管理器
<2>net start
查看当前已启动的服务列表
<3>sc.exe
批处理
(6) Windows系统安全
<1> 如果对目录有execute
权限,则可以穿越目录。
<2> 网络用户想访问NT Server
的文件和目录,需对其建立共享。
<3> 多次无效登录后可对用户账号实行锁定策略。
<4> 任何涉及安全对象的活动都应该受到审核,审核报告将写入安全日志中,用事件查看器查看。
<5>Winlogon
调用DINA DLL
,监视安全认证序列。
<6>Regedit
打开注册表编辑器
<7>NTFS
格式可修改日志访问权限,防止日志被清。
(7) Windows事件日志类型
<1> 系统日志
<2> 应用程序日志
<3> 安全日志 - 可信计算技术
传统的信息系统安全以防外为重点(由防火墙,入侵检测,杀毒软件构成),主要保护服务器及网络设备;可信计算关注对终端的保护,从芯片、主板等硬件和BIOS、操作系统等软件综合采取措施。
(1) 可信计算平台的关键技术
<1> 信任根
<2> 信任链
(2) TCG可信计算系统
<1> 可信平台模块 TPM(信任根)
<2> 可信软件栈
<3> 可信平台软件
(3) 中国可信计算平台的信任根是可信密码模块 TCM
3.2 数据库
(1) 基本概念
<1> 关系型数据库:常见数据库基本是关系型,其将数据结构归结为二元关系,用二维表格展现,数据库就是一些存在相互关联的表格的集合。
<2> SQL语言:数据库结构化查询与操作
<3> 基本表(Table):数据库中的表为基本表,基本表的每行称为记录,字段是记录的一部分。
<4> 视图(View)
(i) 视图不存储数据,只是查看表中数据的一种方式。
(ii) 视图和基本表都是关系,用SQL访问的方式一样。
(iii) 视图机制的安全保护功能不精细。
<5> 用户
(i) 权限分配面向用户
(ii) 数据库用户权限要素:数据库对象,操作类型
(2) SQL基本语句
SELECT 表达式1 ... ,表达式n FROM 表名1, ... ,表名m WHERE 条件
查询
CREATE TABLE 表名
创建基本表
ALTER TABLE 表名 ADD(...)
修改表
DROP TABLE 表名
删除表
INSERT INTO 表名[...] VALUES(..)
添加数据
DELETE FROM 表名 WHERE 条件
删除数据
UPDATE 表名 SET 表达式 [WHERE 条件]
更新表
GRANT 权限 ON 对象 TO 用户
授予权限
REVOKE 权限 ON 对象 FROM 用户
减少权限
CREATE ROLE 角色
创建角色(非用户)
AUDIT / NOAUDIT 操作 ON 表名
审计/取消审计
CREATE VIEW 视图 AS SELECT * FROM 表名 WHERE 条件
创建视图
WITH GRANT OPTION
允许用户授权给他人
CONNECT
创建用户默认有连接权限
(3) 数据完整性
<1> 数据完整性包括语义、参照、实体完整性(没有关系完整性!)
<2> 保证数据完整性的功能:约束、默认值、规则、事务处理
<3> 事务处理
(i) 事务就是一组SQL语句,以BEGIN TRANSACTION
开始,以COMMIT/ROLLBACK
结束。
(ii) 事务与其中的每个SQL语句共进退。
(iii) 事务可以使用SELECT/CREATE/DROP
语句,但不能回退。
(iv) 事务处理特性:原子性、一致性、隔离性、持久性。
(4) 数据库威胁与防护
<1> SQL注入攻击的数据信道
(i) 存储过程
(ii) Web应用程序输入参数
<2> 数据库安全防护(阶段)
(i) 事前检查
(ii) 事中监控
(iii) 事后审计
<3> 数据库安全检测
(i) 端口扫描
(ii) 渗透测试(黑盒)
身份验证系统
(iii) 内部安全检测
(四)网络安全
Internet的基础是TCP/IP架构(1973)。
架构 | TCP/IP | OSI/RM |
---|---|---|
层数 | 4 | 7 |
应用层 | 应用、表示、会话层 | |
传输层 | 传输层 | |
网络层 | 网络层 | |
数据链路和物理层 | 数据链路层、物理层 |
4.1 网络基础(协议)
- 数据链路层
(1) ARP : IP --> MAC
(2) RARP : 逆ARP - 网络层
(1) IP
<1> 私有IP(内网)
10.*.*.*
172.16/31.*.*
192.168.*.*
<2> IP分类:网络号(8) + 主机号(24)
A : (0.......) 0.0.0.0 - 127.255.255.255
B : (10......) 128.0.0.0 - 191.255.255.255
C : (110.....) 192.0.0.0 - 223.255.255.255
D : (1110....) 224.0.0.0 - 239.255.255.255
E : (1111....) 240.0.0.0 - 255.255.255.255
<3> 特殊IP
0.0.0.0
本机地址 : 若本机有两个IP,则监听0.0.0.0
可以拿到所有数据包
127.0.0.1
自环地址 : 数据包到IP层后不再下发,直接被IP层吸收。
255.255.255.255
(受限)广播地址 :只在本地网络
localhost
本机域名
(2) ICMP:发送畸形数据,用以探测路由/终端是否不可达或查询路由/终端信息(ping)
- 传输层
(1) TCP - 面向连接
<1> TCP协议需要用到端口号(范围是0
到65535
,1024
以下保留)
21
FTP
22
SSH
23
Telnet 远程登录,3389
windows远程桌面
25
SMTP
110
POP3
<2> 控制位
SYN
(同步)建立联机
ACK
确认
PSH
传送
FIN
结束
RST
重置
URG
紧急
<3> 三次握手
(seq
数据包序列号,ack
确认号)
(i) client --> server :SYN=1
,seq=m
(ii) server --> client :SYN=1
,ACK=1
,ack=m+1
,seq=n
(iii) client --> server :ACK=1
,ack=n+1
,seq=m+1
(2) UDP:无连接 - 应用层
(1) HTTP:80
端口,C/S模式
(2) DNS:Domain_name --> IP
(3) SMTP:邮件传输
(4) POP3:邮局协议,版本3
4.2 网络攻击
- 扫描
(1) 信息搜集:whois.com
,google.com
(2) 扫描IP:ping
,tracert
,nmap
,superscan
(3) 扫描端口(服务发现):nmap
<1> TCP全连:精度高,易暴露
<2> TCP-SYN半连:前两次握手
<3> TCP-FIN:隐蔽性最高,非握手,UNIX常用
(4) 扫描漏洞:Nessus综合扫描工具
<1> 网络漏洞:X-scan,nessus
<2> 主机漏洞:360,nessus
(5) 扫弱口令
<1> 字典
<2> 穷举 - 嗅探(抓包)
(1) 方式:混杂模式接口
(2) 工具:Wireshark,Sniffer
(3) 防范
<1> 加密传输:VPN,SSL,SSH
<2> 逻辑隔离:交换机的VLAN - 协议欺骗(主动)
(1) IP欺骗:仿冒IP发包
(2) ARP欺骗:把别人的IP绑到我的MAC,将第三方缓存表更新
<1>方式
(i) 中间人攻击:两头骗
(ii) 伪装网关:将IP变为网关IP
<2> 防范(双向静态绑定)
arp -d
arp -s IP MAC
(3) TCP欺骗:想办法得到第一次握手时的初始序列号,并伪装为第三方IP
<1> 非盲攻击:同一网络内嗅探得到初始序列号
<2> 盲攻击:不同网络内猜初始序列号
(4) DNS欺骗
<1> 欺骗DNS服务器:伪装成更高级别的DNS服务器
<2> 欺骗用户:ARP欺骗伪装网关,拦截外网DNS应答包,修改后发给用户 - 诱骗攻击(被动)
(1) 网站挂马:入侵网站后在网页中嵌入恶意URL
<1> 框架挂马
<2> js脚本挂马
<3> body挂马