少年自有凌云志,不负黄河万古流
交叉双绞线
交叉线:又叫反线,线序按照一端568A,一端568B的标准排列好线序,并用RJ45水晶头夹好
交叉线一般用于相同设备的连接,比如路由器和路由器,电脑和电脑之间;现在的很多也支持直通线了,但建议还是使用交叉线。
点击查看
PC-PC:交叉线
HUB-HUB普通口:交叉线
HUB-HUB级连口-级连口:交叉线
HUB-SWITCH:交叉线
SWITCH-SWITCH:交叉线
ROUTER-ROUTER:交叉线
PC-ROUTER(以太网接口):交叉线
TCP
TCP是面向连接的通信协议,通过三次握手建立连接,通信完成时要拆除连接,由于TCP是面向连接的,所以只能用于端到端的通信。
TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口,实际表示接收能力,用以限制发送方的发送速度。
如果IP数据包中有已经封装好的TCP数据包,那么IP将把它们向“上”传送到TCP层。TCP将包排序并进行错误检查,同时实现虚电路之间的连接。TCP数据包中包括序号和确认,所以未按照顺序收到的包可以被排序,而损坏的包则可以被重传。
TCP将它的信息发送到更高层的应用程序,例如Telnet的服务程序和客户程序。应用程序轮流将信息送回TCP层,TCP层便将它们向下传送到IP层、设备驱动程序和物理介质,最后传送到接收方。
面向连接的服务(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它们使用了TCP。DNS在某些情况下使用TCP(发送和接收域名数据库),但使用UDP传送有关单个主机的信息。
端口
在TCP/IP网络中,传输层的所有服务都包含端口号,它们可以唯一区分每个数据包包含哪些应用协议。端口系统利用这种信息来区分包中的数据,尤其是端口号使一个接收端计算机系统能够确定它所收到的IP包类型,并把它交给合适的高层软件。
端口号和设备IP地址的组合通常称作插口(socket)。任何TCP/IP实现所提供的服务都用知名的1~1023之间的端口号。这些知名端口号由Internet号分配机构(Internet Assigned Numbers Authority, IANA)来管理。例如,SMTP所用的TCP端口号是25,POP3所用的TCP端口号是110,DNS所用的UDP端口号为53,WWW服务使用的TCP端口号为80。FTP在客户与服务器的内部建立两条TCP连接,一条是控制连接,端口号为21;另一条是数据连接,端口号为20。
256~1023之间的端口号通常由UNIX系统占用,以提供一些特定的UNIX服务。也就是说,提供一些只有UNIX系统才有的而其他操作系统可能不提供的服务。
在实际应用中,用户可以改变服务器上各种服务的保留端口号,但要注意,在需要服务的客户端也要改为同一端口号。
POP3
邮局协议(Post Office Protocol, POP)第3版是目前使用最广泛的邮件服务。POP3的功能是邮件的存储和管理,能为用户提供账号、密码和身份验证功能,与SMTP服务配合,提供完整的邮件服务。
FTP
文件传输协议(File Transfer Protocol,FTP)用来在计算机之间传输文件。通常,一个用户需要在FTP服务器中进行注册,即建立用户账号,在拥有合法的登录用户名和密码后,才有可能进行有效的FTP连接和登录。FTP在客户端与服务器的内部建立两条TCP连接:一条是控制连接,主要用于传输命令和参数(端口号为21);另一条是数据连接,主要用于传送文件(端口号为20)。
匿名FTP
访问FTP服务器有两种方式:一种方式是需要用户提供合法的用户名和口令,这种方式适用于在主机上有账户和口令的内部用户;另一种方式是用户用公开的账户和口令登录,访问并下载文件,这种方式称为匿名FTP服务。
Internet上有很多匿名FTP服务器(Anonymous FTP Servers)提供公共的文件传送服务,它们提供的服务是免费的。匿名FTP服务器可以提供免费软件(Freeware)、共享软件(Shareware)以及应用软件的测试版等。
匿名FTP服务器的域名一般由ftp开头,如ftp.ustc.edu.cn。匿名FTP服务器向用户提供了一种标准统一的匿名登录方法。
用户名:Anonymous。
口令:用户的电子邮件地址或其他任意字符。
一般地,匿名FTP服务器的每个目录中都含有readme或index文件,这些文件含有该目录中所存储的有关信息,用户在下载文件之前最好先阅读它们。
DHCP
Dynamic Host Configuration Protocol
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。
DNS
Domain Name System,域名系统
是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。
域名由因特网域名与地址管理机构(ICANN,Internet Corporation for Assigned Names and Numbers)管理,这是为承担域名系统管理、IP地址分配、协议参数配置,以及主服务器系统管理等职能而设立的非盈利机构。ICANN为不同的国家或地区设置了相应的顶级域名,这些域名通常都由两个英文字母组成。例如:.uk代表英国、.fr代表法国、.jp代表日本。中国的顶级域名是.cn,.cn下的域名由CNNIC进行管理。
CNNIC规定.cn域下不能申请二级域名,三级域名的长度不得超过20个字符,并且对名称还做了下列限制:
① 注册含有“CHINA”、“CHINESE”、“CN”和“NATIONAL”等字样的域名要经国家有关部门(指部级以上单位)正式批准。
② 公众知晓的其他国家或者地区名称、外国地名和国际组织名称不得使用。
③ 县级以上(含县级)行政区划名称的全称或者缩写的使用要得到相关县级以上(含县级)人民政府正式批准。
④ 行业名称或者商品的通用名称不得使用。
⑤ 他人已在中国注册过的企业名称或者商标名称不得使用。
⑥ 对国家、社会或者公共利益有损害的名称不得使用。
⑦ 经国家有关部门(指部级以上单位)正式批准和相关县级以上(含县级)人民政府正式批准,是指相关机构要出据书面文件表示同意××××单位注册×××域名。如:要申请beijing.com.cn域名,则要提供北京市人民政府的批文。
DNS的名字空间
名字空间是指定义了所有可能的名字的集合。域名系统的名字空间是层次结构的,类似Windows的文件名。它可看作是一个树状结构,域名系统不区分树内节点和叶子节点,而统称为节点,不同节点可以使用相同的标记。所有节点的标记只能由3类字符组成:26个英文字母(a~z)、10个阿拉伯数字(0~9)和英文连词号(-),并且标记的长度不得超过22个字符。一个节点的域名是由从该节点到根的所有节点的标记连接组成的,中间以点分隔。最上层节点的域名称为顶级域名(TLD,Top-Level Domain),第二层节点的域名称为二级域名,依此类推。
ipconfig
ipconfig /all:显示本机TCP/IP配置的详细信息;
ipconfig /release:DHCP客户端手工释放IP地址;
ipconfig /renew:DHCP客户端手工向服务器刷新请求;
ipconfig /flushdns:清除本地DNS缓存内容;
ipconfig /displaydns:显示本地DNS内容;
ipconfig /registerdns:DNS客户端手工向服务器进行注册;
ipconfig /showclassid:显示网络适配器的DHCP类别信息;
ipconfig /setclassid:设置网络适配器的DHCP类别。
ipconfig /renew “Local Area Connection”:更新“本地连接”适配器的由 DHCP 分配 IP 地址的配置
ipconfig /showclassid Local*:显示名称以 Local 开头的所有适配器的 DHCP 类别 ID
ipconfig /setclassid “Local Area Connection” TEST:将“本地连接”适配器的 DHCP 类别 ID 设置为 TEST
网络监听
网络监听是主机的一种工作模式。在本模式下,主机可以接收本网段同一条物理通道上传输的所有信息。使用网络监听工具可以轻易地截取包括口令和账号在内的信息资料。
采用数据加密地方式保护信息资料,获取密文后也无法解密。
WannaCry
WannaCry(又叫Wanna Decryptor),一种“蠕虫式”的勒索病毒软件,大小3.3MB,由不法分子利用NSA(National Security Agency,美国国家安全局)泄露的危险漏洞“EternalBlue”(永恒之蓝)进行传播。
注释:说明一下,“永恒之蓝”是NSA泄露的漏洞利用工具的名称,并不是该病毒的名称。永恒之蓝”是指NSA泄露的危险漏洞“EternalBlue”,此次的勒索病毒WannaCry是利用该漏洞进行传播的,当然还可能有其他病毒也通过“永恒之蓝”这个漏洞传播,因此给系统打补丁是必须的。
WannaCry主要利用了微软“视窗”系统的漏洞,以获得自动传播的能力,能够在数小时内感染一个系统内的全部电脑。
WannaCry利用Windows操作系统445端口存在的漏洞进行传播,并具有自我复制、主动传播的特性。
被该勒索软件入侵后,用户主机系统内的照片、图片、文档、音频、视频等几乎所有类型的文件都将被加密,加密文件的后缀名被统一修改为.WNCRY,并会在桌面弹出勒索对话框,要求受害者支付价值数百美元的比特币到攻击者的比特币钱包,且赎金金额还会随着时间的推移而增加。
泛化、实现、依赖和关联的区别
实现
表示类对接口的实现。
UML图中实现使用一条带有空心三角箭头的虚线指向接口,如下:
泛化
表示类与类之间的继承关系、接口与接口之间的继承关系。
UML图中实现使用一条带有空心三角箭头的实线指向基类,如下:
依赖
表现为函数中的参数(use a),是类与类之间的连接,表示一个类依赖于另一个类的定义,其中一个类的变化将影响另外一个类。例如如果A依赖于B,则B体现为局部变量,方法的参数、或静态方法的调用。如电视(TV)依赖于频道(channel)常见的依赖关系如下:
(1)类B以参数的形式传入类A的方法。
(2)类B以局部变量的形式存在于类A的方法中。
(3)类A调用类B的静态方法。
UML图中实现使用一条带有箭头的虚线指向被依赖的类,如下:
关联
表现为变量(has a),类与类之间的联接,它使一个类知道另一个类的属性和方法。例如如果A关联于B,则B体现为A的全局变量,如person类和company类。
关联关系有双向关联和单向关联:
1、双向关联:两个类都知道另一个类的公共属性和操作。
2、单向关联:只有一个类知道另外一个类的公共属性和操作。
大多数关联应该是单向的,单向关系更容易建立和维护,有助于寻找可服用的类。
UML图中实现使用一条实线连接相同或不同类,如下:
UML之事物
UML包括三种基本构造块:事物、关系和图。
事物是对模型中最具有代表性的成分的抽象,包括结构事物,如类(Class)、接口(Interface)、协作(Collaboration)、用例(Use Case)、主动类(ActiveClass)、组件(Component)和节点(Node);行为事物,如交互(Interaction)、状态机(StateMachine);分组事物,如
OO之类
类封装了信息和行为,是面向对象的重要组成部分。
类分为实体类、边界类和控制类。
- 实体类主要职责是存储和管理系统内部的信息,它也可以有行为,甚至很复杂的行为,但这些行为必须与它所代表的实体对象密切相关。
- 控制类用于描述一个用例所具有的事件流控制行为,控制一个用例中的事件顺序。例如“身份验证”可以对应于一个控制类“身份验证器”,它提供了与身份验证相关的所有操作。控制类用于对一个或多个用例所特有的控制行为进行建模,控制对象(控制类的实例)通常控制其他对象,因此,他们的行为具有协调性。通常情况下,控制类没有属性,但一定有方法。
- 边界类用于描述外部参与者与系统之间的交互,它位于系统与外界的交接处,包括所有窗体、报表、打印机和扫描仪等硬件的接口,以及与其他系统的接口。要寻找和定义边界类,可以检查用例模型,每个参与者和用例交互至少要有一个边界类,边界类使参与者能与系统交互。边界类是一种用于对系统外部环境与其内部运作之间的交互进行建模的类。常见的边界类有窗口、通信协议、打印机接口、传感器和终端等。实际上,在系统设计时,产生的报表都可以作为边界类来处理。
软件开发模型
软件开发模型是指软件开发全部过程、活动和任务的结构框架。
瀑布模型固定软件生存周期各阶段的顺序,前一阶段完成才能进入下一阶段。
演化模型是在快速开发一个原型的基础上,根据用户使用原型的反馈来获得原型新版本。重复这一过程直到演化成最终的软件产品。
螺旋模型将瀑布模型和演化模型结合,综合两者优点,并增加风险分析。它以原型为基础,沿着螺线自内向外旋转,每转一圈都要经过制定计划、风险分析、实施工程、客户评价等,并开发原型的一个新版本。经过若干次螺旋上升的过程,得到最终的软件。
喷泉模型主要用来描述面向对象开发过程的迭代和无间隙特征。迭代意味着模型中的开发活动常常需要重复多次;无间隙是指开发活动之间不存在明显的边界,各项开发活动往往交叉迭代的进行。
Excel的公式和函数
OS进程管理
什么是进程?
进程:一个具有一定独立功能的程序在一个数据集合上一次动态执行过程。
进程由什么组成?
进程=程序+数据+进程控制块
什么是进程控制块?
用来描述和控制进程的运行的一个数据结构——进程控制块PCB(Process Control Block),是进程实体的一部分
PCB是进程存在的唯一标志
系统能且只能通过PCB对进程进行控制和调度
PCB由什么组成?
- 程序计数器:接着要运行的指令地址。
- 进程状态:可以是new、ready、running、waiting或 blocked等。
- CPU暂存器:如累加器、索引暂存器(Index register)、堆栈指针以及一般用途暂存器、状况代码等,主要用途在于中断时暂时存储数据,以便稍后继续利用;其数量及类因电脑架构有所差异。
- CPU排班法:优先级、排班队列等指针以及其他参数。
- 存储器管理:如标签页表等。
- 会计信息:如CPU与实际时间之使用数量、时限、账号、工作或进程号码。
- 输入输出状态:配置进程使用I/O设备,如磁带机。
PCB有什么组织方式?
1.线性表方式:不论进程的状态如何,将所有的PCB连续地存放在内存的系统区。这种方式适用于系统中进程数目不多的情况。
2.索引表方式:该方式是线性表方式的改进,系统按照进程的状态分别建立就绪索引表、阻塞索引表等。
3.链接表方式:系统按照进程的状态将进程的PCB组成队列,从而形成就绪队列、阻塞队列、运行队列等。
一般会选择链表,因为可能面临进程创建,销毁等调度导致进程状态发生变化,所以链表能够更加灵活的插入和删除。
进程之间是如何切换的?
进行进程切换就是从正在运行的进程中收回处理器,然后再使待运行进程来占用处理器。
这里所说的从某个进程收回处理器,实质上就是把进程存放在处理器的寄存器中的中间数据找个地方存起来,从而把处理器的寄存器腾出来让其他进程使用。那么被中止运行进程的中间数据存在何处好呢?当然这个地方应该是进程的私有堆栈。
让进程来占用处理器,实质上是把某个进程存放在私有堆栈中寄存器的数据(前一次本进程被中止时的中间数据)再恢复到处理器的寄存器中去,并把待运行进程的断点送入处理器的程序指针PC,于是待运行进程就开始被处理器运行了,也就是这个进程已经占有处理器的使用权了。
这就像多个同学要分时使用同一张课桌一样,所谓要收回正在使用课桌同学的课桌使用权,实质上就是让他把属于他的东西拿走;而赋予某个同学课桌使用权,只不过就是让他把他的东西放到课桌上罢了。
在切换时,一个进程存储在处理器各寄存器中的中间数据叫做进程的上下文,所以进程的 切换实质上就是被中止运行进程与待运行进程上下文的切换。在进程未占用处理器时,进程 的上下文是存储在进程的私有堆栈中的。
进程有哪几种状态?
1)就绪状态(Ready):
进程已获得除处理器外的所需资源,等待分配处理器资源;只要分配了处理器进程就可执行。
就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排入低优先级队列;当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。
2)运行状态(Running):
进程占用处理器资源;处于此状态的进程的数目小于等于处理器的数目。
在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。
3)阻塞状态(Blocked):
由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。
该事件发生前即使把处理器资源分配给该进程,也无法运行。
线程与进程有什么联系?
通常在一个进程中可以包含若干个线程,它们可以利用进程所拥有的资源,在引入线程的操作系统中,通常都是把进程作为分配资源的基本单位,而把线程作为独立运行和独立调度的基本单位,由于线程比进程更小,基本上不拥有系统资源,故对它的调度所付出的开销就会小得多,能更高效的提高系统内多个程序间并发执行的程度。
当下推出的通用操作系统都引入了线程,以便进一步提高系统的并发性,并把它视为现代操作系统的一个重要指标。
对不同用途的计算机性能指标要求
计算机用途不同,对其不同部件的性能指标要求也有所不同。
用作科学计算机为主的计算机,其对主机的运算速度要求很高;用作大型数据库处理为主的计算机,其对主机的内存容量、存取速度和外存储器的读写速度要求较高;对于用作网络传输的计算机,则要求有很高的I/O速度,因此应当有高速的I/O总线和相应的I/O接口。
计算机的运算速度常用每秒钟执行的指令数来衡量,单位为每秒百万条指令(MIPS)或者每秒百万条浮点指令(MFPOPS)。
影响运算速度的主要因素有如下几个:
1.CPU的主频。指计算机的时钟频率。它在很大程度上决定了计算机的运算速度。例如,Intel公司的CPU主频最高已达3.20GHz以上,AMD的可达400MHz以上。
2.字长。CPU进行运算和数据处理的最基本、最有效的信息位长度。PC的字长已由8088的准16(运算用16位,I/O用8位)发展为现在的32位、64位。
3.指令系统的合理性。每种机器都设计了一套指令,一般均有数十条到上百条,例如,加、浮点加、逻辑与、跳转等等,组成了指令系统。
声音信号
声音是通过空气传播的一种连续的波,称为声波。声波在时间和幅度上都是连续的模拟信号,通常称为模拟声音(音频)信号。
三个指标
- 音量(也称响度):声音的强弱程度取决于声音波形的幅度,即取决于振幅的大小和强弱。
- 音调:人对声音频率的感觉表现为音调的高低,取决于声波的基频。基频越低,给人的感觉越低沉,频率高则声音尖锐。
- 音色:人们能够分辨具有相同音高的不同乐器发出的声音,就是因为它们具有不同的音色。一个声波上的谐波越丰富,音色越好。
声音信号的带宽
对声音信号的分析表明,声音信号由许多频率不同的信号组成,通常称为复合信号,而把单一频率的信号称为分量信号。声音信号的一个重要参数就是带宽(bandwidth),它用来描述组成声音信号的频率范围。PC处理的音频信号主要是人耳能听到的音频信号(audio),它的频率范围是20~20kHz。可听声包括如下内容:
- 话音(也称语音):人的说话声,频率范围通常为300~3400Hz。
- 音乐:由乐器演奏形成(规范的符号化声音),其带宽可达到20~20kHz。
- 其他声音:如风声、雨声、鸟叫声、汽车鸣笛声等,它们起着效果声或噪声的作用,其带宽范围也是20Hz~20kHz。
声音的幅度和频率
声音信号的两个基本参数是幅度和频率。
幅度是指声波的振幅,通常用动态范围表示,一般用分贝(dB)为单位来计量。
频率是指声波每秒钟变化的次数,用Hz表示。
声音的数字化
声音信号的数字化即用二进制数字的编码形式来表示声音。最基本的声音信号数字化方法是采样一量化法,可以分成以下3个步骤:
-
采样
采样是把时间连续的模拟信号转换成时间离散、幅度连续的信号。
在某些特定时刻获取的声音信号幅值叫作采样,由这些特定时刻采样得到的信号称为离散时间信号。
一般是每隔相等的一小段时间采样一次,其时间间隔称为采样周期,它的倒数称为采样频率。为了不产生失真,采样频率不应低于声音信号最高频率的二分之一。因此,语音信号的采样频率一般为8kHz,音乐信号的采样频率则应在40kHz以上。采样频率越高,可恢复的声音信号分量越丰富,其声音的保真度越好。
-
量化
量化处理是把在幅度上连续取值(模拟量)的每一个样本转换为离散值(数字量)表示,因此量化过程有时也称为A/D转换(模数转换)。
量化后的样本是用二进制数来表示的,二进制数位数的多少反映了度量声音波形幅度的精度,称为量化精度,也称为量化分辨率。例如,每个声音样本若用16位(2B)表示,则声音样本的取值范围是0~65 536,精度是1/65 536;若只用8位(1B)表示,则样本的取值范围是0~255,精度是1/256。量化精度越高,声音的质量越好,需要的存储空间也越多;量化精度越低,声音的质量越差,而需要的存储空间越少。
-
编码
为了便于计算机的存储、处理和传输,按照一定的要求对采样和量化处理后的声音信号进行数据压缩和编码,即选择某一种或者几种方法对它进行数据压缩,以减少数据量,再按照某种规定的格式将数据组织成为文件。
多媒体计算机
传统的计算机或个人机处理的信息往往仅限于文字和数字,只能算是计算机应用的初级阶段,因为人机之间的交互只能通过键盘和显示器,故交流信息的途径缺乏多样性。多媒体计算机通常指的是多媒体PC(Multimedia Personal Computer,MPC),是为了改变人机交互的方式,使计算机能够集声、文、图像处理于一体。通常多媒体计算机包括多媒体计算机硬件系统和软件系统两大部分。
多媒体计算机硬件系统
多媒体计算机硬件系统主要包括计算机硬件、声音或视频处理器、多媒体输入/输出设备、信号转换装置、通信转换设备及接口装置等。其中最重要的是根据多媒体技术标准研制的多媒体信息处理芯片和相应的板卡及光盘驱动器等外设,例如:
- 多媒体主机:如个人计算机、工作站等。
- 多媒体输入设备:如麦克风、摄像机、录像机、扫描仪、CD-ROM、传真机、数码相机和MIDI合成器等。
- 多媒体输出设备:如绘图仪、打印机、音响、喇叭、录音机、录像机和电视机等。
- 多媒体存储设备:如硬盘、光盘和声像磁带等。
- 多媒体板卡:如视频卡、声卡、压缩卡和通信卡(网卡)等。
- 多媒体操作控制设备:如鼠标、操纵杆、键盘和触摸屏等。
多媒体计算机软件系统
对于多媒体计算机的每一种硬件设备来说,都要有相应的程序支持,这些程序统称为多媒体计算机的软件系统。多媒体计算机软件系统包括多媒体操作系统、多媒体数据库、多媒体压缩/解压系统、声像同步处理程序、通信程序以及多媒体开发制作工具软件等。
多媒体操作系统必须对多媒体环境下的各个任务进行管理和调度;支持多媒体应用软件运行;对多媒体声像及其他多媒体信息的控制和实时处理;支持多媒体的输入/输出及相应的软件接口;对多媒体数据和多媒体设备的管理和控制以及图形用户界面管理等功能。也就是说,它能够像一般操作系统处理文字、图形、文件那样去处理音频、图像、视频等多媒体信息;并能够对CD-ROM驱动器、录像机、MIDI设备、数码相机、扫描仪等各种多媒体设备进行控制和管理。目前流行的操作系统都具备这些功能。
加密
保密与加密
保密就是保证敏感信息不被非授权的人知道。
加密是指通过将信息进行编码而使得侵入者不能够阅读或理解的方法,目的是保护数据和信息。
解密是将加密的过程反过来,即将编码信息转化为原来的形式。
古时候的人就已经发明了密码技术,而现今的密码技术已经从外交和军事领域走向了公开,并结合了数学、计算机科学、电子与通信等诸多学科而成为了一门交叉学科。现今的密码技术不仅具有保证信息机密性的信息加密功能,而且还具有数字签名、身份验证、秘密分存、系统安全等功能,来鉴别信息的来源以防止信息被篡改、伪造和假冒,保证信息的完整性和确定性。
加密和解密机制
加密的基本过程包括对原来的可读信息(称为明文或平文)进行翻译,译成的代码称为密码或密文,加密算法中使用的参数称为加密密钥。密文经解密算法作用后形成明文,解密算法也有一个密钥,这两个密钥可以相同也可以不相同。信息的编码和解码方法可以很简单也可以很复杂,需要一些加密算法和解密算法来完成。
从破译者的角度来看,密码分析所面对的问题有三种主要的变型:①“只有密文”问题(仅有密文而无明文);②“已知明文”问题(已有了一批相匹配的明文与密文);③“选择明文”(能够加密自己所选的明文)。如果密码系统仅能经得起第一种类型的攻击,那么它还不能算是真正的安全,因为破译者完全可能从统计学的角度与一般的通信规律中猜测出一部分的明文,而得到一些相匹配的明文与密文,进而全部解密。因此,真正安全的密码机制应使破译者即使拥有了一些匹配的明文与密文也无法破译其他的密文。
如果加密算法是可能公开的,那么真正的秘密就在于密钥了,密钥长度越长,密钥空间就越大,破译密钥所花的时间就越长,破译的可能性就越小。所以应该采用尽量长的密钥,并对密钥进行保密和实施密钥管理。
国家明确规定严格禁止直接使用国外的密码算法和安全产品,原因主要有两点:①国外禁止出口密码算法和产品,目前所出口的密码算法都有破译手段,②国外的算法和产品中可能存在“后门”,要防止其在关键时刻危害我国安全。
密码算法
密码技术用来进行鉴别和保密,选择一个强壮的加密算法是至关重要的。密码算法一般分为传统密码算法(又称为对称密码算法)和公开密钥密码算法(又称为非对称密码算法)两类,对称密钥密码技术要求加密解密双方拥有相同的密钥。而非对称密钥密码技术是加密解密双方拥有不相同的密钥。
对称密钥密码体制从加密模式上可分为序列密码和分组密码两大类(这两种体制之间还有许多中间类型)。
序列密码是军事和外交场合中主要使用的一种密码技术。其主要原理是:通过有限状态机产生性能优良的伪随机序列,使用该序列将信息流逐比特加密从而得到密文序列。可以看出,序列密码算法的安全强度由它产生的伪随机序列的好坏而决定。
分组密码的工作方式是将明文分成固定长度的组(如64比特一组),对每一组明文用同一个密钥和同一种算法来加密,输出的密文也是固定长度的。
在序列密码体制中,密文不仅与最初给定的密码算法和密钥有关,同时也是被处理的数据段在明文中所处的位置的函数;而在分组密码体制中,经过加密所得到的密文仅与给定的密码算法和密钥有关,而与被处理的数据段在整个明文中所处的位置无关。
不同于传统的对称密钥密码体制,非对称密码算法要求密钥成对出现,一个为加密密钥(可以公开),另一个为解密密钥(用户要保护好),并且不可能从其中一个推导出另一个。公共密钥与专用密钥是有紧密关系的,用公共密钥加密的信息只能用专用密钥解密,反之亦然。另外,公钥加密也用来对专用密钥进行加密。
公钥算法不需要联机密钥服务器,只在通信双方之间传送专用密钥,而用专用密钥来对实际传输的数据加密解密。密钥分配协议简单,所以极大简化了密钥管理,但公共密钥方案较保密密钥方案处理速度慢,因此,通常把公共密钥与专用密钥技术结合起来实现最佳性能。
防火墙
基本概念
防火墙的概念源于早期为防止火灾蔓延在房屋周围修建的矮墙。在网络安全中,防火墙是在内部网与外部网之间构筑的一道保护屏障,是执行访问控制策略的一个或一组系统。通过执行访问控制策略,提供授权通信,保护内部网不受外部非法用户的入侵,控制内部网与外部网之间数据流量。
防火墙可以是硬件,也可以是软件,或是二者结合。防火墙系统决定了哪些内部服务可以被外界访问,外界的哪些人可以访问内部服务,哪些外部服务可以被内部人员访问等。防火墙必须只允许授权的数据通过,其本身也必须能够免于渗透,但防火墙不是对网络内的每台计算机分别进行保护,而是让所有外部对内部网计算机的信息访问都通过某个点,防火墙就是保护这个点。防火墙技术是实现网络安全的主要手段之一。目前,企业内部网络与因特网之间的有效隔离方式大都采用的是防火墙技术。
功能
防火墙主要用于实现网络路由的安全性。网络路由的安全性包括两个方面:限制外部网对内部网的访问,从而保护内部网特定资源免受非法侵犯;限制内部网对外部网的访问,主要是针对一些不健康信息及敏感信息的访问。
优点
(1)保护那些易受攻击的服务。防火墙能过滤那些不安全的服务(如NFS等)。只有预先被允许的服务才能通过防火墙,这样就降低了受到攻击的风险性,大大地提高了网络的安全性。
(2)控制对特殊站点的访问。防火墙能控制对特殊站点的访问。如有些主机能被外部网络访问,而有些则要被保护起来,防止不必要的访问。通常会有这样一种情况,在内部网中只有Mail服务器、FTP服务器和WWW服务器能被外部网访问,而其他访问则被主机禁止。
(3)集中化的安全管理。对于一个企业而言,使用防火墙比不使用防火墙可能更加经济一些。这是因为如果使用了防火墙,就可以将所有修改过的软件和附加的安全软件都放在防火墙上集中管理;而不使用防火墙,就必须将所有软件分散到各个主机上。
(4)对网络访问进行记录和统计。如果所有对Internet的访问都经过防火墙,那么防火墙就能记录下这些访问,并能提供网络使用情况的统计数据。当发生可疑动作时,防火墙能够报警,并提供网络是否受到监测和攻击的详细信息。
不能实现的功能
(1)限制有用的网络服务。防火墙为了提高被保护网络的安全性,限制或关闭了很多有用但存在安全缺陷的网络服务。
(2)不能防范内部网络用户的攻击。目前防火墙只提供了对外部网络用户攻击的防护,对来自内部网络用户的攻击只能依靠内部网络主机系统的安全性。
(3)不能完全防范病毒。因为病毒的类型很多,操作系统各异,编码与压缩二进制文件的方法也各不相同,因此防火墙不能完全防止传送已感染病毒的软件或文件,不能期望防火墙对每一个文件进行扫描,查出潜在的病毒。
分类
从技术角度分类,防火墙可以分为包过滤防火墙、代理服务防火墙和复合型防火墙。
包过滤防火墙
网络传输数据是以“包”为单位进行的,数据被分割成一定大小的数据包,每个数据包中都会含有一些特定的信息,如数据的源地址、目标地址、TCP/UDP源端口和目标端口等。防火墙可通过对数据包的源地址、目的地址及端口等的检查,判断数据包是否来自可信任的安全站点。如果发现来自危险站点的数据包,防火墙将会拒绝其通过。
包过滤防火墙是最简单的防火墙,使用方便,实现成本低。分组过滤在网络层实现,不要求改动应用程序,也不要求用户学习任何新的东西,对用户来讲是透明的,用户基本感觉不到分组过滤器的存在。但也存在一个问题,就是过滤器不能在用户层次上进行安全过滤,即在同一台机器上,过滤器分辨不出是哪个用户的报文。