来自 计算机网络 2019-11-03 01:19 的文章
当前位置: 六合联盟网 > 计算机网络 > 正文

在Tomcat中实现https安全验证,https配置与实现

有两种基本的加解密算法类型:
1)对称加密 :密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等;
2)非对称加密 :密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等。
https的通信过程:
https通信的优点:
1)客户端产生的密钥只有客户端和服务器端能得到;
2)加密的数据只有客户端和服务器端才能得到明文;
3)客户端到服务端的通信是安全的。
2.在项目中实现
1)tomcat的配置

SSL协议使用不对称加密技术实现会话双方之间信息的安全传递。可以实现信息传递的保密性、完整性,并且会话双方能鉴别对方身份。不同于常用的http协议,我们在与网站建立SSL安全连接时使用https协议,即采用的方式来访问。
当我们与一个网站建立https连接时,我们的浏览器与Web Server之间要经过一个握手的过程来完成身份鉴定与密钥交换,从而建立安全连接。具体过程如下:
1. 用户浏览器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送到服务器。
2. 服务器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送给浏览器,同时发给浏览器的还有服务器的证书。如果配置服务器的SSL需要验证用户身份,还要发出请求要求浏览器提供用户证书。
3. 客户端检查服务器证书,如果检查失败,提示不能建立SSL连接。如果成功,那么继续。

放开原先注释的一段代码: 

  1. 客户端浏览器为本次会话生成pre-master secret,并将其用服务器公钥加密后发送给服务器。
    5. 如果服务器要求鉴别客户身份,客户端还要再对另外一些数据签名后并将其与客户端证书一起发送给服务器。
    6. 如果服务器要求鉴别客户身份,则检查签署客户证书的CA是否可信。如果不在信任列表中,结束本次会话。如果检查通过,服务器用自己的私钥解密收到的pre-master secret,并用它通过某些算法生成本次会话的master secret。
  2. 客户端与服务器均使用此master secret生成本次会话的会话密钥(对称密钥)。在双方SSL握手结束后传递任何消息均使用此会话密钥。这样做的主要原因是对称加密比非对称加密的运算量低一个数量级以上,能够显著提高双方会话时的运算速度。
    8. 客户端通知服务器此后发送的消息都使用这个会话密钥进行加密。并通知服务器客户端已经完成本次SSL握手。
    9. 服务器通知客户端此后发送的消息都使用这个会话密钥进行加密。并通知客户端服务器已经完成本次SSL握手。
    10. 本次握手过程结束,会话已经建立。双方使用同一个会话密钥分别对发送以及接受的信息进行加、解密。

Xml代码

tomcat实现SSL配置
第一步 生成KeyStore

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"  

keytool -genkey -alias tomcat -keyalg RSA –keysize 1024 –validity 730 -keystore D:server.keystore

               maxThreads="150" scheme="https" secure="true"  

输入keystore密码: ************ [Unknown]: localhost [Unknown]: dept [Unknown]: Inc [Unknown]: bj [Unknown]: bj [Unknown]: CN
CN=localhost, OU= dept, O= Inc, L=bj, ST=bj, C=CN 正确吗?
[否]: Y
Ychangeit (回车)

               clientAuth="false" sslProtocol="TLS"  

注意: localhost,是网站的域名或者ip,根据实际情况填写,比如 192.168.0.85 否则会出现证书上的名称无效,或者与站点名称不匹配。

               keystoreFile="c:/tomcat.keystore" keystorePass="tomcat" />  

建议:将生成的 server.keystore文件,放到%TOMCAT_HOME%或其子目录中(如:%TOMCAT_HOME%/conf)

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

(其实放哪里都一样,只是放到%TOMCAT_HOME%里面会方便一些)

               maxThreads="150" scheme="https" secure="true"

第二步 修改server.xml

               clientAuth="false" sslProtocol="TLS"

