当前位置:首页 > Windows程序 > 正文

C#编程总结(十一)数字证书

2021-03-26 Windows程序

标签:

C#编程总结(十一)数字证书

之前已经通过文章介绍了数字证书的基础知识,包括加密和数字签名。

具体可见:

1、C#编程总结(七)数据加密——附源码

2、C#编程总结(八)数字签名

这里来讲述数字证书的概念、作用、工作原理以及具体应用。希望能够给大家一个清晰的认识。

一、概念

数字证书就是互联网通讯中标志通讯各方身份信息的一串数字,提供了一种在Internet上验证通信实体身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证。它是由一个由权威机构-----CA机构,又称为证书授权(Certificate Authority)中心发行的,人们可以在网上用它来识别对方的身份。数字证书是一种数字标识,提供用户在互联网上的身份认证,它是一个经证书授权中心数字签名的包含公开密钥拥有者信息和公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。

二、来自网络的威胁

随着互联网的逐步推广,网上购物、网银、电子商务、电子政务等也日益深入,来自网络的威胁越来越大,网络安全重要性愈显得的重要。

1、窃听
信用卡号码被窃取,个人安全信息被窃取

网络传输是在公共信道上进行的,特别是HTTP传输大多以明文传输,黑客进行窃听,获取敏感信息。

2、伪装
假冒真正的服务器,假冒真正的用户

这种在日常生活可能经常会遇到,比如,给定一个相似的域名或IP,通过这个访问的时候直接将信息提交给假冒的服务器,这时,我们的用户名密码可能被窃取,

如工商银行的网站:,假冒的服务器地址:,而且页面内容风格极为相似,用户登陆后,信用卡号密码就会被盗取。这种手段不法分子很容易得手。记得之前也曾经有人冒充QQ网站,通过弹出带有链接的小广告,跳转到与QQ登陆画面类似的页面,来盗取QQ密码。

3、篡改
信息在提交到服务器之前被非法修改,最后将自己的钱款转入了非法者账户。

黑客可以盗取用户的Session、Cache信息,来修改提交到服务器的请求信息。


4、抵赖
除了黑客攻击之外,还有一个问题,用户可以否定自己曾经做过的事情。在日常生活中也会遇到同样的问题,比如领导明明安排的一个任务,但你可能忘记了就说不知道,没人通知你,这就叫抵赖,解决办法:领导可以调出之前的通话记录或者邮件,来反击抵赖。在网络中问题就没有这么简单了。

三、数字证书的应运而生

在面临各种网络威胁时,建立安全证书体系结构是公认的解决方案。数字证书提供了一种在网上验证身份的方式。安全证书体制主要采用了公开密钥体制,其它还包括对称密钥加密、数字签名、数字信封等技术我们可以使用数字证书,通过运用对称和非对称密码体制等密码技术建立起一套严密的身份认证系统,从而保证:信息除发送方和接收方外不被其它人窃取;信息在传输过程中不被篡改;发送方能够通过数字证书来确认接收方的身份;发送方对于自己的信息不能抵赖。

针对上述网络威胁,可以通过相应的方案予以解决,从而保证网络行为的安全。

1、Privacy(保密性)
确认信息的保密,不被窃取。

方法:通过公钥加密或者私钥加密,保证信息安全。
2、Authentication & Authorization(鉴别与授权)
确认对方的身份并确保其不越权

方法:通过CA判定证书有效性,确定对方真实身份。
3、Integrity(完整性)
确保你收到信息没有被篡改

方法:通过摘要算法或数字签名,保证数据完整性
4、Non-Repudiation(抗抵赖)
有证据保证交易不被否认 

方法:通过CA有责任对相关通信行为负责,防止行为抵赖。

四、工作原理

数字证书采用公钥体制,即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加密,而接收方则使用自己的私钥解密,这样信息就可以安全无误地到达目的地了。 既能保证数据的完整性,也能防止行为抵赖。

非对称加密的原理可见:C#编程总结(七)数据加密。

现在还有一个问题,谁来确定公钥的真实身份?

显然通过简单的约束以及相关算法推理不能达到这个目的。这就需要第三方,也就是我们说的中间人来进行判定。

这就是CA。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/67773.html