2015第2周一数据传输安全

晚上回来先吃点东西然后洗漱准备再学习一会儿困后睡觉,今天在学习WS服务安全认证知识时又重新认识了网络传输安全和加密解密常用网络安全的概念,总结摘录一下个人觉得好的内容:非对称解密算法RSA是可逆的,公钥加密私钥解密可得明文,私钥加密公钥解密可得明文。

问题 1: 最自然的想法是,甲必须对文件加密才能保证不被其他人查看其内容,那么 , 到底应该用什么加密技术,才能使合同传送既安全又快速呢 ? 
    可以采用一些成熟的对称加密算法 , 如 DES 、 3DES 、 RC5 等对文件加密。对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥,即加密密钥也可以用做解密密钥,这种方法在密码学中叫做对称加密算法,

问题 2: 如果黑客截获此文件,是否用同一算法就可以解密此文件呢 ? 
    不可以 , 因为加密和解密均需要两个组件 : 加密算法和对称密钥 , 加密算法需要用一个对称密钥来解密 , 黑客并不知道此密钥。

问题 3: 既然黑客不知密钥,那么乙怎样才能安全地得到其密钥呢?用电话通知,若电话被窃听,通过 Internet 发此密钥给乙,可能被黑客截获,怎么办 ? 
    方法是用非对称密钥算法加密对称密钥后进行传送。与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥( Public Key )和私有密钥( Private Key )。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫做非对称加密算法 ( 公 / 私钥可由专门软件生成 ) 。甲乙双方各有一对公 / 私钥,公钥可在 Internet 上传送,私钥自己保存。这样甲就可以用乙的公钥加密问题 1 中提到的对称加密算法中的对称密钥。即使黑客截获到此密钥,也会因为黑客不知乙的私钥,而解不开对称密钥,因此也解不开密文,只有乙才能解开密文。

问题 4 :既然甲可以用乙的公钥加密其对称密钥,为什么不直接用乙的公钥加密其文件呢?这样不仅简单,而且省去了用对称加密算法加密文件的步骤? 
    不可以这么做。因为非对称密码算法有两个缺点 : 加密速度慢 , 比对称加密算法慢 10 ~ 100 倍 , 因此只可用其加密小数据 ( 如对称密钥 ) ,另外加密后会导致得到的密文变长。因此一般采用对称加密算法加密其文件 , 然后用非对称算法加密对称算法所用到的对称密钥。

问题 5 : 如果黑客截获到密文,同样也截获到用公钥加密的对称密钥,由于黑客无乙的私钥,因此他解不开对称密钥,但如果他用对称加密算法加密一份假文件 , 并用乙的公钥加密一份假文件的对称密钥,并发给乙,乙会以为收到的是甲发送的文件,会用其私钥解密假文件 , 并很高兴地阅读其内容,但却不知已经被替换。换句话说,乙并不知道这不是甲发给他的,怎么办 ? 
    答案是用数字签名证明其身份。数字签名是通过散列算法 , 如 MD5 、 SHA-1 等算法从大块的数据中提取一个摘要。而从这个摘要中不能通过散列算法恢复出任何一点原文,即得到的摘要不会透露出任何最初明文的信息,但如果原信息受到任何改动,得到的摘要却肯定会有所不同。因此甲可以对文件进行散列算法得到摘要,并用自己的私钥加密 ( 因为非对称算法可逆,即用私钥可解开公钥加密的文件,反之亦然 ) ,这样即使黑客截获也无用。因为黑客不会从摘要内获得任何信息,但乙却不一样,他可用甲的公钥解密,得到其摘要 ( 如果用甲的公钥能够解开此摘要,说明此摘要肯定是甲发的,因为只有甲的公钥才能解开用甲的私钥加密的信息 , 而甲的私钥只有甲自己知道 ) ,并对收到的文件 ( 解密后的合同文件 ) 也进行同样的散列算法,通过比较其摘要是否一样 , 就可得知此文件是否被篡改过  ( 因为若摘要相同,则肯定信息未被改动,这是散列算法的特点 ) 。这样不仅解决了证明发送人身份的问题,同时还解决了文件是否被篡改问题。

