2014年4月30日水曜日

Android Studio

Google I/O 2013で発表されたAndroidアプリケーションの開発環境Android Studio
未だベータ版ですが、ついでがあったので使ってみました。

Windows版をダウンロードしてインストールしてはまりました。
起動するとなんだかいろいろダウンロードしてくるみたいなのですが、
インターネットに接続していない環境で起動したためか、ひどい動作不良です。
とりあえず後でインターネット接続していろいろやり、
アプリケーションをビルドするまではできたのですが、
それを実機にインストールするも失敗し、
開発環境で
Could not execute build using Gradle distribution 'http://services.gradle.org/distributions/gradle-1.10-all.zip’.
なるエラーが出るようになって2度とビルドできずあきらめました。

ところが、もうひとつ別のWindowsマシンにインストールし、
インターネットに接続した状態で起動してみると、トラブルなくうまくいきました。
一体何が違ったのか?
なおAndroid Studioは別途JDK(私は7系の最新バージョンを使用)を
インストールする必要がありますが、
このPCでは、PCを起動してから最初にAndroid Studioを立ち上げたとき
JDKを見つけられず環境変数JAVA_HOMEで設定しろと言われます。
ところが環境変数を設定しなくてもAndroid Studio立ち上げなおすと正常に起動します。
まあとりあえず動けばいいので気にしないことにします。

一応Android Studioの初回起動時の流れを書いておくと、
[New Project]をクリックして[New Project]ダイアログボックスを開き、
[Application Name]、[Module name]を自由に設定し、
[Package Name]は自分の所有ドメインを元に決め、
[Compile with]でAndroidのバージョンを設定します。
[Compile with]は標準では最新の"kitkat"しか選べませんが、
新しいAPIを使っていなければAndroid 2.3でも動くアプリケーションができます。
もし[Compile with]で古いバージョンを指定したいなら、
後に出てくるメインウィンドウの[Tools]-[Android]-[SDK Manager]メニューから
インストールすることで選択肢に現れるようになります。
話を戻しますが、あとの選択肢は特に変更しなくても
[Next]を何度か押していけばアプリケーションのスケルトンコードが生成されます。
[Build]-[Make Project]メニューを実行すれば
"<アプリケーション名>/build/apk/"フォルダにapkファイル(サインなし)が生成され、
実機にインストールすればちゃんと動きます。

使ってみて便利なのはJavaエディタの支援機能です。
コードを書くと足りないimportを半自動で追加してくれたり、
あるべきtryブロックを半自動で追加してくれたりと、
AndroidのAPIについて中途半端な知識しかなくても結構何とかなりそうですが、
ちょっとおせっかいすぎるきらいはあるでしょうか。

ひとつ困ったのがアプリケーションのバージョンです。
通常はManifestファイル("AndroidManifest.xml")のmanifestタグの
android:versionCode属性とandroid:versionName属性で設定するのですが、
Android Studioではこれが自動上書きされてしまいます。
元データは"build.gradle"ファイルのversionCode、versionNameですので
こちらをいじることになります。

2014年4月29日火曜日

Serversman@VPS(debian32)のapt-getでエラー

久しぶりにServersman@VPS(debian32)にソフトをインストールしようとしたところ、
サーバがないとか言ってエラーになったので
# apt-get update
したのですが、今度は
ununderstood data member data.tar.xz
のような内容を含んだエラーが出たため、
きっとxzが入っていないんだろうと
# apt-get install xz-utils
したのはいいのですが、
直後にapacheの再起動に失敗したとエラーが出ました。

気のせいに違いないと
# /etc/init.d/apache2 start
したところ以下のようなエラーが…
apache2: Syntax error on line 185 of /etc/apache2/apache2.conf: 
Syntax error on line 2 of /etc/apache2/mods-enabled/dav_svn.load: 
Cannot load /usr/lib/apache2/modules/mod_dav_svn.so into server: 
/usr/lib/apache2/modules/mod_dav_svn.so: 
undefined symbol: svn_repos__post_commit_error_str
Action 'start' failed.
The Apache error log may have more information.
 failed!
しょうがないのググって行き着いたのがここです。
どうやら原因はsubversionっぽいので
# apt-get upgrade subversion
してみるも最終的に
Errors were encountered while processing:
 /var/cache/apt/archives/linux-libc-dev_3.2.46-1+deb7u1_i386.deb
 /var/cache/apt/archives/mysql-common_5.5.35+dfsg-0+wheezy1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
となり先に進めません。
さきのページを読み進めていくと、どうやらxz圧縮を利用したdebパッケージが、
古いdpkgで扱えないようです。
もうやけくそで
# apt-get dist-upgrade
してみるも改善せず詰んだっぽい。

とりあえず
# cd /etc/apache2/mods-enabled/
# mv dav_svn.load dav_svn.load.ng
して"/etc/apache2/httpd.conf"に書いていた
DAV svn
のあるディレクトリを削除してなんとかapacheを復帰させました。

このVPS環境使い始めてから3年半になりますが、
そろそろクリーンにして作り直すべきかなと思うのでありました。
Serversman@VPSでは32ビットOSのサポートが段階的に減っているようなので、
今度はUbuntu12.04(64bit)にするかな。
まあソースからインストールすればいいので次に困ったときに考えることにします。
その頃には最近出たUbuntu14.04(64bit)も使えるようになっていると期待しておきます。

2014年4月28日月曜日

AndroidのGmailが同期できない

私が常日頃持ち歩いているAndroidスマートフォンP-01Dはメモリ容量が小さいくせに
余計なプリインストールアプリケーションが鬼のように入っており使いにくいことこの上ありません。
しょうがないので可能ならアプリケーションをSDカードに移し、
必要なアプリケーションをぎりぎりいっぱいまで入れて、
常にストレージ容量が少ないとのお叱りを受けながら使っています。
普段は必要があるときにだけ電源を入れてウェブブラウザを使ったり、
テザリングをオンにしてモバイルルータとしてしか使っていないので、
それでも特に問題は感じていませんでした。
が、実は私が気付いていないだけで大きな問題が起こっていたのでした。

ふとGmailアプリケーションを開いたときのことです。
トップに表示されているのは3ヶ月前のメールです。
で、最新のメールを見ようと同期を取ろうとするもできませんorz
とりあえず必要ないアプリケーションをアンインストールして空きメモリを50MBほどまで増やし、
電源を入れなおすとちゃんと同期してくれるようになりました。

2014年4月24日木曜日

すれちがいMii広場の有料ゲームが値引き

私のアイディアが採用されたわけではないでしょうが、
Nintendo3DSのすれちがいMii広場の有料ゲーム
  • すれちがいシューティング
  • すれちがいガ~デン
  • すれちがい合戦
  • すれちがい迷宮
が、来る5月1日から6日までの期間限定で、最大限に解釈して半額になります。
この機会にすれちがい人口が増えればいいですね。
私のゲーム進行も加速するので。

まあ私の進行状態はすでに末期で、
すれちがいシューティングはすべてのぼうしチケットを手に入れて、もう長いこと遊んでいません。
すれちがいガ~デンはぼうしチケット集めは完了し、
あと十数種類の花が未入手なので地味に続けてはいます。
残念ながら思ったとおりに新しい花は咲いてくれないのでモチベーションはだだ下がりです。

一方、すれちがい合戦はぼうしチケットはあと3枚になるも、
すれちがい合戦所有者となかなかすれちがえず、コンプリートは絶望的です。
また、すれちがい迷宮はまだ40階なので真のエンディングを目指して遊んではいますが、
すれちがい迷宮所有者とすれちがうことが皆無で、
仲間になったり、パズルボックスをもらうことが久しくなく、
あと2つのぼうしチケットはほぼあきらめています。

このような状態を打破するためにも、
今回のキャンペーンで購入者が増えるのは私もうれしいです。
あとは有料コンテンツ第2弾がくるとますますうれしいのですが。

2014年4月23日水曜日

久々のメールサーバ

私が独自ドメインでメールサーバを初めて構築してからはや12年。
Google Apps(すでに無料版は申し込み不可)やOutlook.com(無料版あり)で
メールサーバのホスティングができるようになってからは、
こちらの方が楽だし信頼性があるので生のメールサーバに触れる機会はほぼなくなりました。

が、ちょっと実験をしたくて一時的にメールサーバ(MTA)がほしくなることはあります。
昔ならクライアントPCのWindowsにフリーのMTAを入れて
適当にメール送信なんてこともできましたが、
迷惑メール対策で今やOP25Bは当たり前の世界、もう無理です。

ということでServersman@VPS(debian-32)をメールサーバとします。
指定したMTAへのみメールの送信ができるssmtpが最初から入っており、
送信するだけなら環境によってはこれでも十分です。
送信相手先がGmailなら設定ファイル"/etc/ssmtp/ssmtp.conf"を以下のようにすると、
とりあえずメールの送信ができます。
mailhub=aspmx.l.google.com
FromLineOverride=YES
なお2行目は送信元詐称のための設定です。
この状況で以下を実行すれば、対話式で本文等書いて([ctrl]+[D]で終了)メールを送信できます。
$ mail <送信先メールアドレス(Gmail/Google Apps)> -- -f <送信元メールアドレス>
念のために書いておきますが、
これだとGmail/Google Apps(例外があるかもしれない)にしか送れませんし、
本来mailhubには直上のMTAを指定すべきです。

ところでメールサーバを扱ったのは久しぶりなので
この機会に最近のMTAの動向についての調査してみました。

昔から好んで使っていたqmailは相変わらず1998年以来更新がありません。
以前ならそれでも一向にかまわなかったのですが、
IPv6の普及というドラスティックな変化があった後では使うのは気が引けます。
一応IPv6対応パッチは存在するみたいですが、面倒なので却下です。
qmailを引き継いだっぽいnetqmailにしても2007年で止まっており、
こちらも手を出す気にはなれません。

王道のSendmailはどうかというと、8系がまだまだ現役のようです。
大昔に8系の次は根本的に作り直すSendmail Xみたいな話があったような気がしますが、
Xはいつの間にかMeTA1に名前が変わって、しかもまだα版って。
あんまりやる気ないんでしょうね。
話は戻って8系のSendmailですが、設定が面倒なので昔から敬遠していて、
今更使おうとも思わないのでこちらは棄却です。

IMAPでお世話になっていたCourierシリーズのCourier-MTAは
qmailに思想が近いので使ってみたい気はするのですが、ちょっとマイナー(私の主観)ですし、
一時Debianで採用されていたeximもやっぱりマイナー(私の主観)。
ということでやっぱり使うならPostfixかな。

2014年4月22日火曜日

DMARC

メールの送信元認証にはSPFやDKIMがあります。
両方ともDNSサーバからの情報を元に判定するのですが、
前者は送信元サーバのアドレスを、後者は証明書を確認します。
ただ正しいサーバであっても運用上これらが導入されていない可能性もあるわけで、
送信元を確認できないメールをばっさり切り捨ててしまうのはちょっと乱暴です。
これら技術が登場してからだいぶ時間は経ったものの、
対応状況はなおサーバによってまちまちです。
そんなこんなでDMARCというものが誕生し、それら不正かもしれないメールをどうすべきか、
メールを受信したサーバがDNSサーバにアドバイスを求めるような仕組みになっています。

