百度空间 | 百度首页 
 
查看文章
 
菜鸟要保障自己系统的安全需要知道的一些基本知识(二)
2007-08-03 17:56

        前面讲了关于安全意识方面的一些问题。这一部分来讲一些系统方面的知识,这些知识帮助我们正确的理解病毒、木马的原理,并对它们的防范形成一些基本的概念。这些基本的系统相关知识归纳为如下几类——

        1 系统体系结构及软件的相关概念
        2 Windows操作系统与安全相关的知识
        3 网络的相关知识


1 系统体系结构及软件的相关概念

1.1 电脑系统基本体系结构
        电脑系统作为一个信息的存储和处理设备,剥开其基本的输入输出设备(键盘鼠标、显示器打印机音箱等)以及网络交换设备(网卡)等外围的东西,其核心其实只有三个:磁盘<--->内存<--->CPU。信息在磁盘(一般是硬盘)中永久存储,开机后被读到内存,内存与CPU进行交互,使信息得到处理,然后又通过内存存回到磁盘或发送到其它输出设备。与之稍有区别的是,来自键盘、网络等输入设备的信息,直接进入内存,经CPU进行处理。

        因此,我们要建立的概念是,CPU只和内存打交道,所有的信息必须经过内存才能被处理。内存比磁盘读写信息的速度快得多,相对来说容量小很多。内存中的信息断电就消失了,只有存在磁盘上的信息才能永久保存。

        病毒、木马等也只是某种格式的信息,它们要活动,就必须进入到内存,取得CPU的执行权。存储在磁盘上无法进入到内存并取得执行权的病毒是死病毒,没有任何危害,跟磁盘上被随机写入的一堆二进制数没有任何区别。


1.2 电脑软件的相关概念
        电脑软件是指令和数据的集合,存储在磁盘上时表现为一系列相关的文件。其中有的文件是程序(能够被执行的指令),有的文件纯粹是数据。程序和数据都是由一系列的二进制数来组成的,那么,计算机怎么知道什么是程序,什么是数据呢?
        CPU预先规定了一系列用二进制表示的指令集,存储在磁盘中的信息被读入内存时,预先精心设计的读取位置及二进制格式的分析能够保证,具有一定意义的CPU指令集合(程序)能够被以正确的顺序和格式读取到CPU,并被翻译成与原来设计相符的CPU指令动作;而其它的部分这是被这些指令集合处理的数据。

        电脑软件被分为几个层次。最底层的是与计算机硬件直接打交道的,称为设备驱动程序,这些设备驱动程序在开机时由BIOS(基本输入输出系统)来管理,加载完系统后由操作系统的设备抽象层来管理。设备层之上就是操作系统(对我们大多数电脑用户来说,就是Windows),操作系统是电脑系统的大管家,它为所有我们要运行的应用软件提供基础支持平台,并提供我们访问磁盘信息及使用电脑各个部分的支持。操作系统又分为三个层次:设备抽象层、核心层、用户界面层。操作系统之上就是我们运行的各种应用软件,比如浏览器、字处理软件、游戏等等。

        软件是通过软件开发工具,由人设计开发出来的。软件开发工具也是软件,所以最初的软件人们只能利用CPU的指令集合由二进制代码一点一点的拼出来,然后就拼出一种能减轻这种原始工作难度的软件,这就是最初的开发工具。这样,软件和软件工具就螺旋循环进行功能提升。所有的开发工具都是将人的设计意图最终翻译成机器能够执行的指令序列。

        病毒、木马等恶意程序也是软件,也就是说是一系列计算机指令与相关数据的集合,理论上讲,恶意软件和正常软件之间是无法区分的。但在实践中,可以通过它们的行为来进行判断,那些帮助我们使用电脑实现某个我们所需要功能的,就是正常软件;那些利用我们电脑实现我们不想要功能、或者阻碍或者危害我们使用电脑的,就是恶意软件。这种区别有时很微妙,比如一个搞笑的程序,一些人看来是个轻松的游戏,另一些人看来则是讨厌的恶意程序。正是这种理论上的不可区分性,才导致病毒的不可消亡性,不存在完全消除病毒的系统和能够杀除一切病毒的杀毒软件。


1.3 操作系统的相关概念
         站在用户的角度看操作系统,它是我们使用电脑的基础平台。它以某种方式接受我们对电脑的操作,提供我们读写磁盘信息的手段,将信息以某种有意义的方式在输出设备上显示出来。
         同时,它也是一切应用软件基本平台和生存环境。应用软件只能通过操作系统提供的途径来访问磁盘,接受用户的输入,访问网络信息,以及显示自己的信息。
         任何操作系统都会存在某种设计上的缺陷,当这种缺陷特别突出时,就被称之为漏洞。漏洞的存在使得恶意软件的生存空间和传播速度大为增加。

        病毒作为一类特殊形式的软件,它既依赖于操作系统提供的环境,又试图突破操作系统的限制。


1.4 病毒(恶意软件)是什么?
        前面说到了,病毒本质上是软件,是计算机指令集和数据的集合。理论上,它与正常的软件不可区分;实践上,通过对这些程序的行为分析,是可以判断哪些是病毒的。这里病毒是指广义上的恶意软件。
        病毒的恶意行为概括起来有如下几点——
        a 总是在用户不知情的情况下被安装(进入磁盘永久存储)
        b 尽可能地隐藏自己
        c 尽可能地获得加载执行机会
        d 尽可能在用户不知情的情况下利用电脑资源进行某些其它的活动(包括提供远程控制服务、泄露信息、继续传播等)

        因此,隐藏和自我传播是病毒最根本的特征。由于隐藏的需要,它们都比较小,能够较容易地附着在其它程序上,能够通过网络快速复制和传播。它们在指令序列上,往往是非常精巧编制的一段代码。不过,现代病毒越来越复杂,它们不再是一段代码,往往被分成若干个部分,各部分分工合作,有的完成最初的传播,有的进行进一步感染,有的进行自我保护和隐藏,有的完成感染后功能。

        从分类上讲,现代病毒可以分为如下类——
        a 传统病毒
        b 网络蠕虫
        c 木马
        d 其它恶意软件
        关于更详细的分类,可以参见资料:http://hi.baidu.com/sanluxia/blog/item/d3522bf400db61dbf2d38503.html

2 Windows操作系统与安全相关的知识

2.1 Windows系统的基础
        Windows是一个非常庞大的系统,实际上作为普通用户没有必要了解很多Winodows系统结构的知识。但是,我们要知道,Windows系统是运行在两个不同级别的层次中:内核模式和用户模式。系统的内核代码、硬件抽象层及设备驱动程序等运行在内核模式,可以直接访问系统数据和硬件;而Windows之上的应用程序都运行在用户模式,它们只能通过有限的一组接口,受限地访问系统数据,而且无法直接访问硬件。

        Windows作为一个操作系统,提供的最基础的功能包括:内存管理、进程管理和文件管理。

        进程是Windows中一个组件或应用程序运行时在内存中的基本单元。我们在Windows任务栏点右键,选“任务管理器”,在“进程”标签中就可以看到当前正在运行的各个进程的名字及其它一些信息。每个进程会调用一系列的程序模块,这些模块对应于硬盘上的一系列文件。

        我们看到的Windows的桌面、任务栏,在资源管理器中表现出来的磁盘及其目录结构,都是由Windows的用户接口层程序提供的,这个程序叫c:\windows\explore.exe。很多病毒感染时都针对这个程序下手。

        微软集成在Windows中的IE浏览器程序文件名叫IExplore.exe(大小写无关),运行时在进程中看到同样的名字。浏览器由于在互联网时代的重要性,它实际上已经不是单个的应用程序,微软提供的相应的接口能够在浏览器中插入各种对象,以使得浏览器能够处理更多类型的数据,从而增加浏览器的功能。但是,这种接口也为病毒、木马、广告程序或其它流氓软件扰乱和劫持浏览器的正常运行提供了方便。

        Windows分为各种不同的版本,早期的有Win 95、Win 97、Win 98,目前微软基本上以及不提供继续支持了;其后有Windows 2000、Windows XP、Windows 2003,一直到现在正在推出的Windows Vista,这每个版本又包含家庭版、专业版、服务器版等功能侧重不同的版本。解决病毒问题,获取当前系统的Windows版本信息是很关键的。有很多软件工具可以显示当前的系统版本信息。

        针对不断发现的Windows安全问题,微软推出了一种给系统打补丁的机制。也就是到微软的站点下载经过更新,修补了已发现安全问题的程序到本地安装。为了简化这种过程,Window包含一个Window Update的程序,在开始菜单中可以看到,帮助我们打系统补丁的操作。

