口令策略基础:四个核心维度
口令策略这东西,说白了就是给设备设规矩——什么口令能用,什么不能用,用多久必须换。我做了这么多年安全,见过太多因为口令策略太松导致设备被攻破的案例。今天咱们就把四个最基础的维度掰开揉碎了讲清楚。
核心观点:口令策略不是越严越好,而是在安全性和可用性之间找平衡。太松等于没设,太严用户会想办法绕过去。
一、口令长度策略
长度是口令安全的第一道防线。为什么?因为攻击者暴力破解时,每增加一个字符,尝试空间就呈指数级增长。
我记得有个项目,客户要求所有智能门锁口令必须是6位数字。我当时就提了个问题:6位纯数字,总共只有100万种组合。用现代GPU跑暴力破解,几秒钟就全试完了。这跟没锁门有什么区别?
| 口令长度 | 字符集 | 组合数 | 暴力破解时间(估算) |
|---|---|---|---|
| 6位 | 纯数字 | 10⁶ | 秒级 |
| 8位 | 小写字母+数字 | 36⁸ ≈ 2.8×10¹² | 小时级 |
| 12位 | 大小写+数字+符号 | 94¹² ≈ 4.7×10²³ | 亿年级 |
| 16位 | 全字符集 | 94¹⁶ ≈ 3.7×10³¹ | 宇宙年龄级 |
我的建议:智能设备口令长度至少8位,关键设备(如网关、管理后台)建议12位以上。别觉得长口令用户记不住——现在都用口令管理器了,设备端也可以支持生物识别+口令的双因子方案。
二、口令复杂度策略
长度够了,复杂度也不能落下。复杂度说白了就是口令的「字符多样性」。我见过最离谱的口令是"aaaaaaaa",长度倒是够8位,但攻击者用字典攻击,第一个就试这个。
复杂度策略通常包含以下几个维度:
- 字符类型要求:大写字母、小写字母、数字、特殊符号,至少包含3类
- 禁止常见模式:连续字符("1234"、"abcd")、重复字符("1111")、键盘序列("qwerty")
- 禁止个人信息:用户名、设备名、厂商名、生日等
我曾经在一个智能家居项目中,发现用户口令里居然包含了设备序列号的后六位。你想想看,序列号印在设备外壳上,谁都能看到。这等于把口令贴在大门上。
避坑指南:复杂度策略别搞得太极端。我见过某厂商要求口令必须包含大小写+数字+符号,且不能有连续两个相同字符。结果用户全写在便利贴上贴在屏幕边框上。安全策略把人逼到这份上,就适得其反了。
三、口令有效期策略
口令用久了就该换,这个道理大家都懂。但有效期设多长合适?90天?180天?还是干脆不设有效期?
这里有个常见的误区:很多人觉得有效期越短越安全。其实不然。我参与过的一个金融级项目,最初设了30天有效期,结果发现用户每30天就在旧口令后面加个"1",变成"2"、"3"... 这种「旋转门」行为,让有效期策略形同虚设。
| 设备类型 | 建议有效期 | 说明 |
|---|---|---|
| 普通IoT设备 | 180天或更长 | 用户交互少,频繁改口令反而增加遗忘率 |
| 管理后台 | 90天 | 权限高,需要定期轮换 |
| 临时访客设备 | 单次或24小时 | 用完即废,不留后患 |
| 高危环境设备 | 30-60天 | 如公共区域的智能门禁 |
我的经验:有效期策略要配合「口令过期提醒」一起用。提前7天开始提醒,最后3天每天提醒一次。别等到过期当天才通知,用户一着急就容易设弱口令。
四、口令历史策略
这个维度很多人会忽略。口令历史策略,就是禁止用户重复使用最近用过的口令。为什么需要这个?
你想想看,如果用户每次改口令都在"Pass123"和"Pass456"之间来回切换,那有效期策略就白设了。攻击者只要拿到一次口令,就能预测下一次。
历史策略通常包含两个参数:
- 历史记录数:禁止使用最近N次用过的口令。我一般建议至少5次,关键系统建议10次
- 历史检查范围:是只检查当前设备,还是跨设备统一检查?
我记得有个项目,设备端只检查了最近3次历史口令。结果用户每4次就循环一次,相当于有效期策略完全失效。后来我把历史记录数改到8次,这个问题才解决。
注意:历史口令的存储一定要做哈希处理,不能明文存。我见过某厂商把历史口令明文存在设备Flash里,攻击者拿到设备就能直接读取所有历史口令。这比不设历史策略还危险。
知识体系总览
下面这张图把四个维度的关系梳理清楚了。我习惯用这种结构图来跟团队对齐思路,一目了然。
四个维度的联动关系
这四个维度不是孤立的。我习惯把它们看作一个整体策略的四个面:
- 长度+复杂度:决定口令的「熵值」,也就是抗暴力破解的能力
- 有效期+历史:决定口令的「生命周期管理」,防止长期使用同一口令
- 长度+有效期:长口令可以适当延长有效期,短口令必须频繁更换
- 复杂度+历史:高复杂度要求下,历史记录数可以适当减少
实战建议:在智能设备上实现口令策略时,一定要考虑设备算力和存储限制。比如低端MCU可能不支持复杂哈希算法,这时候就要在策略设计上做取舍。我一般会准备两套方案——一套给高性能设备(完整策略),一套给资源受限设备(简化策略)。