Google Apps(Gmailも?)はわりと早くからSPFとDKIMに対応しているので、
どんな動作になるのかDMARCを設定してみました。
とりあえず私がDNSサーバに追加したレコード(BIND風)は
_dmarc.<独自ドメイン>. IN TXT "v=DMARC1; p=none; rua=mailto:<通知メールアドレス>"
です。詳細はGoogleのサポート情報を参照ください。
ちなみにOutlook.com(独自ドメイン運用)は私の登録当時SPFにだけ対応していました。
あれからだいぶ時間が経過しているので、今はもしかしたらDKIMへも対応しているかもしれません。

で、テストのためにいろいろ詐称したspamメールを送りたいのですが、今やこれが難しい。
普通のISPは普通のユーザに対しOP25Bしてますから。
なのでOP25Bしてない環境からメールを送信します。
ホストはLinuxでMTAにはすでにインストールされているssmtpを用います。
ところでssmtpは送信専用の常駐型ですらない軽いMTAで用途によっては悪くはないのですが、
メールの送り先をDNSで探してくれず、指定したMTAに対してしか送れません。
ということで通常は中継してくれる上位MTAを指定します。
が、裏技があり、送り先のMTAがわかれば(nslookup/dig等で調べられる)
そのホスト名を設定ファイルに直接埋め込むことで送れてしまいます。
相手先がGoogle Appsなら設定ファイル"/etc/ssmtp/ssmtp.conf"は以下のようにします。
mailhub=aspmx.l.google.com
FromLineOverride=YES
2行目は送信元詐称のための設定です。
準備は整ったのでメールを送信します。以下を実行します。
$ mail <送信先メールアドレス> -- -f <送信元メールアドレス>
対話型で件名(Subject:)、本文([Ctrl]+[d]で入力終了)、
CC([Ctrl]+[d]でスキップ)を入力し、エラーなくプロンプトに戻れば送信成功です。
なおFrom詐称やSPF/DKIMの不備によりspam扱いされているはずですので注意が必要です。

ではDMARCで指定した通知メールアドレスに届いているメールを確認してみます。
先の送信元メールアドレスのドメインを管理するDNSサーバに追加したDMARCレコードで
指定した通知用メールアカウントを見ると、
Report domain: <ドメイン名> Submitter: google.com Report-ID: <ID>
なるタイトルのメールが"noreply-dmarc-support@google.com"から届いています。
そのドメインのメールアドレスを送信元とするメールがどこかから送信されると
デイリーレポートとして送られてくるようです。
私はメールを受信したサーバからレポートが来るのかと勘違いしていましたが、
そうではなく正式な送信サーバから通知されるようです。
つまりDMARC対応MTAは何らかのメールを受信したときに
そのメールをどうするべきかをDMARCレコードを参考に判断した上で、
正式な送信サーバに対してその結果を通知し、
正式な送信サーバはその通知をまとめてDMARCレコードを参考に
そのレポートを管理者に送るみたいです。
そのレポートメールにはzipファイルが添付されていて、展開するとxmlファイルが現れます。
正常1通と不正1通が送られた場合のxmlファイルの中身は以下のようになっています。
('*'は伏字)
<?xml version="1.0" encoding="UTF-8" ?>
<feedback>
  <report_metadata>
    <org_name>google.com</org_name>
    <email>noreply-dmarc-support@google.com</email>
    <extra_contact_info>http://support.google.com/a/bin/answer.py?answer=2466580</extra_contact_info>
    <report_id>*******************</report_id>
    <date_range>
      <begin>**********</begin>
      <end>**********</end>
    </date_range>
  </report_metadata>
  <policy_published>
    <domain>********.***</domain>
    <adkim>r</adkim>
    <aspf>r</aspf>
    <p>none</p>
    <sp>none</sp>
    <pct>100</pct>
  </policy_published>
  <record>
    <row>
      <source_ip>***.***.***.***</source_ip>
      <count>1</count>
      <policy_evaluated>
        <disposition>none</disposition>
        <dkim>fail</dkim>
        <spf>fail</spf>
      </policy_evaluated>
    </row>
    <identifiers>
      <header_from>********.***</header_from>
    </identifiers>
    <auth_results>
      <spf>
        <domain>****.********.***</domain>
        <result>fail</result>
      </spf>
    </auth_results>
  </record>
  <record>
    <row>
      <source_ip>****:****:****:****::****</source_ip>
      <count>1</count>
      <policy_evaluated>
        <disposition>none</disposition>
        <dkim>pass</dkim>
        <spf>pass</spf>
      </policy_evaluated>
    </row>
    <identifiers>
      <header_from>********.***</header_from>
    </identifiers>
    <auth_results>
      <dkim>
        <domain>********.***</domain>
        <result>pass</result>
      </dkim>
      <spf>
        <domain>********.***</domain>
        <result>pass</result>
      </spf>
    </auth_results>
  </record>
</feedback>
この情報には送信元/送信先メールアドレスが含まれていませんが、
送信MTAのIPアドレスはわかります。
もし本当の不正メールと判断できれば遮断の検討をすべきでしょう。
なお、IPアドレスはmerit RADbで素性を調べられます。
[Query the RADb]テキストボックスにIPアドレス(IPv4/IPv6)を入力し、
[Query]ボタンを押せば管理している企業名などがわかります。

