陳金蓮
案例教學(xué)法在公鑰密碼體制難點(diǎn)教學(xué)中的應(yīng)用——以ssh服務(wù)中雙向認(rèn)證為例
陳金蓮
(黃岡職業(yè)技術(shù)學(xué)院 電子信息學(xué)院,湖北 黃岡 438002)
公鑰密碼體制是網(wǎng)絡(luò)安全的基石,很多其它的安全技術(shù)也由該技術(shù)延展而出,技術(shù)原理及應(yīng)用都比較復(fù)雜,該知識(shí)點(diǎn)的教授一直是教學(xué)中的一個(gè)難點(diǎn)。ssh服務(wù)是一種常見(jiàn)的網(wǎng)絡(luò)服務(wù),采用的就是公鑰密碼體制來(lái)進(jìn)行身份認(rèn)證和數(shù)據(jù)加密。本文以ssh服務(wù)的實(shí)現(xiàn)過(guò)程割裂公鑰密碼技術(shù)原理及應(yīng)用來(lái)進(jìn)行教學(xué),讓學(xué)習(xí)者在具體的案例實(shí)現(xiàn)過(guò)程中獲得原理的感性認(rèn)知,有助于學(xué)習(xí)者更好地理解該技術(shù),也為后繼的網(wǎng)絡(luò)安全技術(shù)學(xué)習(xí)打下堅(jiān)實(shí)基礎(chǔ)。
公鑰密碼體制;ssh服務(wù);教學(xué)難點(diǎn);案例教學(xué)法
公鑰密碼體制來(lái)源于數(shù)學(xué)中單向函數(shù)模型,是網(wǎng)絡(luò)安全技術(shù)的基礎(chǔ),很多網(wǎng)絡(luò)安全技術(shù)由其派生而來(lái),對(duì)該技術(shù)的理解程度直接影響后繼的相關(guān)網(wǎng)絡(luò)安全技術(shù)的學(xué)習(xí)。而該技術(shù)原理比較復(fù)雜,應(yīng)用場(chǎng)合又眾多,一直是網(wǎng)絡(luò)安全技術(shù)課程的一個(gè)教學(xué)難點(diǎn),直接講述技術(shù)原理會(huì)讓學(xué)習(xí)者無(wú)所適從。
案例教學(xué)法打破長(zhǎng)久以來(lái)以教師為中心的教學(xué)模式,把重心放在以學(xué)生為主,激活學(xué)生創(chuàng)造力上,是解決工科課程難點(diǎn)問(wèn)題的一種常用的方式[1]。本文以Linux系統(tǒng)中自帶的ssh服務(wù)為依托,用相應(yīng)命令生成公私密鑰對(duì),不對(duì)復(fù)雜的數(shù)學(xué)原理作過(guò)多的闡述,而重點(diǎn)從應(yīng)用的角度,以ssh服務(wù)的實(shí)現(xiàn)過(guò)程為教學(xué)案例來(lái)講解公私密鑰對(duì)的應(yīng)用,讓學(xué)習(xí)者在具體操作過(guò)程中通過(guò)結(jié)果對(duì)公鑰密碼體制的應(yīng)用原理有透徹理解[2-3]。
公鑰密碼體制的理論依據(jù)來(lái)源于數(shù)學(xué)中的一種特殊函數(shù)——單向陷門(mén)函數(shù)。即一個(gè)函數(shù)f,若對(duì)它的定義域中的任意x都易于計(jì)算f(x),而對(duì)f的值域中的幾乎所有的y,即使當(dāng)f為已知時(shí)要計(jì)算f-1(y)在計(jì)算上也是不可行的。若當(dāng)給定某些輔助信息——陷門(mén)信息時(shí),則易于計(jì)算f-1(y),就稱(chēng)單向函數(shù)f是一個(gè)陷門(mén)單向函數(shù)。公鑰密碼體制就是基于這一原理而設(shè)計(jì)的,將輔助信息(陷門(mén)信息)作為秘密密鑰。
目前比較流行的公鑰密碼體制主要有兩類(lèi):一類(lèi)是基于大整數(shù)因子分解問(wèn)題的,其中最典型的代表是RSA體制。另一類(lèi)是基于離散對(duì)數(shù)問(wèn)題的,如ElGamal公鑰密碼體制和影響比較大的橢圓曲線公鑰密碼體制。
公鑰密碼體制的基本應(yīng)用是首先要利用某種算法產(chǎn)生一對(duì)密鑰,一個(gè)公開(kāi),叫公鑰,一個(gè)秘密,叫私鑰。算法保證了用公鑰加密的只能用對(duì)應(yīng)私鑰解密,用私鑰加密的只能用對(duì)應(yīng)的公鑰解密,并且由公鑰不能或者在一定的時(shí)效內(nèi)難以推導(dǎo)出私鑰,。
對(duì)于一般的學(xué)習(xí)者,不要求掌握算法本身,能理解該算法在網(wǎng)絡(luò)安全中的應(yīng)用原理即可,而ssh是體現(xiàn)該應(yīng)用的一個(gè)常用而又比較簡(jiǎn)單網(wǎng)絡(luò)協(xié)議。
ssh為 Secure Shell 的縮寫(xiě),由 IETF 的網(wǎng)絡(luò)小組(Network Working Group)制定,建立在應(yīng)用層基礎(chǔ)上的安全協(xié)議。ssh是較可靠,專(zhuān)為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)絡(luò)服務(wù)提供安全性的協(xié)議,利用 ssh 協(xié)議可以有效防止遠(yuǎn)程管理過(guò)程中的信息泄露問(wèn)題[4-5]。
在ssh應(yīng)用中,采用公鑰密碼體制實(shí)現(xiàn)通信雙方的安全控制。既要保證服務(wù)器端與客戶端之間雙方的身份認(rèn)證,又要保證雙方通信過(guò)程中數(shù)據(jù)的機(jī)密性,防止竊聽(tīng)風(fēng)險(xiǎn)。ssh服務(wù)是如何利用公鑰密碼體制來(lái)實(shí)現(xiàn)這些安全需求的,下面以實(shí)驗(yàn)的方法來(lái)進(jìn)行剖析。
實(shí)驗(yàn)用到兩臺(tái)安裝了Linux系統(tǒng)的機(jī)器,一臺(tái)IP地址為192.168.0.10,將其作為服務(wù)器,另一臺(tái)IP地址為192.168.0.20,將其作為客戶機(jī),并保證兩臺(tái)機(jī)器間網(wǎng)絡(luò)的連通性。
圖1 生成公私密鑰對(duì)
在客戶端和服務(wù)器上分別調(diào)用ssh-keygen命令生成各自的密鑰對(duì),該命令還可指定生成公私密鑰對(duì)時(shí)采用的算法,如圖1所示,其中-t參數(shù)后的rsa就是最常見(jiàn)的一種公鑰算法。密鑰對(duì)默認(rèn)保存在當(dāng)前登錄帳號(hào)家目錄下的.ssh目錄中,如圖2所示。其中id_rsa.pub是公鑰,而id_rsa就是與公鑰唯一對(duì)應(yīng)的私鑰。
圖2 密鑰對(duì)文件
當(dāng)客戶端第一次登錄到某臺(tái)服務(wù)器,ssh客戶端會(huì)提示登錄帳號(hào)的公鑰指紋,如圖3所示,讓客戶端決定根據(jù)該指紋是否信任服務(wù)器。如果信任則下載服務(wù)器的公鑰存儲(chǔ)于客戶端的known_hosts文件中,如圖4所示,下次登錄直接通過(guò)該文件中相應(yīng)服務(wù)器的相應(yīng)公鑰完成對(duì)服務(wù)器的認(rèn)證。
圖3 下載服務(wù)器的公鑰
圖4 客戶機(jī)中存儲(chǔ)的服務(wù)器公鑰
在ssh應(yīng)用中,是否信任服務(wù)器由登錄用戶根據(jù)公鑰人工斷定,而在實(shí)際網(wǎng)絡(luò)安全工程中,公鑰經(jīng)常是存放在權(quán)威的第三方機(jī)構(gòu),并由該機(jī)構(gòu)進(jìn)行數(shù)字簽名,相當(dāng)于公安局蓋章發(fā)放的身份證一樣,該種公鑰證明身份就具有了權(quán)威性[6-7]。
而服務(wù)器對(duì)客戶端的認(rèn)證就復(fù)雜得多,因?yàn)檫@個(gè)過(guò)程最具安全隱患,用圖表述比較直觀,如圖5所示。
圖5 公鑰認(rèn)證過(guò)程
首先,將所有有權(quán)訪問(wèn)服務(wù)器的客戶端公鑰傳送至服務(wù)器的.ssh/authorized_keys文件中,如上圖中的客戶機(jī)A,生成密鑰對(duì)后將公鑰傳送至服務(wù)器。接收時(shí)服務(wù)器決定是否接收,接收則代表同意該客戶端訪問(wèn)服務(wù)器,此時(shí)存在.ssh/authorized _keys文件中的公鑰叫做客戶端的證書(shū)。
那么,當(dāng)有客戶機(jī)以A的身份訪問(wèn)服務(wù)器,服務(wù)器會(huì)臨時(shí)生成一個(gè)隨機(jī)字符串,并用A存儲(chǔ)在.ssh/authorized_keys文件中的公鑰加密該字符串,并將加密后的字符串傳給宣稱(chēng)是A的機(jī)器,宣稱(chēng)是A的機(jī)器接收到加密字符串后,用保存的私鑰解密該字符串,將解密的結(jié)果傳送到服務(wù)器,服務(wù)器將其與發(fā)送出去的字符串進(jìn)行對(duì)比,一致,則宣稱(chēng)是A的機(jī)器身份正確,允許其訪問(wèn),否則,就是假冒客戶端,服務(wù)器斷開(kāi)連接。
在上述過(guò)程中,利用公鑰密碼體制中的密鑰對(duì)特性——用公鑰加密的數(shù)據(jù),只能用私鑰解密,實(shí)現(xiàn)了對(duì)客戶端身份的認(rèn)證,從而保證服務(wù)器不被非法用戶入侵。
同時(shí),雙方連接后的通信數(shù)據(jù),也分別用對(duì)方的公鑰加密,到達(dá)后再用自已的私鑰解密。這樣,即使雙方的通信數(shù)據(jù)在公共鏈路上被截獲,也是加密后的數(shù)據(jù),從而保證了通信的安全[8-9]。
通過(guò)上面的實(shí)驗(yàn)過(guò)程,學(xué)習(xí)者對(duì)公鑰密碼體制的應(yīng)用原理應(yīng)該有一個(gè)比較明確的感性認(rèn)識(shí),這不僅有助于學(xué)習(xí)公鑰密碼體制,對(duì)后續(xù)其它的網(wǎng)絡(luò)安全技術(shù)的學(xué)習(xí)也是一個(gè)極大的幫助。
對(duì)于ssh這種遠(yuǎn)程登錄服務(wù)而言,認(rèn)證只是在服務(wù)器與客戶機(jī)兩者之間,公鑰只是單純由使用者產(chǎn)生,另一個(gè)主觀決定是否接受,這樣的公鑰似乎說(shuō)服力不夠。所以,在更多要求更高的安全工程中,公私密鑰對(duì)仍由使用者產(chǎn)生,但需要把公鑰傳送到權(quán)威機(jī)構(gòu)進(jìn)行認(rèn)證,并由權(quán)威機(jī)構(gòu)進(jìn)行數(shù)字簽名,這樣的公鑰就是使用者的身份證明,叫數(shù)字證書(shū),其中實(shí)施認(rèn)證的權(quán)威機(jī)構(gòu)叫CA。密鑰的使用者和CA構(gòu)成了安全技術(shù)中非常重要的一個(gè)體系——PKI,也叫公鑰基礎(chǔ)設(shè)施。理解ssh中兩者間的公鑰密碼體制才能更好地學(xué)習(xí)PKI及其它相關(guān)的網(wǎng)絡(luò)安全技術(shù)。
[1]許丹丹等.新工科背景下案例式教學(xué)法在環(huán)境工程類(lèi)課程教學(xué)中的應(yīng)用研究[J].科教文匯, 2021(4).
[2]顧曉潔.貫穿式案例教學(xué)法在建筑設(shè)計(jì)基礎(chǔ)教學(xué)中的實(shí)踐[J].山西建筑,2021(6).
[3]李蕾等.學(xué)生學(xué)習(xí)風(fēng)格對(duì)案例教學(xué)法實(shí)施效果的影響[J].中華醫(yī)學(xué)教育雜志,2019(4).
[4]余柏山.Linux系統(tǒng)管理與網(wǎng)絡(luò)管理[M].北京:清華大學(xué)出版社,2010.
[5]Matt Welsh & Lar Kaufman.Linux.權(quán)威指南[Z].北京:中國(guó)電力出版社,2000.
[6]張恒杰.Red Hat Enterprise Linux服務(wù)器配置與管理[M].北京:清華大學(xué)出版社,2013.
[7]丁明一.Linux運(yùn)維之道[M].北京:電子工業(yè) 出版社,2016.
[8]劉曉輝.網(wǎng)管天下[M].北京:電子工業(yè)出版社, 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
陳金蓮,女,湖北紅安人,副教授。研究方向:網(wǎng)絡(luò)工程,網(wǎng)絡(luò)安全。
[責(zé)任編輯:羅幼平]