当前位置: 首页 > 党团工作 >

信息安全人才编程能力的培养

发布时间:2023-05-30 13:30:06 | 来源:网友投稿

文章编号:1672-5913(2008)12-0026-03

摘要:本文就信息安全学科实践环节中综合能力的培养进行了探索,首先分析了信息安全专业教学中实践能力培养的重要性与面临的问题,说明了编程能力提高在培养信息安全应用型人才的重要性,然后提出通过掌握网络安全开发包提高学生编程综合能力的培养途径。

关键词:人才培养;信息安全;编程实践;网络安全开发包

中图分类号:G642

文献标识码:B

1实践能力培养的重要性与面临的问题

信息安全是一个实践性很强的科学,目前信息安全专业的实践教学中,除一些重点院校外,多数院校普遍存在硬件设施缺乏的问题,相关信息安全课程以课堂授课为主,学生难以很好地将所学的理论知识用于解决实际问题。此外已建设有信息安全试验室的院校也面临如何更好地充分利用现有信息安全实验室的硬件、软件资源,如何更合理、有效地安排信息安全实验环节等问题。

总地说来,目前信息安全学科的实验环节也正经历从无到有再逐渐完善的过程,在已有的实践环节中,以分析、验证、配置型实验为多,一般可以划分为以下几类:

(1) 密码学实验,如DES和RSA密码算法、MD5和SHA散列算法实验等,该类实验通常主要以经典算法分析与代码实现为主。

(2) 网络攻防实验,如缓冲区溢出攻击与防范、网络监听技术、计算机和网络扫描技术、DOS攻击与防范,以及欺骗类攻击与防范实验等。

(3) 系统安全配置实验,如Windows和linux操作系统的安全配置、Web和FTP服务器安全。

(4) 计算机病毒实验,如COM病毒、PE病毒、宏病毒和脚本病毒等实验。

(5) 网络安全设备使用实验,包括路由器、防火墙、入侵检测系统(IDS)、VPN、网络安全隔离网闸等设备的配置与使用实验等。

(6) 除此以外,还有根据各校实际课程需要开设的如信息隐藏、数字水印、智能卡等实验。

通过以上实验环节,学生可以加深对相关信息安全基本概念、理论的理解,同时也可极大地提高动手能力,但是我们认为以上分析、验证、配置型实验无法完全满足对应用型人才的需求,还需要加大综合性实验环节。

要进行综合性实验,就需要加强学生编程能力的综合培养。以密码学为例,学生掌握了密码算法相关的基本概念、理论和算法原理之后,在将来的网络安全系统研发中会经常碰到诸如如何对实际系统的消息进行加密、解密,如何对消息实现数字签名,如何建立一个CA系统等问题。

为了解决以上这些实际问题,在实际的研发中一些专用的网络安全开发包发挥了重要的作用,这些网络安全开发包是指用于网络安全研究和开发的一些专业的开发函数库和算法库,它们的主要作用是实现网络安全研究和开发的基本功能,为研究者和开发者进一步研究和开发网络安全服务提供编程接口,使网络开发人员能够忽略一些密码算法的具体过程和网络底层的细节,从而更专注于程序本身具体功能的设计和开发。笔者认为掌握这些专用的网络安全开发包是提高学生编程综合能力的有力的培养途径,也为学生将来实际研发打下良好的基础。

2编程能力的培养途径

2.1前续课程的设置

要着手进行网络安全编程,学生应该对必要的信息安全前序课程进行过系统的学习,首先应对网络安全相关概

念和原理进行全面的了解,如密码学基本知识,具体包括对称密码算法、公钥密码算法、鉴别技术和数字签名的原理与应用,此外还应掌握黑客攻击与防御、网络安全协议、防火墙、入侵检测技术等网络安全技术。

2.2现有主要网络安全开发工具介绍

网络安全本身理论性和实践性都很强,掌握了网络安全相关基本概念、基本原理后可以运用到实际的工程中,在实际应用中,需要我们针对实际应用环境开发一些特定应用程序以提供相应的安全服务,而这时掌握一些实用的网络安全编程工具就显得犹为重要。

