你的APP登录安全?数字签名的原理是怎样的呢?为了更加形象和简练的展示本文要传达的思想,我特意使用了PPT进行了梳理和图片绘制,下面将不会做过多的概念介绍,一切从实际出发!
一、最早的对称加密:凯撒密码
二、登录安全
-
明文传输,这种方法基本等于裸奔,使用charles抓包数据就可以展漏无疑,如果仍然有公司使用此方案,建议尽快Hop:
-
常用的密码加密方式就是使用Hash,因为Hash的特点很适合做密码加密:
-
最基本的安全意识,对密码进行MD5加密,应该有不少公司停留在此,其实这种方式安全性并不高:
-
有些APP的密码强度设置的不高,就会导致密码可以被破解,这里的破解并不是真正意义上的破解,只是用一个大的数据库进行匹配,如MD5破解网站,不乏不少盈利的灰产:
-
继续提高安全:在代码中加入静态Salt,此种方式的盐也容易泄露:
-
将静态Salt改为服务端返回,当然依然会有被劫持的风险:
-
较为安全的处理方式就是时时校验,加上时间,服务器校验这一分钟和上一分钟的Hash值,只要有一个匹配就可以验证通过,这样会大大加大破解难度。当然在注册的时候Key也可能会被截获,如果要继续提高安全,可以将Key进行RSA加密传输,即数字签名,下面会讲到,这种方式的破解成本是非常非常之高的:
二、RSA原理
-
首先得知道欧拉函数:
-
欧拉定理,既然是定理,记住就行:
-
欧拉定理推导
-
RSA算法说明:
-
迪菲赫尔曼密钥交换原理,第三方窃取到的数据会让他懵逼:
-
RSA公钥加密,私钥解密;私钥加密,公钥解密原理如下:
三、数字签名原理
-
下面就是数字签名的原理,如支付宝支付原理也是如此:
数据的交互安全在传统互联网领域是很容易被忽视的,本文要传达的核心思想就是要重视数据传输的安全性,不要等到财产损失了才后悔莫及!
我是Qinz,希望我的文章对你有帮助!