修改%TOMCAT_HOME%/conf/server.xml

               keystoreFile="c:/tomcat.keystore" keystorePass="tomcat" />2)key的生成

去掉下面SSL HTTP那个注释,修改为如下:

 键入命令并依次填入相应信息,

<Connector port="8443" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"
SSLEnabled="true"
maxThreads="150"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="/conf/server.keystore"
keystorePass="changeit"
/>
keystoreFile 是server.keystore放置的位置,keystorePass是密码 (默认密码是changeit)

C代码

第三步

C:>keytool -genkey -alias tomcat -keyalg RSA -keysize 1024 -validity 365 -keystore tomcat.keystore  

重启Tomcat,访问地址

Enter keystore password:  tomcat  

(附录:)tomcat的配置文件SSL部分详细说明
配置文件server.xml,SSL部分: <!-- A "Connector" represents an endpoint by which requests are received
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL HTTP/1.1 Connector on port 8080
>
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
disableUploadTimeout="true"
acceptCount="100"
scheme="https"
secure="true"
clientAuth="false"
sslProtocol="TLS"
keystoreFile="D:/Tomcat/conf/tomcatKey.keystore"
keystorePass="changeit"
algorithm="SunX509"
/>
属性说明: port:这个port属性(默认值是8443)是 TCP/IP端口数码,Tomcat在其上监听安全连接。你可以把它更改成任何你愿意要的数值(如默认的https通信,数目是443)。不过,在许多操作系统中,要想在比1024小的端口数码上运行Tomcat,需要特殊的设置(它超出了这个文档资料的范围)。 redirectPort: 如果你在这里更改端口数值,你还必须更改在non-SSL连接器上的redirectPort 这个属性特定的值。这允许Tomcat自动地redirect那些试图访问有安全限制页面的用户,指明根据 Servlet 2.4 Specification要求,SSL是必需的 clientAuth: 如果你想要Tomcat要求所有的SSL客户在使用这个socket时出示用户认证书,把这个值设定为 true 。如果你想要Tomcat要求出示用户认证书,但是如果没有认证书也可以, 就把这个值设定为want 。 keystoreFile: 如果你产生的keystore文件不在Tomcat期望的默认地方(一个叫做.keystore 的文件在Tomcat运行的主目录),就添加这个属性。你可以指定一个绝对路径名称, 或者一个由$CATALINA_BASE环境变量而派生的相对路径名称。 keystorePass: 如果你使用一个不同的keystore(以及认证书)密码,而不是Tomcat期望的密码 (就是changeit),添加这个元素。 keystoreType: 如果使用一个PKCS12 keystore的话,就添加这个element。 有效的值是JKS 和 PKCS12 sslProtocol: 要在这个socket上被使用的加密/解密协定。如果你在使用Sun的JVM,我们不提倡更改 这个值。据报道,TLS协定的IBM's 1.4.1 实现与一些通用的浏览器不兼容。 如果是这样,就使用value SSL ciphers: 这个socket允许使用的由逗号分隔开的加密密码列单。默认的情况下,任何可用的密码都允许被使用。 algorithm: 可用的X509算法。默认是Sun的实现( SunX509 )。 对于IBM JVMs,你应该使用值 IbmX509。对于其他卖主,查阅JVM文档资料来 找正确的值。 truststoreFile: 用来验证用户认证书的TrustStore文件。 truststorePass: 访问TrustStore的密码。默认值就是keystorePass的值。 truststoreType: 如果你在使用与KeyStore不同格式的TrustStore,添加这个元素。 合法的值是JKS和PKCS12 keyAlias: 如果 keystore 里面有多个 key,你可以为用这个选项为加入的 key 起一个名字。 如果没有指定名字,使用时 keystore 内的第一个 key 将会被使用。

What is your first and last name?  

此前我一直对https/ssl如何保护数据不被窃 听有点疑问,因为服务器的证书是公开的,只能实行上行方向的数据加密,下行数据的加密我一直认为是浏览器会自动生成一个客户端的密钥对并将公钥发给服务器。仔细研究了https/ssl后发现其实并不像我想的那样,这里面既有非对称加密,又因为性能原因使用了对称加密。

  [Unknown]:  vincent  

