カテゴリー
Windows

OpenSSL で作る SANs 対応かつ SHA256 使用の自前認証局。

The same article in English
投稿アップデート情報  追記(10/28)

 今回の騒ぎ“Qualys SSL Labs – Projects / SSL Server Test” をやったとき,テスト結果にやらオレンジやらが乱舞していた (^_^;)。
 
||赤いの||

  1. Trusted : No NOT TRUSTED <<---- これは,自前認証局を使っているせいなので,自信をもって無視する(笑)。
  2. IE 6 / XP No FS 1 No SNI 2 : Protocol or cipher suite mismatch : Fail3 <<---- うちの SSL サーバのユーザは私だけで,私は IE 6 / XP なんぞ使わないので,これも無視。
  3. Fail3 “Only first connection attempt simulated. Browsers tend to retry with a lower protocol version.” なんだそうだ。うちの SSL サーバはより低レベルのプロトコルは受けつけないが,これも別に問題なし。
  4.  というわけで,赤いのについては何もやらなくてよし。

||オレンジの||

  1. Prefix handling : Not valid for “www.o6asan.com” :CONFUSING
  2. Signature algorithm : SHA1withRSA : WEAK
  3. Chain issues : Contains anchor <<---- Ivan Ristić“Chain issues Contains anchor” で書いていたことを根拠に,無視。
  4. Not in trust store <<---- これも自前認証局のせいなので,無視。
  5. Downgrade attack prevention : No, TLS_FALLBACK_SCSV not supported
  6. Forward Secrecy : With some browsers

 オレンジのについては, 1, 2, 5, 6 について対処する必要がありそうだ。まずは, 5 と 6 から。 1 と 2 は証明書そのものを作り変えないといけないので,後回し。

  1. Apache 2.4.10 (httpd-2.4.10-win32-VC11.zip) を 10/20 バージョンにアップデートした。この版は openssl-1.0.1j を使ってビルドされてて,1.0.1j は TLS_FALLBACK_SCSV をサポートしたから。
  2. httpd-ssl.conf において, SSLHonorCipherOrder on をアンコメントし, SSLCipherSuite Directive の値を変更。
    HIGH:MEDIUM:!aNULL:!MD5

    EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384
    EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256
    EECDH+aRSA+RC4 EECDH EDH+aRSA RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP
    !PSK !SRP !DSS

       参考 : Configuring Apache, Nginx, and OpenSSL for Forward Secrecy
    ↓ RC4 関連で, 12/23 に下記に変更した。
    EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384
    EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH
    EDH+aRSA !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS"

       Ref : RC4 in TLS is Broken: Now What?

    SSL サーバがモバイルや旧世代の OS/browser をサポートしなくてはいけない場合は,それらに合わせた設定もする必要が生じる。うちのは,関係ないけど。
  3. この作業後,テストしたら, “Downgrade attack prevention : Yes, TLS_FALLBACK_SCSV supported”“Forward Secrecy : Yes (with most browsers) ROBUST” に変わった。

 次は, 1 と 2。
 1 は自前認証局の Common Name が o6asan.com だけだからだ。で,新しいのは, o6asan.com も www.o6asan.com もサポートさせないといけない。しかし,我が家の SSL サーバ用の IP は,一つしか割り当てる気がないよという問題がある。これに対処するために, SNI(Server Name Indication) を使う。 8 月ごろに,くりくりさんが取り組まれていた。まあ,まだすべての OS/browser がサポート完了しているわけではないが……それでも,かなりましになってきたのは確か。ワイルドカード証明書か SAN かということになるが, SANs で行くことにした。だって,うちの SSL サーバに任意のサブドメインを受け入れさせる必要はないでしょ。これについては Apache からも制限できるとはいえ,必要のない扉を大きく開けるのはポリシーに反する。
 2 は前の証明書を作ったときに OpenSSL の default を使ったからである。デフォルトだと,今もかわらず SHA1 を使うようになっている。今回は, default_md = sha256 にして,こさえるワ。
 28 日,改めて Server Name Indication を読み込んでいたのだが, SNI と ワイルドカード証明書か SAN は次元の違う話のようだ。難しいなぁ。

 openssl.cnf (← この標準の名称のままで行く) を Apche24conf から c:openssl-1.0.1x-winxxssl (← OpenSSL をフルでインストールすると,ここがデフォルト) にコピーして,以下のようにカスタマイズする。

    一行アンコメントし,いくつか値を変更する。

  1. dir = ./demoCA —->> dir = X:/demoCA <<----絶対パス
  2. default_crl_days = 30 —->> default_crl_days = 365
  3. default_md = default —->> default_md = sha256
  4. default_bits = 1024 —->> default_bits = 2048
  5. # req_extensions = v3_req —->> req_extensions = v3_req
    何行か追加する。
  1. [ v3_req ] のエリアに subjectAltName = @alt_names を追加。
  2. [ v3_ca ] エリアの直前に以下を追加。
    [ alt_names ]
    DNS.1 = example.com
    DNS.2 = www.example.com

     
    必要なドメインを DNS.1, DNS.2, DNS.3, … のように追加できる。
  3. クライアント証明書も必要な場合は, openssl.cnf の最後に以下を追加する
    [ ssl_client ]
    basicConstraints = CA:FALSE
    nsCertType = client
    keyUsage = digitalSignature, keyEncipherment
    extendedKeyUsage = clientAuth
    nsComment = "OpenSSL Certificate for SSL Client"

 さて,新自前認証局の作成をしよう。(参考 : 本家のお世話-#68)

    ||自前 CA 作成||

  1. X:/ に myCA フォルダを作る。
  2. private と newcerts という 2 つのフォルダと index.txt を myCA に作る。
  3. cmd.exe を 管理者として実行。
    pushd X:myCA
    echo 01 > serial
    openssl req -new -keyout privatecakey.pem -out careq.pem
    openssl ca -selfsign -in careq.pem -extensions v3_ca -out cacert.pem
    copy cacert.pem (Drive_SV):Apache24confssl.crt
    copy cacert.pem my_ca.crt

      注)(Drive_SV) というのは,自宅サーバ上のサーバウェア用パーティションである。

    ||Server 証明書作成||

  1. pushd X:myCA
    openssl genrsa -out server.key 2048
    openssl req -new -out server.csr -key server.key
  2. 次のコマンドで CSR 内の SANs を確認する。(中にちゃんと ‘Subject Alternative Name’ があるかな?)
    openssl req -text -noout -in server.csr
  3. openssl ca -in server.csr -out server.crt -extensions v3_req
    copy server.key cp_server.key
    openssl rsa <cp_server.key> server.key
    copy server.key (Drive_SV):Apache24conf
    copy server.crt (Drive_SV):Apache24conf
    ||Client 証明書作成||

  1. pushd X:myCA
    openssl req -new -keyout client.key -out client.csr
    openssl ca -policy policy_anything -extensions ssl_client -in client.csr -out client.crt
    openssl pkcs12 -export -in client.crt -inkey client.key -out clientcert.p12

   SANs 作成参考リンク : FAQ/subjectAltName (SAN), Multiple Names on One Certificate.

 やっと,「 SANs 対応かつ SHA256 使用の自前認証局」が出来た。満足じゃ!!

