WSE3.0构建Web服务安全(2):非对称加密、公钥、密钥、证书、签名的区别和联系以及X.509 证书的获得和管理

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:
   上一节文章 WSE3.0构建Web服务安全(1):WSE3.0安全机制与实例开发,写处来以后感觉还是需要补充一下这个加密相关概念的文章,因为很多概念容易混淆,在理解 WSE3.0构建Web服务安全的时候遇到了麻烦。为了更好第学习 WSE3.0编程开发,我特地整理了 加密、公钥、证书、签名的知识点,来阐述这些概念的区别和联系,最后会详细介绍X.509 证书的信息,以及如何的获得X.509 证书和管理X.509 证书。全文结构如下1.非对称加密算法2.公钥和私钥、3.证书和签名、4.X.509 证书的获得和管理。5总结
    上一节里以及对.net类库提供的加密算法进行了介绍,下面我们了解详细了解一下非对称加密算法。
   【1】非对称 加密算法:
    非对称 加密算法又称为公钥加密算法,按照密码学的Kerckhoff原则:“所有算法都是公开的,只有密钥是保密的”。即安全系统的设计者不能指望使用某种秘密的无人知道的算法来保密,而应当使用一种公开的被验证过的算法——只要密钥是安全的,已知算法的攻击者实际上无法破解秘文的算法才是好的算法。 
   RSA算法是目前最流行的公钥密码算法,它使用长度可以变化的密钥。RSA是第一个既能用于数据加密也能用于数字签名的算法。RSA算法的原理如下:
    1.随机选择两个大质数p和q,p不等于q,计算N=pq;
    2.选择一个大于1小于N的自然数e,e必须与(p-1)×(q-1)互素。
    3.用公式计算出d:d×e = 1 (mod (p-1)×(q-1)) 。
    4.销毁p和q。
    最终得到的N和e就是“公钥”,d就是“私钥”,发送方使用N去加密数据,接收方只有使用d才能解开数据内容。
RSA的安全性依赖于大数分解,小于1024位的N已经被证明是不安全的,而且由于RSA算法进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,这也是RSA最大的缺陷,因此它通常只能用于加密少量数据或者加密密钥。需要注意的是,RSA算法的安全性只是一种计算安全性,绝不是无条件的安全性,这是由它的理论基础决定的。因此,在实现RSA算法的过程中,每一步都应尽量从安全性方面考虑。
   非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。 非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。
     【2】公钥和私钥:
    非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
    公钥加密:公钥加密使用一个必须对未经授权的用户保密的私钥和一个可以对任何人公开的公钥。公钥和私钥都在数学上相关联;用公钥加密的数据只能用私钥解密,而用私钥签名的数据只能用公钥验证.NET 通过抽象基类  (System.Security.Crytography.AsymmetricAlgorithm) 提供下列非对称(公钥/私钥)加密算法:
DSACryptoServiceProvider
RSACryptoServiceProvider
    因此公钥和私钥在非对称加密算法里是成对出现的,公钥公开出来用来加密数据,谁都可以使用这个公钥对自己传递的数据加密。私钥所有者通过自己的私钥对数据进行解密,私钥一般只有所有者知道,因此别人截获数据也无法破译信息的内容。
   【3】证书和签名:
        证书实际对于非对称加密算法(公钥加密)来说的,一般证书包括公钥、姓名、数字签名三个部分。证书好比身份证,证书机构(ca)就好比是公安局,职责就是负责管理用户的证书也就是身份证。
       比如我的公钥是FrankKey,姓名是Frank Xu Lei。公安局可以给我登记,但是怎么保证我和别的Frank Xu Lei区别开呢,于是公安局(证书机构)就使用我的名字和密钥做了个组合,再使用一种哈希算法,得出一串值,来标识我的唯一性,这个值就是我的身份证号码,也就是证书里的数字签名。 
         假设一个朋友给我写信,他就可以到公安局(证书机构)来查找我的身份证(证书)。上面包括我的个人信息,可以保证这个公钥就是我的。然后他把新建进行加密,邮寄给我。别人即使拆开我的信件,因为没有密钥进行解密,所以无法阅读我的信件内容。这样就保证了信息安全。 
    所以说加密不一定要证书,取决于你数据安全具体的需求。一般大型的电子商务网站都有自己特定的证书。证书管理的机构比较有名的就是VeriSign(可以说是互联网上的身份证管理局)。企业可以申请注册,它会给申请者生成特定的签名。 