2.2 磁盘结构
        Windows的磁盘结构实际上也就是我们在资源管理器中看到的那个树形的文件夹结构。机器中的物理硬盘被逻辑地分为若干个分区,这些分区被叫做C盘、D盘...,每个盘存在若干个文件夹,每个文件夹下可以保存存任意数量的文件和任意数量的文件夹,文件夹的深度没有限制。系统中所有的信息都以文件的方式存在,并以这种树形的结构被逻辑分类保存在磁盘上。

        安装Windows的磁盘分区叫做系统分区(可以不在C盘)。Windows预定义了一些特殊的文件夹,叫做系统文件夹,这些系统文件夹包括(假定系统安装在C盘):
        C:\Windows\或者C:\WinNT\——根据Windows版本的不同为二者之一,或者根据用户安装时的选择也可以为其它目录。这是Windows系统的主目录,下面包含一些重要的由Windows自己定义的子目录,其中C:\Windows\system32是比较重要的一个。
        C:\Documents and Settings\——这是保存用户个人信息的一个文件夹,其下为每个用户定义一个子文件夹
        C:\Documents and Settings\Administrator\——系统的缺省管理员帐户的个人信息文件夹

        每个C:\Documents and Settings\[用户帐户]\下,又包含如下的子目录:
           「开始」菜单——保存该用户的开始菜单项目信息
           [用户帐户]的文档——保存该用户的“我的文档”信息。“我的文档”逻辑文件夹也可被挪到其它位置。
           桌面——资源管理器中逻辑根“桌面”的实际存储位置
           Local Settings——该用户的一些设置信息,这个文件夹下还可能包含该用户的IE浏览器临时文件存储位置Temporary Internet Files,不过也可能根据用户在IE中的设置,挪到了其它位置
           Application Data——保存该帐号的一些应用程序信息
           ...

        C:\Program Files\——保存Windows下安装的一些应用程序。缺省象IE浏览器程序,邮件客户端Ooutlook Express等都安装在这个目录
        C:\System Volume Information\——其下保存Windows系统还原的信息。系统还原是Windows XP以上系统的一个高级功能,当某种原因系统发生崩溃或数据错误时,可以通过系统还原回到原来正确时的状态。有时通过这个就能清除病毒。这个文件夹在每个分区会有一个。
        C:\Recycler\——C盘的垃圾箱文件夹。每个盘下会有一个。还有一个逻辑抽象的Recycled的文件夹(就是被称为垃圾箱的东西),不过这不是磁盘上真正的文件夹。

        磁盘按照其数据存储的格式可以有FAT32和NTFS两个形式,其中NTFS是Windows推荐的格式,优点是有更好的权限控制,并且更能够节省磁盘空间,不过这种格式的磁盘在普通DOS下看不见,给有时需要DOS下杀毒造成一定的困难。磁盘上的每个文件及文件夹都可以设置为如下属性中的一种或几种:系统、隐藏、只读、归档。NTFS格式的磁盘还可以对用户和用户组设置文件和文件夹的更详细访问权限。  

       磁盘中的信息有可能被损坏。有两种类型的损坏:逻辑损坏和物理损坏。逻辑损坏是指数据以为某种原因使得其目录信息等发生损坏而造成的逻辑组织错乱;物理损坏是指由于磁盘表面存储数据的位置发生物理错误造成的数据丢失与破坏。Windows提供了从磁盘错误中恢复处理的工具。

       每个磁盘分区有一个引导扇区,整个磁盘有一个主引导区,它们是保存磁盘上操作系统加载信息的地方,以前是病毒经常呆的窝子,现在这种病毒少了。不过当前主流的杀毒软件都提供对磁盘引导区和主引导区的扫描。

