teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

7

2021/02/10 08:03

投稿

_reNyu_
_reNyu_

スコア1

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  ### 質問の主題
10
10
 
11
- ここで質問なのですが、「ストレッチングをする時サーバーの負荷と相談し回数を決定(多いほど良い)」と言われているようですが、これを負荷軽減のためにある程度クライアントで行い、これをパスワードとして認証するのはまずいのでしょうか。実装にもそこまでリスクはないですし、ユーザーから見た時間的な差異はないと思います。
11
+ ここで質問なのですが、「ストレッチングをする時サーバーの負荷と相談し回数を決定(多いほど良い)」と言われているようですが、これを負荷軽減のためにある程度クライアントで行い、これをパスワードとして認証するのはまずいのでしょうか。実装にもそこまでリスクはないですし、ユーザーから見た時間的な差異は大きくないと思います。
12
12
 
13
13
  ###具体例
14
14
 
@@ -16,7 +16,7 @@
16
16
 
17
17
  クライアント側
18
18
  1, パスワードを入力(変数passとする)
19
- 2, passをハッシュ化する × 1000(結果をpass_chとする)
19
+ 2, passをハッシュ化する × 10,000回 (結果をpass_chとする)
20
20
  3, pass_ch(とuserId)をSSL通信でサーバーに送る
21
21
 
22
22
  サーバー側
@@ -36,6 +36,6 @@
36
36
 
37
37
  ###まとめ
38
38
 
39
- よってストレッチングを、処理の集中するサーバーサイドで行わず、クライアントサイドで各々実行する事について、デメリット等あるのか質問させていただきます。
39
+ よってストレッチングを、処理の集中するサーバーサイドで行わず、クライアントサイドで各々実行する事について、デメリット等あるのか質問させていただきます。またその他自分の認識で間違いがありましたら、御手数ですが教えていただけると嬉しいです。
40
40
 
41
41
  長くなりましたが、有識者様の意見が聞きたく質問させて頂きました。拙い文章で申し訳ありません、よろしくお願いします。

6

2021/02/10 08:03

投稿

_reNyu_
_reNyu_

スコア1

title CHANGED
File without changes
body CHANGED
File without changes

5

2021/02/10 07:58

投稿

_reNyu_
_reNyu_

スコア1

title CHANGED
File without changes
body CHANGED
@@ -4,12 +4,13 @@
4
4
 
5
5
  Webアプリケーションのパスワード送信・保存時におけるパスワードの不可逆暗号化(ハッシュ化)のストレッチングについてです。その他SSL/TSL,salt付与等は行うものとします。
6
6
 
7
- ### 主題
8
-
9
7
  Webアプリケーションのセキュリティについて様々なページを読んでいて、ストレッチングというものがあったのですが、これの目的はハッシュ化されたパスワードが漏洩した場合、処理に時間をかけることでパスワードの総当り(または辞書)攻撃を防ぐものだと理解しました。
10
8
 
9
+ ### 質問の主題
10
+
11
11
  ここで質問なのですが、「ストレッチングをする時サーバーの負荷と相談し回数を決定(多いほど良い)」と言われているようですが、これを負荷軽減のためにある程度クライアントで行い、これをパスワードとして認証するのはまずいのでしょうか。実装にもそこまでリスクはないですし、ユーザーから見た時間的な差異はないと思います。
12
12
 
13
+ ###具体例
13
14
 
14
15
  パスワード入力から保存までの具体的な処理としては、
15
16
 
@@ -25,6 +26,7 @@
25
26
 
26
27
  が、自分の考えた処理です。具体例として提示しました。
27
28
 
29
+ ###思いつくデメリットと解決策
28
30
 
29
31
  自分の思いつくデメリットは、
30
32
  ①パスワードが適切なものかの判別(文字数が適切か,"aaaa","pass"等をはじく)が必ずしもできない
@@ -32,4 +34,8 @@
32
34
 
33
35
  なのですが、①に関してはわざわざJavaScriptをいじってまでパスワードを短くしたい人は少ないですし、そうした場合でもsaltを付与してハッシュしているのでレインボーテーブルもある程度無効化できると考えています。
34
36
 
37
+ ###まとめ
38
+
39
+ よってストレッチングを、処理の集中するサーバーサイドで行わず、クライアントサイドで各々実行する事について、デメリット等あるのか質問させていただきます。
40
+
35
41
  長くなりましたが、有識者様の意見が聞きたく質問させて頂きました。拙い文章で申し訳ありません、よろしくお願いします。

4

2021/02/10 07:58

投稿

_reNyu_
_reNyu_

スコア1

title CHANGED
File without changes
body CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  Webアプリケーションのセキュリティについて様々なページを読んでいて、ストレッチングというものがあったのですが、これの目的はハッシュ化されたパスワードが漏洩した場合、処理に時間をかけることでパスワードの総当り(または辞書)攻撃を防ぐものだと理解しました。
10
10
 
