2013-02-06

Windows 8 で Wi-Fi プロファイルを掃除するには

潔癖な方は外出先でちょっとだけ使った Wi-Fi プロファイルなどもう二度と使うことのないことがはっきりしている Wi-Fi プロファイルを削除したいと考えると思います。

しかし Windows 8 の標準の Wi-Fi 接続インターフェースでは通信エリア外のアクセスポイントの設定は表に現れず削除する方法がなくなってしまい大変困りました。仕方なくヘルプを検索すると、ワイヤレス ネットワーク プロファイルを管理する を発見し、コマンドラインインターフェースを使えという説明を得て無事削除できました。

ネットワークの新機能 を読むと接続プロファイルの優先度設定を抜本的に改善して操作用の GUI すら要らない状態まで持って行けたという感じに読めますが、ちゃんと消せるようになってた方が心の平穏を保てると思います。

他にもヘルプで言及されていない注意点があり、PC 設定の同期をオンにした状態で Wi-Fi プロファイルを削除しても、同期機能がそそくさと復活させてくれるので、あらかじめ同期機能全体もしくはパスワードの同期機能を切る必要があるようです。この動作 (エントリの削除を紛失と同じものとして処理する) はバグっぽいので今後のアップデートに期待します。

Windows 8 で PC 設定の同期データを完全に削除するには

Windows 8 の新機能である PC 設定の同期機能でサーバー側に保存されたデータを削除する方法は、こちらの少し面白いタイトルの公式情報ページで案内されています。
PC 間で設定を同期する必要があるかどうか - Microsoft Windows

少し下の方の [すべての設定の同期を停止するには] を押して出てくる文書の一番下にある 個人設定をクラウドから削除します をクリックすると、SkyDrive のそれっぽいページに遷移します。設定データが存在している Microsoft ID でログインして削除を行ってください。

削除の確認ページで注意されているとおり、この削除機能はサーバー側で恒久的に同期機能を停止する機能ではないので、情報の再アップロードを防ぐには全てのPCの設定の同期設定を無効にする必要があります。

2013-02-05

パスワードハッシュ値のイテレーション回数は随時更新可能

あるユーザーが事前に設定したパスワードを入力したこと確認するための情報を安全に保管するには、保管する際に 一方向性関数 を通せばよいことは誰もがご存知だと思います。この一方向性関数をより強力 (より計算時間がかかる) なものに更新しようとする際、ユーザーからの生のパスワードが必要なのかについて議論します。ソルトの有効性については議論しません。

いまもしイテレーション回数を増やすことができるならば、パスワード用ハッシュ関数のストレッチ度を上げることでパスワードハッシュ値へのオフライン攻撃を企む攻撃者に必要となる計算能力を世の中の進歩に合わせて増やしていくことができるので、安心してユーザーのパスワードを預かることができそうです。

例えば素朴なところで f(x) = sha256(sha256(sha256(x))) (ただし x をユーザーが入力した生のパスワードとする) のように sha256 関数に n 回通すような関数を用いているとします。この関数はユーザーからの生のパスワードを得ずとも、既に n 回通したハッシュ値にさらに m 回 sha256 に通してイテレーション回数 n + m のより強固なハッシュ値にアップグレードできるので、イテレーション回数は好きなだけ更新可能と言えます。

次に既にパラメータにイテレーション回数を持っているような鍵導出関数 PBKDF2 を使う場合でも、f(x) = PBKDF2(PBKDF2(x, salt, 100), salt, 10000) のような一方向性関数を考えれば先ほどと同様に、イテレーション回数 100 から、10100 ほどにハッシュ値の強度を強化できると言えます。

残念なことに PBKDF2(PBKDF2(x, salt, 100), salt, 10000) = PBKDF2(x, salt, 10100) みたいにはならないようですが、どの一方向性関数を通したハッシュ値なのかという情報は保持するべきで (例えば $1$saltsalt$hashhashhashhashhash の形式の 1 はハッシュ関数の種類)、保持すれば関数の使い分けに問題は無いでしょう。

またもしユーザーから入力されたパスワードを既知とするならば、ユーザー認証後に好きな一方向性関数でハッシュ値を導出しなおすことができます。

リンク
エフセキュアブログ : いや、パスワードをしっかりSaltingしても十分ではない、CUDA Accelerated PBKDF2を使用すべし
本当は怖いパスワードの話(3/4) - @IT
Webアプリでパスワード保護はどこまでやればいいか
パスワード保存とソルトの話
Jun Mukai - Google+ - 昨日のパスワードとソルトの話の続き。 …

追記 (2013/2/11)
sha256(sha256(sha256(x))) よりも、salting が可能なように、hmac_sha256(hmac_sha256(hmac_sha256(x, salt), salt), salt) とする方が断然良いです。
参考 HMAC