gpt4 book ai didi

security - 使用/dev/urandom 生成的 secret token 是保护守护进程的好方法吗?

转载 作者:行者123 更新时间:2023-12-03 22:28:48 24 4
gpt4 key购买 nike

我有一个生成子进程的守护进程。有时这些子进程需要与守护进程通信。我想确保只有这些子进程被授权与守护进程通信。

我想实现如下:

  • 在启动期间,守护进程通过读取/dev/urandom 生成一个随机的 128 字节的 secret token 。/dev/random 不好,因为它可能会在任意时间内阻塞读取器。
  • 守护进程监听 Unix 域套接字。
  • 守护进程将 secret token 和套接字的文件名放在环境变量中。它产生的每个子进程都可以使用文件名和 secret token 连接到守护进程。
  • 除非 secret token 正确,否则守护程序将拒绝连接。

  • 问题:
  • 我知道/dev/random 比/dev/urandom 具有更高的熵。但是/dev/urandom 就足够了吗?如果没有,我应该使用什么?
  • token 的大小是否足够大?
  • 我应该锁定存储 token 的内存吗?我认为没有必要,因为守护进程每次启动时都会生成不同的 token ,所以当攻击者设法窃取硬盘驱动器并从交换文件中提取 token 时,它应该已经没用了。
  • 我应该在关机期间取消存储 token 的内存吗?
  • 还有什么我应该做的吗?

  • 并且由于各种要求,我不能使用匿名管道来允许守护进程和子进程之间的通信。

    最佳答案

    最简单的方法是在服务器中为每个子进程简单地创建一个管道/套接字对。给子流程一端,保留另一端。进入该管道/套接字的任何内容都必须来自该子进程。

    另一种方法是向操作系统询问来自 Unix 套接字的凭据(pid、uid、gid)。在 Linux 上你会使用 getsockopt(sock, SOL_SOCKET, SO_PEERCRED, &cr, &cr_len) ( man 7 socket )。 Solaris 有 getpeerucred .不幸的是,这不是可移植的,但许多系统都具有类似的 Unix 套接字功能。虽然很复杂,D-Bus包含 code that does this on a number of different systems .

    关于security - 使用/dev/urandom 生成的 secret token 是保护守护进程的好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/925086/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com