信息安全技术

现在计算机已经渗透到各行各业,在使用过程中产生了大量的电子数据,在通信时如何保证传输数据的安全,如何防止人为、病毒、自然灾害对数据的的侵害,信息安全技术显得越发重要。

信息安全.png

信息安全技术

加密和解密

原则上来说,对电子数据的攻击形式分为:

  • 被动攻击:就是非法地从传输信道上截取信息,或从存储载体上偷窃、复制信息。

  • 主动攻击:就是对传输或存储的数据进行恶意的删除、篡改等。

对于防止数据攻击,密码技术是最有效而且经济的方法。密码体制分为堆成加密和非对称加密:

  • 对称加密
    • 加密秘钥和解密秘钥相同
    • 加密秘钥和解密秘钥可以简单相互推导
  • 非对称加密
    • 加密秘钥和解密秘钥不同
    • 加密秘钥和解密秘钥不能在有限时间内相互推导

对称秘钥密码体制及典型算法

对称算法(Symmetric Algorithm),又称为传统密码算法,要求发送方和接收方在安全通信前,商定一个秘钥,对称算法的安全性依赖于秘钥。

DES算法

DES(Data Encryption Standard,数据加密标准)是由IBM公司研制的一种加密算法,DES是一个分组加密算法,它以64位分组对数据加密,它的秘钥长度是56位(每个第8位都用作奇偶校验)。DES算法分为如下三个步骤:

  • 初始置换:X0 = IP(X) = L0R0,其中X为64位的明文,L0表示X0的前32位,R0表示X0的后32位。

  • 计算16迭代,设前i-1次迭代结果为Xi-1 = Li-1Ri-1,则第i轮迭代运算为:Li = Ri-1,Ri = Li-1⊕f(Ri-1, Ki)

  • Li-1表示Xi-1的前32位

  • Ri-1表示Xi-1的后32位

  • ⊕表示两位串的“异或”运算

  • f主要是由一个成为S盒的置换构成

  • Ki是一些由初始的56位经过秘钥编排函数产生的48位长的块

  • 对串L16R16作逆置换IP-1得密文y,y = IP-1(L16R16),IP-1是IP的逆置换。

DES算法的示意图如下:

DES算法.png

IDEA算法

国际数据加密算法(International Data Encryption Standard,IDEA),IDEA分组长度为64b,秘钥长度为128b,具有如下特点:

  • 运算简单:只需要异或,模216和模(216+1)乘。
  • 容易使用硬件或软件实现(DES算法便于用硬件实现,难以用软件实现)。
  • 软件实现的IDEA算法运算速度比DES算法快,因为都是基于16b数运算,容易在16b、32b、64bCPU上实现。
  • 秘钥长度为128b,穷举法攻击不现实。

非对称加密算法

非对称密码体制又称为双秘钥和公钥密码体制,是于1976年由Diffie和Hellman提出的。非对称密码体制又两个不同的密码:

  • 私钥,秘密保存。
  • 公钥,公开、不需要保密。

其工作方式如下:

  • 公布公钥,网络或者其他可以公开的地方。
  • 发送方:用发布的公钥将信息加密,然后传送给接收方
  • 接收方:使用与此公钥相对应的私钥,将接收到的加密信息解密出来。

RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

RSA算法的具体描述如下:

RSA算法描述.png

然而只根据n和e(注意:不是p和q)要计算出d是不可能的。因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密 。

散列函数和数字签名

散列函数

散列函数是一种公开的数学函数,函数输入的信息叫做报文,匀后所得到的结果叫做散列码或者叫做消息摘要。

散列函数h = H(M),具有如下特点:

  • 不同内容的报文具有不同的散列值。
  • 散列函数是单向的,不可逆。
  • 对于任何一个报文,无法预知它的散列码。
  • 散列码具有固定长度。

常见的散列函数有MD5、SHA和HMAC等。

