安全编程。
基于usbkey的软件授权编程实验。
实验内容】了解usbkey的使用和工作原理。
掌握通过usbkey控制软件启动和加密的简单程序。
实验原理】usbkey是一种插在计算机usb口上的软硬件结合的设备,usbkey内置单片机或智能卡芯片,具有一定的存储空间和运算处理能力,使得usbkey具有判断、分析的处理能力,增强了主动的反解密能力。usbkey的内置芯片里包含有专用的加密算法软件,usbkey厂家提供一套usbkey的读写接口(api)给开发商,开发商在开发中通过在软件执行过程中和usbkey交换数据来实现加解密。目前多在usbkey中存储用户的私钥以及数字证书,利用usb key内置的公钥算法实现对用户身份的认证,同时也可以通过usbkey防止未授权的用户对软件进行复制和破解。
运行环境:microsoft visual studio 2005
编程语言:c#
一、 加密狗。
本实验使用的加密狗,是一种类似于u盘的小硬件,是一种防盗版的方式。
加密狗就是一种插在计算机并行口上的软硬件结合的加密产品,为多数软件开发商所采用。加密狗一般都有几十或几百字节的非易失性存储空间可供读写,现在较新的加密狗内部还包含了单片机。软件开发者可以通过接口函数和加密狗进行数据交换(即对加密狗进行读写),来检查加密狗是否插在并行口上;或者直接用加密狗附带的工具加密自己exe文件(俗称"包壳")。
这样,软件开发者可以在软件中设置多处软件锁,利用加密狗做为钥匙来打开这些锁;如果没插加密狗或加密狗不对应,软件将不能正常执行。
加密狗厂家都会提供一套加密狗的读写接口(api)给开发商,厂家卖给开发商的狗都有各自的区别,某个开发商只能操作自己买的加密狗。加密狗通过在软件执行过程中和加密狗交换数据来实现加密的,加密狗内置单片机电路(也称cpu),使得加密狗具有判断、分析的处理能力,增强了主动的反解密能力。这种加密产品称它为“智能型”加密狗。
加密狗内置的单片机里包含有专用于加密的算法软件,该软件被写入单片机后,就不能再被读出。这样,就保证了加密狗硬件不能被复制。
二、 加密狗使用的简单实例。
此实例通过加密狗来控制软件的启动。
1) 运行页面。
如图5.1.11所示为主程序窗口的运行画面,要运行程序,必须先成功启动加密狗。
图5.1.11
2) 主要**:
注:把加密狗所提供的dll文件(本实验为加载到程序的\bin\debug\目录下。
3) 运行此实例的界面。
如果没有正确加载加密狗,程序会告诉我们没有发现加密狗,如图5.1.12所示。
图5.1.12
如果正确加载加密狗,程序会有相应提示,如图5.1.13所示。
图5.1.13
点击“确定”按钮后,进入工作页面,如图5.1.14所示。
图5.1.14
实验思考】根据自己的硬件不同,试编写程序通过加密狗来控制此程序的运行;
通过加密狗来控制所编程序的使用人数。
利用bouncycastle api加密编程实验。
实验内容】使用bouncycastleapi 接口进行编程。
实验原理】bouncycastle 是一种用于j**a平台的开放源码的轻量级密码包。它支持大量的密码算法,并提供jce 1.2.
1的实现。因为bouncy castle被设计成轻量级的,所以从j2se 1.4 到j2me(包括 midp)平台,它都可以运行,是在midp上运行的唯一完整的密码包。
后来也提供c#版本的api。
bouncy castle api功能很强大,对于初学者来说,辨认类之间的关系以及方法参数和返回值的正确类型有一定难度。通常,开发人员必须浏览源**和测试用例来研究bouncy castle api的主要功能。
可以从 **上可以**最新的c#版本的dll类库和源**。
运行环境:microsoft visual studio 2005
编程语言:c#
一、 利用bouncy castle api编码实现对数据的加解密。
将其dll类库,添加到自己的项目中,示例的源**展示如下:
1) 本例的主页面如图5.1.21所示。
图5.1.21
2) 其页面的主要**为:
3) desencrypto的具体**。
二、 程序运行效果。
1) “明文。txt”文件的内容为:12345678,如图5.1.22所示;“密文。txt”和“解密后的文件。txt“均为空。
图5.1.22
2) 通过程序进行加密,如图5.1.23所示。
图5.1.23
3) 加密后“密文。txt”内容如图5.1.24所示。
图5.1.24
4) 通过程序对“密文。txt“进行解密,如图5.1.25所示。
图5.1.25
5) 解密后“解密后的文件。txt“文件的内容如图5.1.26所示。
图5.1.26
6) 观察比较其加密前后相关文件的内容。
实验思考】了解bouncy castle api接口的使用,试用其接口实现相关的加密算法,如ase,3des等加密算法;
了解并学习bouncy castle api接口中的其它模块的功能和应用。
利用crypte api加密编程实验。
实验内容】使用cryptoapi接口进行编程。
实验原理】微软公司在nt4.0以上版本中提供了一套完整的cryptoapi的函数,其功能是为应用程序开发者提供在win32环境下使用加密、验证等安全服务时的标准加密接口。用户在对软件进行保护的时候可以直接利用cryptoapi来完成这些工作,比如计算注册码,检查程序的完整性等。
用这些的api进行加密解密的时候,只需要知道如何去应用它们,而不必知道它们的底层实现。
cryptoapi处于应用程序和csp(cryptographic service provider)之间,如图5.1.31所示:
图5.1.31
cryptoapi共有五部分组成:简单消息函数(simplified message functions)、低层消息函数(low-level message functions)、基本加密函数(base cryptographic functions)、证书编解码函数(certificate encode/decode functions)和证书库管理函数(certificate store functions)。其中前三者可用于对敏感信息进行加密或签名处理,可保证网络传输信息的私有性;后两者通过对证书的使用,可保证网络信息交流中的认证性。
信息安全工程实践
信息安全工程实践二 实践报告。东北大学软件学院。一 程序实践概述。1 题目名称 linux操作系统及其相关命令,linux编程基础。linux程序设计基础。2 时间进度 12学时。3 开发环境 ubantu 二 问题分析。1 功能说明 熟练掌握如下linux命令。系统信息命令 who,w,du,du...
信息安全工程实践
信息安全工程实践二 实践报告。东北大学软件学院。一 程序实践概述。1 题目名称 linux操作系统及其相关命令,linux编程基础。linux程序设计基础。2 时间进度 12学时。3 开发环境 ubantu 二 问题分析。1 功能说明 熟练掌握如下linux命令。系统信息命令 who,w,du,du...
信息安全工程方案
课程名称。小组名称。学生姓名。学生学号。所在系。所学专业。年月日。第1章信息安全管理概述。对信息安全与管理的基本概念予以阐述,让我们知道信息安全管理的目的以及要在实施时所遵循的规范与原则。第2章信息安全管理标准。这章主要对国外信息安全管理标准与我国信息安全管理标准的阐述和具体介绍,国外的主要介绍了 ...