基本的加解密算法类型也就这两种:

What is the name of your organizational unit?  

对称加密 :密钥只有一个,加密解密为同一个密码,且加解密速度快,典型的对称加密算法有DES、AES等;

  [Unknown]:  beijing  

非对称加密 :密钥成对出现(且根据公钥无法推知私钥,根据私钥也无法推知公钥),加密解密使用不同密钥(公钥加密需要私钥解密,私钥加密需要公钥解密),相对对称加密速度较慢,典型的非对称加密算法有RSA、DSA等。

What is the name of your organization?  

明白了这两种加密类型,具体的认证过程就容易理解了:

  [Unknown]:  peking  

客户端浏览器连接到https/ssl服务器,并发送ssl版本号等信息到服务器,协商此次连接使用的版本和参数。

What is the name of your City or Locality?  

服务器根据客户端发来的协商数据和自身支持的特性返回客户端协商参数,并且将服务器的证书发送给客户端,服务器的证书里包括用于非对称加密的服务器的公钥。

  [Unknown]:  shanghai  

客户端收到服务器的证书,可以用于鉴别服务器身份,防止假冒的服务器。但最重要的用处是将一段由客户端浏览器随机生成的数据pre-master secret用服务器证书里的公钥进行加密,发给服务器。注意,因为这段加密的数据只由用服务器的私钥才能解密,所以pre-master secret不会被人监听到。

What is the name of your State or Province?  

服务器收到加密后的pre-master secret数据后,用自己的私钥解密得到原始的pre-master secret,并使用一定算法得到对称加密的密钥master secret。

  [Unknown]:  shanghai  

客户端也根据同样的算法得到master secret。

What is the two-letter country code for this unit?  

至此,客户端和服务器之间的上/下行数据传送使用对称加/解密,初始密钥为master secret。常用的对称加密算法有RC4,AES等。

  [Unknown]:  sh  

经过这些步骤就可以保证https/ssl上下行数据不被监听并且加/解密速度也可以接受。

Is CN=vincent, OU=beijing, O=peking, L=shanghai, ST=shanghai, C=sh correct? (type "yes" or "no")  

  1. 生成证书

  [no]:  yes  

这里用到的文件,我们存放在D:/SSL/文件夹内,其中D:/SSL/server/内的文件是要交给服务器用的,D:/SSL/client/内的文件是要交给客户端用的。

  

1.1生成服务端证书

Enter key password for <tomcat>:  

开始-运行-CMD-在dos窗口执行下执行命令:

        (RETURN if same as keystore password):  

keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:/SSL/server/tomcat.keystore -dname "CN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN" -validity 3650 -storepass zljzlj -keypass zljzlj

C:>keytool -genkey -alias tomcat -keyalg RSA -keysize 1024 -validity 365 -keystore tomcat.keystore

说明:

Enter keystore password:  tomcat

keytool 是JDK提供的证书生成工具,所有参数的用法参见keytool –help

What is your first and last name?

-genkey 创建新证书

  [Unknown]:  vincent

-v 详细信息

What is the name of your organizational unit?

-alias tomcat 以”tomcat”作为该证书的别名。这里可以根据需要修改

  [Unknown]:  beijing

-keyalg RSA 指定算法

What is the name of your organization?

-keystore D:/SSL/server/tomcat.keystore 保存路径及文件名

  [Unknown]:  peking

-dname "CN=127.0.0.1,OU=zlj,O=zlj,L=Peking,ST=Peking,C=CN" 证书发行者身份,这里的CN要与发布后的访问域名一致。但由于我们是自己发行的证书,如果在浏览器访问,仍然会有警告提示。

What is the name of your City or Locality?

-validity 3650证书有效期,单位为天

  [Unknown]:  shanghai

