GitHub 廢除基于密碼的 Git 身份驗(yàn)證

整理 | 孫勝
近日,代碼托管平臺(tái) GitHub 于當(dāng)?shù)貢r(shí)間 8 月 13 日周五這天正式廢除了基于密碼的 Git 身份驗(yàn)證。從 09:00 PST (PST是北美太平洋標(biāo)準(zhǔn)時(shí)間,北京時(shí)間 14 日 0 點(diǎn))開(kāi)始,使用 GitHub 開(kāi)發(fā)者將需要切換到基于令牌的身份驗(yàn)證去執(zhí)行 Git 操作,基于令牌的認(rèn)證包括個(gè)人接入、OAuth、SSH Key 活 GitHub App 安裝令牌。
此前在 2020 年 12 月 15日 ,GitHub 就在官方博客上宣布:” 從 2021 年 8 月 13 日開(kāi)始,在 GitHub.com 上執(zhí)行 Git 操作時(shí),不再接受以賬戶密碼的形式完成身份驗(yàn)證。”
實(shí)際上早在2020年7月30日,GitHub也曾表示:“ 將在所有需要身份驗(yàn)證的 Git 操作中使用基于令牌的驗(yàn)證機(jī)制,比如個(gè)人訪問(wèn)、OAuth 或者 GitHub App 安裝令牌。如果用戶目前正在使用密碼通過(guò) GitHub.com 對(duì) Git 操作進(jìn)行身份驗(yàn)證,則將很快收到一封電子郵件,敦促用戶更新身份驗(yàn)證方法或第三方客戶端?!?/p>
同時(shí)官方也給出了更換身份驗(yàn)證方式的時(shí)間安排:
2020 年 7 月 30 日——如果用戶現(xiàn)在使用密碼通過(guò) API進(jìn)行身份驗(yàn)證,可能會(huì)收到一封電子郵件,敦促用戶更新身份驗(yàn)證方法或第三方客戶端。 2020 年9 月 30 日和 10 月 28 日——所有 API 操作都將暫時(shí)需要個(gè)人訪問(wèn)或 OAuth 令牌,以鼓勵(lì)用戶更新其身份驗(yàn)證方法。 2020 年11 月 13 日——所有通過(guò) REST API進(jìn)行身份驗(yàn)證的操作都需要個(gè)人訪問(wèn)或 OAuth 令牌(使用 GraphQL API 進(jìn)行身份驗(yàn)證已經(jīng)需要個(gè)人訪問(wèn)令牌)。 2021 年中期–——所有經(jīng)過(guò)身份驗(yàn)證的 Git 操作都需要個(gè)人訪問(wèn)權(quán)限或 OAuth 令牌。
GitHub 官方認(rèn)為,近年來(lái)受益于 GitHub.com 的許多安全增強(qiáng)功能,例如雙重身份驗(yàn)證、登錄警報(bào)、設(shè)備保護(hù)、防止使用受損密碼和WebAuthn 支持。這些功能使攻擊者很難在多個(gè)網(wǎng)站上獲取重復(fù)使用的密碼,并使用它來(lái)訪問(wèn)用戶的 GitHub 帳戶。盡管這些安全驗(yàn)證方式有了一些改進(jìn),但是由于歷史原因,未啟用雙重身份驗(yàn)證的客戶仍能夠使用其 GitHub 用戶名和密碼繼續(xù)對(duì) Git 和 API 操作進(jìn)行身份驗(yàn)證,導(dǎo)致這部分用戶賬戶安全受到威脅。
唯一性——令牌特定于 GitHub,可按使用次數(shù)或按設(shè)備生成。
可撤銷(xiāo)——可以隨時(shí)單獨(dú)撤銷(xiāo)令牌,不需要更新未受影響的憑據(jù)
有限性——令牌的使用范圍嚴(yán)格控制,僅允許執(zhí)行用例中需要的訪問(wèn)活動(dòng)
隨機(jī)性——令牌的復(fù)雜度遠(yuǎn)高于用戶設(shè)計(jì)的簡(jiǎn)單密碼,因此不受暴力破解等行為的影響。
啟動(dòng)最新身份驗(yàn)證方式的影響
工作流程受影響
命令行 Git 訪問(wèn)。 使用 Git 的桌面應(yīng)用程序(GitHub Desktop 不受影響)。 使用用戶的密碼直接訪問(wèn) GitHub.com 上的 Git 存儲(chǔ)庫(kù)的任何應(yīng)用程序/服務(wù)。
不受更改的影響:
如果用戶的帳戶啟用了雙重身份驗(yàn)證,需要使用基于令牌或基于 SSH 的身份驗(yàn)證。 如果用戶使用 GitHub Enterprise Server,對(duì)此不受影響。 如果用戶維護(hù)一個(gè)GitHub App,GitHub Apps 目前不支持密碼認(rèn)證。
用戶需要做什么
對(duì)于開(kāi)發(fā)人員,如果用戶現(xiàn)在需要使用密碼對(duì) GitHub.com 的 Git 操作進(jìn)行身份驗(yàn)證,則必須在 2021 年 8 月 13 日之前通過(guò)HTTPS(推薦)或 SSH 密鑰開(kāi)始使用個(gè)人訪問(wèn)令牌,以避免中斷。如果用戶收到郵件提醒,提示使用的是過(guò)時(shí)的第三方集成軟件,則應(yīng)將客戶端更新到最新版本。 對(duì)于集成商,必須在2021 年 8 月 13 日之前使用網(wǎng)絡(luò)或設(shè)備授權(quán)流程對(duì)集成進(jìn)行身份驗(yàn)證,以避免中斷。有關(guān)更多信息,請(qǐng)參閱授OAuth 應(yīng)用程序和開(kāi)發(fā)者博客上的公告。 可以啟用雙重身份驗(yàn)證,如果用戶想確保自己帳戶不允許基于密碼的身份驗(yàn)證,可以立即啟用雙重身份驗(yàn)證。這將要求用戶通過(guò) Git 和第三方集成對(duì)所有經(jīng)過(guò)身份驗(yàn)證的操作使用個(gè)人訪問(wèn)令牌。
參考鏈接:
https://github.blog/2020-07-30-token-authentication-requirements-for-api-and-git-operations/
往期推薦
關(guān)注我回復(fù)「加群」,加入Spring技術(shù)交流群

