计算机网络 | 7.网络安全
1.网络安全问题概述
(1)计算机网络面临的安全性威胁
<1>计算机网络面临的完全性威胁
- 计算机网络面临的两大类安全威胁:被动攻击和主动攻击
- 被动攻击
- 截获:从网络上窃听他人的通信内容。
- 主动攻击
- 篡改:故意篡改网络上传送的报文
- 伪造:伪造信息在网络上传送(也属于篡改)
- 恶意程序:种类较多,下面会详细介绍
- 拒绝服务DOS
- 被动攻击
a.截获
- 在被动攻击中,攻击者只是观察和分析某一个协议数据单元 PDU (这里使用 PDU 这一名词是考 虑到所涉及的可能是不同的层次)而不干扰信息流。
- 攻击者可以通过分析截获的数据,拿到用户的账号密码等信息。
- 截获攻击举例
- 恶意主机C安装类似cain的软件
- 主机A要和Internet中的 WEB服务器 通信
- 主机A发送请求,恶意主机C发送ARP欺骗信息,恶意主机C将自己的IP及MAC地址伪装成网关发送给主机A。(此时,主机A与外界的通信都经过恶意主机C)
- 至此,主机A与WEB服务器的通信内容全部被恶意主机C截获。
- 恶意主机C甚至可以使用cain之类的软件破解出用户在WEB服务器上的账号密码信息。
b.篡改
- 截获并且修改了资源,这是对数据完整性的攻击。
- 篡改举例(钓鱼网站举例)
- 主机A要登陆某银行网站XYZWEB服务器1,输入网址XXX.com
- DNS域名解析,当解析后的数据发送给主机A时,恶意主机截获数据,然后将XXX.com对应的IP替换成WEB服务器2的IP
- 黑客做一个和XYZ银行网站一模一样的页面
- 用户使用主机A发送请求,但由于IP换掉,实际上是在WEB服务器2上的虚假网页上输入了自己的账号密码
- 由于虚假的网站对账号密码等数据不进行加密,因此黑客直接获得用户输入的银行账号密码,造成资产的不安全。
c.伪造
- 以未授权方式将伪造的对象插入系统,这是对真实性的攻击。
- 伪造举例(简单例子)
- 假设WEB服务器只对指定的IP通信,如主机A,IP为199.162.0.20;主机B无法与WEB服务器通信。
- 假设某一时刻,主机A关机。(如果主机A不关机,主机B更改为主机A的IP地址,会造成IP地址冲突)
- 此时,恶意主机B将自己的IP更改为主机A的IP地址199.162.0.20;则主机B实现了与WEB服务器的通信。
d.恶意程序
- 计算机病毒
- 一种会"传染"其他程序的程序, 64传染"是通过修 改其他程序来把自身或自己的变种复制进去而完成的。
- 例如2006年的熊猫烧香,会更改计算机中的其他内容,甚至会强制删除掉计算机上的文件。
- 一种会"传染"其他程序的程序, 64传染"是通过修 改其他程序来把自身或自己的变种复制进去而完成的。
- 计算机蠕虫
- 一种通过网络的通信功能将自身从一个结点发送到 另一个结点并自动启动运行的程序。
- 蠕虫是一种可以自我复制的代码,并且通过网络传播,通常无需人为干预就能传播。蠕虫病毒入侵并完全控制一台计算机之后,就会把这台机器作为宿主,进而扫描并感染其他计算机。
- 蠕虫会自动逐步占领你的主机的系统资源,通常是CPU和内存。占满CPU和内存时,电脑只能重启,但重启之后蠕虫又会重新占领你的CPU和内存。此时,需要全盘杀毒或者重装系统。
- 特洛伊木马
- 一种程序,它执行的功能并非所声称的功能而是某种恶意功能。
- (在传输层介绍端口的安全时,介绍过灰鸽子木马程序)
- 木马通常作为内应,主动与放出木马的主机通信,可以将你电脑中的文件偷偷发送给黑客。由于是木马在被入侵主机主动与黑客通信,因此Windows防火墙不起作用。
- 逻辑炸弹
- 一种当运行环境满足某种特定条件时执行其他特殊功能的程序。
- 例如编辑程序,平时运行良好,只在每周五删除被入侵主机的系统中所有文件。
- 后门入侵
- 是指利用系统实现中的漏洞通过网络入侵系统。
- 流氓软件
- 一种未经用户允许就在用户计算机上安装运行并损害用户利益的软件, 其典型特征是:强制安装、难以卸载、浏览器劫持、广告弹出、恶意收集用户信 息、恶意卸载、恶意捆绑等等。
- 在许多下载站有这种病毒。非常不幸,我在装安装MSDN下载的系统后,从系统之家下载“小马激活工具”时中招过。
- 一种未经用户允许就在用户计算机上安装运行并损害用户利益的软件, 其典型特征是:强制安装、难以卸载、浏览器劫持、广告弹出、恶意收集用户信 息、恶意卸载、恶意捆绑等等。
e.拒绝服务DoS
大学生选课抢课、早期12306抢票崩溃。与DoS攻击原理一样。
- DOS攻击
- 指攻击者向互联网上的某个服务器不停地发送大量分组,使该服务器无法提供正常服务,甚至完全瘫痪。
- 在图片中,主机A访问WEB服务器1时,如果A不停发送大量分组,致使WEB服务器1无法正常通过。
- 现实中,主机A在局域网中的带宽小,WEB服务器1(链路S)的带宽很大,仅靠一台主机A很难实现DoS攻击。此时,大多使用DDoS攻击(CC攻击是DDoS攻击的一种)。
- DDoS攻击(图片中的红色虚线)
- 肉鸡的概念:
- 肉鸡也称傀儡机,是指可以被黑客远程控制的机器。比如用"灰鸽子"等诱导客户点击或者电脑被黑客攻破或用户电脑有漏洞被种植了木马,黑客可以随意操纵它并利用它做任何事情。(肉鸡不仅可以是网络中的主机,也可以是服务器)
- 图片中,充当肉鸡功能的是主机B、主机C、主机D、WEB服务器A。
- 主机A操纵肉鸡一起向WEB服务器1发送大量请求致使WEB1服务器崩溃。
- 这种方式,没有很好的防范方法,只能提高自己的带宽(链路S),提升CPU处理能力、扩展内存。
- 假如WEB服务器1使用服务提供商提供的服务器,严重情况下,会导致整个服务提供商其他服务器的访问。(攻击者占用了服务提供商的总带宽,进而影响WEB服务器2、WEB服务器3,尽管服务器2、服务器3与路由器连接的分线路上带宽没被占用)
- 挖坑:高防CDN可以防护服务器免受DDoS攻击,以后了解了再详细介绍。
- 肉鸡的概念:
<2>安全的计算机网络
- 保密性
- 保密性就是只有信息的发送方和接收方才能懂得所发送信息的内容,而信息的截获者 则看不懂所截获的信息。
- 端点识别
- 安全的计算机网络必须能够鉴别信息的发送方和接收方的真实身份。
- 信息的完整性
- 即使能够确认发送方的身份是真实的,并且所发送的信息都是经过加密的,我们依然 不能认为网络是安全的。还必须确认所收到的信息都是完整的,也就是信息的内容没有被人 篡改过。
- 运行的安全性
- DoS攻击没有窃取信息,仍攻击了服务器。
- 访问控制对计算机系统的安全性非常重要。必须对访问网络的权限加以 控制,并规定每个用户的访问权限。
<3>数据加密模型
2.两类密码体制
(1)对称密钥密码体制
所谓对称密钥密码体制,即加密密钥与解密密钥是使用相同的密码体制。
- 数据加密标准 DES
- 加密过程
- 在加密前,先对整个的明文进行分组。每一个组为 64 位长的二进制数据。
- 然后对每一个 64 位二进制数据进行加密处理,产生一组 64 位密文数据。
- 最后将各组密文串接起来,即得出整个的密文。
- 使用的密钥占有 64 位(实际密钥长度为 56 位,外加 8 位用于奇偶校验)。
- DES 的保密性仅取决于对密钥的保密,而算法是公开的。
- 56位密钥刚开始比较安全,在计算机硬件发展之后,破解速度较快
- 因此,后来使用了128位密钥
- 加密过程
- 对称加密的优缺点
- 优点:
- 效率高,压缩后文件没有变大
- 缺点:
- 密钥不适合在网上传输。(如果密钥给截获,同样不安全)
- 密钥维护较麻烦。(假如部门经理A有30名员工,使用这种方法,部门经理需要分别和30名员工配置密钥对。<对比理解非对称加密——公钥私钥>)
- 优点:
(2)非对称加密
公钥密码体制使用不同的加密密钥与解密密钥。
<1>非对称加密理解
- 在公钥密码体制中,加密密钥(即公钥)是向公众公开的。
- 而解密密钥 SK C secret key,即私钥或秘钥)则是需要保密的。
- 加密算法 E 和解密算法 D 也都是公开的。
<2>常用介绍
- 对称密钥的分发(后续介绍)
- 详细介绍见下文 “(3)对称加密和非对称加密混合使用”
- 数字签名(后续介绍)
- 因为A的私钥只有A有,因此可用来数字签名
<3>非对称加密解密过程
- 1)密钥对产生器产生出接收者 B 的一对密钥:加密密钥 PKB和解密密钥 SKB。
- 发送者 A 所用的加密密钥PKB就是接收者 B 的公钥,它向公众公开。
- 而 B 所用的解密密钥 SKB就是接收者 B 的私钥,对其他人都保密。
- 2)发送者 A 用 B 的公钥 PKB通过E 运算对明文X加密,得出密文 Y, 发送给 B。
- 3)B 用自己的私钥 SKB通过 D 运算进行解密,恢复出明文。
- 4) 虽然在计算机上可以容易地产生成对的 PKB和 SKB, 但从己知的 PKB 实际上不可能推导出 SKB, 即从 PKB 到 SKB是"计算上不可能的"。
- 5) 虽然公钥可用来加密,但却不能用来解密。
- 6)先后对X进行 D 运算和 E 运算或进行 E 运算和 D 运算,结果都是一样的。
<4>非对称加密的优缺点
- 优点:
- 安全性更高,公钥是公开的,秘钥是自己保存的,不需要将私钥给别人。
- 缺点:
- 效率低,仅使用小文件的加密。
(3)对称加密和非对称加密混合使用
混合使用对称加密和非对称加密,取他们的优点来使用
- 对称加密的优点:效率高
- 对称加密的缺点:密钥分发困难(不能在网路中传输,防止被截获)
- 非对称加密的优点:安全性高
- 非对称加密的缺点:速度慢,效率低,加密后文件变大。
- 两种加密方式混合使用
- 对500M文件,仍然使用对称加密(对称加密优点:效率高)
- 使用非对称密钥传输“上一步对称加密的密钥”(非对称加密优点:安全性高)
- 这样就解决了对称加密密钥分发困难、非对称加密效率低的问题。
3.数字签名及证书颁发机构CA
(1)数字签名
<1>数字签名的功能
- 1)接收者能够核实发送者对报文的签名。
- 也就是说,接收者能够确信该报文的确是发送者发送的。其他人无法伪造对报文的签名。这叫做报文鉴别。
- 2)接收者确信所收到的数据和发送者发送的完全一样而没有被篡改过。
- 这叫做报文的完整性。
- 3)发送者事后不能抵赖对报文的签名。
- 这叫做不可否认。
- 数字签名没有加密功能!!!!!!!!!!
<2>数字签名的举例
实际举例:假如公司要发布一个“放假文件”,接收到的员工必须确定3件事(即数字签名的3个特征:)
a.这个文件是的确公司老板发的
b.这个文件没有被更改过(比如放假日期)
c.事后,老板不能抵赖说没发过这个“放假文件”
“放假文件”不是公司机密,不需要加密
*
(2)数字证书颁发机构CA
证书颁发机构CA,即颁发数字证书的机构。是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。
- 其主要功能为: 产生密钥对、生成数字证书、分发密钥、密钥管理等。
- CA证书作用
- 保密性 - 只有收件人才能阅读信息。
- 认证性 - 确认信息发送者的身份。
- 完整性 - 信息在传递过程中不会被篡改。
- 不可抵赖性 - 发送者不能否认已发送的信息。
如果私钥丢失,需要在CA认证处“挂失”
通俗理解:如果公司自己产生数字证书,与其他公司进行交易时,别人不信任你。假如信任了你的数字证书,签过合同你抵赖怎么办?这时候就需要第三方(类似派出所发身份证)
(3)报文鉴别
<1>密码散列函数
数字签名就能够实现对报文的鉴别。然而这种方法有一个很大的缺点,就是对较长的报文(这是很常见的)进行数字签名会使计算机增加非常大的负担,因为这需要进行较多的时间来进行运算。
- 散列函数的特点
- 散列函数的输入长度可以很长,但其输出长度则是固定的,并且较短。
- ** 不同的散列值肯定对应于不同的输入,但不同的输入却可能得出相同的散列值。**
- 密码散列函数的特点
- 要找到两个不同的报文,它们具有同样的密码散列函数输出,在计算上是不可行的。
- 也就是说,不同的输入必定对应不同的输出
- 要找到两个不同的报文,它们具有同样的密码散列函数输出,在计算上是不可行的。
<2> 实用的密码散列函数 MD5
报文摘要(2004年,中国学者王小云证明可以用系统的方法找到一对报文,他们的MD5报文摘要相同,此后,多名学者开发了对MD5的攻击。因此现被SHA取代)
- MD5 算法的大致过程如下:
- 1)先把任意长的报文按模 264计算其余数 (64 位),追加在报文的后面。
- 2)在报文和余数之间填充 1-512 位,使得填充后的总长度是 512 的整数倍。填充的首位是1,后面都是 0。
- 3)把追加和填充后的报文分割为一个个 512 位的数据块,每个 512 位的报文数据再分成 4 个 128 位的数据块依次送到不同的散列函数进行 4 轮计算。每一轮又都按 32 位的小数据块进行复杂的运算。一直到最后计算出 MD5 报文摘要代码(128 位)。
<3>报文鉴别码
a.为什么使用报文鉴别
- 不适用报文鉴别简单步骤:
- 1))用户 A 首先根据自己的明文 X 计算出散列H(X)(例如,使用 MD5)。为方便起见,我们把得出的散列 H(X)记为 H。
- 2)用户 A 把散列 H拼接在明文X的后面,生成了扩展的报文(X,H) ,然后发送给 B。
- 3) 用户 B 收到了这个扩展的报文(X,H)。因为散列的长度 H是早己知道的固定值,因此可以把收到的散列 H 和明文 X 分离开。 B 通过散列函数的运算,计算出收到的明文 X 的 散列 H(X)。若 H(X) =H, 则 B 似乎可以相信所收到的明文是 A 发送过来的。
- 问题:
- 像上面列举的做法,实际上是不可行的。设想某个入侵者创建了一个伪造的报文 M, 然后也同样地计算出其散列 H(M), 并且冒充 A 把拼接有散列的扩展报文发送给 B。B 收到扩展的报文(M, H(M))后,按照上面步骤(3)的方法进行验证,发现一切都是正常的,就会误认为所收到的伪造报文就是 A 发送的。
b.报文鉴别
用户 A 用其私钥对散列 H 进行 D 运算,得出报文鉴别码 MAC。然后 A 把报文鉴别码 MAC 拼接在报文 X 的后面,构成扩展的报文发送给 B。B 收到扩展的报文后,采取的做法和前面所述的基本一样,不同的地方是,对收到的报文鉴别码 MAC 是用 A 的公钥进行 E 运算。由于入侵者没有 A 的私钥,因此他不可能伪造出 A 发出的报文。
(4)实际问题举例
- 假如A公司要买B公司的产品,需要签约合同,会有一系列问题:
- 问题1:B公司如何保证对方是公司A ?
- 问题2:B公司签约后,如何保证双方不对签约内容进行篡改?
- 问题3: ?
- 实际数据图
- 发送方(公司A)
- 1)公司A向CA申请数字证书,有A的公钥、A的私钥,以及CA数字签名(CA私钥、CA公钥)
- CA的私钥对数字证书进行签名(我的理解是CA用CA的私钥对A的公钥签名,用来证明A的私钥、公钥是由CA颁发的。<因为CA的私钥只有CA有>)
- 2)公司A对合同内容进行MD5/SHA进行摘要得到“摘要M”(不同的合同对应不同的摘要,只要合同更改一个数字,得到的SHA摘要就会变化)
- 3)公司A用A的私钥对得到的“摘要M”进行加密签名,用来证明“摘要M”是A公司发出去的(因为A的私钥只有A公司有)
- 4)对合同使用对称加密,对称密钥为ABCxx(对称加密效率高)
- 5)对 对称密钥ABCxx 使用B的公钥加密(防止密钥泄露)
- 6)将数据拼接发送给公司B
- 其中的数据有:“对称加密的合同”、“B公钥加密的对称密钥ABCxx”、“使用A私钥签名的摘要M”、“使用CA私钥签名的 A的公钥”
- 1)公司A向CA申请数字证书,有A的公钥、A的私钥,以及CA数字签名(CA私钥、CA公钥)
- 接收方(公司B)
- 1)验证对方是否是公司A
- 先使用CA公钥,验证“使用CA私钥签名的 A的公钥”。验证A的公钥、私钥是否是CA颁发的。
- 如果是CA颁发的,再验证A的签名是否过期、A的私钥是否在CA“挂失”
- 如果都没有问题,则表明对方的确是公司A,进行下一步
- 2)解密合同并获取(自己得到的)摘要N
- 使用B的私钥对“B公钥加密的对称密钥ABCxx”进行解密,得到对称密钥ABCxx
- 使用对称密钥ABCxx解密“对称加密的合同”,得到原合同
- 对原合同进行MD5/SHA摘要,得到摘要N
- 3)对比摘要
- 使用A的公钥,解密“使用A私钥签名的摘要M”,得到摘要M
- 对比摘要N和摘要M。如果完全相同,则表明合同没有被篡改。
- 1)验证对方是否是公司A
- 问题解答
- 验证对方是公司A ?
- 由于公司A的公钥是CA的私钥签名的,验证成功公钥私钥是合法的(A的公钥、私钥是CA签发的)。且由于A的私钥没有挂失、过期,因此认为对方的确是公司A
- 验证合同是公司A发的 ?
- 由于“合同摘要M”使用了A的私钥进行签名,而A的私钥只有A公司有,因此认为合同的确是公司A发的。(因此A公司也不能抵赖)
- 验证合同没有被篡改 ?
- 相同的合同对应相同的摘要,只要更改一个字,摘要变不完全相同。
- 由于公司A发送了“合同摘要M”,公司B又通过合同得到“摘要N”。对比“摘要M”和“摘要N”,完全相同,则可证明合同没有被篡改过。
- 验证对方是公司A ?
4.互联网使用的安全协议
(1)应用层安全协议
- 电子邮件安全协议
- PEM
- S/MIME
- PGP
- 远程登陆的安全协议
- SSH(很常用)
- Web安全协议
- S-HTTP
(2)传输层安全协议SSL
SSL实际上介于应用层和传输层之间
- SSL在传输层与应用层之间对网络连接进行加密。
- 1)认证用户和服务器,确保数据发送到正确的客户机和服务器;
- 2)加密数据以防止数据中途被窃取;
- 3)维护数据的完整性,确保数据在传输过程中不被改变。
- SSL提供以下三种功能
- SSL服务器鉴别,允许用户证实服务器的身份。 支持 SSL 的客户端通过验证来自服 务器的证书,来鉴别服务器的真实身份并获得服务器的公钥。
- SSL 客户鉴别, SSL 的可选安全服务,允许服务器证实客户的身份。
- 加密的 SSL 会话, 对客户和服务器间发送的所有报文进行加密,并检测报文是否被 篡改。
- SSL建立过程
- SSL与HTTP
- HTTP使用SSL协议,变为HTTPS,使用端口TCP-443
- HTTPS实际上应用了Netscape的安全套接字层(SSL)作为HTTP应用层的子层。
- 客户端需要使用服务器的公钥,对“对称密钥”进行加密,然后通信使用对称加密。
- 实际举例:工商银行官网首页与登陆的区别
- 首页使用HTTP,转换为登录页时,换位HTTPS
- SSL与IMAP
- IMAP使用SSL协议,变为IMAPS,使用端口TCP-993
- SSL与POP3
- POP3使用SSL协议,变为POP3S,使用端口TCP-995
- SSL与STMP
- STMP使用SSL协议,变为STMPS,使用端口TCP-465
(3)网络层安全协议IPSec
讨论虚拟专用网 VPN 时,提到在 VPN 中传送的信息都是经过加密的。现在我们就要介绍提供这种加密服务的 IPsec。
IPsec 并不是一个单一协议,而是能够在 IP 层提供互联网通信安全的协议族。
<1>IPSec概述
- IPsec 协议族中的协议可划分为以下三个部分:
- IP 安全数据报格式的两个协议:鉴别首部AH协议和封装安全有效载荷ESP协议。
- 有关加密算法的三个协议(在此不讨论)。
- 互联网密钥交换IKE协议。
- AH协议提供源点鉴别和数据完整性,但不能保密。而ESP协议比AH协议复杂得多,它提供源点鉴别、数据完整性和保密。
- 使用ESP或AH协议的IP数据报称为IP安全数据报(或IPsec数据报),它可以在两台主机之间、两个路由器之间或一台主机和一个路由器之间发送。
- IP 安全数据报有以下两种不同的工作方式
- 第一种工作方式是运输方式。
- 运输方式是在整个运输层报文段的前后分别添加若干控制信息,再加上IP首部,构成IP安全数据报。
- 第二种工作方式是隧道方式
- 隧道方式是在原始的IP数据报的前后分别添加若干控制信息,再加上新的IP首部,构成一个IP安全数据报。
- 第一种工作方式是运输方式。
<2>安全关联
- 在发送IP安全数据报之前,在源实体和目的实体之间必须创建一条网络层的逻辑连接,即安全关联 SA
- 这样,传统的互联网中无连接的网络层就变为了具有逻辑连接的一个层。安全关联是从源点到终点的单向连接,它能够提供安全服务。如要进行双向安全通信,则两个方向都需要建立安全关联。
- *假定某公司有一个公司总部和一个在外地的分公司。总部需要和这个分公司以及在各地出差的n个员工进行双向安全通信。在这种情况下,一共需要创建(2 + 2n)条安全关联SA。在这些安全关联SA上传送的就是IP安全数据报。 *
安全关联SA示例:
- 路由器到路由器
- R1和R2在公司防火墙中
- 公司总部与分公司之间的安全关联SA就是在**路由器 Rl 和 R2 **之间建立的。
- 现假定公司总部的主机H1要和分公司的主机H2通过互联网进行安全通信。
- 公司总部主机H1发送给分公司主机H2的IP数据报,必须先经过公司总部的路由器R1。然后经IPsec的加密处理后,成为IP安全数据报。
- IP安全数据报经过互联网中很多路由器的转发,最后到达分公司的路由器R2。路由器R2对IP安全数据报解密,还原出原始的数据报,传送到终点主机H2。
- 从逻辑上看,IP安全数据报在安全关联SA上传送,就好像通过一个安全的隧道。这就是"隧道方式"这一名词的来源。
- 如果总部的主机H1要和总部的另一台主机H3通信,由于都在公司内部,不需要加密,因此不需要建立安全关联。
- 路由器到主机
- 公司总部的路由器R1和外地业务员的主机H2建立安全关联SA(即路由器和主机之间的安全关联)。
- 公司总部H1发送的IP数据报,通过路由器R1后,就变成了IP安全数据报。经过互联网中许多路由器的转发,最后到达H2。
- 外地业务员利用事先安装在H2中的IPsec对IP安全数据报进行鉴别和解密,还原H1发来的IP数据报。
- 可以看出,现在是在路由器R1和业务员的主机H2之间构成了一个安全隧道。
- **建立安全关联SA的路由器或主机,必须维护这条SA的状态信息。说明其状态信息应包括的项目: **
- 一个 32 位的连接标识符,称为安全参数索引 SPI
- 安全关联SA的源点和终点的IP地址(即路由器R1和R2的IP地址)。
- 所使用的加密类型(例如, DES 或 AES)。
- 加密的密钥。
- 完整性检查的类型(例如,使用报文摘要 MD5 或 SHA-l 的报文鉴别码 MAC)。
- 鉴别使用的密钥。
<3>IP安全数据报的格式
不再详细了解
3.系统安全:防火墙与入侵检测
防火墙作为一种访问控制技术,通过严格控制进出网络边界的分组,禁止任何不必要的通信,从而减少潜在入侵的发生,尽可能降低这类安全威胁所带来的安全风险。由于防火墙不可能阻止所有入侵行为,作为系统防御的第二道防线,入侵检测系统IDS通过对进入网络的分组进行深度分析与检测发现疑似入侵行为的 网络活动,并进行报警以便进一步采取相应措施。
(1)防火墙
- 防火墙是一种特殊编程的路由器,安装在一个网点和网络的其余部分之间,目的是实施访问控制策略。这个访问控制策略是由使用防火墙的单位自行制定的。
- 一般都把防火墙里面的网络称为"可信的网络" ,而把防火墙外面的网络称为"不可信的网络" 。
- 防火墙技术一般分为以下两类。
- 分组过滤路由器
- 具有分组过滤功能的路由器,它根据过滤规则对进出内部网络的分组执行转发或者丢弃(即过滤)。过滤规则是基于分组的网络层或运输层首部的信息,例如:源/目的IP地址、源/目的端口、协议类型 (TCP 或 UDP),等等。
- 分组过滤可以是无状态的,即独立地处理每一个分组。也可以是有状态的,即要跟踪每个连接或会话的通信状态,并根据这些状态信息来决定是否转发分组。
- 分组过滤路由器的优点是简单高效,且对于用户是透明的,但不能对高层数据进行过滤。
- 应用网关也称为代理服务器
- 所有进出网络的应用程序报文都必须通过应用网关。当某应用客户进程向服务器发送一份请求报文时,先发送给应用网关,应用网关在应用层打开该报文,查看该请求是否合法(可根据应用层用户标识 ID 或其他应用层信息来确定)。如果请求合法,应用网关以客户进程的身份将请求报文转发给原始服务器。如果不合法,报文则被丢弃。
- 应用网关也有一些缺点。首先,每种应用都需要一个不同的应用网关(可以运行在同一台主机上)。其次,在应用层转发和处理报文,处理负担较重。另外,对应用程序不透明,需要在应用程序客户端配置应用网关地址。
- 通常可将这两种技术结合使用。
- 分组过滤路由器
(2)入侵检测系统
防火墙试图在入侵行为发生之前阻止所有可疑的通信。但事实是不可能阻止所有的入侵行为,有必要采取措施在入侵己经开始,但还没有造成危害或在造成更大危害前,及时检测到入侵,以便尽快阻止入侵,把危害降低到最小。入侵检测系统 IDS 正是这样一种技术。 IDS 对进入网络的分组执行深度分组检查,当观察到可疑分组时,向网络管理员发出告警或执行阻断操作(由于 IDS 的"误报"率通常较高,多数情况不执行自动阻断)。IDS能用于检测多种网络攻击,包括网络映射、端口扫描、 DoS 攻击、蠕虫和病毒、系统漏洞攻击等。
- 入侵检测方法一般可以分为基于特征的入侵检测和基于异常的入侵检测两种。
- 基于特征的 IDS 维护一个所有己知攻击标志性特征的数据库。每个特征是一个与某种入侵活动相关联的规则集,这些规则可能基于单个分组的首部宇段值或数据中特定比特串,或者与一系列分组有关。当发现有与某种攻击特征匹配的分组或分组序列时,则认为可能检测到某种入侵行为。这些特征和规则通常由网络安全专家生成,机构的网络管理员定制并将其加入到数据库中。
- 基于特征的 IDS 只能检测己知攻击,对于未知攻击则束手无策。基于异常的 IDS 通过观察正常运行的网络流量,学习正常流量的统计特性和规律,当检测到网络中流量的某种统计规律不符合正常情况时,则认为可能发生了入侵行为。例如,当攻击者在对内网主机进行ping搜索时,或导致 ICMP ping 报文突然大量增加,与正常的统计规律有明显不同。但区分正常流和统计异常流是一个非常困难的事情。至今为止,大多数部署的 IDS 主要是基于特征的,尽管某些 IDS 包括了某些基于异常的特性。
相关文章:
计算机网络 | 7.网络安全
1.网络安全问题概述 (1)计算机网络面临的安全性威胁 <1>计算机网络面临的完全性威胁 计算机网络面临的两大类安全威胁:被动攻击和主动攻击 被动攻击 截获:从网络上窃听他人的通信内容。主动攻击 篡改:故意篡改…...
Opencv+ROS自编相机驱动
目录 一、工具 二、原理 代码 标定 三、总结 参考: 一、工具 opencv2ros ubuntu18.04 usb摄像头 二、原理 这里模仿usb_cam功能包对Opencv_ros进行修饰,加上相机参数和相机状态,难点在于相机参数的读取。 对于相机参数话题 camera…...
js---函数参数是值传递还是引用传递
理解1:都是值(基本/地址值)传递 理解2:可能是值传递,也可能是引用传递(地址值) 在JavaScript中,函数参数的传递方式取决于参数的类型: 值传递(Pass by Val…...
如何解决DDoS导致服务器宕机?
分布式拒绝服务攻击(DDoS攻击)是一种常见的网络安全威胁,通过大量恶意流量使目标服务器无法提供正常服务。DDoS攻击可能导致服务器宕机,严重影响业务的正常运行。本文将详细介绍如何检测和防御DDoS攻击,防止服务器宕机…...
临床检验项目指标学习笔记
声明: 家有病人,记录此学习笔记仅为了更好照顾家人。本文不负责内容的准确性和版权。如果存在侵权、或不希望被转载的媒体或个人可与我们联系,我将立即进行删除处理。 血脂四项 [Q&A] 血脂四项 指导意义 测定血清中血脂含量,…...
代码管理之Gitlab
文章目录 Git基础概述场景本地修改未提交,拉取远程代码修改提交本地,远程已有新提交 GitIDEA引入Git拉取仓库代码最后位置 Git基础 概述 workspace 工作区:本地电脑上看到的目录; repository 本地仓库:就是工作区中隐…...
秒杀系统三层架构设计:缓存、消息队列与数据库
秒杀是一种极端高并发场景,短时间内数百万用户涌入,抢购有限库存的商品。为了保证系统稳定性和数据一致性,同时提升用户体验,我们可以设计一个三层架构:缓存层、消息队列层、数据库层。本文将详细设计这一架构并探讨其…...
tauri2.0版本开发苹果ios和安卓android应用,环境搭建和最后编译为apk
官网链接:What is Tauri? | Tauri 初始准备 rust版本一定要1.77.2以上的版本,查看版本和升级版本: 升级命名: rustup update 不然会报错: error: package tauri-plugin-shell v2.0.2 cannot be built because it r…...
SCI论文部分题目
SC20243213 通过氢和氨集成增强Power-to-X灵活性和可持续成本降低:绿色实验室Skive案例研究 SC20243211 分析同时发电的综合系统中的能量和能量效率、环境影响和经济可行性,淡水、热水和天然气凝液 SC20243208 双燃料生物质-天然气系统中的氢、…...
使用PyTorch在AMD GPU上进行INT8量化实现精简化的LLM推理
Leaner LLM Inference with INT8 Quantization on AMD GPUs using PyTorch — ROCm Blogs 随着大型语言模型(LLMs)规模达到数千亿参数,我们在这些庞大模型中表示数据的方式极大地影响了训练所需的资源(例如,用于推理的…...
Solon 拉取 maven 包很慢或拉不了,怎么办?
注意:如果在 IDEA 设置里指定了 settings.xml,下面两个方案可能会失效。(或者直接拿 "腾讯" 的镜像仓库地址,按自己的习惯配置) 1、可以在项目的 pom.xml 添加 "腾讯" 的镜像仓库 "阿里&qu…...
spring的事务隔离?
在Spring中,事务的隔离级别是指在多事务并发执行时,事务之间的隔离程度,隔离级别定义了一个事务可以看到另一个事务的哪些数据,Spring事务管理器允许通过Transactional注解或者xml配置来指定事务的隔离级别。 事务的隔离级别有以…...
13 —— 开发环境调错-source map
问题:代码被压缩后,无法正确定位源代码的位置(行数和列数) source map:准确追踪error和warning在原始代码的位置 —— webpack.config.js配置devtool选项 module.exports { devtool: inline-source-map }; inline-s…...
【大数据分析深度学习】在Hadoop上实现分布式深度学习
【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈智能大数据分析 ⌋ ⌋ ⌋ 智能大数据分析是指利用先进的技术和算法对大规模数据进行深入分析和挖掘,以提取有价值的信息和洞察。它结合了大数据技术、人工智能(AI)、机器学习(ML&a…...
【Linux探索学习】第十六弹——进程地址空间:深入解析操作系统中的进程地址空间
Linux学习笔记: https://blog.csdn.net/2301_80220607/category_12805278.html?spm1001.2014.3001.5482 前言: 进程地址空间是操作系统进程管理的重要概念之一,它定义了进程在执行时所能访问的内存布局。理解进程地址空间不仅有助于掌握操…...
【数据结构与算法】相交链表、环形链表(判断是否有环)、环形链表(返回入环节点)
主页:HABUO🍁主页:HABUO 🍁如果再也不能见到你,祝你早安,午安,晚安🍁 1.相交链表 题目:给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表…...
hubuctf-2024校赛-复现wp
web easyweb1 <?php error_reporting(0); highlight_file(__FILE__);$flag getenv("GZCTF_FLAG");if(isset($_GET[num])){$num $_GET[num];if(preg_match("/[0-9]/", $num)){die("You are failed.");}if(intval($num)){echo $flag;} } 利…...
.NET Core发布网站报错 HTTP Error 500.31
报错如图: 解决办法: 打开任务管理器》》服务》》找到这仨服务,右键启动即可,如果已经启动了就重启:...
RTSP摄像头、播放器为什么需要支持H.265?
H.264还是H.265? 好多开发者在做选RTSP播放器的时候,经常问我们的问题是,用H.264好还是H.265好?本文我们就H.264 和 H.265的主要区别和适用场景,做个大概的交流。 一、压缩效率 H.265 更高的压缩比 H.265 在相同视频…...
brynet源码阅读——解决文件描述符耗尽问题mIdle
1、背景 在高并发服务器程序中,文件描述符资源是有限的。当一个程序同时处理多个网络连接时,每个连接都会占用一个文件描述符。如果系统没有足够的文件描述符可用,调用 accept()(用于接收新的连接)或其他文件操作时可…...
学习Zookeeper
Zookeeper有手就行 1. 初识ZooKeeper1.1 安装ZooKeeper1.2 ZooKeeper命令操作1.2.1 Zookeeper数据模型1.2.2 Zookeeper 服务端常用命令1.2.3 Zookeeper客户端常用命令 2. ZooKeeperJavaAPl操作2.1 Curator介绍2.2 CuratorAPI常用操作2.2.0 引入Curator支持2.2.1 建立连接2.2.2 …...
css效果
css炫彩流光圆环效果 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title></title><style>*{margin: 0;padding: 0;}body{width: 100%;height: 100vh;}.container{position: relative;width: 100%;height: 100vh…...
【Python爬虫五十个小案例】爬取豆瓣电影Top250
博客主页:小馒头学python 本文专栏: Python爬虫五十个小案例 专栏简介:分享五十个Python爬虫小案例 🪲前言 在这篇博客中,我们将学习如何使用Python爬取豆瓣电影Top250的数据。我们将使用requests库来发送HTTP请求,…...
「Mac玩转仓颉内测版25」基础篇5 - 布尔类型详解
本篇将介绍 Cangjie 中的布尔类型,包括布尔值的定义、运算操作符、逻辑运算、布尔类型的常见应用场景及其在条件判断中的应用,帮助开发者理解和使用布尔类型。 关键词 布尔类型定义布尔运算逻辑运算符条件判断常见应用场景 一、布尔类型概述 布尔类型&…...
electron主进程和渲染进程之间的通信
主进程 (main.js) const { app, BrowserWindow, ipcMain } require("electron"); const path require("node:path"); // 导入fs模块 const fs require("fs");const createWindow () > {const win new BrowserWindow({width: 800,height…...
在 Spring Boot 中实现多种方式登录(用户名、手机号、邮箱等)的不正经指南
欢迎来到一场技术与幽默交织的冒险!今天,我们将跳进 Spring Boot 的世界,探索如何通过 用户名、手机号、邮箱 等多种方式实现登录。想象一下,用户在登录时可以随心所欲地选择——就像你今天早上纠结到底是要喝美式咖啡还是拿铁&am…...
JVM标量替换
JVM标量替换 简单来说 JVM 中的标量替换是一种编译优化技术,将未逃逸对象拆解成不能再分,标量在栈帧或寄存器中分配使用。将对象拆解后直接使用标量,不但避免了完整对象的创建和后续回收流程,而且能更快地获取和操作相应的数据&…...
Python深度学习框架:PyTorch、Keras、Scikit-learn、TensorFlow如何使用?学会轻松玩转AI!
前言 我们先简单了解一下PyTorch、Keras、Scikit-learn和TensorFlow都是什么。 想象一下你要盖一座大房子。你需要砖头、水泥、工具等等,对吧?机器学习也是一样,需要一些工具来帮忙。PyTorch、Keras、Scikit-learn和TensorFlow就是四种不同的…...
C语言蓝桥杯组题目
系列文章目录 文章目录 系列文章目录前言题目第一题.1, 2, 3, 4 能组成多少个互不相同且无重复数字的三位数?都是多少?思路 第二题: 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少…...
用Matlab和SIMULINK实现DPCM仿真和双边带调幅系统仿真
1、使用SIMULINK或Matlab实现DPCM仿真 1.1 DPCM原理 差分脉冲编码调制,简称DPCM,主要用于将模拟信号转换为数字信号,同时减少数据的冗余度以实现数据压缩。在DPCM中,信号的每个抽样值不是独立编码的,而是通过预测前一…...
真实网络安全面试场景题
1.公司内部搭建了2台DNS服务器做主辅同步,公司的业务官网地址为 www.chinaddic.com。小明作为网络管理员把域名添加至DNS服务器进行测试。 问题1:使用自己电脑可以正常访问刚添加的域名,但处于同样网络环境同事电脑却访问不了。 出现此问题原因…...
速盾:ddos防御手段哪种比较好?高防cdn怎么样?
DDoS(分布式拒绝服务)攻击是一种威胁网络安全的常见攻击手段。为了保护网站和服务器免受DDoS攻击的影响,许多安全专家和公司开发了各种防御手段。在这篇文章中,我们将重点讨论一种常见的DDoS防御手段——高防CDN(内容分…...
【ArcGISPro】Sentinel-2数据处理
错误 默认拉进去只组织了4个波段,但是实际有12个波段 解决方案 数据下载 Sentinel-2 数据下载-CSDN博客 数据处理 数据查看 创建镶嵌数据集 在数据管理工具箱中找到创建镶嵌数据集...
【适配】屏幕拖拽-滑动手感在不同分辨率下的机型适配
接到一个需求是类似下图的3D多房间视角,需要拖拽屏幕 问题 在做这种屏幕拖拽的时候发现,需要拖拽起来有跟手的感觉,会存在不同分辨率机型的适配问题。 即:美术调整好了机型1的手感,能做到手指按下顶层地板上下挪动&…...
谷粒商城-消息队列Rabbitmq
RabbitMq参考文档 在谷粒商城项目中使用消息队列主要有以下几个重要原因: 异步处理提高性能 场景示例:在订单系统中,当用户提交订单后,系统需要完成多个操作,如更新库存、生成订单记录、发送订单通知等。如果这些操作…...
python-爬虫入门指南
前言:由于个人负责的运维组,其中有个同事每回在某个项目发版更新后,需手动在k8s容器平台web界面上复制出几百个微服务的名称以及镜像版本等信息,用来更新微服务清单,个人决定抽时间写个爬虫脚本自动完成手动执行的任务…...
力扣—53. 最大子数组和
53. 最大子数组和 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 示例 1: 输入:nums [-2,1,-3,4,-1,2,1,-5,4…...
STM32H7开发笔记(2)——H7外设之多路定时器中断
STM32H7开发笔记(2)——H7外设之多路定时器中断 文章目录 STM32H7开发笔记(2)——H7外设之多路定时器中断0.引言1.CubeMX配置2.软件编写 0.引言 本文PC端采用Win11STM32CubeMX4.1.0.0Keil5.24.2的配置,硬件使用STM32H…...
kafka如何知道哪个消费者消费哪个分区?
在Kafka中,消费者和分区之间的分配是通过一个称为“消费者组协调器”(Consumer Group Coordinator)的组件来管理的。 以下是Kafka如何确定哪个消费者消费哪个分区的步骤: 消费者加入消费者组: 当消费者启动时…...
Dockerfile构建报错【ERROR: failed to solve: process】的解决办法
报错信息如下 ERROR: failed to solve: process “/bin/sh -c yarn install” did not complete successfully: exit code: 1 解决 从阿里云等镜像站点下载CentOS-7.repo文件 下载CentOS-7.repo文件:可以从阿里云等镜像站点下载CentOS-7.repo文件,…...
html渲染优先级
在前端开发中,优先布局是指在设计和构建页面时,将页面的各个部分按照其重要性和优先级进行排序,并依次进行布局和开发。这种方法可以帮助开发团队在项目初期就确定页面结构的核心部分,从而更好地掌控项目的整体进度和优先级。且确…...
AIX下crs-5005 ip address is aready in use in the network的解决办法
某业务生产系统中,三节点的rac数据库中3号节点因故障停机后,进行crs的重启。重启完成后,发现数据库的监听未起来,启动的过程中并提示crs-5005错误。 一、问题过程 查看监听,发现监听no service ywdb03/oracle/grid/c…...
Docker--通过Docker容器创建一个Web服务器
Web服务器 Web服务器,一般指网站服务器,是驻留于因特网上某种类型计算机的程序。 Web服务器可以向浏览器等Web客户端提供文档,也可以放置网站文件以供全世界浏览,或放置数据文件以供全世界下载。 Web服务器的主要功能是提供网上…...
C#里怎么样自己实现10进制转换为二进制?
C#里怎么样自己实现10进制转换为二进制? 很多情况下,我们都是采用C#里类库来格式化输出二进制数。 如果有人要你自己手写一个10进制数转换为二进制数,并格式化输出, 就可以采用本文里的方法。 这里采用求模和除法来实现的。 下…...
sql 查询语句:将终端数据形式转换成insert语句
文本转换:sql 查询语句:将终端数据形式转换成insert语句 如上,写过后端的都知道,从生产或其他地方拿到的数据,有可能会是图一;但实际上,我们需要图二的数据; 不废话,直接…...
Spring Boot 应用开发:构建高效、可扩展的 Java 微服务
以下是一个简单的 Spring Boot 小项目示例,该项目是一个基于 Spring Boot 的博客系统后端部分。这个项目将展示如何使用 Spring Boot 框架来创建一个基本的 RESTful API 服务,以管理博客文章。 项目结构 spring-boot-blog ├── src │ ├── main…...
【Linux】安装 openssh-server 并打开 ssh 服务(Ubuntu 22.04)
引言 openssh-server是OpenSSH套件的一部分,它是SSH协议的开源实现。SSH,全称为Secure Shell,是一种网络协议,用于安全地在不安全的网络环境中执行远程命令和传输数据。 配置步骤 在Ubuntu系统中安装openssh-server。 sudo apt…...
开源IM,为你的项目增加聊天功能
现在大多数APP,或多或少都会涉及到聊天功能,而大部分APP的选择则是接入TIM等三方IM服务,但是,这种方式对于大多数刚刚起步的APP来说,费用是非常昂贵的,基本上每月都有好几百的支出,并且…...
跨平台应用开发框架(1)----Qt(组件篇)
目录 1.Qt 1.Qt 的主要特点 2.Qt的使用场景 3.Qt的版本 2.QtSDK 1.Qt SDK 的组成部分 2.安装 Qt SDK 3.Qt SDK 的优势 3.Qt初识 1.快速上手 widget.cpp mian.cpp widget.h Helloworld.pro 2.对象树 3.坐标系 4.信号和槽 1. 信号和槽的基本概念 2. 信号和槽的…...
Java基础 设计模式——针对实习面试
目录 Java基础 设计模式单例模式工厂模式观察者模式策略模式装饰器模式其他设计模式 Java基础 设计模式 单例模式 单例模式(Singleton Pattern) 定义:确保一个类只有一个实例,并提供一个全局访问点来访问这个实例。适用场景&…...