Linux密码加密机制如何?

Linux用户密码经哈希算法(如SHA-512)加密后存储在/etc/shadow文件中,原始密码不可恢复。

密码存储位置与历史演变

  1. /etc/shadow文件

    Linux密码加密机制如何?

    • 所有用户密码的加密哈希值存储于此(仅root可读)。
    • 示例条目:
      user1:$6$s4lt1234...:19485:0:99999:7:::
      $6 表示SHA-512算法,s4lt1234为盐值(salt),后续长字符串为加密后的密码哈希。
  2. /etc/passwd/etc/shadow的演进
    早期密码存于/etc/passwd(全局可读),易受暴力破解,现代Linux系统改用/etc/shadow隔离存储,增强安全性。


加密机制详解

  1. 加盐哈希(Salted Hash)

    • 盐值(Salt):系统为每个密码随机生成12字符的字符串(如 $6$s4lt1234)。
    • 作用:即使相同密码,因盐值不同也会产生完全不同的哈希值,抵御彩虹表攻击。
  2. 加密算法
    通过$X标识算法(X为数字):

    • $1:MD5(已淘汰)
    • $5:SHA-256
    • $6SHA-512(现代Linux默认算法)
    • $y:Yescrypt(部分新版系统支持)
      加密过程:哈希值 = 算法(盐值 + 用户密码)

系统配置与工作流程

  1. 算法选择配置
    文件/etc/login.defs定义默认加密方式:

    ENCRYPT_METHOD SHA512  # 指定SHA-512为默认算法
  2. 密码设置流程
    用户执行passwd命令时:

    Linux密码加密机制如何?

    • 步骤1:系统生成随机盐值。
    • 步骤2:将盐值与用户输入的明文密码组合。
    • 步骤3:使用指定算法(如SHA-512)生成哈希值。
    • 步骤4:将$算法ID$盐值$哈希值存入/etc/shadow

安全验证过程

用户登录时:

  1. 输入明文密码。
  2. 系统从/etc/shadow提取该用户的盐值和算法类型。
  3. 重新计算哈希:用相同盐值+输入密码生成新哈希。
  4. 比对结果:新哈希与存储的哈希一致则验证通过。

关键安全实践

  1. 强制强密码策略
    使用pam_pwquality模块设置复杂度规则(最小长度、混合字符等)。

  2. 定期更新算法
    检查/etc/login.defs中的ENCRYPT_METHOD,优先使用SHA-512或Yescrypt。

  3. 拒绝弱加密
    禁用DES($1)等老旧算法:

    authconfig --passalgo=sha512 --update  # CentOS/RHEL

查看与验证方法

  1. 检查用户加密类型

    Linux密码加密机制如何?

    sudo grep 'user1' /etc/shadow | cut -d':' -f2 | awk -F'$' '{print $2}'

    输出6代表SHA-512。

  2. 手动生成哈希值(验证原理)

    openssl passwd -6 -salt "s4lt1234" "你的密码"  # -6指定SHA-512

Linux通过加盐哈希(如SHA-512)和隔离存储(/etc/shadow)保障密码安全,其核心优势在于:

  • 单向加密:哈希不可逆推明文。
  • 唯一盐值:相同密码产生不同结果。
  • 算法可升级:随技术发展替换更安全的加密方式。
    用户应启用强密码策略并定期更新系统,以应对日益复杂的攻击手段。

引用说明:本文内容基于Linux内核文档(kernel.org)、shadow-utils源码包及NIST密码学标准(SP 800-132)综合整理。

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/41534.html

(0)
酷盾叔的头像酷盾叔
上一篇 2025年6月29日 01:57
下一篇 2025年6月29日 02:05

相关推荐

  • Linux下如何运行.py文件?

    在Linux终端中运行.py文件,只需打开终端,进入脚本目录,执行python 文件名.py或python3 文件名.py命令即可,若需指定Python版本,可使用版本号如python3.8,确保已安装对应Python环境。

    2025年6月28日
    000
  • 怎样安装Win7和Linux双系统?

    首先安装Windows 7系统,其次为Linux划分独立分区并进行安装,最后配置引导程序(如GRUB)实现双系统启动选择,注意备份数据并谨慎分区操作。

    2025年6月12日
    100
  • Windows如何重装为Linux系统?

    备份重要数据后,制作Linux启动U盘,重启进入BIOS设置U盘启动,运行安装程序格式化硬盘并安装Linux系统,取代原有Windows。

    2025年6月10日
    000
  • Linux镜像快速恢复系统指南

    使用Linux镜像恢复系统需先制作启动U盘,从镜像启动进入恢复环境,挂载原系统分区后,用dd或rsync命令将备份的镜像文件还原至目标分区,最后更新引导并重启即可完成系统恢复。

    2025年6月24日
    100
  • 如何在VMware上安装Linux?

    VMware是虚拟化软件,可在Windows或macOS主机上创建虚拟机,轻松安装和运行各种Linux发行版作为客户操作系统,用于开发、测试或替代物理机环境。

    2025年6月14日
    100

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN