Author Archives: JeanLeo

OpenSSL与证书的那些事儿

    前面分析过加解密、证书与安全通信之间的关联关系,现在换个角度来剖析证书的制作与其本质。我们先构建一个CA环境,生成CA密钥、制作CA证书请求、自签名等,然后通过自建的CA来签发用户证书。

准备工作

通过命令查询openssl的环境信息,主要是确认openssl的配置路径信[……]

阅读全文

通信协议设计的那些事儿

【前注】未完待续,当此段文字不在时,表示已完成。

曾经主导过公司某产品自用的通信协议设计开发以及性能优化,一直没有时间总结,趁近期闲暇间隙将该事情了结一下。我会抛开协议的实现细节,主要从设计开发的角度去探讨通信协议的设计要点,谈谈经验。

确定一下需求范围,我们设计的是基于不可靠协议(意味着需要容忍丢包)去实现一[……]

阅读全文

漫谈从加解密到信任证书构成的安全通信

加密(Encryption就是通过某种方法将可以被理解的数据信息隐藏起来并生成不可被理解的数据信息。可理解的数据信息通常称之为明文(Plain Text,而隐藏了明文的不可被理解的数据信息被称之为密文(Cipher。至于解密(Decryption,则恰好相反,它是将密文转变为明文的过程,将被隐藏的信息从不可被理解的数据信息中还原[……]

阅读全文

【Linux内存源码分析】vmalloc不连续内存管理(1)

伙伴管理算法初衷是解决外部碎片问题,而slab算法则是用于解决内部碎片问题,但是内存使用的得不合理终究会产生碎片。碎片问题产生后,申请大块连续内存将可能持续失败,但是实际上内存的空闲空间却是足够的。这时候就引入了不连续页面管理算法,即我们常用的vmalloc申请分配的内存空间,它主要是用于将不连续的页面,通过内存映射到连续的虚拟地址空间中,提供给申请者[……]

阅读全文

【Linux内存源码分析】内存泄漏检测kmemleak分析

kmemleak的工作原理很简单,主要是对kmalloc()vmalloc()kmem_cache_alloc()等接口分配的内存地址空间进行跟踪,通过对其地址、空间大小、分配调用栈等信息添加到PRIO搜索树中进行管理。当有匹配的内存释放操作时,将会把跟踪的信息从kmemleak管理中移除。

通过内存扫描(包括对保存的寄存器值),如果[……]

阅读全文