SecureMemを使用することのセキュリティ上の利点について
Basic HTTP auth with Scottyを読んで、Data.SecureMem
というモジュールを使うと、タイミング攻撃を防止(軽減?)できることを知りました。
その後SecureMemについて調査してみたのですが、あまり情報がなく、唯一参考になりそうなのがData.SecureMem
のドキュメントの次の記述でした。
SecureMem is a memory chunk which have the properties of:
● Being scrubbed after its goes out of scope.
● A Show instance that doesn't actually show any content
● A Eq instance that is constant time
そこで質問なのですが、これら3つの性質が一般的にはどのようなセキュリティ上の利点をもたらしてくれるのか、特にタイミング攻撃に対してなぜ有効なのか、そして「定数時間での比較」とは何を意味するのかを教えてください。