问题 6 : 通过对称加密算法加密其文件,再通过非对称算法加密其对称密钥 , 又通过散列算法证明其发送者身份和其信息的正确性,这样是否就万无一失了 ? 
    回答是否定的。问题在于乙并不能肯定他所用的所谓甲的公钥一定是甲的 , 解决办法是用数字证书来绑定公钥和公钥所属人。 
    数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件 , 是网络通信中标识通信各方身份信息的一系列数据,它提供了一种在 Internet 上验证身份的方式,其作用类似于司机的驾驶执照或日常生活中的身份证,人们可以在交往中用它来识别对方的身份。 
    最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。一般情况下证书中还包括密钥的有效时间、发证机关 ( 证书授权中心 ) 名称、该证书的序列号等信息。它是由一个权威机构—— CA 机构,又称为证书授权 (Certificate Authority) 中心发放的。 CA 机构作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。 CA 中心为每个使用公开密钥的用户发放一个数字证书,数字证书的作用是证明证书中列出的用户合法拥有证书中列出的公开密钥。 CA 机构的数字签名使得攻击者不能伪造和篡改证书, CA 是 PKI 的核心,负责管理 PKI 结构下的所有用户(包括各种应用程序)的证书,把用户的公钥和用户的其他信息捆绑在一起,在网上验证用户的身份。 
    因为数字证书是公开的,就像公开的电话簿一样,在实践中,发送者(即甲)会将一份自己的数字证书的拷贝连同密文、摘要等放在一起发送给接收者(即乙),而乙则通过验证证书上权威机构的签名来检查此证书的有效性(只需用那个可信的权威机构的公钥来验证该证书上的签名就可以了),如果证书检查一切正常,那么就可以相信包含在该证书中的公钥的确属于列在证书中的那个人(即甲)。

问题 7 : 至此似乎很安全了。但仍存在安全漏洞,例如:甲虽将合同文件发给乙 , 但甲拒不承认在签名所显示的那一时刻签署过此文件 ( 数字签名就相当于书面合同的文字签名 ) ,并将此过错归咎于电脑,进而不履行合同,怎么办 ? 
    解决办法是采用可信的时钟服务 ( 由权威机构提供 ) ,即由可信的时间源和文件的签名者对文件进行联合签名。在书面合同中,文件签署的日期和签名一样均是十分重要的防止文件被伪造和篡改的关键性内容 ( 例如合同中一般规定在文件签署之日起生效 ) 。在电子文件中,由于用户桌面时间很容易改变 ( 不准确或可人为改变 ) ,由该时间产生的时间戳不可信赖,因此需要一个第三方来提供时间戳服务(数字时间戳服务( DTS )是网上安全服务项目,由专门的机构提供)。此服务能提供电子文件发表时间的安全保护。 
    时间戳产生的过程为 : 用户首先将需要加时间戳的文件用哈希编码加密形成摘要,然后将该摘要发送到 DTS , DTS 在加入了收到文件摘要的日期和时间信息后再对该文件加密(数字签名),然后送回用户。因此时间戳 (time-stamp) 是一个经加密后形成的凭证文档,它包括三个部分:需加时间戳的文件的摘要, DTS 收到文件的日期和时间, DTS 的数字签名。由于可信的时间源和文件的签名者对文件进行了联合签名 , 进而阻止了文档签名的那一方 ( 即甲方 ) 在时间上欺诈的可能性 , 因此具有不可否认性。 
问题 8: 有了数字证书将公 / 私钥和身份绑定 , 又有权威机构提供时钟服务使其具有不可否认性 , 是不是就万无一失了 ? 不 , 仍然有问题。乙还是不能证明对方就是甲,因为完全有可能是别人盗用了甲的私钥 ( 如别人趁甲不在使用甲的电脑 ), 然后以甲的身份来和乙传送信息 , 这怎么解决呢 ? 
    解决办法是使用强口令、认证令牌、智能卡和生物特征等技术对使用私钥的用户进行认证,以确定其是私钥的合法使用者。 
    解决这个问题之前我们先来看看目前实现的基于 PKI 的认证通常是如何工作的。以浏览器或者其他登记申请证书的应用程序为例说明,在第一次生成密钥的时候会创建一个密钥存储,浏览器用户会被提示输入一个口令,该口令将被用于构造保护该密钥存储所需的加密密钥。如果密钥存储只有脆弱的口令保护或根本没有口令保护,那么任何一个能够访问该电脑浏览器的用户都可以访问那些私钥和证书。在这种场景下 , 又怎么可能信任用 PKI 创建的身份呢 ? 正因为如此,一个强有力的 PKI 系统必须建立在对私钥拥有者进行强认证的基础之上,现在主要的认证技术有:强口令、认证令牌、智能卡和生物特征(如指纹,眼膜等认证)。 
    以认证令牌举例 : 假设用户的私钥被保存在后台服务器的加密容器里,要访问私钥,用户必须先使用认证令牌认证(如用户输入账户名、令牌上显示的通行码和 PIN 等),如果认证成功,该用户的加密容器就下载到用户系统并解密。 
