安全加密相关概念

为甚么要加密?

不加密流量的易受攻击性

  • 密码/数据嗅探

  • 数据操作

  • 验证操作

  • 相当于邮寄明信片

不安全的传统协议

telnet,FTP,POP3等,不安全密码

http,smtp,nfs等,不安全信息

ldap,nis,rsh等,不安全验证

NIST(美国国家标准与技术研究院)定义的安全属性

保密性:

    数据保密性

    隐私性

完整性: 不可篡改

    数据完整性

    系统完整性

可用性

安全攻击 STRIDE

    Spoofind  假冒

    Tampering 篡改

    Repudiation 否认

    Information Disclosure  信息泄露

    Denial of Service 拒绝服务

    Elevation of Privilege  提升权限

安全机制:

    加密,数字签名,访问控制,数据完整性,认证交换,流量填充,路由控制,公证

安全服务:

    认证

    访问控制

    数据保密性

        连接保密性

        无连接保密性

        选择域保密性

        流量保密性

    数据完整性

    不可否认性

设计的基本原则

  • 使用成熟的安全系统

  • 以小人之心度输入数据

  • 外部系统是不安全的

  • 最小授权

  • 减少外部接口

  • 缺省使用安全模式

  • 安全不是似是而非

  • 从STRIDE思考

  • 从入口处检查

  • 从管理上保护好你的系统

安全算法:

常用的安全技术:

    认证

    授权

    安全通信

    审计

密码算法和协议

    对称加密

    公钥加密

    单向加密

    认证协议

Linux系统: openssl gpg(pgp协议的实现)

对称加密算法

对称加密 : 加密和解密使用同一个密钥

    DES;3DES;AES;IDEA,RC6,CAST5,Blowfish,Twofish

特性:

    加密,解密使用同一个密钥,效率高

    将原始数据分割成固定大小的块,逐个进行加密

缺陷:

    密钥过多

    密钥分发

    数据来源无法确认

非对称加密算法

公钥加密: 密钥是成对出现

    公钥: 公开给所有人;public key

    私钥: 自己留存,必须保证其私密性; secret key

特点 :

    用公钥加密数据,只能使用与之匹配的私钥解密,反之亦然

功能:

    数字签名:主要在于接收方确认发送方身份

    对称密钥交换:发送方用对方的公钥加密一个对称密钥后发送给对方

    数据加密: 适合加密较少数据

缺点:

    密钥长,加密解密效率低下

算法:

    RSA(加密,数字签名)DSA(数字签名),ELGamal

基于一对公钥/私钥对

    用密钥对中的一个加密,另一个解密

实现加密:

    接收者

        生成公钥/私钥对 :P和S

        公开公钥P,保密密钥S

    发送者

        使用接收者的公钥来加密消息M

        将P(M)发送给接收者

    接收者

        使用密钥S来解密: M=S(P(M))

实现数字签名:

    发送者

        生成公钥/私钥对 :P和S

        公开公钥P,保密密钥S

        使用密钥S来加密消息M

        发送给接收者S(M)

    接收者

        使用发送者的公钥来解密M=P(S(M))

结合签名和加密

分离签名

单向散列

将任意数据缩小成固定大小的"指纹"

  • 任意长度输入

  • 固定长度输出

  • 若修改数据,指纹也会改变(不会产出冲突)    

  • 无法从指纹中重修生成数据(单向)

功能: 数据完整性

常见算式

    md5: 128bits、sha1: 160bits、sha224 sha256、sha384、sha512 

常用工具:

    md5sum | sha1sum  [ –check  ]  file 

    openssl、gpg 

    rpm  -V

密钥交换:

密钥交换: IKE (Internet Key Exchange)

    公钥加密:DH(Deffie-Hellman)

DH:

1,  A: a,p 协商生成公开的整数a,大素数p

   B: a,p

2,  A: 生成隐私数据 :x(x<p),计算得出 a^y%p ,发送给B

   B: 生成隐私数据 :y,计算得出 a^y%p, 发送给A

3,  A:计算得出 (a^y%p)^x = a^xy%p,生成为密钥 

   B:计算得出 (a^x%p)^y = a^xy%p, 生成为密钥

CA和证书

PKI: Public Key Infrastructure 

    签证机构:CA(Certificate Authority) 

    注册机构:RA 

    证书吊销列表:CRL 

    证书存取库:

X.509:定义了证书的结构以及认证协议标准

版本号 序列号 签名算法 颁发者 有效期限 主体名称 主体公钥 CRL分发点 扩展信息 发行者签名

证书的获取 

证书类型:

    证书授权机构的证书

    服务器

    用户证书

获取证书的两种方法

    使用证书授权机构

        生成签名请求csr

        将csr发送给CA

        从CA处接受签名

    自签名的证书

        自己签发自己的公钥

安全协议

SSL:Secure Socket Layer

功能:机密性,认证,完整性,重放保护 

两阶段协议,分为握手阶段和应用阶段

    握手阶段(协商阶段):客户端和服务器端认证对方身份(依赖于PKI体 系,利用数字证书进行身份认证),并协商通信中使用的安全参数、密码套件以及主密钥。后续通信使用的所有密钥都是通过MasterSecret生成。 

    应用阶段:在握手阶段完成后进入,在应用阶段通信双方使用握手阶 段协商好的密钥进行安全通信。

blob.png

Handshake协议:包括协商安全参数和密码套件、服务器身份认证(客户端身份认证可选)、密钥交换 

ChangeCipherSpec 协议:一条消息表明握手协议已经完成 

Alert 协议:对握手协议中一些异常的错误提醒,分为fatal 和warning两个级别,fatal类型错误会直接中断SSL链接,而 warning级别的错误SSL链接仍可继续,只是会给出错误警告 

Record 协议:包括对消息的分段、压缩、消息认证和完整性 保护、加密等 

HTTPS 协议:就是“HTTP 协议”和“SSL/TLS 协议”的 组合。HTTP over SSL”或“HTTP over TLS”,对http协议 的文本数据进行加密处理后,成为二进制形式传输

blob.png

类似文章