分类于 心情随笔 | 400 次点击 | 评论(7) »
作者: Apex 发表于

记得在大学的第三年(是第三年,不是大三),一个朋友从北京的某个出版社揽了一个“写书”的活儿。写书呃,多么有成就感的事情啊,当然毫不客气的接下来了。先是一本JavaScript应用示例方面的书,北京方面已经写了两百页,但是出版社需要至少300页才可以出版,但是原来写书的人撂挑子了。于是我和另外一个同学开始根据这本书的原稿学习JavaScript,随后在两个星期内完成了后150页。

随后不久,另外一本书的需求又来了,是从头开始写,关于3DMax的。好歹我也是学建筑的(鄙视自己一下先~~~),使用3D建模是做设计应该掌握的(不过那不是我需要掌握的,是装潢设计的同学要学习的东西),但是到那时为止还没有接触过3DMax软件。为了写书,于是装3DMax,还只能在Windows NT 4.0上安装,头疼,一晚上就重装了四遍,终于将系统和软件都装上了,第一个作品是“茶壶”,呵呵,玩过3DMax的同学应该很熟悉了吧,点两下鼠标,拖放一下就完成了。我和另外两个合作的同学在两个月内完成了这本书,同时也学到了很多3DMax应用方面的技巧:建模、渲染、动画、贴图、材质、二次曲样、变形等等。记得写一个“太空鹰大战X战机”的示例时,还专门跑去租了一部《星球大战》回来看。还记得当时有一个著名的广告:“呼机、手机、商务通,一个都不能少”,也拿来做了一个示例。最后这本书被出版社要求增加到450页之后出版了,心里的那个成就感啊,冈冈的~~~

这本书出版之后,我静下心来想了想,决定不再写书了。试想一下,一个从没有接触过某项技术的人,却要系统的写一本关于这个技术的书,再拿去指导别人学习,可真是“毁”人不倦啊。相信正在看这篇文字的你,也曾经在无边无际书海中看到无数的这种显然是没有经验的人写出来的“书”吧。
阅读这篇日志的剩余部分 »

分类于 PKI, 代码人生 | 466 次点击 | 评论(6) »
作者: Apex 发表于

在“谈谈网银和USB Key (一)”中我们已经了解了公开密钥体系的作用:数据加密、防止抵赖、防止篡改。但是这一切的前提就是保证私钥的安全

绝对不要泄露你的私钥。否则的话,黑客可以:

  • 偷看你给美眉写的肉麻情书;
  • 冒充你的身份给老板发邮件,然后你被叫到老板办公室谈心;
  • 在网上购物,花的却是你的血汗钱;

等等等等,啊呀,实在是太糟糕了。

阅读这篇日志的剩余部分 »

分类于 PKI, 代码人生 | 421 次点击 | 评论(1) »
作者: Apex 发表于

写下这个题目,一时间又不知道从何说起了。事实上,对于网银和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,他也无可奈何。这就意味着,使用公开密钥技术,可以保证只有指定的人(其实就是指定的私钥啦)才可以阅读私密信息。

阅读这篇日志的剩余部分 »

分类于 代码人生 | 383 次点击 | 评论(1) »
作者: Apex 发表于

因为发展的需要,公司新购置了一台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格式的文件,再上传到新服务器上,测试,完美啊,转换之后就可以用指定帐号的邮箱直接收取,太完美了~~~~

明天就去写一个脚本,用来将旧服务器上的邮件转换到新服务器上,为最后的迁移做好准备工作。