カテゴリー
Windows

覚え書-#20。

The same article in English
投稿アップデート情報  追記(10/18)

 もう, “POODLE” 問題(つまり, CVE-2014-3566)には,対処した? OpenSSL のオフィシャルでも, OpenSSL Security Advisory [15 Oct 2014] が出てる。

 サーバ管理者としては下記のことをやった。
 今のところ, 1.0.1j でビルドされた Apache Lounge 版の Zip が手に入らないので, “SSL v3 goes to the dogs – POODLE kills off protocol” にあった回避策をやった。

 httpd-ssl.conf に SSLProtocol All -SSLv3 を書き加えて, httpd.exe をリスタートした。やる前は, SSL Server Test で “This server is vulnerable to the POODLE attack. If possible, disable SSL 3 to mitigate. Grade capped to C” だったが,回避策後は, “This server is not vulnerable to the POODLE attack because it doesn’t support SSL 3” になった。実のところ,うちでは, Apache 2.4 と OpenSSL 1.0.1 を使っているので,うちの mod_ssl の場合, ‘SSLProtocol all’ は ‘SSLProtocol +SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2’ ということになる。これは SSLProtocol Directive に記述がある。

 ユーザとしては,ブラウザで SSLv3 を停めた。
 やり方は,これも How to protect your browser にあった。英文だが,図もあってわかりやすい。日本語のサイトでは, IE, FireFox, Chrome の 3 つともの説明があるところを見つけられなかった。

追記(10/18):
 PHP 5.6.1 —>> PHP 5.6.2 ChangeLog.
 phpMyAdmin 4.2.9.1 —>> phpMyAdmin 4.2.10 ChangeLog.

カテゴリー
Windows

覚え書-#18。