我们自己的企业内部应用如果需要的话,可以在企业局域网内部建立企业私有的证书服务器,来产生和管理证书。 
    其实X.509是由国际电信联盟(ITU-T)制定的一种定义证书格式和分布的国际标准(相当于制作身份证的规范)。为了提供公用网络用户目录信息服务,并规定了实体鉴别过程中广泛适用的证书语法和数据接口, X.509 称之为证书,或者说是身份证的一种形式,类似与我们现在的二代身份证,也是身份证的一种,根据特定的标准制作出来的。 另外证书使用的时候还有有效期的限制,和我们的身份证的10年有效期一样。证书也可以设置有效期。
   【4】X.509 证书的获得和管理:
    【4.1】免费数字证书:获得免费数字证书的方法有很多,目前国内有很多CA中心提供试用型数字证书,其申请过程在网上即时完成,并可以免费使用。下面提供一个比较好的站点,申请地址为 https://testca.netca.net/。注意只有安装了根证书(证书链)的计算机,才能完成申请步骤和正常使用。 推荐另外一个可以免费申请证书的 CA http://www.cacert.org/

    【4.2】 CA 获得:商业应用最好从证书的签发机构 CA 获得证书,比如 VeriSign证书服务机构 ,这样商业 CA服务机构 的证书已经广泛使用,有的系统默认为可信任的证书签发机构。但是证书需要付费。
    【4.3】 windows Server 2003 证书服务 windows Server 2003 中安装证书服务器,这样 windows Server 2003 服务器即可当做一个证书服务机构 CA ,可以申请签发证书。也就是私有的身份证办法和制作机构,好比很多企业里的胸卡,HR就可以自己制作,但是使用范围只限制在企业内部。
    【4.4】 makecert 工具
微软在.Net F ramework 重集成 了一个生成 X.509 数字证书的命令行工具 Makecert.exe 。使用的的命令行在VS2005命令行窗口里启动,输入一下参数
makecert -sr CurrentUser -ss My -n CN=FrankCertificate -sky signature -pe
可以残生以个签名的密钥。运行时候可以得到相应的操作提示:如图
 
-sr CurrentUser  --       证书存储位置。 Location  可以是  currentuser (默认值)或  localmachine
-ss My  --                    证书存储名称,输出证书即存储在那里。 My 表示保存在“个人”
-n CN=MyTestCert --     证书名称。此名称符合  X.500  标准。最简单的方法是在双引号中指定此名称,并加上前缀  CN= ;例如, "CN=FrankXu"
-sky exchange --          指定颁发者的密钥类型,必须是  signature exchange  或一个表示提供程序类型的整数。默认情况下,可传入  1  表示交换密钥,传入  2  表示签名密钥。
-pe --                          私钥标记为可导出。这样私钥包括在证书中。
这个命令生成一个名字为 FrankCertificate 的证书,被保存到了当前用户的个人证书存储区内。一般我们自己开发使用的Windows证书服务来管理和获取证书。
 
  
    【5】总结:
    通过以上的学习,不知道你清除了非对称 加密、公钥、密钥、证书、还有签名的之间的区别和关系没有。在说明证书概念的时候我使用身份证做了类比,并把证书服务机构和管理身份证的公安局做比较来阐述证书的概念。最后基于上面证书概念的理解,本文又详细介绍X.509 证书的相关的知识,以及如何的获得X.509 证书和管理X.509 证书。
   希望本文能对你的安全知识的学习和网络安全编程提供帮助。有问题的园友也可以继续留言交流,我会尽我所知与大家交流和分享我的学习心得。后面我会继续准备《 WSE3.0构建Web服务安全》的第3节,如何使用WSE3.0 策略配置来实现密码加密与验证。有兴趣的朋友可以继续关注~    
参考资料:
1.AsymmetricAlgorithm ,MSDN




 本文转自 frankxulei 51CTO博客,原文链接:http://blog.51cto.com/frankxulei/320492,如需转载请自行联系原作者

