java中如何保证公钥不被篡改?具体怎么做?

BSO 2020-11-26 15:38:29 java常见问答 6308

关于java中的很多知识,其实都是与我们的日常工作与生活息息相关的,涉及到很多方面。关于网络安全的一些点也是非常的重要的。今天就来和大家说一下java中如何保证公钥不被篡改,一起来看一下具体的做法吧。

具体操作如下所示:

将公钥放在数字证书中。只要证书是可信的,公钥就是可信的。

然而公钥加密计算量太大,那么要如何减少耗用的时间?

每一次对话(session),客户端和服务器端都生成一个"对话密钥"(session key),用它来加密信息。由于"对话密钥"是对称加密,所以运算速度非常快,而服务器公钥只用于加密"对话密钥"本身,这样就减少了加密运算的消耗时间。

1. 客户端向服务器端索要并验证公钥。

2. 双方协商生成"对话密钥"。

3.双方采用"对话密钥"进行加密通信。上面过程的前两步,又称为"握手阶段"(handshake)。

另外再补充一下相关知识:

SSL工作过程,A:客户端,B:服务器端

1.协商加密算法:A向B发送SSL版本号和可选加密算法,B选择自己支持的算法并告知A

2.服务器鉴别:B向A发送包含公钥的数字证书,A使用CA公开发布的公钥对证书进行验证

3.会话密钥计算:A产生一个随机秘密数,用B的公钥进行加密后发送给B,B根据协商的算法产生共享的对称会话密钥并发送给A

4.安全数据传输:双方用会话密钥加密和解密它们之间传送的数据并验证其完整性

还有就是,TCP对应的应用层协议

FTP:定义了文件传输协议,使用21端口.

Telnet:它是一种用于远程登陆的端口,23端口

SMTP:定义了简单邮件传送协议,服务器开放的是25号端口。

POP3:它是和SMTP对应,POP3用于接收邮件。

HTTP、UDP对应的应用层协议

DNS:用于域名解析服务,用的是53号端口

SNMP:简单网络管理协议,使用161号端口

TFTP(Trival File Transfer Protocal):简单文件传输协议,69

以上就是关于java中如何保证公钥不被篡改的主要内容了,还为大家衍生了一些相关的知识,具体的内容还是很好理解的。如果你想要了解更多java常见问题,敬请关注奇Q工具网。

推荐阅读:

java中TCP如何可靠传输?常见的状态码有哪些?

java中TCP与UDP区别是什么?GET与POST有何区别?

udp协议和tcp协议是什么?要如何实现?