独自ドメインを個人で運用しているならいきなりreject設定してもいいでしょうが、
万一設定をミスっているとメールが届かないなんてことになりかねませんから、
不正メール送信を発見した時点で対応すればいいのではないでしょうか。

2014年4月21日月曜日

FUSION IP-Phone SMARTでの無料通話の範囲

FUSION IP-Phone SMARTをAsteriskにトランクする際に、
無料通話の範囲は総務省発表の資料から
"050-5777-xxxx"から"050-5899-xxxx"だろうと書きましたが、
サイトをよくよく見ると無料通話可能な050番号がちゃんと書いてありました。
日々更新される可能性があるのであえてここに番号表は書きませんが、
どうも電力系とは仲がいいようです。

本当は同じ050系でも番号によって対応が変わるのはなんとかしてほしいのですが、
2002年に050が登場して10年以上、あまり改善されているように感じられません。
まあ携帯電話の090、080なんかはMNPも手伝って無料通話の範囲など全くわかりませんし、
今後VoLTE時代になっても完全な定額かけ放題になるかは怪しいですし、
なによりボイスチャットアプリケーションの台頭も絡んでスパゲティ状態ですから、
それよりはましかもしれません。

2014年4月17日木曜日

Finderでシステムファイルにアクセス

MacでFinderを開くと[マイファイル]が開かれ左ペインに[よく使う項目]が出ています。
しかしこれ使いにくいんですよね。
慣れない頃[よく使う項目]に出ている項目意外にアクセスできなくてキレそうになりました。
まあ[ターミナル]からコマンドラインで操作して解決できたのですが。
わかってしまえばそんなことしなくても大丈夫で、
Finderの[移動]メニューから[ホーム]を選べばユーザホームディレクトリが開きますし、
[コンピュータ]から[Macintosh HD]を選べばハードディスク全体にアクセスできます。
とは言ってもすべてのファイルやディレクトリが見えるわけではありません。
必要なときは隠し属性を解除しましょう。

2014年4月16日水曜日

二段階認証

最近インターネット上のいろいろなサービスにアクセスしたときに
二段階認証の設定をするように勧められます。
もちろんこれにより不正アクセスやアカウント乗っ取りを難しくでき、
より安全になるのはわかるのですが、正直言って非常にうざったい。
なぜって私は二段階認証できる環境にないからです。

そもそも代表的な二段階認証は、
ある端末からユーザーIDとパスワードでログインする際に
さらにワンタイムパスワードを入力を要求し、
そのワンタイムパスワードはあらかじめ認証された端末に通知する、
というようなシステムです。
利用方法の細かい部分はサービスにより異なりますが、大筋ではこんなものです。
別に画期的でもなんでもなく古くからあるシステムなのですが、
スマートフォン(携帯電話含む)が広く普及し、
それらを「あらかじめ認証された端末」として使えるようになったのがミソです。

ところが、さらに時代の先端を走る私(?)のように、
スマートフォンやモバイルルータを複数持っていてTPOで使い分けるとか、
今使っているSIMカード(電話番号)を1ヶ月後には使っていないかもしれない、
というようなユーザーにはこの二段階認証は非常に利用し辛いのです。
さらに日本のSMSは携帯電話の進化の過程でガラパゴス化してしまったために、
データ通信(キャリアメール)を契約していない携帯電話は
たとえ将来にわたって長期に利用する予定であっても使えません。
サービスによってはそれでも可能ではあるのですが、
あらゆるサービスで統一的に使えないと面倒です。
またログインのたびに通信料がかかるなんてのはもってのほかです。

ということで二段階認証は嫌いな私ですが、
そんなことを言ってられない事態が実にタイムリーに起きてしまいました。
OpenSSLのHeartbleedです。
脆弱性があるままでもログインの度に二段階認証をかければまあ安全ではあります。
これは心を入れ替えろと言う啓示なんでしょうかね。

二段階認証に別途通信機器が必要と言うのは今の私のはきついので、
ウェブブラウザのクライアント証明書がもっと普及してほしいですね。
各ユーザの各機器ごとにパスワードで解除するクライアント証明書を発行して端末認証し、
さらにログイン用のパスワードで個人認証するなら私にも便利そうです。
まあITリテラシーが高くない方にやさしくないのが泣き所なので普及は難しいかもしれませんが。

2014年4月15日火曜日

FUSION IP-Phone SMARTをAsterisk経由で

FUSION IP-Phone SMARTのアカウントをIP-PBXとして名高いAsteriskの
外線発着信回線として利用してみます。
なお、Asteriskについては以前の記事等を参考に適切にセットアップしてください。
ちなみにFUSIONとの接続にはこのあたりを参考にしました。

まずは発信できるようにします。
設定ファイル"/etc/asterisk/sip.conf"の[general]セッションに以下を追加します。
register => <ユーザID>:<パスワード>@smart.0038.net
また"/etc/asterisk/sip.conf"の最後に以下を追加します。
[fusion1]
type=friend
username=<ユーザID>
fromuser=<ユーザID>
secret=<パスワード>
host=smart.0038.net
fromdomain=smart.0038.net
context=fusion1-in
insecure=port,invite
canreinvite=no
disallow=all
そして設定ファイル"/etc/asterisk/extensions.conf"の最後に以下を追加します。
[fusion1-in]
exten => <ユーザID>,1,Dial(SIP/<内線番号>,,tT)
exten => <ユーザID>,n,Hangup
ここで<ユーザID>と<パスワード>はFUSIONから通知されたもので、
<ユーザID>はもらった電話番号から先頭の050を取ったものです。
このケースではFUSION網からかかってきた電話を
<内線番号>のSIPクライアントで着信して通話できます。
もし複数のFUSIONアカウントを持っているなら"fusion1"としている部分を
"fusion2"などとして設定に追加し、
そちらからの着信を別の内線番号に振付けることが可能です。
設定次第で一斉鳴動させたりすることも可能です。

次に発信です。
そして設定ファイル"/etc/asterisk/extensions.conf"の
[default]セッションの最後に以下を追加します。
exten => _050577[7-9].,1,Dial(SIP/fusion1/${EXTEN})
exten => _05057[8-9].,1,Dial(SIP/fusion1/${EXTEN})
exten => _05058.,1,Dial(SIP/fusion1/${EXTEN})
総務省の電話番号割り当て資料で[IP電話の電話番号(050)]を確認すると、
FUSION IP-Phone SMARTで使われている電話番号は現時点で
"050-5777-xxxx"から"050-5899-xxxx"と判断できるので、
とりあえずこの番号向けへはFUSION網へ発信するようにします。
これだけ設定する分には無料通話しか発生しません。
もしある特定の番号(自宅とか家族の携帯電話とか)への発信を追加で許したいなら、
exten => 03xxxxxxxx.,1,Dial(SIP/fusion1/${EXTEN})
exten => 090xxxxxxxx.,1,Dial(SIP/fusion1/${EXTEN})
のように電話番号直打ちで追加すればいいですし、
電話番号の先頭に'_'をつけると正規表現ができるので、まとめて許可することも出来ます。
なお、正規表現はperlやsedで使われる一般的な'[5-7]'のような形が使え、
'X'='[0-9]'、'Z'='[1-9]'、'N'='[2-9]'と省略できます。
また'.'は一桁以上の数字として認識されます。

もしまったく縛りなく発信したいのであれば、先の設定の代わりに
exten => _0.,1,Dial(SIP/fusion1/${EXTEN})
とすればいいでしょう。
日本の電話番号は市外局番を含めると先頭に0が必ず付きますし、
国際電話も"010+国番号+相手先電話番号"なので
0から始まる番号へFUSION経由でかけられます。
ただしAsteriskへのログインパスワードが洩れると
有料通話をされまくるなんてことになるのでご注意を。
さらにFUSIONへのログインパスワードがAsteriskの設定ファイルに平文で書いてあるので、
設定ファイルのパーミッションやサーバへのログインパスワードについても言わずもがなです。
まあFUSIONへのログインパスワードは安全のためMYページで時々変えたほうがいいでしょう。
なお、国際電話はMYページで許可しておかないとかけられませんが、
必要ないなら禁止したままにした方が無難です。

2014年4月14日月曜日

OpenSSLのHeartbleed

私も常日頃からお世話になっているOpenSSLで大変な脆弱性が見つかりました。
名付けてHeartbleedだそうです。
詳しい(?)ことはOpenSSLのサイトでアナウンスされていますが、
ここまでの大騒ぎはWindowsのBLASTER以来かもしれませんね。

パッチを確認したわけではないのですが、
洩れ聞こえるところによるとTLS heatbeatに関してメモリ境界チェックができてなく、
同一プロセス内のメモリ内容すべてが読み取られる可能性があるということだそうです。
名前からしてkeep-aliveっぽく、
SNI(Server Name Indication)のように何か特別な目的のための拡張なのかと思ったのですが、
このあたりを見る限り、単なるkeep-aliveのようです。
RFCを読んだわけではないのでなんともいえませんが。

Heartbleedで盗まれるのは、
その瞬間にそのプロセスから参照可能なメモリ上にあるものです。
悪意あるサーバが、接続してきた脆弱性のあるクライアントの
ローカルにある情報を奪うケースも考えられますが、
Heartbleedで奪った内容はそれなりに解析しないと意味不明なので、
悪意あるサーバなら秘密にすべきデータをユーザに送らせる方が手っ取り早いでしょう。
ということで一般ユーザは通常通り悪意あるサーバへ警戒するだけでよく、
クライアント側のHeartbleed自体についてはそれほど気にする必要はないでしょう。
Chromeブラウザならタブ間でプロセスが違うはずなのでより安全でしょうし。

問題なのは、脆弱性のあるサーバの情報を悪意のクライアントが盗むケースや、
善意のクライアントが脆弱性のある善意のサーバに接続した際の情報が
ほぼ同時に接続した悪意のクライアントに盗まれるケースでしょう。
前者ではSSLのセッション開始時に確実にメモリ上にある証明書や秘密鍵が盗まれる可能性があり、
後者は通信内容にユーザ名やパスワードやクレジットカード番号が含まれていると、
それらが第三者に渡ってしまう可能性があります。
なおこれらについては一般ユーザは防ぐ手立てはありません。
とにかくアクセスしないのが基本となります。

さて、とりあえず自衛手段を考えてみました。
まずは銀行のオンラインバンキングや証券会社のオンライン取引サービスについては
対応済みであることが表明されるまで無期限でログインしないことにし、
表明後にパスワードを変更することにします。
ただし、乱数表が配られていたりするサービスや、
フル権限用とは別に参照だけできるパスワードが発行されているようなサービスは
その限りではありません。

同じ金融資産でも確定拠出年金等のサービス内でのみ自己資産が動かせるサイトは、
そこまで神経質にならなくてもいいかもしれませんが、
何かされると困るので先ほどと同様にした方がいいでしょう。

金融資産でなくてもポイント資産は守らねばなりません。
WAONポイントとかANAのマイレージとかを扱うサイトも同様ですね。

