gpt4 book ai didi

python - chroot 中的 openssl

转载 作者:可可西里 更新时间:2023-11-01 11:47:30 27 4
gpt4 key购买 nike

当我尝试从 chroot jail 内部建立 ssl 连接时出现以下错误:

twisted.internet.error.ConnectionLost: Connection to the other side was lost in a non-clean fashion.

我使用 openssl 0.9.6 和 pyopenssl 建立 ssl 连接,我在 Linux (centos 5.5) 上使用 python 2.4 的扭曲 python 库。

经过一些故障排除后,我发现 openssl 失败是因为它试图读取/dev/random 文件,但失败是因为 chroot 中没有/dev/random。我已经确认,如果我在 chroot 中创建一个/dev/random 文件,连接就会成功。

  • 我考虑过在执行 chroot 之前读取/dev/random 文件,但我当前的设置是在我的二进制文件启动之前调用 chroot,更改 chroot 发生的位置将是一个太大的改变在应用程序中,我不确定何时或如何完成。
  • 我想在我的 chroot jail 外运行一个程序,它只从/dev/random 读取并写入一个名为/jail/dev/random 的命名文件管道,可以从 chroot jail 内部访问,但我没有就像必须运行一个单独的进程才能访问随机源一样。此外,仅初始化 openssl 似乎过于复杂。

如果我无法从我的程序访问/dev/random,那么初始化 openssl 的正确方法是什么?

最佳答案

您可以为 openssl 伪造随机数,例如命令行 openssl:

[root@quilt /]# openssl s_client -h
usage: s_client args
...
-rand file:file:...
...

无论如何 openssl 需要一个随机源,如果没有随机数,它就不会安全,例如来自维基百科:

In order to generate the session keys used for the secure connection, the client encrypts a random number with the server's public key and sends the result to the server. Only the server should be able to decrypt it, with its private key.

没有随机源,SSL/TLS 很容易被黑客攻击。

如果担心chroot/dev/可以被删除,为什么不只创建chroot/dev/random或者chroot/dev/urandom而不是安装整个开发?

[root@quilt /]# mknod /dev/random c 1 8
[root@quilt /]# mknod /dev/urandom c 1 9

哦,顺便说一句,您还想复制系统/etc/resolv.conf 以及可能的其他主机、服务、以太等...

关于python - chroot 中的 openssl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8591394/

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