第二代密码管理器:有主密码保护的独立密码管理器
➊ TL; DR(太长了, 不想读)
第二代密码管理器:
- 安全技术: 设置独立的主密码,端到端加密。
- 安全问题: 一旦主密码泄露,可能导致所有密码被盗。
硬核警告,请酌情食用。
➋ 进化
第一代有管理,无保护;要么不加密,要么加密没卵用。
对于密码这么重要的数据,第一代密码管理器实在是太不安全了。
为了解决这个问题,早在2000年左右,海外的一些技术狂人和鬼才程序员们已经开始埋头苦干,奋力研究如何更好地保护大家的密码。
也就是从那时开始,独立的专业密码管理器接二连三地诞生,其中包括比较知名的开源密码管理器:Password Safe(since 2002) 和 KeePass(since 2006)
☝️ 很多人还在用的 KeePass 密码管理器
第二代密码管理器带来了真正的加密保护:
- 独立的主密码
私密笔记也可以设置密码,输入密码才能看到保存的密码呢!
虽然用起来差不多,但关键还得看是怎样加密的。
很多私密笔记设置的密码仅仅用于访问控制,
根本没有加密!
根本没有加密!
根本没有加密!
➌ 加密
加密为什么这么重要?因为良好的加密设计能够保证,目前的计算机水平无法破解!
同时也要明白,加密 ≠ 安全
密码管理器一般都使用对称加密算法(至于非对称加密算法,本文不展开),就是加密和解密都使用相同的密钥 key
,
cipher = encrypt(key, plain)
plain = decrypt(key, cipher)
密码学的设计认为:
- 加密算法
encrypt
/decrypt
无法保密,黑客是可以知道的; - 使用密钥
key
可以很容易从密文cipher
解密得到明文plain
(要保护的数据),没有key
就不行; - 要求保护好密钥
key
,要求密钥key
完全随机,防止黑客破解。
目前最流行的对称加密算法是 AES(Advanced Encryption Standard)
,根据密钥 key
的长度分为3个级别:128/192/256 bit。其中 AES-256
作为最高级别的算法,被广泛应用于金融、军事等领域,也被很多密码管理器采用。
有些密码管理器声称使用了军事级别等加密技术,一般就是指使用了 AES-256
算法加密。
☝️ 军事级别加密只是营销口号
然而并不是使用了最高等级的加密算法,密码管理器就达到了最高的安全水平!
黑客通常不会破解加密算法,只会尝试获得密钥 key
。
➍ 密钥生成
既然黑客最惦记的是密钥 key
,那怎样保护好密钥就是密码管理器的关键技术了。
一般来说,用户设置的主密码是不能用作密钥 key
加密数据的,不满足随机性要求。
最低等级的 AES-128
要求至少需要20个完全随机的字符,没人记得住!!!
于是密码学家们发明了 基于密码生成密钥的算法 PBKDF(Password-Based Key Derivation Function)
,把密码转换成足够长又完全随机的安全密钥,就可以加密数据了。
目前推荐的算法是 PBKDF2