ファイルハッシュを使用してセキュリティを向上させる
ファイルハッシュ化は、主にデータの整合性、セキュリティ、効率性を確保するために、さまざまな理由でアプリケーションで使用される技術です。
ファイルハッシュ化を使用したい理由には、次のようなものがあります。
- データ整合性の検証
ファイルを転送または保存する際には、常にデータ破損や改ざんのリスクがあります。ハッシュアルゴリズム(例: MD5、SHA-1、SHA-256)を使用してファイルの内容に基づくハッシュ値を生成することで、アプリケーションは後でハッシュを再計算し、元のハッシュと比較して、転送中または保存中にファイルが変更または破損していないかを検証できます。
- 重複排除
クラウドストレージやバックアップシステムなどの特定のアプリケーションでは、保存領域を節約するためにファイルの重複排除が使用されます。ハッシュ化により、重複ファイルを効率的に識別できます。同じファイルの複数のコピーを保存する代わりに、アプリケーションは単一のハッシュを使用して重複したコンテンツを表現できます。
- キャッシュ管理
キャッシュシステムでは、ファイルハッシュ化を使用して、特定のファイルが以前にアクセスされたことがあり、キャッシュ内で利用可能かどうかをすばやく確認できます。ハッシュはファイルの一意の識別子として機能し、より高速な取得を可能にするとともに、不必要なデータ転送を削減します。
- データのインデックス作成と検索
ファイルをすばやくインデックス化して検索する必要がある大規模アプリケーションでは、ファイルハッシュ化を使用してハッシュテーブルのような効率的なデータ構造を構築でき、ファイル内容に基づく高速な検索と取得を可能にします。
- マルウェア検出
ウイルス対策アプリケーションやセキュリティアプリケーションでは、既知のマルウェアやウイルスを識別するためにファイルハッシュ化が使用されます。ファイルのハッシュを既知の悪意あるハッシュのデータベースと比較することで、これらのアプリケーションはそのファイルが潜在的に有害かどうかをすばやく判断できます。
Glasswall Halo イベント
- Glasswall Halo API では、ファイルタイプに応じて特定のエンドポイントへのリクエストを開始することで、プログラムから操作できます。
- バイナリファイルには、
api/v3/cdr-fileエンドポイントを使用します。 - Base64 エンコードされたファイルには、
api/v3/cdrエンドポイントを使用します。
-
各リクエストでは、SHA-256、SHA-1、MD5 の 3 種類の形式から任意の組み合わせでファイルハッシュの生成を要求できます。
-
リクエストを受信すると、まず入力ハッシュが生成され、その後 Glasswall Halo が Glasswall Embedded Engine を使用して入力ファイルを再構築および解析します。
-
ファイルの再構築が正常に完了すると、プラットフォームは出力ファイルハッシュを生成し、入力ハッシュと出力ハッシュの両方がレスポンスヘッダーで返されます。
-
リクエストが失敗した場合でも、プラットフォームは入力ハッシュを生成しており、それがレスポンスヘッダーで返されます。
-
これらの生成された入力および出力ファイルハッシュは、セキュリティチェックの実行、追加処理、その他必要なアクションなど、アプリケーションやシステム内でさまざまな用途に活用できます。
API 認証
Glasswall Halo は、**Basic **認証と Bearer 認証の 2 種類の認証をサポートしています。リクエストを行う前に、設定に応じた適切な方式で認証する必要があります。
Basic
システムが Basic 認証で構成されている場合は、システム管理者から organisation ID と token を取得する必要があります。これらの値を <OrganisationId>:<Token> の形式で結合し、その後 Base64 エンコードします。
生成されたエンコード値は、リクエストヘッダーに含める必要があります。
Authorization: Basic ZGVtbzpwQDU1dzByZA==
Bearer
Bearer 認証では、ID プロバイダーから取得した bearer token が必要です。
token を取得したら、それをリクエストヘッダーに含めます。
Authorization: Bearer ZGVtbzpwQDU1dzByZA==
注: システムの構成に応じて適切な認証方式を使用してください。正しい認証を使用することで、Glasswall Halo API へのアクセスが正常に行われ、認可に関する問題を防ぐことができます。
リクエストの構築
バイナリファイルまたは Base64 エンコードされたファイルの処理に Glasswall Halo を利用する場合、SHA-256、SHA-1、MD5 を含む複数のハッシュタイプの生成を柔軟に要求できます。API リクエストを行う際には、これらのハッシュタイプを任意に組み合わせて指定でき、レスポンスとして入力ファイルと出力ファイルの両方について生成されたハッシュ値をレスポンスヘッダーで受け取れます。これにより、データの完全性と真正性を確保できるほか、アプリケーションやシステム内でのファイル処理を効率化できます。
バイナリファイル処理
POST {baseUrl}/api/v3/cdr-file?generate-hash-types=SHA256,SHA1,MD5
Base64 エンコードされたファイル処理
Base64 エンコードされた文字列をリクエストボディに含めて、次のエンドポイントに送信します。
POST {baseUrl}/api/v3/cdr?generate-hash-types=SHA256,SHA1,MD5
リクエストボディ形式
リクエストの本文はJSON形式とし、ファイルのBase64エンコード文字列を含むbase64フィールドと、元のファイル名(適切なファイル拡張子を含む)を指定するfilenameフィールドを含める必要があります。
{
"Base64": "string",
"fileName": "filename.pdf",
}
注
- {baseurl} は Glasswall Halo API の実際のベース URL に置き換えてください。
- 各リクエストには正しい auth ヘッダーを指定する必要があります。
- URL内の
generate-hash-typesをハッシュ値のカンマ区切りリストに設定すると、正しいハッシュが生成され、レスポンスで返されることが保証されます。 - バイナリファイル処理では multipart form post を使用し、Base64 エンコードされたファイル処理では、適切なファイル名とともにファイル内容を JSON リクエスト本文で指定します。
レスポンス処理
Glasswall Halo API へのリクエストが成功すると、201ステータスコードが返されます。生成して返すハッシュを要求した場合、入力ハッシュと出力ハッシュの両方がレスポンスヘッダーで利用可能になります。レスポンスが成功しなかった場合は、入力ハッシュ値のみが返されます。
ハッシュ値は、次のヘッダーキーで識別できます。
SHA-256 の場合:
- 入力ファイルのハッシュ:
x-hash-sha256-input - 出力ファイルのハッシュ:
x-hash-sha256-output
SHA-1 の場合:
- 入力ファイルのハッシュ:
x-hash-sha1-input - 出力ファイルのハッシュ:
x-hash-sha1-output
MD5 の場合:
- 入力ファイルのハッシュ:
x-hash-md5-input - 出力ファイルのハッシュ:
x-hash-md5-output
例
access-control-allow-origin: *
access-control-expose-headers: *
content-disposition: attachment; filename=18402777-7826-457f-bc02-6446611495e6.zip; filename*=UTF-8''18402777-7826-457f-bc02-6446611495e6.zip
content-length: 288843
content-type: application/octet-stream
date: Fri,21 Jul 2023 12:42:15 GMT
strict-transport-security: max-age=31536000; includeSubDomains
x-applied-policy: service-dynamic
x-file-size: 301189
x-filetype: pdf
x-hash-md5-input: AF5EB421F8AFC69AC4178ACF747E618C
x-hash-md5-output: 8018FC4F37AB858442F354430203CEB4
x-hash-sha1-input: 9C714CAC1F82A450728F3C046CEFEFAF0BBD2C07
x-hash-sha1-output: 058991F3A252F0A4FD0E7F8B3178D3F15494099B
x-hash-sha256-input: 5F83AB533252C00AD1C60A0EFC016BF273497F3179FD6CE642AD8A4857148B8D
x-hash-sha256-output: 9D5D88F073D74160828F92E9E8DADAC5712706C65D49448D9ABA91D8FDC6FC28
x-processing-id: 18402777-7826-457f-bc02-6446611495e6
x-processing-status: rebuilt
概要
Glasswall Halo を介したファイル処理ワークフローで生成されたハッシュを使用することで、運用を効率化し、セキュリティを強化し、アプリケーションの信頼性を向上させることができます。これらは総合的に、ファイルの完全性と安全性を確保する、より堅牢でレジリエントなシステムに貢献します。
クイックスタート
Glasswall Halo をご自身で試すには、Quick Start Guideをご参照ください。