代码之家  ›  专栏  ›  技术社区  ›  chobo2

有关SSL的问题

  •  2
  • chobo2  · 技术社区  · 15 年前

    我有几个关于SSL证书的问题。

    我以前从未使用过它们,但我目前的项目要求我这样做。

    问题1。

    您应该在哪里使用SSL?就像我知道登录之类的地方一样,重置密码是放置密码的明确地方。一旦他们登录了怎么办?即使帐户中的数据不被视为敏感数据,所有请求都应该通过SSL吗?这会减慢重要部分的SSL速度吗?还是没什么区别?(有点好吧,你有了ssl,就可以让所有东西都通过它,不管是什么)。

    问题2。

    我知道在SMTP中,您也可以启用SSL。我猜如果你发送给他们说一个休息密码,这将是非常好的使用。

    如果启用此设置,如何判断SSL是否工作?比如我怎么知道它是否真的启用了它?如果邮件服务器没有启用SSL,并且您已经启用了该布尔值,会发生什么情况?那么它会不会只是作为非SSL发送?

    4 回复  |  直到 15 年前
        1
  •  1
  •   Mark Wilkins    15 年前

    对于SSL连接,最昂贵的部分(相对而言)之一就是建立连接。例如,根据其设置方式,它可能会创建一个短暂的(即时创建的)RSA密钥来建立会话密钥。如果必须不断地创造它们中的许多,这可能会有些昂贵。但是,如果新连接的创建不太常见(并且它们使用的时间更长),那么成本可能不相关。

    一旦建立了连接,尽管SSL的附加成本取决于加密类型,但并不是很高。例如,使用256位AES进行加密将比使用128位RC4进行加密花费更多的时间。我最近在同一台PC机上进行了一些通信测试,在这台PC机上,客户机和服务器都在来回回送数据。换句话说,通信几乎构成了整个测试的成本。使用128位RC4增加了约30%的成本(以时间衡量),使用256位AES增加了近50%的成本。但请记住,这是在环回适配器上的一台PC上进行的。如果数据通过局域网或广域网传输,则相对成本显著降低。因此,如果您已经建立了一个SSL连接,我将继续使用它。

    至于验证是否实际使用了SSL?可能有“官方”的方式来验证它,使用网络嗅探器是穷人的版本。我运行wireshark并嗅探网络流量,比较了非SSL连接和SSL连接,并查看了原始数据。当SSL“看起来”加密时,我可以很容易地看到非SSL版本中的原始文本数据。当然,这毫无意义。但它确实表明数据正在发生“某些事情”。换句话说,如果您认为您使用的是SSL,但可以在网络嗅探中识别原始文本,那么有些东西就不能如您所期望的那样工作。不过,反过来说是不对的。仅仅因为你不能阅读它,并不意味着它是加密的。

        2
  •  1
  •   Cylon Cat    15 年前

    对任何敏感数据使用SSL,不仅是密码,还包括信用卡号码、财务信息等。没有理由将其用于其他页面。

    某些环境(如ASP.NET)允许使用SSL加密cookie。对于任何身份验证或会话ID相关的cookie都可以这样做,因为这些cookie可以用于欺骗登录或重播会话。您可以在web.config中打开它们;它们在默认情况下是关闭的。

    ASP.NET还具有一个选项,该选项要求所有经过身份验证的页都使用SSL。非SSL请求被抛出。小心这一个,因为它可能会导致会话出现挂起。我建议你不要启用这样的选项,除非你真的需要它们。

    抱歉,无法帮助解决SMTP问题。

        3
  •  1
  •   jle    15 年前

    首先,SSL用于加密客户机和服务器之间的通信。它通过使用用于加密的公钥来实现这一点。在我看来,将其用作任何具有个人身份信息或敏感信息的内容是一种良好的做法。 另外,值得指出的是,有两种类型的SSL身份验证:

    • 有一种方法——只有一个服务器证书——这是最常见的
    • 双向-其中有一个服务器证书和一个客户机证书-客户机首先验证服务器的标识,然后服务器标识客户机的标识。- example is DOD CAC

    对于这两者,重要的是要有最新的,签名,由信誉良好的CA证书。这将验证您的网站的身份。

    对于问题2,是的,如果可以的话,您应该通过SMTP使用SSL。如果您的电子邮件是通过不受信任的路由器发送的,那么如果不加密发送,它们就可以被窃听。我不确定“布尔值启用”问题。不过,我不认为设置SSL就像检查一个框一样简单。

        4
  •  1
  •   mfanto    15 年前

    有几个人已经回答了你的问题1。

    不过,对于问题2,我不会将通过SSL的SMTP描述为保护消息。可能有很多点可以让消息暴露出来。如果您想保护消息本身,您需要S/MIME或类似的东西。我想说,通过SSL的smtp对于保护您的smtp凭据更有用,这样某人就无法获取您的密码。