利用料金にも注意が必要です。
携帯電話のプランを勝手に変更されたりするのは問題ですが、
Fusion等のIP電話のパスワードが漏れると
勝手に使われて高額請求なんてことになりかねません。
十分に注意しましょう。

通販サイトについても基本的に上記と同様に注意すればよいのですが、
クレジットカード番号の流出には気をつけなければなりません。
それこそ勝手に使われて高額請求です。
未対応サイトにクレジットカード番号を入力するのは言語道断としても、
サイトに登録しているカード番号が表示されるだけでも危険です。
つまりクレジットカードの利用明細参照サイトへのアクセスさえも注意すべきです。

ところでサーバ管理者によっては大変な作業が必要となります。
セキュリティーパッチを当てるのは当然としても、
証明書等に関しては新しいものを発行してもらうことのみならず、
フィッシング等で悪用されるのを防ぐため現在のものを失効しなければなりません。
すなわちCRLに登録してもらう必要があります。
これら手続きは通常有料でしょうから、
この四半期の証明書発行機関の売り上げが伸びるなんてことも起こるかもしれませんね。

私もVPSでOpenSSL使っているのでこのニュースを聞いてあせったのですが、
利用中の0.9.8系は対象外だそうで事なきを得ました。
こういうのは枯れたものを使うべきという教訓ですね。
ちなみに1.0.1系は1.0.1gで修正されているとのことです。
話がそれますが、0.9.8系は今0.9.8yが最新で、
zのあとはどうなるのかちょっと興味があります。

ウェブ系だけでなくOpenSSLはOpenVPNにも使っています。
もちろん0.9.8系なので対応の必要はありません。
が、ここに書いてあるとおり、
影響があるバージョンを使っていてもtls-authを有効にしておけば問題ないそうです。
設定ファイル("/etc/openvpn/server.conf"など)内で"tls-auth"を検索すれば、
そのやり方が書いてあります。

さてさてみなさん、Heartbleedにはくれぐれもご注意を。

2014年4月10日木曜日

FUSION IP-Phone SMARTをいろいろなデバイスやアプリケーションで

先日公式アプリケーションで普通の使い方をしたFUSION IP-Phone SMART。
他にもいろいろ試してみます。

iPhoneでは公式アプリケーションのSMARTalkはすでに使ってみたので、
今度はAGEphoneを利用してみます。
インストールして起動し、[設定]メニューの[詳細]から[プライマリSIPアカウント]を開き、
[ユーザID]と[認証ID]にFUSIONからもらったユーザID(電話番号から先頭の050を抜いたもの)を、
[パスワード]にFUSIONからもらったパスワードを、
[ドメイン]にFUSIONから指定されたドメイン"smart.0038.net"を設定すれば普通に通話できました。

AndroidスマートフォンではGoogle PlayからAGEphoneをインストールします。
起動して[設定]メニューから[簡易設定]-[標準のSIPアカウント]とたどり、
[ドメイン]、[ユーザID]、[認証ID]、[パスワード]をiOS版と同様に設定します。
これで普通に通話できました。
なお、日本通信のSIM U300の低速回線だと
受話の音声がなんとも表現しがたいノイズで通話になりません。
設定をいじればいいのかもしれませんがそこまで追ってはいません。

MacではLinphoneを使ってみます。
ダウンロード後、実行ファイルを[アプリケーション]にコピーして、それを立ち上げます。
[SIP account configuration assistant]なるウィザードが開くので、
[I have already a sip account and I just want to use it]を選択し、
[Username]にユーザID、[Password]にパスワード、
[Domain]に"smart.0038.net"を設定します。これで通話可能です。
ただし、私のMacBook Proでは音が出なくて、
[Options]-[設定]メニューで[Settings]を開き、
[Multimedia settings]タブの[Audio]で
[Playback device]を"AudioUnit: Built-in Output"に、
[Ring device]を"AudioUnit: Built-in Output"に、
[Capture device]を"AudioUnit: Built-in Microphone"に手動で変更して対応しました。

WindowsでもSIPクライアントはいろいろありますが、
Macと同じLinphoneをインストールしてみます。
立ち上げてMac版同様に設定すれば通話できます。
環境によってはMac同様音声入出力設定を変更する必要があるかもしれませんが、
私の場合はデフォルトでいけました。

最後に組み込み機器のBLW-54VP(通話王)です。
SIPクライアントを内蔵し、アナログ電話をハンドセットにでいうモバイルルータです。
さすがにもう手に入らないでしょう。
ネットワークへの接続が出来ている状態で、外部のウェブブラウザから
通話王のウェブサーバへアクセスし、設定ページへログインします。
[START WITH ADVANCED SETUP]メニューの[VoIP]-[SIP Settings]を開き、
[SIP Listen Port]、[Proxy Server Port]、[Register Server Port]に"5060"を、
[Proxy Server Address]、[Register Server Address]、[SIP Domain]に"sip:smart.0038.net"を、
[User ID]、[Display Name]、[User Authentication Name]にユーザIDを、
[User Authentication Password]にパスワードを入力し、
[Save]をクリックすることで通話できるようになりました。
通話王にはコードレス電話をつなぐことも出来るので、
固定電話の代わりとして利用するのになんら支障はありません。

以上のように一般的なSIPクライアントなら大体つながりそうな雰囲気の
FUSION IP-Phone SMART。
IP電話のハードフォンを調達すれば固定電話としても十分使えそうです。
光回線の付帯サービスで基本料の必要な0AB番号のIP電話の
代替選択肢として利用すれば安く上がるケースもありそうです。
一番号持っておくことをお勧めします。

