受 Linux 内核保护的安全变量

受 Linux 内核保护的安全变量

是否有可能将变量置于 Linux 内核的监管之下?

例如,只能递增的计数器、可以写入但只能在身份验证后读取的变量。

理想情况下,重新启动后具有持久性,并且在启动之间不可更改。

我可以想到一个内核模块,它允许通过 /proc 文件系统访问变量并将值存储在内核密钥环中。

但是我找不到解决方案。

用例例如是软件 eFusehttps://en.wikipedia.org/wiki/EFUSE以及安全地存储用户空间变量的能力。

答案1

您可以使用 Redis 来存储数据结构并在重新启动后获取它们,因为该服务在关闭时会保存缓存。

https://redis.io

Redis 不使用 proc,在用户域级别运行,并且默认情况下以 6379/TCP 与它通信。

还有一些语言的 API/扩展,包括 python 和 PHP。

您还可以进行一些诊断,并通过远程登录向其发送一些命令/ wget/ curl

它可以受密码保护。

在 Debian 上安装它

sudo apt-get install redis-server

Redis 是一个开源(BSD 许可)内存数据结构存储,用作数据库、缓存和消息代理。它支持数据结构,例如字符串、散列、列表、集合、具有范围查询的排序集、位图、超级日志和具有半径查询的地理空间索引。 Redis 具有内置复制、Lua 脚本、LRU 驱逐、事务和不同级别的磁盘持久性......

由此Redis 快速指南

Redis 是一个开源的、先进的键值存储,也是构建高性能、可扩展的 Web 应用程序的合适解决方案。

Redis 具有三个使其与众不同的主要特点。

Redis 将其数据库完全保存在内存中,仅使用磁盘进行持久化。

与许多键值数据存储相比,Redis 具有相对丰富的数据类型。

Redis 可以将数据复制到任意数量的从站。

答案2

考虑到您最初的问题和随后的评论,答案是否定的。

是否有可能将变量置于 Linux 内核的监管之下?

理想情况下,重新启动后具有持久性,并且在启动之间不可更改。

我可以想到一个内核模块,它允许通过 /proc 文件系统访问变量并将值存储在内核密钥环中。

如果您正在寻找一种安全存储数据的方法,那么您需要某种数据库以及确保所存储数据完整性的方法 - 这通常涉及加密技术。这本身就产生了几个需要仔细解决的问题,例如密钥管理、存储加密等。

内核提供的持久数据存储选项非常少。前面提到的钥匙圈可能会有所帮助,但其用途略有不同。我从未研究过此类子系统的安全性,因此我无法评论其对于您的用例的强度。

答案3

您可以使用 Redis 来存储数据结构并在重新启动后获取它们,因为系统在宕机时会保留存储。只需转到下面的链接即可对您有所帮助。

https://hackr.io/tutorials/learn-redis

相关内容