知っていますか?「暗号アルゴリズムにおける2010年問題」

※「暗号アルゴリズムにおける2010年問題」とは
暗号アルゴリズムの安全性は、コンピュータの性能向上および暗号解読技術の進展により、徐々に低下していくことが避けられません。

例えばNIST(米国標準技術研究所) では、現在利用されている米国政府使用の暗号技術(暗号アルゴリズム)を、2010年末までにより安全なアルゴリズムへ移行させる方針を打ち出しています。

セキュリティの観点からは、より安全な暗号アルゴリズムへ早急に移行することが望ましい一方で、SSL/TLS通信に支えられる情報システムの安全性・可用性を損なうことなく移行するためには、企業システムの改修にかかるコストの問題や、組込み機器における実装上の制約など、多くの課題が存在します。この「移行」に伴う問題が一般的に「暗号アルゴリズムにおける2010年問題」、または「2010年問題」と呼ばれています。

なんだか普通にシステム作っているだけでは関係ないように思えますが、WEBシステムを作成している方には全く無関係とは言えない問題があります。
「SSL証明書」
「https://」で始まるアレですよ。
実態として来年2011年からSSL証明書は公開鍵長が「2048bit」となる。そうなると、1024bitまでしか対応していない古い携帯端末でSSL通信できないようになるんですよ。
実際今月に入って、auの一部EZアプリで2048bitに対応できないことが発覚しているんですよ。これは携帯端末というよりアプリ自体の問題でしょうか。
大手のSSL証明書発行会社では、この問題は今年に入って何度かアナウンスされています。
日本ベリサイン
https://www.verisign.co.jp/ssl/about/20100128b.html
グローバルサイン
http://jp.globalsign.com/info/important/2010/03/id255
ジオトラスト
http://www.geotrust.co.jp/news/2010/20100129.html
今月俄かにこの問題がクローズアップされているのは、携帯対応率が高く、費用の安い「ジオトラスト」が来月7月より2048bitのみ発行するという方針を出しているからなのです。
「ジオトラスト」の2048bit証明書では、1024bitまでしか対応しない携帯端末はSSL通信ができなくなります。
最大手の「ベリサイン」はクロスルート方式を取って、この問題を回避するようですが、この方式の意味がよく理解できない・・・
ともあれ、SSL証明書の取得方法や設置方法などが変わるんですよ。

結局スピードは出たのか?

昨日の続き・・・
お客様のところで計測してみました。
環境は、金沢ケーブルテレビインターネット30MBプランです。
下りは18Mbps前後でしたが、上りは1.4Mbps・・・・・
ああーー、クチコミどおりの遅さです。予想はしていたものの、かなり残念な結果です。
CATVともなれば、プロバイダは選択の余地なしですから、独占でやりたい放題ですね。

今自宅はどのくらいの回線スピードが出ているのか?

久しぶりに仕事でVPNの設定をするかもしれない機会に恵まれた。
設定の前に調査に入ることになっているのだが、ケーブルインターネットの上りが非常に遅いであろうことが気になった。
考えていると、自宅もBフレッツを解約した後、測定したことないな?と思ったので次のホームページでチェックしてみた。
BNRスピードテスト
http://www.musen-lan.com/speed/
自宅は・・・
クライアントが、NTT西日本の光プレミアム→レンタルルータ(ASAHIネット)→パソコン
サーバが、NTT西日本の光プレミアム→レンタルルータ→RTX1100(ビジネスぷらら)→サーバ
という2契約となっている。
測定の結果は、下りが25Mbps前後で光にしては上限を押さえられているが、上り(1000KBを選択)が同じく25Mbps前後を示した。上りのスピードにはびっくりした。
ISDNやADSLではプロバイダで上りの上限を回線最大速度の10分の1程度に抑えているところが多いので、自宅の場合10Mbpsも出れいればいいかと思っていたが、上下ともに同じ速度とは良心的なプロバイダではないか!