通过以上问题的解决,就基本满足了安全发送文件的需求。下面总结一下这个过程 , 对甲而言整个发送过程如下 : 
1. 创建对称密钥 ( 相应软件生成,并且是一次性的 ) ,用其加密合同,并用乙的公钥打包对称密钥。 
2. 创建数字签名,对合同进行散列算法 ( 如 MD5 算法 ) 并产生原始摘要,甲用自己的私钥加密该摘要 ( 公 / 私钥既可自己创建也可由 CA 提供 ) 。 
3. 最后 , 甲将加密后的合同、打包后的密钥、加密后的摘要 , 以及甲的数字证书 ( 由权威机构 CA 签发 ) 一起发给乙。 
而乙接收加密文件后,需要完成以下动作 : 
1. 接收后,用乙的私钥解密得到对称密钥 , 并用对称密钥解开加密的合同 , 得到合同明文。 
2. 通过甲的数字证书获得属于甲的公钥 , 并用其解开摘要 ( 称做摘要 1) 。 
3. 对解密后的合同使用和发送者同样的散列算法来创建摘要 ( 称做摘要 2) 。 
4. 比较摘要 1 和摘要 2, 若相同 , 则表示信息未被篡改 , 且来自于甲。 
    甲乙传送信息过程看似并不复杂 , 但实际上它由许多基本成分组成 , 如 : 对称 / 非对称密钥密码技术、数字证书、数字签名、证书发放机构( CA )、公开密钥的安全策略

等 , 这其中最重要、最复杂的是证书发放机构( CA )的构建。

U盾工作原理及其安全性

你的数字证书有一对,一份在U盾里的私钥,一份在银行的公钥(其实两份银行都有)
U盾的原理很类似于双向认证的TLS(SSL)或者其它用到RSA的双向证书验证手段,以下步骤可能和U盾实际执行的有所区别,但本质相同:

--银行先给你一个"冲击",它包含了随机数,以及该随机数HASH,它们都由公钥加密,这样就可以保证只有你能解密这个"冲击"
--你计算该随机数的HASH,并和用私钥解出的HASH,两者相同后,便可确认银行的身份
--接下来,以一个只有你和银行知道的算法,利这个随机数和一些其它信息,生成"响应"和相应的HASH,再用私钥加密后发回银行。(此时银行也以相同的算法计算该"响应")
--银行用公钥解密,并验证HASH正确,接下来银行比较两个"相应"是否相同,相同的话客户的身份也确认了

至于私钥的保密性由U盾来完成。U盾的控制芯片被设计为只能写入证书,不能读取证书,并且所有利用证书进行的运算都在U盾中进行。所以,只能从U盾读出运算结果。

 支付宝的安全主要依靠数字证书、支付盾(价格58元)、宝令(价格33元,已停止销售)、手机宝令。银行网银有些特殊,不同银行的网银使用不同的安全策略,但原理基本差不多,主要是USBKey和动态密码锁。从原理上看,USBKey相当于支付盾,动态密码锁相当于宝令,其安全性基本相当。数字证书相当于将USBKey里的私钥存储在电脑上,安全性不如USBKey,但使用起来更方便一些。

黑客对于USBKey的攻击大多使用木马病毒程序控制并攻击USBKey的驱动层,USBKey这种安全策略也并非万无一失,提高安全的方法是改造USBKey本身,我见过的一种比较好的改造方法是工行的USBKey,其在USBKey上增加了一个显示屏和确认按钮,交易的时候会显示金额在USBKey上,用户点USBKey的确认按钮后才能完成交易,这让基于电脑的木马病毒难以对交易进行篡改和攻击。

来自为知笔记(Wiz)

时间: 2024-12-29 05:16:40

2015第2周一数据传输安全的相关文章

2015第29周一

周一没什么工作总结,记录下两个看到的不错的故事:开阔思想眼界. 故事一: 有一次,一个老强盗带着徒弟去抢劫银行,被警方追捕.两人狂逃,差点儿连裤子都跑掉了.好不容易甩掉了警察,两人上气不接下气,瘫倒在地上. 良久,惊魂稍定,徒弟说:“师父啊师父,要是这个世界上没有警察,该有多么美好啊!”师父骂道:“放屁!要是没有警察,我们还有饭吃吗?!”徒弟大惑不解.师父“语重心长”地说:“你只知其一不知其二啊!你想想,如果没有了警察,是不是大家都敢去偷.去抢了?正因为有了这些警察,把那些能人挡住了,我们才有生

2015第30周一

今天听了600多年前的靖难之役,感慨朱棣的幸运和建文帝的悲剧——真是自作自受,刚即位还未稳就开始削藩,然后还犯下一系列错误:1.用人不当,几乎没用到什么能人名将:身边的宦官成了朱棣的亲信:2.妇人之仁,心慈手软,充满幻想:居然限制自己士兵不能伤杀朱棣,然后也不杀败将后来成为间谍的李XX:既然没准备好为何要去和朱棣开战,既然开战了损失那么多士兵代价为何还怕背上杀害自己叔叔的罪名:3.自己谋划能力不行,还不能严格执行原定的原则,当初跟他爷爷定下的规则那么好为何得不到执行,可悲……:4.为何老天也多次

