“计算机安全”这个词涵盖了当今的计算机用户和计算机产业面临的关键问题的复杂性和严重性。随着越来越多的公司依赖于无处不在的网络接入、计算机存储和敏感信息的检索,对可信任用户进行验证的需求越来越迫切。

        即使在个人生活当中,与银行、信用卡和其他金融数据等相关的敏感且私有信息也会在不经意间以某种方式传输到了互联网上。虽然个人信息非常重要,但风险也不断地在那些服务个体的公司的网络环境中出现。大企业涉及的款额巨大,因此会有罪犯花许多时间企图偷偷地闯进来。

        本期拆解究竟又有什么新的惊喜呢?下面让我们来窥探一下在全球得到广泛使用的阻止计算机入侵者的硬件令牌(hardware token)应该是个不错的选择。Planet Analog网站编辑Bill Schweber一直想找一个有趣的小东西加以分析。功夫不负有心人,他在一列从纽约开往波士顿的列车上发现了一个RSA SecurID令牌。由于在车上没有找到失主,根据有关指示,Bill没有将该安全设备返回给RSA,而是将它送到Portelligent公司进行拆解分析。

        这个来自RSA Security公司的SecurID 600设备是一个很小的独立式令牌,可以挂在钥匙串上或装进用户的口袋。该设备功能看上去非常简单,就是产生一个六位数的代码,然后结合用户的PIN码实现计算机登录的双级验证。

        虽然我们有各种形式的密码,但仅凭它们是很容易受到攻击的。如果潜在入侵者对你有足够的了解,诸如你家狗的名字加上你的生日这些看上去稳健的组合实际上是非常脆弱。“Rover0859”表面上看是很随机的一串字符,但计算机惯犯们能轻而易举地对其破解。

        这正是SecurID发挥作用的地方。令牌显示的6位数字代码是通过哈希函数运行硬件令牌中独特的64位对称种子密钥产生的。而对应的服务器知道令牌发出的每个密钥,并可以通过哈希逆运算结合用户PIN码验证用户身份。显然,如果这只是个静态字符串的话就一点用也没有了,因为破解它只是时间问题。

        SecurID采用很小的内部电池供电,可以利用内部实时时钟每隔一分钟产生一个新的代码,而主机端解决方案则同步计算这个不断变化的目标代码以保持与令牌一致。新代码看起来像是随机的,与令牌密钥和哈希函数无关,但对于功能强大的服务器主机来说,当天的每一分钟里只有一个正确答案。

        令牌串码和源自实时时钟的间戳似乎是代码产生的附加因素。但这已经不在我们讨论范围之内了,还是让我们来关注硬件吧!

        换句话说,令牌和服务器是以一分钟的间隔分别产生和期望一个新的代码,从而将安全性提高到了用户创建的标准密码之上。

        Bill送来拆解的这份礼物表面看起来很简单,但很快就显示了其内部的复杂性。将那两片塑料壳分开来并不特别困难,但当我打开后,拔出来的是一块环氧密封的电路板。显然,拆解第一步就遇上了很大的困难。

        CR2032钮扣电池和单段单色LCD显示器则是很明显的,尽管采用整体的外形(不明白为什么不使用黑色环氧!),不过其他东西都包含在环氧树脂中。由于以前遇到过类似问题,我于是试用了一些窍门以尽可能完好地取出电路板,并作进一步的了解。

        就基本元件的复杂性而言,里面并没有令人惊讶的地方。

        唯一的有源电路部分是引线焊接在电路板的一颗芯片。与约数十个无源分立器件和晶体振荡器一起,这个3.1x3.2mm裸片用于实现实时同步时钟的必需功能、LCD控制、密钥和代码的存储,以及实现令牌密钥和其它数据位的哈希处理的加密等。裸片的标记并没有显示制造商的名字,可能是混合有定制器件。

        晶振来自瑞士Micro Crysal公司,基本上能肯定是实时时钟应用所需的标准32.768kHz振荡频率。LCD非常简单,有太多的供应商来源可能性,它们通过热密封的碳/聚酯扁带状电缆连接到电路板上。

        裸片本身含有存储器块,用于保存种子密钥、串码以及其他可编程数据。一些状态机代码也可能被编程进存储器,隐藏在粘性标签后的外部触点用于编程。其他的芯片面积则全给了时钟和硬件哈希逻辑。由于裸片很明显地使用了大尺寸工艺技术,因此总门数量并不高。

        也许最让人觉得奇怪的是明显缺少嵌入式存储器的自毁机制。Portelligent公司以前曾见过更复杂的安全微控制器,就如在简单的游戏控制器中,其私有代码也是屏蔽的。但由于缺少黑客加密方面的专业知识,我无法预测该问题对令牌完整性来说有多重要。结合滚动代码属性和PIN覆盖,该解决方案从实际应用角度来看是相当稳健的。

        那个皮制的小夹也是该方案中一个吸引人的部分。而电镀屏蔽罩与套子的内部表面平齐,有可能是防止通过嗅探幅射出来的LCD驱动信号以跟踪显示代码的措施。

        无论如何,该器件制造成本应该非常低并非常有效,RSA完全可以凭借它占据两层硬件验证解决方案的主要市场份额。如果读者想进一步了解这方面的信息,可以到www.rsa.com网站上搜索所用密码算法和加密技术的更详细讨论。

        对于像我这样的硬件人员来说,SecurID 600只是众多的单芯片应用中一个设备罢了。