メモの日々


2003年10月27日(月)

[unix] ALTQ(2)

  • 金曜に思った、「token bucket regulator」が帯域制御を行っている、という解釈は誤りのようだ。「token bucket regulator」はdequeueされた後でパケットキャッシュされてしまうことによる問題を避けるのが目的みたい。
  • とすると帯域制御は「queueing discipline」の役割か。
  • など眺めていたら、ALTQは使わずdummynetを使うことになりそう。

生活

  • 収入印紙を買った。収入印紙についてはタックスアンサーにてオフィシャル情報を取得すべし。
  • 9:40 出社。席についてから買った収入印紙がないことに気づき、慌てて探すとジュースを買った自動販売機の前に落ちていた。ふう。
  • 16:00〜 FreeBSD 5.1のインストール。
  • うーん、インストーラが英語だからよくわからん。が、なんとかインストールできたみたい。/stand/sysinstall を実行するとインストーラが起動されるようだ。
  • portsからjmanをインストールしたらえらい時間がかかった。なんだか関係ないものまでコンパイルしているように見える。よくわからん。でもとにかくjman使えるようになった。
  • 19:10 後は明日だ。退社。

やること

  • 400円の収入印紙を買う
  • 保険料の支払い
  • 家賃分のお金をおろす
  • 図書館に本を返す

2004年10月27日(水)

  • 餃子で満腹。

[unix] /usr/src 以下のファイルのインストール

FreeBSD4.9で、CDROMのsrcディレクトリにて「sh install.sh all」とするとインストールできた。

やること

  • プリンタ処分
  • リンク元のスリム化
  • ナンバーアナウンス解約
  • 納品・請求
  • 家賃

2005年10月27日(木)

  • 昨日は体調不良で休んだ。年だねえ。

[security] SSLの暗号化通信開始までの流れ

SSLについてちょっとメモ。IPAのサイトにある7.1 TLS (SSL)が参考になる。

以下、おれの理解。

  1. クライアントからサーバへ、使用したい暗号アルゴリズムのリストなどを送信。
  2. サーバからクライアントへ、使用する暗号アルゴリズムなどを返信。
    • アルゴリズムは、鍵交換用(RSAなど)、暗号化用(RC4、DESなど)、ハッシュ用(MD5、SHA-1)の3種類を決定する。
  3. サーバからクライアントへ、サーバの証明書を送信。証明書内にサーバの公開鍵も含まれている。
  4. クライアントはサーバから送られた証明書を検査。
  5. クライアントからサーバへ、セッション鍵の元情報(プリマスタシークレット)を送信。プリマスタシークレットはサーバの公開鍵を使い暗号化して送信する。プリマスタシークレットは乱数なのかな。
  6. クライアント、サーバ共、プリマスタシークレットからマスタシークレットを生成し、更にマスタシークレットからセッション鍵、MAC鍵、初期ベクトルを生成する。
  7. 以降は、双方で生成した共通のセッション鍵を使って暗号化を行い通信する。

[security] stunnelが使う暗号アルゴリズム

で、stunnelがどんな暗号アルゴリズムを使うのかを知りたい。

アルゴリズムは設定ファイルのオプションの「ciphers」で指定するようだ。指定しなかった場合の値は、stunnelをversionオプションを指定して実行すると分かるみたい。

$ /usr/sbin/stunnel -version
stunnel 4.05 on i386-redhat-linux-gnu PTHREAD+LIBWRAP with OpenSSL 0.9.7a Feb 19 2003
...
ciphers         = ALL:!ADH:+RC4:@STRENGTH
...

「ALL:!ADH:+RC4:@STRENGTH」の意味が分からないけど、stunnelはopensslを利用しているようなのでopensslのオプションを調べれば分かりそう。

[security] opensslでのciphersの指定

UNIXの部屋にある説明を元に「ALL:!ADH:+RC4:@STRENGTH」を解釈すると、「全ての暗号スイートから ADH が関係するものを除き、RC4の優先度を下げてから暗号強度順にソートする」という意味か?

$ openssl ciphers 'ALL:!ADH:+RC4:@STRENGTH'

を実行したら「DHE-RSA-AES256-SHA」が先頭に出力された。「man ciphers」によるとこれは「TLS_DHE_RSA_WITH_AES_256_CBC_SHA」という意味らしい。これはRFC 2246などを見ると鍵交換アルゴリズムが「鍵長無制限のEphemeral DH with RSA signatures」、暗号化アルゴリズムが「鍵長256ビットのAES」、ハッシュアルゴリズムがSHAということかな。手元のopensslはこれを優先して使おうとするはず。

opensslをクライアントとして起動してサーバに接続すると色々情報が出力されるようなので、試してみた。

$ openssl s_client -connect ホスト名:ポート番号 -cipher 'ALL:!ADH:+RC4:@STRENGTH' -state
...
Server public key is 1024 bit
SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES256-SHA
...

となった。AES256-SHAというのはTLS_RSA_WITH_AES_256_CBC_SHAのことのようなので、鍵交換アルゴリズムは「鍵長無制限のRSA」になり、サーバの公開鍵の鍵長は1024ビットだったということだろう。

[security] SSL関連のリンク

上に挙げた以外に参考になるサイトをメモ。

やること

  • 蛍光灯を捨てる
  • 1399円払う
  • 請求書
  • 見積書
  • 家賃

2006年10月27日(金)

[java] 「Eclipse での JFace データ・バインディングを理解する、第 1 回」 (developerWorks)

読んでないけどちょっとメモ。

最近では、このデータ同期プロセスを自動化するために、いくつかのデータ・バインディング・フレームワークが登場してきました。この記事では、データ・バインディング・フレームワークが何をするのかを説明し、一般的な Java GUI データ・バインディング・フレームワークをいくつか紹介し、そしてデータ・バインディングを使うことの利点と欠点について解説します。

やること

  • デザイン変更
  • 保険
  • 蛍光灯
  • PHSのファームウェアアップデート
  • 健康診断
  • 家賃
  • 請求書
  • 見積書