提到“密码学”,有的人可能觉得好高大上,听不懂,又或者会疑惑,有用吗?技术人还要懂这个?
在我看来,程序员有必要学点密码学,这是程序安全里重要的一个环节,它会让你更值钱,甚至帮你免于“35 岁危机”。
先举个现实中的真实案例:今年由于疫情,视频会议软件 Zoom 一跃成为全球第一,日活跃用户超 2 亿,哪怕美股 10 天 4 次熔断时期依然不受影响。然而,今年 3 月底,研究者公开了 Zoom 的重大安全漏洞,其中最重要的问题就是和密码算法与密码管理相关。因为 Zoom 使用了 ECB 加密模式,而这种加密模式并不足够安全。这件事也不是秘密,毕竟 ECB 加密模式的安全问题已经披露了二三十年了。
随后,不少知名的公司、教育机构以及政府组织,出于信息安全的考虑,禁止使用 Zoom,转而寻找替代产品。可以说, Zoom 在如日中天的时候,遭遇滑铁卢。如果时间能重来,我相信 Zoom 一定会提前聘用密码学领域的专家,提高研发人员的密码学素养,让公司所有的研发人员都学会和用好密码学。
其实,从安全漏洞的角度来看,出现问题并不可怕。重要的是怎么快速反应,并避免犯同样的错误。尤其是现代信息安全需求,已经跳出了操作系统、通信协议这样的基础设施,进入了应用程序层面。比如,像 Zoom 这样的在线会议产品的安全需求,底层的基础设施提供的安全保障能力,是远远不够的。
但遗憾的是,市面上大部分产品的研发人员,都缺乏专业的密码学素养,由此导致的算法场景错配、或使用有安全漏洞的算法和协议等问题,也是层出不穷。
但这也暴露了密码学的人才市场缺口,懂点密码学的程序员会更值钱。如果在专业的密码学领域,平均薪酬更会高出一大截。要知道,不同于其他的软件工程师,密码学是一个需要深度积累的领域,年头越长,见识越多,生产效率和产品质量也越高。
有经验的信息安全工程师,是每一个公司的关键人力资源。你很少会看到一个信息安全工程师有 35 岁的忧愁。可见,要是公司的研发人员都能懂一些密码算法,绝对可以成为稀缺资源。45 岁的时候,好日子才刚刚开始。
其实,近年来我参加的每一次密码学会议,都会有人提到密码学专业人才的短缺。我想,如果所有研发人员都能懂一些密码算法,那么每个公司的产品信息安全,就会得更多的保障,对程序员个人而言也更具有竞争力。
所以,这次我与极客时间合作,出品了《实用密码学》这个专栏,想帮技术人,更快速掌握密码学核心技术。这个专栏是我在密码学应用领域工作 20 余年的结晶,可以教你组合多种密码技术的应用方法,更有 10+ 企业级密码学应用场景分析,给你的技术提供更多的安全保障。
我是范学雷,在密码学应用领域已经工作了二十多年了。目前,担任 Oracle 的首席软件工程师,是 Java 安全组的成员,OpenJDK 安全评审成员,也是 Java 安全的主要推动者和贡献者之一。
我的日常工作包括关注信息安全威胁与技术进展,参与信息安全领域国际合作,制定与实现 Java 安全规范,提升 Java SE 生态安全水准,促进 Java 技术的普及与运用等。
我曾在极客时间做过第一季专栏《代码精进之路》,在那个专栏里,我总结了自己 20 多年的编程心得和丰富的代码评审经验。而这一次,我希望可以带你走一小段密码学的旅程。
教你用好密码学,就是这个专栏的目标。我想通过这个专栏帮助你把握住基本概念、弄明白适用场景、躲得开常见错误。所以,我将从「密码学知识体系、加密算法的使用、真实案例分析」这三部分来分享我的经验。
构建密码学知识体系
我们需要了解密码学的基本概念和体系,知道密码学能解决什么样的问题,不能解决什么样的问题。这就算是敲了敲密码学的大门了。
加密算法的使用
如果遇到具体的问题,我们应该选择什么样的算法,当心什么样的问题。这需要我们了解每一个算法的适用场景,以及它的局限性。这算是跨进大门,打怪晋级,修炼十八般武艺。
真实案例分析
一般来说,一个产品里需要组合多种密码技术,才能够实现信息安全。单独耐看的技术,搭配起来可能就是一团糟。这需要我们组合、搭配好不同的密码技术,甚至包括非密码的信息安全技术。也就是把密码技术用起来,解决真实的问题。
具体详细内容,可以看看目录👇:
原价 ¥99,早鸟优惠 + 口令「code88888」到手价 ¥69,
仅限「前 500 人」有效
订阅后生成海报发给好友,
每成功邀请 1 位好友,可得 ¥16 返现。
👆扫描二维码,免费试读 👆
温馨提示:
订阅后可通过「极客时间 App」或「极客时间小程序」我的 - 已购,学习已订阅的专栏。
👇 点击「阅读原文」,
输入优惠口令「code88888」,
以 最低价 ¥69 入手,仅限 前 500 人。