ハッシュとは ハードニングとは〜セキュリティ強化で安全性を高める〜

ハッシュとは ハードニングとは〜セキュリティ強化で安全性を高める〜

ハッシュとは

ハッシュとは、あるデータに対応する値を求めるための手法の1つです。同じデータから生成したハッシュ値は常に同じで、元のデータが少しでも異なれば生成されるハッシュ値は異なります。

こうした性質は、たとえば配布しているフリーソフトウェアの圧縮ファイルが改ざんされていないことを示すために使えます。圧縮ファイルのハッシュ値を計算して圧縮ファイルとは別のファイルで配布し、圧縮ファイルを入手した人は自分で生成したハッシュ値と配布されたハッシュ値を比較します。両方のハッシュ値が同一であれば圧縮ファイルが改ざんされていないことが確認できます。

ハッシュアルゴリズム

ハッシュアルゴリズムは、ハッシュ値を計算するための手順です。ハッシュアルゴリズムが異なれば、データが同ーであっても生成されるハッシュ値は異なります。なお、古くから使われているハッシュアルゴリズムのなかには、安全面に問題があるために、すでに使用が推奨されていないものもあります。

ハッシュアルゴリズムの安全性

ハッシュアルゴリズムの安全性は、「衝突」と呼ばれる攻撃にどれだけ耐性があるかで決まります。衝突とは、あるファイルAに対応するハッシュ値aがある場合に、このハッシュ値aを持つまったく別のファイルBを作り出すこと、まったく同じハッシュ値をもつファイルの組を作成すること、もしくは指定されたハッシュ値を持つファイルをり出すことです。

この衝突を故意に引き起こせるかどうかがハッシュアルゴリズムの安全性を決めるといっても過言ではありません。実際、たとえば MD4 や MD5 など、攻撃方法が研究·確立され、安全性が低下したハッシュアルゴリズムは、現在はほぼ使われなくなっています。

ハードニング

ハードニング (hardening) は、「硬化」というような意味を持つ英単語ですが、セキュリティの文脈では「固くする」という意味で使われます。固くする対象は、守るべき情報を保管するコンピューターやネットワークなどの環境です。また、ハードニングは「要塞化」と呼ばれることもあります。

ハードニングの基本は「基本的かつ地道な対策」の積み重ね

ハードニングの基本は「基本的かつ地道な対策」の積み重ねです。大きくは、「外部に公開するサービスの局所化」「動作しているものの把握」「不必要なプログラム0停止」「脆弱性を修正するパッチの迅速な適用」「セキュリティソフトウェアや機器の導入」「OS やネットワーク機器などは1箇所だけでなく、複数の箇所で多層防御を行う」などといった、ごく基本的なものばかりですが、一度やればいいものではなく継続的にこのようなことを確認し、やり続けていくことが必要になります。ハードングに限りませんが、有事を起こさないようにすることも、有事が起きてしまった笑の迅速な対応も、基本的には運用業務の一環です。

ハードニングの例

システムでハードニングを実現する例を、具体的に挙げてみます。

外部からの通信は限られた種類のものだけを許可し、またシステムから外部への活信も制限するため、ファイアウォールを導入する
システムが動作するコンピューターの OS 機能で、通信先を最小限に絞る
システムが動作するコンピューター上の動作プログラムを限定し、最低限のものみにする。動作プログラムおよび OS 類などは随時最新化を行う
不正な通信を検知して通知するIDS や、不正な通信を自動的にブロックする IPSを導入する

セキュリティカテゴリの最新記事