web-dev-qa-db-ja.com

ユーザーが自分のユーザー名を変更できるようにすることは良いことですか、悪いことですか?

このサイトのほか、このサイトのセキュリティに関する詳細情報を探すためにオンライン全体を調べましたが、何も見つかりませんでした。私の特定のケースでは、製品はWebサイトですが、この質問は多数のユーザーをホストするすべてのソフトウェアに当てはまると思います。

ユーザー名を変更できるウェブサイトがたくさんあることは知っていますが、それを許可していないウェブサイトもたくさんあります。それを許可しないものは単純化のためだけではなく、おそらくセキュリティのためかもしれません。

私の質問は、タイトルが尋ねるのと同じです:

セキュリティの観点から、個人がユーザー名を変更できるようにするのは良い習慣か悪い習慣ですか?

それが適切に行われている場合(つまり、ユーザー名の重複を不可能にし、ユーザー名が含まれていないことに関してパスワード要件が依然として満たされていることを確認するために現在のパスワードを入力する必要があるなど)、私は現在それを許可しない理由は考えられませんが、私はできます助けるが、私が見逃しているものがあると思う。

ユーザー名を変更できるようにするユーザーの観点からの利点があることを知っています。たとえば、ユーザー名をメールアドレスに設定し、後で別のメールアドレスを使用する場合などです。代わりに、ユーザー名の変更を許可した場合のアプリケーションとログインプロセスのセキュリティに関する利点とリスクの違いに興味があります。

編集:

回答のいくつかは、パブリックに表示される名前に関して良い点をもたらしますが、明確にするために、質問はパブリック表示名ではなく、ログインに使用される一意のユーザー名に関するものです。

114
Jeff Y

多くの人々は、セキュリティとコミュニティの両方の観点から名前の変更を許可しない理由を検討しました。ただし、ユーザー名の変更を許可する正当な理由はたくさんありますユーザー名が表示名とは別であっても、たとえば:

  • 結婚、家族の状況、ストーキング/ハラスメントの脱出などのために、誰かが実際の名前または呼び出したい名前を変更しました

    それが単なるユーザー名の場合でも、トラウマを伴う古い名前を使用しなければならないことは、トラウマをさらに促進する可能性があります。また、ストーカー/嫌がらせ者がターゲットのログイン認証情報を知っている可能性が非常に高く、認証情報の両方の部分を変更できることで、攻撃対象が低くなります。さらに、放棄されたユーザー名へのログイン試行を監視することで、不正なエージェントに対する訴訟を起こすことができます。

  • 人々は性転換を進めることを決定しました

    非公開のユーザー名のコンテキストであっても、自分の「死んだ名前」を使わざるを得ないのも非常にトラウマです。 (私はこれについて個人的な経験を話すことができます。)

  • ユーザーは、何らかの理由で自分に適さなくなったユーザー名を持っています

    これは内部のユーザー名への影響は少ないですが、私の意見では、親切に誤解する方が良いです。

これらはすべてユーザーの快適性のために重要であり、多くの場合人々はとにかく新しい名前で新しいアカウントを作成するだけなので、それをサポートするでしょう。

ソーシャルエンジニアリングを回避することは確かに重要ですが、さまざまな形式の検証(いくつかのソーシャルネットワークで見られる)、公開鍵暗号法、プロファイルインジケーター(「名前の最終変更はNか月前に変更されました;名前が変更されました。 K回」)。また、この質問は、パブリックディスプレイ名ではなく、内部のユーザー名に関するものに編集されているため、これらの懸念は議論に密接な関係もありません。

また、ユーザー名を変更することによって提供される多くの攻撃面は、単に新しいアカウントを作成する人にも存在し、ユーザー名の変更オプションが利用できない場合、ユーザーはおそらく同じパスワードを使用して新しいアカウントを作成することに注意してください古いものと同様に、セキュリティを危険にさらす可能性のあることをしています。

