IS 0 Introduction
超过 80%的攻击来自内部,由于内部员工更清楚怎么从外部攻击本系统
什么是内部用户(insider)
o 对环境或系统的某些方面有合法的接触或联系的人 o 相比外部攻击者,内部用户有更多的机会和知识 o 内部用户通常由明确的动机
太公兵法(阴符,一本书分成三个 part)是中国的第一个密码(1st cipher in china)
豪密是中华人民共和国的第一个密码(1st cipher in CCP)
凯撒密码(Caesar cipher)
o 是已知的最早的替换式密码(substitution cipher)
o 有 25 种可能的密钥(secret keys)(移位数)
棒子密码(scytale cipher)
o 解密:用同样粗细的棒子 o 密钥:棒子的粗细
隐写术(information hiding/Steganography)
o 连城诀的取诗中的第几个字 o 水浒传的藏头诗 卢俊义反
o 写进头皮、蜡烛里、鸡蛋里、微点(microdot)与电影、培根密码
(bacon cipher)一个字母->5 个字母同时变化字体
密码学演化(evolution)
o 第一次:科托夫原则(kerckhoff principle),密码学从经验转向科学 o 第二次:电子计算机,密码学从人工转向机器化和电子化
o 第三次:公钥密码学(public key cipher),密码机制(cryptography mechanism)的革命化演变
o 第四次:因特网?科技和应用派生的密码学内涵和外延的拓展
科托夫原则(kerckhoff principle)
o 增强安全性:凡是长时间使用且难以改变的东西,都假设敌人可知 o 没有理由认为加密算法具有保密性
o 安全性全部依靠于密钥的强度
o 安全依赖于密钥的保密,而不是算法的保密,密码的强度必须在对手已知 算法的前提下进行定义
o 量产密码机
电子计算机
o 计算机出现在二战中,为了破解 ENIGMA o 计算机加速(accelerate)了加密和解密
o 理论基础:香农信息论(shannon information theory)
通信的数学原理 和 安全系统的通信原理 两篇文章 o 现代密码学的出现(出现:emergence):DES
公钥密码学
o 密码学的新方向
o 公钥密码学允许双方在不分享任何密钥的情况下交换大量信息 o 最广泛使用的公钥密码算法:RSA
互联网
o 密码学内涵(connotation)的拓展
不只是秘密,还有其他问题
o 密码学延伸(extension)的拓展
应用:军事->民用->个人
保护:简单的 PTP 协议->复杂的 PTP 协议->多种网络协议和应用 o 软硬件的发展带来的挑战
硬件能力的提升
分布式计算、云计算、密码分析
基于计算机的信息安全和基于纸笔的信息安全 o 原件和复印件的可区分性
o 修改(alteration)是否留下痕迹 o 易销毁性:纸很相对难销毁
o 手签字基于物理特征;数字签名基于二进制信息
计算机安全的特征
o 全面性(comprehensive):一个系统安全取决于最弱的一环 o 过程性(procedural):不断来会上升的螺旋式上升安全模型 o 动态性(dynamic):整个安全系统处在不断的进步、更新过程 o 层次性(hierarchy):必须使用多层安全技术去解决安全风险 o 相对性(relative):安全是相对的,没有绝对安全
计算机安全的三元素(3 elements)
o 保密性(confidential):别人能看到我们的数据吗 o 完整性(integrity):我们的数据会被非法修改吗 o 可用性(available):资源可用吗
o 真实性(authentic):信息的来源真的是声明的来源吗
计算机安全概念
o 漏洞(vulnerable):安全系统的弱点
o 威胁(threats):是否有可能造成损害的情况 o 攻击(attack):个人或系统通过漏洞发起攻击
o 控制、对抗措施(control):消除或减少漏洞的技术、设备、行为等
o 通过控制漏洞来抵抗威胁。
安全威胁类型:
o 自然威胁:地震火灾洪水闪电 o 物理威胁:错误使用、不小心损坏
o 硬件/软件威胁:不合适的设计、后门、逻辑炸弹、系统冲突 o 介质威胁:硬盘(HDD)损坏、不小心删除、不小心退磁 o 泄露(leak)威胁:电磁泄露,屏幕监视
o 通信威胁:抓包、通信过程中的修改和伪造 o 个人威胁:不小心删除,故意破坏和泄露
安全攻击类型:
o
o 中断(interrupt):攻击“可用性”,使系统失效、摧毁,容易探测
中断方式:硬件损坏、传输链损坏、引入噪声、摧毁路由、DOS 攻击 o 截获(interception):攻击“保密性”,未授权用户获取对数据的访问,
难以检测
截获方式:窃听(eavesdropping)、链路监控(link monitoring)、抓包、黑入
无法完全避免
o 修改(modification):攻击“完整性”,未授权用户获取对数据的访问
和篡改
修改方式:修改数据库记录、黑入、通信延迟、修改硬件
通过数字水印和其他技术可以避免
o 伪造(fabrication):攻击“真实性”,未授权用户向系统中插入虚假实 体并伪装自己为授权用户
伪造方式:向数据库插入记录、伪造 IP、钓鱼
与不可拒(non-repudiation)相关
安全攻击类型:主动/被动攻击 o 被动攻击:目标:截获
难以探测,预防比探测更有效 o 主动攻击:目标:阻断、修改和伪造
易探测,难以预防,可以从攻击中恢复
对抗安全威胁的目标
o 预防:防止攻击者违反安全策略
o 探测:探测攻击者违反安全策略的情况
o 恢复:攻击被阻止,系统被修复,恢复操作;即使受到攻击仍然正常运行
对抗安全威胁的安全服务
o 认证(authentication):确保通信实体是认证的实体,包括对等实体认 证和数据来源认证
o 访问控制(access control):阻止未认证用户访问 o 数据保密性:防止数据窃听
o 数据完整性:确保数据发送到认证用户,未经修改等 o 不可拒:阻值来自任何实体的通信拒绝
o 可用性:保证服务的可用性
对抗安全威胁三成靠技术七成靠管理,人的问题是迄今为止安全问题的主要来源
IS 1.1 Fundamentals of Cryptography
明文、密文、密钥、加密解密算法的关系:C=Ek(P),P=Dk(C ).
古典密码->一战->机械密码->二战后->计算机密码
古典密码 o 棍子密码
o 古希腊密码(二维密码表 字母->二维坐标)
o 凯撒密码
o 女皇玛丽密码 字母->符号 o 都可以使用频率分析进行破解
o 为了对抗频率分析,出现了维吉尼亚密码(vigenere square)
o 书密码
机械密码
o 齿轮机:ENIGMA
加密解密算法是:机器的物理结构、齿轮
密钥是齿轮的初始设置、齿轮的排列顺序、每个齿轮的初始状态、接 线板的设置
上述满足科托夫原则
ENIGMA破解
间谍:获取机器
滥用:day key 和 message key 的误用:重复导致模式的出现
数学方法:
Bombe 机
ENIGMA带来的灵感
密钥是齿轮的初始设置和接线板设置
破解的原因:滥用、重复导致模式、接线板是相对较弱的层次 在整个安全层次中
破解加密算法的途径:
寻找模式
减少复杂度
爆破
数学方法和技巧
计算机密码
o 对称密码学和非对称密码学
o 对称密钥加密算法/共享密钥加密算法/保留密钥加密算法
加密解密算法相同
加密解密使用相同密钥 o 满足科托夫原则
o 块加密
长 bit 流->数个短 bit 节,加密每一个节,节与节之间的加密没有相 相互依赖
一个好的块加密算法,输出应该是输入的 bit 和密钥的函数 o 费斯托密码(Feistel Cipher)
目前现代对称密码算法都基于这一结构
使用块加密,增加了块大小
使用两种方法来达成雪崩效应(avalanche effect)雪崩效应是指当输
入发生最微小的改变(例如,反转一个二进制位)时,也会导致输出 的不可区分性改变(输出中每个二进制位有 50%的概率发生反转)。
扩散(diffusion):使密文的统计特性与明文之间的关系尽量 复杂。迭代交换左右的一半
扰乱(confusion):使密文的统计特性与加密密钥之间的关系尽量
复杂。轮函数 F,块大小 64/128bit、密钥长度 128bit、循环次 数 16、子密钥生成算法、F 算法
o DES算法
块大小 64bits,密钥长度 56bits
特点:
雪崩效应强
很强的反破解能力,只能爆破
目前 56bits 密钥太垃圾了
三重 DES
C=EK3(DK2(EK1(P)))
当 K2==K3||K1==K2 时,等价于 DES 算法
密钥长度 56*3
PGP和 S/MIME 采用的算法
o AES算法
块大小 128bits,密钥长度 128/192/256bits
免疫已知的所有攻击
全平台计算快
设计简单 o ECB
o CBC
与 ECB 的区别
ECB 对于同样的明文块会被加密成相同的密文块;因此,它不能很好 的隐藏数据模式
CBC 上一个块的结果会影响下一个块
o 流加密(stream cipher)
用随机 bit 序列和 P 异或得到 C o 密钥分配问题
根据科托夫原则,密钥十分重要
对称密码学,密钥需要共享,如何共享?
共享方法:
A选一个,物理传送给 B
第三方选择,物理传送给 AB
A和 B 提前商量好
A和 B 有加密连接到 C,C 传给 AB 加密连接
通常的解决方法 KDC(key distribution center)
对称密码学存在的问题
A加密文件后如何把密码告诉 B
用邮件告诉 B,那么邮件被截获了怎么办
B改了半天交给 A 文件,A 怎么知道真的是 B 改的 o 公钥密码学/非对称密码学
公钥密码学基于数学函数而不是替代和置换
公钥密码学是非对称的,用两个独立的密钥,也叫做非对称密码学
公钥密码学允许双方在交换秘密信息时不共享任何密钥
解决了密钥分配问题
公钥密码学保证秘密通信
解决了数字签名问题
↑秘密通信:用 A 的公钥加密,发送给 A,A 用 A 的私钥解密
↑认证:B 用 B 的私钥加密文件,发给 A,A 用 B 的公钥验证 o 公钥和私钥的区别 公钥 KU(public key) 私钥 KR(private key)
攻击者无法从公钥得到私钥
A和 B 不需要提前共享私钥
无论有多少通信需要完成,只需要一对公钥和私钥 o 公钥密码学的关键是寻找一个单向函数
单向函数的特点要满足,计算结果十分容易,但是反向计算基本不可行 o 公钥密码学使用的三个领域
解密/加密
数字签名
密钥交换
o 公钥密码学的要求:
密钥对生成容易
加密快解密快(合法情况内)
攻击者通过公钥无法计算私钥
攻击者无法通过密文和公钥得到明文
密钥对可以更改 o 公钥密码学的发展
DH密钥交换算法
RSA算法
EIGamal 算法
Elliptic Curves 算法
o DH算法
g 是 p 的原根(primitive root),a 叫做 A 的离散对数,是唯一的。A 就是 g^amodp
DH算法寻找到的单向函数是,计算大整数的整数次幂求模是很容易 的,但反向求出离散对数是十分难的
也就是给定 p,g
给一个 a 计算 A 是很容易的。
知道 A 计算 a 是十分难的
a,b,p 的选择对于 DH 算法有很大的影响
如果 p 很小的话,结果很容易爆破
一般我们用三百位的 p,一百位的 a 和 b
g 一般 2 3 5 都可以
DH算法没有认证环节,很容易受到中间人攻击
o RSA算法
单向函数:大质数乘法很容易,但是大合数的质因子分解十分困难
密钥对生成和解密加密过程
B生成密钥对,把公钥发送给 A 怎么操作
找两个一百位以上的大质数 p,q 相乘得到 n
找两个数 e,d 满足
e 和 d 互质,并且小于(p-1)(q-1)
e*d 模(p-1)(q-1)余 1
发送(e,n)作为公钥,保留 d 作为私钥
A加密明文 m 变成 c,m 必须小于 n,传送给 B
找到 B 的公钥(e,n),计算 c=m^e 模 n(指数操作)
把 c 发送给 B
B收到 C,解密
使用私钥计算 m=c^d 模 n
RSA算法安全吗
攻击场景
攻击者可以得到 c 和(e,n),想获得 m 有以下途径
得到 B 的私钥 d
m 是 1 到 n 的数字,爆破
尝试从(e,n)计算出私钥 d
要计算 x,x 满足 r*x 模 s 余 1,一旦 n 可以被 分解质因子成 p 和 q,d 就很好找到了
攻击者生成自己的密钥对
攻击者冒充 B 告诉 A 自己的新公钥
此后攻击者就可以用自己的私钥解密了
怎么克制方法 4
在 A 发密文给 B 前,核对 B 的公钥对不对
A必须确认拿到的是 B 的公钥
除了 B,没人能给 A 发验证
消息完整性问题
A和 B 必须避免 B 的公钥被攻击者伪造
解决这个问题的密码学工具叫做数字签名
对称密码学和非对称密码学的比较
对称密码学
优势:快且便宜
坏处:密钥分配问题
非对称密码学
好处:密钥分配问题被解决
坏处:相对比较贵且慢
在生产生活中
使用公钥密码学来进行密钥交换(RSA)
使用对称密码学来进行加密解密(AES)
常见两个误解
公钥加密在防范密码攻击上比常规密码更安全
实际上二者都依赖于密钥长度和解密的计算量,二者 不用比
公钥加密使得常规加密过时
实际上公钥加密开销相对较大,公钥加密更多的用于 密钥管理和数字签名,而非直接的加密解密
IS 2
密码学能做的和不能做的
o 密码学可以进行AB 之间的秘密通讯
加密解密不能防止欺骗
o 简单来说就是没法做身份认证
数字签名的要求和特点 o 签名是可信的 o 签名不能被伪造 o 签名不能重用 o 签名文档不可更改 o 签名是不能否认的
o 签名和时间在某些情况下需要绑定 o 签名要有合法证明
o 和印章、指纹很类似
数字签名系统的需求
o 可以与签名文档绑定
o 接收者可以验证签名,其他人无法伪造签名 o 签名者不可否认签名
o 签名必须有第三方确认以解决争端 o 作者、时间戳都是签名的内容
数字签名算法
o 公钥密码学确实可以支持数字签名
DSS/DSA
RSA
Elliptic curve o 公钥密码学签名过程
A 用私钥签名文档,发送给 B,B 用 A 的公钥验证签名 o 公钥密码学直接签名的问题
文档很长的时候,签名也特别长
数字签名应该使用单向哈希函数
o 原因:这样就可以不直接签名文档,而是算出文档的哈希值,签名哈希 值。
o 常用的单项哈希函数
MD5,128bits
SHA,160bits
单项哈希函数算法
o 特点:
易计算,给定一个文件,可以很快算出来哈希值
难反向计算,给定哈希值,算不出源文件
难以寻找碰撞,很难寻找到两个哈希值相同的文件
单项哈希函数安全
o 原象(Preimage)最难的攻击
给定哈希值,找到原文件
o 第二原象(second- Preimage)
给定文件,找出另一个与原文件哈希值相同的文件 o 碰撞(collision)
寻找两个哈希值相同的文件
大文件的签名过程
o 源文件通过单项哈希函数得到哈希值 o 哈希值通过A 的私钥加密
o 哈希值和明文文件传送给B
o B 用 A 的公钥解密签名得到哈希值 1
o B 用同样的哈希函数算出传来的明文文件的哈希值 2 o 对比哈希值1 和 2 是否相同
MAC(message authentication code)消息验证码,带密钥的哈希函数 o 消息完整性服务,用来确认信息传输过程中是否被修改过
o
MAC 和数字签名的区别 o MAC:
收发双方需要共享一个秘密MAC 算法的密钥
MAC 不提供不可否认服务:所有可以验证消息保密性的人都能 生成一个MAC
o 数字签名:
收发双方不需要共享任何秘密信息
数字签名可以被有公钥的任何接收者确认
数字签名提供不可否认服务
o 为什么不是总用数字签名,什么时候用MAC
MAC 比数字签名更快
不可否认服务不是总必须的
PGP
o PGP 被广泛使用在数字签名、完整性校验、信息加密、数据压缩、邮件 格式兼容、
o 多平台兼容 o 基于密码安全算法
认证的概念
o 怎么做认证
你有什么:身份证、密码、密钥、
你知道什么:密码、生日、预设问题的答案
你在哪:IP 地址
你是谁
生物认证:指纹,掌印
行为认证:手写、行走
基于密码的认证
o 最广泛应用——系统保存认证用户和密码,存在的缺陷
密码在用户和系统间传递时很容易发生窃听漏洞(vulnerable to eavesdropping)
密码文件很难保密
容易记忆的密码很容易猜出来 o 影响密码系统安全性的因素和机制
输入密码的频率/次数限制
储存密码的方式,哈希后较为安全
网络传输过程的内容形式,哈希后较为安全
校验密码的过程
密码的生命周期
使用*代替密码,不在屏幕显示
定义密码的长度和格式
一段时间后重新输入密码
多次错误后进制登陆 o 密码实现
史前密码,明文存密码
早期密码,哈希后村密码
早些时候的unix 密码
使用DES 作为哈希函数,但是储存在一个所有用户都可 以读的文件里,有很大的隐患,文件/etc/passwd o 字典攻击
字典攻击的可行性是来源于很多密码都是来自于一个小字典的
字典攻击算出字典里每一个哈希值,然后去对照密码文件里有 没有这个哈希值
o 改进方法1——加盐
向用户密码添加随机的盐,再做哈希储存起来
没加盐时候,一轮字典就能搞定所有密码条目
加盐后,一轮字典只能搞定一个密码条目
攻击者必须对一个密码条目尝试全部的盐 o 改进方法2——隐密码
哈希密码不储存在之前的文件里,在etc/shadow 文件里,只有 root 用户可以访问
添加了密码的有效日期 o 保护密码的方法
采用数字+字符,使用随机密码
密码安全性检查
防止特洛伊,使用安全登陆工具
不同的网站上使用不同的站点
可以同类网站使用相同的密码
不要相信任何第三方的记住密码软件
不要在公共场所和不可信的网路环境下登陆重要账号 o 其他改进方式
加入生物识别,敲击键盘的力度等
图形密码,增加可记忆的密码长度
生物认证
o 通过物理特征进行认证
手写识别、指纹认证、面部识别、DNA o 优点:不会被偷窃、丢失或遗忘
o 缺点:
设备花费高
对比算法的安全性
政策问题
伪造问题 o 生物认证的错误率
False AC rate:接收了未授权用户
False RJ rate:拒绝了授权用户
增加接受阈值会增加错误接受率并降低错误拒绝率。
如果错误接受率和错误拒绝率相等,叫做等错误率
不同的情况下对二者的概率有不同的要求 o 生物信息的风险
信息记录时可能不符合要求
可以通过使用留存的记录进行攻击,比如别处搞来的旧指纹
授权的概念(authorization)
o 授权和访问控制基本是一个意思(access control)
o 授权:
认证提供基本的授权
认证提供基本的校验用户身份的功能
授权在更深的控制中被需要 o 授权的三要素
主体(subject)可以访问客体的实体,必须用户和进程之类的
对象(object)可以被访问的东西,比如文件、程序、数据
权限(privilege)主体访问客体的方法,读写删除运行 o 安全访问控制
主要功能:授权,撤销,检查
两个方面:制定政策和执行政策
安全访问控制模型
o DAC discretionary access control 自动访问控制 o MAC mandatory access control 强制访问控制
o RBAC role-based access control 基于角色的访问控制
DAC
o 特性:
根据主体的身份和访问权限做出决定
自主选择意味着具有某种特权的主体可以自动将其访问权的子 集授予其他主体
o 缺陷:
访问允许可能会在信息传输过程中发生改变 o 访问控制矩阵
访问控制表:每个对象都添加了一个详细列表以访问其主体
(access control list)
能力表:每个主体添加一个详细列表以访问其对象(capability list)
MAC
o 强制访问控制规定了秘级 o Bell-LaPadula 模型确保保密性
No Read Up:主体只能读同级或低级的对象
No Write Down:主体只能写高层或同层的对象
隐通道
o 隐通道是使用系统资源进行通信而不会注意到主体(进程)的通道。
o 资源耗尽型隐通道
用低级别进程申请资源成功与否来判断高层进程是否运行 o 负载感知型隐通道
低级别进程执行一个需要高级别进程所需的资源的任务,观察 其完成速度确定高级别进程的运行情况
o 应对隐通道的方法
在确认隐通道后
关闭或者降低通道速度
检测企图使用隐通道的进程
忍受他的存在
隐通道无法完全被避免
限制资源共享,比如资源共享仅可以发生在相同安全层 级的进程之间
限制带宽
MAC 的标准——orange book
o
RBAC
o DAC 和 MAC 的缺点
安全性:DAC 太弱了,无法满足需求。MAC 太强了,不够灵活
管理工作量:都很大
o RBAC 是现代信息企业出于安全信息管理的需求,主要为了减少管理人 员的工作量
o RBAC 给每个用户授予一系列不同的角色
o 特性:
职能分离
角色分层
角色激活
用户成员资格约束
RBAC 的概念
o 包含五个基本数据客体
用户users
角色roles
客体objects
操作operations
许可permissions o 核心概念
角色
一组用户的每个角色都与相关操作相关,用户所属角色 有权执行这些操作
角色和组的区别
组——一系列用户
角色——一群用户+一群操作许可
关系
多对多,用户被赋予特定的角色,角色被赋予特定的许 可
会话sessions
匹配用户和激活的角色
RBAC 的优势
o 授权管理很容易
o 根据工作需要促进分类,如通过财务人员的角色区分公司财务部门和非 财务部门员工的公司财务许可
o 轻松实现最小权限,即使用户被分配为高级身份,也只有在必要时才有 权限,以防止事故发生。
o 便于任务分享,不同的角色执行不同的任务
o 易于进行文件分级管理,文件本身可以分为不同的角色,如字母,账单 等,由用户的不同角色所拥有
o RBAC 可以用来实现 DAC 和 MAC
安全访问控制的原则
o 模型是死的,但是策略是活的,适当的安全策略是安全的核心 o 授权管理
MAC:允许访问完全基于主体和对象的安全层级
主体的安全级别由安全系统管理员赋予
客体的安全级别由创造他的主体所决定
DAC:多种授权管理方法
集中管理,管理员授权和删除访问控制授权。Centralized
分级管理,中央管理员将管理职责分配给实际进行集中 管理的其他管理员。
所有权管理,对象的所有者授权和未经授权的对象访问 者。
协同管理,特殊资源的访问不是由单个用户决定的,而 是由共享用户的合作授权决定的。Collaborative
分布式管理,在分布式管理中,对象的所有者可以授权 其他用户进行管理的权限。
RBAC:RBAC 提供许多类似于自我管理策略的访问控制。 但 是,管理权限的授权是RBAC 的一个重要特性,DAC 和 MAC 中 不存在。
o 缩小用户权限——参照权力分立,将超级用户原有的权利分配给三种特 权用户
系统管理员 - 负责系统维护,用户管理,软件安装等功能
安全管理员 - 负责安全规则配置,安全策略管理和其他功能
审计管理员 - 负责检查审计记录,监视系统安全性和其他功能 o 每个特权用户彼此履行职责和约束。基本约束是,在一类用户眼中,其
他类用户拥有的权限与普通用户完全相同。 没有特别的权利。
安全访问控制的核心原则
o 最小权限——即使用户被分配为高级身份,也只有在必要时才有权限,
以防止事故发生。
o 权力分立,将超级用户原有的权利分配给三种特权用户
系统管理员 - 负责系统维护,用户管理,软件安装等功能
安全管理员 - 负责安全规则配置,安全策略管理和其他功能
审计管理员 - 负责检查审计记录,监视系统安全性和其他功能
每个特权用户彼此履行职责和约束。基本约束是,在一类用户 眼中,其他类用户拥有的权限与普通用户完全相同。 没有特别 的权利。
IS 3
网络结构
o TCP/IP 协议栈去做路由和连接 o BGP 去做路由器发现
o DNS 去做域名解析找 IP
TCP 协议栈
o 数据链路层-网络层-传输层-应用层
o 对应着
o 帧-包-段-信息
IP 和 TCP
o IP 负责传送
o TCP 负责源到目的的可靠性和流控制
o 已经实现的用途:
滑动窗口——流控制
序列号和ack(确认)——可靠性
同步syn(建立虚拟连接)
IP 和 UDP
o IP 提供路由,IP 地址从某台特定机器获取数据报 o UDP 用端口区分传输
目的端口号区分数据对应的应用进程
源端口提供返回地址 o 最小保证
没有ack
没有流控制
没有消息继续 message continuation
TCP
o 发送者:把数据分散成段
每个包都绑定上序列号
o 接收者:重新组织各个段到正确的顺序
确认;丢包会被重新发送 o 双方都保持着连接状态
o 面向连接的可靠的协议,通过提供滑动窗口来提供流控制,通过提供序 列号和确认来保证可靠性
o TCP 重发所有没收到的包支持终端用户的虚拟连接 o TCP 的优势是提供了段的确认接收
三次握手
o
o
o 序列号用于跟踪包的序列号同时确保没有丢包
o ISNs 初始序列号是开始号,在 TCP 连接建立的时候使用
TCP 常见端口号
o 21:FTP,53:DNS,80:HTTP
DNS 服务
o DNS 根服务器负责最高级域名解析
当本地DNS 挂掉,他会找他的授权服务器去问
如果一直挂,通过级联询问一直到根服务器
窃听 sniffing
o 许多传输是不加密的
ftp 和 telnet 明文串密码
许多web 应用使用 http,没有加密
o 混杂模式网络接口卡可以读取所有数据。Promiscuous mode
APR 欺骗 也叫 APR 病毒
o ARP 以太网地址解析协议。
o ARP 欺骗的运作原理是由攻击者发送假的 ARP 数据包到网络上,尤其是 送到网关上。其目的是要让送至特定的IP 地址的流量被错误送到攻击 者所取代的地方。
o ARP:IP->MAC,RARP:MAC->IP o 操作系统通过ARP 缓存来实现 ARP o 可以利用APR spoofing 实现
截获攻击
中间人攻击
DOS 攻击
IP 欺骗 ip spoofing
o IP 欺骗是指带有假的源 IP 地址的 IP 协议分组(数据报),目的是隐藏 发送方或冒充另一个计算系统身份。
TCP SYN flooding
o 原理:
攻击者发送大量请求同时伪造IP 地址
被攻击的主机为每个资源分配资源
一旦资源耗尽,客户端就无法正常连接了 o 这就是经典的DOS 攻击
发送者不需要耗费资源,但是接收者需要对每个请求创建一个 线程
非对称的攻击 o 防止TCP flooding
随机删除
如果SYN 队列满了,随机删除一个
因为正常的连接会很快结束,而且就算被删除,
也会重新发起访问,所以不会有很大的影响,所 以可行。
SYN cookie
可行原因:非对称的资源分配
SYN cookie 使得服务器不会储存状态,除非收到了至少 两次消息从一个客户端
服务器把socket information(IP,端口和服务器 和客户端)存在cookie 里,然后把 cookie 发回去
客户端必须把这个cooike 再发回到服务器做二次 请求,然后服务器重新计算cookie 校验再发送会 客户端
o TCP SYN 预测攻击
序列号如果被攻击者预测,那么就能伪造包发给接收方,按照 伪造的序列号拼出来满足攻击者目的的包
这是很多攻击的源
TCP 欺骗
TCP 连接劫持 hijacking
TCP 重置
对抗方法:
选择一个随机的ISN 去抵抗预测 o TCP 阻塞控制 Congestion
丢包意味着网络阻塞,TCP 协议需要发送方
二分速度直到不发生丢包或者速度降到0
如果丢包停止,传输速度将缓慢增加
模拟情况
A 是好人,B 是坏人
A 和 B 同时丢包
A 没速度了,B 违反协议继续增速
解决办法
增加ack nonces,在 ack 时返回 nonce 来证明他不是一个 欺骗
o DNS 欺骗
修改DNS 服务器或者本地 DNS 服务器,一般是修改 DNS 缓存数 据库,重新定向到页面请求到错误的IP 地址,导致访问到了错 误的服务器
实现了基本的域欺骗
o 对抗DNS 欺骗,DNSSEC SEC 指系统安全拓展
DNS 欺骗发生的原因
DNS 请求和响应都是未经认证的,导致攻击者可以伪造 DNS 信
DNSSEC
所有的响应都是认证的
既不用于提供加密服务,也不用来面对DOS 攻击 o IPSEC
IPSEC 支持在 IP 层的所有网络传输的加密和认证
IPV6 必须支持 IPSEC,IPV4 是可以选择的
三个核心
验证头,AH,
载荷安全性封装,ESP
安全关联,AS o Authentication header 验证头
为IP 包提供数据完整性和认证服务,也可以选择性的提供反重 现攻击
o Encapsulating security payload format 载荷安全性封装
提供安全性、保密性以及认证服务 o Security association 安全关联
IPSEC 使用 SA 来集成安全服务
SA 定义了一系列的算法和常数(密钥等等)对一个发送-接收流 中的加密和认证
如果需要双向安全通讯,需要用两个SA
一个SA 有三个常量唯一确定
SPI security parameter index
IP 目的地址
安全协议标识,确定是AH 还是 ESP
简而言之,SA 是一组逻辑安全参数,可以将信息共享给另一个 实体
o IPSEC 操作模式
IPSEC 可以用在 P2P 或者网络隧道传输
传输模式
传输模式只保护IP 包内容,而不保护 IP 头
由于IP 头未被修改,所以路由过程不会受到影 响。 传输层和应用层的数据都受到保护
一般用在P2P 传输
隧道模式
隧道模式会加密整个IP 包,原始 IP 数据包将被 隐藏到一个新的IP 数据包中,并且将附加一个新 的IP 标头。
通常用于保护网络和网络之间的VPN,主机到网 络通信以及点对点通信
o IPSEC 的优势
IPSEC 可以增强和实现防火墙/路由器
所有通过边界的数据包都将得到安全性增强
受防火墙保护的主机不需要处理安全问题
IPSEC 对最终用户是透明的
构建在IPSEC 网络上的应用程序无需做任何特殊的事情
自动保证保密性和完整性 o SSL&TLS 概念
SSL 连接 SSL connection
连接是提供适当类型服务的传输(OSI 层定义)。
SSL 连接是一种点对点关系。 连接是临时的,每个连接 都与一个会话相关联。
SSL 会话 SSL session
SSL 会话是客户端和服务器之间的关联。 会话由握手协 议创建。 会话定义由一组连接共享的密码安全参数。
避免昂贵的谈判价格来提供每个连接安全参数。
o SSL&TLS 协议栈
SSL&TLS 处在传输层和应用层之间,自身也被分为两层
握手层,定义了三个子协议
记录层,接收并加密来自应用层的信息,然后发给传输 层。
握手层——SSL 中最复杂的部分
使服务器和客户端相互验证
协商加密算法,MAC 算法和加密密钥
在应用程序数据传输之前执行握手协议。
过程:
建立安全谈判
服务器认证和密钥交换
客户端认证和密钥交换
结束
记录层
过程:
碎片化
压缩(可选)
MAC 计算
加密
加入SSL 记录头 o 恶意代码是什么
导致违反网站安全策略的一组指令
o 木马
同时具有公开目的(用户所知)和隐蔽目的(用户不知道)的 程序
木马的复制 replicating 是一个很大的特点,而且很难检测
o 病毒
将自己插入一个或多个文件并执行一些操作的程序
插入操作是插入自身到一个文件
执行操作是做一些操作,当然可能也不进行任何操作
插入阶段必须存在
不必总是执行
只有启动文件未被感染时,病毒才会将其自身插入启动 文件
o 蠕虫
蠕虫、木马、病毒的区别
病毒
存在:通常插入到宿主代码中,不是一个独立存 在的程序
传播:通过感染其他文件进行传播
木马
存在:单独的可运行程序
传播:不用自我复制
蠕虫
存在:单独的可运行程序
传播:自我复制或者到其他目的系统自动传播 o 恶意代码的抵御
没有算法可以检测全部的恶意代码 o 僵尸网络
僵尸网络是指能够按照指令行事的自治程序网络
通常是一大组可以远程控制的僵尸系统
机器的主人不知道他们已经被控制了
通过IRC 或者 P2P 进行控制和升级
作为多种攻击的平台
DDOS
垃圾邮件和点击欺诈 spam and click fraud
为心得蠕虫做准备 o DOS 攻击
目的:压倒受害者机器并拒绝为其合法客户提供服务 o DDOS 攻击
建立一个僵尸僵尸网络•
多层架构:使用一些僵尸作为“主人”来控制其他僵尸
命令僵尸对受害者发起协同攻击
不需要欺骗(为什么?)因为没有必要为了保护一台僵 尸机器来使用欺骗,比起伪造IP 地址,可能获取一台新 的僵尸机要快得多。
即使在发生SYN 泛滥的情况下,SYN cookies 也无济于事
(为什么?)DDOS 引发的 SYN flood 不同于 DOS,每台 僵尸机都是在正常访问服务器的,不会被SYN cookie 影 响。
通过来自不同来源的数千台机器的流量抵达受害者 o 僵尸网络的检测
僵尸机通过IRC 和 DNS 进行检测
IRC 网络聊天室
僵尸使用DNS 查找主人,并由主人查找僵尸是否被列入 黑名单
IRC 和 DNS 活动在网络上十分明显
寻找执行扫描的主机,以及拥有高比例主机的IRC 频道
在波特兰州立大学成功使用
查找请求多次DNS 查询的主机,但几乎不会收到有关他 们自己的查询
通过使用加密和P2P 轻松避开检测 o 邮件欺骗
邮件通过SMTP 服务进行传送
SMTP 服务没有认证服务
邮件来自 这一项是由发件人设置的
不正确输入验证的经典示例
收件人的邮件服务器只能看到其收到信息的直接对等方的IP 地 址
o 为什么要隐藏垃圾邮件的源
许多邮件系统会拉黑那些发送大量垃圾邮件的服务器和ISP(互 联网供应商)
黑名单会减少15-25%的垃圾邮件
垃圾邮件发送者的目的:避免黑名单
僵尸网络来的很容易 o 垃圾邮件是从哪里来的
垃圾邮件源在整个网络上广泛分布
绝大多数垃圾邮件来自IP 地址空间的一小部分
垃圾邮件制造者使用基础路由设备 o 垃圾邮件的对抗
政策性对抗
科技型对抗
过滤器
发件人校验
质询认证