软考知识点汇总

软考知识点汇总

信息安全

转载 https://www.jianshu.com/p/29e0ba31fb8d

信息的保密性(加密算法)

信息的保密性我们可以使用对称加密和非对称加密来完成,使用对称加密来完成,速度相对非对称加密很快,但是存在一个安全问题,密钥如何传递?由此通用的方法是使用非对称加密+对称加密来完成。客户端使用公钥对对称加密的密钥进行加密,然后传递给服务端,服务端使用私钥进行解密确认密钥,开始传输数据。

对称加密

对称加密是指双方持有相同的密钥进行通信,加密速度快。
常见的对称加密算法有DES、3DES、AES、RC-5等。

非对称加密

非对称加密,又称为公开密钥加密,是为了解决对称加密中的安全问题而诞生,一个称为公开密钥(public key),即公钥,另一个称为私钥(private key),即私钥。但是它的加密速度相对于对称加密来说很慢,不适合大量传输。

  • 公钥(public key)是对外开放的,私钥(private key)是自己拥有的。
  • 公钥(public key)加密的数据,只能用私钥(private key)解密。
  • 私钥(private key)加密的数据,只能用公钥(public key)解密。

常见的非对称加密算法有RSA算法

信息的完整性(数字签名)

信息传输的途中,我们的信息很有可能被第三方劫持篡改,所以我们需要保证信息的完整性,通用方法是使用散列算法如SHA1,MD5将传输内容hash一次获得hash值,即摘要。客户端使用服务端的公钥对摘要和信息内容进行加密,然后传输给服务端,服务端使用私钥进行解密获得原始内容和摘要值,这时服务端使用相同的hash算法对原始内容进行hash,然后与摘要值比对,如果一致,说明信息是完整的。

身份识别(数字证书)

在信息传输的过程中,我们通常需要验证信息的发送方的身份,这时我们转化一下思路就可以完成,把发送端的公钥发送给接收端,发送端通过把自己的内容使用私钥加密然后发送给接收端,接收端只能用发送端的公钥解密,自然就验证了发送端的身份。

数字证书是由权威的CA(Certificate Authority)机构给服务端进行颁发,CA机构通过服务端提供的相关信息生成证书,证书内容包含了持有人的相关信息,服务器的公钥,签署者签名信息(数字签名)等,最重要的是公钥在数字证书中。

一个证书中含有三个部分:”证书内容,散列算法,加密密文“,证书内容会被散列算法hash计算出hash值,然后使用CA机构提供的私钥进行RSA加密。

p1

信息摘要算法

包括MD5算法、SHA-1算法和MAC算法

数字签名应该具有唯一性,即不同的消息的签名是不一样的;同时还应具有不可伪造性,即不可能找到另一个消息,使其签名与已有的消息的签名一样;还应具有不可逆性,即无法根据签名还原被签名的消息的任何信息。这些特征恰恰都是消息摘要算法的特征,所以消息摘要算法适合作为数字签名算法。

计算机病毒

蠕虫病毒:它不会损害计算机文件和数据,它的破坏性主要取决于计算机网络的部署, 可以使用计算机网络从一个计算机存储切换到另一个计算机存储来计算网络地址来感染病毒。

引导型病毒:是一种主攻感染驱动扇区和硬盘系统引导扇区的病毒。

文件型病毒:文件行病毒也称为外壳型病毒。这种病毒的载体是可执行文件,即文件扩展名为.com 和.exe等的程序,它们存放在可执行文件的头部或尾部。

宏病毒:宏病毒是指用BASIC语言编写的病毒程序寄存在Office文档上的宏代码。宏病毒影响对文档的各种操作。

目录型病毒:能够修改硬盘上存储的所有文件的地址。

计算机网络

安全协议

TLS:(Transport Layer Security,传输层安全协议),用于两个应用程序之间提供保密性和数据完整性。

SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端和服务器之间的安全通讯。

SSL协议即用到了对称加密也用到了非对称加密(公钥加密),在建立传输链路时,SSL首先对对称加密的密钥使用公钥进行非对称加密,链路建立好之后,SSL对传输内容使用对称加密。

p1

OSI模型

p1

指令

netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知有哪些网络连接正在运作。

ping命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。

tracert是路由跟踪实用程序,用于确定 IP 数据包访问目标所采取的路径,确定从一个主机到网络上其他主机的路由。

arp是根据IP地址获取物理地址的一个TCP/IP协议。

操作系统

地址索引

转载 https://blog.csdn.net/u013058618/article/details/49678495

设计模式

观察者模式

观察者(Observer)模式的定义:指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式,它是对象行为型模式。

