软件保护

摘要:
1.软件数字签名可用于验证开发者身份的真实性,并保护代码的完整性。开发人员使用WoSign代码签名证书和代码签名向导对软件进行数字签名。(数字签名的流行解释)数字签名的功能是我们通常手写签名的扩展。“数字签名的技术基础是公钥密码学3。公钥密码学,其中用于加密转换的密钥与用于解密转换的密钥相同;

大赛题目的理解:

(猜测,为什么要出这样的一道题目)虽然Windows操作系统是目前世界上使用最广泛的操作系统,但是数据的安全存在风险。Linux操作系统的安全性能会比Windows操作系统的高很多,因为Linux操作系统的权限分配会更严格更细致,而且用户间的相互独立性能很好;Linux可以实现跨平台的硬件支持以及可靠的安全性,Linux系统是一个具有先天病毒免疫能力的操作系统,很少受到病毒攻击。还有windows的商业气息更为严重,闭源一定程度影响了windows的发展。而linux早已开源化。

目前,在相同平台上,优化过的Linux在性能方面确实远远超过Windows,所以国内的大部分企业服务器,使用的都是Linux平台。

出于对数据的安全性能的考虑,应该对linux系统的软件进行保护。

数字签名的使用原因:

1、软件数字签名可用于验证开发者身份真实性、保护代码的完整性。用户下载软件时,能通过数字签名验证软件来源可信,确认软件没有被非法篡改或植入病毒木马,保护用户不会被病毒、恶意代码和间谍软件所侵害,也保护了软件开发者的利益,让软件能在互联网上快速安全地发布。

2、数字证书(代码签名证书)是由权威CA机构(属沃通CA)认证开发者身份颁发,开发者使用WoSign代码签名证书和代码签名精灵对软件进行数字签名,可以防止软件被植入病毒木马

 

 

数字签名的概念:

数字签名在ISO74982标准中定义为:“附加在数据单元上的一些数据,或是对数据单元所作的密码变换,这种数据和变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(例如接收者)进行伪造”。

 

(通俗的解释数字签名)数字签名要实现的功能是我们平常的手写签名要实现功能的扩展。平常在书面文件上签名的主要作用有两点,一是因为对自己的签名本人难以否认,从而确定了文件已被自己签署这一事实;二是因为自己的签名不易被别人模仿,从而确定了文件是真的这一事实。采用数字签名,也能完成这些功能:

  (1)确认信息是由签名者发送的;

  (2)确认信息自签名后到收到为止,未被修改过;

  (3)签名者无法否认信息是由自己发送的。

数字签名的技术基础是公钥密码技术

 

 

 

 

 

 

 

 3 公钥密码技术

 

 

其中加密变换使用的密钥和解密变换使用的密钥是完全相同的,此密钥必须以某种安全的方式告诉解密方。大家熟悉的DES加密标准就是一种对称加密技术。

 4 数字签名的实现方法

  建立在公钥密码技术上的数字签名方法有很多,有RSA签名、DSA签名和椭圆曲线数字签名算法(ECDSA)等等。下面对RSA签名进行详细分析。

  RSA签名的整个过程可以用下图表示:

 

 

1)发送方采用某种摘要算法从报文中生成一个128位的散列值(称为报文摘要);

2)发送方用RSA算法和自己的私钥对这个散列值进行加密,产生一个摘要密文,这就是发送方的数字签名;

3)将这个加密后的数字签名作为报文的附件和报文一起发送给接收方:

4)接收方从接收到的原始报文中采用相同的摘要算法计算出128位的散列值;

5)报文的接收方用RSA算法和发送方的公钥对报文附加的数字签名进行解密;如果两个散列值相同,那么接收方就能确认报文是由发送方签名的。

 

 

最常用的摘要算法叫做MD5Message Digest 5)。MD5采用单向Hash函数将任意长度的字节串变换成一个128位的散列值,并且它是一个不可逆的字符串变换算法,换言之,即使看到MD5的算法描述和实现它的源代码,也无法将一个MD5的散列值变换回原始的字符串。这一个128位的散列值亦称为数字指纹,就像人的指纹一样,它就成为验证报文身份的指纹了。

 

 

 

 

(补充)

数字证书是一个经证书授权中心(CA)数字签名的包含公开密钥拥有者信息以及公开密钥的文件。最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。数字证书还有一个重要的特征就是只在特定的时间段内有效。。

