因此,我已经阅读和有一个相当好的理解如何与椭圆曲线密码密码工作的密码。我也认为我了解签名是如何与椭圆曲线数字签名算法(ECDSA)工作的。我的web服务器上的证书和私钥都是2048位RSA密钥。我只能做RSA签名,因为这就是我的密钥?如果我能做像ECDSA这样的事情,那么信任是如何从我的RSA密钥链接到用于在ECDSA下签名的ECC密钥的呢?
发布于 2014-07-27 16:42:47
椭圆曲线(EC)密码体制与传统RSA型密码体制有着明显的不同.
底线前沿(BLUF):如果您提供的信息,您的服务器只能处理RSA密钥交换。
作为引物,这两种协议都是非对称密码协议。它们被用来安全地传输对称密钥,双方都用来加密实际的数据/消息。这背后的原因是,与对称密码协议相比,非对称密码协议在计算上非常密集(一般情况下)。因此,加密大型数据集或流消息将是资源密集型的。相反,使用对称密钥。
回到你的问题上。您的数字签名已经创建并签名,说明您的公钥是一个2048位RSA密钥。这必然意味着您的私钥也是RSA密钥-您不能使用EC协议与该数字签名或您拥有的密钥。所以你的第一个问题的答案是:是的,你只能在你的web服务器上进行2048位RSA密钥交换。
要创建/生成EC密钥,您必须从上游提供商获得一个(或多个)密钥,或者通过第三方工具(如openssl )自己生成密钥。
另外,读者可能想知道为什么您会使用EC而不是RSA。那是因为表演。理论上(至少到目前为止,在安全社区已经证明了这一点),EC密钥占用的空间要少得多,并且在特定系统上运行得更快(硬件实现可能与此声明相矛盾,但仅在同一系统上的软件实现中,EC应该比等效的强RSA更快)。
例如,根据EC上的openssl页面(http://wiki.openssl.org/index.php/Elliptic_曲线_密码学),在RSA中加密256位对称密钥需要一个15360位的RSA密钥,但只需要一个512位的EC密钥。
所以您可以看到,如果您运行的HTTPS服务器有很多客户端,您可能需要EC密钥,因为您可以更快地保护对称密钥,并将您的整体处理大大减少(包括在密钥交换中通过有线发送的数据量)。
关于你的第二个问题。如果您要拥有EC密钥,则它们可能位于不同的证书中,因为它们将在不同的时间颁发/生成。信任将来自于您当前信任的任何来源--无论是内部根证书颁发机构还是外部证书颁发机构,如verisign。
理论上,如果您的证书被授予了适当的权限,它可以用于对下游证书进行签名(也就是说,您的证书是一个中间证书颁发机构,然后可以对组织中的其他人的请求进行签名)。如果是这样的话(不太可能在web服务器上使用您的证书),您可以创建EC密钥和EC证书签名请求,并颁发由您的2048位RSA签名授权的证书,以允许您使用例如384-bit EC密钥。
我希望这能帮上忙。我已经阅读了我发布的关于这个的openssl链接。
https://security.stackexchange.com/questions/62534
复制相似问题