ユーザー名の変更の監査証跡を維持し、以前に使用したユーザー名を使用する新しいアカウントの作成を許可しないことをお勧めします(少なくとも、ユーザー名が過去、たとえば1年以内に最後に使用された場合)。ただし、理由はありません。ユーザー名の変更には正当な目的があり、すべてのアカウントレコードは最初から内部専用の抽象IDに正規化する必要があるため、ユーザー名は最初にデータをユーザーアカウントに関連付けるために使用される主キーである必要があります。

113
fluffy

彼らが彼らのユニークな識別子を変更することができない限り、私は言うでしょう。つまり表示される名前は変更できますが、その名前は不変のユーザーID番号に関連付けられています(これにより、DBAも幸せになります)。また、ユーザーが自分の名前を別のユーザーの古い名前に変更できないようにします(Andersが話している詐欺の可能性を軽減するため)。つまり、ある時点でユーザーが通過したすべての名前を保存することになります。

ユーザー名の変更をリクエストし、正当なケース(電子メールのケースなど)を処理し、ユーザーが自動化できる方法がないほうがよい場合があります。

35
K.B.

これが育てられなかったことに少し驚いています。しかし、多くのサイトでユーザー名の変更が許可されていない理由は、攻撃者がアカウントのすべてを完全に変更できるため、ユーザーのアカウント情報が盗まれた場合に問題が発生するためだと思います。

詳細が盗まれ、すべてが完全に変更された個人のアカウントを復元しようとすることは、間違いなくより複雑です。変更されることのない共通の情報があると、ユーザーは万が一アカウントにアクセスできなくなっても、自分のアカウントを簡単に参照できます。

ここでの他の回答のいくつかはより良い解決策を提供したと思いますが、ユーザー名の変更を許可することのセキュリティへの影響に関して、あなたが実際に尋ねていたものに触れたのは確かではありません。

8
Rawrskyes

既に述べたように、ユーザーがユーザー名を簡単に変更できるようにすることで(曖昧さをなくすために「表示名」と呼びましょう)、ユーザーが他のユーザーに嫌がらせや詐欺の結果をかわすことが容易になります。サイトにソーシャルな側面がある場合、禁止、ブロック、レポート、チャット履歴などがユーザー名の切り替えを通過するかどうかを検討します(つまり、名前が変更されていても、ユーザーは同じアカウントにアクセスしていることに気付きますか? )。

考慮すべきもう1つのポイントは、匿名性またはプライバシーの問題です。誰かが自分の本名でアカウントを作成し、何らかの理由で自分の本当のIDをそれに関連付けたことを後悔していることはかなり頻繁にあります。これは、いじめを受けたことが原因である場合もありますが、正当な理由や、人生の個人的な詳細を過度に共有したり、いじめの犠牲者となったりすることがよくあります。この最近の質問は別の例として思い浮かびます:

誤って別のWebサイトのユーザー名としてWebサイトのパスワードを入力しました

この場合、サービスチケットを送信して人間が確認するか、限られた数のアカウント名の変更を許可すると、合理的なアプローチのように聞こえます。

8
Mike Ounsworth

現在、変更をリクエストする連絡先の個人に関する提案を使用していますが、手作業のため拡張性が低く、確認のためにセキュリティの質問への回答を要求する必要があります。

それは間違いです。手動で行う必要があるだけでなく、そのような要求を処理するすべての人にセキュリティ応答応答を強制する必要があります。

コントロールを維持したい場合は、半自動化します。ユーザーにすべての準備作業を行わせます。つまり、新しい名前を入力し、理由を記入し(必要な場合)、セキュリティの質問に答えます。これで、ヘルプデスク担当者は要求を許可または拒否するだけで済みます。


ユーザー名の変更を許可する理由と拒否する理由の多くは、他の回答に記載されています。ただし、途中で行ってもよいことに注意してください。たとえば、1年に1回など、単一の自動変更を許可します。これは、リクエストの99%を処理するのに十分寛大ですが、ほとんどの乱用を防止するのに十分な制限があります。

