2023年07月08日
ログインシステム [システム開発研究室]
こんにちは!
ナビゲータのEVEです。
今日も、Prototype EVEの修正作業を実施しましたが、まだまだって感じです。ただ、経験曲線効果のおかげで、少しずつ速度を上げています。予定よりは遅れそうですが、なるべく早く、作業を完了できるように頑張ります。
[ログインシステム]
管理システムのログインシステムを解説する前に、まずは、通常システムと共通の部分について解説をしましょう。
ちょっと、見にくいですが、下記の図には、ログインまでの流れが書かれています。
順を追ってみてみましょう。
❶クライアントがログイン画面にアクセスします。
❷ログイン画面にアクセスしたことにより、サーバーは暗号化ファイル(JSON)をクライアントへ発行します。
❸クライアントは、パスワードを入力します。入力を完了し、ログインボタンを押下したときに、暗号化ファイルに基づきパスワードを暗号化します。
❹暗号化されたパスワードを、データベースの暗号化情報に基づき復号し、復号したパスワードを今度は、MD5によりハッシュ値を取得します。
❺MD5のハッシュ値と、データベースに予め登録してある、パスワードのハッシュ値を比較します。
❻ハッシュ値が等しい場合、セキュリティコードと、❺のハッシュ値を連結し、再度ハッシュ値を求めます。
❼❻で求めたハッシュ値をクライアントに送付しログインが成功です。
❼以降、サーバーは認証コードが正しいことを確認することにより、クライアントの真正性を確認します。
以上が、通常、管理システムで共通のシステムの部分になります。これ以降、管理システムでは、予めエクセルファイルで渡しておいたセキュリティ情報を画面の要求に基づき入力し、ログインします。
めんどくさいといっていたのは、このセキュリティ情報を事前にユーザーに配布しなければいけない点と、何回も、パスワードを入力するのと同様の操作をしなくてはいけないという点です。
このフレームワーク管理システムで使用しているログインシステム、映画ターミネータで使用されていた、システムをパクっています(笑)。
[次期システム]
次期システムでは、以下の変更を考えています。
@最新ハッシュ関数の導入
AセキュリティコードからSALT値への変更
B認証コードの定期的な変更(1時間位?)
@現在最新ののハッシュ値は、SHA3(512)だと思いますが、リリース時には何になっているか分かりません。そのため、最新という記述になっています。
Aセキュリティコードは、Prototype EVEで共通のコードとなっています。そのため、セキュリティコードが漏洩した場合、ユーザー全員のパスワードが脅威にさらされます。そのため、SALT値を導入することにより、ユーザ1人1人をセキュリティリスクから守ります。
Bですが、Prototype EVEの認証コードは、リプレイ攻撃に非常に弱い構造となっています。しかも、以前は、SSL/TLSによる暗号も行われていなかったため、非常に脆弱なものでした。ただ、今回は、SSL/TLSを導入したことにより、多分、このリスクはかなり低減されていると考えています。これは、SSL/TLSの仕様が、ハイブリッド型認証方式となっていることが前提です。このように、セキュリティが環境に左右されるのは当サイトのセキュリティポリシーとしては問題があるので、認証コードを定期的にかえるような仕様にしたいと考えています。
[あとがき]
昔のシステム、Prototype EVE(2006年〜2009年に追加)の仕様について、かなり、深い部分レベルの仕様について公開させていただきました。見ていただいて分かると思いますが、ハイセキュリティなシステムとなっています。そのため、既存のPrototype EVEシステムでも、十分なのですが、これから開発するEVEシステムは、より安心して使えるセキュリティを用意しています。
また、EVEシステムに先立ち、Prototype EVEの公開バージョン、New Prototype EVEでは、@Aの仕様を取り入れた形で公開します。SSL/TLSを導入済みという状況から考えても、現状でも普通のサイトよりはかなりセキュリティが高いですので、そちらも安心してご利用ください。
では、また!
■2023年7月8日現在
修正ファイル本数 10/28(5ファイル修正)
修正関数本数 19/78(8関数修正)
※修正対象関数が2本増えました。