跳转至

网络安全概述

约 2503 个字 预计阅读时间 8 分钟

常见的密码算法

在现代的计算机系统通信中,密码算法是保护数据安全的核心技术。它们用于加密和解密数据,确保信息在传输和存储过程中的机密性、完整性和可用性。密码算法可以防止未经授权的访问和数据泄露。

密码算法的种类繁多,主要可以分为三大类:

  • 哈希算法
    • 哈希算法又称为散列算法、摘要算法。常见的哈希算法有 MD5、SHA-1、SHA-256 等。安全的哈希算法将任意长度的数据转换为固定长度的哈希值,且找出任意两个哈希值相同的数据在计算上是不可能的,哈希算法常用于数据完整性校验和数字签名。

    安全的哈希算法

    MD5 与 SHA-1 算法已被密码学家证明不安全,因历史原因部分应用仍在使用。为尽可能保障数据的安全性,强烈推荐在使用哈希算法时优先使用 SHA-256、SHA-3 等安全的哈希算法。

  • 对称加密算法
    • 常见的对称加密算法有 AES、DES 等。对称加密算法使用相同的密钥进行加密和解密,速度快,适合大数据量的加密。
  • 非对称加密算法
    • 常见的非对称加密算法有 RSA、DSA 等。非对称加密算法使用一对密钥(公钥和私钥)进行加密和解密,安全性高,但速度较慢,常用于小数据量的加密和数字签名。

了解常见的密码算法的加密原理的是必要的,这里给出几篇文章供参考:

练习

  1. 寻找一个在线加密工具,如在线工具大全,对同一段文本使用不同的加密算法进行加密,观察不同算法的输出结果,学会分辨不同的加密算法。
  2. 标准开发环境中已安装 OpenSSL 工具,请自行查找相关资料,对同一文件使用不同的加密算法进行加密,观察不同算法的输出结果。
  3. (选做)使用 OpenSSL 工具,计算此前配置标准开发环境时所下载文件的 SHA256 哈希值,与我们给出的哈希值进行对比,验证文件的完整性。

弱口令

什么是弱口令

弱口令是指那些容易被他人猜测或破解的密码。它们通常由简单的数字、字母或常见词汇组成,缺乏复杂性和长度,从而降低了密码的安全性。

常见的弱口令分为两种:

  1. 较短的密码。如: s7t1。可被穷举爆破。
  2. 易被猜测或侧信道攻击的密码。

    • 简单序列:如 123456、000000 等。
    • 重复字符:如 aaaaaa、111111 等。
    • 键盘顺序:如 qwerty、asdfgh 等。
    • 常见单词或短语:如 password、iloveyou、sjtu1896 等。
    • 个人信息:姓名、生日、电话号码等。

    这类密码容易被密码字典爆破或社会工程学攻击。

弱口令的风险

由于弱口令的简单性和易猜测性,它们在网络安全中构成了严重的威胁。攻击者可以通过暴力破解、字典攻击或社会工程学等方式轻易地猜测出弱口令,从而获取对系统或服务的访问权限,导致未经授权的访问,进而产生严重的后果。

  • SSH 中如果设置了 password 认证且设置的是弱口令,将可能导致服务器被未经授权登录,且攻击者可以进行与你同权限的任意操作。
  • 数据库中如果设置了弱口令被猜测成功后,攻击者将可以获取数据库的访问权限,进而对数据进行任意操作。
  • 无线局域网中如果设置了弱口令被猜测成功后,攻击者将可以进入局域网中对局域网其他设备进行攻击。

防范方式

弱口令带来的风险是显而易见的,因此在实际应用中,我们需要采取措施来防范弱口令的使用。

  • 使用强密码:强密码通常由大写字母、小写字母、数字和特殊字符组成,长度通常超过 8 位。强密码的复杂性使得暴力破解和字典攻击变得非常困难。
  • 定期更换密码:定期更换密码可以降低密码被猜测或泄露的风险。建议每隔一段时间(如 3 个月)更换一次密码。
  • 使用密码管理工具:密码管理工具可以帮助用户生成和存储强密码,避免使用弱口令。它们可以自动填充密码,减少用户记忆负担,同时提高密码的安全性。
  • 采用其他更为安全的身份认证方法:如 SSH 中采用 public key 认证,通过生成一对公私钥来进行身份认证,避免使用弱口令。