相关文章
|
26天前
|
安全 算法 网络协议
解析:HTTPS通过SSL/TLS证书加密的原理与逻辑
HTTPS通过SSL/TLS证书加密,结合对称与非对称加密及数字证书验证实现安全通信。首先,服务器发送含公钥的数字证书,客户端验证其合法性后生成随机数并用公钥加密发送给服务器,双方据此生成相同的对称密钥。后续通信使用对称加密确保高效性和安全性。同时,数字证书验证服务器身份,防止中间人攻击;哈希算法和数字签名确保数据完整性,防止篡改。整个流程保障了身份认证、数据加密和完整性保护。
|
4月前
|
安全 网络安全 数据安全/隐私保护
SSL/TLS证书**是一种用于加密网络通信的数字证书
SSL/TLS证书**是一种用于加密网络通信的数字证书
195 6
|
1月前
|
人工智能 Linux iOS开发
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
60 12
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
|
1月前
|
安全 搜索推荐 网络安全
免费SSL证书:一键加密,守护网站安全
在互联网时代,网站安全至关重要。SSL证书是保护网站数据传输安全的核心工具,提供数据加密、提升信任度、提高搜索引擎排名及避免“不安全”警告等多重优势。现在,您可以通过JoySSL官网免费获取SSL证书,只需注册并填写注策码(230907),即可一键加密,轻松守护网站安全,提升用户体验和品牌形象。立即行动,为您的网站穿上“安全防护衣”!
58 11
|
19天前
|
安全 大数据 数据挖掘
课时9:阿里云Web应用防火墙:全面保障网站的安全与可用性
阿里云Web应用防火墙(WAF)基于阿里巴巴十年攻防经验,提供全面的网站安全防护。它通过Web应用防护、CC攻击防护和业务风控,有效应对各类网络威胁,确保网站的安全与可用性。智能双引擎技术降低误报率,实时数据分析和虚拟补丁更新保障系统安全。WAF已成功护航多个重大活动,为企业提供高效、简便的安全解决方案。
|
21天前
|
安全 数据建模 网络安全
数字时代的信任快餐:DV证书的生存法则与文明困境——当加密锁链成为互联网的“方便面哲学”
深夜的杭州余杭区,阿里云数据中心灯火通明,每秒完成2.4万次SSL证书验证,其中65%为DV证书。DV证书通过自动化验证快速构建网络信任,如同预制菜般高效,但也带来了安全隐患,如钓鱼网站滥用。其崛起反映了效率至上的趋势,但背后隐藏着信任通胀与安全风险。随着加密算法进化和新信任机制的探索,DV证书或将在未来被更复杂的安全体系取代。
|
3月前
|
缓存 安全 搜索推荐
阿里云先知安全沙龙(北京站) ——浅谈Web快速打点
信息收集是网络安全中的重要环节,常用工具如Hunter、Fofa和扫描工具可帮助全面了解目标系统的网络结构与潜在漏洞。遇到默认Nginx或Tomcat 404页面时,可通过扫路径、域名模糊测试、搜索引擎缓存等手段获取更多信息。AllIN工具(GitHub: P1-Team/AllIN)能高效扫描网站路径,发现敏感信息。漏洞利用则需充分准备,以应对突发情况,确保快速拿下目标站点。 简介:信息收集与漏洞利用是网络安全的两大关键步骤。通过多种工具和技术手段,安全人员可以全面了解目标系统,发现潜在漏洞,并制定有效的防御和攻击策略。
|
3月前
|
安全 应用服务中间件 网络安全
实战经验分享:利用免费SSL证书构建安全可靠的Web应用
本文分享了利用免费SSL证书构建安全Web应用的实战经验,涵盖选择合适的证书颁发机构、申请与获取证书、配置Web服务器、优化安全性及实际案例。帮助开发者提升应用安全性,增强用户信任。
|
4月前
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
163 4
|
4月前
|
SQL 负载均衡 安全
安全至上:Web应用防火墙技术深度剖析与实战
【10月更文挑战第29天】在数字化时代,Web应用防火墙(WAF)成为保护Web应用免受攻击的关键技术。本文深入解析WAF的工作原理和核心组件,如Envoy和Coraza,并提供实战指南,涵盖动态加载规则、集成威胁情报、高可用性配置等内容,帮助开发者和安全专家构建更安全的Web环境。
135 1

热门文章

最新文章