2014年4月9日水曜日

チルトシフトアダプタ

最近カメラ関係の話題が多いのでついでに書いておきます。

カメラの光学軸を傾けたりずらしたりすると、ピントがぼけて変わった写真が撮れます。
現実の風景を撮っているのにミニチュア風というかジオラマ風というか、
なんとも味のある一枚になります。
それを実現するのがチルトシフトアダプタで、
レンズ交換式カメラのボディとレンズの間に挟みこんで光軸の調整を行います。
このアダプタ、原理は簡単なのですが、それを実現するとなると構造的にごつくなり、
低需要もあってかなり高額になってしまいます。

実は樋野製作所がそこそこの価格で
チルトシフトアダプタの発売を予定しております。
マイクロフォーサーズのボディとフォーサーズのレンズを組み合わせる製品のため、
フォーサーズのレンズを持たない私には縁がないのですが、
ちょっと興味があってブックマークをつけて時々見に行っています。
だたし、もう2,3年音沙汰がありません。どうなっているのか非常に気になります。

2014年4月8日火曜日

FUSION IP-Phone SMARTの標準サービス

FUSION IP-Phone SMARTには無料で留守番電話サービスが使えます。
レジストしていない間に着信を受けたり、着信に一定時間(デフォルト20秒)出られないと、
登録していたメールアドレスに[着信通知サービス]メールが届きます。
留守番メッセージがあれば[メッセージお預かり通知]メールとなります。
メッセージはMYページにログインして [留守番電話]メニューからダウンロードできます。
音声ファイルはwav形式のなので、いまどきのデバイスなら再生できるでしょう。
なお録音データファイルを通知メールに添付してもらうことも可能です。
これらの変更はMYページの[各種設定]メニューから
[着信転送、留守番電話設定画面へ]をクリックしたところでできます。

留守番電話と排他になりますが、
FUSION IP-Phone SMARTには無料の転送サービスもあります。
無条件転送と無応答転送が選べますが、
FUSIONからの転送先までの通話料が発生するのでご注意ください。
FUSION間の通話は無料なので転送先もFUSIONなら無料のはずです。

もちろん国際電話もかけられます。
ダイヤル方法は"010+国番号+相手先電話番号"となります。
これは地理的な話ではなく番号体系のことであることに注意ください。
自分が海外にいてもインターネット経由で
FUSION IP-Phone SMARTのサーバにつながってしまえば、
日本との通話は国内電話となります。
なお、国際電話は標準では禁止されており、
MYページの[各種設定]から有効にしないとかけられません。

IP電話(SIP)なのでPCでも使え、機材さえ何とかなれば固定電話としても使えますし、
さらにインターネットにつながりさえすれば海外でも同じ使い勝手で利用できるはずです。
まあ海外だと音声品質や回線遅延の問題がある可能性はありますが。
それでもとりあえず1番号確保しておくと便利かもしれません。
心配事があるとすればバグで勝手に通話されて課金されるとか。
信頼の置けるクライアントソフトを利用することをお勧めします。

2014年4月7日月曜日

なのはチューブ

安原製作所から接写を可能にするなのはチューブ
マイクロフォーサーズ版が販売されています。
10mm厚と16mm厚の2種類のセット品が同社サイトから購入できます。
消費税増税前に駆け込み衝動買いする予定だったのですが、結局やめました。
というのも、広角が撮りたくて購入したROWA製ワイドコンバージョンレンズを分離すると
マクロコンバージョンレンズとして使えたからです。
詳細はこちらを見ていただくとして、
私の使い方に十分だったので、
なのはチューブは保留ということになってしまいました。ごめんね安原製作所さん。

ただ、"なのはチューブ"には明確な利点があります。
レンズ交換式カメラの接写というとマイクロフォーサーズなら
純正コンバージョンレンズのOLYMPUS MCON-P01Panasonic DMW-GMC1なんてのがありますが、
母レンズが制限されますし、
比較的適用範囲が広いクローズアップフィルタにしてもフィルタ径が違えばはまりません。
そんななか登場した"なのはチューブ"は本体とレンズの間に挟むようにするマクロフィルタで、
マイクロフォーサーズ用(Eマウント用もある)なら
マイクロフォーサーズ規格の範囲内で本体もレンズも選ばず使えます。
まあいったんレンズを取り外さないと取り付けできないわけで、
面倒であったり、ごみの侵入や落下リスクが発生するのは欠点ですが、
価格もそこそこで悪くない選択肢だと思っています。

2014年4月3日木曜日

FUSION IP-Phone SMART でマルチレジスト

SIPでは同一アカウントで複数クライアントからレジストしたときに、
一斉鳴動してどれでも受話できたり、輪番鳴動したり
サーバによっていろいろ出来たりします。
FUSION IP-Phone SMARTではどうなるか試してみました。

同一アクセス回線(同一グローバルIPアドレス)からは
2つのデバイスから同じアカウントではログインできません。2台目は失敗します。
同一アクセス回線でなければ2つのデバイスから同じアカウントでログインできますが、
着信は後にレジストした方にかかります。
なお着信中に同アカウントの別デバイスに着信する場合には話中になりますが、
発信するとなんとつながってしまいます。ただし音声が混線することがあるようです。
デバイスを4台(1台は携帯電話)を並べてテストしていたので
私の頭の方が混乱していた可能性は否定できないものの、
どっちにしてもマルチレジストは実運用にはなりません。

2014年4月2日水曜日

ジョジョの奇妙な冒険 第3部 スターダストクルセイダーズ

