每种操作系统的发展,都缺少不了安全的相伴。linux安全主要包括了系统安全、数据/资源安全、通信安
全和应用安全。
linux里面常用到的安全技术包括PAM(Pluggable Authentication Modules)机制、Linux能力机制、入
侵检测机制、加密文件机制、安全审计、基于ACL的自主访问控制、强制访问控制、防火墙、杀毒软件、
网络安全、DRM(Digital Rigths Management,数字版权管理)
这里主要分析内核里面提供的加解密接口。内核版本3.5.4
linux里面具体算法的实现在crypt文件下,其中有个tcrypt.c文件,该文件是一个测试文件。可以看下如
何使用内核接口进行加解密。
在include/linux/crypto.h里面 给出了内核加密应用程序的接口,主要有结构体、操作集以及函数的定
义。
而 目录include/crypto给出了各个算法的具体头文件定义。
内核中一个算法模板结构体crypto_template,该结构体主要用来对内核中的算法进行管理操作。在内核中
构造某个算法时会触发算法模板分配算法实例。
该结构给出了算法模板的组织形式以及触发后对应的算法实例的组织模式。其中钩子函数alloc就在在构
造函数时算法模板返回一个crypto_instance实例。free用来释放对象以及create用来创建算法模板。
上面提到了crypto_instance,该结构体就属于算法实例。
结构体crypto_instance中字段alg,该字段是算法库中提供的统一的一个算法接口,不同算法库模块化之
后,算法操作函数指针都通过填充crypto_alg,存入到crypto_alg_list全局链表中。在查找某个算法实例