CakePHPで大量データのCSV出力

今やはりのプログラムはMVCモデルのフレームワークですね。
PHPには、Zend Framework、Symfonyとありますが、今回はCakePHPの話。
CakePHPでWebサイトを作成してもう少しで一年。フレームワークのよい所、わるい所が見えてきました。
最近の話・・・
200万件レコードをCSVデータとして出力する処理を作成していました。
テキストデータで300MBもないデータですが、PHPに割り当てた1GBのメモリがイッパイになってしまうこと数回・・・・
なぜ?なぜ?
同じデータをphpMyAdminのCSVエクスポート機能から出力すると、最後まで出力できる。
両方のコードを調査してみた。
phpMyAdminのコードは、データベースを開いた後で、オブジェクトに取得したデータを1行ずつ出力していきます。
対して、
CakePHPのコードは、データベースから取得したデータを何やら配列らしいものにセットして・・・
って、ここがどうもメモリを相当に圧迫しているらしい。速度的にもボトルネックになっていそう。
まあ、こんな大量なデータベースデータを標準機能で取得することは想定されていないだろうな?

VSUG Day 2010 Summer

VSUG Day 2010 Summer
今日は、久しぶりのセミナーに参加するため、大阪市鶴見区民センターにやってきました。
VSUG(Visual Studio User Group)の主催で、今年マイクロソフトから発売される「Visual Studio 2010」「.NET Framework 4」(今バージョンから何気に「4.0」ではなくなった)「Silverlight 4」の最新情報の発表内容でした。
「WPF」「Silverlight」はようやく実務的に使い勝手が良くなった感じですが、まだまだWindowsフォームやASP.NET勉強中の自分には置いて行かれたような・・・・頑張ってついていかねば!
最新状況を仕入れるための県外出張でしたが、実務では最近Windows開発から遠く離れていく状況です。
最近流行りの「クラウド」、「Windows Azure」(「あじゅーる」と呼びます)については、ドメインが「*.cloudapp.net」に固定されるようで、実務としての利用ケースが思いつきませんね。
今日は、大阪の会場で石川県の前勤務先の上司と遭遇。お互いの近況を交換しあいましたが、こんな偶然もあるんですね。
夜には大学時代の旧友と5年ぶりの再会を果たし、それぞれに周りの状況は変わっているものの、顔を合わせれば15年前と変わりませんね。話している話題は、少し年寄り臭い内容もチラホラありましたが・・・

懸賞に当たった!

F-SECURE
久しぶりに雑誌の懸賞に当たりました!!!
学生の頃は懸命に懸賞に応募していたこともあり、数ヶ月に一回は当たったけど、最近はめっきり懸賞に応募しなくなったので、うれしいですね。
懸賞賞品のトナカイをみて欲しい!って思ったわけだけど、本当に当たるとは。
何故かこんなことに運を使い果たしている気がする・・・・

Windows7でXP Modeを使おう!

Windows7の売りのひとつ「XP MODE」、IntelVT機能などの仮想機能が付いているパソコンにのみインストールできるって、宣伝もせずに発売当初はハードメーカーが在庫処分を急いだ結果、たくさんの哀れなパソコン達が売れらていきました。そんな状況を憂いていた自分ですが・・・
半年も経たずに、今週「仮想機能なし」でも動作する「XP MODE」がリリースされました。
仮想機能が必要なことで、かなり苦情があったのでしょうか?それともハードメーカーの責任が、ソフトメーカーのマイクロソフトを脅かしたのか、真相はわかりませんが、使う側としてはメデたいことです。
http://www.microsoft.com/japan/windows/virtual-pc/default.aspx
インストールは、3つのファイルをダウンロードします。
1.Windows XP Mode
2.Windows Virtual PC (Windows Update パッチ)
3.Windows XP Mode update (Windows Update パッチ)
これまでは2ファイルのみで、1をインストールするときに「仮想機能ないから入れられないよ!」と怒られましたが・・・
今回は3のパッチを当てることで仮想機能がないパソコンでも「XP MODE」が使用できるようになります。
快適に「XP MODE」を使用するには、インストール後に変更します。
1.メモリを「512MB」に変更する。
2.復元機能を「無効」にする。
いずれにしてもメモリはたくさんあるに越したことはありません。
企業の方もこれでWindows7を購入しやすくなりましたね。

