Gitおよび非否認、再訪問済
このエッセイは、DVCS全般に関連しており、単なるGitではありません。しかし、現在でも最も人気のあるDVCSであるため、Gitに注目します。
非否認 セキュリティ・サークルの重要な概念です。企業を満足させるためには’次のアクティビティ・レコードを取得する必要があります。”事実の後から離れることはできない。”.
従来の一元化されたバージョン管理ツールを使用すると、そのようなレコードはコミット履歴からすぐに使用できます。システムへの各コミットは、承認メカニズムを使用して、変更を行ったユーザーにアップロードする権限があることを確認します。これらのレコードは、問題のソフトウェアに各コード行をアップロードする責任があるユーザーを示す正確なレコードが保持されるようにするために企業に不可欠です。
gitまたは分散バージョン管理では、明確な区別がある。”コミット” 歴史と”アップロード” 歴史学 — わたしはこれから言う。”レコードのプッシュ”。gitでのコミットは、ローカルで行われ、検証されていないメタデータが履歴に追加されるため、認証されません。アップロード・ステップ、別名押す これは別のステップであり、プッシュ・レコードが再生されるのはここです。
次を含むアパチェソフトウェア財団‘gitのロールアウト、私たちは、組織が長年にわたるsubversionサービスで享受する反復不可能なレコードの並行レベルをもたらす方法で、これらのプッシュレコードを記録する方法がシステムに組み込まれました。システムが正常に動作するためには、コミッタが変更をASFに直接プッシュすることが不可欠です。’git repoです。
なぜこれが重要なのですか? はじめに、ApacheコミッタのContributor License Agreements (ICLA)の必要性に関する一般的な誤解を述べましょう。多くの人が’Tは、そのことを委員会として理解しているようだ。’著者の個々の作品、適用可能な言語の間に違いはありませんICLA およびApacheライセンス2.0。区別は、組織がサードパーティの拠出金を処理するための適切なプロセスを処理するために、委託者とASFとの間で契約上の合意が必要であるという事実にあります。それはICLAを必要とするこれらの形態の貢献であり、他の人と契約するための奇妙なベルトとサスペンダーではありません。
プッシュ・レコードが提供するものは、リリースの各コード行に、そのコードをASFにプッシュする責任がある個別のコミッタをトレースする方法です。’gitリポジトリ。これは、残念ながらそのような貢献者ができるので、gitによるサードパーティの貢献の来歴を決定する際に非常に重要です”歩く” DVCSコミット・ログの分散性のために、Gitプロジェクトへの貢献から。ICLAによると、責任者はコードを押したコミッタになります。
早期および適切な緩和戦略はすべて、放棄された貢献を取り除くことを中心に展開しますが、プロジェクトの損傷はすでに行われている可能性があります。PUSH RECORDSがなければ、’dは文字通り、問題のトラッカーやオンリスト通信の代替レコードを通過する以外に、そのコードが実際にどのように私たちのリポジトリに入ったかを判断するための権威のあるプロセスを持っていません。来歴を決定するためにマージコミット・ログのみに依存することは、セキュリティの観点からはあまり満足していません。これは、特定のタイプのワークフローに厳密に準拠する必要があるためです。’命令したい。
そういうものがなければ、’少なくとも各コントリビュータのPGP署名を義務付ける必要があります’いろいろな企画で活躍している。プッシュ・レコードは、プロジェクトに影響しない透過的なプロセスを提供します。’ASFを保証する以外のワークフロー’s git repoは真のマスターリポジトリです。
2025年更新
GitはネイティブのサポートSSH-SK-ED25519@openssh.com 署名キーは、ラップトップ/ワークステーション用のUSB-C YubiKeysを組み込んだ2FAコミット/タグ署名インフラストラクチャの組織的採用に最適です。
完全なPGPインフラストラクチャの不必要な膨張と複雑さは、組織全体またはプロジェクトごとのレベルで、前述した否認防止の問題の解決に関連しなくなりました。また、この優れたGitHub統合により、この作業が全面的に容易になります。
