购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第一回
现代电子计算机登场信息安全风险显端倪

第二次世界大战期间,亚欧大陆成了主战场。众多一流科学家为躲避战乱,从亚洲和欧洲跨过大洋,来到远离战火的美洲,寻找安身立命之地。

渐渐地,美国的科学家队伍越来越庞大,几乎囊括了全世界各个学科领域的顶级人才。这为美国在日后研究核武器、信息技术等开创性的新领域,提供了得天独厚的条件。

在反法西斯大旗的引领下,包括举世闻名的、研制原子弹的“曼哈顿计划” 在内,一个又一个划时代的颠覆性军事工程计划,开始在美国实施。

这些重大工程计划的出现,一下子催生出对数学计算的庞大需求。很多科学家开始思考这样一个问题——如何才能制造出可以替代人工进行大规模数学计算的机器。

很快,研制计算机器的契机便出现了。

军事需求催生现代电子计算机

1941年12月,日本偷袭珍珠港,美国对日本宣战。为了计算炮弹弹道的轨迹,美国陆军的弹道研究实验室(Ballistic Research Laboratory,BRL)征调了位于费城(Philadelphia)的宾夕法尼亚大学莫尔电气工程学院(以下简称莫尔学院)的微分分析机 (见图1-1)。

图1-1 微分分析机

由于每天需要计算的弹道轨迹多达几千条,微分分析机远远满足不了炮兵部队的胃口。对大规模数学计算的需求变得非常迫切,制造一台计算机的想法,从科学家的头脑中来到军方领导的心头。

1942年秋天,由于设备的计算能力跟不上计算需求的持续增长,美国陆军弹道研究实验室的计算工作陷入了危机。1943年春,该实验室的芝加哥大学数学博士、陆军上尉赫尔曼·戈德斯坦(Herman H.Goldstine),找到了莫尔学院的工程师约翰·莫奇利(John W.Mauchly)。莫奇利对制造电子计算机抱有“传教士般的热情”,两人一拍即合。在戈德斯坦的举荐下,莫奇利撰写了一份研制电子计算机的报告,并将报告提交给美国军方。同年4月9日,莫奇利的这份报告获得了美国军方的批准,美国军方与莫尔学院签订了制造计算机的合同。制造世界上第一台电子计算机——埃尼亚克(ENIAC)的工作,就在莫尔学院紧锣密鼓地开始了。

1944年初夏的一天,在美国陆军著名的武器试验场——“阿伯丁试验场”外的火车站月台上,发生了一次足以载入史册的偶遇。时任“曼哈顿计划”科学顾问的著名数学家冯·诺依曼 ,与埃尼亚克项目的军方负责人戈德斯坦相遇了。“小上尉”戈德斯坦主动走向“大人物”冯·诺依曼,并向他提起他们正在做的一件大事——研制一台每秒进行300次乘法运算的电子计算机。冯·诺依曼对此非常感兴趣,向戈德斯坦表示,希望进一步了解这个项目的情况。

于是,在戈德斯坦的安排下,冯·诺依曼专程赶往费城参观调研。

矗立在冯·诺依曼面前的埃尼亚克(见图1-2),是一个占地170m 2 的庞然大物,它有30个操作台、6000多个开关。埃尼亚克看起来就像一个巨型的八爪鱼,数以百计的转接线把计算机的不同单元连接在一起。

图1-2 第一台现代电子计算机——埃尼亚克

冯·诺依曼看到,埃尼亚克在工作过程中面临着一个难题:每当要计算一道新的问题时,必须针对这个问题进行专门的编程。在埃尼亚克上编程,可不像我们现在用键盘敲几行代码那么简单,而是需要重新部署计算机不同单元之间的转接线。

对于在埃尼亚克上编程这件事,《天才的拓荒者——冯·诺依曼传》中有一段非常形象的描写:计算机操作员跑来跑去,重新把转接线的插头插好,设定每个计算单元控制器的机械开关,甚至还要搬动设备。

如何解决这个令人困扰的难题呢?埃尼亚克的设计团队将期盼的目光投向了冯·诺依曼。

离开费城后,冯·诺依曼陷入了沉思:到底应该如何设计一台更先进、更完备的计算机呢?

冯·诺依曼体系结构为计算机安全埋下隐患

所谓程序,就是计算机能够识别和执行的指令;编程,就是通过某种方式,编写出一系列计算机能执行的指令。

