2022秋季学期 计算机网络安全技术 期末复习笔记

markdown丢失图片,可直接下载pdf版

网安期末复习

lect1 为什么学

  1. 通信 电信和计网历史 网安概述攻击与防御 Enigma
  2. 密码概念 发展 Casear 单表 PF Hill Vigenere Verman OTP 列置换 破译 SDES Feistal
  3. 公钥原理 RSA DH DSA概念 密钥分配 KDC 公钥分配
  4. 概念 攻击与认证 加密 MAC HASH MDSHA 数字签名DSS 身份认证 basic 表单 session 证书
  5. 无线网 历史标准 威胁 WEP WPA12 TKIP 802.1x
  6. CIA OSI 安全目标-服务-机制-算法 认证保密完整访问控制等服务 特定机制 VPN源路由攻击
  7. IP级安全 IPSEC 实现层次 文档 服务 SASP AH-ESP SA组合 IKE密钥交换 工作模式
  8. SSL 连接共享会话 握手-记录 HTTPS WEB HTTP攻击ARP DNS 电子商务SET 双签名

无处不在的通信

基本要素:信源、信道、信宿
一个世纪前电信网 半个世纪计算机网络 单向广播有线电视网————三网合一

电信网的发展历程

有线电报、电话;无线电报;寻呼;蜂窝移动;手机
1830s 电磁电报机
morse code
滴、答、空。1、3、滴答间1字符间3单词中7

送话器:麦克风,电磁感应震动金属片or液体电阻or活性炭震动
铜线传输;1876贝尔专利,双绞线

1878 交换机从一对一到一对多,人工接续
1879 电话号码,1893步进交换 1938纵横交换
1946 电子计算机 1965程序控制交换机

俄国人波波夫和意大利人马可尼各自独立完成了无线电通信

蜂窝移动通信系统主要是由交换网路子系统(NSS)、无线基站子系统(BSS)和移动台(MS)三大部分组成

无处不在的网络安全

信息窃取攻击

蛮力 常用密码做字典,撞库:用获取的账户密码去登陆更大型的信息系统
中间人 在受害者网络链路中数据监听和篡改;链路传输截取,并修改来欺骗两端
拒绝服务 使计算机崩溃压垮来组织服务,最容易有效,最多,影响网络可用性。SYN洪泛;UDP
洪泛;DNS反射
病毒、恶意软件 传播到用户系统上,有时利用漏洞偷偷运行,伪装成正常程序欺骗用户。浏览、email、移动介质、下载

防守技术

  • 加解密:中间人攻击
  • 访问控制、身份认证:阻止非法访问
  • 防火墙:阻止大部分外来非法请求
  • 防病毒:识别坏东西并阻止
  • 补丁:修复漏洞

揭开现象看本质

Enigma 一战用于战争,1926装备德国军队
有键盘转轮和显示器,没有空格和标点
制造:1918,Arthur Scherbius
破译:Alan Turing,Bomber
转轮机——防止字频统计
代换密码算法多表代换
每次输入后转轮转动一格,同一输入对应的密文不同
三个转轮后反射器,反射器不转动且字母为绑定的双射。相当于划分26字母到正反两个空间
加解密对应转轮情况一样,即表一样
加密:三次正翻译,取反,三次反翻译
解密:三次正翻译,取反,三次反翻译
使得译码和编码过程相同

使用过程

  • 调节三个转轮初始方向
  • 明文打键盘到显示器的密文闪亮并记录,电报发出
  • 接收方打开同样的Enigma,转轮初始化键入密文出现明文

举例

  • 初始化转轮。
  • 输入A,转轮向前(左,反字典序)转动,七次查表翻译D
  • 再次输入A,转三个轮,七次查表得H
  • 这个例子只有第一个轮在转动?

加强

  • 如果得到机器(三个固定表)则秘钥为初始方向,可以蛮力
  • 滚轮可拆卸并组合
  • 键盘和转轮1之间有“连接板”,错位连接一些字母成为另外的信号。最多相当于两两交换六对字母

lect2 密码学 I

基本概念

不同于隐藏(保险柜和密信),不同于访问控制(口令没有加密安全性很弱)

加密形式

  • 传统(对称、单钥)
    • 代换、置换、二者组合
    • 安全性在于保持算法本身保密
      • 不适于大规模生产以及变动大
      • 用户不了解算法安全
  • 公钥(现代、非对称)
    • 算法公开;密钥保密
    • 安全性在于密钥的保密性

概念

  • 密文cipher 明文message有时候为passage

  • 密码算法:Encoder Decoder

  • 密钥Key,在ED中作为下标变量

  • 编码学与分析学:加密方案和破译

  • 编码学的独立特征

    • 转换明文为密文的运算类型
      • 基于置换:重新排列明文元素
      • 代换:映射成另外的元素
      • 不允许丢失信息,运算可逆
    • 所用的密钥数
      • 发送接收相同密钥:对称、传统
      • 不同:非对称,公钥
    • 处理明文的方法
      • 分组密码、块密码:每次处理一个输入分组对应一个输出分组
      • 流密码,序列密码:连续处理输入元素,每次输出一个元素

简单加密:异或。CPK任何两个异或求出另一个

  • 无条件安全(信息论安全):有多少密文(无限的计算能力)都不能唯一确定由该体制产生密文所对应的明文
    • 每次都换密钥,绝对安全
  • 计算安全
    • 破译密码代价大于数据价值
    • 破译时间超过信息声明期

发展周期

  • 古典密码:艺术,需要算法保密。都是针对字符的代换置换,简单的分析手段
  • 近代密码:有计算机;成为科学;有线电报产生现代编码学;无线电报产生现代密码分析学;
    • 加密体系安全性不依赖加密方法本身,而是依赖于所使用的的密钥
    • shannon发表论文成为科学
  • 1976 新方向:公钥密码体制,从DES开始

古典密码(代换)

Caesar 凯撒密码

每个字母换成后面第三个字母
key:往后换key个,25种穷举即可
升级

  • 密钥次密码:一个密钥次放前面剩下按顺序。
    单表代换
    评价 明文的语法模式和结构有多少保留在密文,减少这样的保留信息:
  • 对多个字母一起加密
  • 多表代换

Playfair密码