网络安全开发工具是指用于网络安全研究和开发的一些专业编程接口或开发包。它的主要作用是提供用于网络安全研究和开发的基本功能的实现,为研究者和开发者进一步研究和开发网络安全提供编程接口,为网络安全服务的实现提供方便。

某些网络安全开发工具基本上已经实现了某个特定网络安全服务的基本框架和基本功能,然后开发者可以在这个已经构造好的基本框架下进行进一步的开发,这样就为开发者节省了时间和精力,为进一步开发功能更强大的系统提供方便。

我们认为对一种或几种网络安全开发工具的学习是提高信息安全专业的学生编程能力的有利途径,老师在教学中可以有针对性的对当前有代表性的几种网络安全开发工具进行讲授,如表1所示,下面逐一说明:

(1) CryptoAPI:CryptoAPI是提供开发者在Windows下使用PKI的编程接口。CryptoAPI提供了很多函数,包括编码、解码、加密、解密、哈希、数字证书、证书管理和证书存储等功能。CryptoAPI在安全通信中应用十分广泛。CryptoAPI体系架构共由五大主要部分组成:基本加密函数(Base Cryptographic Functions)、证书编/解码函数(Certificate Encode/Decode Functions)、证书库管理函数(Certificate Store Functions),简单消息函数(Simplified Message Functions)、底层消息函数(Low-level Message Functions)。其架构如图1所示。(2) OpenSSL:OpenSSL是用于安全通信的著名的开放库,也是一个开放源代码的SSL协议的产品实现,它采用C语言作为开发语言。OpenSSL提供了建立在普通的通信层基础上的加密传输层,这些功能为许多网络应用和服务程序所广泛使用。OpenSSL主要由三部分组成:密码算法库,SSL协议库和OpenSSL应用程序。

① OpenSSL密码算法库——这是一个强大完整的密码算法库,是OpenSSL的基础部分,也是很值得一般密码安全技术人员研究的部分,它实现了目前大部分主流的密码算法和标准。主要包括公开密钥算法、对称加密算法、散列函数算法、X.509数字证书标准、PKCS12、PKCS7等标准。OpenSSL具备的应用程序,既能直接使用,也可以方便进行二次开发。Openssl密码算法库提供了8种对称加密算法、4种非对称的加密算法和5种信息摘要算法,虽然每种算法都定义了自己的接口函数,但是OpenSSL还使用EVP封装了以上算法,大大提高了代码的可重用性能。

② SSL协议库——包含了OpenSSL实现的SSL协议和TLS协议的大部分API使用说明。OpenSSL实现的SSL是开放源代码的,在教学中可以引导学生研究SSL协议实现的细节,有助于加深学生的理解。

③ OpenSSL应用程序——命令行工具,可用于加密、证书生成和签署等。OpenSSL应用程序提供包含了大部分OpenSSL应用程序的使用和参数说明,并有部分例子。Openssl的应用程序提供了相对全面的功能,这些应用程序可通过OpenSSL的指令进行调用实现。OpenSSl的指令主要包括密钥生成、证书管理、格式转换、数据加密和签名,SSL测试以及其他辅助配置功能。

以上这两种网络安全开发包主要用于提供加密算法、数字签名、散列函数、证书等,以保证数据的机密性、完整性、不可否认性以及身份鉴别的功能。

网络安全开发包的种类很多,其实现的功能也千差万别,以上两种网络安全开发工具是笔者在教学中所选择的教学内容,除了上面介绍的,在实际教学中还可以根据实际情况选择以下网络安全开发包进行教学:

(3) 网络数据包捕获开发包Libpcap和WinPCap

网络数据包捕获开发包Libpcap是一个专门用来捕获网络数据的编程接口,它提供了以下的各项功能:捕获原始数据包,包括在共享网络上各主机发送/接收的以及相互之间交换的数据包;在数据包发往应用程序之前,按照自定义的规则将某些特殊的数据包过滤掉;在网络上发送原始的数据包;收集网络通信过程中的统计信息。由于网络数据包捕获功能是很多安全系统都要实现的功能,所以Libpcap可应用到网络嗅探器、网络协议分析、网络入侵检测、安全扫描等网络安全系统中。

