2012年01月06日

暗号化ライブラリ「crypto」の使いどころ

ErlangでAESとかの暗号化を行いたいときに使う「crypto」ですが、OpenSSLのライブラリ(シェアードオブジェクトやDLL)をPort経由で使ってるんですね。

Simple dungeonで、Mnesiaに保存する際にパスワードや連絡先メールアドレスなどを暗号化しようとしているのですが、この構成だと、多数のErlangプロセスが好き放題呼ぶと、ここが隘路になるので、使いどころに注意が必要な感じです。

まあ、ちょっとやそっとじゃここがボトルネックになるほどの負荷はかからないと思うのですが、いったんボトルネック判定されたら、そこからの対策が難しいので、たまーに参照するぐらいの頻度にしておきます。。。
posted by へろ at 17:31| Comment(2) | TrackBack(0) | Erlang
この記事へのコメント
秒間数千レベルで crypto ライブラリを呼んでもまずは CPU がボトルネックになるので、気にせず使っても問題ありませんよ。

また Mnesia に暗号化してデータを放り込むくらいなら EMysql や epostgres などを使って外部 SQL を使った方がいいと思います。

Mnesia は「あくまで erlang term がそのまま保存できる」というメリットがあるデータベースですので。
Posted by voluntas at 2012年01月06日 22:30
voluntasさん、ありがとうございます。

なるほど、CPUが律速になりますか。あとで自分でも試してみますが、確かにPortよりも先にボトルネックになりそうですね。

Mnesiaに暗号化してから入れる点については、自分でも「インピーダンス ミスマッチ」かなあとは考えたのですが、Mnesiaを使うからにはフロントのWeb(Yaws)サーバーにRAMのDBを立ち上げたくなるので、そこにむき出しのパスワードとかむき出しのメアドを置くのも気持ち悪いなあというところがありまして。

MnesiaはSQLじゃないので、SQLインジェクション攻撃とかとは無縁なわけですが、「気持ち悪い」感がぬぐえなくて。気にしすぎなのかなぁ。。。
Posted by へろ at 2012年01月07日 14:16
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/52917906

この記事へのトラックバック