陈金莲
案例教学法在公钥密码体制难点教学中的应用——以ssh服务中双向认证为例
陈金莲
(黄冈职业技术学院 电子信息学院,湖北 黄冈 438002)
公钥密码体制是网络安全的基石,很多其它的安全技术也由该技术延展而出,技术原理及应用都比较复杂,该知识点的教授一直是教学中的一个难点。ssh服务是一种常见的网络服务,采用的就是公钥密码体制来进行身份认证和数据加密。本文以ssh服务的实现过程割裂公钥密码技术原理及应用来进行教学,让学习者在具体的案例实现过程中获得原理的感性认知,有助于学习者更好地理解该技术,也为后继的网络安全技术学习打下坚实基础。
公钥密码体制;ssh服务;教学难点;案例教学法
公钥密码体制来源于数学中单向函数模型,是网络安全技术的基础,很多网络安全技术由其派生而来,对该技术的理解程度直接影响后继的相关网络安全技术的学习。而该技术原理比较复杂,应用场合又众多,一直是网络安全技术课程的一个教学难点,直接讲述技术原理会让学习者无所适从。
案例教学法打破长久以来以教师为中心的教学模式,把重心放在以学生为主,激活学生创造力上,是解决工科课程难点问题的一种常用的方式[1]。本文以Linux系统中自带的ssh服务为依托,用相应命令生成公私密钥对,不对复杂的数学原理作过多的阐述,而重点从应用的角度,以ssh服务的实现过程为教学案例来讲解公私密钥对的应用,让学习者在具体操作过程中通过结果对公钥密码体制的应用原理有透彻理解[2-3]。
公钥密码体制的理论依据来源于数学中的一种特殊函数——单向陷门函数。即一个函数f,若对它的定义域中的任意x都易于计算f(x),而对f的值域中的几乎所有的y,即使当f为已知时要计算f-1(y)在计算上也是不可行的。若当给定某些辅助信息——陷门信息时,则易于计算f-1(y),就称单向函数f是一个陷门单向函数。公钥密码体制就是基于这一原理而设计的,将辅助信息(陷门信息)作为秘密密钥。
目前比较流行的公钥密码体制主要有两类:一类是基于大整数因子分解问题的,其中最典型的代表是RSA体制。另一类是基于离散对数问题的,如ElGamal公钥密码体制和影响比较大的椭圆曲线公钥密码体制。
公钥密码体制的基本应用是首先要利用某种算法产生一对密钥,一个公开,叫公钥,一个秘密,叫私钥。算法保证了用公钥加密的只能用对应私钥解密,用私钥加密的只能用对应的公钥解密,并且由公钥不能或者在一定的时效内难以推导出私钥,。
对于一般的学习者,不要求掌握算法本身,能理解该算法在网络安全中的应用原理即可,而ssh是体现该应用的一个常用而又比较简单网络协议。
ssh为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)制定,建立在应用层基础上的安全协议。ssh是较可靠,专为远程登录会话和其他网络服务提供安全性的协议,利用 ssh 协议可以有效防止远程管理过程中的信息泄露问题[4-5]。
在ssh应用中,采用公钥密码体制实现通信双方的安全控制。既要保证服务器端与客户端之间双方的身份认证,又要保证双方通信过程中数据的机密性,防止窃听风险。ssh服务是如何利用公钥密码体制来实现这些安全需求的,下面以实验的方法来进行剖析。
实验用到两台安装了Linux系统的机器,一台IP地址为192.168.0.10,将其作为服务器,另一台IP地址为192.168.0.20,将其作为客户机,并保证两台机器间网络的连通性。
图1 生成公私密钥对
在客户端和服务器上分别调用ssh-keygen命令生成各自的密钥对,该命令还可指定生成公私密钥对时采用的算法,如图1所示,其中-t参数后的rsa就是最常见的一种公钥算法。密钥对默认保存在当前登录帐号家目录下的.ssh目录中,如图2所示。其中id_rsa.pub是公钥,而id_rsa就是与公钥唯一对应的私钥。
图2 密钥对文件
当客户端第一次登录到某台服务器,ssh客户端会提示登录帐号的公钥指纹,如图3所示,让客户端决定根据该指纹是否信任服务器。如果信任则下载服务器的公钥存储于客户端的known_hosts文件中,如图4所示,下次登录直接通过该文件中相应服务器的相应公钥完成对服务器的认证。
图3 下载服务器的公钥
图4 客户机中存储的服务器公钥
在ssh应用中,是否信任服务器由登录用户根据公钥人工断定,而在实际网络安全工程中,公钥经常是存放在权威的第三方机构,并由该机构进行数字签名,相当于公安局盖章发放的身份证一样,该种公钥证明身份就具有了权威性[6-7]。
而服务器对客户端的认证就复杂得多,因为这个过程最具安全隐患,用图表述比较直观,如图5所示。
图5 公钥认证过程
首先,将所有有权访问服务器的客户端公钥传送至服务器的.ssh/authorized_keys文件中,如上图中的客户机A,生成密钥对后将公钥传送至服务器。接收时服务器决定是否接收,接收则代表同意该客户端访问服务器,此时存在.ssh/authorized _keys文件中的公钥叫做客户端的证书。
那么,当有客户机以A的身份访问服务器,服务器会临时生成一个随机字符串,并用A存储在.ssh/authorized_keys文件中的公钥加密该字符串,并将加密后的字符串传给宣称是A的机器,宣称是A的机器接收到加密字符串后,用保存的私钥解密该字符串,将解密的结果传送到服务器,服务器将其与发送出去的字符串进行对比,一致,则宣称是A的机器身份正确,允许其访问,否则,就是假冒客户端,服务器断开连接。
在上述过程中,利用公钥密码体制中的密钥对特性——用公钥加密的数据,只能用私钥解密,实现了对客户端身份的认证,从而保证服务器不被非法用户入侵。
同时,双方连接后的通信数据,也分别用对方的公钥加密,到达后再用自已的私钥解密。这样,即使双方的通信数据在公共链路上被截获,也是加密后的数据,从而保证了通信的安全[8-9]。
通过上面的实验过程,学习者对公钥密码体制的应用原理应该有一个比较明确的感性认识,这不仅有助于学习公钥密码体制,对后续其它的网络安全技术的学习也是一个极大的帮助。
对于ssh这种远程登录服务而言,认证只是在服务器与客户机两者之间,公钥只是单纯由使用者产生,另一个主观决定是否接受,这样的公钥似乎说服力不够。所以,在更多要求更高的安全工程中,公私密钥对仍由使用者产生,但需要把公钥传送到权威机构进行认证,并由权威机构进行数字签名,这样的公钥就是使用者的身份证明,叫数字证书,其中实施认证的权威机构叫CA。密钥的使用者和CA构成了安全技术中非常重要的一个体系——PKI,也叫公钥基础设施。理解ssh中两者间的公钥密码体制才能更好地学习PKI及其它相关的网络安全技术。
[1]许丹丹等.新工科背景下案例式教学法在环境工程类课程教学中的应用研究[J].科教文汇, 2021(4).
[2]顾晓洁.贯穿式案例教学法在建筑设计基础教学中的实践[J].山西建筑,2021(6).
[3]李蕾等.学生学习风格对案例教学法实施效果的影响[J].中华医学教育杂志,2019(4).
[4]余柏山.Linux系统管理与网络管理[M].北京:清华大学出版社,2010.
[5]Matt Welsh & Lar Kaufman.Linux.权威指南[Z].北京:中国电力出版社,2000.
[6]张恒杰.Red Hat Enterprise Linux服务器配置与管理[M].北京:清华大学出版社,2013.
[7]丁明一.Linux运维之道[M].北京:电子工业 出版社,2016.
[8]刘晓辉.网管天下[M].北京:电子工业出版社, 2011.
[9]林建龙.Xshell5配置ssh免密码登录[EB/OL]. https://blog.csdn.net/longgeaisisi/article/details/78680180,2017.
Application of Case Teaching Method in Difficult Teaching of Public Key Cryptosystem——Taking two-way authentication in SSH service as an example
Chen Jinlian
(Huanggang Polytechnic College, Huanggang 438002 Hubei)
The public key cryptosystem is the cornerstone of network security. Many other security technologies are also extended from this technology, whose technical principle and application are relatively complex. The teaching of this knowledge point has always been a difficulty in teaching. SSH service is a common network service, which uses public key cryptosystem for identity authentication and data encryption. In this paper, the implementation process of SSH service is divided into the principle and application of public key cryptography technology for teaching, so that learners can obtain the perceptual cognition of the principle in the implementation process of specific cases, which not only helps learners better understand the technology, but also lays a solid foundation for the subsequent study of network security technology.
Public key cryptosystem; Ssh service; Teaching difficulties; Case teaching method
G421
A
1672-1047(2021)05-0054-03
10.3969/j.issn.1672-1047.2021.05.14
2021-09-08
陈金莲,女,湖北红安人,副教授。研究方向:网络工程,网络安全。
[责任编辑:罗幼平]