免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 红豆抹茶
打印 上一主题 下一主题

深入浅出解读神秘的密码学(获奖名单已公布2012-10-30) [复制链接]

论坛徽章:
29
技术图书徽章
日期:2013-09-02 19:59:502015元宵节徽章
日期:2015-03-06 15:51:332015小元宵徽章
日期:2015-03-06 15:57:20操作系统版块每日发帖之星
日期:2015-08-16 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17操作系统版块每日发帖之星
日期:2015-09-21 06:20:002015亚冠之水原三星
日期:2015-10-30 00:06:07数据库技术版块每日发帖之星
日期:2015-12-24 06:20:0015-16赛季CBA联赛之上海
日期:2016-01-07 10:32:07操作系统版块每日发帖之星
日期:2016-01-08 06:20:00操作系统版块每日发帖之星
日期:2016-05-18 06:20:00IT运维版块每日发帖之星
日期:2016-07-23 06:20:00
11 [报告]
发表于 2012-10-16 11:55 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
12 [报告]
发表于 2012-10-16 13:55 |只看该作者
最近正在做相关的,也了解了点。
刷卡用的pos机用到了密码学内容,加解密算法,pki,哈希。看了下样章,其中有些算法的强度在PCI3.1的标准已经不够了。
现在拿那些算法是只要能用就行,至于怎么个计算的可以说完全不知晓。悲催~~

论坛徽章:
0
13 [报告]
发表于 2012-10-16 13:59 |只看该作者
由于对于算法的来龙去脉不甚了解,要用到那种算法比如sha256,不会就直接到openssl里面找代码进行移植,再不行就上网搜索。还好万能的网络让我搜索到了有人已经实现的sha256的代码,看懂了代码框架直接移植下就可以了。万恶的伸手党啊,呵呵

论坛徽章:
0
14 [报告]
发表于 2012-10-16 16:12 |只看该作者
本帖最后由 沉寂 于 2012-10-16 16:18 编辑

1、密码学在通信安全领域的应用实例
答:密码学在通信领域应用是比较广泛的,通讯领域对密码一般有强制性要求,比如加密方式强制要求MD5或DEC128+等,密码是强制要求加密的,典型的是在3A或者4A里面。现在通信安全领域一般系统都要求定期更新密码,同时密码的强度、变更密码的相似度都是有要求的,这个也比较符合通信安全领域的特征。在进一步要求加强安全的应用上面,可以采用A、B帐号/密码的方式,即通过单点系统或者堡垒机,屏蔽被访问系统的实际密码,通过帐号转换方式,实现被访问对象的通信安全。同时,具体的安全通道中,相关信息也是通过加密方式进行传输的。

2、密码学在实际应用上的难点,您是如何解决的?
答:应用难点主要是一般本身不是密码算法上的问题,当前密码算法本身对数学的要求比较高是另外一回事,主要是应用人员的密码设置方式不正确,或者是多人共用情况的存在,而造成的密码泄露或破解(当然某些系统采用明文存储而被攻破数据库造成用户的损失,其实是种商业违约),所以重点是:
A、解决密码的强制强度设定、定期更换,当然这种方式会带来用户的易用性的降低,对客户的使用体验有影响;
B、可以利用数字证书方式,要求用户进行数字证书安装;
C、对于安全级别要求非常高的场景,一般是建议直接采用硬件证书、或动态密码的方式来辅助加强密码安全。

3、作为技术人员,如何看待密码学在日常通信安全中的优势和作用
答:密码学其实在生活中到处都是,从昵称到虹膜都是密码学的一部分,要发挥好密码学在安全领域的作用:
A、        密码学应是便捷、高效的:有人用的密码设置场景才能发挥密码学的功效,
B、        使用流程要规范:一般的问题不是出在密码学本身上,而是出在流程上,比如明文密码存储、低强度密码设置之类的,规范好应用流程是很重要的,而当前流行的密码方式虽然存在破解可能,但规范化的密码设置其实破解成本是很高的,而且破解出来也完全有可能已经失效;
C、        和其他通讯方式相结合,通过辅助手段加强密码的安全性,比如短信、单点系统等;
D、        与应用场景相结合:不同的安全域的要求,给出不同的密码规范性要求,一般论坛的密码没必要搞得跟网银的强度一样,否则大家就琢磨着背密码了,呵呵……

