重要なポイント
APIキーは、アプリケーションプログラミングインターフェース(API)へのリクエストを行う際にアプリケーションまたはユーザーを識別し、認証するためのユニークなコードです。
APIキーは、対称暗号と非対称暗号とともに動作し、暗号署名を通じてリクエストの整合性を確認します。
セキュリティのベストプラクティスには、IPホワイトリスト、最小特権アクセス権、定期的なキーのローテーション、シークレットマネージャーまたは暗号化されたボールトを介した安全な保管が含まれます。
APIキーは、侵害されたキーが機密データや金融操作へのアクセスを許可する可能性があるため、攻撃者にとって一般的なターゲットです。
APIキーが露出したり侵害された場合は、直ちに取り消し、新しいものを生成し、インシデントを調査する前に行動を起こしてください。
はじめに
API(アプリケーションプログラミングインターフェース)は、日常的にインタラクションするソフトウェアの多くを支えています。これにより、異なるアプリケーションがデータを交換し、互いの代わりにアクションを実行することができます。APIキーは、これらのサービスへのアクセスを制御する資格情報であり、ユーザー名とパスワードの組み合わせに似ています。APIキーがどのように機能し、どのように保護するかを理解することは、暗号通貨スペースで取引ツール、ポートフォリオトラッカー、または自動システムを使用するすべての人にとって基本的なセキュリティ原則の一部です。
この記事では、APIキーとは何か、どのようにリクエストを認証および承認するか、認識すべきセキュリティリスク、およびキーを安全に保つためのベストプラクティスについて説明します。
APIキーとは何ですか?
APIキーは、APIプロバイダーによって生成されるユニークなコード(またはコードのセット)で、サービスに接続する各アプリケーションやユーザーへのアクセスを特定し制御します。プラットフォームでAPIキーを作成すると、リクエストを送信するたびに付随させる必要がある資格情報が受け取られ、プロバイダーは誰がリクエストを行っているか、何をすることが許可されているかを確認します。
APIキーは2つのコア機能を持っています:
認証:リクエストを行っているアプリケーションまたはユーザーの身元を確認する。
承認:呼び出し元がアクセスすることを許可されているリソースや操作を決定する。
たとえば、ポートフォリオトラッキングアプリケーションが取引所のアカウント残高を読み取る必要がある場合、取引所で読み取り専用のAPIキーを生成し、そのアプリケーションに提供します。アプリケーションがデータを要求するたびに、キーをリクエストと共に送信し、取引所は呼び出し元の身元を確認し、資金を表示する(取引や引き出しはできない)権限があることを確認します。
「APIキー」という用語は、単一の文字列を指すこともあれば、ペア(リクエストと共に送信される公開鍵と、暗号署名を生成するために使用される秘密鍵)を指すこともあります。異なるプラットフォームではこれを異なって扱いますが、根本的な原則は同じです:誰が何をできるかを制御します。
暗号署名
多くのAPIは、キーの文字列を送信するだけでなく、リクエストが転送中に改竄されていないことを証明する暗号署名も必要です。送信者は秘密鍵を使用してリクエストデータに署名し、APIプロバイダーはリクエストを処理する前にその署名を検証します。
この追加のレイヤーは、攻撃者がリクエストを傍受し、変更する(たとえば、取引金額や引き出しアドレスを変更する)ことを検出なしに防ぎます。
対称キー
対称署名は、署名を生成するためにも検証するためにも、単一の共有秘密鍵を使用します。APIプロバイダーとユーザーは、同じ秘密鍵を保持します。最も一般的な実装はHMAC(ハッシュベースのメッセージ認証コード)であり、迅速で計算的に軽量であり、高頻度の取引API呼び出しに適しています。
トレードオフ:両方の当事者が同じ秘密鍵を共有するため、どちらか一方が侵害された場合、キーが露出します。
非対称キー
非対称署名は、秘密鍵(ユーザーが秘匿する)と公開鍵(APIプロバイダーと共有する)のキー対を使用します。ユーザーは秘密鍵でリクエストに署名し、プロバイダーは公開鍵を使用して署名を検証します。一般的な実装にはRSA署名とEd25519が含まれます。
主な利点は、プライベートキーがユーザーのコントロールを離れないことです。たとえAPIプロバイダーのシステムが侵害されても、攻撃者はあなたの代わりに署名を偽造できません。なぜなら、彼らは公開鍵しか持っていないからです。
APIキーのセキュリティリスク
APIキーは攻撃者にとって高価値ターゲットです。取引または引き出し権限を持つ盗まれたキーは、即座に財務的損失を引き起こす可能性があります。2024年および2025年の一般的な攻撃ベクトルには、以下が含まれます:
コードリポジトリの露出:自動化されたボットは、公開リポジトリ(GitHub、GitLab)で誤ってコミットされたAPIキーをスキャンします。一度見つかると、キーは数分以内に悪用される可能性があります。
サプライチェーン攻撃:npm、PyPI、または他のレジストリにある悪意のあるパッケージは、開発環境や実行中のアプリケーションからAPIキーを静かに抽出することができます。
フィッシングおよびソーシャルエンジニアリング:攻撃者はサポートチームや取引ツールプロバイダーを装い、ユーザーにキーを明かさせるために騙します。フィッシングの試みを認識する能力は極めて重要です。
マルウェアとキーロガー:侵害されたデバイスは、クリップボード、環境変数、または設定ファイルに保存されたキーをキャプチャできます。
中間者攻撃:HTTPSおよび適切な証明書検証がない場合、API認証情報は送信中に傍受される可能性があります。
APIキーの盗難の結果は深刻です。パスワードとは異なり、多くのAPIキーは自動的に期限切れにならず、取り消されるまで無期限に使用される可能性があります。一般的な暗号詐欺やソーシャルエンジニアリングの戦術を理解することは、認証情報を誤って露出させるリスクを減少させるのに役立ちます。
APIキー使用時のベストプラクティス
次の実践は、APIキーの侵害リスクを大幅に減少させることができます:
最小特権アクセス権を適用する
APIキーを生成する際には、アプリケーションが実際に必要とする権限のみを有効にします。ポートフォリオトラッカーは読み取り専用キーを使用するべきです。取引ボットは取引アクセスを持つべきですが、引き出し権は決して持つべきではありません。機能によってキーを分けることで、単一のキーが侵害された場合のダメージを制限できます。
IPホワイトリストを有効にする
各APIキーを特定のIPアドレスまたは範囲に制限します。キーが盗まれても、無許可のネットワークから使用することはできません。ほとんどの主要な取引所は、標準的なセキュリティ機能としてIPホワイトリストをサポートしています。
キーを定期的にローテーションする
キーのローテーションは定期メンテナンスとして扱います。新しいキーを生成し、アプリケーションを更新し、機能することを確認した後、古いキーを削除します。60日から90日のローテーションサイクルは一般的な基準です;疑わしい侵害があった場合は直ちにローテーションします。
キーを安全に保管する
ソースコード、バージョン管理にコミットされた設定ファイル、または共有ドキュメントにAPIキーをプレーンテキストで保存しないでください。本番環境ではシークレットマネージャー(クラウドホストまたは自己ホストのボールト)を使用するか、個人使用のために暗号化されたパスワードマネージャーを使用してください。
サブアカウントとバランス制限を使用する
主アカウントではなく、制限されたバランスを持つサブアカウントで自動化システムを実行します。これにより、ボットまたはそのキーが侵害された場合の影響範囲を制限できます。
二段階認証を有効にする
攻撃者がAPIアクセスを得た場合でも、アカウントの設定を変更したり、新しいキーを作成したり、引き出しアドレスを追加したりできないように、二段階認証(2FA)で取引所アカウント自体を保護します。
インシデントを監視し、対応する
新しいAPIキーの作成、権限の変更、および異常な活動に対して通知を有効にします。キーが侵害された場合:(1)取引所で直ちにそれを取り消す、(2)可能であれば引き出しを凍結する、(3)露出の原因を調査する、(4)根本原因が理解されてからのみ新しいキーを生成します。
FAQ
APIキーと秘密鍵の違いは何ですか?
APIキーは、リクエストを行っている人を特定します(ユーザー名のようなものです)。秘密鍵は、リクエストが正当で改竄されていないことを証明するための暗号署名を生成するために使用されます(パスワードや署名資格のようなものです)。これらは共に、識別と検証の両方を提供します。
読み取り専用APIキーだけで資金を盗まれることはありますか?
読み取り専用キーは取引や引き出しを実行することはできません。しかし、あなたの全取引履歴、残高、オープンポジションなどの機密情報を露出させる可能性があります。このデータは、ターゲットを絞ったソーシャルエンジニアリング攻撃に使用される可能性があるため、読み取り専用キーも保護され、ローテーションされるべきです。
APIキーはどのくらいの頻度でローテーションすべきですか?
アクティブに使用されるキーの場合、60日から90日ごとが合理的な基準です。一度きりのデータインポート(税務報告など)のために作成されたキーは、使用後すぐに削除するべきです。常にセキュリティインシデントや疑わしい露出があった場合には直ちにローテーションしてください。
APIキーが侵害された場合、何をすべきですか?
さらなる無許可アクセスを防ぐために、直ちに取引所でキーを取り消してください。無許可の取引や引き出しのために最近のアカウント活動を確認します。引き出し凍結を有効にします。露出がどのように起こったか(コードコミット、フィッシング、デバイスの侵害)を調査してから、交換用のキーを生成してください。
APIキーをサードパーティツールに与えるのは安全ですか?
ツールと権限によります。必要な最小限の権限のみを付与してください(通常は分析や税務ツール用に読み取り専用)。プロバイダーが暗号化と安全な保管を使用していることを確認してください。各サードパーティサービス用に別々のキーを作成し、個別にアクセスを取り消せるようにします。もはや使用しないサービスのキーは削除してください。
まとめ
APIキーは、デジタル経済における自動アクセスのゲートキーパーです。ログイン資格情報と同じ基本的な目的を果たしますが、しばしばアカウントやデータへのより広範で強力なアクセスを許可します。パスワードと同じように扱い、最小特権の原則を適用し、IP制限を有効にし、定期的にローテーションすることがリスクを減少させるための最も効果的なステップです。
さらに読む
APIキーとセキュリティタイプとは何ですか
レート制限によって禁止されない方法
Binanceアカウントのセキュリティを向上させる5つの方法
暗号学の歴史
BinanceスポットREST APIの使用方法
免責事項:このコンテンツは、一般情報および教育目的で「現状のまま」提供されており、いかなる種類の表明または保証もありません。これは財務、法的、またはその他の専門的なアドバイスとして解釈されるべきではなく、特定の製品やサービスの購入を推奨するものではありません。適切な専門アドバイザーからのアドバイスを求めるべきです。コンテンツが第三者の寄稿者によって提供された場合、その意見は第三者の寄稿者に属し、Binance Academyの意見を必ずしも反映するものではありません。デジタル資産の価格は変動的です。投資の価値は下がったり上がったりする可能性があり、投資した金額を戻すことはできないかもしれません。投資決定は自己責任で行い、Binance Academyは発生する可能性のある損失について一切の責任を負いません。詳細については、利用規約、リスク警告、Binance Academyの利用規約を参照してください。