-storepass zljzlj 证书的存取密码

What is the name of your State or Province?

-keypass zljzlj 证书的私钥

  [Unknown]:  shanghai

1.2 生成客户端证书

What is the two-letter country code for this unit?

执行命令:
keytool ‐genkey ‐v ‐alias client ‐keyalg RSA ‐storetype PKCS12 ‐keystore D:/SSL/client/client.p12 ‐dname "CN=client,OU=zlj,O=zlj,L=bj,ST=bj,C=CN" ‐validity 3650 ‐storepass client ‐keypass client

  [Unknown]:  sh

说明:
参数说明同上。这里的-dname 证书发行者身份可以和前面不同,到目前为止,这2个证书可以没有任何关系。下面要做的工作才是建立2者之间的信任关系。

Is CN=vincent, OU=beijing, O=peking, L=shanghai, ST=shanghai, C=sh correct? (type "yes" or "no")

1.3 导出客户端证书
执行命令:
keytool ‐export ‐alias client ‐keystore D:/SSL/client/client.p12 ‐storetype PKCS12 ‐storepass client ‐rfc ‐file D:/SSL/client/client.cer

  [no]:  yes

说明:

 

-export 执行导出

Enter key password for <tomcat>:

-file 导出文件的文件路径

        (RETURN if same as keystore password):

1.4 把客户端证书加入服务端证书信任列表

 

执行命令:
keytool ‐import ‐alias client ‐v ‐file D:/SSL/client/client.cer ‐keystore D:/SSL/server/tomcat.keystore ‐storepass zljzl

   3)使用中发现的问题

说明:

4)此是单向认证,关于双向认证的知识还未补全。

参数说明同前。这里提供的密码是服务端证书的存取密码。

TOMCAT @ SSL 写道

1.5 导出服务端证书

Tomcat6.0配置SSL

执行命令:
keytool -export -alias tomcat -keystore D:/SSL/server/tomcat.keystore -storepass zljzlj -rfc -file D:/SSL/server/tomcat.cer

一、为了节约时间,我这里就只根据我的配置过程进行描述,读者根据各自情况自己分析。

说明:
把服务端证书导出。这里提供的密码也是服务端证书的密码。

1、在命令行中进入%CATALINA_HOME%/bin目录下执行以下命令:

1.6 生成客户端信任列表

(1)%CATALINA_HOME%/bin> keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 3600

执行命令:
keytool -import -file D:/SSL/server/tomcat.cer -storepass zljzlj -keystore D:/SSL/client/client.truststore -alias tomcat –noprompt

此时会在%TOMCAT_HOME%/bin下生成server.keystore 文件。

说明:
让客户端信任服务端证书

注:参数 -validity 指证书的有效期(天),缺省有效期很短,只有90天。

  1. 配置服务端为只允许HTTPS连接

(2)%CATALINA_HOME%/bin> keytool -export -trustcacerts -alias tomcat -file server.cer -keystore server.keystore -storepass changeit

2.1 配置Tomcat 目录下的/conf/server.xml

这一步用于导出证书,此时会在%TOMCAT_HOME%/bin下生成server.cer 文件。

Xml代码
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true" clientAuth="true"
sslProtocol="TLS" keystoreFile="D:/SSL/server/tomcat.keystore"
keystorePass="zljzlj" truststoreFile="D:/SSL/server/tomcat.keystore"
truststorePass="zljzlj" />

(3)%CATALINA_HOME%/bin> keytool -import -trustcacerts -alias tomcat -file server.cer -keystore %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true" clientAuth="true"
sslProtocol="TLS" keystoreFile="D:/SSL/server/tomcat.keystore"
keystorePass="zljzlj" truststoreFile="D:/SSL/server/tomcat.keystore"
truststorePass="zljzlj" />
说明:
在server.xml里面这段内容本来是被注释掉的,如果想使用https的默认端口443,请修改这里的port参数。其中的clientAuth="true" 指定了双向证书认证。

