Personal tools
You are here: Home ブログ 井上 まさかの2038年問題
« December 2010 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
Recent entries
Apache2.4のリリース予定は来年(2011年)初め(あくまで予定) inoue 2010-12-23
Herokuの発音 inoue 2010-12-20
雑誌記事「ソフトウェア・テストPRESS Vol.9」の原稿公開 inoue 2010-12-18
IPA未踏のニュース inoue 2010-12-15
労基法とチキンゲーム inoue 2010-12-06
フロントエンドエンジニア inoue 2010-12-03
ASCII.technologies誌にMapReduceの記事を書きました inoue 2010-11-25
技術評論社パーフェクトシリーズ絶賛発売中 inoue 2010-11-24
雑誌連載「Emacsのトラノマキ」の原稿(part8)公開 inoue 2010-11-22
RESTの当惑 inoue 2010-11-22
「プログラマのためのUXチートシート」を作りました inoue 2010-11-19
「ビューティフルコード」を読みました inoue 2010-11-16
Categories
カテゴリなし
 
Document Actions

まさかの2038年問題

の障害情報(2008/1/27(日)12:14 〜1/28(月)3:30)にあるログイン不具合ですが、なんと2038年問題でした。 マスター浜岸が迅速な対応をしたことで、被害は日曜の午後だけ(この期間に新規登録した人)にとどまりました。それでも数十人が被害を受けたようです。申し訳ありませんでした。

今後の教訓もあるかもしれないので、内情を明かします。

AirOneはPKIベースでセキュリティを確保するため、X.509の証明書を発行しています。ライブラリはopensslを利用しています。 有料製品としてライセンス管理をしています。証明書の有効期限をそのままライセンス管理に利用しています。つまり、証明書の期限が切れれば、製品利用ができなくなる、という仕組みです。 ライセンス形態として、1年契約と無期限の2種類あります。ソフトウェアベンダーの本音としては、製品を売るより、利用料という形で継続的にお金をもらえる仕組みの方がうれしいわけですが、売り手の思惑と買い手の思惑は当然食い違いますし、ソフトウェア製品を買ったらずっと使える、という形態が伝統的なので、無期限のライセンスを用意しています。この場合、ソフトウェア製品を買っていただくので、サポートは別として、ライセンスを買えば半永久的に使える建前です。

半永久的と言っても、1000年使える保証をしても現実的ではありません。で、当面、証明書の期限は30年で良いだろうと考えました。30年後に何があるか想像できませんが、万が一、AirOneが残っていれば、その時、証明書の期限を延ばせばよいだろうという考えです。

証明書の有効期限を30年にした根拠は2038年問題が頭にあったからです(2001年当時)。

そして月日は流れて2008年の1月、30年期限で発行した証明書が2038年を越えました。本質的にはopensslのバグです(既知のバグ)。ちなみに、X.509のフォーマットには2038年問題はありません。 なぜ1月1日ではなく、微妙に日付がずれたかと言うと、30年の計算がアバウト(365日*30)だったからです(そもそも有効期限が充分に長ければ良かったので)。

少し冷静に考えれば30年と決めた時に、この日の到来は予測できたはずです。そんなことに思いも至らないほど近視眼的でした。2001年当時、2008年まで会社が存続するとみんな思っていなかった、という噂もありますが、それは噂にとどめておくことにします。それはともかく、約7年の間、この日の到来を一度も思い至りませんでした。どれだけ想像力が欠けているのでしょう。情けない限りです。2038年問題は当然知識としては知っていましたが、自分の問題として認識できていませんでした。

2038年問題が起きる頃には、アリエル関係者の何人かは死んでいるだろうと思っていましたが、まだみんな生きているうちに2038年問題を見ることになりました。

The URL to Trackback this entry is:
http://dev.ariel-networks.com/Members/inoue/year2038-problem/tbping

Re:まさかの2038年問題

Posted by dev at 2008-01-29 12:53
問題が発生したのは、証明書の期限を1970年1月1日0時0分0秒(GMT) の2147483647秒後の
2038年1月19日3時14分7秒(GMT) (2038年1月19日12時14分7秒 (日本時間))を越えた時間に
した場合です。
プロジェクトAの通常ライセンス/マルチスケジューラーの証明書の有効期限を365日*30の10950日にしていたので、
2008年1月27日12時14分8秒以降、問題が発生しました。
Add comment

You can add a comment by filling out the form below. Plain text formatting.

(Required)
(Required)
(Required)
This helps us prevent automated spamming.
Captcha Image


Copyright(C) 2001 - 2006 Ariel Networks, Inc. All rights reserved.