《消费物联网安全入门指南》
第4章 设备身份认证

4. 设备身份认证:弱密码风险、默认凭证问题与多因素认证在IoT中的应用

⚠️ 弱密码 / 默认凭证 admin / admin 123456 / password root / 空密码 ✅ 多因素认证 (MFA) 密码 + 手机验证码 密码 + 生物特征 硬件密钥 / TOTP

🔐 4.1 弱密码风险与默认凭证问题

在消费物联网中,弱密码和默认凭证是最大的安全漏洞之一。许多设备出厂时使用固定的默认用户名和密码(如 admin/admin、root/123456),用户若不修改,攻击者可轻易通过扫描工具入侵。据统计,超过 70% 的 IoT 安全事件与弱密码或默认凭证有关。

常见弱密码示例

  • admin / admin
  • root / root
  • user / 123456
  • support / support
  • 空密码 / password

默认凭证风险

  • 设备出厂统一凭证
  • 用户忘记修改
  • 固件升级后重置
  • 远程扫描工具利用
  • 僵尸网络感染入口
攻击者 扫描默认端口 IoT设备 尝试 admin/admin 控制成功 加入僵尸网络 💀

🔑 4.2 多因素认证在IoT中的应用

多因素认证 (MFA) 是提升IoT设备安全性的关键手段。它要求用户提供至少两种不同类型的验证因素:知识因素(密码)、持有因素(手机/硬件令牌)、固有因素(指纹/面部)。在资源受限的IoT设备上,MFA需要轻量化实现。

认证因素类型 IoT应用示例 安全等级 资源消耗
知识因素 密码 / PIN码 / 安全问答 ⭐ 低 极低
持有因素 手机验证码 / TOTP / 硬件密钥 ⭐⭐ 中 低
固有因素 指纹 / 面部识别 / 声纹 ⭐⭐⭐ 高 中
位置因素 GPS / Wi-Fi定位 / 蓝牙范围 ⭐⭐ 中 中
👤 用户 密码验证 📱 验证码/TOTP 🖐️ 指纹/面部 IoT 智能设备 多因素认证:知识 + 持有 + 固有 = 安全

🛡️ 4.3 最佳实践与代码示例

✅ 安全建议

  • 强制修改默认密码
  • 密码复杂度要求(大小写+数字+符号)
  • 启用双因素认证(2FA)
  • 使用TOTP时间戳算法
  • 定期轮换凭证
  • 禁用不必要的远程访问

💻 TOTP 验证代码示例 (Python)

import hmac
import base64
import struct
import time

def generate_totp(secret_key, interval=30):
    """生成基于时间的一次性密码 (TOTP)"""
    key = base64.b32decode(secret_key)
    counter = struct.pack('>Q', int(time.time() // interval))
    h = hmac.new(key, counter, 'sha1').digest()
    offset = h[-1] & 0x0f
    code = (struct.unpack('>I', h[offset:offset+4])[0] & 0x7fffffff) % 1000000
    return f"{code:06d}"

# 示例密钥 (Base32编码)
secret = "JBSWY3DPEHPK3PXP"
print(f"当前TOTP: {generate_totp(secret)}")
    
❌ 不安全认证流程 设备 → 默认密码 → 直接登录 无验证码 / 无生物识别 攻击者:1秒破解 风险等级:🔴 极高 ✅ 安全认证流程 设备 → 强密码 → 验证码/TOTP + 指纹/面部识别 攻击者:难以破解 风险等级:🟢 低

📌 关键总结

  • 弱密码和默认凭证是IoT设备被入侵的首要原因,必须强制修改。
  • 多因素认证 (MFA) 能显著提升安全性,推荐使用 TOTP 或 硬件密钥。
  • 在资源受限的IoT设备上,可优先实现 密码 + 验证码 的双因素方案。
  • 定期审计设备凭证,禁用不安全的远程访问协议(如Telnet、默认SSH端口)。
专注课程资料整理