API Keyの管理についてその①

セキュリティ

先日steamのAPI Keyを取得して簡単なAPIを動かしてみましたがその際に気になったことがあったので簡単に調査してみました。

内容については悪用を促すものではないので、その点についてご認識ください。

また、記載する内容については個人的な見解となりますので予めご了承ください。

調査した内容

調査した内容は簡単です。

API Keyが外部に公開されているものはないかです。

例えば、「Steam Web API 利用規約」には以下のように記載されています。

You agree to keep your Steam Web API key confidential, and not to share it with any third party. This license is personal to you and specific to your Application. You agree that you will be personally responsible for the use of your Steam Web API key.
※利用規約より一部抜粋

API Keyはちゃんと管理して、第三者に教えないでね。なんかあったら責任取ってもらうからね。的な内容が書かれています。

また、Twitterの「開発者契約およびポリシー」では以下のようになっています。(日本語で記載されていて非常に良いですね!)

F. セキュリティ。開発者は、Twitter APIのセキュリティを維持し、Twitter APIのトークン、キー、パスワード、もしくはその他のログイン認証情報を第三者に利用可能にしてはならないものとします。

上記の通り、各API Key(トークンも含む)の管理は厳重に行わなければなりません。

調査結果

記事にしているので、大方の人は予想がついているかと思いますが、ちらほら見つかります。(どのKeyが見つかるかは言いませんが。)

一時間程度のブラウザを使用した検索を行いましたが、簡単に見つけられます。なお、特にテクニカルなことはしていません。

ただし、見つけたAPI Keyが使用できるかどうかはもちろん試していませんので、すでに使用できないものが載っている可能性もあります。(それでも載せてはいけません。)

APIについては個人で使用している場合もありますが、企業で使用している場合も多々あるかと思います。(その場合契約形態が違うかもしれないですが、ここでは触れません。)

API Keyが悪用されて、API Keyが失効になってサービスがストップという結果になったら、大打撃を受ける可能性もあります。

残念なパターンとしてはJavaScriptでAPIを使用しており、表示されているHTML上にはAPI Keyは含まれていないのですが、別で呼んでいるファイルにAPI Keyが記載されているパターンですね。

多少気を使っているのは感じるのですが、HTML上に記載されているのと対して変わりないので意味がありません。

今一度自分たちのKeyやトークンの状態を確認することをお勧めします。

不明点や要望やこういったこともやって欲しいとの要望があれば、お問い合わせページやコメント、ツイッターからでも結構ですので、気軽にご連絡ください。

 

コメント