How to Create Strong Passwords: Complete Security Guide

· 10 min read

什么是强密码:长度与复杂度的较量

在数字时代,密码是保护我们在线身份和数据的第一道防线。但什么才算是一个真正强大的密码?这个问题的答案比大多数人想象的要复杂得多。

传统上,许多人认为强密码必须包含大小写字母、数字和特殊字符的复杂组合。虽然这种复杂性确实有其价值,但现代密码学研究表明,密码长度往往比复杂度更重要

长度的力量

一个12字符的纯小写字母密码(如"correcthorsebatterystaple")比一个8字符的复杂密码(如"P@ssw0rd")要安全得多。原因在于数学:

更长的密码提供了更大的搜索空间,使得暴力破解攻击变得不切实际。每增加一个字符,可能的组合数量就会呈指数级增长。

复杂度的作用

虽然长度是关键,但复杂度仍然重要。复杂度通过增加字符集大小来增强密码强度:

理想的密码策略是结合长度和复杂度。一个16字符的密码,包含大小写字母、数字和符号,几乎是不可破解的。

可记忆性因素

然而,密码安全性的一个关键方面常被忽视:可记忆性。一个极其复杂但无法记住的密码会导致用户将其写下来或重复使用,这反而降低了安全性。这就是为什么密码短语(稍后详述)变得越来越受欢迎——它们提供了长度、合理的复杂度和可记忆性的平衡。

密码熵:衡量密码强度的科学方法

密码熵是一个信息论概念,用于量化密码的不可预测性。它以比特为单位测量,熵值越高,密码越强。

熵的计算

密码熵的基本公式是:

熵(比特) = log2(可能组合数)
         = 密码长度 × log2(字符集大小)

让我们通过几个实际例子来理解这个概念:

示例1:简单数字PIN码

密码: "1234"
字符集: 10个数字(0-9)
长度: 4个字符
可能组合: 10^4 = 10,000
熵: log2(10,000) ≈ 13.3比特

这是一个非常弱的密码,可以在几秒钟内被破解。

示例2:常见密码

密码: "Password1"
字符集: 62个字符(大小写字母+数字)
长度: 9个字符
理论熵: 9 × log2(62) ≈ 53.6比特
实际熵: 约28比特(因为是常见模式)

虽然理论上有一定强度,但由于这是一个常见模式,实际熵要低得多。

示例3:随机强密码

密码: "7mK#9pL@2nQ$5"
字符集: 95个字符(大小写字母+数字+符号)
长度: 13个字符
熵: 13 × log2(95) ≈ 85.7比特

这是一个非常强的密码,需要数千年才能破解。

示例4:密码短语

密码: "correct-horse-battery-staple"
使用Diceware方法(7776个单词列表)
4个单词
熵: 4 × log2(7776) ≈ 51.7比特

这个密码短语既强大又容易记忆。

熵的实际意义

安全专家通常建议不同场景下的最小熵值:

重要的是要理解,熵只是理论强度。如果密码基于字典单词、个人信息或常见模式,实际强度会大大降低。

常见的密码错误

即使了解了强密码的原则,许多用户仍然会犯一些常见错误,严重削弱他们的账户安全性。

1. 密码重复使用

这是最危险的密码错误。当你在多个网站使用相同的密码时,一个网站的数据泄露就会危及你所有的账户。

为什么这很危险:

实际建议:为每个重要账户使用唯一的密码。使用密码管理器来管理这些密码。

2. 使用字典单词

使用单个字典单词或简单的单词组合使密码容易受到字典攻击。

弱密码示例:

即使添加数字或符号也不够:

攻击者使用包含数百万个单词、常见替换和模式的字典。

3. 包含个人信息

使用个人信息使密码容易被猜测,特别是在社交工程攻击中。

避免使用:

在社交媒体时代,这些信息通常很容易获得。

4. 简单的键盘模式

键盘上的模式看起来很随机,但实际上很容易被破解:

密码破解工具专门检查这些模式。

5. 最小长度密码

仅满足最低要求(通常是8个字符)会创建弱密码。如果网站要求8个字符,使用12个或更多。

6. 可预测的替换

常见的字符替换不会显著增加安全性:

这些替换模式在密码破解字典中很常见。

7. 将密码写下来(不安全地)

虽然将密码写在纸上并安全存储比重复使用弱密码要好,但这带来了物理安全风险。如果你必须写下密码:

8. 不更新泄露的密码

当服务通知你数据泄露时,立即更改密码至关重要。许多用户忽视这些警告,使他们的账户容易受到攻击。

9. 在不安全的设备上使用密码

在公共计算机、不安全的Wi-Fi网络或可能有键盘记录器的设备上输入密码会危及即使是最强的密码。

10. 与他人共享密码

共享密码,即使是与信任的人,也会增加风险。如果你必须共享访问权限:

密码长度建议对照表

下表提供了基于长度和复杂度的密码强度指南,以及破解每种类型密码所需的估计时间(假设每秒100亿次尝试,这是现代GPU的合理速度)。

