其他分享
首页 > 其他分享> > 【SRP协议】The Secure Remote Password Protocol论文笔记

【SRP协议】The Secure Remote Password Protocol论文笔记

作者:互联网

The Secure Remote Password Protocol

作者:Thomas Wu

发表:NDSS 1998

一、非对称密钥交换(AKE)

在介绍本文重点的SRP协议之前,首先先要从宏观的角度上介绍非对称密钥交换这种技术。

在这里插入图片描述

二、SRP:AKE的一种实施

(一)SRP定义规则

其中 u = f ( w , x ) u=f(w,x) u=f(w,x)

(二)SRP协议

在这里插入图片描述

其中 C C C代表用户名, v = g x v=g^x v=gx, S = g a b + b u x S=g^{ab+bux} S=gab+bux

数学符合的含义一览

解释一下协议,Carol首先将自己的用户名发送给Steve,Steve(一般指服务器)可以从自己的用户注册目录中找到该用户名对应的盐值s和口令验证器v。此后将盐值发送给Carol,Carol收到盐值后结合自己的口令P生成私钥x,然后利用私钥a生成公钥A发送给Steve,Steve同样生成公钥 g b g^b gb并用v保护起来得到B,并结合一个公开参数u一同发送给Carol(这里就体现了AKE协议的特点,互相共享部分信息)。双方收到来自对方的共享信息后开始生成会话密钥,可以得到同样的会话密钥(读者可自行验算)。后一轮交互是挑战响应的验证过程,确保双方都得到了相同的密钥,这样就对身份完成了认证。

(三)SRP细节解释

问题1 为什么发送 B = v + g b B=v+g^b B=v+gb而不是发送 B = g b B=g^b B=gb?

直接发送 B = g b B=g^b B=gb容易被字典攻击。如果攻击者Sue从合法会话中截获盐值s,可以进行下列步骤的攻击。

在这里插入图片描述

此时攻击者Sue拥有A,b,M1,开始猜测P,按顺序依次,算出x,算出v,算出S,算出K,算出M1,此时就可以拿已经掌握的M1和算出来的M1进行比对,从而实施字典攻击。

个人理解就是Sue在原版的SRP协议中,如果想实施字典攻击,Sue缺少验证文本(Sue很难得到一个正确的验证文本),而一旦 B = g b B=g^b B=gb就会让Sub通过交互得到正确的验证文本,从而可以实现攻击。

问题2 那么B应当如何保护v

SRP是AKE的一种实现,实现方式可以不止这一种,但是基本的思路是不变的。B中应当选取适当的f()函数以保护v,避免v的泄露导致攻击者得到验证文本从而进行字典攻击。

  1. 避免 B = f ( v , g b ) B=f(v,g^b) B=f(v,gb)中的f()会满足条件 f ( g x , g y ) = g f ′ ( x , y ) f(g^x,g^y)=g^{f'(x,y)} f(gx,gy)=gf′(x,y),其中 f ′ ( x , y ) f'(x,y) f′(x,y)是一个很简单的派生,比如 f ( x , y ) = x y f(x,y)=xy f(x,y)=xy就属于 f ( g x , g y ) = g x + y f(g^x,g^y)=g^{x+y} f(gx,gy)=gx+y,一旦有这种性质,攻击者便可以将其利用。
  2. 尽量减少信息泄露,避免被分区攻击,不使用 f ( x , y ) = x ⊕ y f(x,y)=x\oplus y f(x,y)=x⊕y, f ( x , y ) = E y ( x ) f(x,y)=E_y(x) f(x,y)=Ey​(x),结果可以排除大于n的
  3. g也必须要求是原根,否则可能会被分区攻击

问题3 u的作用是什么?

u可以确保不会被轻易仿冒,可以将认证的信息加入到会话并生成会话密钥。

u一定不可以在Steve得到A之前公开,可以是u由B生成得到,u也不能为0.

如果Chris可以提前得到了u的话,Chris一旦捕获到了v的值,那么即使其没有口令P,Chris可以实施新的攻击

在这里插入图片描述

三、安全性分析

(一)安全性要求

(二)SRP的安全性高于Diffie-Hellman

通过分析两个协议中的Q()函数可以利用归约证明结论。

SRP的Q()函数, Q ( g a , g b + g x , u , g , n , x ) = g a b + b u x Q(g^a,g^b+g^x,u,g,n,x)=g^{ab+bux} Q(ga,gb+gx,u,g,n,x)=gab+bux

DH的Q’()函数, Q ′ ( g a , g b , g , n ) = g a b Q'(g^a,g^b,g,n)=g^{ab} Q′(ga,gb,g,n)=gab

SRP的Q()函数可以表示DH的Q’()函数, Q ′ ( A , B , g , n ) = Q ( A , B + g n − 1 2 , 2 , g , n , n − 1 2 ) Q'(A,B,g,n)=Q(A,B+g^{\frac{n-1}{2}},2,g,n,\frac{n-1}{2}) Q′(A,B,g,n)=Q(A,B+g2n−1​,2,g,n,2n−1​)

(三)抵抗Denning-Sacco攻击

Denning-Sacco攻击:攻击者窃听到会话密钥K,然后得到伪造成用户或对口令进行暴力破解的能力

SRP协议中,攻击者得到K只能顺势算出来M1,M2(归功于单向哈希函数),没法利用其进行字典攻击。

(四)抵抗主动攻击

SRP可以抵抗大多数常见的攻击,可以抵抗中间人攻击,攻击者不知道x的话就没办法骗Steve,不知道v的话就无法欺骗Carol。

(五)安全假设与限制

四、优化SRP

(一)影响效率的因素

(二)两轮优化

合并没有前后依赖的消息

  1. C ⇒ S : C , A C\Rightarrow S:C,A C⇒S:C,A
  2. S ⇒ C : s , B S\Rightarrow C:s,B S⇒C:s,B
  3. C ⇒ S : M 1 C\Rightarrow S:M_1 C⇒S:M1​
  4. S ⇒ C : M 2 S\Rightarrow C:M_2 S⇒C:M2​

(三)一轮半优化

只单向认证

  1. C ⇒ S : C , A C\Rightarrow S:C,A C⇒S:C,A
  2. S ⇒ C : s , B S\Rightarrow C:s,B S⇒C:s,B
  3. C ⇒ S : M 1 C\Rightarrow S:M_1 C⇒S:M1​

注意:一轮协议是很危险的,容易被重放攻击

(四)执行时间

群运算是最耗费时间的

SRP中的 g a g^a ga和 g b g^b gb都是可以提前计算的

标签:Protocol,Secure,攻击,Steve,SRP,密钥,攻击者,gb
来源: https://blog.csdn.net/qq_44249020/article/details/113871755