标签 密码 下的文章

超人、蝙蝠侠、蜘蛛侠频频出现在密码中

Mozilla 对密码泄露数据库的数据进行研究发现,数十万人使用他们最喜欢的超级英雄作为密码。在这些密码泄露事件中,“超人(Superman)”出现了 36 万次,“蝙蝠侠(Batman)”出现了 22 万次,“蜘蛛侠(Spider-Man)”出现 了 16 万次。金刚狼和铁人也出现了几千次。甚至连这些角色的扮演者的名字也经常被用于密码,尤以金刚狼的扮演者詹姆斯·豪利特受欢迎。

老王点评:在密码方面,超级英雄也不能给你力量,还是微软现在的无密码策略比较好。

REvil 被发现其勒索软件含有秘密后门

REvil 是近年来最臭名昭著的勒索软件攻击团伙之一,该组织还提供了“勒索软件即服务”,以通过租赁的方式从下游恶意攻击者那里抽成。安全研究人员在对地下论坛进行分析后发现,REvil 勒索软件还植入了秘密后门,能让上线的黑客接管与受害者的协商,不给下线提成。在俄语的地下论坛,有人表示早就怀疑 REvil 的策略,他们与一名受害者讨论 700 万美元赎金时,协商突然结束了,他们认为是 REvil 使用后门接管了赎金谈判。地下论坛上的另一位也抱怨称,他们已经厌倦了这个“不被信任”的勒索软件团伙提供的“糟糕的合伙应用程序”。

老王点评:怎么说呢,这就是黑吃黑啊。

PostgreSQL 14 正式发布

广泛使用的 PostgreSQL 发布了 14.0,带来了许多性能改进,特别是围绕并行查询、重度并发工作负载、分区表、逻辑复制和吸尘等方面进行了新的优化。

老王点评:这是我用过的第一个开源数据库,虽然一度其风头被 MySQL 盖住,但是现在越来越呈现出一种繁荣景象,值得关注学习。

二十年后,ATI Radeon R300 的 Linux 驱动仍有零星改进

ATI R300 图形处理器推出于 2002 年.虽然 AMD 的开源 Linux 开发者在很长一段时间内不再关注这个 R300g 驱动,但由于开源的性质,社区能够对这个传统的硬件支持进行偶尔的改进。仅今年就已经提交了 14 个补丁。当然,大多数与这个近 20 年历史的 GPU 驱动有关的提交都是围绕着错别字和普通修复。顺便说一句,R300g 并不是 ATI/AMD 官方的硬件 Linux 驱动,但正是通过这种逆向工程和业余工作,导致这些开源开发者中的几个人陆续加入了 AMD,并受雇于该公司为其开发更多现代驱动。

老王点评:这就是开源的好处,各种意义上的。

谷歌赞助 Linux 基金会的安全开源计划 100 万美元

安全开源(SOS)试点计划会奖励广泛的改进措施,主动加强关键开源项目和支持基础设施,以应对针对应用程序和供应链的攻击。为了补充现有的奖励漏洞管理的计划,还会直接支持项目开发者。奖励范围从 10000 美元以上的复杂、高影响和持久的改进,几乎可以肯定地防止受影响的代码或支持的基础设施中的重大漏洞,到 500 美元的小改进,但至少从安全的角度来看需要有好处。谷歌初期向该计划投资 100 万美元,并计划根据社区反馈扩大该计划的范围。

老王点评:主动去加强开源软件的安全,我觉得谷歌这钱花的值。

Telegram 机器人正试图窃取你的一次性密码

虽然双因素认证(2FA)这样的一次性密码可以改进单独使用密码的安全性,但威胁者很快就开发出拦截这些 2FA 的方法,如通过恶意软件或社会工程。根据英特尔 471 团队的消息,自 6 月以来,一些用于规避 2FA 的服务正在滥用 Telegram 的消息服务。由 Telegram 驱动的机器人正被用来窃取 2FA 安全中所要求的一次性密码。

老王点评:虽然 2FA 是一个好的安全实践,但是安全最薄弱的环节往往是人。

PHP 仍然是统治服务器端的编程语言

根据 W3Techs 今天发布的一份报告,PHP 在 2010 年的市场份额为 72.5%,而在 2021 年占比达到 78.9%。只有一个其他的服务器端语言曾经突破 10% 的份额,这个竞争对手是 ASP.NET,它在 2010 年拥有令人印象深刻的 24.4% 的份额,但在 1 月份下降到 9.3%,这个月下降到 8.3%。本次调查涉及热门网站,而非仅限于一些精英网站,并且在调查中避免来自域名停放服务和垃圾邮件发送者的数据歪曲,尽量契合当前的互联网现实。

