嗨,大家好,我是出生在达纳苏斯的一名德鲁伊,我是要立志成为海贼王,啊不,是立志成为科学家的德鲁伊。最近,我发现我们所处的世界是一个虚拟的世界,并由此开始,我展开了对我们这个世界本源的探索。那么就由我来带领大家拨开迷雾,深入探究我们世界的根本。
125行,有一个安全相关的代码映入眼帘。那本次初始化是什么呢?
顺藤摸瓜后,我们发现了SECRET_TOTP_MASTER_KEY的关键字,那么从这个关键字我们就知道了SecureMgr真实的功能是什么了。
OTP
One-Time Password,中文名:一次性口令。对于 OTP,没有特定的算法,但是要求必须是一次性、不可预测 ,一般为了用户输入方便,会使用四位、六位或八位数字。当然,我们的世界不会用这么low的方式啦。
TOTP
Time-based One-time Password,中文名:基于时间的一次性口令。简单来说,在一定时间内,验证软件会生成一串数字(一般是六位数),使用这串数字,即可完成认证。
三个核心内容
- Shared Secret(共享密钥)
- Input(Current Time)
- Signing Function(签名函数)
用户和服务器共用一个共享密钥,然后分别通过时间标签、密钥和签名计算出一个动态口令,这样,一个有时效性的口令就完成了。用户除了密码外,再加上动态口令,可以极大地提高用户的账号安全性。我们的世界,可以使用google authenticator来创建动态口令。
好了,今天就到这里吧,我要去呵护我的世界之树了,拜拜。