SSH通信协议浅析(认证)

      RSA公钥和RSA私钥 数据结构为:

      typedef struct

     {

           unsigned int bits; /* 模数大小 */

           MP_INT e; /* 公钥指数 */

           MP_INT n; /* 模数 */

      } RSAPublicKey;

     typedef struct

    {

            unsigned int bits; /* 模数大小 */

            MP_INT n; /* 模数 */

            MP_INT e; /* 公钥指数 */

            MP_INT d; /* 私钥指数 */

            MP_INT u; /* Multiplicative inverse of p mod q. */

            MP_INT p; /* 质数 p */

            MP_INT q; /* 质数 q */

        } RSAPrivateKey;

        RSA 认证的过程是,客户端向服务器提交自己 RSA公钥的模数成员,服务器先读取用户 .ssh 目录中的公钥文件进行有效性检验,再生成一个 256 位二进制随机数 cookie。随后把这个随机数 cookie 用从公钥文件读出的公钥加密后传给客户端,客户端接到 cookie 后,先用自己的私钥解密,再对这个 cookie 和会话号计算出 16 字节的 md5水印,把两个水印相加后发给服务器。服务器把它收到 md5水印和它自己对 cookie 和会话号计算出的水印和进行比较,如果相等,则认证通过。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值