多表代换
key:密钥词构成5*5字母矩阵,IJ合并,按行填写。
加密:一次两个,相同字母ll变成lx(x为填充字符)

  • 同行,向右一个单位
  • 同列,向下一个单位
  • 四方对角线替换
    ?如果是ij密文输出什么?
    评价 完整保留了明文语言结构,几百个密文可以分析规律

Hill密码

多表代换
m个连续的明文字母带换成m个密文,由m线性等式决定,每个字母都是数字0~25。
key:m*m矩阵,解密用K逆矩阵——并不所有矩阵都可逆。
评价 隐蔽单字母频率,矩阵越大隐藏信息越多。33矩阵隐藏了双字母的频率

Vigenere密码

一系列凯撒,多表代换

  • 相关的单标代换规则集,由密钥决定具体变换
    加密过程

    第一个密钥字母加密明文的第一个字母,第二个密钥字母加密明文的第二个字母,等所有密钥字母使用完后,密钥又再循环使用。
    第一步可以先将密钥的长度拓展到(或者缩减到)和明文长度一样。
    查表 or 计算(Mi+Pi即可)
    评价 强度在于每个明文对应多个密文,且使用唯一字母作为密钥,来掩盖频率。
  • 字母频率隐藏
  • 并非所有明文结构信息都被隐藏

Vernam密码和一次一密

与明文毫无统计关系且一样长,基于位的二进制异或运算得到密文。
改进:与消息一样长且无重复的随机密钥——一次一密OTP,直接相加mod26就好
评价:不可攻破但是没屁用

  • 大规模随机密钥很难
  • 密钥的保护和分配很难(安全信道&用后销毁)

古典密码(置换)

新的排列
简单栅栏技术:对角线写入明文,行读出为密文
写成矩阵块,按列读出并打乱列次序。列次序为密钥。
单步or多步置换

简单置换

逐行写入矩阵块(不足行补进随便字母xyz),按列次序读出
key:列次序如4312567,即先读1所在列…
多换几次后,没什么规律了

转轮机(多层加密)

包括一组相互独立的旋转轮,电脉冲可以通过;每个圆筒有26个输入引脚和26个输出引脚,并且一一相连
每个圆筒就定义了一个单表代换,多个圆筒就是多表代换
三轮\四轮Enigma

古典密码破译举例

穷举、蛮力:不适用一次一密,单纯尝试看明文有无意义
频率分析:猜字,最常出现e,q后面u,还有双码、多码统计特性等等
单表代换破译过程举例:

  • 词频统计,先换最高为e,t
  • 开始根据三元组(the)、语法规则was been等猜词

对称密码算法

加解密密钥相同,密钥用保密信道分配
常用:DES、IDEA、RC245、AES、CAST-128、Blowfish

对称密钥密码S-DES(简化DES)

输入:10bit key 8bit明文组
输出:8bit密文组,破译过程相反

包含函数:

  • 初始置换IP
  • 复杂函数fk:包含置换代换,依赖key
  • 简单置换SW
  • 复杂函数fk
  • 初始置换地函数IP^-1

密钥拆分:其实是把10位key拆成两组8bit K1K2用:

  • 10bit K 置换P10
  • 前后两组循环左移1位,放入P8得K1
  • 前后两组循环左移2位,放入P8得K2

加密过程:IP fk SW fk IP^-1

  • 先IP,初始八位置换26314857
  • K1作fk:fk(L,R) ={(L xor F(R,Key)) ,R},F(R,key) = P4(S0S1{EP(R) xor key})
  • 扩展,密钥,S盒,4置换
    • L4R4拆分,R4为输出后4
    • R4作扩展置换EP:41232341
    • 与K异或
    • L4R4拆分,分别放入S盒得2*2位输出,合并为4bit
      • S盒 4x4矩阵,取值在0~3,1、4位决定行,2、3位决定列,查表
    • 置换P4:2431
    • 与刚开始L4异或为输出的前半边,后半边为R4
  • 交换函数SW,前后4互换
  • 用K2重复fk
  • 末尾置换IP^-1:41357286
    • 置换求逆:排列回来

加解密过程完全一样且对称

Feistel密码结构

Vigenere和Vernam为流密码
验证:改变分组大小不改结果,不整除分组也不用补字母
分组密码:64|128bits,基于网络

Feistel建议:

  • 使用乘积密码来逼近简单代换密码:依次使用两个或以上的基本密码,所得密码强度将强于所有单个密码的强度
  • 交替使用代换置换

shannon:

  • 扩散 明文统计特征消散在密文中,每个明文影响多个密文
  • 混淆 密文和密钥的统计关系复杂,难以推导密钥

输入:2w bit明文组,密钥w bit Ki

  • 明文分开为wbit L0R0,经过n轮迭代组合成密文
  • 每轮迭代的输入都是上层的输出,但结构相同
    • L0和F(K1 R0)异或成R1
    • R0直接成为L1
  • 子密钥Ki由K推出,有Ki生成算法

    评价:
  • 分组长度和密钥长度:越长越安全,但是慢
  • 迭代轮数:多轮安全
  • 子密钥产生越复杂越难以密码分析攻击
  • 轮函数复杂,抗攻击强

DES

分组加密,对称密钥,56bits Key(奇偶校验后写成64bits),分组64bits,标准算数逻辑运算
加密过程:

  • 密钥生成器:
    • 56+8的密钥,拆分为28+28
    • 两个28根据16轮,不同循环左移1or2位
    • 置换选择PC-2 56选48bits成为Ki
    • 两个28根据16轮,不同循环左移1or2位
    • 置换选择PC-2 56选48bits成为Ki+1
  • 明文分64bits块m
  • IP初始置换64换64
  • T1,16轮迭代过程和Feistel相同
    • 具体:R0直接成为L1
    • F(R0,K)E扩展,K异或,S选择,P置换
      • 32bR0 E盒扩展至 48b
        • 输入一位影响下一步的两个替换,输出对输入依赖传播快,密文每一位都依赖明文的每一位
      • 和K1异或
      • S盒代换选择,48选到32b
        • 8个6选4的S盒
        • 首尾决定行,中间4b决定列
        • 需要4x8矩阵,取值0~15
      • P盒置换为32
    • 和L0异或成为R1
  • T2
  • T16
  • IP-1末尾置换64换64

