文章目录
一、自学网络安全学习的误区和陷阱
1.不要试图先成为一名程序员(以编程为基础的学习)再开始学习
我在之前的回答中,我都一再强调不要以编程为基础再开始学习网络安全,一般来说,学习编程不但学习周期长,而且实际向安全过渡后可用到的关键知识并不多
一般人如果想要把编程学好再开始学习网络安全往往需要花费很长时间,容易半途而废。而且学习编程只是工具不是目的,我们的目标不是成为程序员。建议在学习网络安全的过程中,哪里不会补哪里,这样更有目的性且耗时更少
2.不要把深度学习作为入门第一课
很多人都是冲着要把网络安全学好学扎实来的,于是就很容易用力过猛,陷入一个误区:就是把所有的内容都要进行深度学习,但是把深度学习作为网络安全第一课不是个好主意。原因如下:
【1】深度学习的黑箱性更加明显,很容易学的囫囵吞枣
【2】深度学习对自身要求高,不适合自学,很容易走进死胡同
3.不要收集过多的资料
网上有很多关于网络安全的学习资料,动辄就有几个G的材料可以下载或者观看。而很多朋友都有“收集癖”,一下子购买十几本书,或者收藏几十个视频
网上的学习资料很多重复性都极高而且大多数的内容都还是几年前没有更新。在入门期间建议“小而精”的选择材料,下面我会推荐一些自认为对小白还不错的学习资源,耐心往下看
二、学习网络安全的一些前期准备
1.硬件选择
经常会问我“学习网络安全需要配置很高的电脑吗?”答案是否定的,黑客用的电脑,不需要什么高的配置,只要稳定就行.因为黑客所使用的一些程序,低端CPU也可以很好的运行,而且不占什么内存.还有一个,黑客是在DOS命令下对进行的,所以电脑能使用到最佳状态!所以,不要打着学习的名义重新购买机器…
2.软件选择
很多人会纠结学习黑客到底是用Linux还是Windows或者是Mac系统,Linux虽然看着很酷炫,但是对于新人入门并不友好。Windows系统一样可以用虚拟机装靶机来进行学习
至于编程语言,首推Python,因为其良好的拓展支持性。当然现在市面上很多网站都是PHP的开发的,所以选择PHP也是可以的。其他语言还包括C++、Java…
很多朋友会问是不是要学习所有的语言呢?答案是否定的!引用我上面的一句话:学习编程只是工具不是目的,我们的目标不是成为程序员
(这里额外提一句,学习编程虽然不能带你入门,但是却能决定你能在网络安全这条路上到底能走多远,所以推荐大家自学一些基础编程的知识)
3.语言能力
我们知道计算机最早是在西方发明出来的,很多名词或者代码都是英文的,甚至现有的一些教程最初也是英文原版翻译过来的,而且一个漏洞被发现到翻译成中文一般需要一个星期的时间,在这个时间差上漏洞可能都修补了。而且如果不理解一些专业名词,在与其他黑客交流技术或者经验时也会有障碍,所以需要一定量的英文和黑客专业名词(不需要特别精通,但是要能看懂基础的)
比如说:肉鸡、挂马、shell、WebShell等等
三、自学网络安全学习路线
重点内容
非对称密码算法
数字签名
PGP原理与应用
一、非对称密码算法
1、非对称密码算法
用户A有一加密密钥ka,不同于解密密钥ka’。可将加密密钥ka公开,ka’保密,要求ka的公开不影响ka’的安全。若B要向A秘密发送明文m,可查A的公开密钥ka,加密得密文C=Eka (m)
A收到C后用只有A才拥有的解密密钥ka’对C进行解密得m=Dka’©.
2、RSA算法
1977年,Rivest、Shamir、Adleman提出的非对称密码体制
基于大合数的质因子分解问题的困难性。
目前人类已能分解十进制150位的特殊类型的大合数第9个费马数, 1994年4月一个小组通过Internet合作,8个月时间成功分解129位的数,大约428比特,最新的记录是1996年分解130位合数。
RSA专利于2000年9月20日到期。
3、RSA算法数学背景
One-way Function单向函数
一函数f若满足下列条件,则称f为单向函数:
(1)对于所有属于 f之域的任一x,容易计算y =f(x)
(2)对于几乎所有属于f之域的任一y,求得x,使y =f(x),则在计算上不可行。
One-way Trapdoor Function单向陷井门函数
一“可逆”函数F若满足下列二条件,则称F为单向陷井门函数
对于所有属于F之域的任一x,容量计算F(x)=y;
对于几乎所有属于F之域的任一y,除非获得暗门(trapdoor),否则求出x,使得 在计算上不可行,如有额外信息(暗门),则容易求出,如旅馆太平门。
Factorization Problem 因数分解问题
给定一个大奇数P,判断其是否为质数已有许多方法,大约[log2P]4次运算,几分钟可以完成,如果P为512位。
给定大素数 p和g, 求n = p.q , 只要一次乘法。
给定n,求p和q,即为因数分解问题,FAC。
4、RSA算法原理
5、RSA算法举例
例1:p=5,q = 7,n = 35,φ(n)=24
选d = 11,则
e = inv(d, φ(n)) = d-1=dφ(24)-1 mod 24
=118-1 mod 24 = 11
公钥(e,n),私钥(d,n)
m = 2
C = me mod n = 211 mod 35 = 18
m = Cd mod n = 1811 mod 35 = 2
例2:p = 53,q = 61,n = pq = 3233,φ(n)=52x60 = 3120
令d = 791,则e = 71
令m = RE NA IS SA NC E
即m = 1704 1300 0818 1800 1302 0426
170471 mod 3233 = 3106,…,
C = 3106 0100 0931 2691 1984 2927
二、数字签名
1、数字签名概念
定义:
使以数字形式存储的明文信息经过特定密码变换生成密文,作为相应明文的签名,使明文信息的接收者能够验证信息确实来自合法用户,以及确认信息发送者身份。
2、数字签名的基本要求
签名接收者能容易地验证签字者对消息所做的数字签名;
任何人,包括签名接收者,都不能伪造签名者的签字;
发生争议时,可由第三方解决争议。
3、数字签名的基本形式
两种签名方法
对消息整体的签字,将被签消息整体经过密码变换得到签字;
对消息摘要的签字,附在被签消息之后,或嵌在某一特定位置上作一段签字图样。
两类数字签名:
确定性数字签名,明文与签名一一对应;
概率性数字签名,一个明文可以有多个合法签名,每次都不一样。
三、PGP原理与应用
1、PGP操作描述
PGP的出现与应用很好地解决了电子邮件的安全传输问题。将传统的对称性加密与公开密钥方法结合起来,兼备了两者的优点。PGP提供了一种机密性和鉴别的服务,支持1024位的公开密钥与128位的传统加密算法。
PGP实际操作:
鉴别
机密性
电子邮件的兼容性
压缩
分段
重装
2、鉴别
PGP的鉴别步骤:
3、机密性
PGP的机密性:
在PGP中,每个常规密钥只使用一次,即对每个报文生成新的128bit的随机数。为了保护密钥,使用接收者的公开密钥对它进行加密。