密钥协商机制

密钥协商机制,主要来得到通信双方的临时会话密钥。

主要的方式有:

1)依靠非对称加密算法;   RSA,ECC等。

    防偷窥,防篡改。

  拿到对方公钥的一方随机产生会话密钥,利用公钥加密,通信使用加密后的信息,通信另一方用私钥进行解密,

    这样通信双方都拿到会话密钥。

2)专用的密钥交换算法;     DH,ECDH等。

             DHE,ECDHE等。

    防偷窥,不防篡改。

  只交换产生密钥的部分数据,各自保证可以产生相同的数据。

3)依靠共享的secret;  PSK,SRP等。

  双方依靠共享的信息,直接通过相同的kdf function来产生同一密钥。

篡改,中间人攻击,---Man In The middle attack,MIMT。

基于RSA的密钥协商的过程:

  1)客户端连上服务器;

  2)服务器发送CA证书给客户端;

  3)客户端验证该证书的可靠性;

  4)客户端从CA证书中拿到公钥;

  5)客户端生成一个随机密钥K,用公钥加密得到K‘

  6)客户端将K‘发送给服务器;

  7)服务器得到K‘之后,用自己的私钥解密得到K;

早期的SSLv2使用的一种密钥协商机制;

基于ECC的密钥协商过程:

  整体流程相同,但是ECC并不是直接对msg进行加解密,而是将公钥经过hash算法,之后与msg做异或运算。

基于DH算法的密钥协商:

  DH本身是基于离散对数分解问题的,算法过程与进行两次的RSA类似,

  

  最原始的DH算法并不能对抗MIMT,所以一般需要配合签名技术,不配合签名技术的DH称为,DH-ANON;

    配合RSA签名的称为,DH-RSA;

    配合DSA签名的称为,DH-DSA;

    配合ECDSA签名的称为,DH-ECDSA;

  流程:

  1)客户端连接上服务器;

  2)服务器端生成一个随机数S作为自己的私钥,做模幂运算之后,得到公钥;

  3)服务器,选择RSA,ECDSA,DSA的一种,对模幂运算的参数,以及公钥进行签名,并发送给客户端;   //防止服务器被篡改

  4)客户端验证签名是否有效;   //客户端并不会对签名进行解密,DH的特性,双方只交换公钥,只做加密操作;

  5)客户端也产生一个随机数C,加密之后,将公钥传给服务器;

  6)客户和服务器,根据得到的公钥产生同一个会话密钥;

  DH算法的变种,ECDH算法,数学原理,变为椭圆曲线上的离散对数的分解问题;

  ECDH算法与DH算法类似,但是基础运算由模幂运算,变为点乘运算,同样不能防止MIMT;

    需要和其他的签名算法RSA,DSA,ECDSA配合;

前向保密,forward security,最初用来定义会话密钥交换协议的一种安全性:即使长期密钥已经泄露,也不会影响之前的会话密钥的泄露;

  也就不会暴露之前的会话内容

  DH和ECDH算法为了实现前向安全,变种加入了另一个随机变量,ephemeral key,得到新的算法,DHE,ECDHE,

RSA和DH,DSA都是基于整数有限域离散对数来实现;

ECC和ECDH,都是基于椭圆曲线的离散对数难题来实现的;

DSA相比较与RSA,DSA只能用作签名,并且p,q公开,签名输出r和s,两个字符串。

SSL/TLS对各个算法的支持;

  

时间: 2024-10-14 17:15:34

密钥协商机制的相关文章

[CentOS 7系列]使用密钥认证机制远程登录

当服务器操作系统没有配置远程密钥认证时,默认需要手动输入密码口令. 以下用putty为例: 1.使用putty远程ssh登录192.168.137.100这台主机 2.第一次登录选择"是(Y)",信任该主机,缓存该主机登录信息. 3.登录时,要输入正确的账户和口令,才能正常登录该主机. 下面使用putty和xshell演示如何使用密钥机制远程登录: 一.使用putty密钥认证机制登录 1.打开putty安装目录中的putty key generator软件,点击"Genera

SSL/TLS/WTLS原理(密钥协商的形象化比喻:用服务器的公钥协商加密格式,然后再加密具体的消息)good

一 前言 首先要澄清一下名字的混淆: 1 SSL(Secure Socket Layer)是netscape公司设计的主要用于web的安全传输协议.这种协议在WEB上获得了广泛的应用. 2 IETF(www.ietf.org)将SSL作了标准化,即RFC2246,并将其称为TLS(Transport Layer Security),从技术上讲,TLS1.0与SSL3.0的差别非常微小.由于本文中没有涉及两者间的细小差别,本文中这两个名字等价. 3 在WAP的环境下,由于手机及手持设备的处理和存储