论坛徽章:
0
15 [报告]
发表于 2012-10-16 21:12 |只看该作者
回复 1# 红豆抹茶


    算法

论坛徽章:
0
16 [报告]
发表于 2012-10-16 21:52 |只看该作者
先顶后看~~

论坛徽章:
3
CU大牛徽章
日期:2013-03-13 15:29:07CU大牛徽章
日期:2013-03-13 15:29:49CU大牛徽章
日期:2013-03-13 15:30:19
17 [报告]
发表于 2012-10-17 10:14 |只看该作者
以下从WEB领域的安全角度来回答这些问题!

1、密码学在通信安全领域的应用实例

     密码学在通信安全领域的应用例子,包括我们常见的各类网站的帐号密码登陆,通常注册时对帐号密码进行MD5不可逆加密,然后存入数据库,登陆时候也进行MD5加密,然后比对数据库里的32位MD5加密串,如果2个字符串一致就通过,不一致就禁止登陆,不过目前的站点基本都有更深度的密码处理,不仅仅是MD5处理,还包括一个随机的SALT(KEY)组合成更加复杂的加密串,解密时也需要这个SALT(key)才能解开。

     还有最近WEB上应用比较多的第三方信任登陆,常见的有QQ、邮箱等第三方帐号的登陆。这里一般用的是P3P个人隐私保护技术,这个在很多论坛都能看到,QQ登陆第三方网站、多个站点同一个帐号单点登陆等等。这些多少都离不开密码学。

    以上是一些开源系统经常用到的一些密码安全处理方法。如果想知道更多的细节可以查看各开源站系统的源码,比如DISCUZ、DEDECMS等。

2、密码学在实际应用上的难点,您是如何解决的?
  
    大家都知道没有100%安全的东西,世界上也没有无法破解的密码,即使你再牛的技术也不可能做出无法破解的系统,只能说增加破解的成本,比如CSDN,早期一直是明文帐号密码传输也没有出现过问题,但是之后被爆出了帐号密码明文泄漏的大问题,哪怕做一个普通的密码处理也比明文更好,至少拿去无法直接看懂,之后这些帐号全被禁锢,直到安全邮箱确认!

    从密码学算法来说,目前包括对称算法、非对称算法、不可逆等,MD5就属于不可逆,虽然网站上有很多能破解MD5的站点,那些都是直接拿常见的字符组合比对出的结果,其背后依托的是一个庞大的数据库,有些比较特殊的字符它的数据库里也是没有的。但是单纯通过MD5这种不可逆的简单处理,网站还是有危险的,所以之后很多开源系统都辅助了对称算法加密,对明文多加一个SALT进行加密,然后用同一个SALT对加密串进行解密。用了2种算法的组合,比单纯只用MD5加密被破解的概率就低很多,即使拿到数据库数据,短时间也未必能够简单破解,从而增加破解的难度,黑客就不得不考虑花这么多时间是否值得了。这样即使无法阻止真正黑客的渗入,但是至少增加了破解者的难度,尽可能做到安全!
   
    密码学的应用难点就像是一对矛盾体!没有攻不破的盾,也不可能有无坚不摧的矛!

3、作为技术人员,如何看待密码学在日常通信安全中的优势和作用

   早期一些网站仅仅只使用md5,那么只要我获取了这个md5字符串,并且用户的密码设置得比较简单(6位以内,只包括数字或字符,没有特殊字符),那么就可以很容易通过MD5加密进行暴力比对破解。作为一个技术人员,根据密码学原理,我们知道除了加大服务处理端的安全以外,我们也提倡用户在日常使用中我们应该把密码设置得更复杂一些(6位以上,数字、字母、特殊字符的组合),当然没必要复杂到自己都记不住,不同的应用有不同的安全级别,普通网站帐号的安全级别肯定远不如金融交易帐号!
     

论坛徽章:
0
18 [报告]
发表于 2012-10-17 10:25 |只看该作者
本帖最后由 chnliyong 于 2012-10-17 10:25 编辑

