1、6/6/2022密码学与网络安全1Cryptography and Network Security密码学与网络安全Atul Kahate6/6/2022密码学与网络安全32/2要让三个人保住秘密,其中两个人必须死亡! -本杰明 富兰克林6/6/2022密码学与网络安全32/3安全的需求管理工作站管理工作站分支机构分支机构局域网局域网资源子网资源子网路由器路由器路由器路由器路由器路由器分支机构分支机构局域网局域网公共网络公共网络总部总部路由器路由器路由器路由器 暴露于公网上的网络6/6/2022密码学与网络安全32/4安全模型 无安全性:根本不实现安全性; 隐藏安全:别人不知他的内容和存在;
2、主机安全:每个主机单独实现安全性; 网络安全:控制各个主机及其服务的网络访问,是有效且可伸缩的模型;6/6/2022密码学与网络安全32/5安全管理策略 经济性; 实用性; 文化问题; 合法性;6/6/2022密码学与网络安全32/6安全原则 保密性: 要求做到只有发送人和所有接收人才能访问消息内容;保密ABC截获(interception)截获破坏了保密性原则6/6/2022密码学与网络安全32/7安全原则 鉴别: 鉴别机制可以建立身份证明。 鉴别过程保证正确标识电子消息或文档来源;我是用户AABC伪造(fabrication)缺乏鉴别机制时可能导致伪造6/6/2022密码学与网络安全32/
3、8安全原则 完整性(integrity): 消息内容在发送方发出后和到达所要接收方之前发生改变时,就会失去消息的完整性;ABC修改(modification)修改会失去消息的完整性消息的理想传送线路消息的实际传送线路将100美元转给D将1000美元转给C6/6/2022密码学与网络安全32/9 不可抵赖(non-repudiation): 有时用户发了消息,又想否认发了这个消息;不可抵赖不允许发消息者拒绝承认发消息安全原则6/6/2022密码学与网络安全32/10 访问控制(access control): 原则确定谁能访问什么; 角色管理:用户方能做什么; 规则管理:什么条件下允许访问什么资
4、源; 根据所采用的决策,可以建立访问控制矩阵,列出用户及其可以访问的项目,访问控制表(ACL)是访问控制矩阵的子集;访问控制指定和控制谁能访问什么安全原则6/6/2022密码学与网络安全32/11安全原则 可用性(availability): 原则指定要随时向授权方提供资源(即信息);ABC中断(interruption)中断会破坏可用性原则6/6/2022密码学与网络安全32/12攻击类型 理论概念: 截获、伪造(拒绝服务)、修改(重放和改变消息)、中断(伪装); 被动攻击:被动攻击(截获)消息内容泄露通信量分析被动攻击不对数据进行任何修改6/6/2022密码学与网络安全32/13攻击类型
5、理论概念: 截获、伪造(拒绝服务)、修改(重放和改变消息)、中断(伪装); 主动攻击:主动攻击中断(伪装)伪造(拒绝服务)修改重放攻击改变消息攻击6/6/2022密码学与网络安全32/14攻击类型 实际攻击: 应用层攻击:攻击者访问、修改和防止访问特定的应用程序的信息或该应用程序本身; 网络层攻击:用各种方法减少网络能力;实际攻击应用层攻击网络层攻击安全攻击可能发生在应用层或网络层6/6/2022密码学与网络安全32/15攻击类型 实际攻击: 病毒(virus):可以修复,可以用良好的备份与恢复过程控制其破坏; 蠕虫(worm):不进行任何破坏性操作,只是耗尽系统资源,使其停滞; 特洛伊木马(
6、Trojan horse):使攻击者可以取得计算机和网络的某种保密信息; Applet与ActiveX控件:可能被攻击者利用,造成安全问题; Cookies、JavaScript、VBScript、JScript有时也会产生一定风险;6/6/2022密码学与网络安全32/16特定攻击 分组窃听(Packet sniffing):攻击者不干扰会话,只是监视传递的分组。 分组伪装(Packet spoofing):使用不正确的源地址发送分组。 DNS伪装(DNS spoofing):使用假的IP地址更换电脑中存的ISP的正确地址。(DNSsec 可以防止攻击)。6/6/2022密码学与网络安全32
7、/17密码学的基本概念 密码学(cryptography)的目的是通过将信息编码使其不可读,从而达到安全性。 明文(plain text):发送人、接受人和任何访问消息的人都能理解的消息。 密文(cipher text):明文消息经过某种编码后,得到密文消息。 加密方法:替换法(Substitution)和变换法(Transposition)。6/6/2022密码学与网络安全32/18替换方法 凯撒加密法(Caesar Cipher):明文消息的字符替换成另一个字符、数字或符号。 密码分析员(cryptanalyst):是从密文消息求出明文消息的人,这个求解过程称为密码分析(cryptanal
8、ysis)。 强力攻击法(Brute-force attack): 通过所有置换与组合攻击密文消息的方法。 密码分析员进行强力攻击时,通过各种可能从密文消息求出明文消息。6/6/2022密码学与网络安全32/19单码加密法 字母替换采用随机替换。 由于置换和组合量很大,很难破解。 使用26个字母的任何置换与组合,达4X1026种可能性。6/6/2022密码学与网络安全32/20同音替换加密法 同音替换加密法:也是一次把一个明文字母换成一个密文字母,但密文字母可以是所选集合中的任何一个字母。6/6/2022密码学与网络安全32/21块替换加密法 块替换加密是把一块字母换成另一块字母,而不是把一个
9、字母换成另一个字母。6/6/2022密码学与网络安全32/22多码替换加密法 使用多个单码秘钥,每个秘钥加密一个明文字符。用完所有秘钥后,再循环使用。所有秘钥数量称为密文周期。6/6/2022密码学与网络安全32/23变换加密技术 栅栏加密技术:将明文消息写成对角线序列,然后一行一行地产生密文。 简单分栏式变换加密技术:只是将明文排成矩阵中的行序列,按随机顺序读取。 多轮简单分栏式变换加密技术:使密文比简单分栏式变换加密技术得到的密文更复杂。 Vernam加密法:使用一次性板,用完就要放弃,适合少量明文消息。 书加密法/运动密钥加密法6/6/2022密码学与网络安全32/24加密与解密 加密(
10、encryption):将明文消息变成密文消息。 解密(decryption):将密文消息变成明文消息。 算法:取一个输入文本,产生一个输出文本。 加密算法:发送方进行加密的算法。 解密算法:接收方进行解密的算法。 秘钥(key):只有发送方和接收方理解的消息。6/6/2022密码学与网络安全32/25加密与解密 每个加密与解密过程都有两个方面-加密与解密的算法与密钥。 加密与解密过程使用的算法是公开的,但加密与解密所用的密钥能够保证加密过程的安全性。 对称密钥加密(Symmetric Key Cryptography)的加密与解密使用相同密钥。 非对称密钥加密(Asymmetric Key
11、Cryptography)的加密与解密使用不同密钥。6/6/2022密码学与网络安全32/26计算机对称密钥加密算法 流加密法:一次加密明文中一个位,解密是也是一位一位解密; 异或操作的可逆性可以恢复原值,这在加密算法中意义重大; 块加密法:一次加密明文中一个块,解密是也是一块一块解密; 组元素是每个可能密钥构成的秘闻块。 6/6/2022密码学与网络安全32/27计算机对称密钥加密算法 混淆(confusion):使用替换技术,保证密文中不会反映出明文线索,防止密码分析员从密文中找到模式,从而求出相应明文。 扩散(diffusion):使用置换技术,增加明文的冗余度,使其分布在行和列中。6/
12、6/2022密码学与网络安全32/28计算机对称密钥加密算法发送方接收方明文加密解密密文明文公共网络公共网络密文用对称密钥用对称密钥6/6/2022密码学与网络安全32/29数据加密标准 DES(Data Encryption Standard) 加密解密过程的唯一差别是16轮密钥顺序倒过来。明文(64位)密文(64位)初始置换左明文 右明文16轮16轮最终置换密钥密钥6/6/2022密码学与网络安全32/30DES的变形 双重DES(Double DES):两次DES加密。 三重DES(Triple DES):三次DES加密6/6/2022密码学与网络安全32/31其他数据加密算法 IDEA
13、-International Data Encryption Algorithm RC5Ron Rivest 5 Blowfish Bruce Schneier AESAdvanced Encryption Standard6/6/2022密码学与网络安全32/32计算机非对称密钥加密算法 1977年,麻省理工学院的Ron Rivest、Adi Shamir和Len Adleman开发了第一个非对称密钥加密系统,称为RSA算法。 原理:如果一个大数N只有两个素数因子A和B,则可生成一对密钥。一个为公钥,一个是私钥。6/6/2022密码学与网络安全32/33计算机非对称密钥加密算法发送方A接收方
14、B明文密文明文公共网络公共网络密文用B的公钥加密用B的私钥解密6/6/2022密码学与网络安全32/34RSA算法 选择两个大素数P、Q; 计算N=PxQ; 选择一个公钥E,使其不是(P-1)与(Q-1)的因子; 选择一个私钥D,满足(DxE)mod(P-1)x(Q-1)=1; 加密时,从明文PT计算密文CT如下:CT=PTEmod N 将密文CT发送给接收方; 解密时,从密文CT计算明文PT如下: PT=CTDmod N6/6/2022密码学与网络安全32/35对称与非对称密钥加密比较特征对称密钥加密非对称密钥加密加/解密密钥相同不同加/解密速度快慢密文长度明文长度密钥协定与交换大问题没问题
15、所需密钥数与消息交换参与者个数的关系大约为参与者个数的平方,因此伸缩性不好等于参与者个数,因此伸缩性好用法主要用于加/解密,不能用于数字签名可以用于加/解密,和用于数字签名6/6/2022密码学与网络安全32/36对称密钥加密算法加密明文消息发送方A明文密文对称密钥加密算法对称密钥K1 6/6/2022密码学与网络安全32/37用接收方的公钥包装对称密钥发送方AB的公钥K2 对称密钥K1 非对称密钥加密算法用B的公钥K2 将对称密钥K1加密6/6/2022密码学与网络安全32/38数字信封发送方A密文数字信封用B的公钥K2 将对称密钥K1加密6/6/2022密码学与网络安全32/39数字信封通
16、过网络到达B发送方A数字信封接收方B公共网络公共网络数字信封6/6/2022密码学与网络安全32/40B用私钥打开数字信封接收方B密文数字信封打开用B的公钥K2 将对称密钥K1加密6/6/2022密码学与网络安全32/41取得一次性会话密钥接收方BB的私钥K3 非对称密钥加密算法用B的公钥K2 将对称密钥K1加密私钥对称密钥K1 6/6/2022密码学与网络安全32/42用对称密钥取得明文接收方B明文密文对称密钥加密算法对称密钥K1 6/6/2022密码学与网络安全32/43数字签名发送方A接收方B明文密文明文公共网络公共网络密文用A的私钥加密用A的公钥解密鉴别(标识和证明消息是A发来的),不
17、可抵赖6/6/2022密码学与网络安全32/44消息摘要 消息摘要(message digest):也称散列(hash),是消息的指印(fingerprint)或汇总。 类似于纵向冗余校验(LRC, Longitudinal Redundancy Check)和循环冗余校验(CRC, Cyclic Redundancy Check)。6/6/2022密码学与网络安全32/45消息摘要算法 MD5:Ron Rivest开发的消息摘要算法。 安全散列算法(SHA,Secure Hash Algorithm)。美国国家标准与技术学会和NSA开发,后称为SHA-1。 消息鉴别码(MAC,Message
18、 Authentication Code)6/6/2022密码学与网络安全32/46消息鉴别码 消息鉴别码(MAC,Message Authentication Code)与消息摘要相似,但MAC要求发送方与接收方知道共享对称秘密密钥,用其准备MAC。6/6/2022密码学与网络安全32/47MAC的工作原理发送方A接收方B消息MMAC H1公共网络公共网络B比较MAC H1和H2H1=H2 接收消息M否则,拒绝消息M消息MMAC H1消息MMAC H2密钥K密钥K6/6/2022密码学与网络安全32/48基于散列的消息鉴别码 基于散列的消息鉴别码(HMAC,Hash-based Messag
19、e Authentication Code):HMAC是Internet协议(IP)安全的强制安全实施方法,并在Internet上广泛使用的安全套接层(SSL)协议中使用。 HMAC的基本思想是复用MD5与SHA-1之类的现有消息摘要算法,把消息摘要看成黑盒子,用共享秘密密钥加密消息摘要,从而输出MAC。6/6/2022密码学与网络安全32/49HMAC的概念原始消息已有消息摘要算法,如MD5或SHA-1消息摘要加密MAC最终输出密钥K6/6/2022密码学与网络安全32/50数字签名技术 数字签名的数字签名标准(DSS,Digital Signature Standard),利用SHA-1算
20、法计算原消息的消息摘要,并对消息摘要进行数字签名。 数字签名的数字签名算法:DSA,Didital Signature Algorithm。 DSA和RSA算法都可以用于数字签名。6/6/2022密码学与网络安全32/51其他密钥加密算法 背包算法(Knapsack algorithm); 椭圆曲线加密法(ECC,Elliptic Curve Cryptography); ElGamaljishu 是个公钥算法,可以用于加密和数字签名;6/6/2022密码学与网络安全32/52公钥基础设施 公钥基础设施(PKI,Public Key Infrastructure),几乎是所有加密系统的必由之路
21、。6/6/2022密码学与网络安全32/53数字证书 数字证书(digital certificates):其实是一个小的计算机文件。 证书机构:可以签发数字证书的信任机构。证书机构是一些著名组织,如邮局、财务机构、软件公司等。世界上最著名的证书机构是VeriSign,Entrust,Satyam。 证书机构有权向个人和组织签发数字证书。6/6/2022密码学与网络安全32/54数字证书技术细节 X.509国际标准:指定数字证书字段,指定字段对应的标准版本。6/6/2022密码学与网络安全32/55生成数字证书最终用户最终用户最终用户注册机构 (RA)证书机构 (CA)注册机构:是用户与证书机
22、构之间的中间实体, 帮助证书机构完成日常工作。6/6/2022密码学与网络安全32/56数字证书生成步骤密钥生成注册验证证书生成6/6/2022密码学与网络安全32/57主体生成密钥对内容密钥生成保密发送给RA私钥公钥6/6/2022密码学与网络安全32/58注册机构为主体(用户)生成密钥对注册机构(RA)密钥生成用户X的私钥用户X的公钥私钥公钥给用户X6/6/2022密码学与网络安全32/59主体将公钥与证明材料发给注册机构注册机构(RA)用户X的私钥私钥公钥其他注册信息和证明材料6/6/2022密码学与网络安全32/60证书生成注册机构(RA)公钥其他注册信息和证明材料证书机构(CA)生成
23、X.509标准格式的证书生成X.500标准的证书记录目录支持LDAP访问LDAP,Lightweight Directory Access Protocol6/6/2022密码学与网络安全32/61数字证书的可信度保证VersionCertificate Serial NSignature Algorithm Issuer NameValidity(Not beforeSubject NameSubject Public Key InIssuer Unique IdentiSubject Unique IdenExtensions消息摘要算法消息摘要数字签名算法数字签名私钥证书机构的私钥6/6
24、/2022密码学与网络安全32/62验证CA的数字签名VersionCertificate Serial NSignature Algorithm Issuer NameValidity(Not beforeSubject NameSubject Public Key InIssuer Unique IdentiSubject Unique IdenExtensionsCADS消息摘要算法消息摘要MD1反签名算法(解密)证书机构的公钥数字签名公钥消息摘要MD2MD1=MD2?是否证书有效,接受证书无效,拒绝6/6/2022密码学与网络安全32/63证书机构(CA)层次根CA二级CA二级CA二级
25、CA三级CA三级CA三级CA三级CA四级CA四级CA四级CA四级CA6/6/2022密码学与网络安全32/64交叉证书美国根CA二级CA二级CA二级CA三级CA三级CA三级CA三级CA四级CA四级CA四级CA四级CA日本CA根二级CA二级CA二级CA三级CA三级CA三级CA三级CA四级CA四级CA四级CA四级CA交叉认证6/6/2022密码学与网络安全32/65CA信任链(chain of trust) 根是自签名证书; 层次构成相同根的信任链; 交叉证书使不同域的和最终用户可以互动,它是签发的,建立非层次信任路径;6/6/2022密码学与网络安全32/66证书吊销状态检查机制数字证书吊销检查
26、脱机吊销状态检查联机吊销状态检查证书吊销列表()联机证书验证协议()简单证书验证协议()6/6/2022密码学与网络安全32/67联机证书状态协议客户机目录相应器证书有效否?请求数字证书6/6/2022密码学与网络安全32/68证书吊销状态检查客户机目录相应器证书有效否?请求数字证书响应器查询目录6/6/2022密码学与网络安全32/69响应客户机目录相应器证书有效否?请求数字证书响应器查询目录响应有效已被吊销未知6/6/2022密码学与网络安全32/70证书类型 电子邮件证书; 服务器SSL证书; 客户端SSL证书; 代码签名证书:如Java小程序; 漫游证书:将用户数字证书、私钥和用户名和
27、口令一起放在安全服务器数据库中; 属性证书:不含用户公钥,用于访问控制;6/6/2022密码学与网络安全32/71私钥管理 保护私钥 口令;卡;令牌;生物方法;智能卡; 多个密钥对: 密钥更新; 密钥存档;6/6/2022密码学与网络安全32/72模型 服务: 注册、初始化、认证、密钥对恢复、密钥生成、密钥更新、交叉证书、吊销证书; 体系结构模型: 吊销表配置文件; 操作协议:、; 策略大纲; 时间标注与数据证书服务;6/6/2022密码学与网络安全32/73公钥加密标准 PKCS,Public Key Cryptography Standard公钥加密标准; PKCS#1到PKCS#15;6
28、/6/2022密码学与网络安全32/74、与安全 可扩展标记语言(XML,eXtensible Markup Language)XML密钥管理规范(XKMS)XML加密XML数字签名6/6/2022密码学与网络安全32/75Internet安全协议 SSL-安全套接层; SHTTP-安全超文本传输协议; TSP-时间戳协议; SET-安全电子事务协议; 3D安全协议; PEM-隐私改进邮件协议; PGP-极棒隐私协议; MIME-多用途邮件扩展; WTLS-无线传输层安全;6/6/2022密码学与网络安全32/76SSL安全套接层 SSL,Secure Socket Layer协议; 握手协议
29、(Handshake Protocol); 记录协议(Record Protocol); 警报协议(Alert Protocol);6/6/2022密码学与网络安全32/77SSL握手协议:建立安全能力WEB服务器WEB浏览器1.Client hello 2.Server hello 6/6/2022密码学与网络安全32/78SSL握手协议:服务器鉴别与密钥交换WEB服务器WEB浏览器3.证书请求4.服务器握手完成 2.服务器密钥交换 1.证书6/6/2022密码学与网络安全32/79SSL握手协议:客户机鉴别与密钥交换WEB服务器WEB浏览器1.证书2.客户机密钥交换3.证书验证6/6/20
30、22密码学与网络安全32/80SSL握手协议:完成WEB服务器WEB浏览器1.改变加密规范2.完成3.改变加密规范3.完成6/6/2022密码学与网络安全32/81关闭与恢复SSL连接 SSL连接中的握手协议相当复杂和费时,使用非对称密钥加密。因此,如果可能,客户机与服务器最好复用或恢复前面的SSL连接,而不是用新握手建立新连接。但是,要达到这个结果,双方要协定复用。如果一方认为复用前面的连接有危险或上次连接之后对方证书已到期,则可以强制对方用新握手建立新连接。根据SSL规范,无论什么情况,任何SSL连接均不得在24小时之后复用。6/6/2022密码学与网络安全32/82SHTTP-安全超文本
31、传输协议 SHTTP-(Secure Hyper Text Transfer Protocol)安全超文本传输协议。很少用。6/6/2022密码学与网络安全32/83TSP-时间戳协议 TSP(Time Stamping Protocol)-时间戳协议。可以证明某些数据在特定的时间存在,这个PKI服务是由时间戳机构(TSA,Time Stamping Authority) 提供的。6/6/2022密码学与网络安全32/84SET-安全电子事务协议 SET,Secure Electronic Transaction-安全电子事务协议是开放的加密与安全规范,用于保护Internet 上的信用卡事务
32、。由MasterCard与Visa 主导。 SET服务即: 在参与电子商务的各方之间提供安全的通信信道; 用数字证书提供鉴别; 保证保密性,因为只对参与事务的各方提供消息,只在需要时对其提供信息。6/6/2022密码学与网络安全32/853D安全协议 3DSecure安全协议: 持卡人参与使用3D 安全协议的付款事务时,要向签发银行的注册服务器注册。6/6/2022密码学与网络安全32/86PEM-隐私改进邮件协议 PEM-Privacy Enhanced Mail隐私增强邮件协议是电子邮件安全标准。 PEM支持加密、不可抵赖和消息完整性三大密码学功能。6/6/2022密码学与网络安全32/8
33、7PGP-极棒隐私协议 PGP,Pretty Good Privacy-极棒隐私协议最有意义的方面是支持加密的基本要求,即简单易用、完全免费,包括文档和源代码。 PGP支持的算法:RSA、DSS、Diffie-Hellman进行非对称密钥加密,GAST-128、IDEAheDES-3进行对称密钥加密,用SHA-1求消息摘要。 PGP使用非常广泛。6/6/2022密码学与网络安全32/88MIME-多用途邮件扩展 MIME,Multipurpose Internet Mail Extension-多用途邮件扩展扩展基本电子邮件系统,允许用户发二进制文件。 S/MIME的一般功能: DSS进行数字
34、签名; Diffie-Hellman算法加密对称会话密钥; RSA算法进行数字签名或加密对称会话密钥; DES-3 加密对称会话密钥;6/6/2022密码学与网络安全32/89WTLS-无线传输层安全 WAP,Wireless Application Protocol 无线应用程序协议; WTLS,Wireless Tran-port Layer Security-无线传输层安全协议: 消息加密; 服务器鉴别; 客户机鉴别; 数据完整性保证;6/6/2022密码学与网络安全32/90GSM安全性 GSM,Global System for Mobile Communication安全性: 用户
35、标识鉴别; 信号数据保密; 用户数据保密;6/6/2022密码学与网络安全32/91用户鉴别机制 鉴别保证对方的真实身份。 鉴别方法: 用户名/口令; 鉴别令牌; 基于证书鉴别,PKI+智能卡; 生物方法鉴别; Kerberos单次登录机制;6/6/2022密码学与网络安全32/92鉴别基础 鉴别就是确定身份,达到所要的保险程度。 口令:是字母、数字、特殊字符构成的字符串,只有被鉴别者知道。 明文口令存在安全问题; 口令加密是更好的机制; 随机挑战可以增加安全性;6/6/2022密码学与网络安全32/93鉴别令牌 鉴别令牌更加安全; 鉴别令牌每个登录请求生成一个新口令; 鉴别令牌是一个双因子鉴
36、别机制; 鉴别令牌可以是挑战/响应或基于时间; 基于时间的令牌更常用,更加自动化;6/6/2022密码学与网络安全32/94基于证书的鉴别 基于证书的鉴别是比基于口令的鉴别更强大的鉴别机制; 智能卡可以在卡中生成公钥/私钥对,还可以在卡中存储数字证书。私钥总是放在卡中,安全,不会被篡改。公钥和证书可以导出到外部。 智能卡还可以在卡中执行加密、解密、生成消息摘要和签名。6/6/2022密码学与网络安全32/95生物鉴别 生物鉴别Biometric authentication ; 指纹; 虹膜; 脸型;6/6/2022密码学与网络安全32/96Kerberos鉴别协议 Kerberos是广泛使用
37、的鉴别协议; 单次登录(SSO)使用户可以在多个服务/应用程序中使用一个用户名和口令; SSO可以用脚本或代理实现;6/6/2022密码学与网络安全32/97实现加密与安全 Java加密方案; JCA,JCE; 速度慢; 微软综合加密应用程序接口MS-CAPI,Microsoft Cryptography Application Programming Interface ,是免费的。6/6/2022密码学与网络安全32/98网络安全 TCP/IP FIREWALL IPsec在传输层和Internet层之间提供安全性; IPsec提供鉴别与保密服务; VPN6/6/2022密码学与网络安全32/99100谢谢!谢谢!