自堕落な技術者の日記

基本は喰ってるか飲んでるかですが、よく趣味でカラオケ・PKI・署名・認証・プログラミング・情報セキュリティをやっています。旅好き。テレビ好きで芸能通

ISO/IEC規格

「RFC 7525 TLSとDTLSの安全な利用に関する推奨事項」の公開

2015年5月7日に「RFC 7525 TLSとDTLSの安全な利用に関する推奨事項(Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS))」が公開されました。

昨年あたり、SSL/TLSで使われる暗号アルゴリズム、プロトコルや実装にいろいろな問題が見つかり、製品をそのままデフォルトで使っているとロクなことが無いわけですが、どんなことに注意しながら実装や設定をしなければならないかをベストカレントプラクティス(現時点での最良の慣行)としてまとめたRFCだそうです。

最近、SSL/TLSの設定ネタでお話しする機会を頂いたりしておりますが [1] [2] 、RFC 7525をざっと見たところ、概ね違ったことは言ってないようにおもいます。今日は、RFC 7525について、ちょっと見てみたところを書いていきたいと思います。

RFC 7525の目的

RFC 7525の目的は、仕様から以下の2つなのかなと思います。

  • 最低限満たすべき推奨事項を示す。
  • TLS 1.3が普及するまでのつなぎで対応しておくべき事を示す。

RFC 7525のポイント

各節から拾ってきたRFC 7525のポイントをまとめると以下のようになります。

  • 3.1.1節 TLSプロトコル
    • POODLE等の対策として、SSLv2、SSLv3の利用禁止(MUST NOT)
    • CBCモード対策としてTLS 1.0の利用抑制(SHOULD NOT)
    • TLS 1.2の実装必須(MUST)
    • TLS 1.2、TLS 1.1、TLS 1.0の順で優先(MUST)
  • 3.1.2節 DTLSプロトコル
    • DTLS 1.0の利用抑制(SHOULD NOT)
    • DTLS 1.2の実装必須(MUST)
    • DTLS 1.2、DTLS 1.0の順で優先(MUST)
  • プロトコルその他
    • 3.1.3節 TLS 1.x からSSLv2、SSLv3のフォールバック禁止(MUST NOT)
    • 3.2節 HSTS(HTTP Strict Transport Security)ヘッダのサポート必須(MUST)
    • 3.3節 CRIME攻撃等の回避のためTLS圧縮を利用抑止(SHOULD)
    • 3.4節 セッション再開でセッションチケットの通信における認証と暗号化は必須(MUST)
    • 3.5節 TLS再ネゴシエーションが必要な場合、renegotiation_info拡張のサポート必須(MUST)
    • 3.6節 Server Name Indication(SNI)のサポート必須(MUST)
    • 4.5節 Truncated HMAC TLS拡張の利用禁止(MUST NOT)
    • 6.5節 証明書失効検証では、OCSP、status_request・status_request_v2 TLS拡張、OCSP stapling拡張を利用すべき(SHOULD)
  • 4節 暗号スイートの推奨
    • NULL暗号スイートでの接続禁止(MUST NOT)
    • RC4暗号スイートでの接続禁止(MUST NOT)
    • EXPORT等、112ビット未満の暗号スイートでの接続禁止(MUST NOT)
    • 128ビット未満の暗号スイートでの接続抑止(SHOULD NOT)
    • TLS_RSA_WITH_*の接続抑制(SHOULD NOT)
    • DHE、ECDHEなどPFSをサポートする暗号スイートの優先接続のサポート(MUST)
    • TLS_{DHE,ECDHE}_RSA_WITH_AES_{128,256}_GCM_SHA{256,384}を推奨(RECOMMENDED)
  • 4.3節 公開鍵長
    • DHE鍵交換の場合、DH鍵長は2048bit以上を推奨(RECOMMENDED)
    • ECDH鍵の場合、192bit未満の曲線は利用抑止(SHOULD NOT)
  • 4.3節 証明書
    • RSA場合、鍵長2048bit以上の証明書を推奨(RECOMMENDED)
    • 証明書の署名はSHA-256の利用を推奨(RECOMMENDED)

RFC 7525を見て気になった点

