Skip to content
Latchkey

SHA-256 ハッシュとは?解説

SHA-256 は任意の入力を固定の 256 ビットフィンガープリントに変える安全な暗号学的ハッシュ関数であり、データ整合性のための現代の標準です。

SHA-256 は現代のコンピューティングの主役となるハッシュです。偽造や反転が事実上不可能な 256 ビットのダイジェストを生成し、ダウンロードの検証、コンテナイメージの識別、ソフトウェアの署名のデフォルトになっています。パイプラインが artifact が無傷で改ざんされていないことをチェックしているなら、その仕事をしているのはほぼ間違いなく SHA-256 です。

SHA-256 とは何か

SHA-256 は SHA-2 ファミリーの一員で、任意の入力を固定の 256 ビット値にマッピングし、16 進 64 文字で表示されます。決定論的で計算が高速であり、入力へのどんな変更でも、たとえ 1 ビットでも、まったく異なる予測不能なダイジェストを生成するよう設計されています。

なぜ安全なのか

SHA-256 は衝突耐性があります。同じダイジェストを生成する 2 つの入力を誰も見つけておらず、それを行うことは計算上実行不可能です。また原像耐性もあり、ダイジェストから入力へさかのぼって求めることはできません。これらの性質が、署名や整合性チェックを支える理由です。

SHA-256 と MD5

MD5 は破られており、攻撃者が衝突を作り出せるため、敵対者に対して信頼できません。SHA-256 はそうではなく、だからこそあらゆるセキュリティ目的で MD5 や SHA-1 を置き換えました。新しいパイプラインでは、あらゆる整合性または同一性のチェックに SHA-256 が安全なデフォルトです。

CI における SHA-256

CI は SHA-256 を絶えず使います。ダウンロードしたツールを検証し、タグが裏で入れ替えられないよう digest でコンテナイメージを識別し、キャッシュキーを導出し、artifact の署名やプロベナンスの基礎とします。イメージをその SHA-256 digest でピン留めすることは、重要なサプライチェーン強化のステップです。

Pinning an image by SHA-256 digest
# Pin a container image by its SHA-256 digest
steps:
  - uses: docker://node@sha256:abc123...def
  - run: node --version

Latchkey に関する注記

SHA-256 digest によるイメージやツールのピン留めは Latchkey runner でもまったく同じように機能するため、job の定義方法を変えることなく、サプライチェーン強化のために digest ピン留めを採用できます。

重要なポイント

  • SHA-256 は 256 ビット(16 進 64 文字)のダイジェストを生成し、現代の整合性標準です。
  • 衝突耐性および原像耐性があるため、MD5 や SHA-1 が安全でない敵対者に対しても安全です。
  • CI は SHA-256 を使ってダウンロードを検証し、イメージを digest でピン留めし、キャッシュをキーイングし、artifact に署名します。

関連ガイド