欢迎来到天天文库
浏览记录
ID:41037449
大小:190.50 KB
页数:29页
时间:2019-08-14
《使用OpenSSL API 进行安全编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、使用OpenSSLAPI进行安全编程创建基本的安全连接和非安全连接KennethBallard(kenneth.ballard@ptk.org),自由程序员Kenneth是PeruStateCollege(位于Peru,Nebraska)计算机科学专业的大四学生。他还是学生报ThePeruStateTimes的职业作者。他拥有SouthwesternCommunityCollege(位于Creston,Iowa)计算机编程专业的理学副学士(AssociateofScience)学位,在这所大学里,他是一名半工半读的PC技
2、术员。他的研究领域包括Java、C++、COBOL、VisualBasic和网络。简介: 学习如何使用OpenSSL——用于安全通信的最著名的开放库——的API有些强人所难,因为其文档并不完全。您可以通过本文中的提示补充这方面的知识,并驾驭该API。在建立基本的连接之后,就可以查看如何使用OpenSSL的BIO库来建立安全连接和非安全连接。与此同时,您还会学到一些关于错误检测的知识。OpenSSLAPI的文档有些含糊不清。因为还没有多少关于OpenSSL使用的教程,所以对初学者来说,在应用程序中使用它可能会有一些困难。那
3、么怎样才能使用OpenSSL实现一个基本的安全连接呢?本教程将帮助您解决这个问题。学习如何实现OpenSSL的困难部分在于其文档的不完全。不完全的API文档通常会妨碍开发人员使用该API,而这通常意味着它注定要失败。但OpenSSL仍然很活跃,而且正逐渐变得强大。这是为什么?OpenSSL是用于安全通信的最著名的开放库。在google中搜索“SSLlibrary”得到的返回结果中,列表最上方就是OpenSSL。它诞生于1998年,源自EricYoung和TimHudson开发的SSLeay库。其他SSL工具包包括遵循GN
4、UGeneralPublicLicense发行的GNUTLS,以及MozillaNetworkSecurityServices(NSS)(请参阅本文后面的参考资料,以获得其他信息)。那么,是什么使得OpenSSL比GNUTLS、MozillaNSS或其他所有的库都优越呢?许可是一方面因素(请参阅参考资料)。此外,GNSTLS(迄今为止)只支持TLSv1.0和SSLv3.0协议,仅此而已。MozillaNSS的发行既遵循MozillaPublicLicense又遵循GNUGPL,它允许开发人员进行选择。不过,Mozilla
5、NSS比OpenSSL大,并且需要其他外部库来对库进行编译,而OpenSSL是完全自包含的。与OpenSSL相同,大部分NSSAPI也没有文档资料。MozillaNSS获得了PKCS#11支持,该支持可以用于诸如智能卡这样的加密标志。OpenSSL就不具备这一支持。先决条件要充分理解并利用本文,您应该:·精通C编程。·熟悉Internet通信和支持Internet的应用程序的编写。并不绝对要求您熟悉SSL,因为稍后将给出对SLL的简短说明;不过,如果您希望得到详细论述SSL的文章的链接,请参阅参考资料部分。拥有密码学方面
6、的知识固然好,但这并不是必需的。什么是SSL?SSL是一个缩写,代表的是SecureSocketsLayer。它是支持在Internet上进行安全通信的标准,并且将数据密码术集成到了协议之中。数据在离开您的计算机之前就已经被加密,然后只有到达它预定的目标后才被解密。证书和密码学算法支持了这一切的运转,使用OpenSSL,您将有机会切身体会它们。理论上,如果加密的数据在到达目标之前被截取或窃听,那些数据是不可能被破解的。不过,由于计算机的变化一年比一年快,而且密码翻译方法有了新的发展,因此,SSL中使用的加密协议被破解的可
7、能性也在增大。可以将SSL和安全连接用于Internet上任何类型的协议,不管是HTTP、POP3,还是FTP。还可以用SSL来保护Telnet会话。虽然可以用SSL保护任何连接,但是不必对每一类连接都使用SSL。如果连接传输敏感信息,则应使用SSL。什么是OpenSSL?OpenSSL不仅仅是SSL。它可以实现消息摘要、文件的加密和解密、数字证书、数字签名和随机数字。关于OpenSSL库的内容非常多,远不是一篇文章可以容纳的。OpenSSL不只是API,它还是一个命令行工具。命令行工具可以完成与API同样的工作,而且更
8、进一步,可以测试SSL服务器和客户机。它还让开发人员对OpenSSL的能力有一个认识。要获得关于如何使用OpenSSL命令行工具的资料,请参阅参考资料部分。您需要什么首先需要的是最新版本的OpenSSL。查阅参考资料部分,以确定从哪里可以获得最新的可以自己编译的源代码,或者最新版本的二进制文件(如果您不希望花费时间来
此文档下载收益归作者所有