SSHは便利だけど・・・

直接入力するのも大変ですので、SSHを入れましょう。
Tera Termでログインすれば、貼り付けなどで作業効率もグッと上がります。
CentOS5.3にはSSHサーバーは最初からインストールされていますので、早速設定を始めましょう。
# vi /etc/ssh/sshd_config
標準ポートは22番ですが、限られた人が使う場合はセキュリティの観点から変更しましょう。
#Port 22
Port 10022
ログインしたときのバナーを作成します。威嚇程度にしかなりませんが・・・
#Banner /some/path
Banner /etc/ssh/banner.txt
SSHはバナーは設定ファイル内ではなく、別ファイルに記述します。
設定ファイルの最後にログインできるユーザーを記述しましょう。IPアドレスを固定できるのであれば、rootもアリですね。
AllowUsers root
設定ファイルを保存して、ログイン時に表示するバナーを作成します。
# touch /etc/ssh/banner.txt
# vi /etc/ssh/banner.txt
Welcome! SSH Service. This login is recorded in the log.
設定後にデーモンの再起動します。
# service sshd restart
ポートを変更した場合は再接続します、
それではTCPWrappersを次に設定します。CentOSには最初からインストールされています。この機能ではデーモン毎に利用する環境を制限したり、付属してアクションを指定することができます。
http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/ja/security-guide/ch-server.html
注意するのは再起動は不要ということ!
保存と同時に設定が適用されるので、注意して最後の保存はボタンを押してくださいね。
許可ファイルにIPアドレスと許可された場合にログに記録するアクションを記述します。
# vi /etc/hosts.allow
sshd : 127.0.0.1 192.168.0. : banners /etc/banners/
記述は、(デーモン名):許可するIPアドレス:許可された場合のアクション、という順となります。
ネットワーク範囲でIPアドレスを指定する場合は、
192.168.0. (最後に「.」を忘れずに!)
または、
192.168.0.0/255.255.255.0
と記述します。
よくある 192.168.0.0/24 はエラーになるので使えません。
拒否ファイルにIPアドレスと拒否された場合にログに記録するアクションを記述します。
# vi /etc/hosts.deny
sshd : ALL : spawn /bin/echo `LANG=C /bin/date` from %h>> /var/log/sshd_reject.log
記述は、(デーモン名):拒否するIPアドレス:拒否された場合のアクション、という順となります。
上記の例では拒否されたIPアドレスをログに記録しています。
あ!そうそう接続ポートを変更する場合は、SSHの設定前にファイアウォールを停止させてくださいね。
# service iptables stop
外部から接続している場合は何もできなくなってしまいますよ!

SELinuxは・・・・どうする?

SELinuxはどうしていますか?
これって設定難しくないですか?まともに設定しているサイト見たことありません。
ということで、他でセキュリティ対策を考えることにして、今回は「無効」にします。
とりあえず、起動中のSELinuxを無効するコマンドです。
# setenforce 0
それでは、状態を確認してみましょう。
# getenforce
Permissive
これだけだと、再起動したときに復活してしまいますので、再起動時のデフォルト状態を変更しておきましょう。
# vi /etc/selinux/config
デフォルトの有効状態は以下に記載されています。
SELINUX=enforcing
今後設定が必要になったときのための情報を採取する人はこちら。エラーログは出力してくれます。
SELINUX=permissive
全く無効としてしまう人はこちら。
SELINUX=disable
ちなみに、SELinuxの「enforcing(permissive)」←→「disable」の切り替えはホストの再起動が必要です。