MD5(Message Digest 5)是一种非常著名的散列算法,已成为国际标准。MD5散列算法对输入的任意长度的消息产生128位(16字节)长度的消息摘要,MD5算法包括以下4个步骤:

  • 按位补充数据:补充后的数据长度模512后于448,也就是说数据补位后,其位数长度只差64位(bit)就是512的整数倍。即便是这个数据的位数对512求模的结果正好是448也必须进行补位。

  • 补足长度:将数据长度表示为二进制,如果长度超过64位,则获取其低64位;如果长度不足64位,则在其高位补0。然后将得到的64位报文添加在经过填充的报文后,得到的结果数据长度正好是512的整数倍。也就是说长度正好是16个(32bit) 字的整数倍。

  • 初始化MD缓存器:MD5运算要用到一个128位的MD5缓存器,用来保存中间变量和最终结果。该缓存器又可看成是4个32位的寄存器A、B、C、D,初始化为 :

    A : 01 23 45 67

    B: 89 ab cd ef

    C: fe dc ba 98

    D: 76 54 32 10

  • 处理数据段:首先定义4个非线性函数F、G、H、I,对输入的报文运算以512位数据段为单位进行处理。对每个数据段都要进行4轮的逻辑处理,在4轮中分别使用4个不同的函数F、G、H、I。每一轮以ABCD和当前的512位的块为输入,处理后送入ABCD(128位)。

信息摘要最终处理成以A, B, C, D 的形式输出。也就是开始于A的低位在前的顺序字节,结束于D的高位在前的顺序字节。

数字签名

数字签名可以解决否认、伪造、篡改及冒充等问题。数字签名方案一般包括三个过程:

  • 系统的初始化
  • 签名产生过程
  • 签名验证过程

目前采用比较多的是非对称加密技术和对称加密技术,两种方式大体工作程序是一样的,如下图所示:

数字签名.png

数字水印

数字水印(Digital Watermarking)是实现版权保护的有效办法,是通过在原始数据中嵌入秘密信息–水印(Watermarking)来证实数据的所有权。

  • 可以是一段文字、标识或序列号
  • 不可见或不可察
  • 与原始数据紧密结合并隐藏其中
  • 在一些不破坏源数据使用价值或商用价值的操作后仍然能够保存下来

水印嵌入和提取的流程如下图所示:

数字水印

数字水印主要应用领域:版权保护、加指纹、标题与注释、篡改提示、使用控制。

常用的数字水印算法:空域算法、变换域算法、压缩域算法、NEC算法和生理模型算法。

秘钥分配中心与公钥基础设施

在现代密码体系中,算法本身的保密性已经不重要了,对于数据的保密在很大程度上、甚至完全依赖于对密钥的保密。因此在密码系统中,如何高效地分配密钥、安全地管理密钥对保证数据安全来说至关重要。

密钥分配中心(Key Distribution Center,KDC)

在KDC方案中,每一个用户都只保存自己的私钥SK和KDC的公钥PKKDC,在通信时再从KDC获取其他用户的公钥或者仅仅在某一次通信中可以使用的对称秘钥加密算法的临时秘钥K。

在KDC方案中,假设用户A保存私钥SKA、用户B保存私钥SKB,假设用对称秘钥来加密他们的对话,秘钥的分配流程如下:

  • A向KDC发送SKA(A,B),请求使用SKA加密
  • KDC收到加密消息,用A的公钥来验证请求是由A发出的
  • 根据某种算法生成供A、B之间会话使用的对称秘钥K
  • KDC向A返回PKA(K, PKB(A, K)),该应答是用A的公钥加密,只有A能使用SKA解密
  • A使用SKA解密得到秘钥K,并将PKB(A, K)发送给B,表示想与B进行会话
  • B用自己的私钥解密得到会话秘钥K

数字证书和公开密钥基础设施

