作为《深入浅出 HTTPS：从原理到实战》的作者，想写一些这本书的初衷，并介绍内容，题目就叫《我是作者，解释下本书的初衷，介绍密码学的重要性》
user
作为《深入浅出 HTTPS：从原理到实战》的作者，想写一些这本书的初衷，并介绍内容，题目就叫《我是作者，解释下本书的初衷，介绍密码学的重要性》
assistant
## 《我是作者，解释下本书的初衷，介绍密码学的重要性》

我是作者，为自己的书打call，这本书花了我很长时间，尽自己最大的力量写完的，本书刚开始有700多页，后来编辑压缩了排版，最终500多页，可见完全没有废话，很实在、有内容的一本书。关于为什么写这本书、写书的一些感受、书的结构，其实在书前言写了很多了，有兴趣的读者可以看下前言。那么这篇书评核心想表达什么呢？读者可以思考下，学习这本书难道只是为了了解 https 吗？其实这不是我的初衷，下面我慢慢道来。1）关于密码学知识现在网络安全已经是非常重要的一个话题了，而安全的背后是密码学算法，对于程序员来说，大部分计算机学科都会用到密码学，所以说掌握密码学重要且必要。对于不是专门研究密码学原理的程序员来说，学习密码学是比较难的，但是掌握各个密码学算法应用却没有那么难，在本书第二章我花了很大的篇幅描述密码学算法的应用标准。我也希望读者看了这章后，如果有兴趣，可以进一步研究密码学算法，也算是普及下密码学的重要性。2）tls 而非 https本书书名好像在描述 https，实际上却是在描述 tls 协议，tls 协议和 https协议是完全不同的两个概念，tls 协议是基于多种密码学算法的一种具体应用，而且是最重要、最流行的密码学应用，对于程序员来说，在思考安全解决方案的时候，首先思考是否能够使用 tls 协议解决问题。掌握了 tls 协议的工作原理，也能够说明读者对于密码学有了进一步的理解，这也是本书非常大的一个目标，如果不理解 tls 协议，那么在应用的时候会非常困惑，比如你也许会配置 nginx 让其支持 tls 协议，但可能完全不知道背后的原因，也无法进行调优。掌握了 tls 协议，你可能就能明白各个互联网软件是如何保证用户安全的了，比如 smtp 可以引入 tls 协议，http 协议也可以引入 tls 协议（就是 https 协议），包括 ssh 其背后也有tls协议的影子。3）https 协议读者可能听说过 https 协议，但没听说过 tls 协议，原因就在于 http 协议的普及性太广了，任何人都会使用浏览器上网，大部分多多少少都知道 http 协议。对于读者来说，在学习本书的时候，必须明白 https 协议和 tls 协议的关系，http 协议结合 tls 协议、证书就是 https 协议。那么学习本书对于理解 http 协议有什么好处呢？通过本书，你能够理解 http 协议的脆弱性、工作原理，能够了解 http 协议调优的基本法则。甚至阅读本书后，对于理解 HTTP/2 协议也大有好处，http 协议，https 协议，http/2 协议对于每个 web 程序员来至关重要，希望本书在这方面对你有所帮助。4）为什么本书没有涉及 tls 1.3 协议tls 1.3 协议最近才真正定型，而本书是去年开始写的，所以没有描述 tls 协议，主要描述 tls 1.2 协议，那么必然会思考一个问题，本书过时吗？tls 1.3 协议和 tls 1.2 协议完全是不同的设计思路，也不能兼容，这也会导致它目前很难大范围使用，按照历史经验来看 tls 1.2 协议至少还要存活 10年以上。tls 1.2 版本仍然是最重要的版本，基于它讲解 https 协议是最合适的，如果你仔细阅读本书，能够看到 https 1.2 协议的设计理念非常具有“学习性”，因为它并不是一个完美的安全解决方案，正因为有缺陷，你才能够学到更多的。而 tls 1.3 协议基于以前的版本做了非常大的优化，对于使用者来说是方便了，对于网站来说可能也更安全了，但对于读者来说，却丢失了很多学习机会，比如 tls 1.3 协议中仅仅支持特定几种密码套件，远没有学习 tls 1.2 协议的挑战性。所以不管从实际应用，还是学习的角度来看，这本书的存活时间是非常长的，这不像一些 js 方面的书籍，过了1-2年，一些概念完全不复存在了。这也是 tls 解决方案的可贵之处，它的密码学算法思想永远不过时。最后，我希望本书是读者的一个手册，想起来的时候翻一翻，也要意识到密码学算法的重要性，对于每个开发者来说，学习密码学算法真的太重要了。这本书也希望是密码学知识的一个学习索引，里面列举了很多密码学资料，比如 RFC，维基，引导你进一步学习（包括我）。 