老实说,学习黑客攻防知识还是挺复杂的。
攻防?
明明林枫是要进攻,这里怎么涉及到“防”了。
虽然攻防不能说是一体的。
但了解攻击当然得先知道防御。
很多黑客其实本质上也是网络安全专家。
可惜了,正邪之分,存乎一心。
想要更好的理解进攻,就得先学会防守。
而且是重头学一遍,林枫先前掌握的那些防守技巧还不够。
也正因此整个过程很复杂。
好吧,不是一般意义的复杂,而是非常之复杂。
你得懂得跟计算机和网路相关的很多细碎但基础的知识。
要熟练掌握操作系统的工作原理及结构;
要熟悉TCP/IP协议和网络协议栈;
要理解路由、交换、网络拓扑背后的深层次奥秘;
要熟练掌握服务器和客户端的通信机制;
要通晓基本的网络安全知识……
而在密码学方面,你要掌握对称加密和非对称加密的基本原理和应用。
要能理解常见的加密算法(如AES、RSA等)。
准备跟比特币打交道你还得熟悉哈希算法及其在数据完整性中的应用。
其次要了解数字签名和证书体系的工作机制。
还要试着具备破解和绕过加密系统的能力。
此外呢,还得掌握Python、JavaScript等常用编程语言。
要熟悉Bash、PowerShell等脚本语言,自动化任务。
要能编写各种网络扫描、嗅探和注入脚本。
要理解漏洞并能编写漏洞利用程序。
要熟悉多线程、并发编程,这样才能提高攻击效率。
此外漏洞分析和逆向工程能力也要强。
毕竟不是所有的漏洞都是现成的。
要有能使用调试器和分析工具排查程序漏洞的能力。
此外要熟悉常见的缓冲区溢出、SQL注入等手段……
光是看到这一堆“要如何如何”林枫就觉得很麻烦。
相比于数学这些东西绝对算不上难。
但有些东西确实不难,但不等于不折磨人。
因为繁琐。
想象一道分类讨论题,要分一百种情况,每个情况再要细分1000个要点,每个要点还要再分几个分支,每个分支还要……
那种感觉怎么说呢无限套娃。
当你要在知识的汪洋大海里游泳,得知这个知识海还有好几个“深渊”,每个“深渊”里都充满了看不见底的细节,而这些细节你又必须得全须全尾地了解。
当你得知这一切的时候,那时你的心情一定以及肯定将是无比的绝望。
而学习这些知识的过程就是一个拆解一个个深渊的过程。
这些知识太杂、太细、太碎。
越是接触这一行,林枫就越是感觉这个方向的知识浩如烟海。
但偏偏每一步都不能够忽略。
要走上这条道路,当然要搞懂计算机和网络的基础知识。
这里“基础”可不是“简单”的意思,而是指很多平时甚至都让人忽视的内容。
这类基础是所有进阶知识的根基。
操作系统就是计算机的“大脑”,而网络是它的“手脚”。
了解它们,你才能知道每个“细胞”是如何“通话”的。
得深入理解操作系统的工作原理,比如进程管理、内存分配、文件系统……
这些听上去就不好应付,但这些是基础中的基础。
因为每当你想要“突破”一个系统、进入这台设备的大脑中枢,起码得先知道这个“大脑”在运行中做了哪些“自我保护”。
知道了它的保护,你才能在它的“守卫”盲区里找到可趁之机。
网络知识同样重要,要成为一名优秀的网络安全专家,你得熟悉TCP/IP协议。
这个协议堪称网络世界的“语言”,大部分网络通信都依赖它。
想象一下,如果你进入一个国家,发现每个人都在用同一种语言交谈,假如你也会这种语言,那么沟通、获取信息岂不更容易?
TCP/IP协议就是这样的“共同语言”,你熟悉了这套共同语言,就可以在网络世界自由“行走”,掌握别人的通信方式。