信道本身是不安全的。
对信息做安全变换,在信道上传输,接收方做安全反变换,还原信息。
羊皮传书;
藏头诗;
凯撒密码:最早的替代密码,明文与加密文有固定的替换关系;
概念:
明文P:plaintext
密文C:ciphertext
密钥K:key
加密E:encipher(encrypt)
解密D:decipher(decrypt)
以上五个要素,组成了密钥系统,称为“ 对称密钥密码模型”(Symmetric Cipher Model)
密码的共享问题
在通信开始之前,双方要共享密钥。通过带外的方式传递。
假设:秘密必须全部依赖于密钥。
即便在加密算法公开的情况下,加密传输还是安全的。
保密算法公开的好处:接收全世界技术人员的检验,查找算法的漏洞。
美国军方的加密算法是公开的;
中国军方的加密算法是不公开的,但是接收了大量的攻击测试;
商用加密算法是公开的;
密钥是易于更换的;
算法是难于更换的;
密码编码学:cryptography;
密码分析学:cryptanalysis;
密码学:cryptology;
密码学分类:
分类一:
替代密码:Substitution(明文与密文有映射关系);
置换密码:Transposition(位置发生变换);
乘积密码:Product(多轮的替代与置换);
分类二:
对称密钥密码(单密钥密码);
非对称密钥密码系统(双密钥系统,公私钥密码系统,公开密钥密码系统)
分类三:
分组密码(Block),先分组再加密,主要用在商用系统;
流密码(Stream),来一个符号加密一个符号,主要用于军方系统;
Caesar密码的密钥数量只有25个,明文有冗余信息存在,可以被识别出,这种系统容易采取穷举攻击。
单字母表密码,密钥数量26!=2625…*1,利用穷举攻击,需要10^6年。
可以用频率分析的方法,根据词频分析。可以统计不同字母的出现频率有不同的分布。
单字母表密码系统并没有屏蔽词频信息。
理想的可靠的加密算法,攻击者只能用穷举密钥的方式才能解密,这样破解密钥的消耗是可以预估量化的。
无条件安全,unconditional security:将设攻击者有足够的算力和足够的时间,也无法解密;
计算上安全,computational security:攻击者的计算资源和时间有限的情况下,是无法解密的;
在实际中,无条件安全是不存在的,只有计算上安全。
如何提高单字母表密码的安全性?
多对一思路:将明文先分组,一次加密多个字母,将block作为单位进行替代;
一对多思路:明文中的一个字母,在密文中被多个字母替代;
多对一的例子Playfair密码:
一次加密两个字母,block大小为2;
在利用加密通信之前,需要事先交换密钥。
对称加密算法,加密实现容易,但密钥交换是个问题。
每个有一对密钥:公钥、私钥;
用A的公钥对明文加密,生成密文,只有A的私钥才能对这份密文解密。
公钥属于公开信息,可以放在公开信息栏种。
攻击者解密需要获得:密文、加解密算法、密钥;缺一不可。
公开密码密码是1970年代的新技术,书写了密码技术的新篇章。
公开密钥密码算法往往使用数论种的一些函数精心构造。
补充而非取代对称密钥密码。
公开密钥密码的加密过程计算量大。
公开密码密码可用在密码交换场景。
参与方B容易产生一对公私密钥;(要足够随机,无法人为产生密钥对碰撞)
发送方A容易利用B公钥产生密文;(容易:是指计算复杂度较低)
接收方B容易利用私钥解密密文;
攻击方已知B公钥,无法计算出B私钥;(无法计算,也称计算不可行,是指只能蛮力求解,计算复杂度可预估)
攻击方已知B公钥、密文,无法计算出明文;
密钥对互相之间可以交换使用:用公钥加密、可用私钥解密,用私钥加密、可用公钥解密;
理论基础:公开加密的密钥对互相之间可以交换使用;
签名有效性的要求:(1)可认证,证明身份;(2)抗抵赖;
签名方法:用私钥对明文进行加密;
包含三类:
保密通信:公开密钥密码和对称密钥密码都能实现;
密钥交换:只有公开密钥密码能实现这个功能;
数字签名:只有公开密钥密码能实现这个功能;
RSA算法 | Diffie-Hellman算法 | DSA算法 | |
---|---|---|---|
保密通信 | Y | N | N |
密钥交换 | Y | Y | N |
数字签名 | Y | N | Y |
1977年,Rivest、Shamir和Adleman三人实现了公开密钥密码体制,可用于密钥交换、数字签名。
是一种分组加密算法:将明文先分组,然后再加密。
是目前使用最为广泛密码的算法。
理论基础是数论种的一下论断:
要求求得两个大素数的乘积是容易的,但要分解一个合数为两个大素数的乘积,则在计算上几乎是不可能的。
基于最大整数做因式分解的难题。
(1)生成两个足够大的随机素数p和q;
(2)计算这两个素数的乘积n=pq;
(3)计算小于n并且与n互质的整数的个数,即欧拉函数phai(n)=(p-1)(q-1);
(4)选择一个随机数e满足:1
(6)保密d,销毁p和q,公开n和e;
(7)公钥公开:PU={e,n};
(8)私钥保密:PR={d,n};
如何得到足够大的随机素数p和q?
首先产生足够大的随机数,然后用素数判定算法检测是否为素数;常用的两个素数判定算法:Solovay-Strassen, Miller-Rabin;
加密: 解密: 在加密和解密运算中都采用了模指数运算,可用一些巧妙算法降低运算量; 理论上,RSA的安全性取决于模n分解的困难性。目前最快的分解因子算法其时间复杂性为O(exp(sqr(ln(n)*ln(ln(n))))); 到目前位置RSA被认为是最安全的。 加密与解密又不同的密钥完整; 单向函数:计算f(x)容易,计算其逆不可行; 可提供单项函数的三大数学难题: 大数分解难题(IFP); 单向陷门函数: 构造公钥密码系统的关键实在如何求解某个单向函数的逆函数的NP完全问题中设置合理的“陷门”。 1976年 Diffie和Hellman首次提出了公开密钥密码体制的思想。 最早应用在局域网环境中,每个局域网参与者都可以共享密钥。 信息安全的需求又很多种,通信安全仅仅是其中一种。 报文鉴别是指怎样的安全需求? 报文鉴别的三重含义(安全需求): 尝试以下三种方案实现报文鉴别: 并不是每种方案都可以实现以上的全部方案; 对称密钥:收到的密文可以解密为明文,但难以自动确定报文是否被篡改。报文应具有合适的结构,冗余的信息或校验和来检测报文是否被更改。 公钥加密:不能实现任意一种报文鉴别,因为任何人都知道接收者B的公钥,都可以利用B的公钥加密。 私钥签名:不具备保密性,任何人都知道公钥;一定程度上可以确保报文的完整性;可以验证A的身份;可以防止发送者抵赖; 先私钥签名后公钥加密:报文M先用A的私钥加密,再用B的公钥加密;这种方法可以提供报文鉴别的三种需求。 用加密实现报文鉴别的缺点: 专用方案:报文鉴别码MAC(Message Auto Code) 为什么用MAC? 注意:MAC不是数字签名; 报文鉴别码的第2种用法: h=H(M) hash函数的最常应用场景是构造数字签名: 对哈希函数的要求: hash的6种应该用场景: (b)a->B: M||E(K,H(M)] (c)a->B: M||E(PRa,H(M)] (d)a->B: E(K,[M||E(PRa,H(M))]) (e)a->B: M||H(M||S) (f)a->B:E(K, M||H(M||S)) 目前公认最好的hash函数:SHA-1,SHA-256,SHA-384, SHA512; 生日悖论:在一组23名人中,至少2人相同生日,概率为50%,当50名时,概率为70%; 一般描述:空间容量为N,群组人数为r,碰撞的概率P=1-exp(-r^2/(2N)); public key infrastructure 建立在非对称密钥密码学基础上; 公开密钥用来交换对称密钥、数字签名; 问题:如何验证公钥是某人的,而不是伪造者的? PKI之动机:如何实现公钥与身份建立联系? 证书信息:持有者的身份信息和某种属性;第三方信息; 数字世界的证书(Digital certificate): 密钥生命周期: 数字证书实现了身份与公开密钥的绑定; 由于证书在互联网系统,异构系统传播,需要定义统一格式。 KPI三个层面组成: (2)中间层: registration authority(RA,证书登记中心), certificate issuance system(证书发布系统) (3)上层: 证书的撤销机制 单CA模型:全世界只有一个CA机构,不存在信任关系。 多CA模型: CA层次结构的建立: 如何解决两棵CA树之间的信任关系: PKCS系列标准; 身份认证的基本概念 基于口令的身份认证 质询与应答认证技术 Needham-Schroeder协议 KERBEOS协议解决的问题 单元测试5 密码学基础:安全协议(PKI,身份认证协议);作为支撑实现:系统安全、应用安全、网络安全; 数字加密 (与密码学关系密切) (与密码学关系不大,与网络攻防关系密切) 物理安全 机密性Confidentiality Web定义,又称WWW(World Wide Web) Web系统的脆弱性: 原生的基于Http协议的Web应用面临多种威胁: 结论:基于原生的http需要增加安全机制; 网络上: 服务器端: 浏览器端: 电子商务主要通过Web实现,存在问题与Web相同; 安全套接字协议SSL(Secure Socket Layer)最初由网景(Netscape)公司开发,由V1.0,V2.0, V3.0三个版本; 安全机制可以在传输层、网络层、应用层由相应的实现方案: 在应用层做加固,只能由程序员自己做; 例如:浏览器地址栏中的“锁”标识,表明SSL协议已经开始工作,做如下事项: SSL协议位置 SSL 协议本身包含4个子协议; 协议分为两层: 先握手; SSL记录协议; 什么是会话; 【*】四个阶段 第二阶段: 【server -> client】cerificate_request;(可选)server对client的认证 第三阶段: 第四阶段: 【*】 ssl记录协议封装: 【*】 SSL记录协议的载荷(Payload) SET(Secure Electronic Transactions) 客户和商家交易的10个步骤: 区块链简史 两个方面的完整性 工作量证明 共识机制 公钥密码实现身份标识、交易的签名 单元测试6 防火墙的位置:输入输出的必经之地; 防火墙的访问控制能力: 实现审计和报警; 防火墙的局限性: 入侵检测系统(IDS,Instrusion Detection System)与防火墙 IDS演进->IPS(Instrusion Prevention System)在线防护与阻断; 有三层协议栈:物理层、链路层、网络层; 基本的思想很简单: 如何设定规则过滤: 两种基本的缺省策略: 优点: 缺点: 攻击类型: 可以打开应用层的数据头部,需要支持所有应用层的协议; Application level gateway,支持协议: 代理服务器,对外屏蔽了真正的服务器; 优点: 企业内部的服务器不对外提供服务; 堡垒主机(Bastion Host):对外部网络暴露,同时也是内部网络用户的主要连接点; 【*】包过滤 【*】屏蔽主机方案 双宿主堡垒主机: 【*】屏蔽子网方案 AES背景与算法主体结构 Rijndael基本运算 Rijndael加密算法 Rijndael工作密钥 Rijndael解密算法 SM4算法结构与加密算法 SM4解密与密钥扩展算法 SM4对合性与安全性分析
已知明文M,公钥PU={e,n};
计算密文:C=M^e mod n,where 0<=M
已知密文C,私钥PR={d,n};
计算明文:M=C^d mod n;RSA算法的安全性
并没有证明分解大整数就是NP问题,并不排除未发现的算法可以解决此问题。
目前,RSA的一些变种算法已经被证明等价于大数分解。6. 公钥密码的特征总结
知道其中一个密钥,无法推算另外一个密钥;
公钥和密钥可以互换使用;
离散对数难题(DLP)
椭圆曲线离散对数问题(ECDLP);
对于一个函数f(x),如果其逆函数invf(y)在已知某些辅助信息情况下容易求解得出,则称该单向函数f(x)为单向陷门函数;7. Diffie-Hellman密钥交换算法
单元测试2
三、报文鉴别与哈希函数
1. 安全服务与安全需求
保密性(Confidentiality):防止未经授权的访问,包含数据读取、系统访问控制;
完整性(Integrity):防止篡改;
可用性(Availability):业务连续性,任何时候合法用户的访问请求都可以被满足;应对拒绝服务攻击;
可认证(Authentication):通信人的身份是可以被确认的;
抗抵赖(Non-repudiation):对发生的事情无法否认;2. 报文鉴别的安全需求
(1)保护报文的完整性;
(2)验证发送者的身份;
(3)抗抵赖:防止报文发送者抵赖;
(1)报文加密
(2)报文鉴别码
(3)HASH函数3. 对报文加密来实现报文鉴别
不能提供抗抵赖服务,A与B都可以构造报文。4. 报文鉴别码
(1)计算开销大;
(2)难以自动实现;
固定长度比特串;
由报文鉴别码算法生成(类似于对称密钥算法,但不可逆);
附加到报文种用于鉴别;
有时候只需要报文鉴别;
有时候需要长时间保存数据完整性;
E(K2,M||C(K1,M))
A和B共享密钥K1,K2;先用K1生成报文鉴别码,再用K2加密整个报文;5. 哈希函数
哈希函数没有密钥;
哈希函数主要用来鉴别报文内容没有被更改;
M||E(PRa,H(E))
先对报文求hash,对hash签名放在报文末尾;
既可以保证报文完整性,又可以防止恶意篡改。
(1)可应用于任意长度的报文M;
(2)生成固定长度的输出h;
(3)容易计算;
(4)单行性,不可逆;
(5)弱抗碰撞性;找到x与给定y具有相同h;
(6)强抗碰撞性;找到任意x,y具有相同h;
(a)a->B: E(K,[M||H(M)])
先对报文求hash,放在报文末尾;
然后用对称密钥K对所有内容进行加密,生成密文;
具有保密性:A和B共享密钥K;
可确保完整性;
可以验证发送者身份(因为仅有AB拥有密钥K);
不具备抗抵赖性:B可以伪造A发来的数据;
对报文取hash,加密后与报文拼接;
可确保报文完整性;
可验证发送者身份:A和B共享密钥K;
不具备保密性:暴露了明文;
不具备抗抵赖性:B可以伪造A发来的数据;
对报文取hash,A签名后,与报文拼接;
具备报文鉴别的3种服务;
不具备保密性:暴露了明文;
先对报文求hash,A再对hash签名,放在报文末尾;
然后用对称密钥K对所有内容进行加密,生成密文;
具备报文鉴别的3种服务;
具有保密性:A和B共享密钥K;
计算报文和随机数的hash,拼接到报文末尾;
A和B共享随机数S;
可确保完整性;
可以验证发送者身份(因为仅有AB拥有随机数S);
计算报文和随机数的hash,拼接到报文末尾;
A和B共享随机数S,对称密钥K;
可确保完整性;
可以验证发送者身份;
具有保密性;6. 生日攻击
单元测试3
四、公开密钥基础设施(PKI)
公钥技术回顾
可以实现:保密性;数字签名,签名可以保证完整性(hash防篡改),可认证性(谁签名),抗抵赖性(不可伪造);PKI之动机
(1)主体的身份信息;
(2)主体的公开密钥;
(3)证书授权中心(CA)名称;
(4)CA的证明(数字签名);
密钥产生、证书签发、密钥使用(密钥验证)、密钥过期;数字证书格式
证书的权威性取决于该机构(CA)的权威性;
常用X.509国际标准,格式如下:
(1)版本:Version1,2,3;
(2)序列号:Certificate Serial Number,在CA内部唯一;
(3)签名算法标识符:该证书CA的签名算法;
(4)签发人名字:CA的名字;
(5)有效时间:起始和终止时间;
(6)主体名字;
(7)主体的公钥信息:算法、参数、公开密钥;(主体的签名算法独立与CA的签名算法);
(8)签发人唯一标识符;(Version 2)
(9)主体唯一标识符; (Version 2)
(10)扩展域;(Version 3:包含丰富的扩展信息,例如查询证书是否被注销)
(11)签名(指纹,CA对证书签名);PKI的组成
(1)底层:
PKI strategy;定义了一个组织安全信息的指导方针;
software and hardware systems;
certificate authority(CA,证书授权中心),
狭义CA的职能:签发证书,签发证书注销列表;
验证用户身份,与用户由物理接触;
放在服务器上,证书发布与被查阅;
PKI application(证书应用系统);
各种原因导致证书需要被撤销:私钥泄露,密钥更换,用户变化(企业信息变更);
CRL(证书注销列表)格式:X.509 V2 CRL;PKI信任关系
A为CA1的用户,得到了B的CA2证书,如何信任该证书?
根CA;
层次CA,叶节点CA;
维护这棵树需要两棵树:前向树,后向树;
证书链:一级一级验证证书的合法性;
仅信任根CA签发给自己的证书。
交叉认证:树的根CA相互给对方的根CA签发证书;(可分为单向认证和双向认证)
交叉认证可以做约束:名字空间范围约束、路径长度约束;PKI的应用
单元测试4
五、身份认证
六、Web与电子商务安全
1. 信息安全的学科内容
密码理论
数字签名
消息摘要
密钥管理安全理论
身份验证
访问控制
审计追踪
安全协议安全技术
防火墙技术
漏洞扫描技术
入侵检测技术
防病毒技术平台安全
网络安全
系统安全
数据安全
边界安全
用户安全安全目标
完整性Integrity
抗抵赖
可用性安全服务安全需求
2. Web和电子商务安全问题提出
Web,EC定义
Web是外网可见;
复杂的软件存在漏洞;
Web站点容易配置和管理;
可作为跳板发起对内网的攻击;
用户没有意识到威胁的存在;威胁有哪些
哪里会有威胁
网络窃听,报文篡改;
网络钓鱼Phising,使用相同口令;
恶意软件(间谍软件,木马软件);EC 电子商务
3. 安全套接字协议SSL与传输层安全协议TLS
后来称为Internet标准,名称改为TLS(Transport Layer Security),即传输层安全协议;
TLS working group in IETF;IETF组织中的TLS 工作组;
TLS V1.0被认为是SSL V3.1;
网络层(Network Level):IP/IPSec;
传输层(Transport Level):SSL or TLS;
应用层(Application Level):SET,PGP,S/MIME,Kerberos;
在主机上由完整的五层协议栈,在路由器上只有三层协议栈;
在出口路由器加固,保护内部子网,只能在IP/IPsec层做;【*】SSL/TLS 提供的安全服务:
1. 为两个通讯个体之间提供保密性,数据完整性,身份认证;
2. 互操作性、可扩展性、相对效率
【*】SSL协议体系结构
在TCP与应用层之间加入子层;--- Top level
SSL Handshake Protocol 握手协议
SSL Change Cipher Spec Protocol 密码变化协议;
SSL Alert Protocol 警报协议;
HTTP
--- second level
SSL Record Protocol 记录协议;
--- 3rd level
TCP
--- 4th level
IP
【*】SSL/TLS的子协议
底层:ssl记录协议;
上层:ssl握手协议,ssl密码变化协议,ssl警告协议;SSL工作流程
单向身份认证(先认证服务器),然后双向认证(可选)
协商SSL会话的密钥和算法等参数(有公开密钥,有对称密钥);
用公开密钥握手,交换对称密钥和加密算法;
加密会话数据(采用对称密钥);
提供完整性、保密性支持;
浏览器访问Web一次,称为一次会话(短时间断开还是一次会话);ssl握手协议:(最复杂)
(1)身份认证,至少对一方实现认证(对服务器),也可以是双向认证;
(2)协商得到的共享密钥是安全的,中间人不能够知道;
(3)协商过程是可靠的;
第一阶段:
【client -> server】client hello;
hello消息包含:版本号,随机数,会话ID,…
【server -> client】server hello;
hello消息包含:版本号,随机数,会话ID,…
【server -> client】cerificate:证书;(可选)可能从第三方获取;
【server -> client】server_key_exchange;a
【server -> client】server_hello_done;server用自己的私钥,对客户机发给它的随机数进行签名;
【client -> server】cerificate:证书;(可选)如果上阶段有cerificate_request;这阶段就会有这个报文;
【client -> server】client_key_exchange;
【client -> server】cerificate_verify;(可选)用客户机对server发来的数据做签名;
完成密码变换;
【client -> server】change_cipher_spec;
【client -> server】finished;
【client -> server】change_cipher_spec;
【client -> server】finished;ssl记录协议
(1)保密性,使用了对称加密算法;
(2)完整性,使用MAC算法;
数据来源与应用层数据;
对数据进行分段处理(Fragment);
数据压缩(Compress)(可选);
增加报文鉴别码(Add MAC)(可选);
采用对称密钥加密(Encrypt);
增加报文头部(Append SSL Record Header);
头部信息结构体:struct {
ContentType type; // 8位,上层协议类型;
ProtocolVerison version; // 16位,主次版本;
uint16 length; // 加密后的数据长度,不超出2^14+2048字节;
EncryptedData fragment; // 密文数据;
} SSLCiphertext;
(a)Change Cipher Spec Protocol;
1个字节;
(b)Alert Protocol;
2个字节:级别,报警码;
(c) Handshake Protocol;
1字节:Type;
3字节:Length;
xx字节:内容;
(d)other upper-layer protocol;4. 安全电子交易 (SET)
开放的安全电子交易安全规范;
保护Internet上的信用卡支付交易;
由Mastercard,Visa发起。
不是支付系统;
一系列安全协议和规范格式;
七、区块链
八、防火墙
1. 防火墙的基本介绍
通过安全策略,只有授权的流量才可以进入;
防火墙部署在安全的操作系统上;
服务控制;
方向控制;
用户控制;
行为控制;
可以实现地址转换;
实现IPSec;
对于绕开防火墙的攻击无能为力;例如走另外一条路由,没有经过防火墙;
防火墙不能防止内部攻击,以及内部人员与外部人员的联合攻击;(通过tunnel工具建立隧道进入);
防火墙不能防止被病毒感染的程序或者文件、邮件等;
防火墙不能防止应用层的病毒;
防火墙会降低数据包的转发速度,降低计算机的网络性能;
防火墙主要做访问控制,要求实时处理,属于不可或缺的部分,但是不能完全保证系统的安全;
入侵检测,包含信息收集、分析引擎、响应部件,可以先收集再分析,从而智能地发现网络或系统中是否有违反安全策略的行为和被攻击的迹象;
防火墙是在线实时处理;IDS在防火墙后面,在旁路实现一定程度的离线分析;2.防火墙类型
包过滤路由器
对于每个进来的包,使用一组规则,然后决定转发或者丢弃;
往往配置成双向;
过滤的规则以IP和传输的头中的域(字段)为基础;包括源和目标IP地址、IP协议域、源和目标端口、标志位;
过滤器往往建立一组规则,根据IP包是否匹配规则中指定的条件来作出决定。
如果匹配到一条规则,则根据此规则决定转发或者丢弃;
如果所有规则都不匹配,则执行缺省策略;
第一种:没有被拒绝的流量都可以通过;出现新危险,增加新策略;
第二种:没有被允许的流量都要拒绝;保守型安全策略,根据需要,逐渐开放;
简单,效率高;
指定正确的规则不容易;
不可能引入认证机制;无法打开报文应用层数据的头部;
IP地址欺骗;
源路由攻击;
小碎片攻击;
利用复杂协议和管理员的配置失误进入防火墙;应用层网关
可以提供理想的日志功能;
非常安全,但是开销比较大;
http,ftp, telnet, smtp;
允许用户“直接”访问internet;
易于记录日志;
缺点:
新服务不能被及时代理;
成本较高;
对于每一种应用都需要编写服务端的软件,工作量比较大;3. 防火墙部署
场景:
企业的FTP服务器、WWW服务器,需要对外提供服务;几个概念:
双宿主主机(Dual-homed host):至少有两个网络接口的通用计算机系统,一种堡垒主机;
DMZ(Demilitarized Zone,非军事区):在内网和内网之间的子网,缓冲地带;防火墙几种部署方案
采用包过滤路由器:
方案简单;
但是不同主机的安全需求不同,无法实现这个需求;
单宿主堡垒主机:
两层保护:在出口位置部署包过滤路由器+内部部署应用层网关;
只允许堡垒主机可以与外界直接通讯,采用代理的方式;
缺点:单宿主堡垒主机出于旁路位置,一旦包过滤路由器被攻破,则内部网络被暴露。
两层保护:包过滤路由器+双宿主堡垒主机;
所有进出内网的数据都要经过双宿主堡垒主机,双宿主堡垒主机即连接内网也连接万网;
优点:真正的两层保护;
三层防护:外部包过滤路由器,堡垒主机,内部包过滤路由器;九、AES与国密SM4算法