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