• 安全加密相关概念


    为甚么要加密?

    不加密流量的易受攻击性

    • 密码/数据嗅探

    • 数据操作

    • 验证操作

    • 相当于邮寄明信片

    不安全的传统协议

    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 

    密钥交换:

    密钥交换: IKE (Internet Key Exchange)

        公钥加密:DH(Deffie-Hellman)

    DH:

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

       B: a,p

    2,  A: 生成隐私数据 :x(x

       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生成。 

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

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

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

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

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

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

  • 相关阅读:
    金仓数据库 KingbaseES 插件参考手册 pldbgapizw33
    Proxmox VE 镜像定制化
    java计算机毕业设计高校就业服务网站MyBatis+系统+LW文档+源码+调试部署
    书生·浦语大模型实战营(第二期):书生·浦语大模型趣味Demo
    89.(cesium篇)cesium聚合图(自定义图片)
    java常用下载官网
    APP广告竞价机制:头部竞价与瀑布流
    ps命令介绍及常用操作和参数说明
    UE5场景逐渐变亮问题
    redis缓存击穿、穿透、雪崩
  • 原文地址:https://blog.csdn.net/ly1358152944/article/details/126343935