与 Windows 相比的纯文本密码和应用程​​序身份验证

与 Windows 相比的纯文本密码和应用程​​序身份验证

我是一名 Windows 用户,试图了解 Linux,最近这意味着跟随 Raspberry Pi 项目的人们。

我注意到有些应用程序要求我在其配置文件中输入用户名和密码,以便它们以该用户的身份访问内容。 Samba/CiFS/NTFS-3g 和 Deluge 就是示例。

在 Windows 中,诸如服务(又名守护进程)之类的东西可以在当地的 系统帐户(不同的链接),或各种其他帐户。

将密码以纯文本形式放入文本文件中似乎很奇怪,而且本质上是不安全的。然而,我总是听说 Linux 比 Windows 更安全。

如何安全地将凭据传递给 Linux/Raspbian 中的随机应用程序?安全模型是否如此不同以至于可以通过其他方式缓解这种情况?如何跟踪(或更新)我在静态密码中放入的程序?

我正在寻找“钥匙圈”吗?描述的东西这里。

这个问题类似,但询问操作系统,我指的是应用程序。

答案1

事情是这样的。它基于应用程序的工作方式或开发方式。它通常停在那里。你不能把这些事情归咎于 Linux(或者在本例中是任何类似 UNIX 的操作系统)。您会发现一些应用程序表示密码可以是明文形式或以 sha256 等方式进行散列。这通常是出于兼容性原因,您可能会在稍后学习设置的其他内容中发现这一点。

您提出了 Samba,这是您认为可以拥有加密密码或可能拥有密码所在的“存储”的情况的一个很好的示例。桑巴的情况并非如此。 Samba 的情况是,当客户端与服务器或工作站共享进行通信时,它必须以明文形式发送密码。 CIFS 守护程序和 Samba 服务器都可以执行加密密码交换。如果连接是加密的,那么在这方面你就有点“没问题”。较新版本的 SMB 协议确实允许加密连接。

但是,也要记住,具有凭据的文件(如配置文件)的权限应大幅降低(例如 600)。启动时始终需要存在并放入 /etc/fstab 中的 samba 挂载可以指向“凭据”文件。它是明文的,但可以位于 /root 中,这意味着没有用户可以看到它。只有管​​理员可以,因为 /root 是 700。

但同样...这取决于您已安装或正在设置的应用程序。以 OpenLDAP 为例。配置目录管理器的密码时,必须使用 slappasswd。它会生成您在配置中使用的 {SSHA} 字符串。非特权用户无法查看配置文件。 /etc/openldap/slapd.d 为 750,文件在树中为 600。

密钥环与您所在的桌面环境非常相关。例如,GNOME 有 GNOME Keyring,KDE 有 KWallet。

“安全”归结为许多其他因素:文件系统权限、SELinux(如果适用)、防火墙功能、chroot 监禁(特定应用程序,bind 是一个示例)、应用程序安全性、tcp 包装器等等。

相关内容