要通过SslStream实现TLS加密,我正在使用自签名证书。 对于从较老的Win2003机器连接的客户端,我遇到了奇怪的“不常见算法”错误。自签名证书:私钥问题
阅读this thread后,我发现了以下内容:
这些错误消失,如果我改变我的证书生成过程(更具体:私用密钥生成部分):
老:
var privateKey = new CX509PrivateKey();
privateKey.ProviderName = "Microsoft Base Cryptographic Provider v1.0";
privateKey.MachineContext = true;
privateKey.Length = 2048;
privateKey.KeySpec = X509KeySpec.XCN_AT_SIGNATURE
privateKey.ExportPolicy = X509PrivateKeyExportFlags.XCN_NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG;
privateKey.Create();
新产品:
var privateKey = new CX509PrivateKey();
privateKey.ProviderName = "Microsoft Base Cryptographic Provider v1.0";
privateKey.MachineContext = true;
privateKey.Length = 1024;
privateKey.KeySpec = X509KeySpec.XCN_AT_KEYEXCHANGE;
privateKey.ExportPolicy = X509PrivateKeyExportFlags.XCN_NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG;
privateKey.Create();
我的问题(可能听起来很愚蠢,对不起,我是相当新的TLS &共):
- 哪些算法中继与此keySpec值私钥?我可以在哪里看到SslStream采取了哪种算法?
- 为什么我必须将密钥长度减少到1024?上述任何值在调用Create()时都会导致发生异常。
- 我是否会因这些变化而承担安全风险?
- 指的固定Win2K03机的任何建议,也欢迎...