赛题名称: Linux下基于签名技术的软件保护
一.分析题目
0x01 功能要求
①参赛作品应在统一操作系统UOS20或社区版deepin上编译生成,并可稳定运行
②对于任意二进制程序、应可以使用签名工具对程序进行签名,在操作系统中预制公钥、证书与验证程序以验证ELF可执行程序的完整性,若验证失败,则ELF可执行程序无法运行
③签名后的ELF可执行程序可正常运行在带有签名验证的Linux操作系统上,以及不带有签名验证机制的Linux操作系统上
④加密算法限定仅能使用国密算法或者RSA算法
0x02 实现条件
①开发环境为Linux开发环境
下载地址:http://cdimage.deepin.com/releases/15.11/deepin-15.11-amd64.iso
②开发语言限定为C语言
0x03 文档及其他要求
①完成设计文档,原理无问题,源代码和编译步骤;部署方法与测试方法;测试演示视频。
②完成基于公私玥的签名程序,能对任意ELF程序进行签名,并能通过readelf等程序读取添加的节,且不影响程序的正常运行。
③完成基于公私玥的验证程序,能透明地对任意ELF程序在运行前进行签名验证,签名验证通过的可以正常运行,未通过的不允许运行,对比未实施签名验证前的程序启动时间延迟不超过10%。
④不修改内核源码,开发外置内核模块挂钩Linux内核的进程启动流程作为验证程序。
二.文献调研
①先谷歌一下不懂的地方
deepin:deepin操作系统是由武汉深之度科技有限公司开发的Linux发行版。deepin操作系统是一个基于Debian的Linux操作系统,专注于使用者对日常办公、学习、生活和娱乐的操作体验的极致,适合笔记本、桌面计算机和一体机
二进制程序:https://blog.csdn.net/vqtyh/article/details/78165852
现有linux签名工具:https://blog.csdn.net/qtb999/article/details/94635925
https://download.csdn.net/download/lliuliu18810979455/9264661
linux中私钥和公钥:https://www.cnblogs.com/struggle-1216/p/11746780.html
linux验证程序参考代码:http://blog.chinaunix.net/uid-24611346-id-3338117.html
ELF可执行文件分析:https://blog.csdn.net/ailunlee/article/details/98636559
elf签名和可执行文件签名:https://blog.51cto.com/dog250/1274092
代码签名验证机制:https://wenku.baidu.com/view/63ddf73031126edb6f1a10d2.html
签名验证的加密算法:https://www.cnblogs.com/Caersi/p/6720789.html
linux内核源码、内核编译与配置、内核模块开发、内核启动流程:https://blog.csdn.net/weixin_34217711/article/details/85494731
②准备工作
文献调研:

工具:WPS
文档设计参考:https://blog.csdn.net/buchidanhuang/article/details/83543364
https://www.jianshu.com/p/91ea587a34dc
格式要求:

视频录制工具:http://dl-next.aunbox.cn/channel?channel=8f3b3b68
linux内核源码下载地址:https://blog.csdn.net/u011375704/article/details/81866427
网友评论