1、密码学在通信安全中的应用实例
这个比较多了,实际应用中主要是公钥加密,也即非对称加密,如我们SSH,SSL都是属于这一类,主要用于认证一类的应用,密码学在现在通信中使用的另一个就是散列(Hash)技术,我们所说的MD5或者SHA1就属于这类,与加密不同,加密的话必须能从密文中完整的恢复,也即在加密算法中明文与密文是一一对应的,如果明文不一样,密文肯定不会一样的。而散列算法是将一个任意长的消息串经过一系列变换得到一个定长的二进制串,肯定是有冲突存在的,消息的空间无穷大,而散列后的空间大小是固定的,只是冲突通过人为或计算很难构造。由于冲突文件很难构造,所以我们就可以用来验证文件是否被篡改,因为文件如果被改了的话,通过散列算法重新算出来的定长串是不一样的,我们经常下载文件所用的MD5码和SHA1码就是用MD5算法和SHA1算法计算得到的用来验证文件是否被更改。这种技术是一种单向技术,通过最后的散列码是无法恢复原始信息的(可以想像通过一个128bit的MD5码恢复几个G的文件),所谓的网站对用户密码加密一般都是用散列技术,也即是单向的,即使获取了我们加密后的密码也不能从其中恢复我们的密码,所谓的MD5解密网站也就是一个超大数据库存储了明文与MD5散列值对。

2、密码学在实际应用上的难点,您是如何解决的?
理论还是那些理论,在对用户信息保护上要设置一个可靠的单向函数,认证的话需要数字证书,作为用户的话只能把密码设置得稍微复杂些,诸如一些定期更换密码的建议虽然有效,但实在是麻烦,且不容易记住,所以密码学还有很多问题需要解决

3、作为技术人员,如何看待密码学在日常通信安全中的优势和作用
密码学是一个与应用关系非常紧密的学科,不管是密码编码学(加密)和密码分析学(破译)都与现实紧密相关,同时与当前计算技术水平相关。与我们现代社会每一个人息息相关。直接影响新兴的电子商务和电子支付及我们各种信息交流,为我们的日常生活提供了一个安全性的保障。应用非常广,特别是网络的兴起,人人都可以访问,密码学就显得至关重要了,提高安全意识也显得至关重要了。

论坛徽章:
8
CU大牛徽章
日期:2013-04-17 10:59:39CU大牛徽章
日期:2013-04-17 11:01:45CU大牛徽章
日期:2013-04-17 11:02:15CU大牛徽章
日期:2013-04-17 11:02:36CU大牛徽章
日期:2013-04-17 11:02:58技术图书徽章
日期:2013-12-04 10:48:50酉鸡
日期:2014-01-03 10:32:30辰龙
日期:2014-03-06 15:04:07
19 [报告]
发表于 2012-10-17 12:09 |只看该作者
本帖最后由 shan_ghost 于 2012-10-17 12:40 编辑

1、密码学在通信安全领域的应用实例
无处不在。从wifi热点的登入到https浏览网页;从网络银行到网游登陆;从软件签名到系统认证(如微软驱动程序兼容性认证)……密码学无所不在。

毫不夸张的说,没有密码学,就没有互联网——哪怕互联网以自由、开放著称。

2、密码学在实际应用上的难点,您是如何解决的?

主要是三个层面(因为加密算法的设计还不是偶所能涉猎的,故只考虑应用层):
一、安全性的传递
比如,密码专家可以证明破解某种加密算法需要若干年;那么鉴权模块就要保证,非法取得自己的授权难度必须相当于破解加密算法;而应用则应保证,非法使用自己可给予别人的权限的难度,也要等同于破解这种加密算法……

显然,以上很难。因为有缓冲区溢出等等漏洞。
但是,不能把安全等价传递出来,并不等于加密算法无能。只是你自己没有做好而已。

解决方案是:从一开始,就不要去拿自己不需要的权限。
比如,近年来经典的网络服务程序的设计都是:以root权限打开特权端口,然后主动放弃root权限,以近似nobody、甚至干脆就是nobody的权限对外提供服务——这其实可看作沙箱的一种变形。

这种设计,哪怕被彻底攻破,也不过是拿到了nobody的权限而已——而且,你的后端数据访问密码、你的后台数据库连接密码,显然应该是在有root权限那一步就读取并完成连接的,等到了权限降到nobody这一个阶段,它们都不应该再可接触了。

