自堕落な技術者の日記

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

Ubuntu

openfireがポート8080を使って競合

私の管理しているわけではないサーバーであるサービスが動かないトラブルがあってポート8080が競合しているとわかり、なんじゃらほいと調べていたら心当たりのないopenfireが起動されていることが原因だったそうです。openfireって何と思ってしらべていたらJavaで書かれたJabberというインスタントメッセージングおよび最近ではVoIPにも対応しているサービスなんだそうです、、、、

誰だ?、サービス上げたの、、、、、(*´Д`*)

Debian UbuntuのSun Javaパッケージ

元々DebianやUbuntu使いではないので知らなくて仕方なくずっとGNU Java???を使っていたんですが、ちゃんとsun-java5、sun-java6なるパッケージがあるんじゃないですか〜〜〜〜っ。すみません、、、無知で、、、、

<リンク>

http://packages.qa.debian.org/s/

http://packages.qa.debian.org/s/sun-java5.html

http://packages.qa.debian.org/s/sun-java6.html

Ubuntu、Sun Sparc Fireサポートへ - Debian向けJava SE 5パッケージ配布も

http://journal.mycom.co.jp/news/2006/05/31/342.html

openssl-blacklist-0.1の不具合?

Ubuntuのopenssl-blacklist-0.1パッケージをダウンロードし、

脆弱だとされるサンプルの鍵を使って実行してみたんですが

^% openssl-vulnkey examples/bad_rsa.key

^Not blacklisted: 58dce70acfd4dc1a9d28722fc62edb8d30110778 examples/bad_rsa.key

と出てしまいました。ブラックリストとのハッシュの照合の部分がおかしいのではないかと思い、作者のJamieさんにとりあえずメールしてみました。

<追記>

別館にてDebian/OpenSSL問題についてまとめています。よかったらご覧ください。(2009.06.11)

Debian OpenSSLで生成されたX.509証明書の脆弱性チェック法(1)3

日本Linux協会blogのOpenSSL問題その後(5/15)

記事で詳しく紹介されている通り、今回のDebian OpenSSH問題に対して、

openssh-blacklistという脆弱な鍵のリストと、

OpenSSHに含まれるコマンドssh-vulnkeyにより、SSHの鍵については

脆弱性に対する対応がひと段落したそうです。

しかしながら、Debian OpenSSL環境で生成したRSA/DSA鍵や

それによって生成されるSSLサーバー証明書、クライアント証明書など

X.509証明書と鍵については何も進展が無いような雰囲気ですね。

このSSH鍵のブラックリストを使って、X.509証明書が脆弱な鍵のものか

どうかをチェックする方法(案)についてご紹介したいと思います。

フローはこんな感じ、、、、

  1. X.509公開鍵証明書からSSH2公開鍵ファイルを生成する
  2. SSH鍵脆弱性チェックスクリプト dowkd.pl でこれをチェックする

openssh-blacklistやssh-vulnkeyを使った場合でも、

おそらく同様の手順でいけるものと思います。

X.509公開鍵証明書からSSH2公開鍵の生成

以下、RSA公開鍵の場合について紹介します。DSAについても

同様の方法で可能です。

SSH2公開鍵ファイルは以下のような内容になっています。

^ssh-rsa [Base64のSSH公開鍵情報] [所有者ID]

SSH2公開鍵情報部分にについてはRFC 4253で規定されており、RSA公開鍵だとこのような形式になっています。

^6.6. Public Key Algorithms

^ string "ssh-rsa"

^ mpint e # モジュラス

^ mpint n # 公開指数

mpintって何?と一瞬困ってしまい途方にくれてしまったのですが、Trilead SSH for Javaという

オープンソースのJavaのライブラリがあったのでこれを

使用することにしました。その他、Base64のためにBoucyCastleなどを

使います。Jythonで書くと以下のような感じになります。

^from java.lang import String

^from java.io import *

^from com.trilead.ssh2 import *

^from com.trilead.ssh2.signature import *

^from org.bouncycastle.util.encoders import Base64

^

^# java.security.cert.X509Certificate証明書の読み込み部分は省略

^cert = (X.509証明書ファイルの読み込み)

^

^# RSA公開鍵のモジュラスnと公開指数eの取得

^pubkey = cert.getPublicKey()

^n = pubkey.getModulus() # モジュラスBigInteger n

^e = pubkey.getPublicExponent() # 公開指数BigInteger e

^

^# SSH2公開鍵の生成

^pk = RSAPublicKey(e, n)

^sshRSAPublicKeyBytes = RSASHA1Verify.encodeSSHRSAPublicKey(pk)

^sshRSAPublicKeyBase64 = Base64.encode(sshRSAPublicKeyBytes)

^sshRSAPublicKeyStr = String(sshRSAPublicKeyBase64)

^

^# 標準出力へ

^print "ssh-rsa", sshRSAPublicKeyStr, "foo@foo"

近々、Javaのコードを紹介できればと思いますが今はJythonで

ごめんなさい。

以上でX.509公開鍵証明書から、同じ公開鍵のSSH2公開鍵ファイルを

生成できました。

dowkd.plによるチェック

先の手順で生成したSSH2公開鍵のファイル名を例えば "foo_rsa.ssh.pub" と

しておきます。

これを dowkd.pl によりチェックするには

^ dowkd.pl file foo.rsa.ssh.pub

のように実行します。脆弱ならば、

^ 鍵の名前: weak key

のように表示されます。dowkd.plに登録された26万の脆弱な鍵のハッシュ値と

照合して、この鍵が脆弱かどうかを判断します。

機会があれば、Jythonでない依存性のすくないJavaのコードや、

openssh-blacklist、ssh-vulnkeyへも対応できればと思います。

DebianやUbuntuな方々、鍵は大丈夫ですか?2

Debian系のLinux(Debian,Ubuntu,KNOPPIX,Lindowsなど)で、

OpenSSLベースのRSA鍵・DSA鍵を使っている場合に

乱数の生成部分に問題があり、秘密鍵が推測される可能性がある

という脆弱性報告が出ており、OpenSSH、OpenVPN、X.509証明書など

に影響があります。

  • 問題のあるバージョン
    • Debian GNU/Linux 4.0
    • Ubuntu 7.04, 7.10, 8.04 (Debian 4.0系)
    • KNOPPIX 不明 (Debian 4.0系)
    • Debian系で動作する OpenSSL 0.9.8c-1〜 (修正済:0.9.8c-4etch3〜, 0.9.8g-9〜)

これはDebian固有の問題なんですが、Debianで作られたRSA鍵とDSA鍵が

他にエクスポートして使われたら、同じ問題が発生します。

脆弱な鍵のリストも出ており、

今使っている鍵が脆弱なものかどうかを調べるツール dowkd.pl も

配布されています。

どれどれ、おじさんに見せてごらん、、、、

ということで、Ubuntuで試そうと思ったら

VMイメージを会社に置いてきてしまいました。

んん〜〜っ、仕方なくチェックツールだけでも見るために、

cygwinで試そうとしたら、いろんなパッケージが不足している

ことが発覚、、、、、

  • DB_File.pm
  • libdb2, libdb2-dev
  • perl-Module-build

を足してみるも、毎回DBが生成されてしまい、重いったら

ありゃしない。

ソースをちゃんと見てみることにします。dowkd.plの

わかったことをちょっとまとめたのが以下、

  • SSHとOpenVPNの鍵しか調べないない
  • dowkd.pl には脆弱な鍵のハッシュリストも入っている
  • 対象がユーザの場合~/.ssh/の鍵ハッシュ、RSA、DSA公開鍵をチェックする

X.509証明書のチェックツールもあるとイイかなと、、、

また、何かわかったら書くことにします。

以下リンク

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

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