The same article in English
投稿アップデート情報  追記(8/28)
  1. PHP 5.6.0 GA の正式リリースの時期が, RC4 の記事に書いてあった。とーっても楽しみ。 wow!
  2. Apache 2.4.10 (httpd-2.4.10-win32-VC11.zip) を openssl-1.0.1i のものに,アップデートした。 OpenSSL Security Advisory [6 Aug 2014] のせいなんだが, Steffen が Jan-E に “Coming days the builds here at Apache Lounge are going to be upgraded. It has not that priority and severity ~” と回答していたので,焦らずに待っていたのだ。
  3. Windows Update 2014 年 8 月はトラブル続出だったみたいだね。うちのパソコンは幸いにも1台も引っかからなかったんだが,現時点で特に問題がなくても KB2982791, KB2970228, KB2975719 and KB2975331 をアンインストールしたほうがいいということらしいので,探し出してアンインストールした。以下の通り。
    • NJ2100 上の Windows8.1(x86)
      KB2982791
      KB2975719
    • CF-J10 上の Windows7 SP1(x64)
      KB2982791
      KB2970228
    • xw4200 上の Windows7 SP1(x86)
      KB2982791
      KB2970228
    • KeyPaso 上の Windows Vista SP2(x86)
      KB2982791

    昔は, Windows update というとほぼ毎回不具合があって,少し落ち着くまで更新を控えたりしたものだが,今回のドタバタは久しぶりだった気がする。皆さんはどう思われますか? (^_~)

追記(8/28):
 MS14-045 関連の不具合更新プログラム, KB2993651 が出てますな。詳しくは,[MS14-045] 更新プログラム 2982791 の問題を解決する更新プログラム 2993651 を公開

カテゴリー
Windows

本家のお世話-#107。(Apache 2.4.10へアップデート)

The same article in English

 Apache HTTP Server 2.4.10 が出たので,アップデート。セキュリティパッチが,5個含まれているようだ。 mod_authnz_fcgi というモジュールが増えたので, httpd.conf も以下の1行が増えている。
    #LoadModule authnz_fcgi_module modules/mod_authnz_fcgi.so
 Windows 版では, pcre が 8.34 から 8.35 に, APR が 1.5.0 から 1.5.1 にアップデートされている。

 VC11 用の httpd-2.4.10-win32-VC11.zip (17 Jul) を我が家用 ( Windows7 x86 ) にダウンロード。 Apache 2.4.x conf 情報が必要な方は,「Windows7上にWamp系WebServerを建てる-#1。」を見てください。

カテゴリー
Windows

本家のお世話-#104。(OpenSSL Security Advisory [6月5日] に対処のため Apache のアップデート)

The same article in English
投稿アップデート情報  追記(6/9)

 OpenSSL Security Advisory [6月5日] になんかいろいろと挙がっていて,どうするかなと思っていたら,さっそく Steffen が対処してくれたので, Apache 2.4.9 の 2014 5 Jun version を落として,アップデート。

 新バージョンは, ‘IPv6 Crypto apr-1.5.0 apr-util-1.5.3 apr-iconv-1.2.1 openssl-1.0.1h zlib-1.2.8 pcre-8.34 libxml2-2.9.1 lua-5.1.5 expat-2.1.0’ と openssl-1.0.1h でのビルドとなっている。

 アップデートのやり方自体はいつもと同じ。そんでもって,Changelog

 いつも, Steffen への感謝の念に堪えない m(_”_)m。

追記(6/9):
 こんなんあったんで,貼っときます。
ハートブリード脆弱性から 2 か月で公開された OpenSSL の重大な脆弱性修正パッチ

カテゴリー
Windows

本家のお世話-#99。(CVE-2014-0160 に対処のため Apache のアップデート)

The same article in English
投稿アップデート情報  追記(4/9)

CVE-2014-0160って?」で,どうしたらいいのと書いたばかりなのだが,素早い対処で Steffen が早速 Apache 2.4.9 available :: Updated を出してくれた。

 IPv6 Crypto apr-1.5.0 apr-util-1.5.3 apr-iconv-1.2.1 openssl-1.0.1g zlib-1.2.8 pcre-8.34 libxml2-2.9.1 lua-5.1.5 expat-2.1.0 と, openssl-1.0.1g でのビルドとなっている。

 アップデートのやり方自体はいつもと同じ。そんでもって,Changelog

 アップデート後, SSL 関係のキーとかも作り直したほうがいいという意見もあるようだから,それもあとでやっておくかな。

追記(4/9):
 SSL 関係のキーとかは夕べのうちに作り直した。

