1、写此文的原因
最近出现的“棱镜”事件,加上之前密码泄漏事件,这大大的增加了我们在互联 网上的安全问题,尤其对我们来说重要的一些账户和密码,如果一旦泄漏出去,那么对我们造成的损失会很大,很严重。网络上也有因为密码泄露而引发的连带的问 题。我们需要对自己的密码进行一个很好的管理。养成一种习惯,减少我们的威胁。
2、使用场景 及重要程度
我们密码使用的场景大概分为以下几类:
财产类(重要)
这类直接关系到我们的金钱相关的账户,其中包括银行,支付宝,购物账户等。这些账户一旦被盗,将给我们直接造成经济损失。
通讯类(重要)
这类主要包括电子邮件,QQ、msn,这里主要包含我们经常联系的人。同时邮箱中还包含很多注册信息、以及其他密码信息。往来邮件等。
临时类(不重要)
一般是,我们在网络上搜索东西,需要注册才能够使用的,这种我们一般是临时内容。
工作类(重要)
一般是我们工作中需要用到的一些密码,包括服务器密码,ftp密码,网站后台密码,无线密码、路由密码,其他认证密码等。
常用类(中等)
这种一般的是我们常去的一些网站或论坛、社区等地方。这些不涉及财产,不涉及个人隐私等信息。
隐私类(重要)
对于在网络上,有些网站是需要提交个人信息、或者相关证件等信息的。还有上传照片的,网络硬盘等存在有我们私人的东西的地方。当然,对于这些也会根据我们在这些地方上传的内容有来定。
目前密码使用的地方大多数是以上提到的,如果有漏掉的,还请补充。其中以上的重要程度也会根据相关的内容而变的不一定,其中也包括,一些账户用于不重要的地方,一些账户用在重要的地方.将其分类等.
3、密码安全原则
密码强度
将自己现有的网络账户进行分类整理,密码根据账户的重要程度去进行设置.可以分为三个等级-弱\中\强.
弱:一般表示非常容易记的。不用去背的。例如123456这样的密码。位数少的,例如4-6位(容易被爆破) (附录A中有top 100的弱密码)
中:一般为字母+数字,其中有的密码是由名字和生日进行组合而成的。或者某些单词+数字,这种与上一中要复杂一些,位数要多一些。但是被人掌握个人信息也有很大的可能去被破解。
高:大小写字母+数字+特殊符号。比较复杂,不容易记忆。
当然除了字符以外,密码的长度也是其中的一个标准。安全的建议是8位以上复杂密码和中等密码,这样在破解的过程中耗费的时间要长很多。
https://howsecureismypassword.net/ 在这个网址里面可以计算到你输入的密码被破解的时间。
下面来说一下在什么情况下使用什么样的密码,当然没有一个固定的规则,根据自己的实际情况去设置即可。我说一下我的思路
对于自己财产类的,要设置一个比较复杂一些的密码,可以考虑使用字母大小写+数字的方法。同时不要用自己的名字、自己名字的缩写、常用昵称或这ID做为密 码的一部分。例如银行网上银行密码、支付密码等。(考虑到有些银行可能不允许输入特殊字符,所有建议大小写字母+数字,)
还有一种通讯类的密码,比如重要的电子邮件, 重要的QQ,这种的可以设置比较复杂的密码,大小写字母+数字+特殊字符,长度建议在10位。
对于一些常去的网站,里面如果不涉及到隐私以及跟其他重要关联的,建议密码不用设置太过复杂。
还有一些很少去的网站,或者是临时类的,那么我们的密码使用弱密码即可。因为被盗了也无妨。但是也建议使用top 100以外的密码。
对于涉及到隐私信息的,我的建议是尽量不要往网络上传,如果非要传的话,也涉及一个别人想不到的密码,并且,上传的地方的网站要可靠、可靠主要包含的是网站安全性高,以及网站的信誉。
对于工作中的用到的账户和密码,必须要复杂。同时关于工作的信息和文件,源代码,计划书、报表等文件,最好不要存储到网络硬盘上。同时要设置复杂的密码。
电脑开机密码,电脑密码也很重要的,一旦系统密码,硬盘中的文件以及浏览记录、cookie,照片、视频、聊天记录,重要文件等全部一览无余。这样的情况 系统密码不使用弱口令就可以。同时设置bios密码,可以设置硬盘密码的也可以设置硬盘密码。如果设置不了硬盘密码,也可以虑使用微软自带的或者开源的加 密程序对盘符进行加明。并设置加密密码。
低关联性
有些人设置的密码确实复杂,但是有可能存在的一种情况是使用同一个密码,这种情况不在少数,即使是有些是搞安全的也会存在这样的情况,这样存在一种风险, 就是一旦有一个密码被盗了,其他所有的全部完了。有的密码虽然不一样,但是规律却很明显。这样也是跟用同一个密码区别不大。
密码是一方面,同时使用一个或几个同样的账号在不同的网站,使用1-3个密码,这样的话,也存在一定风险。使用个账号与测试那几个密码。这样的话也要比暴力破解时间来的快很多。
保护好自己的邮箱,很多注册的时候都需要填写邮箱,需要进行验证的情况。如果多个地方注册使用同一个邮箱,一旦我们的邮箱被破解,那么我们其他网站密码被 破解的可能性变会很大。可利用密码找回功能进行找回。所以,这里的建议是注册多个邮箱,或者单个网站对单个邮箱,对于不常去的且不重要的,可以单独被一个 这样的注册邮箱。特别重要的,可以注册一个重要的邮箱。也可以根据自己的情况去申请几个邮箱作为某一类或某一种情况的专用。
账户的使用也可以跟邮箱一样,单独设计几个,在什么情况下的时候使用什么账户。也可以考虑邮箱账户跟注册的ID一致。这样的目的主要是多个账号之前没有关联性,不会导致连带的效果。会给破解带来一定的难度。
密码设置分享
对于用户名和密码的选择设置方面,特别重要的每个用户名之间相互独立。且设置不同的密码。
设立密码可以根据注册的地方,用途去设置密码,根据这些单词或者拼音去进行联想,对联想到的和用途单词想结合(具体怎么结合可以自己随意)也可以穿插一些数字,数字的话。然后进行随机的大小写转换即可得到密码。也可以使用对自己有一些特殊意义的做为一部分,例如:3.1415926 这个密码用的人也比较多,那么我可以使其变形为3dIanY1415Ya6。 其中我将“.”换成了拼音,当然也可以换成其他语言,编程语言也可以,例如使用“->”,1我先变为yi,在进行大小写转换,然后2联想到小鸭子 (小时候学数学的时候老师给讲的,教科书上也都画着类似的图。),ya,然后进行大小写转换,最后形成这个密码(当然也可以使用duck)。其次,还有一 种方法,就是注册一些网站的时候,对于一些不重要的网站,密码可以使用网站名字。是什么网站,就用拼音、英语或其他语言做为密码。
当然,对于存放加密盘的密码,完全可以使用一个很长的密码来进行加密,使用一个密码,将其加密成64位的。
以上为本人一点小小的分享,其实对于密码的设置来说,也有密码生成的软件和网站,也有相关密码管理的软件,以来我是觉得,密码生成软件生成的无规律,确实 安全,但是背起来完全不好背,密码管理软件的话,就像是一个保险柜,只要拿到了保险柜的钥匙破解了保险柜密码,那么里面的东西全部都没了。当然,也可以考 虑把密码放到一个文本里,然后经过winrar进行压缩并设置解压密码。密码可以设置的复杂一些,当然也可以做成多层的rar加密。但是这样做就比较麻烦 了。所以对于密码方面不建议使用这种方法。
安全和方便两个方面,本身就是有冲突的,就看在什么情况下哪一方面更重要。需要去考虑一下,同时在安全的同时,自然会多了一些麻烦。
4、密码的保护
设置复杂的密码只是为了防止被别人破解,但是获取密码的方式不止一种破解,如果想要做到安全,需要了解相关的安全知识才是最关键的。
获取密码的方式可以通过网络钓鱼实现、键盘记录方式、嗅探、暴力破解,社会工程学、读取内存。窃取文件(读取配置文件)。
密码的保护的话也是从这些方面入手进行防御。
对于掉与和键盘记录,我们要提高警惕,不要随意打开一些网址(要注意看好网址)、以及别人发来的文件等(除了exe外,还要小心doc、xls、pdf这类常用文件),需要确认后打开查看。
嗅探的话,做好arp方面的防御。
暴力破解,就是加强自己的密码强度。设置复杂的密码
社会工程学,不要轻易告诉别人你的密码,并且说要密码的邮件或者网站,都不要相信。别人说因为某某原因需要提供密码的时候也不要给。
对于配置文件方面,要加强程序的安全,服务器的安全性,防止配置文件被别人查看。做好文件系统的权限设置。
内存方面,本人才疏学浅,不懂这方面知识
补充:
对于互联网的世界,到处都需要使用密码。如果保护好密码,设置一个安全的密码,使在工作和生活的更好,减少因为泄漏而造成的一些烦恼以及损失。
如果是作为一个管理企业网络,或者是公司的服务器维护的管理人员以及其他的员工密码,主要有以下几类维护的密码(主要说跟密码有关的):
1、网站后台操作密码。其中主要为管理密码。(网站管理员) 2、办公、工作类密码。通讯类密码(例如QQ、邮箱),例如OA系统密码,客服管理密码。项目管理系统密码等(公司的的个人员工,小到最底层,大到最顶层 3、管理密码。其中包括:服务器系统密码、ftp、开发人员的svn代码。文档密码。数据库密码。还包括一些管理工具的密码。 4、测试类密码。一般为临时的,作为测试使用的密码。 5、操作系统密码。 6、私人密码与工作无关的密码。(我不建议在工作的电脑上登录个人的账号密码。如果是登录,也建议对其记录和保存的一些信息进行安全擦除。)
在入侵渗透中我们主要要获取的也是这些密码。获取这些密码,我们可以得到相应的信息。具体也根据密码背后存在的东西,这个主要看对于渗透者来说目标是什么了。
作为管理员,要保护好所有这些密码。正所谓千里之堤溃于蚁穴,安全问题的大小,取决于短板、也就是最弱的地方。
对于密码的设置,可以根据前一篇,对其重要程度进行密码的分类设置。
对于服务器的密码,多台服务器不要使用同一个密码,也不要使用带有规律的密码。例如密码前面的几个字符一样 ,后面使用ip的几位字符作为密码的一部分。这样也很容易被利用。
对于工作中的账号不建议使用弱口令,即使是测试的服务器或者测试用的账号。同时也不要在测试的系统中使用与自己经常使用的密码一样。
考虑对工作中重要的的文件进行加密。并且设置一个密码,密码不要过于简单。
两类重要的信息相互之间密码不要有关联性。防止别人通过字典去爆破密码。
对于重要的文件,绝对不要使用离线文件方式发送。也不要传到任何的网络上。对于邮件和im,有条件的可以企业内部执行架设邮件服务器。聊天软件服务器。
这里涉及的一个问题是众多的密码,该怎样管理?如果忘记了怎么办?
1、对于工作中的相关密码,可以记录在别人不知道的本子里,在用的时候到本子里查就可以了。然后把本子保存好。可以锁到抽屉里。当然,这种方式主要防止的通过网络去进行窃取文件泄漏密码的可能。但是这种不能防止物理接触来盗取本子的可能。当然,对于一般个人来说相对来说安全。因为不会有人特意来获取。 2、是把密码保存在一个文本或者是xls,doc文件里,然后加入密码。然后将其文件进行rar压缩,并设置一个强壮的密码。自己记住就可以了。 3 、使用自己的大脑记忆。或者像我一样,可以进行关联记忆。当然对于常用的密码来说,根本不用去记。手下意识的就会去输入了。
密码重要程度的分级
一类,自己工作相关的网站密码。这些网站有可能是客服账号、跟自己工作内容相关的资料、资源、知识类网站。这类一般设置一个不用太复杂的密码就可以了。 二类、管理密码,例如网站系统密码、服务器密码、ftp密码,远程管理密码、数据库密码等。这类的密码需要设置的复杂一些。同时对于数据库这样的密码可以考虑使用密码生成器软件生成一个复杂的密码。因为这些密码一般不需要特别的去记忆。主要用于配置。其他的,网站系统密码密码可以设置的不用复杂。但是服务器的密码、远程控制软件的密码长度建议超过10位。 三类、测试密码,测试密码有很多,主要是临时测试用,这种密码我建议也是不要设置简单的,不要使用top 100的密码。 四类、私人密码不要跟工作混在一起,要单独使用。使用环境尽量也进行分离。
这里只是把自己的一点东西分享出来。其中对于经常更换密码,对于一般的来说,没有必要定期更换密码。只要第关联,不是简单,没有什么规律。破解起来难度会比较大。
对于现在这样一个信息化的时代,网络与我们息息相关。我们要在网络中学会保护自己,加强自己的安全意识。安全不是小事!安全不止是大公司,大企业才需要重视的,安全需要每一个人都重视起来。
以上也是我在工作的环境中的一些分享。欢迎一起讨论,也欢迎分享 一些自己的方法或者技巧。大家共同来让我们安全的上网。
这两天有点空,多写一些吧,上篇文章当中涉及到的【故事】其实还有太多太多,我就不记流水帐了,只挑对于多数人来说容易看懂的说说,抛砖引玉吧。
【本文背景】
近几年,国内一些企业的后台用户信息被黑客公布,相信大家都有耳闻,这只是公布了的,没公布的呢?还有多少,你想想诸多中国互联网企业保存了多少用户的数 据,它们往往都是黑客们的“余粮”,这些事件导致的损失咱就不耸人听闻了,在类似事件当中,有诸多的用户隐私信息,其中最敏感的莫过于密码本身了,今天就 讲讲对于企业应用来说,如何保护用户的密码才安全。
使用“安全思维”一词,源于我认为这些原则不需要背诵,而是你应用安全思维形成后的信手拈来。
【密码保护的原则】
1. 永远不要在数据库、会话及本文当中保存明码密码,中间临时的变量存储用完后要及时清空
2. 在正式的产品线上运行的产品,任何人不应该有渠道获取到用户密码的明码,包括但不限于产品开发人员、产品维运人员及技术支持人员
3. 用户密码只采用sha2-256或者更高版本更多数位的算法进行哈希,而不是用诸如AES算法进行加密
4. 任何用户的密码在哈希时必需包括但不限于:1)可配置长串Key 2)用户设置密码时动态随机生成随机串 3)用户密码本身
5. 永远不要以任何形式log用户的密码,无论你是想做问题的调试还是用户信息的收集,密码的明码都是不能碰的
6. 不要认为以上1-5 block你的业务逻辑实现,那是你的实现方法不对,以上的原则是正确的
7. 企业应用系统必需严格的log任何人的对用户敏感信息的操作
可能有人会问“帐户泄漏不是因为以下可能的原因导致的吗“?
1)应用层的漏洞,诸如:SQL Injection导致非授权数据被查询出来 2) HTTP 伺服器(e.g. Apache\Tomcat...)实现时用的程序语言导致缓冲区溢出、业务逻辑导致的缓冲区溢出等导致远程代码注入与执行从而进入后台直接拧取数据库内容 3)网络操作系统实现时用的程序语言导致缓冲区溢出、业务逻辑导致的缓冲区溢出等导致远程代码注入与执行从而进入后台直接拧取数据库内容 4)数据库伺服器(e.g. MySql)实现时用的程序语言导致缓冲区溢出、业务逻辑导致的缓冲区溢出等导致远程代码注入与执行从而进入后台直接拧取数据库内容 ......
是的,以上往往是爆库的直接原因,但是在这里我建议您想想这三个概念:攻击者、受害者、责任者,对于以上的原因,只有原因1)本身的责任者是产品的主人, 而各种服务端软件提供者、操作系统往往并不被企业直接进行代码级维护,你是可以通过安全设置与配置进行安全设置,但是它的体系何止你了解的那么一丁点儿? 对于做产品应用的企业来说,最佳的原则是:即便一整套系统被人搬走了,我也能最大限度的保护用户的隐私及敏感信息!
OK,我们继续解读以上7原则。
原则1. 这一条很容易理解,明码意味着总有人有渠道去获取,这个人现在可能是朋友,将来也可能是敌人,所以有明码密码的地方就是孽源,呵呵
原则2. 如刚才所说,哈希后的密码也不应该通过简单的反向算法就可以恢复到原文,如果这样,对于企业的开发人员来说等于没有加密,还是那句话:在保护用户敏感信息上,没有可以相信的人,只有正确的方法。
原则3. 我一直在避免说“加密”二字,这两个字容易让人联想到能加就能解的事儿,所以容易习惯性的使用加密算法对密码进行加密存储,这样产品的实现者比较容易通过逆向的方法获取到用户密码
原则4. 可配置的Key可以有效的避免产品的开发与测试人员用同样的方法在正式产品线上通过逆向的方式破解用户敏感信息,随机Key的目的是让正式产品线上的维护 者也较难通过逆向的方法来破解用户信息,更重要的是避免在用户信息表里具有相同密码的用户们拥有相同的哈希值! 具体如何实现嘛,办法肯定有,需要智慧 哟~_~
原则5. 许多公司的通病,就是开发与测试人员为了自己的方便常把诸多信息写到LOG里,以方便自己的调试与问题跟踪,有了这个口子,一切安全措施都变成徒劳了,千万不要这么做!
原则6. 说这一条就是为了堵住具体实现人员的嘴,呵呵,没有实现不了的,只有你没想到的。原则有了,实现方法一定会有,没有直线的方法,可以有曲线的方法,总之一定有。具体产品具体业务逻辑具体对待,没有统一的方法,能统一的,我就告诉你了~_~,但是整体思想是一致的。
原则7. 记录企业产品的管理员、维运人员、技术支持人员的敏感操作(包括但不限于),对于一些重大安全事件的追踪相当有意义,最终有一种“锁”机制,如果敏感 log不能写成功,那操作就不能执行,敏感操作的log最好放在相对独立的服务器上,以防止被毁尸灭迹~_~。本人就有一个大胆的猜想:诸多企业的爆库事 件,至少有一种可能就是来自企业内部,而并非一定来自“真正意义上的黑客”,大家千万别攻击我,我只是说至少有一种可能。
做应用安全的过程就如你从刚接触自行车到最终可以熟练的驾驭的过程。当你首次接触自行车的时候,通常有一种困惑就是:两个轮子为什么不会倒?甚至因此质疑 自己到底能不能学会。当你学会了以后,你就不需要再考虑它倒不倒的事儿了,任何一个要倒的倾向,你都会在不经意间化险为夷,这就是你已经领会它的神了,植 入了你的潜意识。应用安全的思维也是这么形成的,只是过程要漫长的多。我们学任何知识,最终能终身受益的往往不是知识本身,而是它的思维方式, 比如:数学让你有推理的思维习惯,历史让你有反思的思维习惯,哲学让你有透过现象看本质的思维习惯等等,大学毕业数年了,如果你不从事相关职业,让你去考 试,你能考几分?但这并不表明你学的东西都忘记了,其实最有价值的东西还保存着呢,那就是:思维方式。应用安全也一样。祝您早日驾驭应用安全!
转载请注明:jinglingshu的博客 » 如何设置安全的密码