Template:User committed identity

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索
コミット済アイデンティティ: {{{1}}} はこの利用者本人のアイデンティティのSHA-512 コミットメントです。
テンプレートの解説[表示] [編集] [履歴] [キャッシュを破棄]

これは、このテンプレートを追加した日にあなたのアカウントを使用していた人があなた本人であったことを、後から証明するためのテンプレートです。

「ハッシュ」と呼ばれるコードをあなたの利用者ページに追加しておくことによって、万が一あなたのアカウントが他の人物に不正に利用された場合でも、あなたがあなたのアカウントの本当の持ち主であったことを証明することができます。

このテンプレートについて[編集]

このテンプレートは、あなたのアカウントが万が一にもパスワードを盗まれるなどして、他の人物に不正に使用されてしまうといった事態を防止するためのものです。アカウントが侵害された場合、そのアカウントは他の人物の支配下にある可能性があるため、そのアカウントを通じて本当の使用者と連絡をとることは困難です。例えばもしあなたが現実世界での身元を公開していた場合であったなら、あなたのアカウントが侵害された場合でも、その身元をあなたと連絡を取るための手段として使用することができるでしょう。しかしながら多くの利用者は、プライバシーなどの観点から現実世界での個人情報を開示しておらず、或いは公開しているとしても、身元を特定するに足るまでの個人情報を公開している場合は稀です。

このテンプレートによる証明方法は、特定がより難しいパスワードを使用したり、アカウントのメールアドレスを登録したりすることの代替品ではありません。上記のような心掛けや、他者がアクセスできる端末を使用している際にログアウトすることを忘れないなど、アカウントの侵害を防ぐためにできることはもちろん全て実行すべきです。PGP公開鍵を持っている場合には、それを投稿しておくのも良いでしょう。しかしこれらの注意を最大限払っていた場合ですら、あなたのアカウントはトロイの木馬総当たり攻撃などを介して侵害されてしまう可能性があります。このテンプレートは、そうした緊急の事態における最後の手段として作成されたものです。

仕組み[編集]

このテンプレートによる身分証明は、暗号ハッシュを利用した仕組みとなっています。あなただけが知っている秘密の文字列(以下「鍵」と呼びます)を決めておき、一方通行の暗号ハッシュ関数に当てはめて別の文字列(=ハッシュ)に置き換え、その結果をどこかで公開するというものです。特定のハッシュに対応する秘密の文字列を突き止めるのは実質的に不可能であり、従って正しい秘密の文字列を提示することができるのは、その文字列を決定した人物だけということになります。

使用例[編集]

{{User committed identity|hash|hash function used|background=CSS color|border=CSS color|article=grammatical article for the hash function}}

この構文を、以下の要領に沿って書き換えた上であなたの利用者ページに貼り付けて下さい。

  • hashの部分を、あなたの「鍵」から生成されたハッシュに置き換えて下さい。何も指定が無い場合、デフォルトの値は「1」になります。
  • hash function usedのパラメータを、あなたがハッシュの生成に使用したハッシュ関数に置き換えて下さい。何も指定が無い場合、デフォルトの関数はSHA-512となります(この関数をそのまま使用することを強くお勧めします)。
  • backgroundのパラメータは背景色を、borderのパラメータは外枠の色を、それぞれ指定することができます。何も指定が無い場合、デフォルトのカラーはそれぞれ共に#E0E8FF(light blue)です。詳細はウェブカラーも参照して下さい。
  • articleのパラメータは、何も指定が無い場合は「a」、他の値の場合は「an」となります。

例えばハッシュは「ef7c4c55a176bd20ed558aaefde21c4803080195」に、関数はSHA-1を使用、背景色はライトオレンジで枠線は黒といった場合、以下のように入力して下さい。

