CIA三元组: 完整性,可用性,加密性
OSI安全体系结构
信息安全三方面: 安全攻击,安全机制,安全服务
安全威胁/攻击: 被动攻击(窃听\流量分析攻击), 主动攻击(对数据处理(阻断,拦截,篡改,伪造等))
安全机制实现安全服务,安全服务实现安全策略
互联网安全术语(约定) RFC4949
网络安全模型: 网络加密安全模型(参与者,信息通道,安全机制)和网络访问安全模型(攻击者,访问信道,安全机制,资源系统)(看PPT)
密码学基本概念
密码编码学+密码分析学(破解)
密码破解的攻击比较少
对称密钥加密算法
组成部分
分组加密(块加密)\流加密
对称加密算法:
DES\AES\3DES
安全性很大程度上取决于密钥长度
密码系统的两个基本要素是加密算法和密钥管理
Diffie-Hellman算法:
利用大素数求因数极其困难,保障安全性.
缺点: 中间人攻击: 对数据进行伪造,从而得到两个密钥,冒充B与A通信,冒充A与B通信
解决方法: 公钥证书,数字签名
对称密钥问题:
非对称式加密方式
两个密钥:
公钥加密\解密慢
公钥算法(如RSA算法)应用:
加\解密
数字签名
密钥交换
消息认证: 对受到的消息进行验证,证明确实可信(来自声称的发送方), 并且没有被修改过(完整性).
三种方式:
消息加密(用整个消息的密文作为认证标识)
消息认证码MAC(用一个公开函数,加上一个密钥产生固定长度的值作为认证标识)
HMAC(hash + MAC): 密钥填充 + 计算两遍散列值
散列函数(一个公开函数将任意长度的消息映射到一个固定长度的散列值,作为认证标识): 利用单向散列函数进行消息认证(对称加密, 公钥加密, 秘密值加密)
安全散列函数的特性: 无长度限制, 快速性, 单向性, 抗碰撞性, 雪崩性
针对生日攻击的安全条件, 消息摘要长度大于128比特.
数字签名可以实现消息认证,但是太复杂/太慢,所以用更快的消息认证(散列函数快)
身份认证: 口令脆弱性, 所以加入公开的salt值s(散列口令)
MAC是一种加盐的哈希函数
中间人攻击: 若通信双方没有任何先决条件,则一定可以有这种攻击(对策,加入先决条件)
"挑战"码(使用随机数)
令牌协议: 挑战-相应协议 (双因素认证)
重放攻击: 记录当前的通信流量, 以后再发送. (对策: 增加时间戳保证通信的唯一性, 或者使用随机数避免重放攻击)
单点登录(用户只认证一次) Kerberos实现了
密钥管理技术
基于对称加密的密钥管理 Kerberos
基于第三方的加密链路分发密钥, 密钥分发中心KDC
基于对成加密但是N个用户只需要N个密钥, 安全性却决于可信第三方, 双向验证.
适用于较小规模应用场景
KDC两个服务: Authentication Server认证服务(生成TGT票据许可票据), Ticket Granting Server票据授予服务(生成两个主体之间通信的票据)
ticket票据\Authenticator认证记录(使得TGT可多次使用+避免重放攻击)\Credentials凭证(一个ticket+密钥)
工作流程
不能解决密码猜测和拒绝访问(DoS)等攻击
基于非对称加密的密钥管理 PKI
树型结构,根CA为PAA(有自签名证书),对下面的CA签名,层层向下
基本组件: RA(把用户身份和它的密钥绑定起来) + CA(证书签发) + 证书库(保存证书,公开访问)
证书格式(公钥信息+签发人唯一标识符+个体唯一标识符+扩展域+签名)
认证: 数字签名
完整性: 数字签名+MAC(消息认证码)
保密性: 公钥分发随机密钥, 密钥加解密
不可否认(抗抵赖): 数字签名(发送方), 收条+数字签名(接收方)
访问控制 = 认证 + 授权
访问控制策略:
自主访问控制(DAC): 资源所有者规定规则
强制访问控制(MAC): 用户级别(军用)
基于角色的访问控制: 教师-学生(商用)
基于属性的访问控制: 基于用户\环境\被访问资源, 动态的(商用)
Lampson访问控制矩阵
访问控制列表(ACL), 访问能力列表(C-Lists)
混淆代理人问题: “我用python读写我没有权限的文件”
建立逐级授权机制, “继承”
基于角色的访问控制: RBAC模型
用户属于角色, 角色拥有权限
组 = 用户集, 角色 = 用户集 + 权限集
最小权限原则, 责任分离原则, 数据抽象规则
基于属性的访问控制: ABAC模型
隐蔽信道: 高级别向低级别透露信息.(比如通过文件的创建(1)和删除(0), ACK messages等)
降低隐蔽信道的容量
CAPTCHA验证码, 区分人和机器
reCAPTCHA验证码, 两个验证码(一个有GT, 若正确则认为另一个(无GT)也正确)
统一身份认证CAS(一种单点登陆SSO)
CAS Client(代替用户请求), CAS Server(响应)
思想和过程类似于Kerberos
OAuth(一种单点登陆SSO)
用第三方账号注册/登录其他网站等, 向第三方账号申请令牌, 之后都是用令牌认证身份.
防火墙:
包过滤防火墙(工作在网络层)(过滤条件: IP地址, 端口, 标志位, 流向)
基于状态检测的包过滤防火墙(工作在传输层)(状态: TCP连接状态(在三次握手建立连接的过程中的状态))
应用层网关(工作在应用层)
链路级网关(工作在传输层)
默认转发策略和默认丢弃策略
静态包过滤: 不检查数据区, 只检测地址区
例1: SMTP协议(只允许电子邮件流量出入): 服务器使用TCP, 端口25.
请求响应包限定端口, 协议; 响应包还要检查ACK,源端口号
例2: 子网包过滤规则(不允许另一个局域网访问, 但允许其中一个子网可以访问): 检查IP地址
例3: 基于telnet服务的防火墙规则: 服务器端口号固定(小), 客户端不固定(>1023)
例4: Ftp文件传输协议: 命令通道和数据通道分离. 规则较复杂.
简单快速但不够安全, 规则设置较难
IP地址欺骗攻击, 源路由攻击, 细小分段攻击
状态检测防火墙: 增加状态state, 可以记忆TCP连接, 标志位
可以防止TCP ACK扫描攻击
应用层网关: 中继所有的应用, 有完整的应用层视图, 攻击者必须与网关交互.但兼容性不好,慢
链路级网关: SOCKS, 低开销
防火墙局限性: 加密旁路, 内部威胁, 无线网络, 恶意软件
防火墙网络结构: 防御(堡垒)主机结构, 3-Homed结构(含有非军事区DMZ/隔离区), 多层次结构(多层防火墙, 之间是非军事区DMZ, 成本高)
入侵检测系统IDS
检测出外部入侵行为+内部用户的未授权活动
在防火墙和内网间
基于网络入侵检测系统:
使用原始网络资源包作为数据源, 利用混杂模式下(都接受)的网络适配器监视和分析
通常采用特征检测的方法
无法检测系统级的入侵和加密的数据包
基于主机入侵检测系统:
当文件发送变化时, 将新记录条目和攻击标记比较.
依赖于服务器固有的日志与监视能力, 日志文件易修改
代价较大
混合IDS: 构建主动防御体系, 兼有上述两种的能力
信息收集: 原始数据包+日志, 网络检测器(放在主要的网络中枢\边界防火墙之外\边界防火墙之内), 主机检测器(放在主机操作系统, 应用程序)
信息分析: 异常检测(异常检测器, 基于行为), 误用检测(入侵模式库, 基于特征)
告警和响应: 修改防火墙配置等
入侵防护系统IPS
基于主机的IPS--HIPS
基于网络的IPS--NIPS
混合式IPS
IDS与IPS的区别是什么?https://blog.csdn.net/chen3888015/article/details/79695190?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1
蜜罐: 充当诱饵的脆弱系统, 得到攻击方的攻击手段. 低交互蜜罐\高交互蜜罐(更真实)\蜜网
网络层安全协议: IP Sec(应用: IP Sec VPN)
保证数据机密性, 数据完整性, 数据来源认证, 防重放攻击, 但过于复杂
组成:
Internet密钥交换协议IKE
封装安全负载和认证报头: ESP对整个IP加密 或者 AH只加密头部, AH能防止篡改, 不能防止窃听.
传输层安全协议 SSL/TLS
web服务器和浏览器之间明文通信,需要加密
SSL: 减少窃听风险(加密), 篡改风险(校验), 冒充风险(证书)
介于应用层和传输层之间
应用层安全协议:
HTTPS
Web安全
服务器端
SQL注入攻击
跨站域请求伪造CSRF
跨站脚本攻击XSS
客户端
会话劫持
网络协议脆弱性
APR欺骗
IP欺骗
TCP会话劫持
拒绝服务攻击DOS: ICMP攻击+SYN洪泛攻击+Smurf攻击(放大攻击)