我是靠谱客的博主 心灵美芒果,最近开发中收集的这篇文章主要介绍Java网络编程——网络通信安全与加密    网络通信安全与加密,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

    网络通信安全与加密

       在网络数据传输时,传输双方的数据可能会被第三方非法监听获取。因此,在真实网络环境中,通常会使用一些加密技术对网络数据进行保护。加密技术一般使用SSL加密和TLS加密。这两种加密是基于TCP/IP协议的,IP协议在网络层,TCP协议在传输层,SSL和TLS在安全套接字层,应用层是一些HTTP、Telnet、FTP之类的面向用户的协议。

       SSL除了对数据进行加密外,还采用了身份认证机制,也就是安全证书认证。安全证书可以从权威机构购买,也可以自己创建自我签名证书。不过,自己创建的自我签名证书只有自己通过认证,不具有权威性。
       SSL通过握手来确认如何对网络数据进行加密和解密。SSL通过公钥/私钥来加解密数据,公钥加密的数据只能用私钥来解密,私钥加密的数据也只能用公钥来解密。首先A方会把公钥发给B方,B方把数据用公钥加密,再发给A方, 这时,A方就可以用密钥来解密了,在数据传输过程中,就算数据被意外截取了,不法分子也无法得知加密数据的原数据,因为只有A方的私钥可以解密,这样就保证了数据在网络传输过程中的安全。SSL握手主要是为了确认加密参数、协商使用的加密套件,确定使用的算法等信息。
     首先客户端会将自己的SSL版本号、加密参数与会话相关数据等发送给服务器,服务器也把一些相关参数发送给客户端,如果服务器还需要其他安全认证的话,服务器还会向客户端提出安全认证请求。客户端验证服务器的证书,如果验证失败,则SSL握手失败,如果成功,则生成 本次会话的预备主密码,并用服务器提供的公钥进行加密发送给服务器。服务器通过某些算法用预备主密码生成本次本次会话的主密码,客户端与服务器均使用此主密码生成本次会话的会话密钥,这个会话密钥是对称的,客户端通知服务器此后发送消息都使用这个会话密钥进程加密 ,告知服务器SSL握手未完成,服务器也通知客户端此后发送消息都使用这个会话密钥进行加密,并告知客户端SSL握手完成。

最后

以上就是心灵美芒果为你收集整理的Java网络编程——网络通信安全与加密    网络通信安全与加密的全部内容,希望文章能够帮你解决Java网络编程——网络通信安全与加密    网络通信安全与加密所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部