気になった点や感想的なものをまとめてみます。

  • 最小限の推奨事項といいながら、MUST、SHOULDに従ったとするとかなり厳格な要件で、これに対応できるのは最新のウェブブラウザ、ウェブサーバーのみであり、ちょっと前の組み込み機器、SSLアクセラレーターなどは、これらの要件を満たすことは不可能かなと思います。
  • やはり、最新のソフトウェアのみで対応すればよい環境と、後方互換性を必要とする環境とで区別して推奨事項を述べるのがよいのではと思います。
  • RSA鍵交換を抑制(SHOULD)する一方で、SEED、IDEA、Camelliaなど言及されないアルゴリズムも多く、これらの扱う際に混乱します。
  • PFSやRC4を強調しすぎで、CBCモードは軽視されている。
  • 鍵長の話はもう少しシンプルに纏められたのではと思う。文章が整理されておらずわかりにい。
  • アプリケーションプロトコル(HTTP, SMTP, IMAP, IRC, XMPP等)の言及はあまり役立たない。
  • 証明書要件はRECOMMENDEDと、かなり緩め。

RFC 7525の良かった点

一方、このRFC 7525の良かった点はこんなとこかなと、、、

  • 何を根拠(Rationale)としてそのような設定を要求するのかが明らかになっており良い。
  • 実装(implementation)と展開(deployment)を分けて書いてあるのはよい。
  • Opportunistic Securityについて、単なるフォールバックよりも危険が懸念されることを明確にし、RFC 7525の対象外としたのは良い。
  • 証明書失効の課題が整理されたのは良い。
  • 特に、プロプライエタリな失効検証がスケールしない点を指摘したのは良い。

おわりに

RFC 7525はベストカレントプラクティスと言いながら、少しトガった要求事項になっていて、最新の環境だけでしか動かない感じです。InternetWeekでお話をした時から、状況もいろいろ変わっていて、現時点での暗号スイート設定のおすすめは、近々書きたいと思っています。あと、メジャーなサーバーでの設定ファイルを作るウェブツールなども作ってしまいたいと思ってるんですが、なかなか先に進まない。

来週の情報セキュリティExpoでは、IPAさんのブースで私も委員として作成に携わらせて頂いた「SSL/TLS暗号設定ガイドライン」の説明もあったりするそうです。このガイドは主にサーバー管理者向けに幾つかのケースに分けてセキュリティ要件を定めて設定例を示したもので、RFC 7525 よりは、より具体的にどうすればよいかがわかるようになっています。最後の委員会が終わったあとも、リクエストがあったので追加原稿はいろいろ出させて頂いたんですが、どうも最終的に、特に暗号スイートの設定について、思った通りのものにはならなかったですね。いろんな意味で後悔しています。

今日はこの辺で

ISO/IEC 18014-4 Time-stamping services - Part 4: Traceability of time sourcesの制定について

苦節7年(といっても本当は自分の貢献なんか大したこと無いんですがorz)、自分も携わらせて頂いたタイムスタンプに関する日本発のISO/IEC国際標準が、ようやく制定されました。

ISO/IEC 18014-4 Information technology - Security techniques - Time-stamping services - Part 4: Traceability of time sources

マジ、うれしいっす。ちょっと泣きそう。ISO/IEC国際標準を制定するためのプロセスはここに解説があるんですが、本当に長い道のりです。

デジタルタイムスタンプとは

国際標準時って昔はイギリスのグリニッジ天文台の時間を使ってたんだけど、今は幾つかの国の原子時計の時間を比べながら、地球の回転(正しくは公転周期)なんかも考慮しながら協定世界時(UTC)という標準時間を作っています。

パソコンの時間って、NTPとかで自動的に合わせている人も多いけど、無理やり設定することもできますよね。例えば、同じような発明を2人がほぼ同時した時に、パソコンで時間戻して、ワードで発明資料を保存して、「オレの方が先に発明してた〜〜!!ファイルの更新日時見ろ〜〜っ!!」とかね。パソコンの時間って全くあてにならないから、データの存在時刻もあてにならないわけです。

医療、裁判、株取引、銀行業務、特許など、いろんな業務の電子化が進んでいるんですけど、デジタルデータはコピーや変更が簡単という性質があって、そのデータが本物かどうか、本当にその時間にあったかどうかが大切になるんですが、時間を証明するのって難しいんですよね。

