小编Har*_*ish的帖子

有没有办法刷新SSL写缓冲区

我已经使用OpenSSL API编写了一个SSL客户端来与一个SSL服务器进行交互.在OpenSSL站点中,我了解到写入缓冲区需要在写入一些数据后刷新.我在我的客户端程序中使用SSL_Write和SSL_Read.正如OpenSSL网站建议我尝试使用BIO_flush(BIO*)刷新数据,我在这里崩溃了.

我正在使用从这个站点获得的SSL库

在这里我不清楚BIO_flush是否闪烁读缓冲区或写缓冲区.. :-(所以我只是想知道有没有其他方法来刷新SSL写缓冲区......?

这是我的客户端程序的详细信息.

  1. 使用SSL_new创建SSL对象(mSsl)
  2. 创建TCP套接字并与服务器建立连接
  3. 使用BIO_new_socket创建BIO对象(mBio)(socket_id,BIO_NOCLOSE)
  4. 使用SSL_set_bio(mSsl,mBio,mBio)将BIO对象设置为SSL对象;
  5. 使用SSL_set_fd(mSsl,socket_id)将套接字设置为SSL对象;
  6. 使用SSL_Connect(mSsl)与服务器建立SSL连接;

完成上述步骤后,我将启动两个单独的线程进行写入和读取.写线程使用SSL_write将数据写入服务器,而读线程使用SSL_Read从服务器读取数据.

在使用SSL_Write写入每个数据包后写入线程我正在调用BIO_flush(mBio).

在整个程序中,我只在这个地方直接使用mBio对象进行生物缓冲区冲洗.

当我开始发送一些数据包时,程序在BIO_flush中崩溃......根据转储说它在BIO_ctrl函数中.我得到的不仅仅是那个.

有没有人使用我上面提供的链接库并面临同样的问题..?如果是,请告诉我您是否知道解决方案.

有没有任何线程同步规则可以使用BIO_flush()......?我的意思是调用BIO_flush SSL_Read不应该同时发生......?

openssl

6
推荐指数
2
解决办法
6186
查看次数

带有unix域套接字的IPC是否安全?

我计划在同一主机上运行的两个进程之间使用 unix 域套接字进行 IPC(进程间通信)。但是在选择 unix 套接字之前,我还必须研究数据安全性。

我只是想知道如果我使用 unix 套接字而不加密我在该连接上发送的数据,是否有任何方法可以进行“中间人”攻击?

ipc unix-socket

5
推荐指数
1
解决办法
2447
查看次数

标签 统计

ipc ×1

openssl ×1

unix-socket ×1