8
maaartinus

ユーザーがユーザー名を変更できないようにした方がよいと私は主張しますが、それは本当に脅威モデルに依存します。これを許可する場合の長所と短所は次のとおりです。

長所:

  • ユーザーの資格情報が別のサイトで侵害された場合、ユーザーが自分のユーザー名を変更できるようにすると、侵害されたサイトから自分のサイトへの資格情報の照合が困難になり、資格情報の詰め込み攻撃を実行することがさらに困難になります。ユーザーが自分のパスワードを変更しても同じ目標が達成されることに注意してください。

短所:

  • 上記のように、ユーザーがサイト上で相互にソーシャルエンジニアリング攻撃を実行することが容易になります。
  • サイトが複雑になり、潜在的なセキュリティバグの数が増えました。たとえば、重複をチェックすると、ユーザー列挙の脆弱性が発生します。
6
Dan Landberg

基本的に、2つの競合する問題のバランスをとっています。3つ目の要因は、最初の段階です。1つ目は、サイトのユーザーのセキュリティです。ユーザー名を変更すると、他のユーザーをだまして簡単に詐欺することができます。 2つ目は、ユーザー名を変更することで、他のユーザーをだまして簡単に離れさせることができるということです。

嫌がらせを受けたユーザーは、すぐに猶予できるため、ユーザー名を変更したいと考えています。あなたが最初の防御によって得ることができるので、他の人に嫌がらせをする人々はそれを変えたいです。もう1つの要因は、可動部品が多いほど、ヒットするものが多くなると、安全性が低下することです。

あなたの最初の行動方針は、ここでどちらに傾くかを決めることです。詐欺師の防止に重点を置いていますか、それとも環境をできるだけ安全にしようとしていますか?安全な環境を作成することは、変更を自動化しないことを意味する可能性があること、およびユーザー名を変更する理由には、良い点と悪い点の両方があることに留意してください。それはあなたがあなたがあなたのサイトについて知っていることに基づいて理解することです。 2番目のステップは、これを確実に埋め込むことができるかどうかを確認することです。

この時点でそれはフローチャートです。むしろ自動化したいのですが、安全に実行できませんか?しないでください。詐欺師やその他のソーシャルエンジニアリング攻撃に問題がありますか?しないでください。変更を簡単にし、安全に実装したいですか?やれ。

他の人が示唆しているように、ユーザー名を追跡することは非公開で自分だけが利用できる場合(セキュリティ上の理由で変更があった場合は理想的に非表示にする)でもよい考えであり、ユーザー名の可用性チェックを3つほど継続してユーザー名サイトは(そして安全を確保するために何か)役立つでしょう。

最後に、スケーラビリティについて言及しました。スケールアップすると、セキュリティ上の理由から実行できないことを自動化し、別の方法で攻撃から防御することが容易になります(安価に読めます)。その例についてはTwitterを参照してください。そのポイントに達したら、自動化しますが、早ければ早いほど良いでしょう。

4
Christopher

私の経験では、当初計画されていなかったユーザー名の変更を許可すると、特に何年も前の開発者が各ログエントリに主キーではなくユーザー名を追加することを決定した避けられない状況では、監査/ロギングが少し難しくなります。

これは、特にアマチュア/アウトソーシングの開発者を雇った場合に発生します-ログエントリがユーザー名を元のプライマリキーにマッピングしていない場合は、日付を手動で相互参照することによって法的に再構築する必要があるガベージになります活動の。

したがって、これを有効にする前に、可能性のあるロギングソリューションを調べて、ユーザー名の代わりに、またはユーザー名の代わりにpkが記録されていることを確認して、ユーザー名の変更全体でIDを追跡できるようにすることをお勧めします。

3
Ivan