2.3 注册表
        注册表是Windows的基础数据集合,几乎所有系统硬软件有关的配置数据都保存在其中。可以说,注册表是Windows的命根子,最注册表的损坏往往导致系统的崩溃。病毒对Windows系统的感染也极大程度地利用了注册表。因此,对注册表的管理和维护是系统维护的重要工作,也是清理病毒过程的重要组成部分。普通用户具有一些注册表的相关知识对维护自己系统的安全非常重要。

       从根本上说,注册表是一个信息的数据库,这个数据库是以树形结构来组织的,里面存储的信息量非常庞大。这种结构有点类似于磁盘的目录结构。微软预定义了这个树形结构大多数最初几个级别的分支。其中最底层几个分支是——
        HKEY_CLASS_ROOT
        HKEY_CURRENT_USER
        HKEY_LOCAL_MACHINE
        HKEY_USERS
        HKEY_CURRENT_CONFIG
        在这些初级分支下包含一系列其它预定义的分支。在描述这些分支时,经常用一种类似目录结构的字串来表示,比如:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

        注册表数据库可以通过一些软件工具来打开和编辑。微软提供了一个注册表的编辑工具,C:\Windoows\regedit.exe,通常我们在开始菜单中选运行,然后输入regedit.exe,就打开的注册表,实际上就是通过这个程序打开的,我们可以在里面逐步展开查看注册表的接口,或修改某些项目。
    需要特别注意的是:直接修改注册表是非常危险的行为,除非你明白你正在做什么,并且清楚会带来什么后果,否则不要轻易去动注册表中的东西。这样有可能导致应用软件的错误甚至系统的崩溃!

        Windows系统启动时所要加载的程序大部分都在注册表中有相应的项目定义。病毒和木马正是在注册表中这些预定义的项目增加自己来使得自己在下次启动时自动被加载运行的。因此,清理病毒不禁包含对病毒文件的清除,更重要是对注册表相关病毒加载项目的清理。

        病毒对系统的重要危害之一就是修改注册表中的一些正常或重要系统配置数据信息,从而导致应用软件甚至系统出现错误或不能正常工作。

2.4 服务与驱动程序

服务
        Windows服务是Windows运行的重要组成部分,Windows依赖它们来实现系统的很多重要功能。注册为服务的应用程序启动后在后台运行,没有自己的用户界面和接口,用户看不见它们,甚至几乎感受不到它们的存在。但是,很多计算机功能的实现正是它们在后台默默工作的结果。比如:

        我们的机器联网,都需要一个IP地址。很多情况下这个IP地址并不是事先设置好的,而是系统启动时从服务器动态获得的,而这种获得IP地址的过程,正是机器上一个叫DHCP Client的服务在后台工作的结果。

        Windows提供了一个程序,使得我们可以浏览、启动或停止当前系统中存在的所有服务,这个程序可以通过“控制面板/系统工具/服务”项目启动。

        Windows允许应用软件也将自身的一部分注册为系统服务,以完成应用软件特定的需要以服务方式来完成的任务。正是这样,病毒和木马也可以将自身的一部分注册为服务,一方面可以在系统启动时不需要人为的干预自动加载,另一方面可以在后台用户不知觉的情况下,完成它的某些功能。要清除病毒,停止并注销病毒注册的服务也是一个重要的步骤。

        有经验的用户可以通过浏览系统中注册的服务,从而发现有没有病毒或木马等异常情况的存在。不过,这需要对系统正常的服务比较了解。当前,很多安全工具都提供了对系统服务的管理功能,并将它作为手工清除病毒的手段之一。

驱动程序
        驱动程序本来是为系统硬件设备提供驱动服务,并与操作系统进行交互的。但是,Windows允许注册为软件服务的驱动程序。驱动程序运行在Windows系统的内核模式,它可以直接访问系统核心数据和硬件。因此,编写不好的驱动程序极易造成系统的崩溃或不能正常启动。而对驱动程序的编写,也具有更多的限制,同时需要开发者具有更多的系统底层知识。

         一旦驱动程序编制完成,它可以完成的功能是非常强大的,它甚至可以绕过操作系统的限制。现代的很多病毒,也就利用驱动程序的这种强大特性,在底层对自身的其它部分进行隐藏和保护,这使得对这类病毒的清除非常麻烦。识别并停止这种在后台保护的驱动程序,从而停掉病毒的保护伞,是对付现代病毒最关键的步骤。