接下来的几个月,冯·诺依曼以顾问的身份,和设计团队就如何改进计算机设计的问题,进行了深入讨论。冯·诺依曼指出,新的计算机应该具备将程序存储起来的能力,而不能再依靠调整连接线的机械方式进行编程。

1945年,冯·诺依曼关于计算机体系结构的思考基本成形了,于是他在6月30日,与戈德斯坦、勃克斯等人联名发表了计算机历史上非常著名的“101页报告”,即 First Draft of a Report on the EDVAC ,开创性地提出了“存储程序控制”体系结构,被称为冯·诺依曼体系结构(见图1-3)。

从那时起,直到今天,我们使用的几乎所有的计算机,采用的都是冯·诺依曼体系结构。冯·诺依曼提出,除了运算器和控制器,存储器也应该是计算机的核心部件。他受到生物学家对人类大脑组织结构研究的启发,使用了记忆(Memory)这个词,而不是传统的储藏室(Storage)这个词,来命名计算机的存储器。

图1-3 冯·诺依曼体系结构

冯·诺依曼提出,计算机的存储器应该既可以保存数据,也可以保存程序。而所有数据,以及描述如何操纵这些数据的程序,都应该采用二进制数字“0”和“1”的形式,串行存储在计算机的存储器中,在控制器的调度下一批接一批地送到运算器中处理。

这样一来,当人们需要重新编程时,就不需要再像埃尼亚克那样,改变计算机的结构和各单元之间的连接线,而只需要将新的程序代码连同新的操作数据送入存储器,计算机就会自动按照新的程序去执行。

冯·诺依曼体系结构彻底解决了一直以来困扰计算机设计者们的“重新编程非常麻烦”的问题,从此以后,计算机就可以用电子而非机械的方式来存储并修改程序了。

随后,冯·诺依曼再接再厉,提出了新的编程方法,发明了用于描述算法的程序流程图。

在短短的一两年内,冯·诺依曼不仅明确了现代电子计算机的顶层体系结构,推动了硬件与软件相分离的设计理念,还一手创造了“软件编码”这个新的技术领域,催生了计算机程序员,也就是我们现在常说的“码农”这个行当。从此之后,计算机的用户可以先在自己的办公室里面,把程序编出来,然后送到计算机上运行。

然而,冯·诺依曼体系结构并没有充分考虑安全防护的问题,为计算机埋下了“深入骨髓”的安全隐患。有人提出,既然数据和程序都是以“1”和“0”的形式串行存储在存储器中的,如果有人恶意混淆这两者,在输入数据时用数据覆盖程序,从而改变程序的运行,那么会出现怎样的结果呢?

在那个年代,人们对数学计算的需求如此强烈和迫切,以致对这些一时还看不出什么严重后果的“小问题”,并没有放在心上。埃尼亚克面世后,一系列按照冯·诺依曼体系结构设计的现代计算机产品陆续登场,计算机的使用范围也逐渐由弹道计算等军事领域,拓展到科学研究等民用领域。

现代电子计算机,以其前所未有的运算速度、前所未有的运算精度、前所未有的应用广度,在科学界掀起了一阵旋风。

计算机时代来临了。

分时系统提升计算机利用率,带来三方面安全风险

20世纪50年代,虽然计算机的用途变得越来越广泛,但对大部分机构来说,计算机仍然是一种稀缺资源。程序代码的调试、运行、改错都需要时间,在这段时间里,计算机实际上是被一个用户所独占的。据统计,在某个用户独占计算机的一小时中,真正用于计算的平均时间只有几分钟,剩下的五十多分钟内计算机一直处于空闲状态,宝贵的计算资源被白白浪费了。

多人共享一台计算机就成了高效利用稀缺资源的最好方法。例如,在麻省理工学院(Massachusetts Institute of Technology,MIT)多人共用一台计算机的情形非常普遍。老师和学生们带着自己编写的程序,在计算机房的门外排起了长队,从白天一直排到深夜。

计算机用户,一边排着长队,一边摇着头、叹着气,互相之间吐槽着。

为了解决排队等待时间过长的问题,英国计算机科学家克里斯托弗·斯特雷奇 (Christopher Strachey)于1959年提出了“分时”的概念。斯特雷奇指出,单个用户轮流使用计算机的效率之所以低下,是由人与计算机之间的交互模式造成的。