数字签名和公钥加密都是基于不对称加密技术,存在的问题有:

  • 如何保证公开密钥的持有者是真实的
  • 大规模信息系统下公开密钥如何产生、分发和管理

数字证书

数字证书提供了一个在公钥和拥有相应私钥的实体之间建立关系的体制。数字证书中采用公钥体制,利用一对互相匹配的秘钥进行加密、解密。每个用户自己保存私钥,用它进行解密和签名。

数字证书是用户在系统中作为确认身份的证据,数字证书的内容一般包括:

  • 唯一标识证书所有者的名称
  • 唯一标识证书签发者的名称
  • 证书所有者的公开密钥
  • 证书签发者的数字签名
  • 证书的有效期
  • 证书的序列号

公钥基础设施KPI

KPI(Public Key Infrastructure,公钥基础设施)为用户和应用程序提供公开密钥的管理服务。PKI的结构模型中有三类实体:

  • 管理实体:是KPI的核心,服务的提供者
    • CA:框架中唯一能够发布和撤销证书的实体,维护证书的生命周期
    • RA:处理用户请求,在验证了请求的有效性后,代替用户想CA提交
  • 端实体:PKI的用户,服务的使用者
    • 持有者
    • 验证者
  • 证书库:分布式的数据库,用于证书和CRL的存放和检索

访问控制

访问控制是通过某种途径限制和允许对资源的访问能力以及范围的一种方法。访问控制技术可以通过对计算机系统的控制,自动、有效地防止对系统资源进行非法访问或者不当的使用,它是建立在身份认证的基础之上,但不能取代身份认证。

身份认证

识别用户的身份有两种不同的形式

  • 身份认证:要求对用户的所有权限角色或自身的身份进行认证
  • 身份鉴定:要求对使用者本身的身份进行检查

认证的方法多种多样,其安全强度也不同,具体方法可以总结为三大类:

  • 用户知道什么:用户名和口令认证
  • 用户拥有什么:使用令牌认证
  • 用户是什么:生物识别与三因素认证

在安全性要求较高的系统中,认证必须能对用户进行身份鉴定,要将用户知道什么、拥有什么、是什么结合起来,同时对认证用的秘钥进行保护。

访问控制技术

根据控制手段和具体目的的不同,通常将访问控制技术划分为如下几个方面:

  • 入网访问控制
  • 网络权限控制
  • 目录级安全控制
  • 属性安全控制
  • 网络服务器的安全控制

安全协议

IPSec协议

IPSec在IP层上对数据包进行高强度的安全处理提供数据源验证、无连接数据完整性、抗重播和有限通信流机密性等安全服务。

IPSec像Internet秘钥交换(Internet Key Exchange,IKE)协议这样的秘钥管理过程和协议,通过使用两种通信安全协议来为数据提供高质量的安全性:

  • 认证头(AH)协议
  • 封装安全载荷(ESP)协议

IPSec协议既可以用来保护一个完整的IP载荷,也可以用来保护某个IP载荷的上层协议。这两方面的保护分别由IPSec的两种不同的“模式”来提供,如下图所示:

IPSec数据结构

SSL协议

SSL协议(Secure Socket Layer)是Natscape推出的一种网络安全协议,是在传输过程通信协议(TCP/IP)上实现的一种安全协议。

在SSL中,所有数据被封装在记录中,记录层把从上层获得的数据分成可管理的块、可选的压缩数据、应用MAC(Message Authentication Code)、加密、增加SSL首部、在TCP报文段中传输结果单元。被接收的数据通过解密、验证、解压和重新装配,然后交付给更高级的用户。SSL中两个重要的概念是SSL连接和SSL会话:

  • SSL连接:提供恰当类型服务的传输
  • SSL会话:客户和服务器之间的关联,会话通过握手协议来创建

SSL协议工作过程如下如所示:

SSL协议工作示意图.png

数据备份