2015第27周一非结构化数据

非结构化数据包括以下几个类型: 文本:在掌握了元数据结构时,机器生成的数据,如传感器等就一定能够进行解译.当然,流数据中有一些字段需要更加高级的分析和发掘功能. 交互数据:这里指的是社交网络中的数据,大量的业务价值隐藏其中.人们表达对人.产品的看法和观点,并以文本字段的方式存储.为了自动分析这部分数据,我们需要借助实体识别以及语义分析等技术.你需要将文本数据以实体集合的形式展现,并结合其中的关系属性. 图像:图像识别算法已经逐渐成为了主流.此外,这些技术也会产生实体,尽管获取关系以及舆情分析更加

2015第22周一Web性能测试工具及IE扩展区别

在高性能web测试工具推荐http://www.jb51.net/article/23034.htm中发现了dynaTrace 感觉很不错,不但可以检测资源加载瀑布图,而且还能监控页面呈现时间,CPU花销,JS分析和执行时间,CSS解析时间的等.http://www.ibm.com/developerworks/cn/web/1205_xieju_dtraceajax/ 文中介绍了详细的用法也很不错. dynaTrace Ajax Edition是一个运行在IE下的BHO免费工具. 可以运行在多

2015第17周一

刚看到一个段子说拿破仑将士兵按照勤奋/懒惰.聪明/愚蠢的矩阵,分为四类:1.聪明且勤奋的做前线指挥官2.聪明且懒惰的做将军3.愚蠢且懒惰的做士兵至于愚蠢且勤奋的…… 拉出去枪毙了…… 而勤奋正是对应了执行力. 这世界上的执行力远不如聪明值钱.也有些聪明人因为缺乏执行力吃过亏.但要知道懒惰,或者拖延是人类进化出来的能力,就是为了避免愚蠢带来的后果. 日三省乎己,多留一点时间来回顾总结之前的收获,以及未来要走向哪里.而不是整天闷头做执行. 其实勤奋不仅对应行动,也对应思考,关键是要靠智慧把握思考和行

2015第6周一网摘

网站开发开发大致分为前端和后端,前端主要负责实现视觉和交互效果,以及与服务器通信,完成业务逻辑.其核心价值在于对用户体验的追求.可以按如下思路学习系统学习:基础知识:1. html + css 这部分建议在 w3school 在线教程 上学习,边学边练,每章后还有小测试. 之后可以模仿一些网站做些页面.在实践中积累了一些经验后,可以系统的读一两本书,推荐<head first html 与 css 中文版>,这本书讲的太细了,我没能拿出耐心细读.你可以根据情况斟酌. 2. javascript

2015第50周一了解微服务架构

 58 网站架构演进     网站在不同的阶段遇到的问题不一样,而解决这些问题使用的技术也不一样,流量小的时候,我们主要目的是提高开发效率,在早期要引入 ORM,DAO 这些技术.随着流量变大,使用动静分离.读写分离.主从同步.垂直拆分.CDN.MVC 等方式不断提升网站的稳定性.面对更大的流量时,通过垂直拆分.服务化.反向代理.开发框架(站点/服务)等等,不断提升高可用.在面对上亿级的更大流量时,通过中心化.柔性服务.消息总线.自动化(回归,测试,运维,监控)来迎接新的挑战.未来的就是继续实现

2015第48周一

上周在想在专业方面要持续的关注大数据.网络信息安全.架构分析设计主题相关的内容,网上上了豆瓣和知乎,看了一些入门要学习的内容,感觉有好多要学习的: 一个数据分析师应该掌握的技能: 统计学基础 常用模型理论 R和PYTHON 网页分析 数据库技术 实战应用 统计学无需置疑是一个数据分析师的核心功底,你只有学好了统计学才能谈得上数据分析.但是统计学又常常是不够用的,我们还需要一些高级的模型来解决我们实际业务中的问题,比如:银行需要判断是否给某个客户发放信用卡   这就需要一个高级的二分类模型.这里我

2015第33周一

眼界高于能力,能力大于所得 在打工的环境下,在一个大型的.盈利良好的企业内,价值创造的链条被切成若干关联的环节,绝大部分基层员工都会被局限在某个环节内,无法直接曝露在客户面前,更无从了解价值链条的细节.在这种情况下,有一个技巧可以分享,总结起来就是“眼界高于能力,能力大于所得”. 眼界指Vision,就是说尽管你可能是基层的工程师,但是还要有远大的理想,并且了解公司远景,最好找到合适的结合点.在做好本职工作的前提下,8小时之外坚持不断学习,提高水平,并及时和老板沟通心得.经常能站在一定高度和老板