Security, the big picture - Part I
Preface
安全是计算机系统中独立又特别部分。尤其是日常编程任务中业务代码实现较多时,往往不会涉及到安全,导致我们对安全仅有模糊的概念,but why should we care?
安全的重要性不言而喻,尤其是在系统架构层次,当你需要完整的设计一套商用系统时,除了功能实现,性能,高可用等方面的考虑,安全也显得尤为重要。即使是仅实现业务代码,必然会碰到一些场合需要安全相关知识,特别是以SSH,HTTPS为代表的安全技术如此流行的今天,RSA/DSA,SSL/TLS,椭圆曲线,公钥私钥,签名,证书,X509,pem文件,等等等等,一系列的术语名词让人目不暇接,如坠云雾。 零星的关键词搜索带来了更多的术语名词,更多的疑问,使人沮丧。
作者本人对安全入门的挫折深有体会,很久都搞不清楚SSH,HTTPS工作原理;分不清SSL/SSH区别。但是随着前阵子一个安全相关的项目的完结,基本上以程序员视角,建立起安全的big picture,从而弄清楚了对于安全的很多疑问。再一次深感建立big picture的重要性,见^1。因此本篇博客的目的是通过回答一系列的Why,帮助读者建立起安全的框架,知其所以然,是真正理解知识的开始;在big picture建立之后,通过实际操作,编程来体会每一部分,才会在脑中留下知识的深深烙印。这是一劳永逸习得新知识的最佳实践。可是长期来看,最为高效的学习方式。