这一步是导入到证书信任库,大家可以观察%JAVA_HOME%/jre/lib/security/cacerts 这个文件,执行完此命令后,文件变大。

2.2 配置服务端项目web.xml
在<welcome-file-list>之后增加:
Xml代码
<security-constraint>
<web-resource-collection>
<web-resource-name>services</web-resource-name>
<url-pattern>/services/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>

附:keytool其它命令(列出信任证书库中所有已有证书,删除库中某个证书):

<security-constraint>
<web-resource-collection>
<web-resource-name>services</web-resource-name>
<url-pattern>/services/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
说明:
这里限制了WEB service服务地址的访问必须为https连接。<url-pattern>要根据你的web service服务地址配置。

keytool -list -v -keystore D:/sdks/jdk1.5.0_11/jre/lib/security/cacerts

  1. 修改客户端代码
    在执行访问之前,增加:
    Java代码
    System.setProperty("javax.net.ssl.trustStore", "D:/SSL/client/client.truststore");
    System.setProperty("javax.net.ssl.trustStorePassword","zljzlj");
    System.setProperty("javax.net.ssl.keyStoreType","PKCS12") ;
    System.setProperty("javax.net.ssl.keyStore","D:/SSL/client/client.p12") ;
    System.setProperty("javax.net.ssl.keyStorePassword","client") ;

keytool -delete -trustcacerts -alias tomcat -keystore D:/sdks/jdk1.5.0_11/jre/lib/security/cacerts -storepass changeit

String endPoint="";
...

2、修改%TOMCAT_HOME%confserver.xml

System.setProperty("javax.net.ssl.trustStore", "D:/SSL/client/client.truststore");
System.setProperty("javax.net.ssl.trustStorePassword","zljzlj");
System.setProperty("javax.net.ssl.keyStoreType","PKCS12") ;
System.setProperty("javax.net.ssl.keyStore","D:/SSL/client/client.p12") ;
System.setProperty("javax.net.ssl.keyStorePassword","client") ;

找到这段代码: Java代码

String endPoint="";
... 通过设置参数来指定客户端连接时所使用的客户端证书,这里还可以采用修改JVM启动参数的的方式来执行,但出于不影响其他功能的考虑,这里采用System.setProperty的方式来设置这些参数,在使用结束后,可以还原这些参数配置。

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

做为客户端的开发者,可以把拿到的证书文件后,只执行步骤3。

maxThreads="150" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS" />

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

maxThreads="150" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS" />

这段代码本来是注释掉的,把注释去掉,并且加上两个属性之后,如下:

Java代码

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

maxThreads="150" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS"

keystoreFile="D:tomcat6.0binserver.keystore"

keystorePass="changeit" />

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

maxThreads="150" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS"

keystoreFile="D:tomcat6.0binserver.keystore"

keystorePass="changeit" />

3、启动tomcat,访问

SSL认证详解

单向认证 SSL 协议的具体过程

①客户端的浏览器向服务器传送客户端 SSL 协议的版本号,加密算法的种类,产生的随机数,以及其他服务器和客户端之间通讯所需要的各种信息。

②服务器向客户端传送 SSL 协议的版本号,加密算法的种类,随机数以及其他相关信息,同时服务器还将向客户端传送自己的证书。

③客户利用服务器传过来的信息验证服务器的合法性,服务器的合法性包括:证书是否过期,发行服务器证书的 CA 是否可靠,发行者证书的公钥能否正确解开服务器证书的“发行者的数字签名”,服务器证书上的域名是否和服务器的实际域名相匹配。如果合法性验证没有通过,通讯将断开;如果合法性验证通过,将继续进行第四步。

④用户端随机产生一个用于后面通讯的“对称密码”,然后用服务器的公钥(服务器的公钥从步骤②中的服务器的证书中获得)对其加密,然后将加密后的“预主密码”传给服务器。