解密:IP T16:1 IP-1,完全对称过程

其他常用对称密码

3DES,blowfis,RC5,AES(取代DES)

  • 高密码强度
  • 广泛用于Internet
  • 代表DES以来的对称密码

3DES

两密钥112bit三重DES,明文攻击代价2^112

blowfish

快速紧凑简单安全可变
64bit分组,密钥32-448bit

  • 子密钥和S盒都是blowfish本身生成,数据不可辨认,密钥分析困难
  • 每轮对数据左右同时运算,和古典feistel不同,密码强度增强
  • 448bit密码抵抗穷举

RC5

快速;迭代和key长可变;简单;高安全
分组32、64、128
密钥0~2040b
由分组长度,迭代次数,密钥的byte数决定的算法族
使用:

  • 字的模2^w假发
  • xor
  • 循环左移

AES

3des太慢,分组太短——分组128支持128192256密钥的AES
w 128 key128

  • 免疫所有已知攻击
  • 所有平台执行快代码紧凑
  • 密钥被扩展为44个wordlen = uint32的数组,每轮有4个字参与
  • 轮密钥加是vernam密码
  • 设计结构简单,
    • 轮密钥加
    • 九轮迭代
      • 字节代换
      • 行移位
      • 列混淆
      • 轮密钥加
    • 最后一轮
      • 字节代换
      • 行移位
      • 轮密钥加
  • 不是Feistel结构
  • 每轮四个阶段,一个置换3个代换,均可逆
    • 字节代换:用一个S盒完成分组中的字节代换
    • 行移位:一个简单的置换
    • 列混淆:算术代换
    • 轮密钥加:利用当前分组和扩展密钥的一部分进行按位异或

lect3 密码学 II

非对称密码原理

缺陷:

  • 密钥需要安全信道分配
  • 无法用于数字签名?
  • 密钥管理复杂,O(n^2)的数量

基于数学函数而非代换置换
概念:

  • 明文、密文
  • 会话密钥Ks:对称密钥
  • 加密、解密算法
  • 公钥U 公开,用来加密和验证签名
  • 私钥R 保密,用于解密和签名

加密:

  • 每个实体有一对密钥,接收方的公钥加密信息,私钥解密。
  • 每方持有所有公钥和自己的私钥,向谁发就用接收方的公钥加密

签名:

  • 发送方用自己的私钥加密签名发出
  • 接收方用发送方的公钥解密验证发送方

密钥交换:

  • 协商会话密钥来对称加密

可同时使用加密和签名——先自己私签再对公加密

数学原理:陷门单向函数
不知道陷门信息求逆困难,知道后容易实现

  • 给定x,计算y=fx容易
  • 给定y,计算x为y=fx困难
  • 存在δ,有δ对y容易计算x(陷门性)
  • 对于加解密,f为公钥δ为私钥

密码分析:

  • 容易被穷举,利用公钥对所有可能的密钥加密,尝试密文是否一致
    • 应对:长密钥,不能太长
  • 函数复杂性不是密钥长度的线性增长,指数或更快
  • 仅用于密钥管理和数字签名

非对称vs对称比较

  • 公钥并不更安全,安全取决于计算量
  • 公钥并不通用,传统并不过时:公钥计算量太大,仅限于密钥管理和签名,不可能取代传统密码
  • 公钥密钥分配很简单:也需要协议、中心代理,并不比传统密码更简单

数论基础

任意正整数可以唯一表示为一组素数的乘积
模运算,对加法乘法可交换结合分配(需再mod)

欧拉函数与欧拉定理


RSA

分组密码,明文密文0~n-1,常用1024bit或309dec
密钥产生

公钥:小互素整数e,私钥:de=kφ+1


攻击
蛮力:尝试所有密钥
数学:素数乘积的因子分解
计时:记录计算机解密时长猜私钥,可以攻击很多公钥系统,仅依赖明文
安全性
大数素因子分解很难的
性能
软件硬件分别比DES慢100、1000倍

DH密钥交换

两个用户安全的交换密钥,仅此
原理:计算离散对数非常难,本原根 a几次方mod 素数p可以从1~p-1排列

密钥交换过程:

  1. 其中的a p Xa Xb中素数p最大
  2. 选择底数a和素数p公开
  3. Alice和Bob各生成一个自己的私钥XaXb保密
  4. 计算a^(Xa)mod p and b^(Xb)mod p 公开
  5. 用对方的公钥乘以私钥次方得到共同密钥a^(XaXb)mod p

其他非对称密钥算法

DSA数字签名算法

也基于计算离散对数的难度

  • 不能用于加密、密钥分配
  • NIST有后门
  • 选择不公开,分析不充分
  • 比RSA慢10-40倍
  • 密钥512位太短
  • 侵犯其他专利

椭圆曲线密码

  • 有限域、容易构造运算器
  • 加密快,小密钥高安全性

密码加密

加密选择:链路or端到端
链路:

  • 数据链路层,在传输的每个相邻节点都加密再解密,使用不同密钥,
  • 分配难度不大;无需额外数据;对用户透明
  • 不适用于广播;链路节点中以明文存在;

端到端:

  • 中间不解密,灵活的应用和层次选择
  • 广播网可用;节点损坏不怕;便宜可靠;容易死设计实现维护;没有同步问题;
  • 容易被通信量攻击;分配密钥更难;不能掩盖地址

密钥分配

传统对称密码分配

  1. A选择并亲自给B
  2. 第三方选并亲自交AB
  3. AB最近使用的密钥,加密一个新密钥发给对方
  4. C与AB有秘密渠道,分别秘密发给AB

12人工传送适用链路

密钥分配中心KDC

AB想连接,都分别有自己和中心知道的密钥(主密钥)

  1. A请求会话密钥保护与B的逻辑连接,有AB信息和N1
  2. KDC用Ka加密消息响应A:一次性会话Ks;原始请求N1便于A响应;两项用Kb加密的给B内容(Ks和IDa)。
  3. A存下Ks把后两项发给B(也可以理解为KDC发给A和B),结束

层次式KDC减少主密钥分配代价,本地KDC攻击破坏更小

公钥分配

  • 用于分配公钥
  • 公钥密码用于传统密码体制的密钥分配
公开发布

公钥直接发或者广播,方便但容易伪造