これを解決するのがデジタルタイムスタンプという技術です。あるデータがある時刻に存在していて、それ以降変更されていない事を示すために、データを区別するための拇印のような情報であるデータのハッシュ値をタイムスタンプサービスに送ると、そのデータの存在証明、つまりデジタルタイムスタンプを作って送ってくれるというものです。日本でもこのようなデータの存在時刻を証明する時刻認証事業者、日本標準時からの誤差を保証しながら時刻を配信する時刻配信事業者が生まれサービスが開始されました

各国国際標準時とのトレーサビリティーの必要性

こうした中、デジタルタイムスタンプのフォーマットについては、ISO国際標準があるので問題ないのですが、発行されるタイムスタンプが、各国の国際標準時と比較してどれくらいの精度で発行されているのかを保証する仕組みがありませんでした。タイムスタンプ局は、自分の持つ時計を元に、タイムスタンプを発行することができますが、これが無いと、各国の国際標準時と連携しているのか、どれくらいの誤差範囲で提供されるか保証や監査ができないものは、お互いの国で信用ができないからです。

そのようなわけで、各国の標準時を起源として、時刻の精度のトレーサビリティが保証および監査できないと、その国のタイムスタンプは信頼できないという話になるため、まず日本でJIS規格を制定し、うまくいけば、これをISO国際標準にしましょうという話になりました。

私の個人的な時刻トレーサビリティーの興味と今回の策定の関わり

私はその頃、タイムスタンプ付きの署名フォーマットである長期署名に興味があり、PKI方式タイムスタンプを採用する事業者が、タイムスタンプトークンに含んでいる、時刻監査証もしくは時刻監査記録と呼んでいる、時刻のトレーサビリティーを示すX.509v2属性証明書に着目していました。当時懸念に思っていたのは以下の事柄でした。

  • この時刻監査証(TAC: Time Audit Certificate)という属性証明書とその証明内容は利用者が検証する必要があるのか、無いのかが明らかになっていなかった。そもそもデータ・フォーマットや検証に必要な情報は公開されていなかった。
  • この時刻監査証はASN.1として誤ったエンコーディングをされていた。
  • 時刻監査証に誤りがあった時に、利用者はそのタイムスタンプトークンを無効とすべきか否かが規定されていない。
認定基準を定め監督管理する団体、タイムスタンプ関係の事業者の専門家方、電子署名の専門家、国際標準の専門家の方と議論させて頂き、 2009年、日本データ通信協会で「タイムスタンプ局に対するUTCトレーサビリティ保証のTA技術要件に関する検討 中間報告書」にまとめて頂きました。私は4.3節「TACの課題と結論」を執筆させて頂いております。

当時の私の疑問に対する識者コンセンサスは、

  • デジタルタイムスタンプの利用者は時刻監査証を検証する必要はない。
  • 時刻監査証のASN.1エンコーディングはASN.1に準ずるようサービスを修正する。
  • 時刻監査証に誤りがあった際に、利用者はそのタイムスタンプトークンを無効とする必要はない。
ということで納得しました。

ただ結局、タイムスタンプ事業者のTP/TPSタイムスタンプポリシ/運用規定では、時刻監査証のASN.1シンタックスが公開されず、時刻監査証は検証不要であることが明記する所、しない所があったりといった状況です。(ちょっと残念)

JIS X 5094:2011という時刻トレーサビリティに関するJIS規格の制定

その後、その中間報告書をベースに、日本国内で日本標準時からのタイムスタンプのタイムスタンプの トレーサビリティーを保証するためのJIS規格が2011年に制定されました。(これは、これで結構大変だった。)

JIS X 5094:2011 UTCトレーサビリティ保証のためのタイムアセスメント機関(TAA)の技術要件

中間報告書をベースにこれがJIS規格になり、日本データ通信協会で認定を受けている、時刻配信事業者や時刻認証事業者が当たり前のように行っていたことが、JIS規格として後ろ盾を持つことができるようになりました。

日本標準時とのトレーサビリティーの標準化で面倒だったのが、タイムスタンプサービスの標準がISOにはあるのにJISには無かったことです。このことで、タイムスタンプサービスを参照せずに、JIS化する必要があり、用語など手間がかかりました。

そして、今回のJISからISO/IEC規格へ

