フレイドフォートonBlog

普通とか自由って何ぞや

タグ:セキュリティ

OpenSSH 5.7 がリリースされた。

先日、新物確認の記事で少し触れたが、
この5.7には、楕円曲線暗号方式が含まれている。
SSHでの楕円曲線暗号に関する事は、RFC5656に書かれている。

リリース情報を読んでみると、どうやら
実装されているのは、このRFC5656の一部のようだ。

RFCには、鍵交換について、
ECDHとECMQVについて書かれているが、
ECDHのみが実装されている。

鍵については、ECDSAが実装されている。

楕円ドメインパラメーターは、
Requiredとされているnistpの3種類が
実装されている。

と、ざっと書き出してみたが、
こんな感じだろうか。

それからOpenSSH 5.7p1のソースを見てみたが、
この楕円暗号関連のファイルや記述が多数増えていた。
この後、Cygwinでbuildしてみた。
(GCC 4.5.2(Cygwin Portsから)、OpenSSL 0.8.9q を使用)

configureオプションは以下の通り、
./configure --prefix=(導入先) --with-ssl-engine
--with-4in6 --with-ipaddr-display --with-entropy-timeout
--with-rand-helper --with-osfsia

特にオプションを足さなくても良いのかもしれないが、
有効に出来そうな部分の確認という事で足してみた。

install後に、etc/以下を見ると、
host鍵は、従来の3種から4種に増えていた。
それは、今回新たに実装された楕円暗号の物(ECDSA)。

あと、ssh-keygenでECDSA鍵を生成してみた
鍵の長さは、256、384、521の3種類。
これは前述したRFCに書かれているnistpの事だ。

ssh-keygen -b (長さ:256, 384, 521) -t ecdsa

というようにコマンドを実行すると、
パスフレーズの入力をして、
デフォルトだと~/.ssh/以下に生成される事を確認した。

Cygwin上という事もあり、
サーバーとしては、動かしていないので、
その辺の事は、確認していない。

Cygwin上のSSHサーバーの件は以前書いた(その時の記事)が、
一癖あるので、やや運用し辛い感はある。

ひとまず、ここまでとする。
このエントリーをはてなブックマークに追加 mixiチェック

OpenSSH 5.4がリリースされた。

前回は10月の5.3。
リリースノートを見ると
今回の変更点は、随分と多いようだ。
新規や変更部分で気になったとこを
幾つか挙げておこうと思う。

・SSH 1プロトコルの無効化。
SSHのプロトコルには1と2があるが、
現在主流は2であり、1は移行期間であった。
この移行期間を経て、2のみを有効化するように
なった。なお、設定ファイルで1の有効化は
出来るようだ。だが1はもう推奨されていないので
余程でない限り有効化する必要はないだろう。

・証明書認証の追加。
従来からあるものは公開鍵認証、パスワード認証、
ホストベース認証くらいだろうか。
そこに証明書認証が加わるという事になるのかな。
使われる証明書はX.509形式では無く、
OpenSSH専用フォーマットのようだ。
認証処理の流れなどは、今後確認してみたい。

・PKCS#11トークンのサポート追加。
従来はスマートカードのコードが含まれていたが、
これを無くして、その代わりにPKCS#11の
サポートを追加したとの事。このPKCS#11は
暗号化トークンインターフェースを定義する。
正直この辺のことは、よくわからないところが
多いのだが、スマートカードのみだった事が
他のハードウェアまで対応が広がったという事で
良いのかな?

他にも変更点はあるが、このくらいにする。
あとは、内部的なことが多そうなので。

追記、2010-03-10 20:00
記事を書いた時には、まだだったが
現段階でCygwinでバイナリのOpenSSH 5.4p1が
提供されているのを確認した。
このエントリーをはてなブックマークに追加 mixiチェック

先日、平文回復問題の対策の施された
OpenSSH 5.2p1が出た。

Linuxはディストリビューション版を
使っているので、本件は気にしていない。
ただしCygwinは常に新しい物が出ている。

ところがopenssh-unix-devという
メーリングリストのアーカイブを
見たら既存のCygwin 1.5系では、
5.2p1を出さないような記述を見かけた。

現在、Cygwin 1.5系だと5.2p1は
リリースされていない。
Cygwin 1.7系で確認すると5.2p1は
リリースされていた。

実は、最近までCygwinの1.7系の
存在を知らなかったのだが、
これを機会に入れ替えることにした。

setup.exeは1.7系専用の物が
提供されている。
当初、別ディレクトリで
やろうと思ったんだけど
結局、既存の環境を入れ替えた。
それは、setup.exeが既存の情報を
読み込んでいたから。