もう2年ぐらい前になるのでしょうか。
第1部と第2部がアニメ化されたジョジョの奇妙な冒険の
第3部がアニメ化されるんですね。知りませんでした。
まあ第2部最終話の最後からして第3部についても確定的だったのですが。
放送日はこちらに書いてありますが、
地上波は4月第一週から開始の局もあるのでお忘れなきように。
BS11がビットレートが高くていいのかな?

さて、第3部といえば波紋がほぼ消え、石仮面は完全に消えて、
スタンドが初登場したシーズンですが、
私としては第1部の次に好きで、その内容は今でも結構覚えています。
それに引き換え第4部は全部読んだはずですが最後どうなったのかまったく思い出せません。
連載当時にオリジナルビデオアニメがいくつか出ていていくらかは見ましたが、
まさか十数年後に全部見られるようになるとは。
先行でPVが公開されているのでこれでも見て待つことにします。

私の印象でしかないのですが、第3部は恐ろしく長かった気がします。
対決するスタンドが30体ほどいて、1体を数週かかって倒していたので、
素直にアニメ化するととんでもなく長期になります。
1週間で1体倒すような足早な展開にするとしても半年では足りないですし、
第1部と第2部が合計で半年26話だった実績を考えると2クールは堅いのではないでしょうか。
もしそうだととしても、ストーリー上重要でないスタンドはカットの憂き目に会いそうです。
その筆頭は「太陽」ですね。
あとは「運命の輪」、「節制」、「悪魔」、「審判」のあたりが危ないような。
「女教皇」や「塔」は重要拠点間の移動中の話になるので切りたくはないかな。
エジプト国内で登場する分は…クヌム神はトト神との絡みで切れませんし、
バステト女神は好きなエピソードなので切ってほしくないですね。

個人的な意見としてはスタンドはコンプリート登場にしてほしいですね。
そうするとなると3クールでもかなりぎりぎりです。
できれば1年50話で少しゆったりでお願いしたいところです。

2014年4月1日火曜日

iPhone4SにMVNOなSIMを

半ば衝動買いした楽天のSIMカードのエントリープラスプラン。
日本通信SIM U300が現役のあと1ヶ月間完全に寝かしておくのももったいないので
Softbank iPhone4S(iOS 6.1.3)に挿してみることにしました。
といってもこのiPhone4SはSIMロックしてあるので単に挿しただけでは動きません。
そこでSmartKing 4Sを購入です。
docomoのピンクSIMとの組み合わせは使えないと注意書きはあるものの、
常用するつもりはなく、動作確認してみたいだけで、
価格もそう高くはないので軽いノリで作業開始です。

結果ですが普通につながります。
同封の説明書きとそこに書いてあるURLのあるウェブページを参考にしながら
特に難しくもない作業をこなすだけで完了します。
強いて言えば、電源投入から3G回線につながるまでに時間が少しかかることと、
データ通信専用SIMだからでしょうか、バッテリーのヘリが早いような気がすること、
それにやっぱりテザリングはできないことぐらいです。
なお、やるなら各自自己責任でお願いします。

ただ今回やってみて問題点も見つかりました。
1つはセキュリティの問題です。
Softbank(だけ?)のiPhone4Sだと、どうもAPNの設定が手動で出来ないらしく、
あるウェブサイトに情報を登録した上で設定ファイルをダウンロード、インストールすることになります。
日本通信やIIJmioのSIMカードだと、それでもあまり気にはならないのですが、
楽天の場合はユーザ名やパスワードが各アカウントごとに別のものが割り当てられていて、
それらもいまいち素性のはっきりしないウェブサイトに教えることになってしまいます。
そのユーザ名やパスワードは楽天のサポートサイトへのログインアカウントでもあるため、
へたをすると何かされてしまう危険があります。

2つ目は海外でSIMカードを購入する時の不便さです。
先のようにAPN設定が手動で出来ないため、渡航先でプリペイドのSIMカードを調達しても、
まずWiFi回線がないとデータ通信の設定が出来ません。
多分音声通話は出来ると思われるので、仲間とはぐれたときの緊急回線として使えるでしょうが、
その程度の使用方法なら日本のSIMカードを入れたままで
国際ローミングでも金銭的負担はそう変わりません。
わざわざ現地SIMを使うのは安価にデータ通信が目当てなので、この仕様は辛いですね。
国外によく行くのなら、古い機種でもいいので真のSIMロックフリー端末がよさそうです。

そして3つ目が不安定さです。
不安定といっても通常使用時に動作が不安定という意味ではありません。
私はiPhone4Sを普段は電源を切っていて、必要なときだけ立ち上げています。
一日中電源を入れないことも多く、入れたとしても一回5分程度だけです。
携帯電話との2台持ちならではの運用で、
これなら普段スマートフォンのバッテリーの残量を気にしなくてすみます。
で、SmartKing 4Sを入れてしばらくしてからのこと、
iPhone4Sの電源を入れると"アクティベーションが必要です"と表示が出て先に進めません。
iPhone4S購入時にもらった契約中のSoftbankのSIMカードに入れ替えると
アクティベーションが出来たようで、
また楽天のSIMカードに入れ替えてもきちんと動作するようにはなりました。
しかし、いつまた"アクティベーションが必要です"といわれるかと思うとちょっと不安です。
こういうトラブルはえてして大事な場面で起こることも多く、
いざと言うとき使えないのでは役に立ちません。
SoftbankのSIMカード等の緊急対応セットも持ち歩かなければならないのなら、
モバイルルータとセットで使った方がいいように思います。

ということで、楽天SIMは日本通信SIMが期限切れとなる一ヶ月後に
P01Dに移すことにしました。