数字证书颁发过程一般为:用户首先产生自己的密钥对,并将公共密钥及部分个人身份信息传送给认证中心。认证中心在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来,然后,认证中心将发给用户一个数字证书,该证书内包含用户的个人信息和他的公钥信息,同时还附有认证中心的签名信息。用户就可以使用自己的数字证书进行相关的各种活动。数字证书由独立的证书发行机构发布。数字证书各不相同,每种证书可提供不同级别的可信度。可以从证书发行机构获得您自己的数字证书。

总结:数字证书,确保了证书持有者的真实身份,也确保了公钥的真实性(通过机构的数字签名来保障)。

 

 

计划:

目前想使用RSA加密算法

 

实例:

编辑原文件src.txt

 

“echo "This is a digital signature example." > src.txt”

 

2、创建私钥

a、创建私钥:

(RSA加密算法产生的2048位私钥,并使用F4作为公钥的E参数,将私钥保存在文件key.pri)

“openssl genrsq -out key.pri -f4 2048”

 

b、查看私钥:

(PEM格式显示私钥的明文输出密钥参数)

“openssl rsa -inform PEM -in key.pri -text”

3、导出公钥

a、导出公钥

(rsa的私钥文件key.pri导出PEM格式的公钥,保存在文件key.pub)

“openssl rsa -inform PEM -outform PEM -in key.pri -out key.pub -pubout”

b、查看公钥

“openssl rsa -inform PEM -in key.pub -pubin -text”

 

4、私钥签名

(产生签名文件src.sig)

“openssl dgst -sha256 -out src.sig -sign key.pri -keyform PEM src.txt”

 

(查看签名文件)

“od -v -An -tx1 src.sig”

5、公钥校验

发送者将原文件src.txt、公钥文件key.pub和签名文件src.sig传输给接收者,接收者模拟校验操作。

 

“openssl dgst -sha256 -keyform PEM -verify key.pub -signature src.sig src.txt”

若显示:Verified OK  则表示用公钥校验签名文件是正常的,即接收到的原文件是无篡改和可信的。

 

若显示:Verification Failure  则表示接收到的文件有篡改或不可信的。

(这个是基础)

 

后续:

 

对加密过程进行一个可视化的展示,将加密过程解析出来

 

 

免责声明:内容来源于网络,仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇3月1日起执行!江苏居民阶梯电价有变化!百度快照投诉技巧案例分析百度快照就是这样刷出来的下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

文件加锁(基于FileChannel)

      JDK1.4引入了文件加锁机制。它允许我们同步访问某个作为共享资源的文件。不过,竞争同一文件的两个线程可能在不同的Java虚拟机上,或者一个是Java线程,另一个是操作系统中的其他的某个本地线程。文件加锁对其他的操作系统进程是可见的,因为Java的文件加锁直接映射到了本地操作系统的枷锁工具。       通过对FileChannel调用tryL...

sass中文注释的解决方法和一些简单用法

最近用sass来编写项目中的css,发现不能添加中文注释,报错如下 于是查阅了一下发现需要在scss文件顶部加上@charset "utf-8"即可解决。 在此顺便记录一些sass的常用技巧。 注释: /* 我是注释 */ ,会保留到编译后的文件。 // 我是注释 ,只保留在SASS源文件中,编译后被省略。  /*后面加一个感叹号,表示这是...

JavaWeb:实现文件上传与下载

JavaWeb:实现文件上传与下载 文件上传前端处理   本模块使用到的前端Ajax库为Axio,其地址为GitHub官网。 关于文件上传    上传文件就是把客户端的文件发送给服务器端。   在常见情况(不包含文件上传)下,我们POST请求Content-Type是application/x-www-form-urlencoded,这意味着消息内容会经过...

阿花宝宝 Java 笔记 之 初识java

1.记事本开发一个Java程序  编写源程序   源程序以.java为后缀名  编译     javac  编译后生成的文件以.class为后缀名  运行     java 运行编译后生成的.class文件2.java程序框架public class Hello{ public static void main(String[] args){  //注释  ...

Windows 环境下 wampserver 与 phpStudy 的环境配置

一. wamperserver     1.下载好安装到本地指定目录,官网下载地址  http://www.wampserver.com   2.根据自己实际的安装路径,D:pcwampserverwamp64inapacheapache2.4.23confextra,找到 apache  的配置文件 httpd-vhosts.conf        3....

文件权限及chmod使用方法

文件权限 在linux在,由于安全控制需要,对于不同的文件有不现的权限,限制不同用户的操作权限,总共有rwxXst这一些权限,我们经常使用到的是rwx,对于文件和文件夹而言,他们代表着不同的含义 对于文件 r:用户可以读取该文件,如使用命令cat w:用户可以编辑该文件,如使用命令sed -i,vi x:用户可以运行该文件,如直接./ge...