⑤如果服务器要求客户的身份认证(在握手过程中为可选),用户可以建立一个随机数然后对其进行数据签名,将这个含有签名的随机数和客户自己的证书以及加密过的“预主密码”一起传给服务器。

⑥如果服务器要求客户的身份认证,服务器必须检验客户证书和签名随机数的合法性,具体的合法性验证过程包括:客户的证书使用日期是否有效,为客户提供证书的CA 是否可靠,发行CA 的公钥能否正确解开客户证书的发行 CA 的数字签名,检查客户的证书是否在证书废止列表(CRL)中。检验如果没有通过,通讯立刻中断;如果验证通过,服务器将用自己的私钥解开加密的“预主密码 ”,然后执行一系列步骤来产生主通讯密码(客户端也将通过同样的方法产生相同的主通讯密码)。

⑦服务器和客户端用相同的主密码即“通话密码”,一个对称密钥用于 SSL 协议的安全数据通讯的加解密通讯。同时在 SSL 通讯过程中还要完成数据通讯的完整性,防止数据通讯中的任何变化。

⑧客户端向服务器端发出信息,指明后面的数据通讯将使用的步骤⑦中的主密码为对称密钥,同时通知服务器客户端的握手过程结束。

⑨服务器向客户端发出信息,指明后面的数据通讯将使用的步骤⑦中的主密码为对称密钥,同时通知客户端服务器端的握手过程结束。

⑩SSL 的握手部分结束,SSL 安全通道的数据通讯开始,客户和服务器开始使用相同的对称密钥进行数据通讯,同时进行通讯完整性的检验。

双向认证 SSL 协议的具体过程

① 浏览器发送一个连接请求给安全服务器。

② 服务器将自己的证书,以及同证书相关的信息发送给客户浏览器。

③ 客户浏览器检查服务器送过来的证书是否是由自己信赖的 CA 中心所签发的。如果是,就继续执行协议;如果不是,客户浏览器就给客户一个警告消息:警告客户这个证书不是可以信赖的,询问客户是否需要继续。

④ 接着客户浏览器比较证书里的消息,例如域名和公钥,与服务器刚刚发送的相关消息是否一致,如果是一致的,客户浏览器认可这个服务器的合法身份。

⑤ 服务器要求客户发送客户自己的证书。收到后,服务器验证客户的证书,如果没有通过验证,拒绝连接;如果通过验证,服务器获得用户的公钥。

⑥ 客户浏览器告诉服务器自己所能够支持的通讯对称密码方案。

⑦ 服务器从客户发送过来的密码方案中,选择一种加密程度最高的密码方案,用客户的公钥加过密后通知浏览器。

⑧ 浏览器针对这个密码方案,选择一个通话密钥,接着用服务器的公钥加过密后发送给服务器。

⑨ 服务器接收到浏览器送过来的消息,用自己的私钥解密,获得通话密钥。

⑩ 服务器、浏览器接下来的通讯都是用对称密码方案,对称密钥是加过密的。

上面所述的是双向认证 SSL 协议的具体通讯过程,这种情况要求服务器和用户双方都有证书。单向认证 SSL 协议不需要客户拥有 CA 证书,具体的过程相对于上面的步骤,只需将服务器端验证客户证书的过程去掉,以及在协商对称密码方案,对称通话密钥时,服务器发送给客户的是没有加过密的(这并不影响 SSL 过程的安全性)密码方案。这样,双方具体的通讯内容,就是加过密的数据,如果有第三方攻击,获得的只是加密的数据,第三方要获得有用的信息,就需要对加密的数据进行解密,这时候的安全就依赖于密码方案的安全。而幸运的是,目前所用的密码方案,只要通讯密钥长度足够的长,就足够的安全。这也是我们强调要求使用 128 位加密通讯的原因。

图片 1

本文由六合联盟网发布于计算机网络,转载请注明出处:在Tomcat中实现https安全验证,https配置与实现

关键词: