? ? ? ? 可以使用SSH協(xié)議進行遠程管理通道安全保護,其中涉及的主要安全功能包括主機驗證、數(shù)據(jù)加密性和數(shù)據(jù)完整性保護。
????????這里要注意的是【主機驗證】和【身份驗證】的區(qū)別,主機驗證是客戶端確認所訪問的服務(wù)端是目標訪問對象,比如從從客戶端A(192.168.3.1)連接到服務(wù)端B(192.168.3.133)上,需要驗證服務(wù)端B是真實的。當主機驗證通過后,主機驗證通過后,將進入身份驗證階段。SSH支持多種身份驗證機制,它們的驗證順序如下:gssapi-with-mic,hostbased,publickey,keyboard-interactive,password,但常見的是密碼認證機制(password)和公鑰認證機制(public key)。
? ? ? ??SSH客戶端若是首次登錄或者例如在windows注冊表中刪除【計算機\HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys】中對應服務(wù)器端host key值。(例如Putty)使用ssh登錄服務(wù)器,會彈出如下提示:
The host key is not cached for this server:
192.168.3.133 (port 22)
You have no guarantee that the server is the computer you think it is.
The server's ssh-ed25519 key fingerprint is:
ssh-ed25519 255 SHA256:gFoFqs17V915WdaNspPRsCPu8g9McWt5Hduo6RLhK5I
If you trust this host, press "Accept" to add the key to PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without adding the key to the cache, press "Connect Once".
If you do not trust this host, press "Cancel" to abandon the connection.
????????打開more info可以看到
Full text of host’s public key
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAxMDpul0HDFVD4NAYw8rk0Ex1bDGsqWCDALE0FBzajw
SHA256 fingerprint gFoFqs17V915WdaNspPRsCPu8g9McWt5Hduo6RLhK5I
MD5 fingerprint 13:9d:92:62:1a:ca:7e:77:f7:ab:89:2e:f3:a0:1f:20
????????點擊accept,在windows注冊表中就會新增一個條目,數(shù)據(jù)值為
0x6e326c40573f5fffb8224daceab4ac24050a609ff50ce518e4a27cadc52a848d,0x70a8cd4141130b300896ca1ac356c7044dae3c8c010d3e54c570d0a59b0e4c0c
? ? ? ? 后續(xù),在客戶端將不再出現(xiàn)之前的提示,而是獲得到從服務(wù)端B發(fā)來的公鑰后與保持在本地的的公鑰指紋進行比對,如果一致則驗證成功。? ? ? ??
????????此時,我們可以看下公鑰及公鑰指紋的對應關(guān)系,具體如下:
????????Base64編碼服務(wù)端公鑰(在客戶端的提示窗口中可以找到,或者在服務(wù)端/etc/ssh目錄中)
AAAAC3NzaC1lZDI1NTE5AAAAIAxMDpul0HDFVD4NAYw8rk0Ex1bDGsqWCDALE0FBzajw
????????對應HEX編碼服務(wù)端公鑰(base64 to hex)
0000000B7373682D65643235353139000000200C4C0E9BA5D070C5543E0D018C3CAE4D04C756C31ACA9608300B134141CDA8F0
????????對服務(wù)端公鑰做SHA256 hash計算得到
805A05AACD7B57DD7959D68DB293D1B023EEF20F4C716B791DDBA8E912E12B92
? ? ? ? 轉(zhuǎn)base64得到gFoFqs17V915WdaNspPRsCPu8g9McWt5Hduo6RLhK5I=,與putty窗口提示的SHA256公鑰指紋一致。
????????對服務(wù)端公鑰做MD5 hash計算得到139D92621ACA7E77F7AB892EF3A01F20,與putty窗口提示的MD5公鑰指紋一致。
? ? ? ? 最后,通過抓包來看下服務(wù)端B的公鑰是在哪條消息發(fā)功給客戶端的,具體抓包信息如下。
? ? ? ? 在wireshark中查找0C4C十六進制數(shù)值,查找到在server發(fā)出的Key Exchange Reply消息中??梢钥吹紼dDSA public key字段中的內(nèi)容與HEX編碼的公鑰信息標黃部分完全一致,所以服務(wù)端公鑰就是在此消息中完成發(fā)送給客戶端的。
????????那么【0000000B7373682D6564323535313900000020】這部分是什么呢?把HEX轉(zhuǎn)為ASCII碼就是ssh-ed25519,也就是公私密鑰對的生成算法。文章來源:http://www.zghlxwxcb.cn/news/detail-691078.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-691078.html
到了這里,關(guān)于遠程管理通道安全SSH協(xié)議主機驗證過程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!