PHP 确实是最好的语言!

用户可以从微软账户中彻底删除密码了

微软表示密码机制本身已经成为安全软肋,每年遭受的相关攻击多达 180 亿次。从今天开始,用户可以将微软账户中的密码彻底删除了。当然,在步入无密码时代之前,你需要在自己的智能手机上安装微软验证器应用,并与你账户连接。之后根据实际使用位置的不同,通过安全密钥,或者是通过邮件、手机或 Outlook、OneDrive 等其他兼容性应用或服务接收到的验证码进行登录。此前微软在 2018 年启用了安全密钥,并在 2019 年成功使 Windows 10 实现无密码登录。超过 2 亿的商业客户已经在使用无密码登录。

不知不觉中,大家习以为常的密码其实已经是落后的、可淘汰的安全缺陷了。

Azure 默认 Linux 配置曝出严重的远程代码执行漏洞

安全研究专家指出,他们在诸多流行的 Azure 服务中,发现了开放管理基础设施(OMI)软件代理中存在的一系列严重漏洞。问题在于当 Azure 客户在云端设置 Linux 虚拟机服务时,OMI 代理会在他们不知情的情况下自动部署。更糟糕的是,黑客只需发送一个剔除了身份验证标头的数据包,即可渗透并取得远程机器上的 root 访问权限。微软已经发布了补丁,同时建议客户手动执行更新。据推测 Azure 上多达 65% 的 Linux 部署都受到影响。

最讨厌云服务商偷偷往系统镜像里面塞东西,而且这些软件还经常有验证漏洞。

小米成为世界头号手机品牌,超过三星、苹果

据 Counterpoint 刚刚发布的数据显示,小米在 2021 年 6 月超过了三星和苹果,首次成为全球第一大智能手机品牌。小米的份额不低于 17.1%,其次是三星,占 15.7%。苹果以 14.3% 的份额位居第三。2021 年 6 月,小米的销售额月增长达 26%,成为该月增长最快的品牌。自 10 年前在这个市场上首次亮相以来,小米已经出货了近 8 亿部智能手机。Counterpoint 称,华为的衰落帮助小米取得了如此大的增长。它一直在华为和荣耀的传统市场,如中国、欧洲、中东和非洲进行扩张。

华为未竟的目标,竟然由小米达成了。

Chrome 将禁用跨源框架内的 alert() 和 confirm()

Chrome 工程团队称,该团队正在禁用跨源框架内的 alert(),以保护用户不被骗子欺骗。但此举将带来的破坏性变化引发了争议。人们认为,这样一个重大的突破性变化是在没有对此事进行广泛讨论的情况下发生的。比如这会影响编程教程和 Javascript 学习网站,这些网站在跨源框架中对用户提供的代码进行沙盒处理。但是谷歌的工程师们对此不以为然,他们说,“Web 上经常发生破坏性的变化,作为一个开发者,针对主要浏览器的早期发布渠道进行测试是很好的做法,可以提前了解任何兼容性问题。”

作为一个垄断了浏览器份额的厂商,确实“有资格”为所欲为啊。

使用由三个随机单词组成的密码的原因

早在 2016 年,英国国家网络安全中心(NCSC)就指导人们在网上注册时选择三个随机词的组合作为密码,而不是想出或重复使用一个复杂的密码。NCSC 认为,大多数网站都强制要求使用复杂的密码,通常包括多个字符和符号的组合。这使恶意行为者的工作更加容易,因为他们可以利用这些规则和现有密码模式的知识来优化暴力攻击。这也意味着人们在多个网站上重复使用相同的密码或其变体,因为创建和记住众多复杂的密码是很乏味的。NCSC 说,使用三个随机词的组合的好处是:密码的长度增加,易于理解的标准,新颖性,以及它的实用性。虽然当前也有猜测三个随机词的搜索算法,但是这种密码方式并不主流,因此具有更好的保护能力。

听起来确实有一定的道理。不过终极解决方案,还是不要使用密码。

在命令行上创建符合特定规范的密码。

 title=

大多数网站或应用都要求用户创建带有安全密码的账户,以便他们能够迎合用户体验。虽然这有利于网站开发者,但肯定不会让用户的生活更轻松。

