Linux之加密和解密技术

加密和解密技术




本章内容:

  • 安全机制
  • 对称加密
  • 不对称加密
  • 散列算法
  • PKI和CA



相关知识:

1)传输层协议:

TCP(面向连接),UDP(面向无连接),SCTP(流控协议)

2)port(端口):传输层协议都会提供端口,

端口(port)是标记进程的地址,进程向内核注册才能使用某端口(独占)

任何一个进程占领某个端口之后,其他进程进不能使用了;

3)同一主机上的进程间通信:

IPC,message qoeue(消息队列),shm(共享内存),semerphor

4)不同主机间的进程通信

通过套接字方式来实现(socket)

cip:port<-- -->sip:port(客户端ip和端口到服务端ip和端口)

5)监听模式LINTEN(ip:port),

无论有没有人访问,它都要打开自己的进程,并监听在某个ip:port上,随时等待客户端请求;

为某些众所周知的应用,事先分配好一个固定的端口(比如http的80端口)

6)SSL :Secure Socket Layer

http-->ssl-->https

http协议一但调用了ssl就变成了https,从而能够完成安全通信

1.介绍

★  SSL 也就是Secure Socket Layer 叫做安全套接字协议,是一种应用层协议,主要用于数据传输的加密。OpeenSSL是SSL协议开源形式,是广泛使用的商业及SSL工具,同时OpeenSSL也是一种命令行工具;

★  在计算机网络中,我们知道跨主机之间的进程通信是通过套接字方式实现的,服务器监听在某个TCP Socket之上(IP:Port),客户端在本地打开一个随机的Socket,然后通过TCP/IP协议,将请求通过交换机、路由器层层转发到目标服务器上,然后服务器可以判断出客户端请求的资源,进而转交到应用层相关服务上,服务端应用进程从磁盘上获得相应的资源信息,然后封装成相应的网络数据包格式以同样的方式层层传输给客户端对应的端口上。

★  无论数据从应用层向下传输还是从下层到应用层传输,每个层次中的协议都仅仅是对数据进行封装解封装,而里面的数据本身并没有发生变化,所以,数据在发送过程当中是什么还是什么,也就是明文发送的,没有加密,任何人只要获取到了相关的数据包就能通过其他方法获知其中的铭文内容;因此就需要有一种加密机制能够保护互联网数据在传输过程中的隐秘性了;

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

·保密性:数据保密性,隐私性

·完整性(不可篡改):数据完整性,系统完整性

·可用性

攻击类型:

·威胁保密性的攻击:窃听、通信量分析 ;

·威胁完整性攻击:篡改,伪装,重放,否认;

·威胁可用性的攻击:拒绝服务(Dos)

 解决方案:

·安全机制:

加密解密;

数字签名;

访问控制;

数据完整性;

认证交换;

流量填充;

路由控制;

公证

·安全服务:用于抵御攻击的服务

认证服务;

访问控制服务;

数据保密性服务:连接保密性、无连接保密性、选择域保密性、流量保密性

数据完整性服务;

不可否认性服务;

 设计原则:

·使用成熟的安全系统

·以小人之心度输入数据

·外部系统是不安全的

·最小授权

·减少外部接口

·缺省使用安全模式

·安全不是似是而非

·从STRIDE思考

·在入口处检查

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

安全算法

·常用安全技术

认证

授权

安全通信

审计

·密码算法和协议

对称加密

公钥加密

单向加密

认证协议

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

2.常见的加密算法和协议

1)对称加密

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

·DES:Data Encryption Standard,56bits

·3DES:

·AES:Advanced (128, 192, 256bits)

·Blowfish,Twofish

·IDEA,RC6,CAST5

 特性:

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

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

缺陷:

·密钥过多;

·密钥分发;

·数据来源无法确认

2)非对称加密(公钥加密)

 非对称加密采用公钥加密同时还需要另一个秘钥来解密,也就是私钥;两者统称为密钥对。

·公钥:从私钥中提取产生,公开给所有人;public key

·私钥:通过工具创建,使用者自己留存,必须保证其私密性;secret key

 特点

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

 功能

·身份认证:私钥拥有者用自己的私钥加密的数据,只要用其公钥能解密,即可认证其身份;私钥加密的这个过程为数字签名

·密钥交换:发送方用对方的公钥加密后发送给对方;

·数据加密:适合加密较小数据

 缺点:

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

 算法:

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

基于一对公钥/私钥对

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

 实现加密过程:

·接收者

生成公钥P和私钥S

公开公钥P,保密私钥S

·发送者

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

将P(M)发送给接收者

·接收者

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

 实现数字签名:

·发送者

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

公开公钥P,保密密钥S

使用私钥S来加密消息M

发送给接收者S(M)

·接收者

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

结合签名和加密

分离签名

3)单向加密

 只能加密,不能解密,因为解密过程是一个二次加密的过程;主要是提取数据的特征码,即“数据指纹”

特性

·任意长度输入

·固定长度输出