公开可访问目录

可信的实体组织维护、分配公钥目录

  • 通讯方目录项 <name,ku>
  • 通讯方可以注册、更新自己的公钥项;访问通讯录
    目录管理员的私钥破坏很大
公钥授权

公钥证书

证书管理员
证书:公钥和其他信息,发给相应私钥的通讯方
通信方传递证书来传递密钥信息,其他方验证这个证书由管理员发出

  • 任何通信方可以读取证书确定证书的拥有者的姓名和公钥;可以验证证书出自管理员而非伪造
  • only管理员可以更新证书
  • 各方可验证当前性(过期证书)

公钥分配传统密码

公钥太慢

最简单(树洞)


被主动攻击

保密真实

“要真的是你就把我给你的信息再给我发回来~”
3次握手,AN1,N1N2,N2;

  1. 互有公钥
  2. A用B公加密(A,N1)给B
  3. B私钥解密,用A公加密发送(N1,N2)给A
  4. A解密看到N1,确认对方是B,B公加密个N2发给B
  5. B解密看到N2确认是A
  6. A可以选个Ks用Ub加密发过去
    公钥密码分配密钥也需要KDC?通过主密钥实现会话密钥分配

lect4 认证

凡认证必比较

消息认证基本概念

传输分析:双方通信模式
面向连接:频率和持续时间;
通用:消息数量和长度

伪装:欺诈者向网络插入消息
攻击者产生消息并声称来自合法实体
非接收方应答(收到或者未收到)

攻击很多:内容、顺序、计时、否认
泄密与传输分析——消息保密
伪装修改——认证
发送方否认——数字签名
接收方否认——数字签名和专门协议

消息认证 验证消息来源且未被修改
也验证顺序和及时,数字签名和协议技术等等
下层:产生认证符的函数
上层:将函数作为原语使接收方验证消息真实性

三类认证函数:

  • 消息加密:整个密文
  • 认证码MAC:消息和密钥的公开函数,产生定长值为认证符
  • Hash函数,映射为hash值的公开函数

认证函数1:消息加密

AB共享密钥K,没人知道密钥就有保密性,解密后确认由A发出——并不绝对,容易伪造
要求明文有易识别结构,不通过加密函数不能重复

加密前附加错误检测码(帧校验序列FCSor校验和)
先FCS后加密,解密后重算FCS:可认证(有效)
先加密再FCS,可混淆

TCP:

认证函数2:MAC码

定长MAC = C(sharedK,Message),不需可逆
共享密钥,可认证,不能签名

消息+MAC后,整体加密:认证明文为持有K的人发出
消息加密后,计算MAC附加:认证密文为持有K的人发出,裸奔的MAC?很好篡改MAC

app:

  • 组广播,一个接受者验证并告知其他人
  • 接受者随机进行消息认证
  • 明文的计算机程序,不需要加解密,保护完整性来验证MAC
  • 关心认证而非保密性
  • 保密和认证分开,层次灵活:应用层认证,传输层保密性

认证函数3:Hash

单向hash类似mac,为message digest,具有检错能力

  • 附加hash值后对称加密:一定来自A且未篡改,也保密
  • 不要求保密时:仅对hash值加密,代价小,也可以认证。
  • 用私钥对hash加密:认证和签名
  • 私钥加密hash,对称密码加密整个:认证、签名、保密
  • 含有共享salt:M加盐后哈希,附加在后面,明文传输:只有有盐的人可以验证通过,也认证
  • 加盐的哈希后对称加密:保密+认证

加密的代价:

  • 硬件成本
  • 小数据块更难以优化
  • 加密算法专利
  • 美国限制

Hash要求:杂凑散列
输入长度不限但输出固定
单向寻找
扛弱碰撞:找一个b与a哈希值相等
抗强碰撞:找xy,哈希相等

hash一般结构

L个b长分组,最后不足就填充——包含长度信息
每个单元输入是之前的n位哈希(连接变量CV),b长度输入分组(Y),通过压缩函数输出n为分组
连接变量的初始值(CV0=IV)又算法开始指定,终值就是哈希
一般分组长度b>n所以是压缩
https://codimd.s3.shivering-isles.com/demo/uploads/0d2a0805-246a-49b4-9891-af1d5ccccefc.png
压缩函数抗碰撞——hash抗碰撞

主要hash算法

MD组,产生128bit的md
MD2:补成16bit倍数,加16bit校验和算hash
MD4:碰撞 几分钟碰撞
MD5:王小云攻破

SHA:Secure Hash Algorithm改MD45,有012方案
RIPEMD-128/160/320
Haval
Gost

MD5

512bit分组
128bit输出
简单,32位容易
步骤:

  • 填充位到mod512=448,少64到整,一个1后面0
  • 填充64位为 消息长度mod2^64
  • 初始化md缓存128bit 0f f0
  • 以512分组处理,4论*16迭代
    • 每个压缩函数分四轮,128的连接变量向下传递,结合512 16字的输入
    • T[i] = 2^32abs(sini)
    • 每轮中再进行16迭代 :b根据a变化,其他向右挪一位

    • 最后一轮+CV为下一CV
      s?

强度 输入依赖小,强棚64弱128

SHA

建立在MD4
512bit 分组
SHA1 message<264 –> 160md
sha1算法

  • 补充到mod512=64
  • 补充64位报文长度
  • 初始化5个32寄存器缓存
  • 分组处理,两组*五轮*16迭代

RIPEMD-160

512分组输出160md

  • 填充到mod 512 = 64
  • 填充长度
  • 初始化5*32
  • 2组*五轮*16步

比较

  • 都不受弱碰撞,md5容易被强碰,另外俩在将来还安全
  • 抗分析:MD5最差 RIPEMD最好
  • 速度:都是32位加和位逻辑,MD5最快
  • 只有sha1高位在前

数字签名DSS

防止通信双方自身攻击

  • B伪造发自A的
  • A否认发过的

签名需要

  • 验证 签名者、日期时间
  • 认证被签名的消息内容
  • 第三方可仲裁

分为:直接&仲裁

  • 直接
    • 用自己私钥对消息orhash加密签名
    • 接收方公钥加密or对称密码得到保密性
    • 依赖发送方的私钥安全性
  • 仲裁
    • X到Y的签名消息先给A
    • A检查消息内容和签名来源,然后加上时间戳发给Y,表示仲裁通过