理解并取证:以太通道的动态协商机制的工作原理

理解并取证:以太通道的动态协商机制的工作原理 取自博主<思科CCNP交换技术详解与实验指南>试读版 3.1理解以太通道的理论部分 3.1.1提出以太通道的原因.以太通道的作用和功能 3.1.2建立以太通道的方式(静态.PagP.LACP) 3.1.3理解并取证:以太通道的动态协商机制的工作原理 3.1理解以太通道的理论部分    本小节将描述思科提出以太通道的原因.以太通道的作用和功能.以太通道的特点.建立以太通道的方式(静态.PagP.LACP).以及PagP和LACP的协商模式.理解并取证

Diffie-Hellman密钥协商算法

一.概述 Diffie-Hellman密钥协商算法主要解决秘钥配送问题,本身并非用来加密用的:该算法其背后有对应数学理论做支撑,简单来讲就是构造一个复杂的计算难题,使得对该问题的求解在现实的时间内无法快速有效的求解(computationally infeasible ). 理解Diffie-Hellman密钥协商的原理并不困难,只需要一点数论方面的知识既可以理解,主要会用到简单的模算术运算.本原根.费马小定理.离散对数等基础数论的知识.在现代密码学中的基础数论知识梳理中已经对这些知识做了必要的

使用密钥认证机制远程登录Linux

密钥认证机制 创建存放key的文件 1)创建目录 /root/.ssh 并设置权限 [[email protected] ~]# mkdir /root/.ssh mkdir 命令用来创建目录,以后会详细介绍,暂时只了解即可. [[email protected] ~]# chmod 700 /root/.ssh chmod 命令是用来修改文件属性权限的,以后会详细介绍. 2)创建文件 / root/.ssh/authorized_keys [[email protected] ~]# vim

DTLS协议中client/server的认证过程和密钥协商过程

我的总结:DTLS的握手就是协商出一个对称加密的秘钥(每个客户端的秘钥都会不一样),之后的通信就要这个秘钥进行加密通信.协商的过程要么使用非对称加密算法进行签名校验身份,要么通过客户端和服务器各自存对方信息进行对比校验身份. 1.DTLS介绍 1.1 DTLS的作用 互联网先驱们最开始在设计互联网协议时主要考虑的是可用性,安全性是没有考虑在其中的,所以传输层的TCP.UDP协议本身都不具备安全性.SSL/TLS协议是基于TCP socket,利用加密.基于数字证书的身份验证等机制在传输层和应用层

Xshell使用密钥认证机制远程登录Linux

密钥认证是Linux下ssh服务支持的一种安全认证机制.它使用一对加密字符串,一个称为公钥(publickey),用于加密:另一个称为密钥(privatekey),只有创建者才能拥有使用,其用于解密.那么如何使用密钥认证登陆Linux呢? 1.下Xshell软件 在www.baidu.com搜索框内输入xshell,出现搜素结果后,点击高速下载或者普通下载,开始下载xshell软件. 2.安装xshell软件 Xshell支持多国语言版本,且可以免费获得.在安装时要注意选择免费版本,即"免费为家

使用Putty密钥认证机制远程登录Linux

1.下载生成密钥工具 putty工具包里面的puttygen.exe putty工具小巧携带方便,不需要安装,可以百度免费下载使用. 2. 双击打开puttygen.exe,右下角"Number of bits in a generated key"设置为2048 ,然后点击"Generate",开始生成密钥,来回动一动鼠标,可以快速生成密钥对."Key comment"保持不变也可以自定义,对密钥的简单介绍:"Key passphra

[转] SSH 密钥认证机制

使用 RSA 密钥对进行 SSH 登录验证 使用 RSA 密钥对验证 SSH 的优点是 1) 不用打密码 2) 比密码验证更安全:缺点是 1) 第一次配置的时候有点麻烦 2) 私钥需要小心保存.Anyway 用密钥验证比密码验证还是方便不少的.推荐所有用户使用密钥认证. 目录 生成密钥对 上传密钥 ~/.ssh 相关文件权限 Over~ 附:公钥加密原理 进一步阅读 1. 生成密钥对 OpenSSH 提供了ssh-keygen用于生成密钥对,不加任何参数调用即可: % ssh-keygen Ge