GitHub防駭客新措施:棄用賬密驗證Git操作 改用token或SSH密鑰
還在用帳戶 + 密碼對 GitHub 上的 Git 操作進行身份驗證? 趕緊整個 token(令牌)或 SSH 金鑰吧! 8 月 14 號 0 點(8 月 13 日 9:00 PST)開始,在 GitHub 上執行 Git 操作就會導致失敗。 GitHub 官方表示,這一舉措是為了提高 Git 操作的安全性,防止密碼撞庫等事情發生。
哪些操作會受影響?
簡單來說,如果你還在用賬密驗證 Git 操作,這些行為都會受到影響:
- 命令行 Git 訪問
- 採用 Git 的桌面應用程式(GitHub Desktop 不受影響)
- 賬密訪問 GitHub 上 Git repo 的一切應用程式/服務
這些使用者不會受影響:
- 已經採用 token 或 SSH 金鑰方式驗證,即啟用雙因素身份驗證(2FA)的使用者
- 使用 GitHub Enterprise Server 本地產品的使用者(該產品尚未對此進行變更)
- 使用 GitHub App 的使用者,此前已經不支持賬密驗證
當然,大部分經常使用 Git 的用戶應該都已經知道這件事了。
在今年 6 月 30 號(15~18 時)、7 月 1 號(0~3 時)、7 月 28 號(15~18 時)和 29 號(0~3 時),GitHub 已經針對這件事進行了預演,所有 Git 操作都被要求用 token 或 SSH 密鑰驗證。
現在,這項舉措已經變成一個永久措施。
GitHub 究竟為什麼要這樣做呢?
token 和 SSH 金鑰安全在哪裡?
首先需要瞭解,只用帳戶和密碼進行身份驗證會有什麼隱患。
互聯網上,每天都有大量網站遭受駭客攻擊,導致數據外泄,這些數據中就包括不少用戶的賬號密碼。
拿到帳號密碼后,駭客會用它們試著登錄其他網站,也就是所謂的密碼撞庫。
簡單來說,如果你 ABC 網站用的是一套帳戶密碼,在 A 網站的密碼被洩露後,BC 網站也可能會被盜號。
為了防止密碼撞庫,網站會採取更多手段驗證身份資訊,像 GitHub 就推出了雙因素身份驗證、登錄警報、設備認證、防用洩露密碼及支援 WebAuth 等措施。
雙因素身份驗證,是指在秘密資訊(密碼等)、個人物品(身份證等)、生理特徵(指紋/虹膜/人臉等)這三種因素中,同時用兩種因素進行認證的過程。
現在,GitHub 開始強制用戶採用 token 或 SSH 金鑰進行身份驗證。 相比於賬密,這兩者的安全性顯然更高:
- 唯一性:僅限 GitHub 使用,根據設備/使用次數生成
- 可撤銷性:可隨時被單獨撤銷,其他憑證不受影響
- 區域性:使用範圍可控,只允許在部分訪問活動中執行
- 隨機性:不受撞庫影響,比賬密複雜度更高
那麼,token 和 SSH 密鑰之間,哪個更合適呢?
雖然目前 GitHub 官方推薦的是 token,因為它設置更為簡單,不過相比之下,SSH 金鑰的安全性要更高一些。
還沒有設置 token 或 SSH 金鑰的 Git 使用者,可以戳官方教程整起來了~
GitHub 設定教程:
參考連結:
[1] https://github.blog/changelog/2021-08-12-git-password-authentication-is-shutting-down/
[2] https://www.theregister.com/2021/08/12/git_proxyshell_gigabyte/