オレオレログ(オラグーン)を開発中に思ったことを。
ログイン機能を改めて考え直す
オラグーンの核とも言える機能に、メール送信によるログの登録機能があるのですが、極端な話、これができるんだったらログイン機能て無くてもいいんじゃね?と思ったわけです。
何故か?
メール送信によるログ登録機能
まずは簡単に、この機能の、ユーザとサーバ側のフローの説明します。
- ユーザ:メールを送信
- サーバ:メールを受信
- サーバ:メールからあて先と(あれば)添付ファイルデータを取得
- サーバ:あて先から会員を判別し、メールから取得しデータをその会員のログとして登録
- サーバ:あて先に対して、登録完了メールを返信
- ユーザ:登録完了メールを受信
- ユーザ:メール内のURLをクリック
- サーバ:URLに含まれているキーを元に、先ほど登録されたログを表示(このとき、すでにサーバはアクセスしてきたユーザを会員として認証済み)
ポイントは2つ。太字にもしていますが、ログインすることなく、自分のログを登録でき、かつ、最終的にはサーバにはすでに認証済み状態にすることができています。
そもそもログインて、なに?
ログインは、会員サイトのように、会員にしか提供しないサービスがある場合に必ずある機能です。アクセスしてきているユーザが、会員である場合のみ、そのサービスを使えるようにしないといけないため、アクセスしてきたユーザが誰なのかをサーバが認識する(=認証)必要があります。
認証方法は?
もっとも典型的なのは「ID」と「パスワード」という項目で認証を行います。「ID」だけで個人を識別することができるのですが、もし「ID」が他のユーザにばれてしまうと、不正利用される恐れがあります。それを「パスワード」を設けることで防いでいるわけです。
メールだけで認証はできるのか?
オラグーンの場合、メールアドレスが「ID」になります。そのため4.の太字、あて先から会員を判別ができます。これで、個人の特定はできますね。
不正利用は大丈夫なのか?
当然、メール送信というのはSMTPによる通信にすぎないため、いくらでも偽装できると思います。
不正利用を想定してみる
たとえば、オラグーン会員のAさんのケータイのメールアドレスが「hoge@example.com」だったとして、悪い人が、これがあて先になるような偽装メールを送信したとします。
2.3.と、サーバは処理を行い、4.でAさんからのメールデータと勘違いしてしまいます。これは、よくない状態です。
しかし、5.6.で、サーバは返信を行います。このとき、「hoge@example.com」に対して、メールを送信するわけなので、受信するのはAさんのケータイになります。
Aさんは自分はメールを送っていないのに、登録完了メールを受け取るので、すぐに不正送信に気づくことができるので、対応できます。
まとめ
メール送信によるログの登録機能で、認証ができる。
理由
メールアドレスによる個人の特定と、自動返信による不正利用の防止を実現しているため。
終わりに
いやいや、むりだから、とか、つっこみ歓迎です。まだまだ勉強中の身ですので。。。
追記 2009/3/27
つっこまれた
この話を社内でしたときに出たつっこみ
- 他人のメールアドレスを偽装したメールを送りまくって嫌がらせができるのでは?
確かにそのとおりですね。これをするメリットは無さそうですが、対策が必要だと思うので考えてみました。
- 自動返信機能をオプションにして、on/off切り替えが出来るようにする
- 連続投稿に制限をかける
1.では、とりあえず嫌がらせを受ける側に、自動返信のoffを選ぶように促せば、登録完了メールが大量にくることは防げそうです。
2.これは利便性を損なう可能性あるのであまりやりたくないのですが、連続でメールできないようすると(たとえば5分で1通に制限)、大量に嫌がらせメールがくることはなくなります。
しかし、、、どちらも根本的な解決には至っていないですね。。。ログは残ってしまいますしw
やはり、メール送信のみの機能というリスクはある程度仕方無いんでしょうか。。。。
|
タグ: lifelog
ログイン機能についての考察