WinPCap (windows packet capture)是Libpcap在Windows平台下的版本。

(4) 网络入侵检测开发包Libnids

Libnids(Library Network Intrusion Detection System)是一个用于网络入侵检测系统设计的专业开发包,提供了一个网络入侵检测系统的基本框架和基本功能,可以快速实现网络入侵检测的基本功能。

(5)Crypto++

Crypto++是采用标准C++编写而成,也是一个自由软件,Crypto++实现了多种公开密钥算法、对称加密算法、数字签名算法、信息摘要算法以及其相关的其它算法等等。Crypto++于1995年6月发布了1.0版本,目前最新的版本是Crypto++™ Library 5.5,可以适应各种常用的操作系统和编译平台。

(6) Cryptix

如果从事Java开发程序,还可以选择Cryptix,它是Sun公司发布的采用Java语言的关于Java Cryptography Extension(JCE)的开放源码的API实现。

2.3教学步骤和重点

网络安全开发工具归根结底是一些函数库,它们采用了一些特定的数据结构,提供了编程接口。使用网络安全开发工具就是要掌握怎样使用这些数据结构和函数。总的说来,教学重点可以从以下几方面入手:

(1) 使学生掌握网络安全开发工具的数据结构

每种网络安全开发工具都使用了很多数据结构,这些数据结构在编程中都要使用到,它们是信息的载体。特别是一些典型的数据结构,他们基本上描述了开发工具的一些核心内容,掌握它们对于理解和掌握网络安全开发工具是非常重要的。

(2) 掌握网络安全开发工具的输出函数

网络安全开发工具的输出函数是一个提供给用户的编程接口,它是开发者直接打交道的对象,也是开发者最终要掌握的对象。使用网络安全开发工具归根结底是调用网络安全开发工具提供的输出函数,所以掌握输出函数是最重要的,也是了解网络安全开发工具的目的所在。要掌握网络开发工具的输出函数,必须从函数的返回值、函数的参数描述和函数的功能这三方面了解。

(3) 网络安全开发工具的主要功能的逐步实现

以CryptoAPI为例,在掌握了其体系结构、数据结构、输出函数后,教学中可逐步介绍其在密钥管理、数据编码、解码、数据的加密和解密、数字签名和验证、证书和证书库管理几个方面编程实现方法。

3结束语

实验教学是信息安全专业人才培养的一个重要方面,本文针对信息安全实验教学过程中编程能力的培养,提出利用网络安全开发包编程知识的系统讲授,提高学生在网络安全领域的研发能力,为培养应用型人才打下良好基础。本文的教学经验在本校两届学生中得到教学实践,得到良好的教学效果。

参考文献

[1] 沈昌祥. 加强信息安全学科、专业建设和人才培养[J]. 计算机教育,2007,(10).

[2] 张焕国,王丽娜等. 信息安全综合实验教程[M]. 武汉大学出版社,2005.

[3] 崔宝江. 信息安全实验指导[M]. 北京:国防工业出版社,2005.

[4] 高敏芬. 信息安全实验教程[M]. 天津:南开大学出版社,2007.

[5] 陈卓,阮鸥,沈剑. 网络安全编程与实践[M]. 北京:国防工业出版社,2008.

[6] 刘文涛. 网络安全开发包详解[M]. 北京:电子工业出版社,2005.

推荐访问:信息安全 培养 能力 编程 人才

本文标题:信息安全人才编程能力的培养
链接地址:http://www.ylwt22.com/dangtuangongzuo/2023/0530/258732.html

版权声明:
1.十号范文网的资料来自互联网以及用户的投稿,用于非商业性学习目的免费阅览。
2.《信息安全人才编程能力的培养》一文的著作权归原作者所有,仅供学习参考,转载或引用时请保留版权信息。
3.如果本网所转载内容不慎侵犯了您的权益,请联系我们,我们将会及时删除。

十号范文网 |
Copyright © 2018-2024 十号范文网 Inc. All Rights Reserved.十号范文网 版权所有
本站部分资源和信息来源于互联网,如有侵犯您的权益,请尽快联系我们进行处理,谢谢!备案号:粤ICP备18086540号