https://www.openssh.com/txt/release-8.3 Future deprecation notice ========================= 将来廃止される機能の告知 (訳注: 8.2 のリリースノートにもほぼ同じ内容が含まれている) It is now possible[1] to perform chosen-prefix attacks against the SHA-1 algorithm for less than USD$50K. For this reason, we will be disabling the "ssh-rsa" public key signature algorithm by default in a near-future release. USドル 50K より少ない金額で SHA-1 アルゴリズムに対する選択プレフィックス 攻撃が実行できることが [1] で示されている. このため, 我々は 近い将来のリリースで "ssh-rsa" 公開鍵署名アルゴリズムをデフォルトでは 無効にする予定だ. This algorithm is unfortunately still used widely despite the existence of better alternatives, being the only remaining public key signature algorithm specified by the original SSH RFCs. このアルコリズムは, よりよい代替アルゴリズムがあるにもかかわらず もともとの SSH RFC で定義された公開鍵署名アルゴリズムのの中で ただ1つ残ったアルゴリズムとして, 不幸なことにいまだ広く用いられている. The better alternatives include: 次に示すものがよりよい代替だ: * The RFC8332 RSA SHA-2 signature algorithms rsa-sha2-256/512. These algorithms have the advantage of using the same key type as "ssh-rsa" but use the safe SHA-2 hash algorithms. These have been supported since OpenSSH 7.2 and are already used by default if the client and server support them. RFC8332 の RSA SHA-2 署名アルゴリズム rsa-sha-256/512. これらのアルゴリズムは "ssh-rsa" と同じ鍵タイプを用いる利点があり 安全な SHA-2 ハッシュアルゴリズムを用いている. これらは OpenSSH 7.2 以降でサポートされており, クライアントとサーバが サポートしているならすでにデフォルトで用いられている. * The ssh-ed25519 signature algorithm. It has been supported in OpenSSH since release 6.5. ssh-ed25519 署名アルゴリズム. OpenSSH 6.5 以降でサポートされている. * The RFC5656 ECDSA algorithms: ecdsa-sha2-nistp256/384/521. These have been supported by OpenSSH since release 5.7. RFC5656 の ECDSA アルゴリズム: ecdsa-sha2-nistp256/384/521. These これらは OpenSSH 5.7 以降でサポートされている. To check whether a server is using the weak ssh-rsa public key algorithm, for host authentication, try to connect to it after removing the ssh-rsa algorithm from ssh(1)'s allowed list: サーバが, ホストの認証のために, 弱い ssh-rsa 公開鍵アルゴリズムを 利用しているか検査するには, ssh(1) の許可リストから ssh-rsa アルゴリズムを除いたあとで接続を試行すればよい. ssh -oHostKeyAlgorithms=-ssh-rsa user@host If the host key verification fails and no other supported host key types are available, the server software on that host should be upgraded. ホスト鍵検証が失敗し他にサポートされたホスト鍵の種類がない場合, ホストのサーバソフトウェアをアップグレードする必要がある. A future release of OpenSSH will enable UpdateHostKeys by default to allow the client to automatically migrate to better algorithms. Users may consider enabling this option manually. Vendors of devices that implement the SSH protocol should ensure that they support the new signature algorithms for RSA keys. OpenSSH の将来のリリースでは, クライアントがよりよいアルゴリズムに 自動的に移行できるようにする UpdateHostKeys 設定項目をデフォルトで有効にする. ユーザはこの設定項目をマニュアルで有効にしてもよい. (訳注: この節の 次の文が 8.3 で追記された) SSH プロトコルを実装するデバイスのベンダは RSA 鍵に対する新しい署名アルゴリズムをサポートすることを保証すべきだ. [1] "SHA-1 is a Shambles: First Chosen-Prefix Collision on SHA-1 and Application to the PGP Web of Trust" Leurent, G and Peyrin, T (2020) https://eprint.iacr.org/2020/014.pdf Security ======== セキュリティ * scp(1): when receiving files, scp(1) could be become desynchronised if a utimes(2) system call failed. This could allow file contents to be interpreted as file metadata and thereby permit an adversary to craft a file system that, when copied with scp(1) in a configuration that caused utimes(2) to fail (e.g. under a SELinux policy or syscall sandbox), transferred different file names and contents to the actual file system layout. scp(1): ファイルを受け取る際, utimes(2) システムコールが失敗すると scp(1) は 非同期になる可能性がある. この時ファイルの内容が ファイルのメタデータとして解釈される可能性があり, それゆえ ファイルシステムを加工する攻撃を許してしまう. (例えば SELinux のポリシー や システムコールサンドボックスによって) utimes(2) が失敗しうる設定で scp(1) でのコピーされたファイルが, 実際のファイルシステムの配置とは異なるファイル名や内容でコピーされる. Exploitation of this is not likely as utimes(2) does not fail under normal circumstances. Successful exploitation is not silent - the output of scp(1) would show transfer errors followed by the actual file(s) that were received. この問題は, utimes(2) は通常の環境で失敗しないので, 発生する蓋然性は低い. 問題が発生したときはわかりやすい - scp の出力は, 実際に転送されたファイル(群) に続いて転送エラーを表示するだろう. Finally, filenames returned from the peer are (since openssh-8.0) matched against the user's requested destination, thereby disallowing a successful exploit from writing files outside the user's selected target glob (or directory, in the case of a recursive transfer). This ensures that this attack can achieve no more than a hostile peer is already able to achieve within the scp protocol. 最後に, 相手方から転送されたファイル名は (openssh-8.0 から) ユーザの要求した転送先に一致するので, ユーザが選択した対象の glob (ないし, 再帰転送の場合は, ディレクトリ) の外側で この問題が発生することはない. これは, この攻撃によって悪意のある 相手方が scp プロトコル内で達成できること以上のことはできないことを 保証します. Potentially-incompatible changes ================================ 潜在的に非互換な変更 This release includes a number of changes that may affect existing configurations: このリリースは, 既存の設定に影響しうる変更を含んでいる: * sftp(1): reject an argument of "-1" in the same way as ssh(1) and scp(1) do instead of accepting and silently ignoring it. sftp(1): コマンドライン引数 "-1" を ssh(1) と scp(1) と同様に拒否する. これまでは受け入れて静かに無視していた. Changes since OpenSSH 8.2 ========================= OpenSSH 8.2 からの変更 The focus of this release is bug fixing. このリリースの焦点はバグ修正だ. New Features ------------ 新機能 * sshd(8): make IgnoreRhosts a tri-state option: "yes" to ignore rhosts/shosts, "no" allow rhosts/shosts or (new) "shosts-only" to allow .shosts files but not .rhosts. ssh(8): IgnoreRhosts は 3つの状態を持つ設定項目となる. "yes" は rhosts/shosts を無視する. "no" は rhosts/shosts を利用可能とする. (新しい) "shosts-only" は .shosts を利用可能とするが, .rhosts は そうしない. * sshd(8): allow the IgnoreRhosts directive to appear anywhere in a sshd_config, not just before any Match blocks; bz3148 sshd(8): IgnoreRhosts 設定項目を, すべての Match ブロック の前ではなく sshd_config のどこに配置してもよいようにする. bz3148 * ssh(1): add %TOKEN percent expansion for the LocalFoward and RemoteForward keywords when used for Unix domain socket forwarding. bz#3014 ssh(1): ユニックスドメインソケット転送で利用する際の %TOKEN (%h など) の展開を LocalFoward と RemoteForward で追加する. bz#3014 * all: allow loading public keys from the unencrypted envelope of a private key file if no corresponding public key file is present. all: 秘密鍵ファイルがあって対応する公開鍵がない場合に, 秘密鍵ファイルの 暗号化されていない envelope から公開鍵をロードできるようにする. * ssh(1), sshd(8): prefer to use chacha20 from libcrypto where possible instead of the (slower) portable C implementation included in OpenSSH. ssh(1), sshd(8): chacha20 の利用時に, 可能ならば (より遅い) OpenSSH に含まれる (より遅く) 移植性のある C の実装よりも libcrypto を利用する. * ssh-keygen(1): add ability to dump the contents of a binary key revocation list via "ssh-keygen -lQf /path" bz#3132 ssh-keygen(1): "ssh-keygen -lQf /path" によって バイナリ 鍵 失効リストの内容を出力できるようにする. bz#3132 Bugfixes -------- バグ修正 * ssh(1): fix IdentitiesOnly=yes to also apply to keys loaded from a PKCS11Provider; bz#3141 ssh(1): PKCS11Provider からロードされた鍵に対しても IdentitiesOnly=yes を適用するように修正する; bz#3141 * ssh-keygen(1): avoid NULL dereference when trying to convert an invalid RFC4716 private key. ssh-keygen(1): 不正な RFC4716 秘密鍵を変換しようとする際に NULL の参照を外さないようにする. * scp(1): when performing remote-to-remote copies using "scp -3", start the second ssh(1) channel with BatchMode=yes enabled to avoid confusing and non-deterministic ordering of prompts. scp(1): "scp -3" を用いて リモート-リモート コピーを実行する際, プロンプトの混乱を招き非決定的な順番を回避できるよう 2番目の ssh(1) チャンネルを BatchMode=yes で開始する. * ssh(1), ssh-keygen(1): when signing a challenge using a FIDO token, perform hashing of the message to be signed in the middleware layer rather than in OpenSSH code. This permits the use of security key middlewares that perform the hashing implicitly, such as Windows Hello. ssh(1), ssh-keygen(1): FIDO トークンを用いてチャレンジに署名する際, OpenSSH のコードよりもミドルウェアの層で署名されたメッセージの ハッシュ化を優先して行なうようにする. Windows ハローのような, ハッシュを暗黙的に実行するセキュリティ鍵ミドルウェアの利用が できるようになる. * ssh(1): fix incorrect error message for "too many known hosts files." bz#3149 ssh(1): "too many known hosts files" に対する間違った エラーメッセージを修正する. bz#3149 * ssh(1): make failures when establishing "Tunnel" forwarding terminate the connection when ExitOnForwardFailure is enabled; bz#3116 ssh(1): ExitOnForwardFailure が有効な場合に "トンネル" 転送の確立に失敗したら 接続を終了するようにする; bz#3116 * ssh-keygen(1): fix printing of fingerprints on private keys and add a regression test for same. ssh-keygen(1): 秘密鍵の指紋の出力を修正し, 回帰テストを追加する. * sshd(8): document order of checking AuthorizedKeysFile (first) and AuthorizedKeysCommand (subsequently, if the file doesn't match); bz#3134 sshd(8): AuthorizedKeysFile (最初にチェックする) と AuthorizedKeysCommand (ファイルがマッチしなかったら, 次に) の順番を文書化する. bz#3134 * sshd(8): document that /etc/hosts.equiv and /etc/shosts.equiv are not considered for HostbasedAuthentication when the target user is root; bz#3148 sshd(8): 対象ユーザが root の場合に HostbasedAuthentication で /etc/hosts.equiv と /etc/shosts.equiv が考慮されないことを文書化する; bz#3148 * ssh(1), ssh-keygen(1): fix NULL dereference in private certificate key parsing (oss-fuzz #20074). ssh(1), ssh-keygen(1): 秘密証明書鍵のパース時の NULL の参照外しを 修正する (oss-fuzz #20074). * ssh(1), sshd(8): more consistency between sets of %TOKENS are accepted in various configuration options. ssh(1), sshd(8): %TOKENS の集合の間の一貫性を いろいろな設定オプション間でより一致するようにする. * ssh(1), ssh-keygen(1): improve error messages for some common PKCS#11 C_Login failure cases; bz#3130 ssh(1), ssh-keygen(1): PKCS#11 C_Login 失敗のいくつかの場合の エラーメッセージを改善する; bz#3130 * ssh(1), sshd(8): make error messages for problems during SSH banner exchange consistent with other SSH transport-layer error messages and ensure they include the relevant IP addresses bz#3129 ssh(1), sshd(8): SSH バナー交換時の問題のエラーメッセージを 他の SSH トランスポート層エラーメッセージと一貫するようにし, 関連する IPアドレスを含むようにする. bz#3129 * various: fix a number of spelling errors in comments and debug/error messages いろいろ: コメントや debug/error メッセージ中のスペルミスを多数 修正する. * ssh-keygen(1), ssh-add(1): when downloading FIDO2 resident keys from a token, don't prompt for a PIN until the token has told us that it needs one. Avoids double-prompting on devices that implement on-device authentication. ssh-keygen(1), ssh-add(1): FIDO2 resident 鍵をトークンから ダウンロードする際, トークンが PIN が必要だと言うまでは PIN のプロンプトを表示しない. デバイスの認証を実装しているデバイスでの 2重プロンプトを避ける. * sshd(8), ssh-keygen(1): no-touch-required FIDO certificate option should be an extension, not a critical option. sshd(8), ssh-keygen(1): 接触が必要ない FIDO 証明書オプションは 拡張とする必要がある. 必須のオプションではない. * ssh(1), ssh-keygen(1), ssh-add(1): offer a better error message when trying to use a FIDO key function and SecurityKeyProvider is empty. ssh(1), ssh-keygen(1), ssh-add(1): FIDO 鍵関数を利用しようとして SecurityKeyProvider が空の場合のエラーメッセージを改善する. * ssh-add(1), ssh-agent(8): ensure that a key lifetime fits within the values allowed by the wire format (u32). Prevents integer wraparound of the timeout values. bz#3119 ssh-add(1), ssh-agent(8): 鍵の有効時間は wire format (u32) で 許可されている値の範囲内に収まることを保証する. タイムアウト値の 整数循環を防止する. bz#3119 * ssh(1): detect and prevent trivial configuration loops when using ProxyJump. bz#3057. ssh(1): ProxyJump を利用した 自明な設定ループを検出し防止する bz#3057 Portability ----------- 移植性 * Detect systems where signals flagged with SA_RESTART will interrupt select(2). POSIX permits implementations to choose whether select(2) will return when interrupted with a SA_RESTART-flagged signal, but OpenSSH requires interrupting behaviour. SA_RESTART フラグ付きのシグナルが select(2) に割り込むシステムを検出する. POSIX は SA_RESTART フラグ付きのシグナルによって割り込まれた場合に select(2) が return するかどうかを実装にまかせているが, OpenSSH は割り込まれる振舞いを要求している. * Several compilation fixes for HP/UX and AIX. HP/UX と AIX でのいくつかのコンパイルの問題の修正. * On platforms that do not support setting process-wide routing domains (all excepting OpenBSD at present), fail to accept a configuration attempts to set one at process start time rather than fatally erroring at run time. bz#3126 プロセス単位のルーティングドメインの設定をサポートしないプラットフォーム (現在 OpenBSD 以外のすべてのプラットフォーム) で, そのような設定に対して 実行時に致命的に失敗するのではなく開始時に設定しようとしたらエラーと なるようにする. bz#3126 * Improve detection of egrep (used in regression tests) on platforms that offer a poor default one (e.g. Solaris). (例えば Solaris のような) 貧弱なデフォルトの egrep を提供するプラットフォーム での egrep の検出を改善する. (egrep は回帰テストで利用している) * A number of shell portability fixes for the regression tests. 回帰テストでの シェル移植性を多数修正する. * Fix theoretical infinite loop in the glob(3) replacement implementation. glob(3) 置換実装での理論上ありえる無限ループを修正する. * Fix seccomp sandbox compilation problems for some Linux configurations bz#3085 いくつかの Linux の設定での seccomp サンドボックスのコンパイルの 問題を修正する bz#3085 * Improved detection of libfido2 and some compilation fixes for some configurations when --with-security-key-builtin is selected. libfido2 の検出改善し, --with-security-key-builtin が選択された場合の いくつかの設定でのコンパイル時の問題を修正する.