最近在看安全方面的知识,为了防止重放攻击,我查阅了一些资料。
also24 的回复说得非常棒。
单向的 https 只能保证你请求的银行真的是银行,但银行无法确定你是你。
加了 token 才能让银行知道你是你,但是银行不知道你带的东西是你自己带的,还是别人塞进你包里的。
加上 nonce 和签名,才能让银行知道这些东西全都是你带的,别人没有夹带,但是银行不知道这个你,是否是用 1 年前的你克隆出来的。
加上时间戳,银行才能确定面前的你确实是当前时间点真实存在你,东西也是你带的东西。
最后,稀奇古怪的加密又是什么呢? 答:你带的东西是一个保险箱~
但是我有一个疑问,产生签名是需要密钥的,那怎么安全地在 web 前端存储私钥呢?