11
- ここで質問なのですが、「ストレッチングをする時サーバーの負荷と相談し回数を決定(多いほど良い)」と言われているようですが、これを負荷軽減のためにある程度クライアントで行い、これをパスワードとして認証するのはまずいのでしょうか。実装にもそこまでリスクはないですし、クライアントから見たら変わりはないと思います。
11
+ ここで質問なのですが、「ストレッチングをする時サーバーの負荷と相談し回数を決定(多いほど良い)」と言われているようですが、これを負荷軽減のためにある程度クライアントで行い、これをパスワードとして認証するのはまずいのでしょうか。実装にもそこまでリスクはないですし、ユーザーから見た時間的な差異はないと思います。
12
12
 
13
13
 
14
14
  パスワード入力から保存までの具体的な処理としては、

3

2021/02/10 07:53

投稿

_reNyu_
_reNyu_

スコア1

title CHANGED
File without changes
body CHANGED
@@ -27,9 +27,9 @@
27
27
 
28
28
 
29
29
  自分の思いつくデメリットは、
30
- ①パスワードが適切なものかの判別(文字数"aaaa","pass"等)が必ずしもできない
30
+ ①パスワードが適切なものかの判別(文字数が適切か,"aaaa","pass"等をはじく)が必ずしもできない
31
31
   ↑必然的にクライアントで判別することになるため、JavaScriptをいじられてしまったらパスワードが"aaaa"でも通ってしまう
32
32
 
33
- なのですが、①に関してはわざわざJavaScriptをいじってまでパスワードを短くしたい人は少ないですし、saltを付与してハッシュしているのでレインボーテーブルも無効化できると考えています。
33
+ なのですが、①に関してはわざわざJavaScriptをいじってまでパスワードを短くしたい人は少ないですし、そうした場合でもsaltを付与してハッシュしているのでレインボーテーブルもある程度無効化できると考えています。
34
34
 
35
35
  長くなりましたが、有識者様の意見が聞きたく質問させて頂きました。拙い文章で申し訳ありません、よろしくお願いします。

2

2021/02/10 07:49

投稿

_reNyu_
_reNyu_

スコア1

title CHANGED
File without changes
body CHANGED
@@ -1,3 +1,5 @@
1
+ (初めてで使い方がわからず変な文章を投稿してしまいすみません。編集依頼くださった方々ありがとうございました。)
2
+
1
3
  ### 前提
2
4
 
3
5
  Webアプリケーションのパスワード送信・保存時におけるパスワードの不可逆暗号化(ハッシュ化)のストレッチングについてです。その他SSL/TSL,salt付与等は行うものとします。

1

2021/02/10 07:43

投稿

_reNyu_
_reNyu_

スコア1

title CHANGED
File without changes
body CHANGED
@@ -1,23 +1,33 @@
1
- ### 前提・実現したいこと
1
+ ### 前提
2
2
 
3
+ Webアプリケーションのパスワード送信・保存時におけるパスワードの不可逆暗号化(ハッシュ化)のストレッチングについてです。その他SSL/TSL,salt付与等は行うものとします。
3
4
 
5
+ ### 主題
4
6
 
5
- ### 発生している問題・エラメッセージ
7
+ Webアプリケションのキュリティについて様々なページを読んでいて、ストレッチングというものがあったのですが、これの目的はハッシュ化されたパスワードが漏洩した場合、処理に時間をかけることでパスワードの総当り(または辞書)攻撃を防ぐものだと理解しました。
6
8
 
7
- ```
8
- エラーメ
9
+ ここで質問なのですが、「ストレチングをする時サバーの負荷と相談し回数を決定(多いほど良い)」と言われているようですが、これを負荷軽減のためにある程度クライアントで行い、これをパスワードとして認証するのはまずいのでしょうか。実装にもそこまでリスクはないですし、クライアントから見たら変わりはないと思います。
9
- ```
10
10
 
11
- ### 該当のソースコード
12
11
 
13
- ```ここに言語名を入力
12
+ パスワード入力から保存までの具体的な処理としては、
14
- ソースコード
15
- ```
16
13
 
17
- ### 試したこと
14
+ クライアント側
15
+ 1, パスワードを入力(変数passとする)
16
+ 2, passをハッシュ化する × 1000(結果をpass_chとする)
17
+ 3, pass_ch(とuserId)をSSL通信でサーバーに送る
18
18
 
19
+ サーバー側
20
+ 4, salt値を決める
21
+ 5, 送られてきたpass_chとsalt値を合わせてハッシュ化する(結果をpass_shとする)
19
- ここに問題に対して試したことを記載してください。
22
+ 6, pass_shsalt(とuserId)DBに保存する
20
23
 
21
- ### 補足情報(FW/ツールバージョンなど)
24
+ が、自分考えた処理です。具体例として提示しました。
22
25
 
26
+
23
- ここにより詳細な情報を記載してくださ
27
+ 自分の思つくデメリットは、
28
+ ①パスワードが適切なものかの判別(文字数や"aaaa","pass"等)が必ずしもできない
29
+  ↑必然的にクライアントで判別することになるため、JavaScriptをいじられてしまったらパスワードが"aaaa"でも通ってしまう
30
+
31
+ なのですが、①に関してはわざわざJavaScriptをいじってまでパスワードを短くしたい人は少ないですし、saltを付与してハッシュしているのでレインボーテーブルも無効化できると考えています。
32
+
33
+ 長くなりましたが、有識者様の意見が聞きたく質問させて頂きました。拙い文章で申し訳ありません、よろしくお願いします。