草庐IT

网络安全与IP安全

写代码的小阿帆 2023-11-02 原文

网络安全

是指网络系统的硬件,软件以及系统中的数据收到的保护。
保护的基本属性为:机密性,身份认证,完整性和可用性;
基本特征:相对性,时效性,相关性,不确定性,复杂性和重要性。
在该方向主要研究如下领域:
入侵者如何攻击网络,
如何防护网络对抗攻击,
设计网络体系结构免疫攻击。

因为Internet最初设计几乎没考虑安全性,所以网络安全需要在网络的各个层次考虑。

网络安全威胁

主要有窃听,插入,假冒(伪造源IP),劫持接管连接和拒绝服务等攻击,具体方法如下:
映射(扫描):确定主机开放的端口及运行的服务,工具nmap;
对策:记录网络配置,分析识别可疑活动。
分组嗅探:借助广播介质,网卡在混杂模式下接口接受记录所有经过的分组帧,工具wireshark;
对策:组织中的主机运行软件,周期性监测网络接口是否工作在混杂模式,不使用广播介质。
IP欺骗:生成原始IP,将源IP设置为其他地址;
对策:入口过滤,路由器不转发源IP地址无效的IP分组(源IP不属于所连接的网络)。
拒绝服务:通过恶意泛洪分组等手段淹没接收方,耗尽带宽等资源:
对策:过滤泛洪分组,可能错杀,追溯源头,难以应对反射攻击。

身份认证

该部分要证明报文确实来自声称的发送方,还要验证报文在传输过程未被篡改,时间,顺序等也未被篡改,预防抵赖。

密码散列函数

该函数具有算法公开,计算快速的特点,多对一映射产生定长输出,不同报文产生相同的散列值,并且是单向不可逆推,抗强/弱碰撞性。
常用算法有:
md5,输出128位散列值,不足够安全;
sha1,输入消息长度<2的64次方,散列值为160位,速度更慢但是安全性更高。

报文认证

大致思路是将报文和报文摘要构成扩展报文。

报文认证码Mac,报文m+认证秘钥s+密码散列函数h->扩展报文(m,h(m+s)),
收到后将m+s的散列值做对比,这种方法还解决不了否认问题。

数字签名

有可验证性,不可伪造性和不可抵赖性。

IP安全

虚拟专用网络VPN

最初使用专用网PN来保证安全,使用专属网络设备等建设专门服务于特定组织机构的网络,这种实现安全网络的方法成本过高,便有了虚拟专用网络。
VPN是通过建立在公共网络上的安全通道,实现远程用户等与总部的安全连接,不实际独占公共网络的资源,是一条逻辑穿过公共网络安全稳定的隧道。
**需要实现:**数据机密性保护,数据完整性认证,数据源身份认证,防重放攻击和访问控制。
关键技术:隧道技术,数据加密,身份认证,秘钥管理,访问控制,其中隧道技术为核心技术

隧道技术

隧道技术是通过Internet提供安全的点到点的数据传输安全通道,实质是一种利用隧道协议的封装。
该技术有三层,乘客协议,封装协议和承载协议;
常见在第二层的协议有pptp点对点隧道协议和l2tp协议,主要用于远程客户机访问局域网;
第三层协议有IPsec,用于网关到网关和网关到主机。
具体实现技术有:
IPsec最安全使用面最广,ssl具有高层协议的优势,l2tp最好的实现远程接入VPN的技术。

IPsec


提供机密性,完整性,源认证,防重放服务,IPsec数据报的发送与接受均由端系统完成。
提供IPsec服务的两个协议:
认证头ah:IP数据报头协议号51,提供源认证和数据完整性检验,不提供机密性;
封装安全头esp:IP数据报头协议号50,提供源认证,数据完整性和机密性服务,比ah应用更广泛。

web应用安全

主动攻击:篡改c/s间信息或站点信息,难防易检;
被动攻击:监听或信息量分析,难检易防。
基于应用层,用特定应用制定安全服务;

基于传输层:ssl或tls,对应用透明,应用层数据会被加密;
基于网络层:IPsec实现端到端的安全机制,通用解决方案,各种应用程序均可利用IPsec提供的安全机制。

无线局域网安全

