20189312任方园《网络攻防》第十次作业

冯·诺依曼体系结构

美籍匈牙利数学家冯·诺依曼于1946年提出存储程序原理,把程序本身当作数据来对待,程序和该程序处理的数据用同样的方式储存。 冯·诺依曼体系结构冯·诺依曼理论的要点是:计算机的数制采用二进制;计算机应该按照程序顺序执行。人们把冯·诺依曼的这个理论称为冯·诺依曼体系结构。

体系结构

(1)采用存储程序方式,指令和数据不加区别混合存储在同一个存储器中,数据和程序在内存中是没有区别的,它们都是内存中的数据,当EIP指针指向哪 CPU就加载那段内存中的数据,如果是不正确的指令格式,CPU就会发生错误中断. 在现在CPU的保护模式中,每个内存段都有其描述符,这个描述符记录着这个内存段的访问权限(可读,可写,可执行).这就变相的指定了哪些内存中存储的是指令哪些是数据)。指令和数据都可以送到运算器进行运算,即由指令组成的程序是可以修改的。

(2)存储器是按地址访问的线性编址的一维结构,每个单元的位数是固定的。

(3)指令由操作码和地址组成。操作码指明本指令的操作类型,地址码指明操作数和地址。操作数本身无数据类型的标志,它的数据类型由操作码确定。

(4)通过执行指令直接发出控制信号控制计算机的操作。指令在存储器中按其执行顺序存放,由指令计数器指明要执行的指令所在的单元地址。指令计数器只有一个,一般按顺序递增,但执行顺序可按运算结果或当时的外界条件而改变。

(5)以运算器为中心,I/O设备与存储器间的数据传送都要经过运算器。

(6)数据以二进制表示。

特点

(1)计算机处理的数据和指令一律用二进制数表示

(2)顺序执行程序

(3)计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成。

作用

冯.诺依曼体系结构是现代计算机的基础,现在大多计算机仍是冯.诺依曼计算机的组织结构,只是作了一些改进而已,并没有从根本上突破冯体系结构的束缚。冯.诺依曼也因此被人们称为“计算机之父”。然而由于传统冯.诺依曼计算机体系结构天然所具有的局限性,从根本上限制了计算机的发展。


根据冯·诺依曼体系结构构成的计算机,必须具有如下功能:把需要的程序和数据送至计算机中。必须具有长期记忆程序、数据、中间结果及最终运算结果的能力。能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力。能够根据需要控制程序走向,并能根据指令控制机器的各部件协调操作。能够按照要求将处理结果输出给用户。


将指令和数据同时存放在存储器中,是冯·诺依曼计算机方案的特点之一 计算机由控制器、运算器、存储器、输入设备、输出设备五部分组成 冯·诺依曼提出的计算机体系结构,奠定了现代计算机的结构理念

图灵机

图灵机,又称图灵计算、图灵计算机,是由数学家艾伦·麦席森·图灵(1912~1954)提出的一种抽象计算模型,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人们进行数学运算。

图灵机的基本元素

带:是存储装置,两端是无穷的且被划分成无穷的方格,每个方格可以存一个符号;

控制器:有有限个状态;

读写头:主要功能是读带上的符号,写带中的方格。

图灵机的基本思想

图灵的基本思想是用机器来模拟人们用纸笔进行数学运算的过程,他把这样的过程看作下列两种简单的动作:

在纸上写上或擦除某个符号;

把注意力从纸的一个位置移动到另一个位置;

而在每个阶段,人要决定下一步的动作,依赖于 (a) 此人当前所关注的纸上某个位置的符号和(b) 此人当前思维的状态。

为了模拟人的这种运算过程,图灵构造出一台假想的机器,该机器由以下几个部分组成:

1.一条无限长的纸带 TAPE。纸带被划分为一个接一个的小格子,每个格子上包含一个来自有限字母表的符号,字母表中有一个特殊的符号 表示空白。纸带上的格子从左到右依此被编号为 0,1,2,... ,纸带的右端可以无限伸展。

2.一个读写头 HEAD。该读写头可以在纸带上左右移动,它能读出当前所指的格子上的符号,并能改变当前格子上的符号。

3.一套控制规则 TABLE。它根据当前机器所处的状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作,并改变状态寄存器的值,令机器进入一个新的状态。

4.一个状态寄存器。它用来保存图灵机当前所处的状态。图灵机的所有可能状态的数目是有限的,并且有一个特殊的状态,称为停机状态。

基本图灵机

一个基本Turing机M由下述七部分组成:
状态集Q,它是非空有限的集合;

带字表C,它是非空有限的集合

动作函数 δ,QxC→C∪L,RxQ

空白符B∈C;

输入字母表A⊆C−B;

控制器的初始状态q1∈Q

接受状态F⊆Q,F中的元素叫做接受状态。记作M=(Q,A,C,δ,B,q1,F),缩写为TM

区别与联系

图灵机是为了探索可计算问题的数学领域,并获得描述这些计算的方法而发明的理论概念。冯-诺伊曼体系结构是一种用于构建实际计算机的体系结构(实现图灵机器理论上描述的内容),是一种实现通用图灵机的计算设备。

“程序=指令+数据”

我认为指令构成了方法,数据就像原材料,将方法运用到原材料上能达到我们期望的目的,这就是程序。比如你想实现一个图片识别的程序,图片是数据,实现图片识别的方法时指令,这两者缺一不可,缺少一个都只能干瞪眼,什么都做不了。

安全问题

缓冲区溢出

计算机对接收的输入数据没有进行有效的检测(理想的情况是程序检查数据长度并不允许输入超过缓冲区长度的字符),向缓冲区内填充数据时超过了缓冲区本身的容量,而导致数据溢出到被分配空间之外的内存空间,使得溢出的数据覆盖了其他内存空间的数据,使程序转而执行其它指令,以达到攻击的目的。

缓冲区溢出攻击发生的根本原因在于,现代计算机系统的基础架构冯诺依曼体系本质存在的安全问题,即采用了“存储程序”的原理。因为数据和程序都存储在同一内存中,所以可以通过缓冲区溢出漏洞,通过溢出与存储程序内存相邻的存储数据的内存,达到覆盖存储程序的内存的效果,从而把这部分被覆盖的程序内容注入了恶意的攻击指令,达到攻击的目的。

XSS攻击

XSS攻击的原理是,利用了WEB应用程序对用户输入内容的安全验证与过滤不够完善,导致用户的输入内可以包含HTML、JavaScipt及其他脚本代码,可能会让恶意代码逻辑包含在服务器动态产生和更新的网页中,导致其他用户访问网页时下载并执行了恶意脚本,受到攻击。黑客界共识是:跨站脚本攻击是新型的“缓冲区溢出攻击“,而JavaScript是新型的“ShellCode”。

SQL注入攻击

SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。

三种攻击的比较##

由上面三部分对缓冲区溢出、XSS攻击、SQL注入攻击的原理的分析,可以发现共同点,它们都是利用了漏洞,将恶意代码通过某种方式注入了目标,然后执行恶意代码达到攻击的目的。因此防范的方法应该在于如何防止这些代码被注入,应该有一个更安全的检查机制,杜绝这些代码的注入。访问控制是目前研究的一个热点,对于海里数据和海里资源,应该遵循最小化访问原则。

参考链接

冯诺依曼体系结构百度百科

图灵机百度百科
缓冲区溢出

posted on 2019-05-05 21:26  20189312任方园  阅读(188)  评论(1编辑  收藏