观察者模式是一种对象行为型模式,其主要优点如下。

  1. 降低了目标与观察者之间的耦合关系,两者之间是抽象耦合关系。
  2. 目标与观察者之间建立了一套触发机制。

p1

p1

计算机硬件

ROM:ROM中所存数据稳定,一旦存储数据就再也无法将之改变或者删除,断电后所存数据也不会消失。

RAM:RAM 是随机存取存储器,它的特点是易挥发性,即掉电失忆。

常规上ROM是用来存储固化程序的,RAM是用来存放数据的。


软件体系结构

结构化方法分析由以下几个部分组成:数据流图、数据字典、加工逻辑说明。


参数多态:声明与定义函数、复合类型、变量时不指定其具体的类型,而把这部分类型作为参数使用,使得该定义对各种具体类型都适用。(class List模板类)

包含多态:同样的操作可用于一个类型及其子类型,一般用于运行时的类型检查。

强制多态:通过语义操作,把操作对象的类型强行加以转变,以符合函数或操作符的要求。(int、double强转)

过载多态:同一个名(操作符、函数名)在不同的上下文中有不同的类型。(overload、virtual)


词法分析:从左到右逐渐扫描源程序中的字符,识别关键字、标识符、常数、运算符以及分隔符等。他应用了一种叫做有限状态机的算法把源代码分割成一个一个的记号。

语法分析:语法分析则由分析器去扫描扫描器产生的那些记号去进行语法分析,产生语法树,整个过程采用了上下文无关语法的分析手段,由语法分析树生成的树是以表达式为节点的树。比如:if…else if不匹配,缺少分号,括号不匹配等。

语义分析:主要检测源程序是否存在静态语义错误,声明类型和类型的匹配、转换。比如当一个浮点数赋值给整型的时候,隐藏了一个过程,就是浮点型到整型转换的过程。但是将浮点数赋值给指针的时候,在语法层面可以,但是语义阶段,会发现,类型不匹配则会报错。

软件工程

CMM是一种用于评价软件承包能力并帮助其改善软件质量的方法,侧重于软件开发过程的管理及工程能力的提高与评估。CMM分为五个等级:一级为初始级,二级为可重复级,三级为已定义级,四级为已管理级,五级为优化级。

CMM/CMMI将软件过程的成熟度分为5个等级,以下是5个等级的基本特征:

(1)初始级(initial)。工作无序,项目进行过程中常放弃当初的计划。管理无章法,缺乏健全的管理制度。开发项目成效不稳定,项目成功主要依靠项目负责人的经验和能力,他一但离去,工作秩序面目全非。

(2)可重复级(Repeatable)。管理制度化,建立了基本的管理制度和规程,管理工作有章可循。 初步实现标准化,开发工作比较好地按标准实施。 变更依法进行,做到基线化,稳定可跟踪,新项目的计划和管理基于过去的实践经验,具有重复以前成功项目的环境和条件。

(3)已定义级(Defined)。开发过程,包括技术工作和管理工作,均已实现标准化、文档化。建立了完善的培训制度和专家评审制度,全部技术活动和管理活动均可控制,对项目进行中的过程、岗位和职责均有共同的理解 。

(4)已管理级(Managed)。产品和过程已建立了定量的质量目标。开发活动中的生产率和质量是可量度的。已建立过程数据库。已实现项目产品和过程的控制。可预测过程和产品质量趋势,如预测偏差,实现及时纠正。

(5)优化级(Optimizing)。可集中精力改进过程,采用新技术、新方法。拥有防止出现缺陷、识别薄弱环节以及加以改进的手段。可取得过程有效性的统计数据,并可据进行分析,从而得出最佳方法。


文章目录
  1. 1. 软考知识点汇总
    1. 1.1. 信息安全
      1. 1.1.0.1. 信息的保密性(加密算法)
        1. 1.1.0.1.1. 对称加密
        2. 1.1.0.1.2. 非对称加密
      2. 1.1.0.2. 信息的完整性(数字签名)
      3. 1.1.0.3. 身份识别(数字证书)
    2. 1.1.1. 信息摘要算法
    3. 1.1.2. 计算机病毒
  2. 1.2. 计算机网络
    1. 1.2.1. 安全协议
    2. 1.2.2. OSI模型
    3. 1.2.3. 指令
  3. 1.3. 操作系统
    1. 1.3.1. 地址索引
  4. 1.4. 设计模式
    1. 1.4.1. 观察者模式
  5. 1.5. 计算机硬件
  6. 1.6. 软件体系结构
  7. 1.7. 软件工程
|