有时,创建密码的规则是如此严格,以至于难以生成一个强壮且合规的组合。如果有一个工具可以生成符合网站或应用程序要求的任何规则的安全密码,那就容易多了。

这就是 pwgen 的用武之地。根据它的 手册页:“pwgen 生成的密码是为了让人容易记住,同时又尽可能的安全。” 它返回符合你所提供的规则的多个密码选项,这样你就可以选择一个你喜欢的(而且可能更容易记住)。

安装 pwgen

在 Linux 上,你可以通过包管理器安装 pwgen。例如,在 Fedora 上:

$ sudo dnf install pwgen

在 macOS 上,可以使用 MacPortsHomebrew。在 Windows 上,可以使用 Chocolatey

使用 pwgen 生成密码

有几种方式可以通过向 pwgen 传递参数来生成密码,这取决于你所需的参数。这里有一些例子。更多的参数选项请查阅手册页。

如果你需要一个安全的、难以记忆的特定长度的密码,请运行 pwgen --secure(或简写 -s),后面跟上你所需的密码长度:

$ pwgen -s 25
pnFBg9jB8AlKL3feOuS2ZwMGb xlmDRoaLssduXTdGV6jkQhUGY O3IUB3CH7ry2kD4ZrSoODzWez
dENuvhkF3mmeb4FfXd4VPU2dE EMCi1sHFKHUVmbVajXWleFBzD 4UXJIu3JztVzYz6qJktBB3KCv
AF9WM7hmG89cpTlg8PksI7jsL LSSaT7DD4IT8DUgRAgY8Zt06m Nths10uT0bIMGsPuE0XEHDxsj
6YjLRbg3VnGnrzkoQCmrneLmm Tam1Mftac5RxrZPoXJtXx1Qdy BPqePJW4LdTtFnuZOepKEj0o0
Ss8veqqf95zusqYPsfE7mLb93 4KuZdReO5lhKff7Xv1en1Hefs is7hjLnDrVCUJ7Hh6zYUzfppn
UXOfENPRJYWiroIWEt5IgAwdJ t8i4hM4cDuL8pN1rpFKHnx7yw Wr7gyuyU2br7aCbiH5M5ogvc6
evk90lUmK2rOUWGgnqmznn0a9 Lflyc9svJfaBRRMin24j0P9ec hIzyJIwCpklDjgOb5PrMkyPCI
bhYcaV7GXfUiCMZ1kvMnlmKLx v4EJew54u6s4ZCirOTAWjfPQ2 IdemhbOHOm4Qo70WGibaNTOpO
j6XkmdB3LBfqZf5mbL3GndliG PpZbeXfWOFCpNARyXt1FWPAb8 OLQS2HFuqkiSg56sdxNsg5vaJ
1g666HxJPQ6l2L0RlaDEMoi50 1t6au7VuTN9HVPpiVmd1Gurli 46OAWypvwtZZUdBEfaHSunjpw
0LiRj9dbtMuI4cbDES8O4gYRq 2HPiaq5AANvVT32fWqNIruu3R 3lT5B107WoUbHsELkKUjnEEih
gLmYUTp0XZJWvIVbA5rFvBT54 LEm6QVeTMinc056DC9c4V55cV ipV45Ewj704365byKhY8zn766

运行 pwgen -symbols(或简写 -y),再加上所需的密码长度,生成包含特殊字符的密码:

$ pwgen -y 25
Osh0chahxe0won9aech4ese?v pemoh2ohm9aim;iu4Eiy"ah0y Taiqu;o2aeSh+o4aedoagait3
Vei;phoh5owai5jui+t|ei3ot teu!w7mahxoh0Po7ohph8Iez6 quie#phooCeu2lohm5shaPaer
eTh5AechaexieToh9ez5eeZ;e nuloh1ico0Nool:eG<aiv`ah, Heeghuo8ahzii1Iep~ie_ch7p
oe6Xee6uchei7Oroothail~iL ahjie!Chee.W4wah[wuu]phoo ees7ieb!i[ibahhei1xoz2Woh
Atei9ooLu7lo~sh>aig@ae9No OVahh2OhNgahtu8iethaR@i7o ouFai8ahP@eil4Ieh5le5ipu5
eeT4tahW0ieng9fe?i5auM3ie seet0ohc4aiJei]koiGha2zu% iuh@oh4eix0Vuphi?o,hei9me
loh0Aeph=eix(ohghe6chee3z ahgh2eifiew8dahG_aeph8woo oe!B4iasaeHo`ungie3taekoh
cei!c<ung&u,shee6eir7Eigo va6phou8ooYuoquohghi-n6Qu eeph4ni\chi2shohg3Die1hia
uCagha8Toos2bahLai7phuph` Zue2thieng9ohhoo~shoh6ese Aet7Lio1ailee^qu4hiech5ie
dee]kuwu9OhTh3shoi2eijoGe daethahH6ahV3eekoo9aep$an aehiiMaquieHee9moh`l_oh4l
aec#ii6Chophu3aigh*ai#le4 looleihoog:uo4Su"thiediec eeTh{o7Eechah7eeJ2uCeish!
oi3jaiphoof$aiy;ieriexeiP Thozool3aipi|cahfu0Ha~e1e az/u8iel2Jaeph2vooshai9Wi

