资源描述:
《[计算机]密码学与计算机安全第十四讲:安全实践useridentification》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十四讲:安全实践郑东上海交通大学计算机科学系信息安全学院14实践中的安全,用户识别密码学应用安全email(S/MIME,PGP),用户身份识别问题.1.实践中的安全–Email-安全email是使用最广泛的网络业务消息不安全可以在传输过程被窃听可以在目的地被窃听2.Email安全服务机密性认证性消息完整性消息不可否认性3.安全Email实施需要利用公钥算法及证书机制进行密钥交换及认证使用对称加密算法oftenimplementusingemailencapsulation4.PEM&S/MIMEPEM是安全email标准S/MIME(安全/通用Internet邮件扩充)保密性-DES加密
2、完整性-DESencryptedhash(MD2/MD5)认证性-DES或RSA加密的HASH不可否认性-RSA加密的HASH密钥管理:中心在线-私钥服务器公钥证书,使用X.509强认证由证书机构签发CA)S/MIME修改版本:使用DES,Triple-DES,RC2X.509证书5.PGPPrettyGoodPrivacy广泛使用的安全email标准PhilZimmermann开发可以用在Unix,PC,MacintoshandAmigasystems最初是免费的!!!!现在已有商业版保密性-IDEAencryption完整性-RSAencryptedMIC(MD5)认证与不可否认性-RS
3、AencryptedMICPGP公钥管理(参见书P292)6.PGP程序所有的PGP功能有一个程序运行必须集成在email/news每个用户要有一个已知的密钥环包括公开密钥和私钥(用口令保护)公开密钥可以直接传送公钥对由可信方签发用于签名或加密用于验证接收到的消息8.PGP–使用现在可以合法被任何人使用:非商业版可以合法使用(inUS/Canada)withlicencedMITversion商业版本是Viacryptversion(inUS/Canada)其它国家的非商业应用(outsidetheUS)是国际版本(internationalversion)国际版的商业应用需要IDEA许可证
4、(美国以外使用)9.PGP服务功能数字签名DSS/SHA或RSA/SHA消息加密CAST-128或IDEA或3DES+Diffie-Hellman或RSA数据压缩使用ZIP对报文压缩,用于存储或传输邮件兼容加密的报文可以使用64基转换算法转换成ASCII字符(Radix64)数据分段-为满足最大报文长度的限制,PGP完成报文的分段和重新装配Ks:sessionkeyKRa:用户A的私钥KUa:用户A的公钥EP:公钥加密DP:公钥解密EC:常规加密DC:常规加密H:散列函数
5、
6、:连接Z:用ZIP算法数据压缩R64:用radix64转换到ASCII格式9.1记号说明9.2只进行鉴别的服务图A的步
7、骤:1.发送者创建报文2.使用SHA-1生成160bit散列码3.使用发送者私钥,采用RSA算法,对散列码签名,并串接在报文前面4.接收者使用发送者的公钥,验证签名结果9.3只保证机密性的服务图b1.发送者生成报文和对称加密的会话密钥2.采用CAST-128(或IDEA,3DES),使用会话密钥对压缩的报文加密3.采用RSA,使用接收者的公开密钥,对对会话密钥加密,并附加在报文前4.接收者采用RSA算法,使用自己的私有密钥对会话密钥进行解密5.使用会话密钥解密报文图C1.先对报文生成签名,并附加在报文首部,2。利用对称算法,对明文和签名加密,3。使用RSA对会话密钥进行加密。9.4鉴别与机密
8、性服务9.5数据压缩发生在签名后、加密前。对邮件传输或存储都有节省空间的好处。9.6分段与重组Email常常受限制于最大消息长度(一般限制在最大50000字节)更长的消息要进行分段,每一段分别邮寄。PGP自动分段,(在其它处理完成之后进行)并在接收时自动恢复。签名只需一次,在第一段中。PGP报文的传输和接收10加密密钥和钥匙环PGP使用四种类型的密钥:一次性会话传统密钥,公钥,私钥,基于口令短语的常规密钥。三种独立的需求:1、需要一种生成不可预知的会话密钥的方法2、允许用户有多个公开/私有密钥对。需要某种方法来标识具体的密钥。3、每个PGP实体必须维护一个保存其公钥/私钥对文件,及保存通信对
9、方公钥的文件。10.1会话密钥的生成128位的随机数是由CAST-128自己生成的。输入包括一个128位的密钥和两个64位的数据块作为加密的输入。使用CFB方式,CAST-128产生两个64位的加密数据块,这两个数据块的结合构成128位的会话密钥。(算法基于ANSIX12.17)作为明文输入的两个64位数据块,是从一个128位的随机数流中导出的。这些数是基于用户的键盘输入的。键盘输入时间和内容用来产生随机流。