https://www.openssh.com/txt/release-7.4 Future deprecation notice ========================= 将来廃止される機能の告知 We plan on retiring more legacy cryptography in future releases, specifically: 将来のリリースでさらなるレガシーな暗号を廃止することを計画している. 具体的には: * In approximately August 2017, removing remaining support for the SSH v.1 protocol (client-only and currently compile-time disabled). 2017/08ごろに SSH v.1 プロコロルの残っているサポートを除く (クライアントのみで残っていて現在コンパイル時には無効), * In the same release, removing support for Blowfish and RC4 ciphers and the RIPE-MD160 HMAC. (These are currently run-time disabled). 同じリリースで, Blowfish と RC4 暗号, RIPE-MD160 HMAC のサポートを 除く (現在実行時に無効). * Refusing all RSA keys smaller than 1024 bits (the current minimum is 768 bits) 1024 ビットより小さいすべての RSA 鍵を拒否する (現在の最小値は 768 ビット) * The next release of OpenSSH will remove support for running sshd(8) with privilege separation disabled. OpenSSH の次のリリースで, 特権分離が無効な sshd(8) の実行のサポートを 除く. * The next release of portable OpenSSH will remove support for OpenSSL version prior to 1.0.1. 移植版 OpenSSH の次のリリースで. 1.0.1 より前の OpenSSL のサポートを除く. This list reflects our current intentions, but please check the final release notes for future releases. このリストは我々の現在の意図を反映している. ただし, 将来のリリースでの 最終的なリリースノートをチェックしてほしい. Potentially-incompatible changes ================================ 非互換な可能性のある変更 This release includes a number of changes that may affect existing configurations: このリリースは, 既存の設定に影響する可能性がある変更をいくつか含んでいる. * This release removes server support for the SSH v.1 protocol. このリリースは, SSH v.1 プロトコルのサーバサポートを除く. * ssh(1): Remove 3des-cbc from the client's default proposal. 64-bit block ciphers are not safe in 2016 and we don't want to wait until attacks like SWEET32 are extended to SSH. As 3des-cbc was the only mandatory cipher in the SSH RFCs, this may cause problems connecting to older devices using the default configuration, but it's highly likely that such devices already need explicit configuration for key exchange and hostkey algorithms already anyway. ssh(1): クライアントのデフォルトの提案から 3des-cbc を除く. 2016 年において 64 ビットブロック暗号は安全ではなく, SWEET32 のような攻撃が SSH に拡張されるまで, 我々は待つのを 望んでいない. 3des-cbc は SSH RFC の中で唯一必須の暗号で, デフォルトの設定を用いている古いデバイスに対して接続する際に この除去は問題となるかもしれない. しかし, そのようなサービスは どうせ鍵公館やホスト鍵のアルゴリズムに明確な設定が必要である 可能性が非常に高い. * sshd(8): Remove support for pre-authentication compression. Doing compression early in the protocol probably seemed reasonable in the 1990s, but today it's clearly a bad idea in terms of both cryptography (cf. multiple compression oracle attacks in TLS) and attack surface. Pre-auth compression support has been disabled by default for >10 years. Support remains in the client. sshd(8): 認証前の圧縮のサポートを除く. プロトコルの初期で圧縮を行なうことは, 1990年代には合理的と考えられていた. しかし, 暗号額の面からも (例えば, TLS での複数の圧縮 oracle 攻撃) 攻撃面からも 今日では明確に悪い考えだ. 認証前の圧縮サポートは デフォルトで10年以上前から無効になっていたが, クライアントでサポートは残っていた. * ssh-agent will refuse to load PKCS#11 modules outside a whitelist of trusted paths by default. The path whitelist may be specified at run-time. ssh-agent は デフォルトで信頼されたパスのホワイトリスト以外からの PKCS#11 モジュールのロードを拒否するようになる. パスのホワイトリストは 実行時に指定できる. * sshd(8): When a forced-command appears in both a certificate and an authorized keys/principals command= restriction, sshd will now refuse to accept the certificate unless they are identical. The previous (documented) behaviour of having the certificate forced-command override the other could be a bit confusing and error-prone. sshd(8): 証明書と, authorized keys/principals の command= 制約の両方で force-command が指定されている場合, それらが同一でなければ sshd は 証明書の受け入れを拒否するようになる. 証明書の force-command が 他を上書きする場合の以前の(文書化された) 振舞いは ちょっと混乱していてエラーをおこしがちだった. * sshd(8): Remove the UseLogin configuration directive and support for having /bin/login manage login sessions. sshd(8): UseLogin 設定項目と/bin/login にログインセッションを管理させる仕組みの サポートを除く. Changes since OpenSSH 7.3 ========================= OpenSSH 7.3 からの変更点 This is primarily a bugfix release. これは主にバグ修正のリリースだ. Security -------- セキュリティ * ssh-agent(1): Will now refuse to load PKCS#11 modules from paths outside a trusted whitelist (run-time configurable). Requests to load modules could be passed via agent forwarding and an attacker could attempt to load a hostile PKCS#11 module across the forwarded agent channel: PKCS#11 modules are shared libraries, so this would result in code execution on the system running the ssh-agent if the attacker has control of the forwarded agent-socket (on the host running the sshd server) and the ability to write to the filesystem of the host running ssh-agent (usually the host running the ssh client). Reported by Jann Horn of Project Zero. ssh-agent(1): (実行時に設定可能な) 信頼できるホワイトリスト外の パスからの PKCS#11 モジュールのロードを拒否するようになる. モジュールのロードの要求はエージェントの転送によって渡される可能性があり, 攻撃者は転送されたエージェントチャンネルからの 悪意のあるPKCS#11 モジュール をロードする可能性がある. PKCS#11 モジュールは共有ライブラリで, (sshd サーバが走るホストで) 攻撃者が転送された agent ソケットの制御を持っていると, ssh-agent が走るシステムでコード実行が可能になる. また, ssh-agent が走るホスト (通常 ssh クライアントが走るホスト)の ファイルシステムへの書き込みが可能になる. Project Zero の Jann Horn によって報告された. * sshd(8): When privilege separation is disabled, forwarded Unix- domain sockets would be created by sshd(8) with the privileges of 'root' instead of the authenticated user. This release refuses Unix-domain socket forwarding when privilege separation is disabled (Privilege separation has been enabled by default for 14 years). Reported by Jann Horn of Project Zero. sshd(8): 特権分離が無効な場合, 転送された Unixドメインソケットは 認証されたユーザの権限ではなく 'root' 権限で sshd(8)に作成される. このリリースでは, 特権分離が無効な場合に転送に対するユニックスドメインソケット を拒否する. (特権分離がデフォルトで有効になって14年経つ) Project Zero の Jann Horn によって報告された. * sshd(8): Avoid theoretical leak of host private key material to privilege-separated child processes via realloc() when reading keys. No such leak was observed in practice for normal-sized keys, nor does a leak to the child processes directly expose key material to unprivileged users. Reported by Jann Horn of Project Zero. sshd(8): 理論上ありえる, 漏鍵の再読み込み時の realloc() による 特権分離された子プロセスへのホスト秘密鍵の内容の洩を避ける. このような漏洩は通常のサイズの鍵では実際には観測されないし, 非特権ユーザに対して鍵の内容を子プロセスが直接さらす漏洩ではない. Project Zero の Jann Horn によって報告された. * sshd(8): The shared memory manager used by pre-authentication compression support had a bounds checks that could be elided by some optimising compilers. Additionally, this memory manager was incorrectly accessible when pre-authentication compression was disabled. This could potentially allow attacks against the privileged monitor process from the sandboxed privilege-separation process (a compromise of the latter would be required first). This release removes support for pre-authentication compression from sshd(8). Reported by Guido Vranken using the Stack unstable optimisation identification tool (http://css.csail.mit.edu/stack/) sshd(8): 認証前圧縮サポートで用いていた共有メモリマネージャは 境界チェックがコンパイラの最適化によって除かれてしまうことがある. さらに, このメモリマネージャは認証前圧縮が無効な場合でも 不正にアクセスできる. このため, サンドボックス化された特権分離プロセスから 特権モニタプロセスへの攻撃が潜在的に可能になる (ただし前者の攻撃には後者が必要となるだろう) このリリースで 認証前圧縮を sshd(8) から削除する. スタック不安定 最適化識別ツール (http://css.csail.mit.edu/stack/) を用いて Guido Vranken によって報告された. * sshd(8): Fix denial-of-service condition where an attacker who sends multiple KEXINIT messages may consume up to 128MB per connection. Reported by Shi Lei of Gear Team, Qihoo 360. sshd(8): 攻撃者が複数の KEXINIT メッセージを送り接続ごとに 128MB まで 消費することによって起こるサービス不能状況を修正する. Gear Team, Qihoo 360 の Shi Lei によって報告された. * sshd(8): Validate address ranges for AllowUser and DenyUsers directives at configuration load time and refuse to accept invalid ones. It was previously possible to specify invalid CIDR address ranges (e.g. user@127.1.2.3/55) and these would always match, possibly resulting in granting access where it was not intended. Reported by Laurence Parry. sshd(8): 設定ロード時に AllowUser と DenyUsers 設置項目のアドレスレンジを 検証し, 不正なものを拒否する. 以前は (例えば user@127.1.2.3/55 のような) 不正な CIDR アドレスを指定でき, これらは常にマッチして, 意図していない アクセス許可となる可能性があった. Laurence Parry によって報告された. New Features ------------ 新機能 * ssh(1): Add a proxy multiplexing mode to ssh(1) inspired by the version in PuTTY by Simon Tatham. This allows a multiplexing client to communicate with the master process using a subset of the SSH packet and channels protocol over a Unix-domain socket, with the main process acting as a proxy that translates channel IDs, etc. This allows multiplexing mode to run on systems that lack file- descriptor passing (used by current multiplexing code) and potentially, in conjunction with Unix-domain socket forwarding, with the client and multiplexing master process on different machines. Multiplexing proxy mode may be invoked using "ssh -O proxy ..." ssh(1): ssh(1) にプロキシ多重化モードを追加する. Simon Tatham による PuTTY のバージョンに刺激された. SSH パケット/キャンネルプロトコルの部分集合を Unixドメインソケット上で用いて マスタープロセスと通信するクライアントを多重化する. このときメインプロセスがチャンネルIDなどを翻訳するプロキシとして振舞う. これにより, (現在の多重化コードを用いては)ファイルデスクリプタの転送ができない システムで多重化モードが走らせることができる. また, 可能性としてはUnixドメインソケット転送と合わせたり, 別マシン上のクライアントと多重化されたマスタープロセスで 動かすことができる. 多重化プロキシモードは "ssh -O proxy ..." を用いて 駆動される * sshd(8): Add a sshd_config DisableForwarding option that disables X11, agent, TCP, tunnel and Unix domain socket forwarding, as well as anything else we might implement in the future. Like the 'restrict' authorized_keys flag, this is intended to be a simple and future-proof way of restricting an account. sshd(8): sshd_config に DisableForwarding 設定項目を追加する. これは X11, エージェント, TCP, トンネル, Unixドメインソケットの 転送を無効にする. また将来実装される他の転送も無効にする. authorized_keys の 'restrict' フラグと同様, DisableForwaring の意図は, アカウントを制限する 単純で将来でも有効な方法を提供することだ. * sshd(8), ssh(1): Support the "curve25519-sha256" key exchange method. This is identical to the currently-supported method named "curve25519-sha256@libssh.org". sshd(8), ssh(1): "curve25519-sha256" 鍵交換法をサポートする. 現在サポートされている "curve25519-sha256@libssh.org" という方法と 同じものだ. * sshd(8): Improve handling of SIGHUP by checking to see if sshd is already daemonised at startup and skipping the call to daemon(3) if it is. This ensures that a SIGHUP restart of sshd(8) will retain the same process-ID as the initial execution. sshd(8) will also now unlink the PidFile prior to SIGHUP restart and re-create it after a successful restart, rather than leaving a stale file in the case of a configuration error. bz#2641 sshd(8): SIGHUP の扱いを改善する. sshd がすでに開始時にデーモン化しているか そうならば daemon(3) の呼出しをスキップしているか をチェックするようになる. これで, sshd(8) の SIGHUP 再起動が 最初の実行と同じプロセスIDを維持する のを保証する. sshd(8) は SIGHUP 再起動の前に PidFile を削除し 再起動が成功したら再作成する. 設定エラーの場合に古いファイルが残らないようになる bz#2641 * sshd(8): Allow ClientAliveInterval and ClientAliveCountMax directives to appear in sshd_config Match blocks. sshd(8): sshd_config の Match ブロック内で ClientAliveInterval と ClientAliveCountMax 設定項目が利用可能に * sshd(8): Add %-escapes to AuthorizedPrincipalsCommand to match those supported by AuthorizedKeysCommand (key, key type, fingerprint, etc.) and a few more to provide access to the contents of the certificate being offered. sshd(8): AuthorizedPrincipalsCommand に % エスケープを追加する. AuthorizedKeysCommand でサポートされているエスケープ(鍵, 鍵の種類, 指紋など)と, さらに提供されている証明書の内容へのアクセスを提供する マッチをする. * Added regression tests for string matching, address matching and string sanitisation functions. 文字列マッチ, アドレスマッチ, 文字列無害化関数への回帰テストを追加した. * Improved the key exchange fuzzer harness. 鍵交換の fuzz テスト用ハーネスを改善した. Bugfixes -------- バグ修正 * ssh(1): Allow IdentityFile to successfully load and use certificates that have no corresponding bare public key. bz#2617 certificate id_rsa-cert.pub (and no id_rsa.pub). ssh(1): 対応する生の公開鍵がない証明書を IdentityFile で ロードし利用できる. bz#2617 (例えば id_rsa.pub がない id_rsa-cert.pub 証明書) * ssh(1): Fix public key authentication when multiple authentication is in use and publickey is not just the first method attempted. bz#2642 ssh(1): 複数の認証法が利用されて, 公開鍵認証が最初に試行される 方式でない場合の公開鍵認証を修正する. bz#2642 * regress: Allow the PuTTY interop tests to run unattended. bz#2639 回帰テスト: PuTTY 相互運用性テストが手入力なしで動くようにする. bz#2639 * ssh-agent(1), ssh(1): improve reporting when attempting to load keys from PKCS#11 tokens with fewer useless log messages and more detail in debug messages. bz#2610 ssh-agent(1), ssh(1): PKCS#11 トークンから鍵を読み込む場合に 少しの無用なログとより詳細なデバッグメッセージが出ていたので リポーティングを改善する. bz#2610 * ssh(1): When tearing down ControlMaster connections, don't pollute stderr when LogLevel=quiet. ssh(1): ControlMaster 接続を落す場合に, LogLevel=quiet なら stderr を汚染しない. * sftp(1): On ^Z wait for underlying ssh(1) to suspend before suspending sftp(1) to ensure that ssh(1) restores the terminal mode correctly if suspended during a password prompt. sftp(1): sftp(1) を中断する前に ^Z で 基底の ssh(1) が 中断された場合に パスワードプロンプト表示中に中断されていても ssh(1) が 正しく ターミナルモードを復元するのを保証する. * ssh(1): Avoid busy-wait when ssh(1) is suspended during a password prompt. ssh(1): パスワードプロンプト表示中に ssh(1) が中断された場合の busy-wait を回避する. * ssh(1), sshd(8): Correctly report errors during sending of ext- info messages. ssh(1), sshd(8): ext-info メッセージを送る際に正しくエラーを レポートする. * sshd(8): fix NULL-deref crash if sshd(8) received an out-of- sequence NEWKEYS message. sshd(8): sshd(8) が シーケンスから外れた NEWKEYS メッセージを 受け取った際に NULL を逆参照してクラッシュするのを修正する. * sshd(8): Correct list of supported signature algorithms sent in the server-sig-algs extension. bz#2547 sshd(8): server-sig-algs 拡張で サポートされている署名 アルゴリズムのリストを修正する. bz#2547 * sshd(8): Fix sending ext_info message if privsep is disabled. sshd(8): 特権分離が無効な場合に ext_info メッセージの送信を修正する. * sshd(8): more strictly enforce the expected ordering of privilege separation monitor calls used for authentication and allow them only when their respective authentication methods are enabled in the configuration sshd(8): 認証に用いられる特権分離モニター呼出しの期待される順序を より厳密に強制する. これにより, モニター呼出しを設定で それぞれの認証法でのみ有効にできる. * sshd(8): Fix uninitialised optlen in getsockopt() call; harmless on Unix/BSD but potentially crashy on Cygwin. sshd(8): getsockopt() 呼出しで初期化していない optlen を修正する. Unix/BSD では無害だが, Cygwin ではクラッシュする可能性がある. * Fix false positive reports caused by explicit_bzero(3) not being recognised as a memory initialiser when compiled with -fsanitize-memory. -fsanitize-memory を付けてコンパイルされた場合に explicit_bzero(3) が メモリ初期化子を認識しないことに 起因する false positive なレポートを修正する * sshd_config(5): Use 2001:db8::/32, the official IPv6 subnet for configuration examples. sshd_config(5): 2001:db8::/32 を用いる. 設定例のための 公式な IPv6 サブネット Portability ----------- 移植性 * On environments configured with Turkish locales, fall back to the C/POSIX locale to avoid errors in configuration parsing caused by that locale's unique handling of the letters 'i' and 'I'. bz#2643 Turkish ロケールで設定された環境で, ロケールな独特な文字 'i' と 'I' の扱いによる設定ファイルのパースエラーを回避するために C/POSIX ロケールに フォールバックする. * sftp-server(8), ssh-agent(1): Deny ptrace on OS X using ptrace(PT_DENY_ATTACH, ..) sftp-server(8), ssh-agent(1): ptrace(PT_DENY_ATTACH, ..) を用いて OS X 上で ptrace を無効にする * ssh(1), sshd(8): Unbreak AES-CTR ciphers on old (~0.9.8) OpenSSL. ssh(1), sshd(8): 古い (~0.9.8) OpenSSL の AES-CTR 暗号を直す * Fix compilation for libcrypto compiled without RIPEMD160 support. RIPEMD160 サポートなしでコンパイルされた libcrypto のコンパイルを修正する * contrib: Add a gnome-ssh-askpass3 with GTK+3 support. bz#2640 contrib: GTK+3 サポートされた gnome-ssh-askpass3 を追加する. bz#2640 * sshd(8): Improve PRNG reseeding across privilege separation and force libcrypto to obtain a high-quality seed before chroot or sandboxing. sshd(8): 特権分離越しのPRNG の再シードを改善し, chroot や サンドボックス化の前に 高品質のシードを libcrypto が得るのを強制する. * All: Explicitly test for broken strnvis. NetBSD added an strnvis and unfortunately made it incompatible with the existing one in OpenBSD and Linux's libbsd (the former having existed for over ten years). Try to detect this mess, and assume the only safe option if we're cross compiling. すべて: 壊れた strnvis に対する明示的なテスト. NetBSD は strnvis を追加して 不幸なことに, これは OpenBSD や Linux の libbsd の既存のものと非互換になっている (OpenBSDのものは 10年以上前から存在している). この混乱を検出しようと試み, クロスコンパイル時に唯一の安全な選択をとる.