安全攻防技能30讲
何为舟
前微博安全研发负责人
立即订阅
2842 人已学习
课程目录
已更新 8 讲 / 共 30 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 别说你没被安全困扰过
免费
安全基础概念 (5讲)
01 | 安全的本质:数据被窃取后,你能意识到问题来源吗?
02 | 安全原则:我们应该如何上手解决安全问题?
03 | 密码学基础:如何让你的密码变得“不可见”?
04 | 身份认证:除了账号密码,我们还能怎么做身份认证?
05 | 访问控制:如何选取一个合适的数据保护方案?
Web安全 (2讲)
06 | XSS:当你“被发送”了一条微博时,到底发生了什么?
07 | SQL注入:明明设置了强密码,为什么还会被别人登录?
安全攻防技能30讲
登录|注册

03 | 密码学基础:如何让你的密码变得“不可见”?

何为舟 2019-12-09
你好,我是何为舟。
上一讲,我们学习了黄金法则的三部分核心内容:认证、授权、审计。它们描述了用户在使用应用的各个环节,我们需要采取的安全策略。
在掌握了黄金法则之后,你就能以在安全发展规划上的宏观能力,赢得面试官的认可。接下来,他想考验一下你对安全具体知识的理解,以此来判断你能否将安全发展落地。于是,他问了一个非常基础的问题:你懂加解密吗?
可以说,密码学是“黄金法则”的基础技术支撑。失去了密码学的保护,任何认证、授权、审计机制都是“可笑”的鸡肋。
在实际的生活工作中经常会有这样的场景发生:多个用户共用一个 Wi-Fi 来上网、共用一个服务器来跑任务;多个进程共用一个数据库来完成数据存储。在这些场景中,多方交互都通过一个共同的通道来进行,那我们该如何保障其中内容的 CIA 呢?这就需要用到各种加密技术了。今天,我们就一起来学习密码学相关的知识。
首先,我先来普及一个语文知识。密钥中的钥,发音为 yuè,不是 yào。虽然通常情况下,你按正常发音读的话,别人都会听成“蜜月”。但是,我们还是要用正确、专业的发音。
接下来,我来介绍一些经典的密码学算法:对称加密算法、非对称加密算法和散列算法。这些算法的具体实现不是咱们课程的重点,而且本身的过程也非常复杂。在安全这块内容里,你只需要明确了解这些算法的概念及其优缺点,就足够你去选取合适的加密算法了。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《安全攻防技能30讲》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(25)

  • Geek_f7f72f
    sha3,blake2不介绍下吗,相比所谓的国密,应用范围更广吧

    作者回复: 现有技术没有出现明显的问题,所以大家还是习惯性使用传统的算法,这些新算法的替代性和普及性不会那么高。
    另外,不要低估国密,最近和一些数据安全的人聊,他们表示如果只做国内业务的话,最好都用国密。因为说不定哪天等保或者国内的数据安全法,就强制要求国密了。

    2019-12-10
    7
  • rocedu
    密钥的发音问题,依据在哪?

    作者回复: 你好,感谢你的留言。如果一定要追究依据的话,可以查阅字典,只有钥匙读yao。这其实是北京人的方言发音,钥其实是只有yue这个读法的。
    不过嘛,字典也会适应潮流,将错就错,比如‘空穴来风’的意思。所以,科普yue仅仅是我的偏执,不需要认同。

    2019-12-10
    6
  • Geek_f7f72f
    TLS很早就弃用了IDEA,标记为不安全,是因为理论上的缺陷,还是其他原因?

    作者回复: 你好,感谢你的留言。这个问题之前还真没注意到,特地查了一下。看到的原因也就是“due to the availability of faster algorithms”。也就是说,已经有更快更好的AES了,就没有再使用IDEA的意义了。

    2019-12-10
    4
  • return
    老师 请教一下:

    唯一性(不存在两个不同的消息,能生成同样的摘要)。

    我理解 散列算法做不到这一点吧, 消息是任意的 是个无限集,但是散列值 是固定长度,必然是有限的。 无限映射有限 肯定会有不同消息生成相同摘要吧。

    作者回复: 理论是这样没错,但实际使用时,你肯定不会有那么多数据需要去做散列。所以,追求的是在有限数据量下,碰撞概率几乎为0。

    2019-12-09
    1
    3
  • Vokey
    《现代汉语词典(第7版)》:

    【密钥】mìyuè (口语中多读mìyào)

    作者回复: 哈哈,官方实锤~

    2019-12-19
    1
  • 鸵鸟
    非对称加密推荐ECC的原因是什么呢?当前在手机PC的系统安全这些业务上,苹果高通都是使用的RSA,而国内一线手机厂商开始在布局国密SM2同时支持RSA,请问ECC的优势在哪里呢?

    作者回复: 加密强度高。SM2和ECC的原理是一致的,都是椭圆曲线算法。ECC的缺陷在于,生成一组密钥的时间耗时比较长,因此性能上会有一定影响。

    2019-12-19
    1
  • Ender0224
    请问如何保证对称秘钥在非可信环境中的安全传输,是不是只能只能使用非对称算法先加密才可以,有其他方案么

    作者回复: 你好,感谢你的留言。在https中使用了DH密钥交换算法实现的。可以想象成一边出一半的密钥,然后就能够拼成一个完整密钥。因篇幅限制,课程中没有具体讲。

    2019-12-12
    1
  • eason2017
    老师好,请问两段用相同密钥做计算,然后,后端做计算后的值比较是否相同。这种算作是对称还是非对称加密呀

    作者回复: 只是加密后密文的比对?那似乎没有加密的必要,散列算法就可以了。

    2019-12-10
    1
    1
  • 小美
    老师好,我们前端需要加密传输数据到后端,怎么防止密钥泄露呢。攻击者通过反编译能拿到前端加密用的密钥,

    作者回复: 非对称加密,公玥不需要保密,存储到前端即可。

    2019-12-16
    1
  • Geek_f7f72f
    评论里有提到Bcrypt, 它目前的安全性如何,有没有更好的替代?

    作者回复: 我理解的Bcrypt其实就是散列+盐的封装实现,作为一种最佳实践的封装,安全性上应该不会出现太大问题。

    2019-12-16
  • 活明白
    2010年1月1日《密码法》正式实施,商用密码应用有相应的规定,特别是关键信息基础设施商用密码的使用。未使用或者未按照要求开着商用密码应用安全性评估的,可能被处罚,情节严重的处十万元以上一百万以下罚款,对直接负责的主管人员处一万元以上十万元以下罚款(可参考第三十七条)。
    2019-12-15
    1
  • Geek_98dc22
    国密算法的价值在哪里呢? 从描述来看还是参考ecc aes等算法,但性能还不确定。既然已经有公开的高可用算法,为什么不用或者参与该算法的研究中,进一步提升这类知名加密算法呢

    作者回复: 这就是国家层面的考量了。一方面,是对加密算法的安全性考量,比如DES中可能的后门。另一方面,也是对专利版权的保护,毕竟自己的专利,自己才有可控性。这就和芯片一样,现在用外国的没啥问题,哪天它不让你用了呢?

    2019-12-14
  • 旺旺
    非对称效率高,对称加密效率太低,所以一般都是非对称加密传递对承加密密钥,用对称加密传输数据,然后有效期后更换对称加密的秘钥。

    作者回复: 第一句说反了。对称效率高,非对称效率低。

    2019-12-14
  • 张望
    建议程序员们也多关注国家法律法规要求,我国密码法马上正式实施了,其实对于加密算法选用就有了明确的法律要求,没有影响力的小软件还好说,做大了的软件一定会被监管到的,到时再更换全套加密算法成本也会很高的。

    作者回复: 嗯,最近跟同行聊的时候。他们也表示公司内部开始推进国密算法的应用了,为了避免以后又要改。不过吧,这个改动还是有难度的,毕竟国际算法都用了这么多年了,老旧代码改动成本不容小觑。

    2019-12-14
  • p4ny
    蜜月,秘药,公约,公药…………感觉都挺顺嘴的怎么办……

    作者回复: 哈哈,小细节,不重要~

    2019-12-12
  • Cy23
    嗯,最后记住这几个就可以了,对称加密用 AES-CTR、非对称加密用 ECC、散列算法用 SHA256 加盐
    2019-12-12
  • 攻城狮Ra
    我们常见的破解软件用的密钥,是不是SHA256加盐,盗版系统又是怎么一回事呢

    作者回复: 我知道的主要两种方式吧。一种是序列码存在一定的规则,软件在本地只是验证序列码是否符合这个规则。常见的带序列码生成器的,应该都是这种模式。另一种破解就是直接篡改软件的验证流程,跳过验证这个步骤,破解补丁就是用来干这个事情的。

    2019-12-11
  • 张智凯
    问下保存盐后密码的散列值的时候,用户的盐也要跟用户的标识关联起来保存吧

    作者回复: 你好,感谢你的留言。是的,肯定要关联起来,只是不需要保密而已。

    2019-12-11
    2
  • 张诚
    我们用的是RSA的非对称加密对于请求参数中的敏感参数进行的加密,用MD5+盐,对整个请求参数的json串进行散列计算签名。以前也用到过DES和AES对称加密。
    2019-12-10
  • 王蒙
    请问如何防止session劫持?项目通过session保存用户信息,sessionid存在客户端浏览器cookie里,通过抓包很容易抓到sessionid,拿到sessiondid,就可以随意操作受害用户,有没有比较好的解决方案

    作者回复: https。本地你自己抓自己的包肯定能抓到。但劫持是网络层次的事情,通过https,黑客是没办法在网络中抓用户的包的。

    2019-12-10
收起评论
25
返回
顶部