远程安全认证
Created: November 8, 2021 Sort: Security
网银支付的两种方式:
- 专业支付:使用专门的客户端和U盾,同时输入用户密码;
- 大众支付:使用短信验证码,同时输入用户账号和密码。
1. U盾
1.1. 基本原理
U盾又称作移动数字证书,它存放着个人的数字证书,并不可读取。同样,银行也会拥有一份相同的电子证书。
1.2. 网银应用的双向认证
PKI(Public Key Infrastructure)即公共密钥体系,即利用一对互相匹配的密钥进行加密、解密。
网银应用中,U盾有两种客户认证方式,基于冲击-响应认证模式和基于PKI的数字证书的认证模式:
- 基于冲击/响应:
- U盾内置单向散列算法(RSA),预先在U盾和服务器中存储一个证明用户身份的密钥,当需要在网络上验证用户身份时,先由客户端向服务器发出一个验证请求;
- 服务器接到此请求后,生成一个随机数回传给客户端PC上插着的U盾,此为“冲击”;
- U盾使用该随机数与存储在U盾中的密钥进行RSA运算得到一个运算结果作为认证证据传送给服务器,此为“响应”;
- 与此同时,服务器使用该随机数与存储在服务器数据库中的该客户密钥进行RSA运算,如果服务器的运算结果与客户端传回的响应结果相同,则认为客户端是一个合法用户。
- 基于PKI的数字证书:
- 每个用户拥有一个仅为本人所掌握的私钥,用它进行解密和签名,同时,拥有一个公钥用于文件发送时加密;
- 当发送一份保密文件时,发送方使用接收方的公钥对数据加密,接收方则使用自己的私钥解密。这样,信息就可以安全无误地到达目的地了,即使被第三方截获,由于没有相应的私钥,也无法进行解密。
2. 短信验证码的基本原理
- 后台下发一条随机码,网页客户端通过算法将用户信息和随机码合并,生成一条字符串,并返回给后台;
- 后台用同样的算法处理这条随机码和后台存储的用户信息,得到一条新的字符串;
- 后台比对来自客户端的字符串和自己生成的字符串,如果两者一致,则确认用户身份。
3. 网络支付中的缺陷
现在的网络支付中存在着很多缺陷,如窃听,重放攻击和暴力破解攻击:
- 木马窃听:用户电脑中了病毒或者木马之后,电脑被监听,用户和银行交易的信息被木马记录,用户的信息就被盗;
- 重放攻击:在用户和银行交易的过程中,被第三方通过各种方法截获数据流,分析数据中的信息从而得到用户的信息;
- 暴力破解攻击:功击者使用有意义的数字作为密码来不断尝试持卡人的密码。如果持卡人的密码是未经过改动的初始密码或一个特殊、容易被分析的数字,则密码很容易被攻击者穷举出来。
3.1 预防方法
U盾:
- 用户:
- 创建对称密钥 ( 相应软件生成,并且是一次性的 ) ,用其加密合同,并用网银的公钥打包对称密钥;
- 创建数字签名,对合同进行散列算法 ( 如 MD5 算法 ) 并产生原始摘要,并用自己的私钥加密该摘要;
- 将加密后的合同、打包后的密钥、加密后的摘要 , 以及用户的数字证书一起发给网银。
- 网银:
- 接收后,用乙的私钥解密得到对称密钥 , 并用对称密钥解开加密的合同 , 得到合同明文;
- 通过用户的数字证书获得属于用户的公钥 , 并用其解开摘要;
- 对解密后的合同使用和发送者同样的散列算法来创建摘要;
- 比较两个摘要, 若相同 , 则表示信息未被篡改 , 且来自于用户。
短信验证码:
- 针对木马监听:对信息进行加密,如连接随机数,散列处理等;
- 针对重放攻击:对手机号获取验证码的时间间隔和次数进行限制;
- 针对暴力破解攻击:对验证码的有效实现进行限制,使其无法被暴力破解。