我已经实现了如下所示的多级身份验证。
方括号([ 和 ])表示哈希
客户端具有用于身份验证的密钥和秘密。服务器有一个数据库表,其中的行包含一个key、salt和一个[secret + salt]
Client Server
| |
----------------- key -------------------->|
| |
| |
|<--------- server-nonce -------------------
|<------------ salt ------------------------
| |
| |
------------ key ------------------------->|
------------ client-nonce ---------------->|
--[c-nonce + s-nonce + [secret + salt]] -->|
| |
然后服务器根据自己的信息检查收到的散列。
我担心的是,这使攻击者能够从服务器获取盐,然后生成彩虹表来破解该帐户。您对此有何看法?