数字签名标准DSS,使用SHA-1,定义DSA
不能加密和分配,只签名


身份认证

确定你是你——信息(口令密码)、拥有东西(钥匙,盾)、身体特征(生物特征验证)
安全网站:认证授权审计+修bug

网站身份认证

HTTP:一次连接,无状态

Basic认证

每次发送携带凭证明文(账号+口令),与服务端用户凭证比较
Base64编解码

每次传递容易被监听窃取;
本地需要保存账号口令,安全隐患;
每个请求都需要验证,低效;

改进

  1. 加密传输,消息认证——监听窃取;表单验证+session?——本地保存和每次检查
  2. 对称加密U,口令就是密钥k,传输U和EkU——被重放攻击?
  3. MAC认证

    第一次服务器只给你随机挑战码M
    第二次用K加密后发回来,服务器加密认证正确

表单身份

针对:账号口令本地保存;每次都进行账号口令验证;
Session原理:客户端、服务器和时间段

  • 服务器产生唯一的标识符发到客户端
  • 客户端把此随机串存在Cookie中or本地文件,作用域和有效时间…
  • Session存活时候,每次请求都有标识符,服务器关联起
  • 结束后销毁标识符

表单认证过程:

  • 客户端发请求,服务端返回表单页面
  • 用户填写表单(账户密码),服务端验证通过启动Session返回
  • 客户后面请求携带Session的标识符,服务端验证。一般基于以标识符为key的哈希表

优点:简单;方便;易用
缺点:账号口令裸奔

改进:

  • 引入挑战机制,避免明文传输和重放攻击
    • 挑战为字符串+时间戳,为U
    • 口令为密钥加密Ek(M||U),发送U和Ek(M||U),服务器用存储的k加密M||U来比较
  • 传输账号口令时用传输层SSL来传输请求,在传输层加密并验证身份。启动SSL就是Https

不安全:——泄露,重放攻击

  • 验证后cookie存放账号口令
  • 账号口令加密后Ek(UP)放Cookie
    可以加上时间戳t,每次服务端验证时间戳

增强认证

动态方式!
短信、动态(时间同步or计数器)、USBkey、数字证书
动态安全令
服务器和令牌段共享key和sn,对t进行划分取整。计算F(H(t||key||sn)),H为hash,F为压缩
USB
私钥不可导出,在里面加密签名

数字证书

证书授权中心发行,用来数字签名的文件
包含:拥有者公钥,名称和中心的数字签名,对应私钥妥善存储。

lect5 WLAN

概述

5W6A的梦想,TDMA,CDMA,GSM,3g,4g

最早的无线计算机通信:ALOHA

安全威胁

无线射频电波传输,无法物理隔离,只能广播

image-20221127155306580

  • 窃听:开放信道——泄露身份和位置——跟踪
  • 假冒:截获身份信息后,假冒其入网
  • 篡改:修改窃听信息并发送
  • 重放,重路由:复制有效消息再发送or重用;改变路由来捕获
  • 错误路由:路由到错误目的地
  • 删除:截取删除
  • 洪泛:发送大量无关、伪造消息耗尽资源

加密认证技术

无加密认证

AP 无线网络创建者,相当于无线路由器

STA 连接到无线网络的终端设备站点

SSID Service Set Identifier 便于用户识别的AP标志名,WIFI名。使用者提出正确SSID,AP就接受登入。SSID会被广播,禁用提高安全性

有线对等保密协议WEP

802.11b RC4流加密,访问控制+保护隐私。有挑战机制,四次握手

开放系统认证——默认认证方式,对请求认证的人提供明文认证

RC4:流密码,40/112bit的key,用CRC32循环冗余校验

设备和接入点共享默认密钥,每个设备和其他设备要有密钥对关系,分发困难。

WEP加密

  • CRC32算校验和ICV,串接在明文P后。
  • 24位初始向量IV和40位key连接得到64位数据,输入到虚拟随机数生成器产生一次性密钥KE
  • KE和第一步异或得Y
  • IV||Y传输

WEP解密

  • 24位初始向量IV和40位key连接得到64位数据,输入到虚拟随机数生成器产生一次性密钥KE
  • 把密文和KE做异或得到明文P和校验和ICV
  • 计算明文的CRC32,比较;接受或丢弃

image-20221127162253593

image-20221127162307071

安全性?

  • SSID下所有STA和AP共享密钥,容易泄露
  • RC4密码流的IV明文发送,且24位IV太短容易重复
  • CRC线性非加密,不是安全的杂凑函数(hash)不能认证
  • RC4位序列密码加密,太容易被攻破
  • 不含序列号,没有帧顺序,重放攻击

WPA1 过渡性,核心是1x和TKIP

TKIP认证,WEP包装

  • 企业:802.1x认证

  • 个人:Pre-shared key模式

  • RC4流密码 128bitkey

  • 动态变化每个数据包的密钥,混合生成不能轻易破译

  • 每个包有独特的48位序列号防范重放

  • Michael消息认证码MIC,包含帧计数抵抗重放

802.1x CS模式,在终端和AP建立连接之前验证用户身份,需要上层EAP配合认证和分发密钥

image-20221127164042087

WPA2

  • 更安全的CCMP消息认证替代Michael
  • 更安全的AES对称加密替代RC4
  • 支持11g以上

image-20221127164322540

lect6 CIA,VPN

网安体系结构

image-20221127164807390

Confidentialit 保密、机密

信息不泄露;数据拓扑流量都需要保密;防止被动攻击;

Integrity 完整性

不被篡改or可以检测篡改、插入、重放;防止主动攻击;

Availability 可用性

授权用户得到应得资源服务,防止拒绝服务攻击;

对信息系统可用性的攻击;

对路由设备处理能力,buf和链路带宽攻击

X.800:OSI安全框架,定义系统方法提供给网络管理员

安全服务:由系统提供的对系统资源特殊处理或通信,通过安全机制实现安全策略

安全机制:免收监听;组织攻击;恢复系统

安全攻击:主被动

image-20221127165201337

服务

