まさかの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年問題を見ることになりました。
- Category(s)
- カテゴリなし
- The URL to Trackback this entry is:
- http://dev.ariel-networks.com/Members/inoue/year2038-problem/tbping
Re:まさかの2038年問題
2038年1月19日3時14分7秒(GMT) (2038年1月19日12時14分7秒 (日本時間))を越えた時間に
した場合です。
プロジェクトAの通常ライセンス/マルチスケジューラーの証明書の有効期限を365日*30の10950日にしていたので、
2008年1月27日12時14分8秒以降、問題が発生しました。