在“谈谈网银和USB Key (一)”中我们已经了解了公开密钥体系的作用:数据加密、防止抵赖、防止篡改。但是这一切的前提就是保证私钥的安全。
绝对不要泄露你的私钥。否则的话,黑客可以:
- 偷看你给美眉写的肉麻情书;
- 冒充你的身份给老板发邮件,然后你被叫到老板办公室谈心;
- 在网上购物,花的却是你的血汗钱;
等等等等,啊呀,实在是太糟糕了。
写下这个题目,一时间又不知道从何说起了。事实上,对于网银和USB Key,有些东西不吐不快,特别是有时在网上的一些论坛里看到有人“分析/评论”使用USB Key的网银的安全性时,对于一些“不懂装懂”的行为,有一种莫名的悲哀感。于是乎写下此文,希望能够起到一点科普的作用。
基础知识
我们常见的加密,使用的是“对称加密算法”,也就是说,用一个密码加密的东东,同样可以用这个密码来解密。我们称这样的加密算法为“对称加密算法”,用于对称加密算法中的密码,我们称之为“对称密钥”。一旦别人知道了你的密钥,那么他就可以任意的解密你的秘密数据了。这样的算法很多,常见的有DES,3DES,AES,Blowfish等等。
使用USB Key来保证网银的安全,实际上是利用了PKI(公开密钥体系)技术中的数字证书应用,而PKI技术中至关重要的一点就是“保证私钥的安全”。为了理解所谓的“保证私钥的安全”,我们先举一个简单的例子:假定有这样一种计算方法,可以将一篇文章用一个密钥A加密,要想解密的话,必须用另一个密钥B来解密,反过来也一样,用密钥B加密之后得到的密文只能用密钥A来解密。这里的密钥A和密钥B一定是成对出现的,一一对应,绝对不会出现用密钥A加密的东西可以用密钥C、密钥D…等等来解密。这样的算法我们称之为“非对称加密算法”,相对应的,这里的密钥A和密钥B我们称之为“密钥对”,因为它们是成对出现的。密钥对中的一部分可以随意公开,例如其中的密钥A,我们称之为“公开密钥”,简称公钥。而另外一半是自己持有的,需要保密,我们称之为“私有密钥”,简称私钥。所谓“公开密钥体系”,就是指这里的公钥了。我们常听到的RSA,就是这样一种算法。此外还有DSA、ECC(椭圆曲线算法)等等。
使用公开密钥体系,不仅仅可以用来对数据加密,还可以用来确定身份。试想一下:你有一对密钥对(A和B),其中A是公钥,被放在网上,任何人都可以取得。现在有人(比如张三)想给你发送一份邮件,于是张三在网上找到你的公钥,然后将邮件用你的公钥加密并传送给你。那么,只要你的私钥没有泄露出去,就只有你能够解密这封邮件(使用和A相对应的私钥B来解密)。即使邮件在网络上传输的过程中被黑客获取了,没有私钥B,他也无可奈何。这就意味着,使用公开密钥技术,可以保证只有指定的人(其实就是指定的私钥啦)才可以阅读私密信息。
因为发展的需要,公司新购置了一台HP机架式服务器用作外部网络服务之用,包括邮件服务、WEB服务、在线演示等等。其中,WEB服务很容易迁移,在线演示是新增加的内容,都没有什么特别的地方,重头戏在于邮件系统的建设。
考虑到邮件系统的性能以及日益增长的员工数量,以及垃圾邮件和病毒防护等,综合考虑之后,决定放弃使用sendmail,改用postfix来做邮件服务。在制定迁移方案时,发现一个比较难以处理的问题,就是如何将现有已经存在的sendmail邮箱中的邮件转移到新服务器的postfix系统中。
直接复制是不可能的,因为原来的sendmail使用了MailBox格式,即每个用户一个大文件,里面放着这个用户的所有邮件,而且这个“用户”是FreeBSD系统中的真实用户。但是在postfix中,采用MailDir的方式存放邮件,每个邮件就是一个文件,系统真实用户也不存在了,全部使用的是虚拟用户,一个postfix进程(创建多个线程)搞定整个邮件服务,这样可以一定程度上提升性能,不像sendmail那样收发邮件时系统中出现上百个sendmail的进程。
后来想到一个笨办法:因为是两台服务器,用新的替换旧的(在ISP处托管的),所以打算新服务器上线之后,将旧服务器搬回公司,挂在公司内网上,然后让员工设置其邮件客户端,先从旧服务器上收取邮件,完成之后,再修改其邮件客户端,使之指向新服务器,完成日常邮件收发工作。之所以这么做,是为了保证员工在最后一次收取邮件到下一次收取邮件的这个时间间隔中,客户发过来的邮件能够收取到,不会丢失。但是这个办法实在是很…嗯…….恶心。现在想起来,不单是恶心,还有很多问题:为每个员工带来了额外的操作,没有做到“平滑迁移”;旧服务器搬回公司,可以保证总部的员工能够收取到所有邮件,但是外地办事处的同事以及国外分公司的同事就没辙了;等等等等……
这个问题就一直悬着,没有妥善的解决办法。今天去公司加班,做postfix的垃圾邮件过滤设置和在线杀毒设置,在等待服务器下载代码并编译的过程中(使用FreeBSD的Ports方式安装所有软件),又顺手打开了Firefox到处瞎逛,有postfix的中文论坛、官方论坛、FreeBSD的论坛等等。结果最后在蓝森林的Unix论坛中看到一句不起眼的话:“mb2md.pl可以将Mailbox转换为MailDir格式”,啊,这不正是我要的东东嘛~~~赶紧用Google搜索mb2md.pl,终于在这里找到了转换工具。
立刻从旧服务器上下载一个MailBox格式的文件,再上传到新服务器上,测试,完美啊,转换之后就可以用指定帐号的邮箱直接收取,太完美了~~~~
明天就去写一个脚本,用来将旧服务器上的邮件转换到新服务器上,为最后的迁移做好准备工作。
一直想好好的使用一下MacOS X,曾经用PearPC虚拟机来玩过,但是毕竟是虚拟机,速度太慢。后来在台式机上装了MacOS X,那时候还是刚刚推出基于Intel CPU的版本,有很多的问题,很多程序都不是原生的x86指令集的,需要一个中间层转换(相当于用x86芯片解释执行RISC指令),速度也比较慢。现在好了,有了真正x86的版本,很想试试,但是据说需要酷睿2双核才能跑,而我的台式机只不过是P4而已,于是只好忍了。
现在手头有了一部配置不错的本本,于是装MacOS X的心思又开始活动起来。正好有同事在MacOS X下开发,用的是x86的Leopard,我也就装一个。
我不想影响辛辛苦苦装好的WinXP的开发环境,只能另外找一块硬盘。正好手头有一块80G的笔记本硬盘,是我用来做移动硬盘用的。本想把这块硬盘换到本本上,但是本本上的硬盘是SATA的接口,而移动硬盘是IDE接口,无法装上去,没办法,只好用USB接口了。还好本本的BIOS支持从USB Mass Storage启动,否则还真是没办法。
同事手头的Leopard是用 dd 安装的,倒是方便,很快就搞定,然后我兴冲冲的将移动硬盘连到本本上,启动,熟悉的Mac启动界面出现在眼前,下面的圈圈转啊转,大家都很兴奋,但是最后,出现了该死的四国语言界面,给我们泼了一盆凉水。
同事告诉我,他还有一张安装盘,可以试一下直接安装方式,于是晚上回到家,开始用光盘安装。(Dell 1420的光驱真的不好,老是嘎吱嘎吱的让人烦) 安装过程中还出现一些小插曲:向导问是否要从其他Mac机上transfer文档和设定,我当然是选择不转移,结果画面又回到第一步,整个一个死循环,在网上Google了一下,还好有解决的办法,就是启动时用 -s 参数以单用户方式进入,手工创建一个“向导已经完成”的标志文件来跳过这个向导。
但是,启动之后还是四国语言(相当于Windows的蓝屏)。没有办法了吗?难道只有放弃?不,绝不。经过尝试,使用安全模式是可以进入的。启动时使用-x参数即可。终于,在本本上出现了真正的Mac界面,如此的……难看,因为没有装显卡驱动,默认分辨率是1026×768,但是本本的屏幕是1440×900,结果文字、图标都被压扁了,难看死了。
于是开始寻找驱动,经过漫长的搜寻,终于在一个论坛中找到了可用的驱动,天,一个显卡驱动居然要七十多兆。驱动安装的时候最后系统死掉了,没想到重启系统,居然一切正常,驱动也工作良好。看着华丽的苹果界面,心里那个爽啊。
下一步就是网卡驱动了,不过经过几个小时的搜寻,愣是无解,唉,先这样吧。回头找个XCode装上,就可以在Mac上写程序了,呵呵。
[更新于 2008-03-24 11:07]
上次安装Leopard时只给系统盘分了10G,其中系统占用了5G多。今天试图安装XCode的时候,发现XCode需要3G多的空间,没有办法,只好重新安装。重装的时候,注意了一下安装选项。重新安装了几次Leopard,换用不同的配置项进行安装,终于搞定了四国语言问题。目前,Leopard已经可以正常启动,显卡驱动良好,QE和CI已经工作,遗憾的是网卡仍然搞不定。
安装时,使用原生内核“Stock Kernel”,其他的不选。附加项中的SpeedStep不能选,因为我使用了EFI。估计第一次安装的时候就是这里没有注意。其实在选项说明中已经说明了:破解版本已经内置了SpeedStep支持,如果使用了EFI,就不能选择SpeedStep了,唉,大意啊。
最近公司给我配了一部本本。预算是8K,型号自己选。于是在网上寻觅了几天,终于定了Dell Inspiron 1420。当然,标配是用不了8K的,于是乎调整了一下配置,最后7999.26拿下。
具体配置如下:
- CPU: T7250 (2.0GHz 英特尔®酷睿™2双核处理器)
- 内存: 2G
- 显卡:NVIDIA GeForce 8400M GS (128M独立显存)
- 显示:14.1英寸WXGA TFT显示屏 1440×900 (比我的台式机都要好)
- 硬盘:160G SATA 5400转
- 光驱:HL-DT-ST DVD+-RW GSA-T21N
- 声卡:SigmaTel
- 网卡:Broadcom NetLink 59xx
- 无线:Intel Pro/Wireless 3945ABG
- 电池:9芯
因为是工作用机,所以没有搭配蓝牙、摄像头什么的。这部本本我还是比较满意的,性价比相当不错。要说缺点嘛,一个是光驱读盘的时候嘎吱嘎吱的让人不爽 [2008-04-16 顺序读盘的时候光驱基本无声,例如看碟子的时候,但是像装软件这种需要随机读盘的操作就会有很大的噪声] ,还有就是稍微重了一些,这也无可厚非,毕竟为了增加续航时间,我用的是9芯电池。
拿到本本之后,第一件事情是将预装的Vista Home Basic版本干掉,还是用XP比较爽,没有什么软件兼容性问题,而且,就算是要用Vista,也要用旗舰版嘛,你说是不是 :) 。预装的Media Direct也干掉,这是工作用机,再说了,听音乐有iPod,看片片有PSP,哈哈。然后就唏哩哗啦的装上了XP。
然后就是工作环境了,永远的Visual Studio 6,然后是Visual Studio 2008,MinGW配合Code::Block等等。然后是Apache/MySql/PHP,Python,然后是打包工具NSIS,输入法又回归了紫光,不用搜狗了(不喜欢这名字)。翻墙工具Tor,编辑工具EmEditor/UltraEdit/WinHex,比较工具Beyond Compare,防治病毒用免费的小红帽,虚拟光驱Daemon Tools,因为工作需要经常使用MSN,于是顺手装上一个MSN Shell,邮件客户端依然使用FoxMail(我对FoxMail的感觉越来越不爽了),垃圾邮件过滤使用POPFile,远程SSH客户端使用SecureCRT/WinCAP,远程Windows控制使用UltraVNC,源代码版本控制客户端TortoiseSVN,压缩软件7zip,再加上Photoshop/DreamWare/Firework来做做网页,NetTransport/FileZilla下载一些东东,FireFox/Mathon来上网,基本上就齐备了。哦,忘记装Office 2007了,呵呵。
这样,我基本上把整个开发平台转移到这部本本上了。
![Apex[有所思,有所志]](http://apex.ncksoft.com/wp-content/themes/deepwater/images/dw_site_logo.png)