### linux 软件签名保护
- 程序说明
对于Linux下给定的ELF可执行程序开发签名工具对程序的代码段(Load Segment)首先进行散列后使用RSA2048算法签名。签名数据作为单独的节(Section)附加到原ELF可执行程序的尾部。同时,开发验证软件并加入操作系统,在运行任何ELF可执行程序前对ELF文件进行验证,若ELF可执行程序没有被签名或者签名验证失败则应停止运行本程序,若签名验证成功则可以正常运行。
- 目录结构:
```
digsign
├── include
│ ├── crt -> 用户态数字证书解析
│ ├── crypto -> openssl crypto 标准库
│ ├── digsig -> 签名程序
│ ├── elfrw -> 对elfrw进行解析与修改
│ ├── internal -> openssl internal 标准库
│ ├── openssl -> openssl 标准库
│ └── rsasig -> rsa相关
├── lib -> 静态库
└── src -> 源码路径
├── crt
├── digsig
├── elfrw
├── hook -> 验证程序源码
│ ├── include
│ │ ├── kcrt -> 内核态数字证书解析
│ │ ├── kelf -> 内核态elf文件解析
│ │ ├── kftrace -> 挂钩系统sys_execve系统调用
│ │ ├── ksig -> 内核态rsa签名验证
│ │ └── kstd -> 使用内核态封装了用户层系统api,为上述模块做迁移支持。
│ └── src 签名程序源码
│ ├── kcrt
│ ├── kelf
│ ├── kftrace
│ ├── ksig
│ └── kstd
└── rsasig
```
- 各模块说明
![程序架构](./img_folder/程序架构.png)
签名程序各模块说明如下:
- elfrw:提供对elf文件的文件头、节头表、程序头等格式的读取与修改。
- sha256:用于生成256位hash摘要,共32字节。
- crt模块:用于解析crt后缀格式的数字证书,提取其公钥、密文、摘要、签发日期等。
- openssl:提供RSA加密功能。
验证程序各模块说明如下:
- ftrace模块:用于在功能级别上跟踪内核的框架,提供了hook系统调用的功能。
- rdx_crypto:内核级别支持的crypto密码学框架,提供了RSA解密功能。
- 双hash校验模块:用于优化签名验证的流程,每成功完成一次签名验证时,都将计算消息摘要的两个hash值hashMap<bytes,int>,当再次验证该摘要时,可通过遍历hash表在O(N)的时间复杂度内通过验证,其中,N为系统开机以来第一次被启动的可执行文件数量。
- 签名程序编译方法:
```shell
cd ./src/digsig
make
```
之后可在.digsign/src/dingsig目录下看到digsig程序。
- 验证程序编译方法:
```shell
cd ./src/hook
make
```
之后可在./digsig/src/hook目录下查看到hook.ko驱动。使用下述命令挂载
```shell
sudo insmode hook.ko
```
### 程序使用方法
- 使用rsa密钥进行公私钥加密
使用 -in参数输入可执行文件的路径即可。
```shell
./digsig -in execfilepath
```
execfilepath:可执行文件路径
- 使用数字证书模式进行加密(目前数字证书签名模式仍在测试中,请勿尝试数字证书模式签名)
```
./digsig -in execfilepath -crt crtpath -inkey privkeypath
```
execfilepath:可执行文件路径
crtpath:数字证书路径(不包含证书链,crt后缀)
privkeypath:与证书相匹配的私钥文件路径(pem格式)
### 程序流程图
- 签名程序流程图
![签名程序流程图](./img_folder/签名程序流程图.png)
- 验证程序流程图
![验证程序流程图](./img_folder/验证程序流程图.png)
没有合适的资源?快使用搜索试试~ 我知道了~
linux项目工程资料-Linux下基于签名技术的软件保护.zip
共317个文件
h:185个
c:45个
o:36个
需积分: 5 0 下载量 124 浏览量
2024-02-29
10:31:17
上传
评论
收藏 6.44MB ZIP 举报
温馨提示
Linux项目是一个开放源代码的操作系统项目,由林纳斯·托瓦兹(Linus Torvalds)于1991年首次发布。该项目以Linux内核为核心,围绕其构建了一个完整的操作系统,包括各种系统工具、库、应用程序和硬件支持。 以下是Linux项目的一些主要特点和资料介绍: 开放源代码:Linux项目的所有源代码都是公开的,并允许任何人自由使用和修改。这为开发者提供了极大的灵活性和创新能力,同时也促进了全球范围内的协作和发展。 跨平台性:Linux操作系统可以在多种硬件架构和平台上运行,包括x86、ARM、MIPS等。这使得Linux成为了一种非常灵活的操作系统,适用于各种设备和应用场景。 可定制性:由于Linux的源代码是公开的,用户可以根据自己的需求进行定制和修改。这使得Linux成为了一种非常适合企业级应用的操作系统,可以根据企业的特定需求进行定制和优化。 安全性:Linux操作系统在安全性方面表现出色,具有强大的访问控制和安全机制。这使得Linux成为了一种非常适合用于服务器和安全敏感的应用场景的操作系统。
资源推荐
资源详情
资源评论
收起资源包目录
linux项目工程资料-Linux下基于签名技术的软件保护.zip (317个子文件)
libcrypto.a 5.95MB
libssl.a 809KB
libelfrw.a 191KB
librsasig.a 109KB
libcrt.a 62KB
ftrace_hook.c.backup 8KB
x509_crt.c 33KB
x509_crt.c 32KB
digsig.c 17KB
sigver.c 12KB
x509.c 12KB
x509.c 12KB
rdx_crypto.c 12KB
asn1parse.c 9KB
asn1parse.c 9KB
ftrace_hook.c 8KB
sha256.c 7KB
base64.c 7KB
base64.c 7KB
md5.c 7KB
md5.c 7KB
rsa_genkey.c 5KB
elfrw_ehdr.c 5KB
elfrw_ehdr.c 5KB
elfrw.c 4KB
elfrw.c 4KB
elfrw_rel.c 4KB
elfrw_rel.c 4KB
elfrw_shdr.c 4KB
elfrw_sym.c 4KB
elfrw_shdr.c 4KB
elfrw_sym.c 4KB
sha256.c 4KB
elfrw_phdr.c 3KB
elfrw_phdr.c 3KB
pem.c 3KB
elfrw_ver.c 3KB
base64.c 3KB
pem.c 3KB
elfrw_ver.c 3KB
kstdio.c 2KB
modelf.c 2KB
elfrw_dyn.c 2KB
elfrw_dyn.c 2KB
rsasig.c 2KB
hexdump.c 1KB
hexdump.c 1KB
crtver.c 1KB
hexdump.c 1KB
hook.mod.c 596B
test.c 104B
.ftrace_hook.o.cmd 40KB
.kstdio.o.cmd 38KB
.rdx_crypto.o.cmd 36KB
.sigver.o.cmd 32KB
.elfrw_ehdr.o.cmd 29KB
.hook.mod.o.cmd 29KB
.sha256.o.cmd 29KB
.x509_crt.o.cmd 26KB
.x509.o.cmd 26KB
.pem.o.cmd 26KB
.asn1parse.o.cmd 26KB
.elfrw_shdr.o.cmd 22KB
.elfrw.o.cmd 22KB
.crtver.o.cmd 8KB
.hexdump.o.cmd 8KB
.base64.o.cmd 5KB
.hook.o.cmd 822B
.hook.ko.cmd 249B
server.crt 1KB
ca.crt 1KB
digsig 3.16MB
.gitignore 32B
safestack.h 198KB
obj_mac.h 172KB
ssl.h 146KB
evp.h 72KB
asn1.h 62KB
ec.h 55KB
x509.h 52KB
objects.h 46KB
engine.h 44KB
bn.h 43KB
x509v3.h 39KB
tls1.h 38KB
bio.h 38KB
ts.h 34KB
asn1t.h 34KB
ssl3.h 33KB
rsa.h 29KB
x509_vfy.h 29KB
cms.h 28KB
evp.h 28KB
symhacks.h 27KB
packet.h 27KB
crypto.h 27KB
ocsp.h 27KB
pem.h 25KB
asn1_mac.h 24KB
aes_platform.h 22KB
共 317 条
- 1
- 2
- 3
- 4
资源评论
妄北y
- 粉丝: 1w+
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功