2.5 IE浏览器
        IE浏览器已经不仅仅是一个简单的应用程序,微软将它集成到了操作系统中,甚至已经成为了操作系统的一部分。它作为用户使用互联网最常用和基本的应用软件,其强大的功能、开放的接口以及层出不穷的漏洞,成为黑客攻击和病毒传播的首先对象。统计表明,当前80%以上的病毒和木马都是通过网页,以IE漏洞为攻击目标传播的。作为普通用户,对IE一些基本知识的了解是安全上网的基础。

HTTP协议
        IE浏览器(包括其它的浏览器)都是通过HTTP协议与互联网上的服务器进行通讯,从那里获得网页的内容,并在用户的电脑上显示,并允许用户与服务器通过网页的交互。因此,HTTP协议又被称为互联网的基本协议。

HTML语言
        所有的网页都是通过HTML语言(超文本标志语言)写成的,实际上就是一个可以在记事本中打开的文本文件,不过在这个文本文件中预先定义了一些用于显示控制或其他功能的标签。这种语言经过扩展,可以在文本信息中包含图像、声音等多媒体信息流。
        HTML语言中支持一种基于脚本(也就是人可以读懂的文本)的程序,主要有两种格式的:JavaScript和VbScript的,这些程序可以控制网页的显示,验证用户在输入框中输入的数据,甚至访问和操作本地文件系统(这是很危险的,往往就是安全问题的来源,微软提供了这种功能,但是又加上了比较强的权限限制。突破这种权限限制是病毒和木马进行传播所梦寐以求的)。

ActiveX对象
        ActiveX对象是微软的一项重要技术,它的目的是将一些成熟的软件组建打包,对其它的软件部件提供服务,这样能极大程度利用现有的软件成果,减少重复开发,大大提高软件开发效率。在系统中注册的ActiveX对象具有本地执行用户的权限,能够访问本地的文件系统。IE浏览器中允许加载一些注册的ActiveX对象以扩展与补充其功能。正是这样,很多病毒、木马和流氓软件也将自身一部分注册为IE浏览器兼容的ActiveX对象,从而操纵IE的行为,提升恶意网页代码在本地的执行权限,达到进一步入侵感染系统的目的。

IE的临时文件
        IE浏览器读取的网页(包括网页上的图片、声音以及其它辅助文件)都放在本地硬盘的一个被称为IE临时文件夹的地方。这个位置缺省情况下在C:\Documents and Settings\[用户帐户]\Local Settings\Internet Temporary Files文件夹下,但是用户可以自己把它挪到其他的位置。这在IE的菜单“Internet选项/常规/临时文件”中设置。
        IE临时文件夹是很多被称为脚本病毒的东西最初的藏身之地。

IE的安全区域
        IE定义了如下几个安全区域:Internet、本地Intranet、受信任的站点、受限制的站点。不要被这些名字所疑惑,究竟这些区域是否跟它们名字称呼得一样,关键在于你对它们行为的定义。首先,你可以定义每个区域包含哪些站点,然后,你可以定义打开该区域的站点时有哪些安全限制。这些安全限制选项包括——
        对ActiveX控件的下载与执行限制
        对脚本的执行限制
        对文件下载的处理限制
        对用户认证的限制
        其它一些安全相关的选项
        一般来说,对越信任的站点,开放的权限就越多;对越可能存在威胁的站点来说就应该加以更多的限制。不过,这种安全区域的定制,对普通用户来说,还是相当的麻烦和费解。但是,我们需要了解,IE本身是为我们提供了更多的安全工具的,对安全越关注的用户越有必要弄清楚里面的细节。