とりあえず、入れ替えは成功したのか?
はっきりと分からんが、必要な物は
とりあえず動いているみたい。

後々、調べるとやっぱ別ディレクトリで
分けたほうが良かったのかも・・・。

あと環境変数CYGWINに変更が
あったらしい。

1.5系から随分と変更点が
あるようなので、調べは続行だなぁ。
このエントリーをはてなブックマークに追加 mixiチェック

SSHの暗号文が平文に回復出来るという
脆弱性があるとの情報が半月位前に
CPNIから出ていたので、取り上げる。

既に各所で日本語の情報が出ているが、
自分でも分からないところがありつつも
訳しつつ読んでみた。

自分なりの理解としては、こんな感じかな。
なお、これは個人的理解のために書いたもので
正しいかは保証しないので、理解をしたい人は、
原文を読んで欲しい。

Debian上のOpenSSH 4.7p1で確かめられた。
他のバージョンも影響を受ける可能性がある。

SSHの標準構成で接続をした時、
暗号文の任意のブロックから
最大32bitsの平文に回復出来る。
OpenSSHが標準構成で使われた時の
成功確率は2^-18となる。
変形攻撃だと2^-14の確率で14bitsの
平文に回復出来る。
SSHの他の実装のための成功確率は不明。

接続エラー時に自動再接続されるように
なっていると、この攻撃の成功確率が
上がるかもしれない。(RFC 4251)

対策は、CBCモード(RFC 4253 6.3)の変わりに
CTRモード(RFC 4344)を使うこと。
OpenSSHでAESのCTRモードは実装済み。


その後、OpenSSH側から出された
アドバイザリも読んだ。

こちらに書かれた対策だけ挙げると、
sshd_configとssh_configの記述に
AESのCTRモードとarcfour暗号は問題無いので
これら暗号方式を優先するようにすれば良い。


普段自分が使うときは、あまり気にして
いなかった点なので、ちゃんと調べて
使うようにしてみようと思う。
このエントリーをはてなブックマークに追加 mixiチェック

Cygwin上でSSHサーバが
動かせるかやってみた。
その経緯を簡単に書き出してみる。

OpenSSHが入っているので
sshdを探しプロンプトから実行。
(フルパス(/usr/sbin/sshd)で
指定する必要あり)

サーバを起動したのでクライアントから
アクセス出来るかやってみる。
ローカルで試しただけだが、
ちゃんとアクセスが通ったようだ。
ただログが残らなかったので、
syslogdを動かした。これにより
ログを残すことも出来た。
ちなみにsyslog-ngも入っているが、
設定がいるようなのでこちらは
使わなかった。

今度はsshd_configの設定を書き換えようと
思ったら、権限が無く変更が出来なかった。
ちなみに所有者がSYSTEM、グループがroot。

Cygwinでは通常rootは無いけれど、
ちと強引だが、passwdとgroupを編集して
root関連を作っていたので、それにより
emacsで編集出来るかと思ったら
出来なかったのでviを使ってみると
今度は編集出来た。
ただ普通に考えたら、chmod辺りで
通常のユーザに権限を与えるのが
良さそうだが、それは今回試していない。

改めて設定をする。
見慣れない設定として、StrictMode
というのがあった。Web上を調べてみると、
これはセキュリティ上yesの方が良いらしい。
デフォルトはnoとなっていた。
syslog関連は、Linuxと同様にAUTHから
AUTHPRIVに変更。syslog.confで
/var/log/secureにもログを取るように変更。
デフォルトだと/var/log/messageに
ログが残る。
それからログレベルは試しなので
DEBUG3にする。

先日やったときは、クライアントからの
アクセス時にエラーを返していたのだが、
今回はすんなり動いた。
数日前なので忘れていたが、そういえば
/var/emptyを作り直した覚えがある。
これも権限がらみで引っかかってたはず。

動作確認として今度は、先日自分で
日本語パッチを当ててbuildしたPuttyや
VMWP上のLinuxからアクセスしてみた。
やってみると、アクセス出来た。
ただしクライアント側のコンソールで
SJISが表示出来ないと、文字化けする。

使えることは分かったけれど、
CygwinとWindowsのユーザ権限の関連性が、
よくわかっていないので外部公開はし辛いな。

追記、2008-11-30 03:00
今回やらなかったssh-host-configで
初期設定でサーバ設定ファイル、鍵類は
生成されるようなので、どうやら
自分が忘れるくらい前に作っていたらしい。
とりあえず古い鍵は権限変更して消して、
再生成。すると所有者がSYSTEMではなく
ユーザ名に変わっていた。
このエントリーをはてなブックマークに追加 mixiチェック

このページのトップヘ