====== ハッシュ値取得に文字列連結をしない ======
ハッシュ値を取得する場合に鍵またはsaltとなる情報とデータを文字列連結すると、ハッシュの分析を許してしまう。リスクを軽減するためには鍵またはsaltとなる情報とデータを文字列連結しない。
===== 非適合コード例 =====
$key = 'random key';
$data = 'Some Data';
$hash = hash('sha2-256', $data . $key);
===== 適合コード例 =====
$key = 'random key';
$data = 'Some Data';
$hash = hash_hmac('sha2-256', $data , $key);
===== 例外 =====
[[http://php.net/hash_hkdf|hash_hkdf()]]の$info引数はハッシュのセキュリティに影響しない引数として設計されている。このため、$info引数にはどのような値を設定してもよい。
===== リスク評価 =====
[ルール/推奨事項のリスク評価]
[評価例 - 英語表記に統一]
^ Rule ^ Severity ^ Likelihood ^ Remediation Cost ^ Priority ^ Level ^
| IDS05-J | medium | unlikely | medium | P4 | L3 |
===== 関連ガイドライン =====
* https://www.ietf.org/rfc/rfc2104.txt
===== 参考文献 =====
* http://php.net/manual/en/function.hash.php
* http://php.net/manual/en/function.hash-hmac.php
* http://php.net/hash_hkdf