2006年05月29日

Becky2でSSL/TSL通信がエラー

こんな状態にハマる人居ないと思いますが記録がわりに公開

WindowsXPの制限ユーザでログイン時してBecky2でSMTPSやPOP3Sのサーバにアクセス使用とした際に以下のようなエラーが出た場合の対処方法

0x80090308 この関数に提供されたトークンは無効です
通常は制限ユーザでもこんなエラー出ないんですが、OS再インストール時に手抜きして旧環境のユーザレジストリ情報をバイナリのままパクったのが原因。

レジストリもDACLは直したつもりだったのですが、新規作成した制限ユーザではきちんと送受信できるためユーザレジストリの問題と断定して

でBecky2のレジストリアクセスを監視。

すると「HKEY_CURRENT_USER\Software\Policies\Microsoft\SystemCertificates」辺りのレジストリにアクセスしに行っていたため、ここのDACLを調査すると見事にアクセス権の継承が切れていて旧環境のSIDにアクセス権が割り当てられていました。

で、対応は簡単、レジストリエディタで「編集」→「アクセス許可」→「詳細設定」→「旧SID」の項目を選択→「編集」→旧SIDを新しい環境のユーザ名で置換。

あと、「HKEY_CURRENT_USER」以下で継承が切れて旧SIDが残る可能性があるのは以下の通り

  • HKEY_CURRENT_USER\Software\Policies
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy\GroupMembership
  • HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies
なお、これの調査に使った方法はそのうち別エントリでまとめたいと思います。

Posted by Takuchan at 2006年05月29日 22:40 | トラックバック(2)

コメントでのご指導ありがとうございました
無事使えるようになりました
Internet の利便と、それを支える方々の善意をひしひしと感じております
本当にありがとうございます

Posted by: wakkanai.info at 2006年11月18日 12:55

無事動作したようで何よりです。

困ったときはお互い様と言うことで。

Posted by: Takuchan at 2006年11月18日 18:35