私の意見では、これはセキュリティの1つよりも戦略またはアーキテクチャの問題です...各ユーザーの内部で一意の識別子(たとえば、DBの一意のID)を保持することを確認する限り、決して変更されませんが、それは変わりませんtはどこにでも表示する必要があります)、およびユーザーごとの変更履歴。ユーザーはログインまたはユーザー名を変更できる必要があります。ユーザーのページに変更履歴を表示するかどうかは、ソフトウェアの目的と使用方法によって異なります。

私は個人的に、そのような恣意的な制限を課しているサービスを非常に苛立たせています(「ユーザー名を変更できない」、「ログインを変更できない」、「過去に使用したパスワードを再利用できない」など)。 。

ただし、3つのケース(一般的なケースも含む)の間に差をつけることができます。

  1. オフラインソフトウェア

  2. イントラネットサービス

  3. インターネットサービス

  4. 概要

1-オフラインソフトウェア

完全にオフラインのソフトウェアの場合、ユーザーは常にログインを変更できる必要があります。ここはすべてローカルなので、変更を禁止する理由はありません。

2-イントラネットサービス

イントラネットサービスの場合、ユーザーが管理者に直接連絡する簡単な方法があることを期待します。

ログインを変更するための最も安全な方法は、手動の手順かもしれません。しかし、おそらく手順を自動化する安全な方法を確実にすることも可能です。

しかし、それでもなお、私見では、ユーザーはログインを変更できる必要があり、ログインはユーザーの一意のIDから完全に独立している必要があります。

3-インターネットサービス

オンラインサービスの場合、ログインはalwaysがユーザーのメールアドレス(または、場合によっては携帯電話の番号)である必要があると思います。ただし、インターネットサービスであればすぐに、ユーザーにはメールアドレスが必要で、電話番号の使用はお勧めしません)。

その場合、ユーザーはいつでも自分の電子メールアドレスを変更できるため、ログイン(つまり、電子メールアドレス)を変更できるはずです。

もちろん、その場合は、適切な手順を確認して、変更要求が発生したときに、要求者がアカウントの所有者であることを確認できるメカニズム(確認リンクが記載された確認メール)があることを確認する必要があります。有効期限、たとえば24時間としましょう。ただし、これはケースによって異なります)。

4-まとめ

  • ユーザーは常にログインを変更できる必要があります
  • ユーザーの一意のIDは常にログインから独立している必要があります
  • インターネットサービスの場合は、「ユーザー名ログイン」を避け、「メールアドレスログイン」を選択し、検証/確認手順を使用します。
  • いずれの場合も、変更履歴を追跡することをお勧めします。「ユーザープロファイル」に表示するかどうかは、特定の使用例に依存します
3
cedbeu

最も重要な質問をチェックする答えが見当たりません。

ユーザー名はあなたのサイトで秘密ですか?

ユーザー名がユーザープロファイルページに表示されている場合、またはフォーラム投稿の作成者として、またはメンバーリストで検索可能な場合、セキュリティ機能はありません。したがって、それを変更してもしなくても、セキュリティには意味がありません。

ユーザー名が秘密の場合。別の表示名を使用している、またはユーザーのフルネームを表示しているが、ログインのためにショートネームまたはエイリアスを使用している-ユーザー名が秘密である場合、攻撃者はアカウントにアクセスするためにユーザー名とパスワードの両方を知っている必要があるため、セキュリティに影響します。

ただし、ユーザーはユーザー名を再利用する傾向があり、通常はパスワードの場合と同じようにユーザー名を秘密とは見なさないため、ユーザー名は弱い秘密です。また、多くの攻撃(MtM、キーロガー、フィッシング、DBハッキングなど)でも、それは重要ではありません。

したがって、ユーザー名が秘密であっても、(他の適切な回答で概説されている)使いやすさの利点は、セキュリティの考慮事項をはるかに上回ります。

2
Tom

