1. 程式人生 > 資訊 >GitHub 防黑客新措施:棄用賬密驗證 Git 操作,改用 token 或 SSH 金鑰,今晚 0 點執行

GitHub 防黑客新措施:棄用賬密驗證 Git 操作,改用 token 或 SSH 金鑰,今晚 0 點執行

還在用賬戶 + 密碼對 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://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token

[2]https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

參考連結:

[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/