TL;DR

アプリケーション プログラミング インターフェイス (API) キーは、呼び出し元のアプリケーションまたはユーザーを識別するために API が使用する一意のコードです。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 クライアント) の ID を認証するために使用されます。Binance Academy が CoinMarketCap の API にアクセスする場合、この API キーはリクエストとともに CoinMarketCap に送信する必要があります。

この API キーは Binance Academy のみが使用し、他の人と共有したり送信したりしないでください。この API キーを共有すると、第三者が Binance Academy として CoinMarketCap にアクセスできるようになり、第三者によるすべてのアクションは Binance Academy からのものであるかのように表示されます。

API キーは、CoinMarketCap 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 所有者が公開鍵のみを使用する必要があるため、秘密鍵はローカルで秘密のままにできます。

非対称キーを使用する主な利点は、署名生成キーと検証キーを分離することでセキュリティが向上することです。これにより、外部システムは署名を生成できなくても署名を検証できます。もう 1 つの利点は、一部の非対称暗号化システムでは秘密キーにパスワードを追加できることです。良い例は RSA キー ペアです。

API キーは安全ですか?

API キーの責任はユーザーにあります。API キーはパスワードに似ており、同様に注意して扱う必要があります。API キーを共有することはパスワードを共有することに似ており、ユーザーのアカウントが危険にさらされるため、共有しないでください。

API キーは、個人情報の要求や金融取引の実行など、システムに対して強力な操作を実行するために使用される可能性があるため、サイバー攻撃の標的となることがよくあります。実際、クローラーがオンライン コード データベースを攻撃して API キーを盗むことに成功した事例があります。

API キーの盗難は、重大な経済的損失につながる重大な結果を招く可能性があります。さらに、一部の API キーには有効期限がないため、一度盗まれたキーは、キー自体が取り消されるまで、攻撃者によって無期限に使用される可能性があります。

API キーを使用する際のベスト プラクティス

API キーは機密データにアクセスし、一般的に脆弱性があるため、API キーを安全に使用することが最も重要です。API キーを使用するときは、全体的なセキュリティを向上させるために、次のベスト プラクティス ガイドラインに従うことができます。

  1. 可能であれば、API キーを頻繁にローテーションしてください。つまり、現在の API キーを削除して新しいキーを作成する必要があります。複数のシステムがある場合、API キーの生成と削除は簡単です。一部のシステムでは 30 ~ 90 日ごとにパスワードを変更する必要があるのと同様に、可能であれば同様の頻度で API キーをローテーションする必要があります。

  2. IP ホワイトリストを使用する: API キーを作成するときに、キーの使用が許可されている IP のリスト (IP ホワイトリスト) を作成します。ブロックされた IP のリスト (IP ブラックリスト) を指定することもできます。こうすることで、API キーが盗まれた場合でも、認識されていない IP からアクセスされることはありません。

  3. 複数の API キーを使用する: 複数のキーを用意し、それらの間で責任を分割すると、セキュリティが広範な権限を持つ単一のキーに左右されなくなるため、セキュリティ リスクが軽減されます。また、キーごとに異なる IP ホワイトリストを設定して、セキュリティ リスクをさらに軽減することもできます。

  4. API キーを安全に保管する: キーを公共の場や公共のコンピューターに保管したり、元のプレーン テキスト形式で保管したりしないでください。代わりに、セキュリティを強化するために暗号化またはシークレット マネージャーを使用して各キーを保管し、誤って公開されないように注意してください。

  5. API キーを共有しないでください。API キーを共有することは、パスワードを共有することと似ています。共有すると、自分と同じ認証および承認権限を別の相手に与えることになります。侵害された場合、API キーが盗まれ、アカウントへのハッキングに使用される可能性があります。API キーは、自分とそれを生成するシステムの間でのみ使用してください。

API キーが侵害された場合は、さらなる被害を防ぐためにまず API キーを無効にする必要があります。金銭的損失がある場合は、事件に関連する重要な情報のスクリーンショットを撮り、関係機関に連絡し、警察に報告してください。これは、失われた資金を取り戻す可能性を高める最善の方法です。

終わりに

API キーはコア認証および承認機能を提供するため、ユーザーはキーを慎重に管理および保護する必要があります。API キーの安全な使用を確保するには、多くのレイヤーと側面があります。全体として、API キーはアカウントのパスワードのように扱う必要があります。

参考文献

  • 一般的なセキュリティ原則

  • よくある暗号通貨詐欺 5 つとその回避方法