We analyze the Secure Remote Password (SRP) protocol for structural weaknesses using the Cryptographic Protocol Shapes Analyzer (CPSA) in the first formal analysis of SRP (specifically, Version 3). SRP is a widely deployed Password Authenticated Key Exchange (PAKE) protocol used in 1Password, iCloud Keychain, and other products. As with many PAKE protocols, two participants use knowledge of a pre-shared password to authenticate each other and establish a session key. SRP aims to resist dictionary attacks, not store plaintext-equivalent passwords on the server, avoid patent infringement, and avoid export controls by not using encryption. Formal analysis of SRP is challenging in part because existing tools provide no simple way to reason about its use of the mathematical expression $v + g^b \mod q$. Modeling $v + g^b$ as encryption, we complete an exhaustive study of all possible execution sequences of SRP. Ignoring possible algebraic attacks, this analysis detects no major structural weakness, and in particular no leakage of any secrets. We do uncover one notable weakness of SRP, which follows from its design constraints. It is possible for a malicious server to fake an authentication session with a client, without the client's participation. This action might facilitate an escalation of privilege attack, if the client has higher privileges than does the server. We conceived of this attack before we used CPSA and confirmed it by generating corresponding execution shapes using CPSA.
翻译:我们用加密协议形状分析器(CPSA)首次正式分析SRP(具体而言,第3版)时,对结构弱点的安全远程密码(SRP)协议进行了分析。SRP是一个广泛应用的密码验证密钥交换(PAK)协议,用于1Password、iCloud Keychain和其他产品。与许多PAK协议一样,两位与会者使用预先共享的密码知识来相互认证和建立一个会话键。SRP的目的是抵制字典攻击,而不是在服务器上储存纯文本等值的密码,避免专利侵犯,避免通过不加密进行出口管制。对SRP的正式分析具有一定的难度,部分是因为现有工具没有为使用数学表达 $v + g ⁇ b\mod q$。建模 $v + g ⁇ b$b 作为加密的模型,我们完成了对SRP所有可能执行序列的详尽研究。 可能发生的变数攻击,这项分析没有发现任何重大的结构性弱点,特别是任何秘密的泄漏。我们用一个明显的弱点来找出SPRP的弱点。我们使用一个明显的弱点,因为我们在使用一个高级的客户端端端端端端端端端程序之前就使用了一种模拟的客户端端端端端端端端端程序,我们使用了一种对客户端端端程序,它会会会会会会会会的升级会后会会会会的升级会后会后会后会会后会后会后会会会会会会后会后会为它会后会后会后会后会后会后会后会使客户端客户端客户端会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会后会