服务 机说明
认证 单条:保证发送方真实;通信:保证双方真实+不受干扰和伪装
对等实体认证 保证实体身份;禁止伪装和非授权重放;面向连接
数据源认证 保证来源是来源;保证来源身份合法;不保护数据复制修改;面向无连接
保密 连接or无连接;力度:流、消息、选择字段
防止流量分析(src dst freq len等特征
完整性保护 连接:收发一致;无连接:不被篡改;主动攻击检测而非阻止攻击?
访问控制 合法才可访问
抗抵赖 接收方证明消息只能由发送方发出;发送方证明消息确实被接收到
可用性 根据系统性能说明,按照授权系统实体要求使用系统和其资源

机制

普通&特定

普通:不属于任何协议层or安全服务的机制

image-20221127170707306

特定:特定协议层实现的

image-20221127170713711

VPN Virtual Private Netword 虚拟专用网

BG TCPIP安全缺陷

  • 容易监听,篡改,重放,修改IP
  • 源发可以指定中间路由——源路由攻击
  • 序列号猜测,缓冲区溢出

概念:逻辑等价于一条物理的专用长途数据线路,定制化。在公共网络上仿真一条点对点的私有链接。

安全功能

  • 数据机密性
  • 数据完整性
  • 数据源身份认证
  • 重放保护

解决方案(安全协议)

  • 链路层:L2TP PPTP L2F 很少使用
    • 认证终端实体而非流入报文,无法抵抗插入和地址欺骗
    • 没有完整性校验,可能拒绝服务攻击
    • PPP报文加密但是不支持自动产生、刷新密钥,会被破译
  • 网络层:IPsec IKE
  • 传输层:SSL
    • 零客户端,任何B/S结构(browser和Server)
    • SSL和IPsec结合,网关也常被集成
    • SSL低成本,但是视频会议非BS无法用ssl vpn
  • 应用层(无法VPN)
    • https : http+ssl
    • S/MIME 安全邮件
    • SET 安全交易

image-20221127174314014

lect7 IPsec和IKE

网络层:IPsec安全,IKE管理密钥

image-20221127194002537

IPsec保证IP级别的安全性

  • 认证:确保从源发出且未被篡改
  • 保密:加密防止窃听
  • 管理密钥

原来IP:无连接,无顺序(重复、丢失)设备简单无状态

不认证、不完整、不保密,通过IP地址有一些访问控制

威胁:窃听、伪造地址、篡改、重发

image-20221127194256055

实现:

  • 主机实现(OS):端到端安全;针对每个会话提供安全保障;对应用和用户透明
  • 防火墙上实现:不改OS,为所有应用提供安全服务。在网络层以下
  • 路由器:

IPSec体系结构

文档

认证和加密——通过主IP包头使用扩展包头实现安全特性。

认证扩展头:认证头AH

加密头扩展:封装安全载荷ESP(也认证也加密)

image-20221127194727845

服务

为IP层提供安全服务,系统选择协议和算法,并提供密钥

image-20221127195206509

安全关联SA Security Association

通信双方对要素的协商,一些安全信息参数集合比如

协议;操作模式;密码算法;认证算法;密钥及有效期;

单向关系 发到收的,如果交换需要建立两个SA。

安全服务可由AHorESP提供但不能二者都提供?

SA由三个参数唯一确定:

  • 安全参数索引SPI parameters index

    • 和SA相关仅在本地有意义
    • AH和ESP携带,接收方选择合适的SA来处理
  • IP目的地址IPDA

    • 单一地址表示SA目的地址
    • 可以是用户端、防火墙or路由
  • 安全协议标识符:是AH or ESP的SA

任何IPsec实现端,都得有SADB来定义每个SA相关的参数。用上述三元组来索引。

image-20221127195955849

SA参数列表

image-20221127200223678

image-20221127200233996

收发IP包时的操作:

  • SPDB中通过比较对应域的值(dstsrc的地址和端口 用户标识 数据敏感级别 传输层协议 IPsec协议 IPv6报类、流标签、服务类型)寻找匹配的entry,0或多个。

  • 根据策略来操作:丢弃;bypass IPsec;apply IPsec等

  • 如果存在SA则选定SA和对应的SPI,AH或ESP的选择。。

  • 收到数据包,解析出三元素SPI,DSTaddr和AH|ESP

  • 查找本地的SADB

    • 找到SA条目,把参数和包头中的域比较。
    • 没有查到,输入包丢弃,输出包创建并存入SADB

SA的两个库

存在OS kernel

通信前必须建立SA,先查SPDB找信息流和联系的SA。有的丢弃有的不加密有的加密;再关联or找SADB选择参数。

多种方式实现IP通信的sec服务;

对于需不需要保护的流量大粒度区分;

IP流量和SA相关是通过安全策略数据库SPDB定义的

  • 定义IP流量子集的entry

  • 指向流量对应SA的指针

  • 多个entry和同一个SA相连

  • 多个SA和同一个SPDB entry 相连

每一条SPDB entry由IP集合和上层协议定义,成为选择子SAselector

  • 过滤输出流量,映射到某个SA

image-20221127201646975

IPsec 传输模式

提供上层协议保护,增加IP包载荷保护。用于两台主机的端到端通信,放到IP头后面和TCP/UDP头前面

  • ESP加密和认证IP载荷,不包括报头

  • AH认证IP载荷和部分报头

IPsec 隧道模式

原来的包被看成数据直接抱起来成新的大IP包

image-20221127203124090

保护整个IP包,整个数据包被当做新的IP载荷拥有新IP报头,利用隧道传播,中途路由器不能查内部IP报头

  • ESP加密和认证整个内部IP包
  • AH认证整个内部IP包和外部IP报头的部分

认证头AH

基于消息认证码MAC,双方共享公钥

  • SN不能允许循环计数,到头就中止SA再次协商,可以反重放。要求按照这个序号建立窗口W(64)

image-20221127204922718

AD变长域,是4B整数倍。包含完整性校验值ICV或者包的MAC,可以用HMAC-MD5|SHA1-96 取前96位

IP头的不变部分,AH中终点可预测部分参与计算MAC。其他全0image-20221127205426006

image-20221127203238280

途径1 直接在服务器和客户站之间使用传输模式认证。只要共享同一个key就好,这个key用在哪了?

好像在MAC中也需要独特的公钥Key

途径2 服务器不支持认证,工作站需要向防火墙证明自己身份并访问整个内部网络,用隧道模式SA

image-20221127215257903

隧道模式AH 通常在防火墙|路由器上实现

前面包裹上新的IP头和AH,没有尾巴

对接受包的处理

  • 解析SA的三元组,在SADB里匹配SA参数,不一致就扔了,找不到也扔了
  • (opt)滑动窗口的检查序列号
  • 计算ICV比较,不相等扔了,相等交由IP协议栈处理,继续路由…

随时不相符扔了+记录审计

image-20221127215707707

对出去outbound的包处理

  • 从IP协议栈中收到需要转发的包
  • 使用选择子查找SPDB,获取安全策略,也可能直接扔了
  • 需要IPsec,则查找SADB
    • 找到了,选取参数计算ICV
    • 没找到,使用IKE协商建立SA存上,并选取参数计算ICV转发
  • 不需要直接发走

image-20221127220308464

加密和认证头ESP

image-20221127220411749

加密算法:3DES RC5 IDEA CAST Blowfish 对称加密

padding:填充到明文符合加密算法的要求,对齐后面的两个填充长度和nextheader到右对齐。隐藏载荷实际长度,提供流量保护

传输模式

IP ESP头 密文 秘密ESP尾巴 可选MAC尾巴(opt)

中间路由只检查前面的IP头

目的节点处理三元组,查SADB找到SA的参数,来恢复数据

隧道模式 保护原来的IP头吗

新的IP头 ESP头 加密的(IP头 数据 ESP尾巴) 可选MAC尾巴

对Inboud 最后多一个解密

image-20221127221358395

一开始也要查SPDB

对outbound 中间多一个加密——先加密再ICV

image-20221127221444561

  • 查SPDB
  • 查SADB——用IKE协商建立储存or查到
  • 产生计算序列号值
  • 加密
  • 计算ICV
  • IP——分段转发(根据MTU分片)

路由在中间 安全在两边

安全关联组合

单SA实现二者之一,需求:主机间IPSec在安全网关最相同流量分离。即在防火箱拆一层然后在主机可能再拆一层。。

有个SA序列组合成束,每层SPI|SA都不同

  • 传输邻接:IP包多个协议,只一级。即AHESP
  • 隧道迭代:可以一直包装。。。多层嵌套

甚至可以先用传输,然后再隧道包装

IKE管理密钥Internet Key Exchange

  • 管理员手工给系统分配各类密钥
  • 自动,协商。。。

IKE:自动协商交换密钥 + 建立安全关联SA(维护SADB)

服务很多SNMPv3 RIPv2 OSPFv2

精髓:不安全网络上不能直接传,都是算出共享密钥。(核心为DH交换)

image-20221127222812676

混合了三种协议

报文格式

from ISAKMP,可以在任何传输orIP层实现,用UDP port500

image-20221127233742765

载荷里面是协商的参数,需要协商的参数都是payload。

  • 下一个payload的类型

  • 两个cookie用来唯一标识密钥交换会话

    • 使用地址、随机数、日期时间等等MD5出来
  • FLag只用到了低三位

    • 载荷加密
    • 同步密钥交换,如果1则需要A最后给B发建立成功
    • 载荷有认证or没加密只认
  • 报文总长度(头+载荷)

13种载荷:

  1. SA,协商安全属性,指出解释DOI和状态
  2. proposal 包含在1
  3. TRansform 包含在2
  4. Key Exchange

IKE体系结构——两个阶段

  • 一阶段:两个IKE实体间建立IKE SA,创建通信信道并验证。提供机密,消息完整和消息源验证服务

    需要协商:加密、哈希、认证、DH信息等等

    • main主:6消息,有身份保护
      • 12:SA协商策略,商量SA之类的协议信息。大部分是使用的算法和限制等。1载荷很长2剩下3个回去
      • 34:密钥生成信息, 带着key exchange和nonce载荷,用DH
      • 56:加密的身份和验证数据,ident身份认证(标识信息主机名等等)和消息认证Hash(hash三组密钥信息)
      • 56的散列载荷hash相同,一阶段成功
      • image-20221127235106263
    • 积极(快速):3消息,无需身份,一方地址动态。可以用name验证而无需IP,但是两个都变就不行
      - 1:发起策略+密钥生成,SA KEY Nonce ID都给过去
      - 2:密钥生成+身份和验证数据,响应1并加入HASH
      - 3:身份验证数据,加入HASH。看hash成功就直接完成

      • image-20221128000015783
  • 二阶段:使用IKESA建立IPsecSA(各种参数)】

    • 快速:3消息。可以协商多个SA,双向双方通信需要8个SA,两边各四个(出入*AHorESP)

      协商加密和哈希的算法,验证方法,DHkey,周期和密钥长度等

      • 1:Hash SA ProposalTrans KeyEx Nonce ID…
      • 2:Hash SA ProposalTrans KeyEx Nonce ID…
      • 3:Hash
      • 很像上面的3步快速

IKE的三个工作模式

传输

端到端节点,均实现IPsec,那么传输模式

隧道

网关间用隧道,端不需要IPsec

嵌套

端到网关:隧道套着传输模式

IKE工作过程

守护进程在后台,被内核或对方IKE唤醒

内核可以指示IKE删除某个SA,此时IKE也会通知对面IKE删除or忽略

总结

IKE 层次相当高,位于应用层,用udp500走

不足:

  • 太复杂
  • 只用于Ipsec的建立SA
  • 往返太多,消耗资源
  • 容易被攻击:拒绝、中间人、重放

lect8 SSL

相比Ipsec好处,Ipsec在网络层对所有传输都会使用。但是SSL可以选择,有差别的为应用层提供服务

介绍

SSL在TCP之上,保护任何TCP上的应用。

IPsec无法处理同端系统中不同应用的安全需求,为两个应用之间提供保密和安全。

SSH强制认证+数据加密也在此,还有SP4和TLSP

SSL 安全套阶层安全机制,保护基于WEB

用于CS的身份认证(证书与第三方),消息认证和数据保密

在应用层协议传输之前SSL协议已经完成了客户端和服务器的
身份认证、加密算法和密钥的协商;在此之后,双方建立起了一
安全可信的通信信道,应用层协议所传送的所有数据都会被加
密,从而保证了安全

使用案例

接受时候相反

image-20221128002431521

SSL体系结构

image-20221128002723427

会话Session,通过握手关联CS,虚拟的连接关系。握手商量xxx

连接Connection:特定信道映射到一个TCP连接,共享一个会话中协商好的信息。连接参数:

image-20221128003002525

SSL记录协议

主要:保密+完整性

过程:分片(2^14)——压缩后追加HashMAC——对称加密——加上SSL记录协议头——TCP——解密——解压缩(拼接)

SSL记录协议头:(内容类型,主次版本,压缩长度)

SSL握手协议

主要:身份认证(先认证S,C可以不认证),协商算法,协商会话密钥

报文结构 1B类型 3B长度 1+B参数内容

image-20221128003706035

分四个阶段完成握手

  • 建立安全能力
    • Chello
      • ver,random,sessionid, cipher_suite(KEmethod, hash&encoder), compression
    • Shello
      • same as top
  • 服务端身份认证和密钥交换(可以失败
    • certificate X.509v3 匿名DH可能不需要)
    • SKE
      • (DH RSA需要交换密钥)
    • certifica_req
      • 需要客户的certi
    • S_hello_done
  • 客户端身份认证和密钥交换
    • certificate
      • 可选,也可能没有
    • CKE
      • DH RSA需要交换密钥
    • certifica_verify 签名此消息
      • 用于配合Certi让服务器验证客户端的数字证书所有权
  • 完成阶段
    • change_cipher_spec
      • 把pre转化成主密钥,派生出所有密钥
    • finished
    • change_cipher_spec
      • 你算完我也算完了,
    • finished

master secret主密钥,用于生成一堆密钥

CS双方的MAC密钥,加密密钥和MAC初值向量IV

SSL告警

两个字节

  • 1告警 2致命错误:终止连接但不终止会话,不再会话中建立新连接
  • 包含告警信息的代码

SSL 修改密码协议

一个字节 “1”,握手结束后发送,以后记录用刚才的算法和密钥来加密认证。

接收方把挂起会话恢复到当前状态

安全分析

image-20221128005320953

应用层

WEB和安全威胁

网页服务器与浏览编辑器WWW——HTML、HTTP、URL

特点:

  • 双向互联网

  • 服务器容易受到攻击

  • 金钱和信息丰富且重要

  • 服务器存储安全(用户认证,访问控制,日志)

  • 客户端安全(服务器认证,访问控制和签名)

  • 信息传输安全(IPsec+SSLTLS+MIMEPGPSET)

IP级、TCP级和应用级安全

HTTP攻击举例

HTTP:主要是规定浏览器和WWW服务器通信规则,裸奔html,当时是信息没有财富

明文传输,不检查完整性 + 无状态,不验证身份——监听明文,篡改劫持,伪造服务器钓鱼

中间人加入并分别建立和通讯双方的连接,可以被随便改——ARP欺骗

ARP协议

数据链路层,维护IPMAC映射表

image-20221128124623749

可以伪造ARP frame改变网内任何主机的映射表,来切断通讯并且把自己的物理MAC加入。即发对方以为就是发攻击者

DNS

域名——IP对应

欺骗:所有主机名都对应攻击者的IP

HTTPS = HTTP + SSL

明文——加密(记录协议加密)

80端口到443端口

无状态连接——用SSL+HTTP协议加密和身份认证的连接

image-20221128125503195

SSL能否保证安全

ARP和嗅探都可行,但是看不懂的密文

篡改:密文无法篡改,也看不懂

https有小锁,显示发放的证书来认证服务器身份。如果钓鱼或者恶意代理,没有受信任的证书(钓鱼wifi),有危险

攻击者用自己证书替换服务器证书:没办法,开摆,明文了

会话劫持 偷不到用户密码,但是登陆之后跳转到HTTP页面可以偷取Cookie来冒充用户

SET安全电子交易

定制给电子商务安全

涉及到多方:客户、商家、银行、相关管理认证部门

威胁

  • 支付账号密码的窃取
  • 金额更改
  • 商家和支付方的互相确认
  • 双方的抵赖,否认
  • 故意延迟

需求

  • 所有数据的保密性和完整性。银行不应该知道我买的东西,京东不应该知道银行的余额。我买的什么,多少钱就是多少
  • 结算双方身份的认定,唯一确定的身份
  • 不抵赖和否认
  • 可靠快捷

体系结构:社会——管理——技术——应用

image-20221128131720148

image-20221128131835833

SET安全电子交易

visa和master card搞的,基于X.509v3证书。私密保密+完整+双方认证+抗抵赖

image-20221128132040491

下半部分是中国银联,属于银行网络系统了。

支付网关:由收款行操作,处理商家的支付报文,属于SET和银行支付网络的接口

收款行去找对应的发卡行协商请求支付

order info 和 payment info 背靠背,互相不可见。必须分开加密和签名,但是又不能分开发不然难以确认。

对不能读信息的一方,只给MD作为验证,但是原文无法解密

  • 双方开户并获得资质证书

  • 【1购买请求】用户向商家发起购买请求

    • 发起请求:ID和卡信息

    • 发起响应:商家私钥,交互ID,整数

    • 购买请求:验证证书,

      • 生成PIOI,把transactionID放入PIOI,然后生成购买请求

      • 商家需要对OI做屏蔽(加密)放入支付网关(收款行)

      • 双签名,两层哈希。连接发送给不同接受者的报文

        image-20221128133406257

      • image-20221128133625982

    • 购买响应

      • 商家收到购买请求,验证订单

        image-20221128133703505

  • 【2支付授权】商家通过支付网关,向发卡方请求支付授权

    • 授权请求
      • PI 双签名 Es 双方证书
      • 银行要验证所有证书来核验双方身份
      • 解密数字信封获得Es,解密authorization block
      • 验证商家前ing
      • 解密payment block数字信封,解密PI
      • 验证双签名
      • 验证transaction ID和PI
      • 从发卡行申请支付
    • 授权响应
      • 授权信息和权标
      • 证书
  • 【3支付获取】商家通过支付网关,向发卡方请求付款

    • 获取请求
      • 支付量,交易ID,权标,商家的签名密钥、证书
    • 获取响应
      • 网关签名,加密获取数据块,网关签名证书