/ 最近 .rdf 追記 編集 設定 本棚

脳log[20090617] > AmazonのAPI認証導入はOSSに対する挑戦だよなぁ(3) - ただのにっき(2009-06-17)



2009年06月17日 (水) >http://www.watch.impress.co.jp/eizodirect/fx2431tv/ 「優性遺伝」は「優れた性質が遺伝すること」ではないよ。むしろ世の趨勢がフルHD(1920×1080)パネルな今、WUXGA(1900×1200)は劣性遺伝子ではなくて? それが受け継がれたのを評価するところは同意するが。

> AmazonのAPI認証導入はOSSに対する挑戦だよなぁ(3) - ただのにっき(2009-06-17)

OSSに関しましては、当初御理解の通り、ソースコードが公開されてしまうことから、秘密キーを含む開発者様のキーを埋め込んだまま公開されることは、ライセンス上の問題が発生します。

よって、OSSのユーザ様それぞれにAPIのAccessKeyIDおよび秘密キーを利用開始時に入力いただくという方法を強くお勧めいたします。

だーよーねー。賢い迂回路が用意されてるのかと期待してたのに……。これで特定のサーバーに代理でリクエストしてもらう方法まで禁止されたら Amazonボイコットだべ(個人的に)。チャンスだ。bk1!


コンパイル型言語を使っていても stringsみたいなの、あるいはサクラエディタのようにヌル文字を扱えて正規表現が使えるエディタで「\b[\w\d+/]{40}\b」(文字種は適当です)を検索してみるとかで簡単に秘密キーを抽出できるのでは、という心配は不要なのだろうか。こちらにはパスワードを保護するのと同等の策を講じるような動機がないもんね(アカウントの停止はあるかも)。秘密キーの「秘密」なんてのはとっとと有名無実化すればいいよ。


PROXY設置は構わないんだって。

>Amazon API認証のPROXYを書いたよ(AmazonのAPI認証導入はOSSに対する挑戦だよなぁ(4)) - ただのにっき(2009-06-19)

なんだかなあ。何がしたいんだろう。AccessKeyIdとオプションパラメータの AssociateTagで何が不足だったんだ。他のサービスと統一したかったのか?


もちろん上で挙げた方法は文字列を分割するだとかシーザー暗号を使うだとかで対抗できるけれど、単にバイナリファイルであるというだけで秘密キーを秘密にしていたと言い訳できるんじゃないかと。そして自発的に強固な保護策を講じる動機はないよ。

Amazon Web Services Developer Community : Docs: Product Advertising API (Version 2009-03-31)から引用。

It is important to keep it(Your Secret Access Key) confidential to protect your account.

To provide proof that you truly are the sender of the request, you must also include a digital signature.

AccessKeyID(AWSAccessKeyId/SubscriptionId/DeveloperToken)より確かな識別情報が欲しいだけなの? Proxyの設置が許されてることから、より広範な、例えばブログの書き手個々に SecretAccessKeyを取得してもらって識別する意図はないんだろうし。(だったら Proxyを設置する以外には、そういう対応を利用者にとってもらわなければならないスクリプトはとんだとばっちりだ)

あるいは暗号化? SecretAccessKeyが適切に保護されなければそれも無意味だよ。"YOUR SECRET ACCESS KEY GOES HERE" なサンプルコードばっかりなんだけど。これはない。他に方法がある。

どちらにしろ、手間ひまかけて AccessKeyIDに毛を生やす結果になるだけの気がするから、悪態のひとつもつきたくなるわけ。

うろついてるうちに見つけた(順序が間違ってる!) > Amazon.com Product Advertising API License Agreement

  • 他人の IDでアクセスしたらダメだって。まあ、当たり前。
  • 画像のキャッシュはだめ。画像の URLは 24時間を限度にキャッシュ可。画像以外のキャッシュも 24時間まで。
  • 値段と在庫の情報は鮮度に厳しいようで、いろいろと取り扱い上の注意が……。
  • インストールされたクライアントごとに 1 call per second を超えないこと。などなど

(読んでるうちに) SecretAccessKeyが使い捨て可能なことを思い出した。にょきにょき再生してくるしぶとい毛なのかも。手間をかける価値は……あるかなあ?

期限が来て画像が表示できなくなったら isbn* なメソッドを Amazon以外に置き換えてやろうかしら(手間は一緒だし)。


よくみかける G-Toolsは http://g-tools.com/ でリンクを作成してるのね。つまり今回の変更は利用者には影響がない。はてなダイアリーでも影響がない。tDiary.Netもたぶんない。自前のサーバーでサービスを提供しているところはみんなそう。自分でツールをインストールするような人間は自分で SecretAccessKeyを取得してソースに埋め込むこともできるでしょ、とでも思われているのか数が少なくて無視されているのか。たしかにできるとは思う。やりたくないけど。リンクを作成するのにアマゾンのアカウントをとらないといけないなんて、先に挙げたサービスを利用するのと比べて一段ハードルが高い。代替案の Amazonの手前に(Proxy)サーバーを一台はさむ方は無駄と脆弱性を理由に却下したい。

Amazon自身がリクエストの代行を行うサーバーを設置したらいいんじゃないの。リクエストの Identificationなんてなくなるけど、つきつめればそういう結果になる道を容認したのは自分なんだし。

なんで自分の首を絞めるようなこと(代理リクエストを許可したことを責めているように読めること)まで書いているのか自分でも不思議だったんだけど要は「無駄無駄無駄無駄ッ!」ということなんだろう。Authenticationの導入自体が既に疑問だけど、どうせ導入するなら無駄にならないように手を尽くせ、とこう言いたいらしい。