2.6 Windows的漏洞与病毒的传播

      Windows漏洞的存在,导致了大量针对性的病毒产生。它们通过对漏洞的利用,立即获得了通过互联网广泛传播渗透的能力,从而造成巨大的破坏和社会影响。正确认识漏洞是怎样导致系统被感染的,有利于认识到打补丁的重要性。事实上,绝大多数受感染的系统就是因为没有打齐系统补丁。

      微软针对每个被发现的安全问题发布一个安全公告,该公告被命名为类似MS07-XX这样的编号,前一个数字代表年份,后一个数字代表当年安全公告的顺序编号。在每个安全公告中,微软详细说明了该安全漏洞的严重程度、可能影响的系统,针对性补丁的下载位置,以及更加详细的一些技术说明。当前每个公告都有简体中文的翻译版本(在微软的简体中文网站上,搜索时输入比如:MS06-14 site:www.microsoft.com/china)。


缓存溢出漏洞
       缓冲区溢出,其实要追溯到C/C++程序开发语言的问题。C/C++程序开发语言以其高效成为系统级软件开发的首选,Windows系统的绝大部分程序都是C/C++写的。但是,这种语言有一个固有的致命缺陷,就是语言本身对内存数组的操作不进行边界检查,对此全靠程序本身进行约束和检查,因此粗心或不正确的程序有可能超出本应受到约束的边界读写内存的数据,造成原有数据的破坏。软件中在读取数据的地方如果存在这样一个没有经过检查边界的“缓冲区”,那么经过精心设计的输入数据就会覆盖原有软件的代码区,造成输入的数据被当成代码执行,而这段代码就是进行准备的病毒代码,后果可想而知。

      这种类型的漏洞占到了微软安全漏洞的大多数。系统中存在的缓冲区溢出是黑客攻击最常利用的东西。这类的漏洞,造就了众多影响全球、破坏巨大的病毒,比如“红色代码”、“冲击波”、“蠕虫王”、“熊猫烧香”以及众多基于脚本的木马下载器(卡巴命名为Trojan-Downloader,xxx,瑞星命名为Trojan.DL.xxx的病毒)等等。


突破安全限制的漏洞
      这类漏洞使得Windows本身的某些安全机制被绕开,从而使可疑代码获得了本不该有的执行机会。比如,有个著名的漏洞叫MS01-20,它有个罗嗦点的名称叫“不正确的MIME头会导致IE执行E-Mail附件漏洞”。在Outlook中,HTML格式的邮件(也就是以网页方式写的邮件正文)实际上是调用IE来进行其内容展示,一般情况下,IE会以正确的MIME格式(MIME的中文名叫“多用途互联网邮件扩展”,目的是为了在邮件中包含一些图像等多媒体信息)打开邮件中的二进制流,但是,对某些不常见的MIME类型,IE在处理时存在一个错误,如果恶意攻击者将一个可执行文件加为邮件附件,并在邮件头中标明该附件是一个特殊格式的MIME类型,IE就会错误地将该可执行文件加载并执行,从而导致病毒代码在受害机器上运行。


并非全是漏洞造成的
      有很多中毒事件其实根Windows漏洞没有关系,只不过大多被误解为Windows漏洞了。举个简单的例子,网友通过QQ发过来的文件,名称为“MyPict.jpg.exe”,其实是个病毒的可执行文件,但在资源管理器中,已知文件类型".exe"经常被隐藏了,于是看到的只是"MyPict.jpg",被误认为一幅图片,于是双击打开,结果执行了病毒的安装文件。我们总不能抱怨Windows在我们双击一个可执行文件时不该让它运行吧。你可能会说,Windows为什么要将.exe扩展名隐藏起来,这实在是不能怪微软,因为很多人认为隐藏掉已知类型的扩展名会显得整洁,同时人家不是给你提供了不同的图标显示吗?同时,微软缺省隐藏掉扩展名,其实有更深考虑,因为显示出来,就很容易被改掉,改完了扩展名的文件缺省行为表现就变了,这同样会带来用户使用上的问题。

      这种易用性设计中的矛盾其实无处不在。从另一个侧面其实也可以看出更多的电脑知识可以减小中毒的机会。当然,一些被总结出来的安全操作行为规范也能够使得这种安全威胁的可能性降低。

3 网络的相关知识