wep有线等效保密,使用对称秘钥加密,自同步(每个分组单独加密);
加密实现过程如下:
计算出数据完整校验值icv,附于数据后四位测测,每端有104位共享秘钥,发送端生成24位初始向量附到秘钥上,发送端附加8位keyid,128位秘钥输入到伪随机数发生器产生秘钥流,利用rc4算法加密数据+icv。


解密过程如下:
提取iv
iv与共享秘钥输入伪随机数发生器得到秘钥流
逐字节异或解密d与icv
利用icv校验完整性

破解

漏洞
每帧一个24位的iv导致最终会被重用
iv以明文传输,重用的iv易被检测
攻击
诱使加密已知明文,逆推k秘钥序列
下次重用时可解密
802:1i改进的安全
提供秘钥分发
利用独立于ap的认证服务器

总结

此部分属于安全的拓展内容了,每个章节都能作为一门课来单独学习,所以本次只做大致了解,知道有这些协议个方法来应对各个层的安全威胁就行了,还有没介绍到的防火墙,应用层安全kerbores什么的以后有空学习吧。

有关网络安全与IP安全的更多相关文章

  1. ruby - 如何使用 Ruby aws/s3 Gem 生成安全 URL 以从 s3 下载文件 - 2

    我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A

  2. ruby - 从 Ruby 中的主机名获取 IP 地址 - 2

    我有一个存储主机名的Ruby数组server_names。如果我打印出来,它看起来像这样:["hostname.abc.com","hostname2.abc.com","hostname3.abc.com"]相当标准。我想要做的是获取这些服务器的IP(可能将它们存储在另一个变量中)。看起来IPSocket类可以做到这一点,但我不确定如何使用IPSocket类遍历它。如果它只是尝试像这样打印出IP:server_names.eachdo|name|IPSocket::getaddress(name)pnameend它提示我没有提供服务器名称。这是语法问题还是我没有正确使用类?输出:ge

  3. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  4. ruby - 如何安全地删除文件? - 2

    在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?

  5. 网络编程套接字 - 2

    网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识

  6. ruby - 用 YAML.load 解析 json 安全吗? - 2

    我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("

  7. ruby-on-rails - 安全地显示使用回形针 gem 上传的图像 - 2

    默认情况下:回形针gem将所有附件存储在公共(public)目录中。出于安全原因,我不想将附件存储在公共(public)目录中,所以我将它们保存在应用程序根目录的uploads目录中:classPost我没有指定url选项,因为我不希望每个图像附件都有一个url。如果指定了url:那么拥有该url的任何人都可以访问该图像。这是不安全的。在user#show页面中:我想实际显示图像。如果我使用所有回形针默认设置,那么我可以这样做,因为图像将在公共(public)目录中并且图像将具有一个url:Someimage:看来,如果我将图像附件保存在公共(public)目录之外并且不指定url(同

  8. ruby - 检查网络文件是否存在,而不下载它? - 2

    是否可以在不实际下载文件的情况下检查文件是否存在?我有这么大的(~40mb)文件,例如:http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm这与ruby​​不严格相关,但如果发件人可以设置内容长度就好了。RestClient.get"http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm",headers:{"Content-Length"=>100} 最佳答案

  9. ruby - 404 未找到,但可以从网络浏览器正常访问 - 2

    我在这方面尝试了很多URL,在我遇到这个特定的之前,它们似乎都很好:require'rubygems'require'nokogiri'require'open-uri'doc=Nokogiri::HTML(open("http://www.moxyst.com/fashion/men-clothing/underwear.html"))putsdoc这是结果:/Users/macbookair/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/2.0.0/open-uri.rb:353:in`open_http':404NotFound(OpenURI::HT

  10. ruby - 在 TCPServer (Ruby) 中,我如何从客户端获取 IP/MAC? - 2

    我想在Ruby的TCPServer中获取客户端的IP地址。以及(如果可能的话)MAC地址。例如,Ruby中的时间服务器,请参阅评论。tcpserver=TCPServer.new("",80)iftcpserverputs"Listening"loopdosocket=tcpserver.acceptifsocketThread.newdoputs"Connectedfrom"+#HERE!HowcanigettheIPAddressfromtheclient?socket.write(Time.now.to_s)socket.closeendendendend非常感谢!

随机推荐