练习

  1. 思考一下,如果有一个密码是由 8 位数字组成的,假设一个攻击者每秒可以尝试 1 万个密码,那么这个密码在多长时间内会被破解?
  2. 如果这个密码是由 8 位数字及大小写字母组成,那么这个攻击者需要多长时间才能破解这个密码?如果包含特殊字符呢?
  3. 尝试使用一个离线的密码强度测试工具,如 KeePassXC 自带的密码强度检测工具,测试你当前使用的密码的强度,并尝试改进它。

公网 IP

本节的 IP 地址均指 IPv4 协议下的 IP 地址。

什么是公网 IP

在网络世界中,每台连接到互联网的设备都有一个独特的地址,这就是 IP 地址。公网 IP 地址是可以直接从互联网访问的地址,与之相对的是私网 IP 地址,通常用于局域网内部。

公网 IP 地址是由互联网服务提供商(ISP)分配给用户的 IP 地址,它在全球范围内是唯一的,允许任何互联网上的设备直接访问。公网 IP 地址通常用于服务器、路由器等需要从互联网上直接访问的设备。例如,我们希望从任意接入互联网的地方使用 ssh 连接到服务器,一个简单的方法是让服务器拥有一个公网 IP 并运行 sshd 服务。

与之相对的是私网 IP 地址,它通常用于局域网内部的设备,如家庭路由器、公司网络等。私网 IP 地址不能直接从互联网上访问,通常需要通过 NAT(网络地址转换)技术将其转换为公网 IP 地址。

公网 IP 的风险

一个设备一旦配置了公网 IP 地址,就意味着它已经暴露在互联网上,任何人都可以尝试访问这个设备。这种暴露带来了许多安全风险,尤其是当设备上运行的服务存在漏洞或配置不当时,极有可能成为黑客攻击的目标。

常见的攻击方式有:

  • 端口扫描:攻击者可以扫描设备的开放端口,识别出运行的服务和应用程序。这些服务可能存在已知的漏洞或弱口令,从而成为攻击的入口。
  • 暴力破解:攻击者可以尝试使用暴力破解或字典攻击来猜测设备上服务的登录凭据,尤其是当服务使用弱口令时。
  • 利用已知漏洞:攻击者可以利用设备上运行的服务的已知漏洞进行攻击。
  • 拒绝服务攻击(DoS/DDoS):攻击者可以通过发送大量请求来使设备无法正常工作,导致服务中断。

防范方式

没有危险的 IP/ 端口,只有危险的服务

公网 IP 地址本身并不危险,关键在于配置在公网 IP 上的服务是否安全。只要确保这些服务的安全性,就可以降低被攻击的风险。

因此,防范公网 IP 的风险主要是确保配置在公网 IP 上的服务的安全性。具体措施包括:

  • 定期更新和打补丁。确保所有运行的服务和应用程序都及时更新到最新版本,修复已知的安全漏洞。
  • 关闭不必要的服务。定期审查设备上运行的服务,关闭不必要的服务,减少攻击面。
  • 审查开放的服务的安全性。确保当前主机开放的所有服务均是安全的。
  • 使用强密码。确保所有服务的登录凭据都使用强密码,避免使用弱口令。
  • 使用防火墙。配置防火墙规则,仅允许必要的服务和端口对外开放。
  • 使用入侵检测系统(IDS)和入侵防御系统(IPS)。这些系统可以监控网络流量,检测和阻止可疑活动,提供额外的安全防护。
  • 限制访问权限。配置服务的访问控制列表(ACL),仅允许特定的 IP 地址或 IP 段访问服务。

练习

  1. 使用计算机网络基础的方法,查看你的计算机的端口开放信息。了解这些端口上运行的服务及其安全性。
  2. 了解常用网站的公网 IP 地址。(提示:可以使用 ping 命令或在线工具查询网站的 IP 地址)
  3. (选做)如果你有一个公网 IP 地址,尝试配置一个简单的 Web 服务器,并确保它的安全性。可以使用 Nginx 或 Apache 等常见的 Web 服务器软件。