以上,才是正确的考虑了安全性传递的方案。

至于不得不拿的权限如何妥善管理,那就是另外的问题了。其中如缓冲区溢出之类难有妥善方案(除非硬件支持),基本的安全框架可见二中的讨论。


二、便于使用、且不会被错误使用的安全框架设计
大多数开发人员是不懂安全、不懂密码学的。比如CSDN那帮人。

这时候,就必须一个安全专家来设计一整套的安全架构,并由软件专家基于这个架构设计一套软件库。这套库应该易用、稳固、透明,使得其他开发者能轻易将之集成。
或者说,通过合理设计、正确分层,使得参与软件开发的人可以专注于自己的层面。

比如,我最近搞的一套安全架构是基于python装饰器语法的,且有一个安全中心。系统内的任何节点只需在需公布的接口前写上:
@xml_rpc
@secure_api(require_level=LEVEL_ROOT)

这个接口的访问就可以被保护起来,身份认证由安全中心来保证(实现了0知识验证),且可抵御中间人攻击、重放攻击等各种攻击。(当然,调用这个接口也需要通过一个安全proxy方可正常进行)

——嗯,这种设计基本就是从TLS-SSL方案偷来的。

三、密码管理
主要是用户使用不安全密码、不正确的保存密码等问题。

我的想法是:

首先,使用单独的安全中心;节点(包括外部节点)通过安全中心得知用户身份/取得用户授权(典型如openid、oauth协议),以尽量减少用户需要记忆的密码数。

其次,改革现有密码方案,使其更加好用,如:不要局限于几个字符的密码。这虽然不影响密钥空间大小,但却限制了用户的密钥选择范围,直接导致了简单密码容易破解、安全密码难于记忆的问题。

可以用用户喜欢的、相对稳定的文档中的某几段(如独立宣言、RFC1155、红楼梦第四十回第十七段、唐诗宋词中的名句以及其它世界名著中的某些内容、甚至是一张哈勃传回的照片等)的散列作为密码,从根本上克服简单密码容易破解、安全密码难于记忆的问题。

具体来说,就是用户登录时,可从google文档库或其它可靠来源选择一个或一些历史性的文本(或其它不会改变的文档);这些东西也可以手动输入,更有安全性,比如杂糅的、带有恶搞性质的诗词名句的组合;然后用sha512(密语)的方式生成密钥。
——需要解决的问题是:登录页面必须是https的,且google文档库之类的访问也最好通过https或者使用其它方式匿踪,以免被猜到密钥来自哪篇文档。甚至这些文档本身就可以缓存在登录服务器上供用户选择,然后可以用用户输入的传统密码的散列的某几个字节为索引,从文档中截取若干内容。另一种方案是用户本地选择这类key文件(此时就可以是他自己的照片、发表的文章中的某句话等等),然后只传这些东西加上服务器挑战码的摘要:可以证明,这种灵活、容易记忆的密码生成方案所产生的密码,至少不比传统密码脆弱;哪怕用户用了123456+最烂大街的某首唐诗中的某句作为密码,暴破难度也会高上几个数量级。

嗯,这还只是个想法。我打算先用它为自己打造一个密码保险箱,然后再推销给老板……


3、作为技术人员,如何看待密码学在日常通信安全中的优势和作用

没有秘密,就没有通信。它已经在发挥作用了,只是还远远不够——无论是深度、广度还是人们的了解程度。

至于优势……它就是最根本的东西,没有它是绝对不行的。而既然它已经是根本,“优势”又能和谁比较、从何谈起?
难道真的能堕落到和CSDN那种完全不入流的相比吗?

论坛徽章:
0
20 [报告]
发表于 2012-10-17 13:54 |只看该作者
目前,密码学的算法方面的研究值得大家的关注,包括传统的DES、3DES算法、MD5算法等等,
还有我们应该在新的密码学算法方面做出更多的研究,应该多像破译MD5码的密码学女专家学习。
对于密码学在应用中的难点,我个人觉得还是应该在算法方面的研究应该更深入一点,已提供更加安全
的算法和提高性能,为更多的应用提供安全的保证。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP