本篇将介绍Authentication常用的协议,包括:ECDSA、RSA、DSS和PSK
- Authentication(真实性)
- (以上协议)验证Server的身份(truly who they say they are)
- 验证Server是否拥有(证书中的公钥)匹配的私钥
- PSK - Pre-Shared-Key
- Client和Server创建一个带外密钥(a key out-of-band,可理解为on the wire,在线)
- 然后相互证明他们有完全相同的带内(off the wire,离线)密钥
- 少见
- 可能会在IOT设备中出现;
- 不需要非对称加密或者证书
- ECDSA - Elliptic Curve Digital Signature Algorithm,椭圆曲线单数字签名算法
- RSA - Rivest Shamir Adelman
- DSS - Digital Signature Standard,数字签名标准
- 指导使用RSA的标准
- DSS == DSA
- RSA vs DSS(DSA)
- 在相当的密钥大小下,每个密钥都同样安全
- 例如,RSA - 1024和DSA - 1024同样安全
- RSA - 2048比DSA - 1024更加安全
- RSA - 1024安全性低于DSA - 2048
- 在过去,DSA密钥被限制在1024位
- 当行业转向2048位,DSA的支持被拒绝
- 许多实施仍然将 DSA 密钥限制为1024位
- 相比之下,RSA到处支持,而且是任何密钥大小
- DSA数学需要唯一的随机数
- 每个信息必须有唯一的DSA,不然DSA会遭遇灾难性失败
- 如果随机数被再次使用,私钥就能够被提取出来
- RFC 6979 - 根据信息确定性地生成随机数
- 结论:RSA和DSA之间,选择RSA
- 在相当的密钥大小下,每个密钥都同样安全
- ECDSA vs RSA
- RSA相比ECDSA,被更多设备支持(ECDSA是较新的协议)
- 在相当的密钥大小下,每个密钥都同样安全
- RSA - 1024 == ECDSA - 160
- RSA - 2048 == ECDSA - 224
- RSA - 3027 == ECDSA - 256
- ECDSA需求的密钥大小更小,并且能更有效地扩展
- 在相同的安全性下,需要的资源更少
- ECDSA证书大小更小
- 结论:RSA和ECDSA之间,选择ECDSA
- 但,我们实际上不需要选,两者都可使用
- 在Server发送证书前,密码套件可被选择(要看Client支不支持)
- 如果Client只支持RSA,那么出示RSA证书
- 如果Client既支持RSA又支持ECDSA,那么初始ECDSA证书
参考文献
1、网站:Practical Networking.net:Practical TLS