·若修改数据,指纹也会改变(“不会产生冲突”)

·无法从指纹中重新生成数据(“单向”)

 功能

数据完整性(完整性校验)

系统账号密码校验

 算法

md5:Message Digest 5(消息摘要),128bits;

sha1:Secure Hash Algorithm 1(安全哈希算法) ,160bits

sha224,sha256,sha384,sha512

4)密钥交换

 钥交换(IKE):双方通过交换密钥来实现数据加密解密;密钥交换有两种

  • 公钥交换:将公钥加密后通过网络传输到对方进行解密,这种方式很有可能别截获破解,不常用;
  • DH双方共有一些参数,共同协商加密算法,除此之外双方还有属于自己的私有参数,通过共有参数、私有参数和算法信息来进行加密,然后双方将计算后的结果进行交换,交换完成后再和属于自己私有的参数进行特殊算法,经过双反计算后的结果是相同的,而这个结果就是密钥

如:A有p和g两个参数,A还有一个属于自己的私有参数x;

B有p和g两个参数,B还有一个属于自己的私有参数y;

A和B有相同的加密算法即:

A:p^x%g

B:p^y%g

然后双方交换计算后的结果,此时

A拿到B的p^y%g,B拿到A的p^x%g,双方再和自己私有参数进行相同的算法,即

A:对p^y%g 再求x次方得(p^y%G)^x=p^xy%g

B:对p^x%g 再求y次方得(p^x%G)^y=P^xy%g

最后A和B的结果是一样的

注意:整个过程中对于第三方人员来说只能获取p,g两个值,AB双方交换的是经过计算后的值,因此这种加密算法是很安全的。

5)一次加密通信过程:

发送者:

1.使用单向加密算法提取生成数据的特征码;    (单向加密技术)

2.使用自己的私钥加密特征码附在数据的后面; (公钥加密技术)

3.生成用于对称加密的临时密钥;

4.用此临时密钥加密数据和已经使用私钥加密后的特征码;(对称加密技术)

5.使用接收方的公钥加密此临时密钥,附在对称加密后的数据的后方;(密钥交换技术)

接收者:

1.使用自己的私钥解密加密的临时密钥,从而获取对称密钥;

2.使用对称密钥解密对称加密的 数据和私钥加密的特征码密文; 从而获取数据和特征码密文;

3.使用发送方的公钥解密特征码密文,从而获取计算生成的特征码;

4.使用与对方同样的单向加密算法计算数据的特征码,并与解密而来的进行比较。

6)CA和证书

PKI: Public Key Infrastructure

公钥基础设施:

签证机构:CA(Certificate Authority)

注册机构:RA

证书吊销列表:CRL

证书存取库:

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

版本号:version

序列号:serial number CA用于唯一标识此证书;

签名算法标志:

颁发者:即CA自己的名称;

有效期限:两个日期,起始日期和终止日期

主体名称:证书拥有者自己的名字

主体公钥:证书拥有者自己的公钥信息

发行者的唯一标识:

证书主体的唯一标识

CRL分发点:

扩展信息

发行者签名:CA对此证书的数字签名

★验证证书过程:

1.用CA的公钥去解密CA的全名,能解密说明证书来源可靠;

2.用同样的加密算法去加密证书取得特征码,与解密出的特征码相比较,如果二者相同,说明证书完整性可靠;

3.检查证书的有效期限在不在当前合理的有效范围内

4.验证主体名称和期望通信的对方是否一致

5.检查证书是否被吊销。

 证书类型

证书授权机构的证书

服务器

用户证书

获取证书两种方法

1.使用证书授权机构;

生成签名请求(csr)

将csr发送给CA

从CA处接收签名

2.自签名的证书;

自已签发自己的公钥

3.SSL

1)介绍

SSL: Secure Socket Layer

  • 安全套接层,是为网络通信提供安全及数据完整性的一种安全协议;
  • SSL为Netscape在1994年所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络之上传输过程中不会被截取及窃听;
  • TLS: Transport Layer Security(SSL的继承版本)与SSL在传输层对网络连接进行加密;
  • 发展历程:

1995:SSL 2.0 Netscape研发

1996: SSL 3.0

1999: TLS 1.0 IETE研发

2006: TLS 1.1 RFC(Request For Comments )4346

2008:TLS 1.2 当前使用

2015: TLS 1.3

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

分层设计:

  • 最底层:基础算法原语的实现;
  • 向上一层:各种算法的实现;
  • 再向上一层:组合算法实现的半成品;
  • 用各种组件拼装而成的各种成品密码及协议软件

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

  • 握手阶段(协商阶段):

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

  • 应用阶段:

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

时间: 2024-10-09 08:22:02

Linux之加密和解密技术的相关文章

Linux中加密和解密技术及CA认证

