打字猴:1.700437155e+09
1700437155
1700437156 如前所述,密码的概念起源于CTSS,在Multics中沿用,然后被采纳进Unix。在名为/etc/passwd的文本文件中,每个用户占一行,记录登录名、用户ID、密码和其他一些字段。从一开始,密码就是以哈希而非明文的形式存储。哈希是一种扰乱形式,要想重新创建原始密码,唯一切实可行的方法是尝试所有可能的密码。这意味着任何人都可以读取密码文件,但不能使用哈希密码以别人的身份登录。
1700437157
1700437158 理论如此。但是,如果哈希没做好,或者密码太简单,就有可能被解密。肯和鲍勃·莫里斯收集了各种Unix系统的密码文件,进行字典攻击实验,尝试疑似密码,看它们哈希之后是否与密码文件中存储的内容相同。他们在20世纪70年代中期的研究表明,10%~30%的密码可以通过这种方式获得。
1700437159
1700437160 尽管各方的技术都更加复杂,字典攻击仍然有效。我们希望今天的用户能更多地意识到弱密码的危险性,但从最近经常使用的密码列表来看,他们并没有意识到。顺便提一下,这种攻击方式也曾在1988年的莫里斯蠕虫(Morris Worm)中使用过。当时鲍勃的儿子罗伯特·莫里斯无意中发布了一个程序,该程序试图在互联网上登录Unix系统并进行自我传播。其机制之一是使用可能的密码字典,如“password”和“12345”。
1700437161
1700437162 鲍勃编写了最初的Unix crypt命令。他于1986年从贝尔实验室退休,成为美国国家安全局(National Security Agency,NSA)的首席科学家,这说明他确实对计算机安全和密码学相当了解。他于2011年去世,享年78岁。
1700437163
1700437164 密码学是鲍勃、肯、丹尼斯、彼得·温伯格和弗雷德·格兰普(图5-19)等几位1127中心成员一直以来的兴趣所在。(丹尼斯的网页讲述了一些有趣的幕后故事。)虽然今天的加密技术都用软件实现,但在第二次世界大战期间,加密技术是通过机械装置完成的。弗雷德不知怎么搞到一台德国军方使用的恩尼格玛机(Enigma)。有人说是他在公开市场上买来的;也有人说是他的父亲,一个美国大兵,在战争结束后从德国带回来的。弗雷德把它保存在贝尔实验室。他离世前,把它留给了肯·汤普森。这台机器就放在我对面的肯办公室文件柜底部抽屉里。
1700437165
1700437166
1700437167
1700437168
1700437169 图5-19 弗雷德·格兰普,约1981年(杰勒德·霍尔兹曼供图)
1700437170
1700437171 有一天,我借它去普林斯顿大学上一堂密码学讲座。我问有没有人见过恩尼格玛机。没有,没人见过,然后我把它从桌子底下拿出来。我从没见过学生们对什么东西有如此大的兴趣,有些学生甚至站到桌子上,想看个究竟。肯后来把恩尼格玛机捐给了一家博物馆。
1700437172
1700437173 1983年,肯和丹尼斯获得图灵奖时,肯发表了颇具先见之明的演讲“Reflections on Trusting Trust”(关于信任的思考),阐述了可以对编译器进行一系列修改,最终在系统的登录程序中安装木马。
1700437174
1700437175 “万勿相信不是完全由你自己创建的代码(尤其是来自雇我这种人的公司的代码)。再多的源码级验证或审查也无法保护你免遭不受信任的代码之害。”
1700437176
1700437177 正如他所指出的那样,同样的技巧也可以应用到硬件。在硬件上,漏洞更难被发现。情况并没有好转,这次演讲在今天仍然具有很强的现实意义。
1700437178
1700437179 5.硬件
1700437180
1700437181
1700437182
1700437183
1700437184
1700437185 软件研发是1127中心的主要工作,但硬件方面的兴趣也得到了充分体现。在早期,将一些奇怪的设备连接到PDP-11上常常需要硬件专业知识,这些设备包括Votrax语音合成器、电话设备、排字机和各种网络设备。这推动了一套计算机辅助设计(Computer Aided Design,CAD)工具经年累月的开发。很多人都参与了,如乔·康登、李·麦克马洪、巴特·卢坎提(Bart Locanthi)、桑迪·弗雷泽、安德鲁·休姆(Andrew Hume)和其他我没想起来的人。
1700437186
1700437187 20世纪80年代初,巴特使用CAD工具设计制造了一套位图终端。当时大多数终端只能显示24行80个固定宽度和高度的ASCII字符。相比之下,位图终端显示的是庞大的像素阵列,每个像素都可以单独赋值,就像今天所有笔记本式计算机和手机的屏幕一样,不过最早的位图显示是单色的。巴特最初将他的位图终端起名为Jerq,影射匹兹堡三河(Three Rivers)公司那套名为Perq的类似设备。
1700437188
1700437189 Jerq最初采用摩托罗拉68000处理器。68000当时颇受欢迎(例如,它经常被用于工作站)。不过Jerq的名称和实现都成了公司政治的牺牲品。Jerq被重新命名为Blit(以快速更新屏幕内容的bitblit操作为名),但只进行了少量生产。AT&T的制造部门西部电气(Western Electric)公司对它做了重新设计,使用了贝尔实验室设计、西部电气公司制造的处理器芯片Bellmac 32000。“Blit”被朗朗上口的“DMD-5620”所取代。重新设计花了整整一年时间,AT&T错失在不断增长的工作站市场上竞争的机会。
1700437190
1700437191 罗布·派克为Blit和5620编写了大部分的操作系统。它最新颖的地方是,计算可以在多个重叠的窗口中进行。重叠窗口以前也见过,但同时只能有一个活动窗口。罗布获得了这项改进的专利。
1700437192
1700437193 5620是很好的图终端,只是比较笨重。我用它来编写图程序,如Troff预览器。它也是罗布·派克编写一系列基于鼠标的文本编辑器的环境。罗布编写的文本编辑器Sam我至今还在优先使用:这本书就是用它写的。
1700437194
1700437195 人们对集成电路和VLSI(超大规模集成电路)也有持续的兴趣。1980年,1127中心开设了为期3周的集成电路设计速成课程,由加利福尼亚理工学院的卡弗·米德(Carver Mead)教授主讲。林恩·康威(Lynn Conway)和卡弗合写过一本关于如何设计和实现集成电路芯片的书《VLSI系统导论》(Introduction to VLSI Systems,1980),他们已经在一些大学里讲过这门课。卡弗天赋异禀,善于编造关于电路工作原理的连串精妙“谎言”。最简单的版本是,当一条红线跨越一条绿线,就构成了一个晶体管。当然,这种严重的过度简化很容易被揭穿,取而代之的是另一个更复杂的“谎言”,而这个“谎言”又会被进一步完善。
1700437196
1700437197 受益于卡弗的出色指导,经过几周的训练后,班上每位学员都能设计制造实验芯片。芯片在宾夕法尼亚州阿伦敦的贝尔实验室工厂组装,然后取回来做实验。当时,贝尔实验室使用最先进的3.5微米技术,而现在的电路通常是7纳米到10纳米,线宽性能至少提升了300倍,因此在给定区域内的器件数量约为10万个。
1700437198
1700437199 我做了个简单的国际象棋时钟芯片,不过从来没有正常工作过,这要归咎于一个严重的逻辑错误。回想起来错误很明显。有几个人开发了支持工具和他们自己的芯片。我的贡献是开发了辅助布线程序,所以尽管我作为芯片设计者失败了,这几个星期还是富有成效的。
1700437200
1700437201 多年以来,我管的部门里至少有六七个人以这样或那样的形式做VLSI——布局检查算法、模拟器、逆向工程,还有一些理论研究。拜卡弗的课程所赐,我还能勉力跟得上他们。
1700437202
1700437203 中心对VLSI的兴趣持续了很长时间,最终促成戴夫·迪策尔(Dave Ditzel)和雷·迈克勒兰(Rae McLellan)开发出CRISP(C Reduced Instruction Set Processor)微处理器,这是最早的RISC处理器之一。RISC是Reduced Instruction Set Computer(精简指令集计算机)的缩写,是一种能设计出比VAX-11/780之类机器更简单、更规则的处理器架构的方式。
1700437204
[ 上一页 ]  [ :1.700437155e+09 ]  [ 下一页 ]