作为信息安全的重要成员——数据备份却经常被人们遗忘,这样可能导致大量的有用信息被破坏,造成的后果有时是毁灭性的。

备份类型

数据备份包括一下几种类型,在不同的情况下应该根据具体情况,选出最合适的方案:

  • 完全备份:备份时间最长,恢复时间最短,操作最方便可靠。
  • 差异备份:备份时间较长,占用空间较多,但恢复时间较短。
  • 增量备份:备份时间较短,占用空间较少,单恢复时间较长。
  • 按需备份:有很好的选择性。

异地备份

数据异地备份是容灾系统的核心技术,通过有效的数据复制,实现远程的业务数据与本地业务数据的同步,确保一旦本地系统出现故障,远程的容灾中心能够迅速进行完整的业务接管。例如“9.11”期间,美国金融行业虽然遭受巨大的损失,但还是能够正常运行,也得益于数据的异地备份做得非常好。

新型的备份解决方案

一个优秀的备份解决方案应该做到:

  • 最大限度地降低对应用数据流量的影响,从而保证通信性能
  • 最大限度地降低服务器的负载,保证服务器的性能
  • 优化备份资源的使用,包括服务器、驱动器等

下面介绍集中备份解决方案。

  • 网络备份模式:把一个磁带设备放置在LAN上,供多个服务器共享。
  • 用存储网络备份:让每个应用服务器都可以通过一个专用的存储网络,直接将数据备份到某个磁带设备,而不需要经过专门的备份服务器。
  • 磁带和磁带质检直接传输数据的备份:为了减轻服务器在备份时的CPU负载,需要在数据不经过服务器本身的情况下,将备份数据从磁盘发送到磁带,这是通过磁盘和磁带质检直接传输数据的机制(即SCSI扩展复制命令的方法)来实现的。

计算机病毒与免疫

计算机病毒

病毒的定义最早由F.B.Cohen于1984年提出的,在他的经典文章Computer Viruses-Theory and Experiments(计算机病毒理论与时间)中,描述如下:

计算机病毒是这样一种程序,它通过修改其他程序使之含有该程序本身或它的一个变体。病毒具有感染力,它可借助其使用者的权限感染他们的程序,在一个计算机系统中或网络中得已繁殖、传播。每个被感染的程序也像病毒一样可以感染其他程序,从而使更多的程序受到感染。

病毒的特征:

  • 感染性
  • 潜伏性
  • 可触发性
  • 破坏性
  • 人为性
  • 衍生性

计算机病毒的分类:

  • 引导区病毒(boot sector virus)
  • 文件感染病毒(file infector virus)
  • 宏病毒(Marco virus)
  • 特洛伊木马(Trojan/Trojan Horse)
  • 蠕虫病毒(Worm)

计算机病毒免疫的原理

计算机病毒的传染模块一般包括传染条件判断和实施传染两个部分,在病毒被激活的状态下,病毒程序通过判断传染条件的满足与否,以决定是否对目标对象进行传染。

从实现计算机病毒免疫的角度看病毒的传染,可以将病毒的传染分为两种:

  • 判断传染标记,如果不存在传染标记,就进行传染。
  • 不判断传染标记,找到可以传染的对象就进行一次传染。

目前常用的免疫方法有如下两种:

  • 针对某一种病毒进行的计算机病毒免疫:为文件添加免疫标记,标识该文件已被传染,骗过病毒
    • 病毒变异时,免疫标记会失效
    • 某些病毒免疫标志不容易仿制
    • 病毒种类较多,不可能添加各种病毒的免疫标识
    • 能阻止传染,但不能阻止病毒的破坏行为
  • 基于自我完整性检查的计算机病毒的免疫
    • 只能用于文件,不能用于引导扇区
    • 为可执行程序增加一个免疫外壳
    • 执行时,先运行免疫外壳,检查自身的程序大小、校验生成日期和时间等信息,没有异常才执行受保护的程序。
0%