运行 pwgen --capitalize(或缩写 -c),后面跟上密码长度,生成包含大写字母的密码:

$ pwgen -c 25
pheipichusheta6ieJ4xai4ai seiLeiciev7ijoy5Uez7Iepee Foobeisheec7ooGahbicholo6
shenahsheevigh3pha1Ie5aev taiTheitahne3oong4joegh9d ooshieV0ooGhaelabuyahsh7t
ieniech0Uajeh8nieYaak0foh dohm5Pee3jeeshahm1eipei0a aemoob8Lequeesho8ahreiwee
keineeCh5ieZejafitith6Osh Tahn3nohl6iewaimee6oofied Aed2Woh7nae5ohgh2toh1ieph
le4agheeb0bieth0Ui7ielais Iunoo4lev1aiG4NohfoTh3ro5 iLai7eiQuohXosh8ooyiev6wu
eezib2zoh2ohsh0cooSahluK6 baekiew8bo5oeMouthi7taCee iep6Puungae0uushogah4rohw
chohm5leogae2zeiph1OL0uK2 oosieCaishievahvig3Iaphai ii9AemieYeepe1ahciSei8ees
ie3aighaiy9TaX6bae8soKe6t sooDaivi4mia8Eireech8ope9 moi9uk3bauv0ahY4to0aedie7
que8seHu4shu7Veib6noe7dai shuyuj9aiphoip2Ier4oole1u Thoaziebah1Ieph2Veec0Ohm8
auqua4Kaitie9sei6quoh7chi jeewaituH3Ohsaisahp0viequ ueh1quaibidoh6Bae6ri0Mee2
lae3aiJaiNgoh7yieghozev7o Di2vohfahr7uo7ohSh0voh5sh Jeurahxiedeiyoom3aechaS7d
thung2pheiy2tooBeenuN8ia3 foh0oge1athei0oowieZen0ai iexei0io1vohsieThuCoy5ogi
tohHe3uu2eXieheeQuoh7eit8 aiMieCeizeivu1ooch8aih0sh Riojei2yoah0AiWeiRoMieQu0

让它变得简单

由于人脑更倾向于选择模式,所以强壮的随机密码难以生成。通过使用 pwgen,你可以轻松生成密码。借助于优秀的 开源密码管理器,你可以完全从易于使用但难以猜测的密码中获益。


via: https://opensource.com/article/21/7/generate-passwords-pwgen

作者:Sumantro Mukherjee 选题:lujun9972 译者:geekpi 校对:turbokernel

本文由 LCTT 原创编译,Linux中国 荣誉推出

用 GPG 和 Python 的 getpass 模块给你的密码多一层安全保障。

 title=

密码对程序员来说尤其重要。你不应该在不加密的情况下存储它们,而且你也不应该在用户输入密码的时候显示出输入的内容。当我决定要提高我的笔记本电脑的安全性时,这对我来说变得特别重要。我对我的家目录进行了加密,但当我登录后,任何以纯文本形式存储在配置文件中的密码都有可能暴露在偷窥者面前。

具体来说,我使用一个名为 Mutt 的应用作为我的电子邮件客户端。它可以让我在我的 Linux 终端中阅读和撰写电子邮件,但通常它希望在其配置文件中有一个密码。我限制了我的 Mutt 配置文件的权限,以便只有我可以看到它,我是我的笔记本电脑的唯一用户,所以我并不真的担心经过认证的用户会无意中看到我的配置文件。相反,我想保护自己,无论是为了吹嘘还是为了版本控制,不至于心不在焉地把我的配置发布到网上,把我的密码暴露了。此外,虽然我不希望我的系统上有不受欢迎的客人,但我确实想确保入侵者不能通过对我的配置上运行 cat 就获得我的密码。

