初学网络安全需要先学啥语言
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学网络安全需要先学啥语言相关的知识,希望对你有一定的参考价值。
我也是刚学不久,但我知道学的编程语言至少有Mysql,Sqlserver,Php,JavScript,Python,Html5,Linux。当然这只是编程语言,还有很多技术,渗透工具要学,操作系统安全,服务器安全等,网络扫描,网络嗅探,常见网络攻击方式,tcp/IP协议,dvwa训练,sql注入,csrf,xss,密码学,缓冲区漏洞,逆向工程分析等等。我知道的就这么多。 参考技术A 提到网络安全,一般人们将它看作是信息安全的一个分支,信息安全是更加广义的一个概念:防止对知识、事实、数据或能力非授权使用、误用、篡改或拒绝使用所采取的措施,说白了,信息安全就是保护敏感重要的信息不被非法访问获取,以及用来进一步做非法的事情。网络安全具体表现在多台计算机实现自主互联的环境下的信息安全问题,主要表现为:自主计算机安全、互联的安全(实现互联的设备、通信链路、网络软件、网络协议)以及各种网络应用和服务的安全。这里提到了一些典型的网络安全问题,可以来梳理一下:1. IP安全:主要的攻击方式有被动攻击的网络窃听,主动攻击的IP欺骗(报文伪造、篡改)和路由攻击(中间人攻击);
2. DNS安全:这个大家应该比较熟悉,修改DNS的映射表,误导用户的访问流量;
3. DoS攻击:单一攻击源发起的拒绝服务攻击,主要是占用网络资源,强迫目标崩溃,现在更为流行的其实是DDoS,多个攻击源发起的分布式拒绝攻击;
网络安全的三个基本属性:机密性、完整性与可用性,其实还可以加上可审性。机密性又叫保密性,主要是指控制信息的流出,即保证信息与信息不被非授权者所获取与使用,主要防范措施是密码技术;完整性是指信息的可靠性,即信息不会被伪造、篡改,主要防范措施是校验与认证技术;可用性是保证系统可以正常使用。网络安全的措施一般按照网络的TCP/IP或者OSI的模型归类到各个层次上进行,例如数据链路层负责建立点到点通信,网络层负责路由寻径,传输层负责建立端到端的通信信道。
最早的安全问题发生在计算机平台,后来逐渐进入网络层次,计算机安全中主要由主体控制客体的访问权限,网络中则包含更加复杂的安全问题。现在网络应用发展如火如荼,电子政务、电子商务、电子理财迅速发展,这些都为应对安全威胁提出了挑战。
密码学在网络安全领域中的应用主要是机密性和身份认证,对称密码体制如DES,非对称密码体制如RSA,一般的做法是RSA保护DES密钥,DES负责信息的实际传输,原因在于DES实现快捷,RSA相比占用更多的计算资源。
二、风险分析
风险分析主要的任务时对需要保护的资产及其受到的潜在威胁进行鉴别。首要的一步是对资产进行确定,包括物理资源(工作站、服务器及各种设备等)、知识资源(数据库、财务信息等)以及时间和信誉资源。第二步需要分析潜在的攻击源,如内部的员工,外部的敌对者等;第三步要针对以上分析指定折中的安全策略,因为安全措施与系统性能往往成反比。风险被定义为漏洞+威胁,漏洞指攻击者能够实现攻击的途径。威胁则指实现攻击的具体行为,对于风险来说,二者缺一不可。
安全策略可以分为许多类型,比如:
1. 信息策略:如识别敏感信息、信息分类、敏感信息标记/存储/传输/销毁;
2. 系统和网络安全策略:用户身份识别与身份鉴别、访问控制、审计、网络连接、加密等;
3. 计算机用户策略:计算机所有权、信息所有权、计算机许可使用权等;
4. Internet使用策略:邮件策略(内部邮件与外部邮件的区分及过滤);
5. 用户管理程序:新员工程序、工作调动的员工程序、离职员工程序;
6. 系统管理程序:软件更新、漏洞扫描、策略检查、登录检查、常规监控等;
7. 事故相应程序:响应、授权、文档、程序的测试;
8. 配置管理程序:系统初始状态、变更的控制程序三、网络信息安全服务
网络信息安全服务根据保护的对象可以分为:机密**、完整**、可用**和可审**。机密**主要利用密码学技术加密文件实现,完整**主要利用验证码/Hash技术,可用**主要灾备来保障。网络环境下的身份鉴别,当然还是依托于密码学,一种可以使用口令技术,另一种则是依托物理形式的鉴别,如身份卡等。其实更为安全的是实施多因子的身份认证,不只使用一种方式。数字签名可以用来保证信息的完整性,比如RSA就可以用于数字签名:
若A向B发送信息m,则先用自己的保密密钥(私钥)对m加密,然后用B的公钥第二次加密,发送个B后,B先用自己的私钥解密一次,再用A的公钥解密即可。
Kerberos使用对称密码算法来实现通过可信第三方密钥分发中心的认证服务,已经成为工业界的事实标准。四、安全体系结构
设计一个安全体系,需要注意以下几个关键的问题:主体与客体、可信计算基(TCB)、安全边界、基准监控器与安全内核、安全域、最小特权、资源隔离与分层、数据隐蔽与抽象等。其实这些内容更是操作系统安全设计的原则。网络体系主要依托于OSI模型建立,提供了5类安全服务:
1. 鉴别:对等实体的身份鉴别、数据原发鉴别;
2. 访问控制;
3. 数据机密性;
4. 数据完整性;
5. 抗否认,这里要注意发送方和接收方均不能否认;
OSI安全体系结构的安全机制:
1. 特定的安全机制:加密机制、数字签名机制、访问控制机制、数据完整性机制、鉴别交换机制、通信业务填充机制、路由选择控制机制与公证机制;
2. 普遍性安全机制:可信功能度、安全标记、事件检测、安全审计与跟踪、安全恢复; 参考技术B 入门
然而当你掌握了Web基础知识时,你才会残酷的发现你还远远没有入门。 这里给出一些我的建议:
1. 多看书
阅读永远是最有效的方法,尽管书籍并不一定是最好的入门方式,但书籍的理解需要一定的基础;但是就目前来看,书籍是比较靠谱的入门资料。
例如
《黑客攻防---web安全实战详解》《Web前端黑客技术揭秘》《安全之路:Web渗透技术及实战案例解析(第2版)》
现在Web安全书籍比较多,因此大家在学习的过程中可以少走了不少的弯路。如果以上推荐书籍阅读有困难,那就找自己能看得进的 Web 安全的书。
当然纸上谈兵终觉浅,不实践一下怎么好呢。
2.常用工具的学习
1.Burpsuite学习 Proxy 抓包改包学习 Intruder 爆破模块学习实用 Bapp 应用商店中的插件2.Nmap使用 Nmap 探测目标主机所开放的端口使用 Nmap 探测目标主机的网络服务,判断其服务名称及版本号3.SQLMap对 AWVS 中扫描出的 SQL 注入漏洞使用 SQLMap 进行数据获取实践常见漏洞类型的挖掘与利用方
3.学习开发
1.书籍《细说 PHP》2.实践使用 PHP 写一个列目录的脚本,可以通过参数列出任意目录的列表使用 PHP 抓取一个网页的内容并输出使用 PHP 抓取一个网页的内容并写入到Mysql数据库再输出
学习C++需要先学C吗,为啥?
参考技术A不用。C语言的部分语法的确与C++相似甚至相同。如果有C语言的基础学习C++肯定会更快。但是,这并不意味着学习C++之前必须要学C语言,而且对于初学者来说在短时间内接触这两种语言反而会造成部分概念的混淆。
因此,如果你的目标是C++而不是C语言,那么不必特意在学习C++之前先去学C语言。
扩展资料:
学习C++的入门书籍:
1、《C++程序设计教程》,钱能
2、《易学C++》,潘嘉杰;《大话设计模式》,程杰
3、《C++编程规范:101条规则、准则与最佳实践》,刘基诚
4、《C和C++程序员面试秘籍》,董山海
进阶书籍:
1、《C++程序设计语言》英文第四版,Bjarne Stroustrup
2、《C++ Primer 第5版(英文版)》,Stanley Lippman、Josee Laoie、Barbara Moo
3、《C++标准库:自学教程与参考手册(第2版)(英文版)》,Nicolai Josuttis
4、《C++ Concurrency in Action|C++ 并发实战》,Anthony Wiliams
5、《C和C++安全编码(第2版)(英文版)》,Robert Seacord
参考资料:百度百科—C++
以上是关于初学网络安全需要先学啥语言的主要内容,如果未能解决你的问题,请参考以下文章