西西河

主题:【原创】闲聊密码(一) -- 代码ABC

共:💬8 🌺42
全看分页树展 · 主题
家园 【原创】闲聊密码(一)

闲聊密码二 链接出处

闲聊密码三链接出处

闲聊密码 外一篇——悲惨的DVD(上)链接出处

密码我们并不陌生,在很多场合下我们都需要输入各种各样的密码。比如上西西河,ATM上取款或者打开公司的门。这时候密码(和帐号)起到证明我们身份的作用,在计算机术语中这个过程我们成为(身份)验证——Authentication。身份验证是很重要的事情,许多操作是否能执行就看身份验证了。比如,我能否用铁老大的名义发帖呢?(为他赚花?我干吗做这种无聊的事情);再比如,我能否在铁老大的帐号上取钱呢?(还是低调一点,虽然这事意义重大,但有被关小黑屋的风险)不过,以上两个问题的答案都是肯定的!前提是我知道他的密码。也就是我掌握仿冒他人的方法,这些方法都是针对验证过程的。

我们来看看验证一个人的身份都有些什么方法,总的来说有三种:第一种检查被验证者知道什么;第二种检查被验证者拥有什么;第三种检查被验证者的特征。密码验证属于第一种方法。以上方法在没有计算机的时候我们也经常用,比方说军队中常用的口令,比较有名的历史事件是杨修之死。现在很多场合下我们使用密码,也就是一个只有双方才知道的秘密。这种方法在验证相互不认识的人是很方便的(你和老大的服务器有交情?)。但是前提是这个秘密只能为双方所知道,不能泄露给第三方,否则就要出乱子了。比如我猜、我偷、我套出铁老大的密码,再或者我关他小黑屋强迫他给出密码(铁手别郁闷,下个例子我换人),其实密码除了当事人知道外还有一个人(物体)知道,就是提供验证功能的服务器或人,那么我胁迫那个家伙也一样,而且收获更大。如果是没有知觉的硬件呢,比如服务器之类,那我就拆了他。实际上我们需要获取存放在服务器上的账号表,拿到了这个东西,事情就好办多了。

老大让大伙放心我们的账号表里面的密码都是加密的,算法保密,而且密钥长度有1024位,没有人可以破解。

我可以告诉大家如果铁老大这么说的话,那他一定再忽悠。其实只要给时间只有一种密码是无法破解的。包括现在流行的各种加密算法:3DES、AES、RCn什么的都能破解。不过大部分蛮力破解都需要很长的时间,或者花很多钱,或者两者都要。也就是说等你终于破解了银行的密码,并顺利取出钱来会发现那笔天文数字的钱根本无法支付更天文数字的电费。所以在密码学中安全是相对的,只要破解难度超过合理范围就认为这个密码算法是安全的。同理,如果我们证明一个密码的破解成本远高于保护的价值,或者破解的时间远大于需要保密的时间,那么我们也认为这种保护是可行的。所以大家也可以放心加密手段是有效的,破解还是需要一定难度的。

一般的服务器不存在什么特别有价值的东西,所以大部分开发人员也就不费神去琢磨高深的保护技术。但是一些关键应用其价值非常大,或者无法估量,这时他们就要考虑对付一些极端的破解手段了。一些我们看来不可能做到的事情对这些破解者来说只是一个基本手段而已。比如美国国家安全局(NSA)就拥有最多的顶尖数学家,拥有最多的超级计算机。另外互联网和计算机硬件的发展使得许多看起来不错的加密几年后就成为笑话。现在普通人可以在互联网不太费事地调用几万、几十万甚至上百万台计算机帮他运算,而这些计算机中任何一台都顶得上70年代用千万美金才搞出来的机器(甚至可能根本办不到)。所以,加密的东西也不见得是那么可靠的。

另外,加密算法或技术只是整个体系中的一部分。如何使用、管理甚至比加密算法本身更重要,这方面反面的例子很多(俺可以放过铁老大了),比较著名的例子是山本五十六被击落,还有就是美国人怎么确认日本要进攻中途岛。前者大家可以找到不少资料,而后者则是一个密码设计和破解问题,其破解方法则可以归纳为选择明文攻击法,这是一种典型的密码破解法,破解加密算法的方法还有很多。

闲聊密码二 链接出处

关键词(Tags): #闲聊#加密

本帖一共被 4 帖 引用 (帖内工具实现)
全看分页树展 · 主题


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河