Certumのオープンソース向け無償コード証明書ですが、どうも審査が厳格になったようで、rejectされてしまいました。
widely availableでないとダメとのことで、個人webでアーカイブの中にソースが入ってる、程度ではダメと思われます。project pageにも英語表記を要求されました(ので少し用意しました)。もちろん、年間1万円はするものを無償で提供しようというのですから、相応のものに限るのは自然な話ではあります。
瞬間的にすごーく残念でしたので、どんなにショボくともこれが自己表現になっているのだと改めて認識した次第。さりとてGitHubだとかSourceForgeだとかいったところに置くつもりもありませんで。パソコン通信時代と変わらないやり方こそ時代錯誤だろうとは薄々は認識していますが。
そんなわけでMedusaが既に署名なしの他、AntiDeviceとかDeltaEndとかローカルには更新版があるのですが、これらも署名なしにするか、別の所を探すか決めないといけません。
ダイナミックDNS更新ツールDiCEですが、失敗時のリトライがない(しかもなぜか一度失敗すると二度と成功しないような...)ことから、代わりを作ることにしました。
ちょっとC++よりも新しい言語を真面目に使ってみようとC#/.NET Frameworkで、大体の機能はできたところです。GUI上の設定はDataGridViewとBindingListで、データバインディングというものを初めて使ってみたりとか。
関係ありませんが「データバインディング」って必殺技みたいで格好良いですね。最初に耳にしたのはCocoaでだったでしょうか。
さてそれで、この種のツールはパスワード等を保存せねばなりません。以前PowerSiestaを作った頃は単純にData Protection APIでユーザー限定にしておいたはずですが、今回はサービスとしても動作することから、設定したのと別ユーザーでの動作を考慮する必要があります。
またサービスということは起動時にユーザーの入力を要求できませんから、鍵を任意に指定できるようにしたとしても、起動時の引数など第三者がアクセスできる場所にそれを記述しなければならず、Gumblerのように特別に狙われればどうにもなりません。そもそもオープンソースですし。
ちなみにLinux等で定番となっているinadynにはそんな配慮はないようですが、それというのもファイルのアクセス権限の変更が常識の世界だからでしょうか。
そこで結局、一応は暗号化(Data Protection APIでそのPC限定)し、動作中は設定ファイルを排他で開いたままにしておくことにしました。これならば、サービス稼働中は別プロセスから読めませんし、全文検索をしてそれっぽい文字列(例えばメールアドレス)を盗む程度のワームになら、読み出されても素通りするでしょう。
破るには管理者権限を取得してサービスを停止し、そのままPCの中で読み出し復号するぐらいになるはずです。管理者権限が陥落したような状態での防備は素人にはちょっと想像できません。
難点は、PCの鍵を使う方法だと暗号化が時代遅れのトリプルDESで行なわれることです。AESに対応させたCryptProtectData2みたいなのがあればいいのですが。
まあIP更新にhttpsが使えないDDNSサービスが多いのに、そんなローカルでのセキュリティだけ気にしても意味がない、という問題があったりしますが。
ADT-Bundleの話ですが要するにEclipse。
Package Explorerでコピーペーストして、パッケージ名をgrepして変更、さらにパッケージ名になっているフォルダ名(srcの下とgenの下)も変更、開いてリフレッシュ...というのがお馴染みですが、先日、全くできなくて困りました。
Cannot paste the clipboard contents into the selected elements.
コピー対象であろうがなかろうが、適当なプロジェクトを開いていないとペーストできないようでした。意図がわからない挙動です。コピーしようというのなら、閉じるのが当然でしょう。