{{User committed identity|ef7c4c55a176bd20ed558aaefde21c4803080195|SHA-1|background=#FC9|border=#000}}

表示結果は以下のようになります。

コミット済アイデンティティ: ef7c4c55a176bd20ed558aaefde21c4803080195 はこの利用者本人のアイデンティティのSHA-1 コミットメントです。

良い鍵を選ぶ[編集]

  1. 誰かがあなたの鍵を推測することは容易ではありません。しかしながら、あなたの鍵が簡単に推測されるようなものであったとした場合、その文字列を知っているという事実は、あなたが鍵を設定した本人であるという事実に説得力が無くなってしまう可能性があります。そのため鍵は、できるだけ複雑なものを選択して下さい。もっとも望ましいものはランダムな文字列、例えば「fFfwq0DuDmMXj8hYTM3NTKeDhk」などです。
  2. Your secret string should specify enough of your identity that, if the string were revealed, you could unambiguously prove you match that identity. For instance, your secret string could include a telephone number or email address at which you can be reached.
  3. Try not to choose a secret string that represents your identity that could go completely out of date. So, for instance, it may be bad to choose a string that specifies only your telephone number as that number might change.
  4. If you want to change your secret string, do so, but keep track of all your old secret strings. It is best to reveal all of them if you ever want to confirm your identity, as this will establish that you are the same person who used your account from the first moment the committed identity was published.
  5. Your secret string should not be short. A dedicated attacker could, by brute force, try short strings until they find your secret string, but if your string is longer that attack would be impractical. If your string is 15 characters long, there are around 1027 strings of that length, or an octillion (and that's just counting alphanumeric strings with spaces).
  6. Your secret string should not only contain an email address, name or phone number, but should contain hard to guess components. "jsmith@hotmail.com" for example may be vulnerable to both dictionary attacks and a search of email addresses, enabling attackers to check 'only' those hundred million names against all published hashed identities, which is computationally much easier than trying to identify a randomly chosen string.

ハッシュを取得する[編集]

Be sure to note the exact string you enter into the form, in case you need to use it later. It is important that this string be both easily remembered exactly by you and hard to guess or find by any intruder - if an intruder knows the secret string, then this scheme is useless and provides no security. One's username is public and trivially guessable; one's password is not a good choice either, as in the event of a compromised account, the password is likely to have been guessed.

On Unix-like operating systems the md5sum, sha1sum, sha224sum, sha256sum, sha384sum, and sha512sum programs are provided in the GNU Core Utilities. Windows users may use one of the methods mentioned below; those who have PowerShell installed can generate a hash using the following command. Provide your secret phrase in the location indicated:

[bitconverter]::tostring((new-object security.cryptography.sha512managed).computehash([text.encoding]::utf8.getbytes("Secret phrase here"))).replace("-", "")

It is recommended that SHA-512 be used, as recent cryptographic research has cast doubt on the long-term security of SHA-1. The template defaults to SHA-512 if the hash function parameter is omitted. For security, you should only use locally executed programs, or client-side javascript, to create your hash. Examples of such hash calculators include jsSHA and HashCalc 2.01.

To verify that you are correctly hashing your secret string, you can try hashing 'My name is Joe Schmoe, and I can be contacted at: joe@example.com' (without the enclosing single-quotes). Your SHA-512 hash should be: b7a84efbbd843545666957384e874c894fdc17f48ced53abd231c2e4d08e45ad10287b1225432e3ed9794c12994ff1e82aecf66a2ded61ad4baf6d8b9c81dab8

アカウントを不正利用された場合[編集]

In case your account is compromised, to make use of your committed identity to someone and prove you are the same person who originally controlled the account, give a trusted user the exact secret string you originally entered into the box. They can then compute the appropriate hash of that same string and verify that it is the same result and that you are who you say you are.

Once you've established your identity, and set up a new account or regained control of the original account, you'll probably want to create a new hash as now someone (possibly multiple someones depending on who and how you told the secret string to) else knows the secret string.

弱点[編集]

This technique of establishing identity by revealing the secret string behind the hash is not inherently attack proof; it increases attacker effort substantially (if the secret string is chosen and handled properly) which is worthwhile, and does so at little effort to the legitimate user. But it is attackable in that anyone can invent their own secret string, hash it, and claim an identity.

An attacker with access to the account could overwrite the hash with their own one. They could then say that the previous owner of the account was an attacker who claimed their identity and generated his own hash.

An attacker without access to the account could claim that the current account's owner stole their identity. The attacker could state that they did not publish a hash when they used to own the account, or that they did not register an account and that someone else is using their name.

This weakness does not indicate the commitment scheme is worthless, because the commit phase did not apply to all interested parties (the real person and all potential attackers).

関連項目[編集]

Code Result
{{User:Anomie/Userbox committed identity|…}}

links talk view

利用者:Anomie/Userbox committed identity

Template:Tlurow

{{User CID}}
リンク元 / ノート / 編集
Template:User CID