3.1 网络是怎么进行通信的?
      从物理上讲,网络通过通信介质(光纤、网线、电话线)和网络设备(交换机、路由器、Modem)将电脑与电脑连接起来。信息(二进制数据)被转换成物理信号(电信号或光信号)在物理介质上传播,由通讯的一端发送出去,由通讯的另一端接收。

      在这种发送与接收的过程中,协议起到了关键性的作用。协议通俗地讲就是通讯双方的约定,使得接收方能够正确将通过了通信线路的信息正确地还原,并能够理解发送方信息的含义。从最接近通信线路物理特征到最直接关系应用系统的数据,协议被分为了多个层次。其中规定通信双方物理接口、电气特征的协议被称为物理层,其上是数据链路层,再上面是网络层,最上是应用层。普通用户接触的主要是网络层和应用层的协议。

      网络层最主要的协议就是TCP/IP协议,它是互联网的基础。其上的应用层协议有:应用于浏览网页的HTTP协议;收发邮件的POP3和IMAP协议;传输文件的FTP协议等等。

     发送和接收的数据在两端经过了一个相反的协议处理过程。比如我们浏览网页时,在浏览器中输入一个地址,这个动作首先被解析为一个HTTP协议的GET请求,这个请求然后被转化网络层的TCP/IP数据包,最终通过物理层的协议转化为发送端的一系列电气信号;接受端将接受到的一系列物理信号通过物理层协议还原,然后向上层的协议递交,被还原层TCP/IP数据包,最后通过应用层的HTTP协议被还原成一个网页的GET请求,接收方的Web服务器于是通过这个GET请求的信息明白了用户端的需求,于是将相应的网页又通过一个相反的通信过程发送回去。

3.2 网络的一些基本概念

IP地址
      TCP/IP协议是目前应用最广泛的协议,是互联网的基础。TCP/IP协议的基础是IP地址,它为网络上通信的每一个节点(电脑或具有某种智能的网络设备)赋予一个唯一的标示,这个标示用一个32位的二进制数来表示,就是IP地址。

      由于人是不习惯于看二进制数的,你想,32个1和0的组合在一起,谁能轻易地区别这个和哪个?于是,这个32位的数被分为4组,每组8位,同时将8位的二进制数转化为十进制,并将每组用"."隔开。于是,我们看到的IP地址就是类似这样的:192.168.0.1、232.254.10.86、... 我们知道,8位的二进制数在0-255之间,所以"."隔开的每个数都在0和255之间。

      有了这个唯一的IP地址后,一台电脑要想与另一台电脑通信,只要在通信的数据包中包含自己(源)的IP地址和要通信电脑(目的)IP地址就可以了。这也是每个IP包的基本特点,包含源和目的的IP地址。IP协议规定了,IP包的发送者在什么位置写和读源IP,什么位置读写目的IP。

      互联网由很多个小网络(常常被称为子网)组成,同一个小网络中电脑的IP地址应该有共同的特征,这样便于区分和查找。于是规定同一个网络中IP地址的前面若干位是一样的,叫做网络地址,后面的若干位是子网中主机的地址。为了便于从一个IP地址中提取它的子网网络地址,基于二进制数的特点,人们规定了另一个32位的二进制数,它的前面由若干个1组成,位数与IP地址中网络地址的位数一样,后面剩下的位全部为0,并把这个数称为子网掩码,也就是说,要从一个IP地址中提取网络地址,只要将该IP与子网掩码进行二进制异或运算就可以了。例如,一个24位网络地址的IP地址192.168.1.1,子网掩码是255.255.255.0。可以看出,子网掩码中1的个数越多,子网中可以容纳的主机数越少,网络就越小。

      由于互联网的迅猛发展,32位的网络地址发现相当的不够用。于是人们想出了IP地址重用的办法。即在一个网络内部,所有主机的IP地址可以跟互联网的IP地址重复,在外部是看不到这些内部的IP地址的。在内部网络的出口,常常是企业的网络防火墙,使用一种叫NAT(网络地址转换)的技术保证内部机器与外部的通讯。现在,已经有了一种128位IP地址的技术(叫做ipv6,传统32位的ip技术叫做ipv4),用来解决ip地址不够或其它一些32位IP地址上的技术难题。