そして、世界各国のタイムスタンプが互いに信頼できるようにするために、言い換えると、世界各国の標準時とのトレーサビリティを持つ時刻配信が信頼できるようにするために、標準時からのトレーサビリティを持つ時刻配信のJIS標準をISOに持って行くことになり、ISOのドラフト版を作成しました。

関係者いろいろな伝をあたって頂き、暗号セキュリティ関係のISO/IEC SC27でお世話になることになり、SC27会議で正式に受理されました。

丁度、ISO/IEC 18014シリーズのタイムスタンプサービスのISO/IEC標準を見直す時期に来ていたそうで、これ幸いと、持っていったら追加でPart 4として標準化良いのでは?という事でワーキンググループが立ち上がりました。

その後、表現や細かい文言の修正など関係者の協力のおかげで、数多く対応してきましたが、私に関係するところとしては、当時nCipher製品でサポートされていた、PKI方式で電子署名された時刻監査証について参考情報として掲載したのですが、米国ではXML形式の電子署名されないデータを監査証として使っていました。先行するサービスの監査情報に適用できないのはまずいということで、これも比較できるよう掲載し、各項目の対応関係の補足説明を追加させていただきました。

後は、本当に長い時間のかかる、表現や文言の調整で、単に英語表現の問題だけではなくて、ISO/IECにふさわしい英語表現というのがあるようで、本当にWGの英国の方には細かく見ていただけました。

もうすぐ、承認されるかも、されるかもと、言っては、国際会議で流れ、また手直しをし、2014年10月のSC27メキシコ総会でPublishしてよいとの承認を頂いたそうです。それで、みな1月頃にはでるんじゃないの?と心待ちにしていたんですが、結局は4月になっちゃいました。

今後のISO/IEC規格からJISへ

JIS規格からISO/IEC規格にする際に、何点か国際間の整合を取れるような改正をしています。ISO/IEC規格は、翻訳さえすればそのままJIS規格にすることができるルールになっているそうです。ただ、関係省庁にお伺いをたてたところ、このUターンのJIS化は、今年は実施せずに、来年がJIS X 5094:2011が制定後、ちょうど5年になり見直しの年になるので、来年にやりましょうという話になったそうです。

盛大に祝杯をあげねばっ!!!

参考リンク

メキシコの会議報告が見つからないなぁ。しかし、会議報告の置き場所がバラバラだったり、一覧になってないのは何でなんですかねぇ。

標準ドラフト、NBコメント等一覧

年月日番号文書名
2011.05.31N 10047Call for contributions to the proposed new project
2011.06.16N 9659Text for ISO/IEC 1st WD
2011.09.05N 10225Summary of NB comments on document SC 27 N9659
2011.09.20N 10388UK NB comments on document SC 27 N9659
2011.10.03N 10328Draft disposition of NB comments on document SC 27 N9659
2011.12.12N 10425Text for ISO/IEC 2nd WD
2011.12.12N 10426Disposition of NB comments received on SC 27 N9659 - 1st WD
2012.04.13N 10851Summary of NB comments on document SC 27 N10425 2nd WD
2012.04.27N 11060Draft disposition of NB comments on document SC 27 N10425 - 2nd WD
2012.06.06N 11173ISO/IEC 1st CD
2012.06.06N 11174Disposition of NB comments received on document SC 27 N10425
2012.09.12N 11485Summary of voting on document SC 27 N11173
2012.10.05N 11613Draft disposition of comments received on document SC 27 N11173 1st CD
2012.12.14N 11808ISO/IEC 2nd CD
2012.12.14N 11809Dispositions of NB comments received on document SC 27 N11173 1st CD
2013.03.26N 12185Summary of voting on document SC 27 N11808 2nd CD
2013.04.08N 12341Draft disposition of comments received on SC 27 N11808 2nd CD
2013.06.10N 12567Text for ISO/IEC DIS
2013.06.10N 12568Disposition of comments received in SC 27 N12185 on document SC 27 N11808 2nd CD
2013.07.02ISO/IEC DIS

DIS以降も改変があった記憶があるんですが、それはN番号つかないのかな?

最新記事
Categories
Archives
Twitter
記事Google検索

本ブログ内をGoogle検索
Yahoo!アクセス解析
Travel Advisor
記事検索
QRコード
QRコード
  • ライブドアブログ