アプリケーション プログラミング インターフェイス (API) キーは、アプリケーションまたはユーザーを識別するために API によって使用される一意のコードです。 API キーは、誰がどのように API を使用するかを追跡および制御し、パスワードやログインと同様の方法でアプリケーションを認証および認可するために使用されます。 API キーは、単一のキーまたは複数のキーのセットにすることができます。ユーザーは、データの盗難や漏洩から身を守るために、セキュリティに注意を払う必要があります。
APIとAPIキー
API キーとは何かを理解するには、まず API 自体を確認する必要があります。アプリケーション プログラミング インターフェイス (API) は、2 つ以上のアプリケーション間の情報交換を可能にするソフトウェア仲介手段です。たとえば、CoinMarketCap API を使用すると、他のアプリケーションが価格、出来高、時価総額などの暗号通貨データを取得して使用できるようになります。
API キーは、単一のキーまたは複数のキーのセットにすることができます。さまざまなシステムは、ログインやパスワードと同様に、これらのキーを使用してアプリケーションを認証および認可します。 API キーは、API を呼び出すアプリケーションを認証するために API クライアントによって使用されます。
たとえば、Binance Academy が CoinMarketCap API を使用したい場合、CoinMarketCap は API キーを生成し、それを使用して API へのアクセスを要求している Binance Academy (API クライアント) を認証します。 Binance Academy が CoinMarketCap API にアクセスすると、API キーがリクエストとともに CoinMarketCap に送信されます。
この例では、Binance Academy のみが API キーを第三者と共有せずに使用できます。この API キーを共有すると、サードパーティが CoinMarketCap にアクセスし、Binance Academy に代わってアクションを実行できるようになります。
さらに、CoinMarketCap API は API キーを使用して、アプリケーションが要求されたリソースへのアクセスを許可されていることを確認できます。 API 所有者は、API キーを使用して、リクエスト タイプ、トラフィック、ボリュームなどの API アクティビティを追跡することもできます。
APIキーとは何ですか
API キーは、誰がどのように API を使用しているかを制御および追跡するために使用されます。 「API キー」という用語自体にはいくつかの意味があります。システムによってはコードが 1 つしかない場合もあれば、1 つの API キーに対して複数のコードがあるシステムもあります。
言い換えれば、API キーは、呼び出し元のユーザーまたはアプリケーションを認証および認可するために API によって使用される一意のコードまたは一意のコードのセットです。認証に使用されるコードもあれば、リクエストの正当性を確認する暗号署名の作成に使用されるコードもあります。
この認証コードは「API キー」と呼ばれますが、暗号署名を作成するためのコードは「秘密鍵」、「公開鍵」、「秘密鍵」などさまざまな名前が付けられます。認証には、関係するエンティティの特定と身元の確認が含まれます。
次に、認可によって、アクセスが許可される API サービスが決まります。 API キーはアカウントのログインとパスワードと同様に機能し、他のセキュリティ機能にリンクして全体的なセキュリティを強化することもできます。
API 所有者は、特定のエンティティ専用に各 API キーを生成し (詳細は後述)、ユーザーの認証や認可を必要とする API エンドポイントが呼び出されるたびに、対応するキーが使用されます。
暗号署名
一部の API キーは、追加の検証層として暗号署名を使用します。ユーザーが特定のデータを API に渡したい場合、別のキーによって生成されたデジタル署名をリクエストに追加できます。暗号化を使用すると、API 所有者はデジタル署名が送信されたデータと一致することを確認できます。
対称および非対称の署名
API 経由で送信されたデータの署名には、次のカテゴリの暗号キーが使用されます。
対称キー
1 つの秘密鍵を使用してデータに署名し、署名を検証します。対称キーを使用する場合、API 所有者は API サービスによる署名検証に使用される API キーと秘密キーを生成します。単一のキーを使用する主な利点は、署名の生成と検証のプロセスが高速化され、必要な計算能力が少なくなることです。優れた対称キーの例は HMAC です。
非対称キー
これらには、秘密鍵と公開鍵という 2 つの鍵が使用されます。これらは互いに異なりますが、暗号化された接続があります。秘密キーは署名の生成に使用され、公開キーは署名の検証に使用されます。 API 所有者は API キーを生成し、ユーザーは秘密キーと公開キーを生成します。署名を検証するために、API 所有者は公開キーのみを使用し、秘密キーは秘密にされます。
非対称キーを使用する主な利点は、署名生成と署名検証のタスクを分離することでセキュリティが向上することです。これにより、外部システムは署名を生成することなく検証できるようになります。さらに、一部の非対称暗号化システムは、秘密キーへのパスワードの追加をサポートしています。例としては、RSA キー ペアがあります。
APIキーのセキュリティ
API キーのセキュリティはユーザーの責任です。 API キーはパスワードとして機能するため、同様の注意が必要です。 API キーを第三者と共有しないでください。パスワードを共有するのと同様であり、アカウントが危険にさらされる可能性があります。
API キーは、個人情報の要求や金融取引の実行など、機密性の高いシステム操作の実行に使用される可能性があるため、サイバー攻撃の標的になることがよくあります。攻撃者がコードを使用してオンラインデータベースを攻撃し、APIキーを盗むケースはすでに発生しています。
API キーの盗難は、悪影響や重大な経済的損失につながる可能性があります。さらに、一部の API キーには有効期限がないため、キーが無効になる前に攻撃者がそれらを使用する可能性があります。
API キーを安全に使用するためのヒント
API キーは機密データへのアクセスを提供するため、API キーを安全に使用することが重要です。 API キーを安全に使用するには、次のガイドラインに従ってください。
API キーを定期的に変更するようにしてください。キーを変更するには、現在の API キーを削除し、新しい API キーを作成する必要があります。複数のシステムを使用する場合、API キーの削除と生成は難しくありません。一部のシステムでは 30 ~ 90 日ごとにパスワードを変更する必要があるのと同様に、キー所有者は可能であれば同じ頻度で API キーを変更する必要があります。
IP アドレスのホワイトリストを作成します。新しい API キーを作成するときは、このキーの使用を許可する IP アドレスのリスト (IP ホワイトリスト) を作成します。さらに、ブロックされた IP アドレスのリスト (IP ブラックリスト) を指定することもできます。その後、キーが盗まれた場合、認識されない IP アドレスはそのキーを使用できなくなります。
複数の API キーを使用します。アカウントのセキュリティは、すべてのタスクに一度に使用される 1 つのキーに依存しないため、複数のキーを用意し、キー間でタスクを分散するとリスクが軽減されます。さらに、キーごとに IP アドレスの異なるホワイト リストを作成できるため、セキュリティ レベルが大幅に向上します。
API キーが安全に保管されていることを確認してください。キーを公共の場所、公共のコンピュータ、またはプレーン テキスト形式で保存しないでください。各キーのセキュリティを高めるには、暗号化または機密データ管理サービスを使用し、誤って公開されないよう注意してください。
API キーを誰とも共有しないでください。誰かに API キーを与えることは、パスワードを与えることと同じです。この場合、サードパーティはあなたと同じ認証および認可機能を受け取ります。データ漏洩が発生した場合、API キーが盗まれ、アカウントのハッキングに使用される可能性があります。 API キーは、ユーザーとそれを生成するシステムのみが使用する必要があります。
API キーが第三者の手に渡った場合は、さらなる被害を防ぐために必ず無効にしてください。経済的損失が発生した場合は、事件に関する重要な情報のスクリーンショットを撮り、関連機関に連絡するとともに、警察に被害届を提出してください。こうすることで、失われた資金を取り戻す可能性を高めることができます。
ついに
API キーは認証および認可機能を提供するため、ユーザーは API キーを安全に保管し、注意して使用する必要があります。 API キーを保護するにはさまざまなレベルと方法があります。 API キーはアカウントのパスワードと同じように扱う必要があります。
推奨読書
一般的な安全原則
5 つの一般的な種類の暗号通貨詐欺とその回避方法