长度 仅小写字母 大小写字母+数字 大小写字母+数字+符号 推荐用途
8字符 可能组合: 2.1 × 10^11
破解时间: 21秒
熵: ~37.6比特
可能组合: 2.2 × 10^14
破解时间: 6小时
熵: ~47.6比特
中等
可能组合: 6.6 × 10^15
破解时间: 7.6天
熵: ~52.4比特
中等
不推荐用于任何重要账户。许多系统的最低要求,但不够安全。
12字符 可能组合: 9.5 × 10^16
破解时间: 110天
熵: ~56.4比特
中等
可能组合: 3.2 × 10^21
破解时间: 10,000年
熵: ~71.4比特
可能组合: 4.8 × 10^23
破解时间: 150万年
熵: ~78.8比特
适用于大多数在线账户(电子邮件、社交媒体、购物)。最低推荐长度。
16字符 可能组合: 4.4 × 10^22
破解时间: 14万年
熵: ~75.2比特
可能组合: 4.8 × 10^28
破解时间: 1.5 × 10^11年
熵: ~95.2比特
非常强
可能组合: 3.2 × 10^31
破解时间: 1.0 × 10^14年
熵: ~105.0比特
非常强
推荐用于高价值账户(银行、投资、主电子邮件)。密码管理器主密码的良好长度。
20字符 可能组合: 2.0 × 10^28
破解时间: 6400万年
熵: ~94.0比特
非常强
可能组合: 7.0 × 10^35
破解时间: 2.2 × 10^18年
熵: ~119.0比特
极强
可能组合: 2.3 × 10^39
破解时间: 7.4 × 10^21年
熵: ~131.0比特
极强
推荐用于密码管理器主密码、加密密钥和最高安全需求。对于大多数用途来说是过度的,但提供了最大的安全性。

关键要点

特殊情况

某些情况需要不同的方法:

密码短语方法:Diceware技术

密码短语是一种创建强大且可记忆的密码的方法。Diceware方法是生成真正随机密码短语的最流行和最安全的技术之一。

什么是Diceware?

Diceware是由Arnold Reinhold在1995年创建的一种方法,用于生成密码短语。它使用普通骰子和一个特殊的单词列表来创建随机但可记忆的密码。

Diceware单词列表包含7,776个单词(6^5 = 7,776),每个单词对应一个五位数字序列(从11111到66666)。

如何使用Diceware

基本过程:

  1. 获取材料:
    • 至少一个六面骰子(使用多个骰子更快)
    • Diceware单词列表(可在线免费获取)
    • 纸和笔
  2. 掷骰子:
    • 掷骰子五次以生成一个五位数字
    • 记录每次掷骰的结果
    • 例如:4, 2, 6, 1, 3 = 42613
  3. 查找单词:
    • 在Diceware列表中找到对应的单词
    • 例如:42613可能对应"mountain"
  4. 重复:
    • 重复此过程4-6次
    • 每个单词增加约12.9比特的熵
  5. 组合单词:
    • 将单词用空格、连字符或其他字符连接
    • 例如:"mountain-river-cloud-forest"

Diceware密码短语示例

4个单词密码短语:
"correct horse battery staple"
熵: 51.7比特
长度: 28个字符(含空格)
强度: 适用于大多数账户

5个单词密码短语:
"winter-garden-purple-music-laptop"
熵: 64.6比特
长度: 35个字符
强度: 适用于高价值账户

6个单词密码短语:
"cloud.river.mountain.forest.ocean.desert"
熵: 77.5比特
长度: 42个字符
强度: 适用于密码管理器主密码

增强Diceware密码短语

你可以通过以下方式进一步增强Diceware密码短语:

示例增强:

基本: "mountain river cloud forest"
增强: "Mountain-River-Cloud-Forest-2024!"

数字Diceware替代方案

如果你没有物理骰子,可以使用:

但是,物理骰子提供了真正的随机性,不依赖于计算机的随机数生成器。

Diceware的优势

何时使用Diceware

Diceware密码短语特别适合:

实用技巧

密码管理器:为什么需要以及如何使用

密码管理器是现代密码安全的基石。它们解决了创建和记住数十个或数百个唯一强密码的不可能任务。

为什么需要密码管理器

1. 人类记忆的局限性

普通人有70-100个在线账户。记住每个账户的唯一强密码是不可能的。没有密码管理器,人们会:

2. 增强的安全性

密码管理器使你能够:

3. 便利性

密码管理器提供:

4. 防止网络钓鱼

密码管理器只会在正确的域上自动填充密码,帮助防止网络钓鱼攻击。如果你的密码管理器没有自动填充,这可能是一个警告信号。

密码管理器的工作原理

密码管理器使用强加密来保护你的密码:

  1. 主密码:你创建一个强主密码(唯一需要记住的密码)
  2. 加密:你的所有密码都使用主密码派生的密钥进行加密
  3. 存储:加密的密码存储在本地或云端
  4. 解密:当你输入主密码时,密码管理器解密你的密码
  5. 零知识:好的密码管理器使用零知识架构——即使是服务提供商也无法访问你的密码

选择密码管理器

流行的选项包括:

云端密码管理器: