關於數據傳輸安全(SSH協議)

前言

這裏說的不是java的SSH框架,是1995年,芬蘭學者Tatu Ylonen設計的SSH協議。
有計算機網絡基礎的同學都知道,在網上傳輸的數據是可以被截取的。那麼怎樣才能獲得安全?

一、春點行話

電影《智取威虎山》裏,那些我們聽不懂的“漢語”,就是春點行話,也可以叫“暗語”,像這樣:
土匪:蘑菇,你哪路?什麼價?(什麼人?到哪裏去?)
楊子榮:哈!想啥來啥,想吃奶來了媽媽,想孃家的人,孩子他舅舅來了。(找同行)
楊子榮:拜見三爺!
土匪:天王蓋地虎!(你好打的膽!敢來氣你的祖宗?)
楊子榮:寶塔鎮河妖!(要是那樣,叫我從山上摔死,掉河裏淹死)

    爲什麼要用暗語呢?畢竟土匪這個職業比較特殊,在自家山寨裏還好,要是去趕集,突然發現業務了手癢癢怎麼辦,總不能在人羣中就商量怎麼謀財害命吧,這時候,土匪中的語言學家就發明了暗語,也就是把一些“敏感詞彙”用一些“家常話”代替掉。上面對話裏括號裏面就是那些暗語的意思。久而久之,就形成了很多暗語,這些暗語口口相傳,對土匪事業的發展起了很大的推動作用。但是每年納新的時候,發現靠口口相傳暗語很難被新手掌握。那些學霸土匪們紛紛表示,讓語言學家出本書,他們一定會買正版且仔細學習的。於是語言學家勵精圖治,耗時好幾天終於完成了《嘿嘿山暗語通則v1.0》(以下簡稱《通則》)。由於當時土匪老大擔心如果拿到正規出版社出版會被平民學會,就失去了暗語本身的意義,於是最終沒有正式發佈,只是作爲集團內部的文檔,代代相傳。但是那個語言學家“開源”的思想很重,幾經周旋,老大終於同意他這本文檔可以在土匪業內流傳。
    時代在發展,社會在進步。開源思想被普遍接受,各山頭土匪紛紛表示,“開源大法好!”《通則》經歷了幾個世紀的更新迭代,最終成爲了一種業內開源的數據加密系統(因爲不僅說話可以用,寫信的時候也可以用,這樣,土匪之間的信件即使被官方截取,也不明白其中的意思),並且有了些很好聽的名字——“江湖春點”、“春點行話”……
    我們來總結一下這種古老的數據加密方式。一定程度上解決了數據傳輸的安全性問題。但是缺點也很明顯,破譯很簡單。
    於是有一天,這本只在業內流傳的《通則》被一個叛徒交給了官府。
    本來官府是有很多各個山頭的資料的,但是都是用暗語寫的,都看不懂。但是現在有了《通則》,那些數據一夜之間全成了白話。
    這個事件對土匪業的打擊很大,土匪們深惡痛疾,都表示開源害死人!
    但是後輩的土匪也有語言學家,他們爲自己的山頭編寫了不外傳的內部暗語通則。土匪業有了新的發展。
    但是這也出現了新的問題。雖然說同行是冤家,但是有時候集團之間的合作纔能有更大的利益,但是每個山頭都有自己的《通則》。爲了實現交流,只能把自己的《通則》給友方山頭copy一份。這樣,合作伙伴多了之後,要冒着“合作伙伴”把自己山頭的《通則》泄露的風險。土匪業的發展又遇到了瓶頸。
    直到1995年,芬蘭學者Tatu Ylonen設計出了SSH協議。這個問題終於被解決。

二、SSH協議

    不同於之前的暗語,暗語對數據的加密和解密是用的同一種規則(對稱性規則),那麼我只要知道這個規則,我就能破譯所有數據。而ssh協議是一種非對稱性加密協議,ssh協議有兩套規則,而且加密和解密過程不可逆(理解這點很重要,當然這裏的理解不是讓你去弄懂“如何實現”,而是要時刻記住)。我知道很多同學看到這裏可能一頭霧水了,別想太多,先往下看。假設我們有A規則和B規則。
    我們用A規則來加密的數據只有B規則能解密。而用B規則加密的數據只有A規則能解密。
    這就是非對稱性規則。那麼怎麼使用呢?
    每個山頭都自己搞這樣的兩套規則。A規則自己內部嚴格保密,B規則公諸世界。這樣,我們假設有兩座山頭,甲山頭和乙山頭,他們都有自己的AB規則和對方的B規則。

  • 當甲方要給乙方發數據的時候,用乙方的B規則加密數據,然後發送;
  • 乙方收到數據後,用自己的A規則解密,閱讀;
  • 乙方回覆的數據用甲方的B規則加密;
  • 甲方收到後用自己的A規則解密,閱讀。
  • ……
  • ……

    這樣即使數據在傳輸的過程中,即使被別人截取,也會因爲沒有A規則,而只能有一堆看不懂的東西。

這就是我所理解的SSH協議。
其實SSH協議不僅可以用於數據加密,還可以用於“身份驗證”。但是原理是一樣的,就留給各位一個想象的空間。

關於 在虹口 姐姐家
20171217

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章