网络安全通信: 为了不让自己的隐私,信息等随随便便就能让获取,所以需要对数据进行加密处理,保证数据在传输的过程中不被别人获取,网络通信安全需要达到以下三个目的: 1.数据的保密性 2.数据的完整性 3.来源的合法性 解决网络安全通信的方案: SSL:Secure Sockets Layer  安全的套接层,位于应用层和传输层之间,为数据通信提供安全支持,可在服务端和客户端同时支持一种加密算法.目前版本SSLV2,SSLV3(常用). HTTP调用SSL协议就变成HTTPS,多了层加密解密功能.

加密和解密技术基础、PKI及创建私有CA

一.数据加密和解密概述 数据加密和解密是一门历史悠久的技术,从古代就已经出现了,一直发展到当代.其中,数据加密的目的有很多,可以是为了保证本地数据存取的安全性,可以是为了保证数据流在网络传输过程中的保密性,也可以是为了验证数据的完整性,还可以通过数据加密来实现密钥的交换等. 数据加密依赖于某种加密算法和加密密钥,而数据解密则依赖于某种解密算法和解密密钥.而在当代加密解密技术中,加密密钥既可以与解密密钥相同,也可以和解密密钥不同,这取决于使用什么方法进行加解密. 二.安全的目标 就信息传输过程来说

加密和解密技术基础与OpenSSL

加密和解密技术基础与OpenSSL 加密和解密技术基础(01) 1.了解Linux  service  and  securityOpenSSL:为网络通信提供安全及数据完整性的一种安全协议 2.一般都是C/S通信,此种通信客户端有什么特性?服务端有什么特性呢?(1)两台主机上的通信方式?主机通信实际是进程间通信.通信方式:socket (套接字)ip:port          客户端cip:port<-->服务器端 scip:port(2)如何让客户知道自己的主机和端口呢?把某些众所周知的

加密 和解密技术

加密 和解密 1,对称加密2,非对称加密3,单项加密 加密算法都遵循:kerckhoffs principle 对称加密:加密解密使用同一个密钥    常用的有 3des ,AES 高级加密 128 位,192,和256 非对称加密(公钥加密):可以加密和解密              主要是用来认证的             公钥机密算法:成对出现             rsa  加密 还可以认证              dsa  只能加密                        

区块链使用的加密和解密技术(JAVA版)

加密和解密是区块链数据传输中不可缺少的技术点,现代密码学包括对称性加密和非对称性加密两个概念,区块链系统里面一般常用到的是非对称加密.这里把相关知识记录一下. (一)对称加密(Symmetric Cryptography) 对称加密是最快速.最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key).对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中. 对称加密通常使用的是相对较小的密钥,一般小于256 bi

Linux之加密解密基础技术

下文主要介绍了什么是加密解密:为何要用到加密解密技术:加密解密技术能够为我们带来什么样的好处:常见的几种加密解密技术介绍以及Linux中的openssl. 一.什么是加密,解密 加密技术是一种常用的安全保密手段,利用各种技术手段把重要的数据进行加密传送:再用对应的技术手段进行解封,该过程的逆过程就称为解密.这里用一个不太恰当的例子说一下:也就好比你去办一张银行卡,需要你设置一个密码,就可以理解成在为这张银行卡做一个加密的操作:用银行卡到提款机取钱需要你输入密码,这就是一个解密的操作. 二.为什么

linux关于加密解密技术基础、KPI及创建私有CA

linux加密和解密技术基础.KPI及创建私有CA 一.加密方式分为:1.对称加密:加密和解密使用同一个密钥:      对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,在对称加密算法中常用的算法有:DES. 3DES.TDEA.AES.    Blowfish.Twofish          IDE.ARC6.CAST5等.    特性:      1.加密.解密使用同一个密钥:      2.强原始数据分割成固定大小的块,逐个进行加密

芯片加密与芯片解密技术方法的发展史!

芯片加密与芯片解密技术方法的发展史! IC集成电路在早期,除法律和经济外,几乎没有保护措施来防止复制这些设备.例如:ROM 是用低成本的掩模技术制造的,可用EPROM 轻易复制,但后者通常要贵 3-10 倍或更多.或定制掩模ROM,那就需要很长的时间和很大的投资.工业控制器的硬件安全措施与嵌入式系统同时开始发展.40年前的可编程工业控制器是由分离的部件如 CPU,ROM,RAM,I/O 缓冲器,串口和其他通信与控制接口组成的.通用的嵌入式控制器.PCB 上的每个部件很容易辨别且极易被复制.如下图

java进阶12 Base64 UrlBase64 Hex 加密 解密技术

java的加密与解密技术: 现在的加密技术主要有 单向加密算法:以MD5 SHA算法为代表 对称加密算法:以DES 三重DES AES PBE算法为代表 非对称加密算法:以RSA为代表 简要的说下这三种加密算法的区别 先是单向加密算法,顾名思义,它不会有密钥,因为它是单向的,加密之后无法解密,就连程序猿都无法知道加密之后的东西是什么 主要用处是数据完整性的验证. 对称加密算法,其特征是公钥与私钥相同.一般用来数据储存,比如将数据加密之后存入数据库,那么数据库管理员就无法泄密数据库中的类容 有密钥