03 | 密码学基础:如何让你的密码变得“不可见”?
03 | 密码学基础:如何让你的密码变得“不可见”?
讲述:何为舟
时长17:52大小16.37M
对称加密算法
非对称加密算法
散列算法
总结
思考题
赞 16
提建议
精选留言(55)
- 普通熊猫 ଘ(੭ˊ꒳...2020-01-03AES,你值得拥有,A代表AES-CTR,E代表ECC,S代表SHA256 加盐。 匿了
作者回复: 这个总结可以,我都没想到。
32 - rocedu2019-12-10密钥的发音问题,依据在哪?
作者回复: 你好,感谢你的留言。如果一定要追究依据的话,可以查阅字典,只有钥匙读yao。这其实是北京人的方言发音,钥其实是只有yue这个读法的。 不过嘛,字典也会适应潮流,将错就错,比如‘空穴来风’的意思。所以,科普yue仅仅是我的偏执,不需要认同。
共 5 条评论19 - Geek_f7f72f2019-12-10sha3,blake2不介绍下吗,相比所谓的国密,应用范围更广吧
作者回复: 现有技术没有出现明显的问题,所以大家还是习惯性使用传统的算法,这些新算法的替代性和普及性不会那么高。 另外,不要低估国密,最近和一些数据安全的人聊,他们表示如果只做国内业务的话,最好都用国密。因为说不定哪天等保或者国内的数据安全法,就强制要求国密了。
共 2 条评论19 - Vokey2019-12-19《现代汉语词典(第7版)》: 【密钥】mìyuè (口语中多读mìyào)
作者回复: 哈哈,官方实锤~
共 2 条评论13 - return2019-12-09老师 请教一下: 唯一性(不存在两个不同的消息,能生成同样的摘要)。 我理解 散列算法做不到这一点吧, 消息是任意的 是个无限集,但是散列值 是固定长度,必然是有限的。 无限映射有限 肯定会有不同消息生成相同摘要吧。展开
作者回复: 理论是这样没错,但实际使用时,你肯定不会有那么多数据需要去做散列。所以,追求的是在有限数据量下,碰撞概率几乎为0。
共 2 条评论13 - splm2020-01-08先对账号密码md5,然后加盐;那二次进入的时候,账号密码没变,但盐值变了,又是怎么匹配的呢?
作者回复: 盐值是和账号作唯一关联,且不变的。
共 3 条评论10 - Geek_David2020-03-31公司钥的易混点 加密:公钥加密私钥解密 签名:私钥加密公钥解密 国密算法记忆: SM1:对称加密 算法不公开 SM4: 对称加密 算法公开 SM2:非对称加密 SM4: 散列算法不可逆 常用算法: AES128+CTR ECC SHA256+salt展开共 2 条评论7
- 张望2019-12-14建议程序员们也多关注国家法律法规要求,我国密码法马上正式实施了,其实对于加密算法选用就有了明确的法律要求,没有影响力的小软件还好说,做大了的软件一定会被监管到的,到时再更换全套加密算法成本也会很高的。
作者回复: 嗯,最近跟同行聊的时候。他们也表示公司内部开始推进国密算法的应用了,为了避免以后又要改。不过吧,这个改动还是有难度的,毕竟国际算法都用了这么多年了,老旧代码改动成本不容小觑。
6 - Geek_f7f72f2019-12-10TLS很早就弃用了IDEA,标记为不安全,是因为理论上的缺陷,还是其他原因?
作者回复: 你好,感谢你的留言。这个问题之前还真没注意到,特地查了一下。看到的原因也就是“due to the availability of faster algorithms”。也就是说,已经有更快更好的AES了,就没有再使用IDEA的意义了。
6 - 小老鼠2019-12-31HTTPS是对称还是非对称?盐值放在哪儿比较安全?
作者回复: 协商密钥是非对称的,密钥协商完之后就是对称加密了。 盐值一般和用户名等唯一标识放一块。盐值不用考虑保密性,只要完全随机且唯一对应即可。
共 4 条评论4 - stg6092020-05-29基于https的前提下,前端加密真的有必要吗? https已经防止了中间人攻击,前端如果真被破解或被植入恶意代码,黑客完全可以拿到加密前的明文。我觉得前端做加密解决不了问题,反而此地无银三百两。
作者回复: 可以把这个问题拆开看,数据泄露可能有三个点:前端,后端,传输过程。https可以解决传输过程中的泄露问题。但前后端本身,同样存在泄露风险。比如,你去做一个代理登录,用户提交密码给你,你再拿密码去第三方认证,这个密码就泄露给你了。如果前端加密了,那么你只拿到密文,虽然能完成认证,但其实不知道密码。
共 2 条评论3 - 鸵鸟2019-12-19非对称加密推荐ECC的原因是什么呢?当前在手机PC的系统安全这些业务上,苹果高通都是使用的RSA,而国内一线手机厂商开始在布局国密SM2同时支持RSA,请问ECC的优势在哪里呢?
作者回复: 加密强度高。SM2和ECC的原理是一致的,都是椭圆曲线算法。ECC的缺陷在于,生成一组密钥的时间耗时比较长,因此性能上会有一定影响。
共 2 条评论3 - 有学识的兔子2019-12-14国密算法的价值在哪里呢? 从描述来看还是参考ecc aes等算法,但性能还不确定。既然已经有公开的高可用算法,为什么不用或者参与该算法的研究中,进一步提升这类知名加密算法呢
作者回复: 这就是国家层面的考量了。一方面,是对加密算法的安全性考量,比如DES中可能的后门。另一方面,也是对专利版权的保护,毕竟自己的专利,自己才有可控性。这就和芯片一样,现在用外国的没啥问题,哪天它不让你用了呢?
共 3 条评论3 - 麋鹿在泛舟2019-12-12请问如何保证对称秘钥在非可信环境中的安全传输,是不是只能只能使用非对称算法先加密才可以,有其他方案么
作者回复: 你好,感谢你的留言。在https中使用了DH密钥交换算法实现的。可以想象成一边出一半的密钥,然后就能够拼成一个完整密钥。因篇幅限制,课程中没有具体讲。
3 - jun2020-04-20何老师您好!我小白一个,有些问题不了解。 比如:非对称加密,公钥是公开的,那么黑客如果获取到公钥也就可以解密通过私钥加密的内容,这样一样会消息泄露吧。 另外:公钥加密私钥解密,以及私钥加密公钥解密其中原理,不知后面内容是否有讲
作者回复: 是的,非对称加密是单向的。通过私钥加密公钥解密,只能用来做签名,证明发送者拥有私钥。具体原理比较细节,可以自行百度一下。
2 - Geek_f7f72f2019-12-16评论里有提到Bcrypt, 它目前的安全性如何,有没有更好的替代?
作者回复: 我理解的Bcrypt其实就是散列+盐的封装实现,作为一种最佳实践的封装,安全性上应该不会出现太大问题。
2 - mz2019-12-09请问老师,类似 PHP 这种通常数据库的信息都是写在配置文件中,这个有没有啥安全的方式呢?
作者回复: 数据库信息落配置文件其实没有太多问题,因为就算你存在其他加密的配置中心里面,你连配置中心的加密密钥或者认证信息还是会落到配置文件中。所以,更主要的还是保护代码和配置文件的机密性。
共 2 条评论2 - 吴小智2020-04-30老师能介绍一下 KMS 吗?看介绍说,可以用 KMS 来存储密钥,但是一直不太理解是如何做到安全的。
作者回复: KMS可以见简单理解为一个云端的加解密服务,用户端和服务端的加解密操作都送到KMS执行,密钥不外放。但是KMS的安全性还是得依赖前置的认证,它只是保障可信用户不会产生错误使用加解密或者泄露密钥等行为。
1 - 小幺鸡2020-04-11没太理解非对称加密RSA秘钥生成速度慢?
作者回复: 主要和对称加密相比,对称加密的密钥随机生成即可,性能自然很快。而非对称加密的密钥,需要先计算某个数学问题。比如rsa的密钥,首先要找出两个大质数,运算时间自然会上升不少。
1 - Geek_f4f0d42020-02-29老师,你好,如果使用https协议,用户在密码输入时,是否还需要在前端(通过JS)进行散列加密?
作者回复: https可以保证传输过程中不被窃听。但最好还是对密码作散列,因为你同样需要保证服务端的密码不被泄露。最简单的,明文传输的话,你如何保证开发人员不会监守自盗?
1