Security SSL实际上是如何工作的?
每当我看到有人谈论它时,听起来就像是简单地“打开”SSL,然后所有对在线服务器的请求/响应都会神奇地安全Security SSL实际上是如何工作的?,security,ssl,Security,Ssl,每当我看到有人谈论它时,听起来就像是简单地“打开”SSL,然后所有对在线服务器的请求/响应都会神奇地安全 是这样吗?SSL仅仅是一种代码吗?我可以编写两个应用程序,让它们通过SSL进行通信吗?或者你必须以某种方式在外部注册/认证它们吗?是和否。首先,在使用SSL部署站点之前,你应该对证书进行自我签名并在内部使用SSL测试站点。要使公共站点在SSL下安全,您需要从任意数量的证书提供商之一购买证书。然后,您将拥有一个由可信的第三方签署的证书,该证书与您的域名绑定,这样用户的浏览器就不会抱怨证书无效等
是这样吗?SSL仅仅是一种代码吗?我可以编写两个应用程序,让它们通过SSL进行通信吗?或者你必须以某种方式在外部注册/认证它们吗?是和否。首先,在使用SSL部署站点之前,你应该对证书进行自我签名并在内部使用SSL测试站点。要使公共站点在SSL下安全,您需要从任意数量的证书提供商之一购买证书。然后,您将拥有一个由可信的第三方签署的证书,该证书与您的域名绑定,这样用户的浏览器就不会抱怨证书无效等等。打开SSL几乎只是打开一个开关,否则。在大多数情况下,您需要购买并在外部注册证书。您需要由证书颁发机构(CA)签署服务器证书,他们将为此向您收费。客户端需要信任该CA并拥有相关CA公钥的副本。然后,客户端可以检查您是否是您声称的身份(包括域名(来自DNS)和https的显示名称)。了解如何为Apache创建自签名证书
如果您想知道SSL在服务器或客户端上是如何工作的,那么我建议您在谷歌上搜索一下。正如您所怀疑的,这是一个极其复杂的过程,客户机和服务器之间有大量通信,有许多非常特殊的数学运算,还有大量的处理。此外,还涉及许多理论、若干协议以及许多不同的算法和加密标准。将http://更改为https://对用户来说是如此简单,但却为双方带来了如此多的工作,而且如此安全,这是非常令人难以置信的。要真正理解它,你需要参加一个安全课程(多个课程才能完全理解它),因为整个加密历史都是为了让你登录到Gmail安全 SSL是通过TCP连接(或其他可靠方案)进行加密通信的协议。加密使用使用X.509证书的公钥加密。SSL处理隐私和信任。这些都是相关的:如果你不信任服务器,你就不会相信服务器没有将其私钥分发给北美的每个人 因此,客户机必须信任服务器的证书。对于公共站点,这是通过证书颁发机构的层次结构来安排的,浏览器和类似JRE的套接字实现自动信任根颁发机构
任何人都可以为服务器生成自签名证书,但必须手动配置客户端以信任它。在端口443而不是普通端口80上请求安全网页。SSL协议(本身非常复杂)负责确保通信安全,并使用服务器和浏览器上的证书信息来验证服务器的身份 生成SSL证书很容易。生成一个基于嵌入99%web浏览器中的信息的浏览器需要花费金钱。但技术方面并没有什么不同 您知道,有些组织(Verisign、Globalsign等)多年来一直将其证书颁发机构信息包含在浏览器中。这样,当您访问一个拥有他们制作(签名)的证书的站点时,您的浏览器会显示: “好吧,如果Verisign信任XYZ.com,我信任Verisign,那么我信任XYZ.com” 过程很简单:
请联系有能力的SSL供应商,如GlobalSign。在Web服务器上创建密钥和证书请求。使用他们(和你的信用卡)购买证书。在服务器上安装它。将web浏览器指向HTTPS(端口443)。其余的都为您完成。SSL实际上做了两件事:
只有#2才需要获得官方证书。如果只想加密通信而不建立信任关系,则可以使用自签名证书,也可以使用不需要证书的算法(即)。SSL本身并不是确保一切安全的灵丹妙药。安全没有这样的东西 然而,SSL是一个已经设计好的、随时可用的系统,用于解决一个常见问题:通过网络连接的安全流通信 使用SSL保护应用程序需要做两件事:
- 修改应用程序的代码以使用SSL
- 确定证书信任模型(并分别部署和配置应用程序)
正如其他答案所解释的,TLS只能保护中间人。客户端和正确配置的TLS服务器之间的通信不能被拦截或修改,客户端可以通过验证X.509证书来可靠地确认服务器的身份。这可以防止攻击者模拟您的TLS服务器。我将不顾一切,并试图浓缩一个庞大的主题。
SSL试图解决两个问题:
1) 身份验证和信任,即客户端可以信任服务器,反之亦然
2) 无窃听通信 1) 由中间人(即受信任的第三方)处理-这些被称为“根证书颁发机构”(或根证书颁发机构)