我们电脑的IP地址
      我们电脑只要联网了,无论是互联网还是局域网,都会有一个IP地址。我们在Windows中点“开始/运行/cmd.exe”,打开DOS窗口,在里面输入ipconfig命令,就可以看到当前的ip地址。这个IP地址是怎么得到的呢?有两种方式——

      一种叫静态IP地址,它是网络管理员或我们自己在安装配置电脑时输入的。当然,这个IP地址不是随便输入的,它要保证与同一网络的其它IP地址不冲突,并能够互相通信。

      另一种叫动态IP地址,它是机器启动并联网时从互联网服务提供商的服务器,或者局域网服务器动态获得的。服务器上负责维护一个当前可用的IP地址列表,当网络中的主机请求IP地址时,服务器就从列表中选择一个给正在联网的主机。这种动态获取IP地址的技术叫做DHCP,前面讲述Windows服务时已经提到过。DHCP技术是解决IP地址冲突和用较少的IP地址支持一个较大网络的好办法,因为所有的地址都是服务器分配的,不会重复,同时并不是所有的机器都同时联网,只需要给正联网的机器分配IP地址就可以了。


网络域名
      变化为十进制数的ip地址虽然比32位的二进制数好多了,但是还是不便于记忆、传播和理解,并很难从互联网中突出一个网络的结构出来。于是,人们试着将网络划分为若干个逻辑的结构,并用比较有意义的英文字母数字组合来标示它们,每个逻辑结构下又划分为若干小的逻辑结构,这样逐层划分,形成一个树形的结构。这些结构的第一层,我们称为根域名,就是com、net、gov、edu、以及各个国家的简称,等等。互联网的根管理机构将这些根域名分配给一些机构或组织进行它们下一层的管理。中国自己管理的根域名就是CN,管理机构是中国互联网信息中心(CNNIC,www.cnnic.net.cn)。

      一个域名代表一个逻辑上的子网络。域名前面再加一个主机名就代表子网络中的一台主机,比如我们最常见到的www.xxx.xxx,其中www就是xxx.xxx网络中一台主机名,这台主机被用来作为网站的web服务器,其实也可以取为任意的其它名字,只不过人们约定俗成了www代表一台web服务器。

      机器在进行通信时并不认识域名,这是方便人识别、记忆和传播的。于是,需要一种机制,将逻辑的树形结构的域名转换为平面的IP地址。这种技术机制就是下面要讲的名字解析(DNS)。


名字解析(DNS)
      名字解析主要由DNS服务器来完成,DNS上运行一个DNS服务。一台DNS服务器只负责一部分域名的解析任务,互联网上所有的DNS服务器也按照域名的方式构成一个树形的结构。比如,.sina.com.cn域名的DNS服务器只负责该域名下主机地址的解析工作,它的上级服务器是.com.cn域的DNS服务器,其上市.cn域名的DNS服务器,再上就是互联网的根服务器了。

      互联网上的所有这些DNS服务器是协同工作的。比如处于.com.cn域的一台机器要访问.net.tw域的一台服务器,它会向本域的DNS服务器发出解析域名的请求,如果该域的DNS服务器如果本地没有.net.tw的地址缓存,那么它像上级的.cn域名服务器提出请求,.cn域名服务器向互联网根服务器请求,然后根服务器在向下追溯到能够解析.net.tw的DNS服务器,最后解析完的IP地址通过相反的方向返回,最后达到请求解析地址的主机。

      所有的主机在配置网络连接互联网时,都必须配置联网需要使用的DNS服务器的地址。如果主机使用的动态IP,DNS服务器的地址也是动态得到的。在DOS下键入ipconfig /all命令可以看到当前DNS服务器的IP地址。

     常常还有另一种需求,将IP地址解析为域名,这被称为IP反向解析,这也是由DNS服务器完成的。

[未完待续]

菜鸟要保障自己系统的安全需要知道的一些基本知识(一)

Author: Sanluxia
Aug. 3, 2007
Blog: http://hi.baidu.com/sanluxia/blog
This document is written by Sanluxia, all rights reserved. You may copy it to other place, but you must reserve this copyright information.


类别:初级知识 | 添加到搜藏 | 浏览() | 评论 (2)
 
最近读者:
 
网友评论:
1
2007-08-06 16:15 | 回复
谢谢楼主,我会慢慢学习滴~~~~
 
2
2007-08-23 11:12 | 回复
感谢楼主的扶贫啊,这些对我们很有用!
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu