- 博客(9)
- 收藏
- 关注
原创 openssl 1.0.2版本 协议处理初始化接口
1.0.2版本的openssl接口很多都是通过回调函数处理,例如 SSL_read 内部 s->method->ssl_read,其ssl_read回调定义在哪里?比如客户端程序中通过调用 meth = SSLv23_client_method( ); 进行关联其在ssl/s23_clnt.c中定义IMPLEMENT_ssl23_meth_func(SSLv23_clien...
2019-06-04 22:19:18
522
原创 openssl漏洞修复查找
嵌入式产品如果针对Openssl进行二次开发,如果想要升级还是比较困难的,但漏洞随时会有,用户使用检测设备对产品测试出问题,就需要及时的打补丁,一般会有CVE相关的漏洞信息,用CVE及其编号搜索就会有相关漏洞的说明,具体到代码的修复,一般有以下两种方法查找。官网查找但补丁代码需要在openssl网站来查找,一般位置如下https://www.openssl.org/news/vul...
2019-06-03 22:25:59
390
原创 openresty中upstream侧ssl session reuse功能无法生效分析
最近做项目,以openresty为基础,在upstream侧通过nginx的指令开启SSL连接复用,但实际是不生效的,通过使用原生的程序nginx、openresty进行复现,明白了问题所在,也更加理解openresty与nginx的共性和特性。自己在服务器中利用未经修改的nginx、openresty测试,编译的时候开启debug,能够在debug中看到upstream侧save、set se...
2019-04-03 00:30:52
805
原创 DNS BIND配置 : 构建最简配置
研究BIND大概半年了,对于这款老牌的开源软件上手运行还是有一定难度的,这里整理下最简单的运行配置。编译与安装我一般喜欢在源码中建立一个output目录,在install的时候都安装到这里。./configure --prefix=/***/bind-9.12.3-P1/output' '--without-openssl'makemake installrndc的生成BIND启动...
2019-01-27 20:46:08
219
原创 DNS协议:512字节的限制处理
DNS的UDP请求,如果回复的数据长度超过512字节,服务端与客户端会有怎样的处理?通过搭建服务器进行测试。512字节是哪部分先确定下512字节指的是哪部分,阅读RFC1035,有这段描述Messages carried by UDP are restricted to 512 bytes (not counting the IP or UDP headers). Longer messag...
2019-01-27 19:34:03
2917
原创 线程锁与条件变量的整理1:引入问题
BIND的代码,有关锁的用法让我纠结了一个下午,困惑在于,一个线程已经LOCK了,为何其他的线程还是能够继续LOCK?其中原因是在一个线程LOCK后,执行了WAIT处理,其内部是pthread_cond_wait的实现,通过man手册,有这段话非常重要These functions atomically release mutex and cause the calling thread to...
2019-01-24 22:37:16
117
原创 DNS BIND : 编译配置整理 - 如何添加编译选项以及-Werror的处理
对BIND进行configure配置,加入-Wall与-Werror编译选项,通过–help查询如何添加Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L<lib ...
2019-01-19 17:53:21
1461
原创 OPENSSL:内存泄漏检测机制
工作的某个项目通过对openssl改造,在测试过程中发现内存泄漏,很难定位,想找些开源内存泄漏工具进行检查,不是很方便,通过搜索openssl的文章,原来自身就有其工具可以参考,这里记录下如何使用,以及其运作的机制,在其他项目是个调试的手段。利用openssl的库进行程序编写,只使用其内存分配接口。#include <openssl/crypto.h>#in
2018-12-08 17:05:07
2035
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人