SSL/TLSV1.0 programe in linux

本文详细介绍了SSL/TLS在Linux系统中的实现原理和过程,包括SSL/TLS协议的背景、加密算法基础、密钥协商过程、安全性分析以及证书相关知识。文中特别强调了SSL的安全性问题,如中间人攻击,并提供了防止此类攻击的建议。此外,还详述了SSL/TLS的初始化步骤,包括加载算法、设置方法、加载证书和私钥、验证方式等,最后展示了客户端和服务端的连接过程,以及在连接过程中如何处理证书验证和数据传输。
摘要由CSDN通过智能技术生成

SSL/TLS Programe In Linux

一、几个名词:

1. SSL(Secure Socket Layer)Netscape公司设计的主要用于WEB的安全传输协议。这种协议在WEB上获得了广泛的应用。

2. IETFSSL作了标准化,即RFC2246,并将其称为TLSTransport Layer Security),从技术上讲,TLS1.0SSL3.0的差别非常微小。

SSL可以用于保密的传输,这样我们与Web Server之间传输的消息便是安全的

 

二、原理

1. SSL是一个介于HTTP协议与TCP之间的一个可选层,其位置大致如下:

---------

| HTTP |

---------

| SSL |

---------

| TCP |

---------

| IP |

---------

 

SSL层:借助下层协议的的信道安全的协商出一份加密密钥,并用此密钥来加密HTTP请求。

TCP层:与web server443端口建立连接,传递SSL处理后的数据。接收端与此过程相反。

SSLTCP之上建立了一个加密通道,通过这一层的数据经过了加密,因此达到保密的效果。

SSL协议分为两部分:Handshake ProtocolRecord Protocol,。其中Handshake Protocol用来协商密钥,协议的大部分内容就是通信双方如何利用它来安全的协商出一份密钥。 Record Protocol则定义了传输的格式。

2. 需要的加密方面的基础知识

了解SSL原理需要一点点加密的概念,这里把需要的概念做一下简单阐述:

加密一般分为三类,对称加密,非对称加密及单向散列函数。

对称加密:又分分组密码和序列密码。

分组密码是将明文按一定的位长分组,明文组经过加密运算得到密文组,密文组经过解密运算(加密运算的逆运算),还原成明文组。

序列密码是指利用少量的密钥(制乱元素)通过某种复杂的运算(密码算法)产生大量的伪随机位流,用于对明文位流的加密。

解密是指用同样的密钥和密码算法及与加密相同的伪随机位流,用以还原明文位流。

CBC(Cipher Block Chaining)模式这个词在分组密码中经常会用到,它是指一个明文分组在被加密之前要与前一个的密文分组进行异或运算。当加密算法用于此模式的时候除 密钥外,还需协商一个初始化向量(IV),这个IV没有实际意义,只是在第一次计算的时候需要用到而已。采用这种模式的话安全性会有所提高。

分组密码的典型例子为DESRC5IDEA

序列密码的典型例子为RC4

公钥加密:

简单的说就是加密密钥与解密密钥不同,分私钥和公钥。这种方法大多用于密钥交换,RSA便是一个我们熟知的例子。

还有一个常用的称作DH,它只能用于密钥交换,不能用来加密。

单向散列函数:

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值