SSL客户端authentication

我目前有服务器SSL的地方,以便客户端有一个安全的连接到我的networking服务器。

我期待实现客户端SSL证书,除了定期的用户名/密码login,但我很难理解究竟需要发生什么。

  1. 每个用户应该收到自己的证书吗?
    1. 这应该创build用户帐户时生成?
    2. 用户是否应该为他们使用的每个设备收到单独的证书? (即手机,平板电脑,电脑)
    3. 证书DN中的字段应该是什么?
  2. 对于每个用户证书,是否应该有对应的私钥或所有证书的单个密钥?
  3. 这些用户证书是如何分发的? 有没有一种自动的方式来安装它们?
    1. 他们是否应该存储在服务器上下载?

每个用户应该收到自己的证书吗?

一般来说,是的。
您可以为每个人使用一个证书(并确定实际用户是基于用户名/密码的),但是如果证书受到威胁,则必须向所有人颁发新证书 – 这对您或您的用户不方便。

  • 每个用户创build帐户时都应该生成证书。
  • 证书可以是每个用户或每个设备
    这是一个实施select。 做你的环境有意义的事情:
    • 如果您正在validation设备是否经过授权,则每个设备的证书都是有意义的。
    • 如果您正在validation特定用户(U / P)是否是他们所说的那样,那么每个用户都会authentication工作。

是否应该有一个全局私钥或每个证书的密钥?

每个证书肯定有一个密钥。

所有用户证书都应该是公用/专用对,对用户(或设备)是唯一的。
他们都应该由一个受信任的机构(贵公司的CA证书) 签名


用户证书如何分发?

任何你想要的方式(受各种平台和软件的限制)。
我build议不要将它们发布到世界上任何人的网页上进行复制,但是如何获得证书到设备是您可以实现的实现select。

如果将证书对存储在服务器上,则应确保服务器是安全的 – 您不希望有人拿到您的所有(有效)证书。
重新键入所有的用户将是一个烦恼(很难解释)。


肯定地读了IT安全问题dawud指出你涵盖生成证书的一些机械方面(同样重要的是CRL)。
IT安全还有关于证书authentication的其他问题/答案,对于您需要实施的理论和原则来说,这对于您来说是一个很好的资源,因为它确实安全的。