单个用户输入程序后,一般会停下来等待。如果让多个用户同时使用计算机,就可以在第一个用户停下来等待的时间内,让第二个用户利用这个空当来操作计算机。斯特雷奇的具体设想是,把多个操作控制台连接到一台大型计算机,这样一来,多个用户就可以同时使用计算机了。因为计算机运行程序、反馈结果的速度足够快,所以用户根本意识不到,自己正与其他人共享计算机,会产生一种“独享计算机”的感觉。

图1-4 运行首个分时系统的计算机IBM 7090

根据这一设想,1961年,麻省理工学院在IBM 7090上开发了第一个分时系统,支持3位用户,在系统调度下各自独立运行和编辑程序。运行首个分时系统的计算机IBM 7090如图1-4所示,图中人物是费尔南多·科尔巴托

分时系统显著降低了计算机的使用成本,优化了用户的使用体验,使计算机更加流行。但分时系统的广泛应用,又带来了新的信息安全风险。

在分时系统诞生前,计算机由专人看管,每个用户的使用都有记录可查,几乎没有出现过信息安全方面的问题。在分时系统出现之后,每个用户都可以独立地使用输入、输出终端与计算机同时进行交互。这样一来,计算机上的程序和用户的行为,都变得更复杂了。

分时系统的应用带来了三方面的安全风险:第一,同一台计算机上不同用户发起的多个进程可能会相互干扰,从而导致错误;第二,一个用户存储在计算机上的信息,其他用户也能看见,用户的隐私没有了;第三,有的用户可能会恶意篡改计算机中的信息,甚至输入破坏性的代码,从而造成不可预期的问题。

能不能设计出没有安全风险的计算机系统呢?

当出现这些问题的时候,时间已经来到了20世纪60年代。现代电子计算机在其问世十多年之后,成了高校和研究机构开展研究的重要工具。因此,分时系统带来的这些安全风险不再“无人问津”,而是受到有识之士的高度重视。对计算机安全的关注,给计算机和操作系统的设计者们提出了一个新的重大课题——能不能设计出没有安全风险的计算机系统呢?

划重点

(1)军事需求催生了现代电子计算机。冯·诺依曼在ENIAC的基础上,提出了现代计算机的体系结构——冯·诺依曼体系结构。然而,将数据和程序一同存储在存储器中的设计,为计算机埋下了“深入骨髓”的安全隐患。

(2)分时系统让多人共用一台计算机成为可能,提高了计算机的利用效率,但也带来了新的安全风险:

不同用户的进程互相干扰;

私密信息被其他用户看到;

用户恶意输入破坏性代码。

参考文献

[1]马丁·坎贝尔-凯利,威廉·阿斯普雷,内森·恩斯门格,等.计算机简史[M].蒋楠,译.3版.北京:人民邮电出版社,2020.

[2]诺曼·麦克雷.天才的拓荒者——冯·诺依曼传[M].范秀华,朱朝晖,成嘉华,译.上海:上海科技教育出版社,2018.

扩展阅读

(1)世界上的第一台计算机诞生在哪一年?(百度知道)

(2)分时操作系统。(百度百科)

自测题

1 . 判断题

现代电子计算机的诞生与第二次世界大战有关。( )

2.判断题

冯·诺依曼在设计计算机体系结构时,充分考虑了安全防护问题。( )

3.多选题

关于冯·诺依曼提出的计算机体系结构,以下选项中正确的有( )

(A)内存储器是计算机的一个核心部件

(B)他用Storage(储藏室)而不是Memory(记忆)来表示内存

(C)内存中既可以保存数据,又可以保存程序

(D)重新编程应改变硬件连接关系

4.单选题

以下安全风险中,哪一个不是由分时系统的出现带来的?( )

(A)同一台计算机上不同用户发起的多个进程可能会相互干扰,从而导致错误

(B)一个用户存储在计算机上的信息,其他用户也能看见,用户的隐私没有了

(C)用户可能会恶意篡改计算机中的信息,甚至输入破坏性的代码,从而造成不可预料的问题

(D)用户可能会在输入数据时恶意使用数据覆盖程序,从而改变程序的运行 kjw4mH726tMZEzD7NoZ5bZYF+vNDZW7sQVBtePgWWUSKg/6FoJPnb6tOtnJvL/bU

点击中间区域
呼出菜单
上一章
目录
下一章
×