カテゴリー
Vulnerability

CVE-2014-0160って?

投稿アップデート情報  追記3(4/16)

 CVE-2014-0160 ってことで,対処としては, secadv_20140407.txt ということらしいんだが, ApacheLounge 版の場合,もとが IPv6 Crypto apr-1.5.0 apr-util-1.5.3 apr-iconv-1.2.1 openssl-1.0.1f zlib-1.2.8 pcre-8.34 libxml2-2.9.1 lua-5.1.5 expat-2.1.0 になってるんでどうすりゃいいんだと思って, News & Hangout にお願いを書こうと思っていったら,もうあった。
     Critical Security Vulnerabilty: Upgrade to OpenSSL 1.0.1g

 すぐに,出るかな? openssl-1.0.1g のやつ。 The Heartbleed Bug を見ると,かなりヤバそうなんだが。パッチが出るまでの対処方法がわからないよぉ。

 チェットサイトが作られてた。 Heartbleed test
 同じくテストサイト。 heartbleed test

 当面,ポートを閉じておくことにした。うちの場合は,ユーザは私だけだから,私が不自由に耐えれば,無問題(爆)。@19:00

追記:
 「本家のお世話-#99。(CVE-2014-0160 に対処のため Apache のアップデート)」をやりやした(爆)。当然,ポートも元に戻したヨ。
 うちは,これでいいとして,「母さん、私達のあの証明書、どうするんでせうね?ええ、ずっと前からから世界中にばらまかれている、 SSL のあの証明書ですよ。」ナンチャッテ。とっても,心配。

 証明書自体は大丈夫なのかな?いまんとこ,情報は錯綜しているようだが……

追記2:
  The Heartbleed Bug を読み直してみた。やはり,証明書は作り直しておこう。

追記3(4/16):
 SSL Server Test というのもある。 CVE-2014-0160 だけではなく,証明書の全体的レベルを調べてくれる。このサイトは Heartbleed Bug への対応はできている。ただし,証明書の 0day 後の再発行はされていないようだ。

カテゴリー
Windows

本家のお世話-#97。(Apache 2.4.9へアップデート)

The same article in English

 Apache HTTP Server 2.4.9 が出たので,アップデート。 OpenSSL 関連で問題があったとかで, 2.4.8 はリリースされなかったので, 2.4.9 は 2.4.8 の変更も内包していることになる。

 VC11 用の httpd-2.4.9-win32-VC11.zip (16 Mar) を我が家用 ( Windows7 x86 ) にダウンロード。 Apache 2.4.x conf 情報が必要な方は,「Windows7上にWamp系WebServerを建てる-#1。」を見てください。

カテゴリー
WordPress

「シンボリックリンク攻撃のデモ」だってサ。

 「シンボリックリンク攻撃のデモ」をやるかもしれないってさ。徳丸さんとこの「マイナビのセミナーにて講演します」に書いてあった話。まぁ,ご自分の講演の告知だから,宣伝ちゃ宣伝だけど,近くだったら聞いてみたいよなぁ。

 申し込みのページには,「※競合企業や同業他社の方は参加をご遠慮いただく場合がございますのであらかじめご了承ください。」という注意書きがあるから,競合企業や同業他社の方で行きたい方は気をつけてねー。何の注意をしとるんじゃ(笑)。

 「シンボリックリンク攻撃のデモ」って,元ネタは絶対に,これ,でしょ。しかし,こういうことって対岸の火事じゃないからね。参考になりそうなことは聞いてみたいよなぁ。

 まあ,距離的に,聞きに行くってのは無理だよなー。

カテゴリー
Vulnerability

CVE-2012-1823

The same article in English

 「さくらのVPSに来る悪い人を観察する その2」と「SSH ハニーポットでの悪い人の観察」を見て大笑いした。徳丸さんところで見つけて,彼が「抱腹絶倒のスライド資料」と書いてあったので,確認のために見に行ったのだが,なるほどだった。

 CVE-2012-1823 関連のスライドショーである。実際のとこ,スライドナンバー 36 で示されているアタックは,どこにでもやってくる。脆弱性があるかないかなんてお構いなしだ。そんなわけで,うちも例外ではない。現サーバ構成には, SSH は含まれていないし, PHP も当該脆弱性とは関係なく CGI 版でもないから,大きな被害は免れているだけだ。しかし,攻撃数が多いときに,管理者(私)が頭に来るという被害は常にある(爆)。

 Ozuma5119 さんなんかは,真の white hacker といえるね。興味があったら,リンク先を訪問してみてください。