第9章套接字安全
数字签名 通过数字签名传递对象 SSL
Network Programming
An Introduction to Database System
第9章套接字安全
随着网络技术的飞速发展,网络中的不安全因素也在逐渐增加:窃听、篡改、抵赖。
信息安全将包括以下四方面的内容,即需保证信息的保密性、完整性、可用性和可控性。
Network Programming
An Introduction to Database System
数字签名
数字签名是通过一个单向函数对要传送的信息进行处理得到的用以认证信息来源并核实信息在传送过程中是否发生变化的一个字母数字串。数字签名提供了对信息来源的确定并能检测信息是否被篡改。
数字签名必须保证一下三点:
信息是由签名者发送的(认证性)
信息自签发后到收到为止未曾做过任何修改(完整性)
发送者不能否认其发送过信息及信息的内容(不可否认性)
Network Programming
An Introduction to Database System
数字签名
Network Programming
摘要
摘要算法
An Introduction to Database System
数字签名
Network Programming
处理过程: (采用双重加密)
(1)产生数字摘要(使用SHA或MD5);
(2)发送方用自己的专用密钥对摘要再加密,形成数字签名
(3)将原文和加密的摘要、及公钥同时传给对方;
(4)接受方用发送方的公共密钥对摘要解密,同时对收到的文件用SHA或MD5编码加密产生同一摘要;
(5)将解密后的摘要和收到的文件在接受方重新加密产生的摘要相互对比,如果两者一致,则说明在传送过程中信息没有破坏和篡改。否则,则说明信息已经失去安全性和保密性。
An Introduction to Database System
数字签名---java实现
Network Programming
1、消息摘要算法( JDK 支持下列消息)
MD2 和 MD5,它们都是 128 位算法
SHA-1 是 160 位算法
SHA-256、SHA-383 和 SHA-512 提供更长的指纹,大小分别是 256 位、383 位和 512 位
MD5 和 SHA-1 是最常用的算法。
An Introduction to Database System
数字签名---java实现
Network Programming
2、消息摘要MD5和SHA的使用 包中 MessageDigest 类支持MD5和SHA操作消息摘要。
使用下列方法:
(“MD5”|"SHA-1" ):创建消息摘要。
.update(plaintext):用明文字符串计算消息摘要。
.digest():读取消息摘要。
An Introduction to Database System
数字签名---java实现
Network Programming
//首先新建一个MessageDigest对象,确定计算方法 MessageDigest alga=(“SHA-1”); //添加要进行计算摘要的信息 (()); //读出摘要
byte[] digesta=();
An Introduction to Database System
数字签名---java实现
Network Programming
3. 数字签名:技术有DSA和RSA算法,DSA比RSA产生密钥速度快,安全性差不多 。
(1)生成密钥对(公钥和私钥)
公钥可以对外公开,供其他人解密使用,而把私钥秘密保存用于加密。
生成密钥对可用java提供的类KeyPairGenerator,用其中的getInstance方法创建KeypairGenerator对象,在用initialize进行初始化,最后用generateKeyPair生成密钥对,密钥对生成后,就可以将其写入文件中。通过网络或其他方式公告用户,用户接收到数据文件和签名文件后,就可以使用公约来校验数据文件的数字签名,
An Introduction to Database System
数字签名---java实现
Network Programming
KeyPairGenerator kpg=KeyPairGen
套接字安全 来自淘豆网www.taodocs.com转载请标明出处.