ユーザーがログイン名としてメールアドレスを使用することを許可する場合は、ユーザーにログインの変更を許可する必要があります。

  • 誰かが組織を離れると、そのアドレスへのアクセスがすぐに失われる可能性がありますそして、新しいアドレスが他の誰かに割り当てられるのと同じくらい早く。 (結局、彼らが私の新しい家に接続できないことに気付いたとき、私はISPを予告なしに変更する必要がありました。同じ日に他の人がメールアドレスを利用できるようになりました)。ログイン名としてのみアドレスを使用し、実際の電子メールでは決して使用しない場合でも、これはソーシャルエンジニアリング攻撃にとって重要で不必要なベクトルです。
  • ユーザーに、メール送信に使用するメールアドレスの変更を許可する場合、混乱を招く古いUXでログインしながら、サポートコールにつながる可能性があります。
1
Chris H

可能なオプションのいくつかを確認する必要があります。

ユーザーがユーザー名を変更したいのはなぜですか?
-パーソナライゼーション
-ストーカーがいる

なぜユーザーにユーザー名を変更させたいのですか?
-多様性/パーソナライゼーションは忠実な顧客をもたらします

他のユーザーに自分のユーザー名を変更させたくないのはなぜですか?
-OGヒップスターの言い訳「私は初めてのサッカーキッドだった96他にはないはず」
-私は他の理由を本当に考えることができません

ユーザーにユーザー名を変更させたくないのはなぜですか?
-ある種の身元詐欺? xXP0rn $ L @ yerXxにちなんで名付けられた複数のフィッシングアカウント、最高スコアの世界記録保持者
-情報のバックドアとして、またはデータベースの過負荷またはDDoSingの脆弱性として使用される可能性があります

ほとんどの不要な問題を回避するには、すべてのアカウントに一意の静的識別子(パブリックアカウント名とは関係ありません)、ユーザー名の変更に対する支払い、5000年ごとに1つのユーザー名の変更などをお勧めします

1
Deathhound

それには賛否両論のかなりの点があります。

たとえば、サイトAのユーザー名をグーグルで移動するとサイトBに自分のプロファイルが表示されることに気付いたため、ユーザーが名前を変更して認識されないようにしたい場合があります。

一方、変更を許可しないという点があるため、サイトで再び彼を認識できます。有名なトロールのいるフォーラムを考えてみてください。人々は彼の扱い方を知っており、彼に注意を向けない。ニックネームが変わるまで。もちろん、これは彼が別のユーザー名を登録できるので、実際の保護ではありませんが、すべての投稿の名前を変更することで悪用を回避します。

ニックネームがある種の主キーである場合、それを変更することはできません。電子メールアドレスまたはJabber IDを考えてください。一部のサイトでは引き続き名前を変更できますが、変更には注意が必要です。 Twitterのニックネームの変更を検討する場合は、新しいユーザーに関連付けられないように、後で古い名前を登録することをお勧めします。これは、アカウントの削除後も将来使用するためにユーザー名をロックするためのポイントです。

ユーザー名はログインプロセスの一部であるため、変更するとブルートフォース攻撃を阻止できる場合があります。攻撃者がパスワードが間違っているかどうか、ユーザー全体が存在しないかどうかを知らなくても、サイトによって異なります。

結局のところ、ユーザー名は一意であり、アカウントの削除後に変更およびロックされないようにする必要があると思いますが、アカウントハンドルよりも目立つように表示される表示名を定義する方法を提供する必要があります。

IDを使用するSOまたはいくつかの番号付けスキームを使用する古き良きICQを見てください。友人のすべてのUINを誰が覚えているのか、連絡先リストで表示名を使用する必要がありますか?

最後に、あなたの決定は最終的なものである必要はありません。いつでも他のモデルに変更できます。固定ユーザー名を変更可能にすることは大したことではありません。変更可能だったユーザー名を修正することは、おそらくユーザーに説明が必要になるでしょう。

1
allo