译者 | 布加迪
审校 | 孙淑娟
密码是用于确保安全访问系统的最基本、最常用的身份验证方法。但是为众多平台使用和维护安全密码的过程可能相当乏味。据Verizon发布的《2020年数据泄露调查报告》显示,薄弱、重复使用的密码导致了81%的数据泄露事件。除此之外,还有更多与密码有关的漏洞和风险,如今密码成了一种越来越不合适的身份验证方案。
人类行为和密码——许多人图方便而不是图安全。使用简单、易记的密码,或者在所有不同的平台上使用同一个密码是很常见的做法。此外,共享密码和使用不安全的方法存储密码是导致大多数密码攻击的主要原因。做好适当安全的密码保护既是您个人的责任,也是贵组织的责任。
复杂的管理——许多组织设置的密码策略要求员工经常更改密码、记住多个复杂的密码,并在忘记密码时重新设置密码,这一切花费大量的时间和支持资源。对于员工来说,在处理密码时,其中许多程序效率低下、不方便且不现实。这也给IT部门带来了解决密码相关问题方面的巨大负担。同样,个人也为流行的网站和应用程序在密码方面的诸多要求而苦恼。
越来越多的密码泄露——据安全网站HackerNoon报道,1400万个密码中80%以上可以在短短20小时内被破解。如今攻击者拥有强大的工具和程序,可以专门破解密码。然后,所有泄露的密码都被发布在暗网上,用于撞库和密码喷洒等攻击。
密码攻击包括通过各种技术和攻击工具利用系统授权漏洞。威胁分子使用强大的攻击实现自动化,主要在短时间内大规模攻击特权帐户。作为一名安全专业人员,有必要了解一些最流行的攻击类型及其防御方法:
网络钓鱼攻击——这是最常见的社会工程密码攻击。它们使用各种方法引诱用户点击恶意链接。避免网络钓鱼攻击的一些最佳方法包括寻找可疑的电子邮件标题、主题、附件和链接。拼写错误、域名拼写混乱、伪造标志以及写得不好的电子邮件也表明来源可疑。
窃听和背后偷窥——窃听是指通过语音或数字手段泄露密码。您是否无意中偷听到有人在打电话时背诵机密信息?犯罪分子会利用这种粗心的行为,收集尽可能多的信息。遵循适当的安全做法以及良好的电话礼仪,可以防止您成为窃听的受害者。
背后偷窥指攻击者通过观察一个人在键盘上输入密码或PIN码来获取凭据。在偷手机之前,手机窃贼可能偷看您输入或者刷屏幕锁码,这让您的数据处于危险之中。对周围的人保持警惕,解锁设备时挡住屏幕可以保护您的信息。
字典攻击——使用预定义的单词列表,单词来自以前泄密事件中的密码。字典攻击中使用的攻击工具可以为密码添加更多的后缀和前缀,猜测攻击目标的特征,进一步增加了破解密码的机会。
蛮力攻击——一种尝试所有可能的密码组合的试错方法。抵御蛮力破解的最好方法是使用长密码,而不是标准密码。
密码喷洒攻击——威胁分子尝试使用同一个密码访问多个帐户,然后再尝试另一个密码。这种攻击不会引起任何怀疑,因为威胁分子将攻击分散在多个帐户当中,而不是针对单个帐户进行多次攻击。这种攻击在管理员未能更改默认密码的网站和平台上最为成功。
组织可以为密码管理设置强大的安全协议和机制,以应对现代威胁和攻击。个人也可以养成良好的密码保护习惯。据NIST指南显示,建议使用长度为8个至64个字符的密码和长密码短语。密码短语可以阻止蛮力攻击,它们并不与密码字典中的条目匹配,也不包含个人身份信息。使用密码管理软件以避免重复使用密码,只有在密码泄露或遗忘时才重置密码。
启用多因素身份验证(MFA)是对帐户的最佳保护。使用密码作为唯一的身份验证机制会带来巨大的安全风险。一次性密码(OTP)、硬件令牌和身份验证应用程序将提高您的个人安全性。
由于基于密码的攻击越来越多,未来很可能会使用无密码身份验证。无密码身份验证本质上更安全,因为没有传统意义上的密码被泄露。最常见的无密码身份验证方法是生物特征识别、OTP码、推送通知和神奇链接。神奇链接是一种方法,它不向用户请求密码,而是创建支持登录的唯一链接,并通过电子邮件发送。
密码已经成为一种过时的身份验证方法,容易受到许多威胁和攻击。仅使用基于密码的身份验证方法现在被认为不太安全,因为存在无数可用的密码攻击。虽然组织有特殊的工具来执行良好的身份验证策略,但个人也应该提高帐户安全性。采用MFA和基于无密码的身份验证方法是一种简单又免费的方法,可以立即保护您的帐户。
原文链接:https://www.tripwire.com/state-of-security/are-passwords-really-safe-we-think
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
有没有办法配置(例如,可以使用Fastfile)或以更简洁的方式执行FaSTLane?它目前打印出很多信息,这些信息通常会使开发人员对警告和错误视而不见。主要问题是需要花费一些时间在大量无用消息中滚动和搜索黄色/红色文本,直到您了解发生了什么。默认设置会打印所有内容,令人惊讶的是甚至还有--verbosemode对于CLI,但我找不到任何相反的东西,例如--quiet模式。编辑:下面是一些我希望能够抑制的输出示例。考虑到我使用了来自gitrepo的Fastfile,gym、match、cocoapods、get_version_number、increment_version_numb
在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?
我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("
有没有办法在Rails中为确认字段自定义消息?例如在设计中我必须输入密码和password_confirmation并且错误消息是:Passwordconfirmationdoesn'tmatchPassword我可以更改事件记录语言环境消息(“不匹配”),但它会在该语言环境消息的开头和结尾输出密码确认和密码,所以我得到如下内容:"PasswordconfirmationmustmatchPassword"有没有办法将其更改为不同的字符串?PasswordconfirmationandPasswordmustmatch.编辑另一件事是拥有完全自定义的消息,例如:'Setpassword
默认情况下:回形针gem将所有附件存储在公共(public)目录中。出于安全原因,我不想将附件存储在公共(public)目录中,所以我将它们保存在应用程序根目录的uploads目录中:classPost我没有指定url选项,因为我不希望每个图像附件都有一个url。如果指定了url:那么拥有该url的任何人都可以访问该图像。这是不安全的。在user#show页面中:我想实际显示图像。如果我使用所有回形针默认设置,那么我可以这样做,因为图像将在公共(public)目录中并且图像将具有一个url:Someimage:看来,如果我将图像附件保存在公共(public)目录之外并且不指定url(同
我正在尝试对某些帖子的评论使用简单的身份验证。用户使用即时ID和密码输入评论我使用“bcrypt”gem将密码存储在数据库中。在comments_controller.rb中像这样@comment=Comment.new(comment_params)bcrypted_pwd=BCrypt::Password.create(@comment.user_pwd)@comment.user_pwd=bcrypted_pwd当用户想要删除他们的评论时,我使用data-confirm-modalgem来确认数据在这部分,我必须解密用户输入的密码以与数据库中的加密密码进行比较我怎样才能解密密码,
我有一个允许更新用户记录的表单。它包含:password和:password_confirmation字段,但我不希望在数据库中已存储加密密码时对它们运行验证。View文件中的字段:'ConfirmPassword'%>在互联网上搜索时,我发现了这段代码,我认为它是针对以前版本的Ruby/Rails的。(我会把它放在我的用户模型中。)validates_presence_of:password,:on=>create由于我的用户模型中密码验证的语法不同(如下),我对我需要的语法感到困惑。validates:password,:presence=>true,:confirmation=>
我正在使用devise,当用户更改密码时,网站会将他们注销。我在网上读到,添加sign_in可以解决问题但不起作用,并且当密码更改时用户会注销。这是我的代码if@user.errors[:base].empty?and@user.update_attributes(params[:user])sign_in(current_user,:bypass=>true)flash[:success]="Useraccounthasbeensuccessfullyupdated"redirect_toedit_user_path(params[:site_id],@user)elserender
我在一个ruby文件中有一个函数可以像这样写入一个文件File.open("myfile",'a'){|f|f.puts("#{sometext}")}这个函数在不同的线程中被调用,使得像上面这样的文件写入不是线程安全的。有谁知道如何以最简单的方式使这个文件写入线程安全?更多信息:如果重要的话,我正在使用rspec框架。 最佳答案 您可以通过File#flock给锁File.open("myfile",'a'){|f|f.flock(File::LOCK_EX)f.puts("#{sometext}")}