`
zhoushu126
  • 浏览: 79453 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

【转】密码为什么明文存放

 
阅读更多

原文:

http://shell909090.com/blog/2011/12/%E5%AF%86%E7%A0%81%E4%B8%BA%E4%BB%80%E4%B9%88%E6%98%8E%E6%96%87%E5%AD%98%E6%94%BE/

 

  很早就写过一篇blog,说到过,你的密码应当一次一密,至少某些密码泄露时不至于波及太广。结果这次CSDN不幸中枪。我不去讨论多少人急急忙忙修改密码,多少人数据泄露,单说说为什么很多时候密码是明文存放的。

  就我有记忆以来,我写应用就从来没有明文存放过密码。最起先是md5方式存放。md5可以让你找到hash值,有的时候也会被用于穷举。但是无论如何,md5密码本身比明文安全很多。后来改成了challenge-response验证模式,也是用md5做的hash后进行c-r的。再后来,md5的碰撞冲突的论文出来,后面用的多数都是sha256了。从头到脚,我就没做过密码明文存放,并且,我认为这是正常程序员最起码的修养。(当然,明文存放的代码不是没有,不过那是调试模式) 但是现在我所知,很多系统的身份验证都是密码明文存放的,为什么?其实我不大理解。不过有时候问起,有些人和我说了几个我觉得不是搪塞的理由,现在抄录如下,告大家知。

 

 

1.明文密码没法应付检查。大家知道互联网审查,有时往往会一个电话过来,要XX用户的密码。如果你没法给出,上头就认为你不配合,事情各种难搞。作为审查机构的老板,当然没必要知道明文密码的危害。他们只知道,我要密码,为什么不行。所以,悲崔的程序员们就往往会得到一条死命令,保存明文密码。

 

 

2.压根不知道明文密码有什么问题。中国的互联网有太多的没基础的新人,从石头的缝隙中顽强的生长出来。这不是坏事,坏事的是这些人往往会在一些基础问题上出现奇怪的毛病。例如有些程序员,写程序很快,但是居然从来不知道密码明文存放会导致什么问题。更神奇的是,这些人中,有一家银行…

 

 

3.自信暴棚的混帐。有些人的自信总比别人强,而且强在莫名其妙的地方。例如:我的服务器肯定是没问题的,所以我的密码一定要明文存放。如果不,就是质疑我的技术。

实话说,这种人真是少数中的少数。

 

 

4.遗留系统。很多系统设计的时候因为某个其他理由,使用了明文密码。等后来这个理由不存在了,密码系统升级成了一个困难。因为密码系统太重要了,所以在没有太大利益的情况下,总是倾向于不修改系统。但是有什么足够利益来推动系统修改呢?用户安全问题在发现前不是一个问题——好比这次的CSDN,不是被暴出来的话就根本不会被当作一个问题。系统的管理者,每个人都没有足够的动力去修改系统。

 

 

5.世界的阴暗角落。有的时候,程序员/老板明文存放的理由,是为了方便盗*用户其他网站资料。例如我所知的某钓鱼案例,你注册网站,就提供很多免费服务,网站看起来也很靠谱——除了后来突然爆出这家网站其实暗地中用你的生日/密码猜解信用卡/银行卡密码,大家才突然发现,这家网站其实根本没有在美国注册,而是一个听都没听说过的国家。

而且很多网站提供从其他网站导入之类的功能,更加的危险。以前经常爆出twitter密码被窃取,主要就是因为OAuth开放以前,twitter上的第三方应用需要提供原生密码,导致很多小应用的目的其实就是收集密码…

 

 

6.为了给用户提供方便。这个理由和上一个很类似,不过不是为了某些险恶的目的。而是客户经常要求——为什么我不能做XX事,为什么我不能blahblah。好吧,为了让你能,我们就必须保存明文密码。

 

 

  明文密码的保存原因很多,不过结论都是一样的。在任何网站/服务上,你绝对不能使用同一个密码,零级密码除外。尤其请注意,不要在两家银行使用同样的银行卡密码/网银密码,原因不说。

  从未来进化的角度说,密码的未来进化趋势是核心授权体系。就是你要向某个网站验证身份,只需要向身份验证商验证,剩下自动完成。现在的openid就是一种解决方案。密码都没了,还谈什么泄露呢?同时,实体交互和授权的精细划分也是一个趋势。某个网站访问别的网站的数据的时候,会形成一个访问令牌。这个令牌对需要访问的内容详细写明,并且需要用户授权。OAuth就是这个趋势的代表。另外一个趋势是利用某个足够安全的设备作为以上两者的终端载体。目前这个设备用的是手机,可是——手机不是一个足够安全的设备。也许这会是下一个XX门的隐患吧。

分享到:
评论

相关推荐

    信息系统密码管理策略.doc

    密码不得以任何形式的明文存放在主机电子文档中,不得以明文形式在电子邮件、 传真中传播。 第三条 系统管理人员在建立帐号时,对所分配帐号的初始密码设置为第一次登录强制修改。对 于不能强制修改密码的系统,...

    还原精灵 v5.0 密码读取

    还原精灵5.0密码读取软件,只用于测试还原精灵内存中存放明文密码的漏洞。

    凯撒密码算法实验

    printf("\n加密后的密文为%s\n",str2); break; } case 2: { printf("\n输入密钥:"); scanf("%d",&k); printf("\n输入密文字符串:"); scanf("%s",str1); strupr(str1); for(i=0;...

    一个与QQ相关的Delphi解密算法实例.rar

    这本来确实是安全性的体现,但是看到其UDP协议明文传送的情况以后,使我对OICQ密码存储开始感兴趣。  本来以为OICQ每次都会与服务器直接验证密码,不在本地存储密码原本。但是在断线使用OICQ时候,发现其也进行...

    C# MD5加密实例

    C#实现对字符串的MD5加密方法 MD5加密通常会用在软件将客户密码存放在数据库时,这样可以有效的避免数据库中密码明文的问题

    Java实现单表替换算法

    通过文件存取字符的方式,用单表替换算法,对明文进行加密得到密文...(in.txt为明文输入文件,out为密文存放文件,decry为解密后的明文文件 每一次加密完后,要清空out.txt和decry.txt文件,才能进行下一次的加密动作)

    wdb php水晶修改加密版

    wdb的密码一直以明文方式存放,一般来说,只要服务器安全,还有管理得当,不会出现密码泄漏的问题,可是谁有能100%保证呢。vbb220版以后推出了,密码单向加密的功能和发送随机密码的功能。我就将此项技术应用到了wdb...

    如何有效防止Cookies文件泄露你的秘密

    Cookies是Web服务器发送到电脑里的数据文件,它记录了诸如用户名、密码和关于...而且,现在很多网站收到的Cookies文件中的用户名和密码甚至是以明文方式存放的,这样就更不安全了。因此,删除掉Cookies文件很有必要。

    信息安全技术实验五古典密码算法

    //向右加密方法 ming为明文 mi 为密文 yao为密钥 public static void encode(String ming, int yao) { String mi = ""; for(int i=0; i(); i++){ if (ming.charAt(i) == 32) mi += (char)(32); else if ...

    Secret 单机加密的备忘录

    但是我不敢把密码写成明文, 因为印象数据都是存放在公网上的, 万一被人看到,那不是全被盗了。 于是我就想,要是能有个单机的, 让我能存放秘密信息的地方就好了。 于是他就诞生了,我给他取名叫“Secret”...

    Dream Club v0100(WDB修改版)

    wdb的密码一直以明文方式存放,一般来说,只要服务器安全,还有管理得当,不会出现密码泄漏的问题,可是谁有能100%保证呢。vbb220版以后推出了,密码单向加密的功能和发送随机密码的功能。我就将此项技术应用到了wdb...

    mongodb 修改用户密码 2种方法

    mongodb的用户信息是存放在system.users表中的,修改密码不能直接更新表数据,这样的话,存到表里的密码是明文的,这就不对了。

    编程实现Simplified-AES算法加密过程和解密过程

    一组测试用例包括: 明文(2字节), 密钥(2字节), 对应的密文(2字节), 各一行以16进制方式存放在文本文件中. 例如: 文本文件: testcase1.txt, 内容如下(3行): 6F6B (明文) A73B (密钥) 0738 (密文)

    Des.zip_Des加密解密

    DES密码的C语言实现。 输入为同目录下存放明文的1.txt文件,存放密钥的key.txt文件。输出为加密后的2.txt文件,以及2.解密后的3.txt。

    C语言凯撒移位加密算法

    //i 用于计数输入个数,j 为临时变量, plain 存放明文, cipher 存放密文,decryption存放解密后文本,fpp 为明文文件指针,fpc 为密文文件指针 int i,j; char plain[SIZE],cipher[SIZE],decryption[SIZE],...

    信息管理和成绩考核系统(源代码C) 完整论文、答辩报告

    教师第一次登陆系统必须修改密码(密码要求:六位以上,须包含以下三种即大小写字母、数字和其他字符(*,_,#),不得以明文的形式存放在文件中),教师不能修改学生信息,只可检索学生信息。 vi. 信息保存形式:...

    用户名密码查询findpass

    因为登陆的域名和用户名是明文存储在winlogon进程里的,而PasswordReminder是限定了查找本进程用户的密码 (L"USERNAME", UserName, 0x400); GetEnvironmentVariableW (L"USERDOMAIN", UserDomain, 0x400); >,...

    安全数据库系统.pdf

    另外一个数据库为密钥数据库,存放着每个用户的初始密码。Table mikey: 记录了用户的 ID 号和密钥。 本地数据库的主键和外键 Table activity:主键为 actID,外键为 optID, Table customer:主键为 cusID Table emp...

    Radmin自动登录器v3.0-多国语言绿色版-Release1-20150615

    注意:当服务器端为Radmin Server v3.5之前的老版本、解锁前远程桌面并未锁定而焦点又正好位于文本编辑框中,启用该功能可能会出现明文密码。 (3)、相关配置 用户可以为每条记录单独配置解锁远程桌面功能,相关...

Global site tag (gtag.js) - Google Analytics