AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 14796
Accepted
Porks
Porks
Asked: 2009-05-30 08:38:49 +0800 CST2009-05-30 08:38:49 +0800 CST 2009-05-30 08:38:49 +0800 CST

是否有向非数学家证明密码安全性的标准方法?

  • 772

我的客户端有一个服务器正受到来自僵尸网络的暴力登录尝试。由于服务器和客户端客户端的变幻莫测,我们无法轻易阻止通过防火墙、端口更改或登录帐户名称更改的尝试。

已决定让它受到攻击,但要找到一种方法来保证密码的安全。管理层和其他一些顾问已经确定,最好的办法是安装密码轮换软件,每十分钟轮换一次密码,并将新密码提供给需要登录的用户。

蛮力尝试每秒发生两次。

我需要证明使用 12-15 个字符的强密码是一种更简单且免费的解决方案。我知道如何用数学证明这一点,但我只是在写类似“我们的密码有 x 多种可能的排列,攻击者每天只能尝试 n 次尝试,因此我们希望他们去 x/他们平均需要 2n 天才能猜出我们的密码。” 有没有更标准的“证明”?

security password hacking brute-force-attacks
  • 11 11 个回答
  • 1476 Views

11 个回答

  • Voted
  1. Best Answer
    Steven
    2009-05-30T09:01:28+08:002009-05-30T09:01:28+08:00

    使用带有 iptables 的 fail2ban 是一个很好的方法。

    这是给你的数学:

    混合大小写字母和常用符号,8 个字符长,为您提供 2.9 万亿个组合,每秒 10,000 次尝试将花费 9,488 年。这当然是最大值——预计您的密码将在 4000 年后被破解。1000 年,如果你不觉得幸运的话。

    如您所见,如果您使用 15 个字符的密码,则应该没有任何问题,例如:

    dJ&3${bs2ujc"qX
    
    • 14
  2. user5605
    2009-05-30T09:23:06+08:002009-05-30T09:23:06+08:00

    除了fail2ban,

    如果您正在运行任何现代 UNIX,通常可以将错误密码输入休眠时间更改为最多 5 秒,从而将攻击速度降低 2000%。[Solaris 10 在 /etc/default/login 中有它,搜索 SLEEPTIME] 使用相同的容差意味着您可以每 3 小时 20 分钟轮换一次密码。

    此外,在锁定之前尝试密码将是一个可行的选择,但我怀疑它不适合您,因为您有多个用户共享一个帐户并且不希望它一直被锁定。

    要求 12-15 个字符的密码会有所帮助,但如果您不断受到攻击,另一种解决方案可能会更好。我不知道贵公司对此的预算容忍度是多少,但是需要登录该帐户的每个人的 RSA 密钥卡也可以解决这个问题。两因素身份验证将概率推到量子计算时间。

    蛮力方法持续了足够长的时间让你在这个板上发帖是相当令人惊讶的。一般来说,这是相当低俗的,充其量只是一个日志填充物,而真正的攻击正在进行中。

    • 8
  3. Brien
    2009-05-30T09:54:24+08:002009-05-30T09:54:24+08:00

    向当局上诉怎么样?您可以参考 DoD 安全技术实施指南 (iase.disa.mil/stigs/stig) 并说“如果它对国防部来说足够好,那么对我们来说就足够好了”

    • 6
  4. piCookie
    2009-05-30T08:45:30+08:002009-05-30T08:45:30+08:00

    需要考虑的事情:如果您有一个不会更改的密码,并且暴力攻击正在测试包括您的密码在内的一系列密码,那么暴力攻击肯定会最终受到攻击,并且在那之后您将仍然容易受到攻击。

    正如您所建议的那样,可以计算随机选择击中您密码的“机会”,但这可能无法说明全部情况。

    例如,如果您查看蛮力尝试,发现他们尝试的最长密码是 10 个字符,选择 12 个字符将确保您永远不会被击中。

    尝试将统计数据应用于特定案例时要非常小心;他们只预测大量样本的整体行为。

    除此之外,如果数学不能(或不能)说服某人,请尝试找到发生概率大致相同但熟悉的事物,例如彩票或车祸或被闪电击中。如果您可以说“某人击中此密码的机会与连续六周中彩票的机会大致相同”,那可能会给他们更好的感觉。

    • 5
  5. Preflightsiren
    2009-05-31T17:51:01+08:002009-05-31T17:51:01+08:00

    尚未考虑的一件事是僵尸网络对 Bruteforce 使用的用户名。在我见过的所有情况下,蛮力都是针对 admin 和 root 的变体,在极少数情况下,用户名是从 corp 网站上抓取的。

    我还将更改交互式登录限制,以便您的 root 帐户被禁用(首选)或限制在您的本地子网或类似地址范围内。

    • 4
  6. Brent
    2009-05-30T08:53:19+08:002009-05-30T08:53:19+08:00

    每秒两次也不错。在实施fail2ban之前,我们曾经每分钟看到数千次尝试,这将在如此多的失败尝试(所有可配置)后将特定 IP 锁定在网络之外一段时间。

    这对我们很有用。

    • 2
  7. palmer
    2009-05-30T08:53:36+08:002009-05-30T08:53:36+08:00

    实际上,如果这对您有用,您可以使用 iptables 对暴力 ssh 攻击进行选择性扫描。

    这两个字符串:

    iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set --name sshscans 
    iptables -A INPUT -m recent --rcheck --seconds 60 --hitcount 5 --name sshscans --rsource -j DROP 
    

    将阻止任何人在 60 秒的时间间隔内尝试连接 SSH 超过 5 次。如果您希望允许大于每秒 5 的数字,您可以更改“--hitcount”数字。

    • 2
  8. Peter
    2009-05-30T08:59:50+08:002009-05-30T08:59:50+08:00

    我同意每 10 分钟更改一次密码似乎有点过分。在这一点上,问题变成了如何安全地传输新密码并保持系统彼此同步。

    这篇文章有一些关于破解速度的有趣统计数据:

    http://www.lockdown.co.uk/?pg=combi

    http://en.wikipedia.org/wiki/Password_cracking

    • 2
  9. Maximus Minimus
    2009-05-30T09:14:37+08:002009-05-30T09:14:37+08:00

    令人惊讶的是,有多少人不了解指数曲线,但每个人都知道 10、100 和 1000 之间的区别,因此这可能是开始进行比较的好地方。

    另一种策略可能是实际向人们展示暴力破解 6 个字符的密码需要多长时间。如果您有任何编程知识,则可以组装一个快速工具来执行此操作。

    • 2
  10. Rich
    2009-06-01T20:57:49+08:002009-06-01T20:57:49+08:00

    您还可以向他们展示彩虹表是多么容易获得:

    http://project-rainbowcrack.com/table.htm

    • 2

相关问题

  • 为什么使用authorized_keys通过ssh自动登录不起作用?

  • 如何启用与 SQL Server 实例的加密连接?

  • 从多个位置保护远程服务器/工具访问的最佳方法是什么?

  • 在 SOHO 环境中实施的最佳 VPN 技术是什么?[关闭]

  • 保护新的 Ubuntu 服务器 [关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve