【安全专题】关于密码和加密的一些随想

如题,我们每天都在不断的接触到一系列的密码,开机密码,登录密码,银行账户密码 and so on… 用的多了,总是会忽略一些管理细节,就如俗话说的,夜路走多了总会遇到鬼,很多人就因为管理自己的密码不善而导致了很多损失。因此我们今天就来讨论一下密码这个和安全息息相关的专题。

对于自己主机密码来说,尽量用复杂的有一定长度的并且不易猜解的密码为好。密码里面尽量包含数字,大小写字符,特殊符号等等。对于网络,至少要考虑使用摘要密码。摘要密码是从散列密码发展来的;一般服务器程序向客户程序发送一些数据(如日期、时间、服务器程序名称),客户程序把该数据与用户密码结合,再用散列处理该值(所谓的“摘要密码”)并把散列处理后的结果回答给服务器程序;服务器程序核实此散列值。这会起作用,因为实际上没有以任何形式发送密码;密码只是用来导出散列值。摘要密码不能被认为是通常意义上的“加密”,甚至在法律限制为了保密进行加密的国家一般也可以接受。摘要密码容易受到主动攻击的威胁,但可以抵御被动的网络窥探者。摘要密码的一个弱点在于服务器必须拥有所有未经散列处理的密码,这使得服务器成为攻击的一个非常诱人的目标。
在保证系统安全时,加密算法与协议通常是必需的,特别是在通过Internet 一类不可靠网络进行通信时。如果可能,使用过程加密来防止过程拦截,并隐藏认证信息,这样还同时支持了对隐私的保护。
在进行安全管理的时候应当使用现有的遵从标准的协议,如SSL、SSH、IPSec、GnuPG/PGP和Kerberos。只使用公开发表并经受了多年攻击考验的加密算法(比如三重DES,它还不受专利的困扰)。特别是不要去试图创建你自己的加密算法,除非你是密码学专家而且知道自己在做什么;创建这样的算法是专家才能胜任的工作,也许你想到的别人也想到了,所以安全性你自己也可以考量出来,呵呵,不是打击大家的积极性,只是真的不是那么容易搞定。另外与之相关的一个注意事项是,如果必须创建自己的通信协议,应该检查一下此前出现过什么问题。Bellovin [1989]对TCP/IP 协议族安全问题的评论一类的经典文献可能会有所帮助,在Linux系统下,可以参考Linux 特有的资源包括Linux 加密HOWTO,例如可以观摩一下这里:http://marc.mutz.com/Encryption-HOWTO/
另外,今天正好有同事问到关于linux内核的问题,想起在linux下验证的PAM模块,可插入认证模块(PAM)可以说是一个用于认证用户的灵活机制。很多类Unix 系统都支持PAM,包括Solaris、几乎所有Linux 发行版(如Red Hat Linux、ubuntu、和2.2 版本以上的Debian)和3.1 版本以上的FreeBSD。通过使用PAM,你所编写的程序可以独立于确认计划(如密码、智能卡等)。从根本上来说,程序调用PAM,在运行时刻通过检查本地系统管理员设定的配置来决定需要哪一个“认证模块”。如果你所编写的程序要求认证(如输入密码),则应当包含对PAM 的支持。可以在 http://www.kernel.org/pub/linux/libs/pam/index.html 找到更多有关Linux-PAM 项目的资料。当然,这个站点也是linux内核的主站,可以通过下载内核和重新编译,安装,调整自己的linux系统,用最新的内核可以让你的系统更加的具有扩展性和安全性,对于一些rootkit的工具也可以有比较好的抵御效果,总之,跟上内核的更新,跟上时代的发展是很有必要的。
这些就是一些关于密码和加密的一些随想,有些散,但是希望能够对大家有用,也希望大家批评指正。

About 李 伟斌

Just K.I.S.S To Be Or Not To Be, It's Your Qustion. --Keep It Simple & Stupid.
This entry was posted in Linux, 操作系统, 网络安全, 计算机网络 and tagged , , , , , , , , , . Bookmark the permalink.

发表评论