Python GnuPG

Python 模块 python-gnupggpg 应用的一个 Python 封装。该模块的名字是 python-gnupg,你不要把它和一个叫做 gnupg 的模块混淆。

GnuPG(GPG) 是 Linux 的默认加密系统,我从 2009 年左右开始使用它。我对它很熟悉,对它的安全性有很高的信任。

我决定将我的密码输入 Mutt 的最好方法是将我的密码存储在一个加密的 GPG 文件中,创建一个提示我的 GPG 密码来解锁这个加密文件,然后将密码交给 Mutt(实际上是交给 offlineimap 命令,我用它来同步我的笔记本和电子邮件服务器)。

用 Python 获取用户输入 是非常容易的。对 input 进行调用,无论用户输入什么,都会被存储为一个变量:

print("Enter password: ")
myinput = input()

print("You entered: ", myinput)

我的问题是,当我根据密码提示在终端上输入密码时,我所输入的所有内容对任何从我肩膀上看过去或滚动我的终端历史的人来说都是可见的:

$ ./test.py
Enter password: my-Complex-Passphrase

用 getpass 输入不可见密码

正如通常的情况一样,有一个 Python 模块已经解决了我的问题。这个模块是 getpass4,从用户的角度来看,它的行为和 input 完全一样,只是不显示用户输入的内容。

你可以用 pip 安装这两个模块:

$ python -m pip install --user python-gnupg getpass4

下面是我的 Python 脚本,用于创建密码提示:

#!/usr/bin/env python
# by Seth Kenlon
# GPLv3

# install deps:
# python3 -m pip install --user python-gnupg getpass4

import gnupg
import getpass
from pathlib import Path

def get_api_pass():
  homedir = str(Path.home())
  gpg = gnupg.GPG(gnupghome=os.path.join(homedir,".gnupg"), use_agent=True)
  passwd = getpass.getpass(prompt="Enter your GnuPG password: ", stream=None)

  with open(os.path.join(homedir,'.mutt','pass.gpg'), 'rb') as f:
    apipass = (gpg.decrypt_file(f, passphrase=passwd))

  f.close()

  return str(apipass)
 
if __name__ == "__main__":
  apipass = get_api_pass()
  print(apipass)

如果你想试试,把文件保存为 password_prompt.py。如果你使用 offlineimap 并想在你自己的密码输入中使用这个方案,那么把它保存到某个你可以在 .offlineimaprc 文件中指向 offlineimap 的位置(我使用 ~/.mutt/password_prompt.py)。

测试密码提示

要查看脚本的运行情况,你首先必须创建一个加密文件(我假设你已经设置了 GPG):

$ echo "hello world" &gt; pass
$ gpg --encrypt pass
$ mv pass.gpg ~/.mutt/pass.gpg
$ rm pass

现在运行 Python 脚本:

$ python ~/.mutt/password_prompt.py
Enter your GPG password:
hello world

当你输入时没有任何显示,但只要你正确输入 GPG 口令,你就会看到该测试信息。

将密码提示符与 offlineimap 整合起来

我需要将我的新提示与 offlineimap 命令结合起来。我为这个脚本选择了 Python,因为我知道 offlineimap 可以对 Python 程序进行调用。如果你是一个 offlineimap 用户,你会明白唯一需要的“整合”是在你的 .offlineimaprc 文件中改变两行。

首先,添加一行引用 Python 文件的内容:

pythonfile = ~/.mutt/password_prompt.py

然后将 .offlineimaprc中的 remotepasseval 行改为调用 password_prompt.py中的 get_api_pass() 函数:

remotepasseval = get_api_pass()

配置文件中不再有密码!

安全问题

在你的个人电脑上考虑安全问题有时会让人觉得很偏执。你的 SSH 配置是否真的需要限制为 600?隐藏在名为 .mutt 的无关紧要的电子邮件密码真的重要吗?也许不重要。

然而,知道我没有把敏感数据悄悄地藏在我的配置文件里,使我更容易把文件提交到公共 Git 仓库,把片段复制和粘贴到支持论坛,并以真实好用的配置文件的形式分享我的知识。仅就这一点而言,安全性的提高使我的生活更加轻松。而且有这么多好的 Python 模块可以提供帮助,这很容易实现。


via: https://opensource.com/article/21/7/invisible-passwords-python

作者:Seth Kenlon 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出