2024/10 学習のまとめ
近況: ある案件でフルタイムで稼働中です。副業的なものは募集中です。
イベント
Goオンラインもくもく会 - connpass
毎回ではないですが参加しています
最近は bediger4000/kilo-in-go: Kilo text editor, from Build Your Own Text Editor, in Go をやっています。
近況: ある案件でフルタイムで稼働中です。副業的なものは募集中です。
毎回ではないですが参加しています
最近は bediger4000/kilo-in-go: Kilo text editor, from Build Your Own Text Editor, in Go をやっています。
近況: ある案件でフルタイムで稼働中です
毎回ではないですが参加しています
毎回ではないですが参加しています
2024/09/20, OpenSSH 9.9p1 がリリースされました.
“Match” 設定項目の引数の処理が変更されています. 特に “Match exec” を利用している場合には注意が必要と思います.
OpenSSH 9.9 がリリース準備中です.
https://lists.mindrot.org/pipermail/openssh-unix-dev/2024-September/041574.html
Future deprecation notice
=========================
将来非推奨となる機能の告知
OpenSSH plans to remove support for the DSA signature algorithm in
early 2025. This release disables DSA by default at compile time.
OpenSSH は 2025年前半に DSA 署名アルゴリズムに対するサポートを除く
ことを計画している.
このリリースでコンパイル時にデフォルトでは DSA を無効にする.
DSA, as specified in the SSHv2 protocol, is inherently weak - being
limited to a 160 bit private key and use of the SHA1 digest. Its
estimated security level is only 80 bits symmetric equivalent.
SSHv2 プロトコルで指定された DSA は 本質的に弱い - 秘密鍵が 160 bit
に制限されていて SHA1 ハッシュを用いている. 見積もられるセキュリティレベル
は共通鍵暗号の 80 bit しかない.
OpenSSH has disabled DSA keys by default since 2015 but has retained
run-time optional support for them. DSA was the only mandatory-to-
implement algorithm in the SSHv2 RFCs, mostly because alternative
algorithms were encumbered by patents when the SSHv2 protocol was
specified.
OpenSSH は 2015 年以降 DSA 鍵をデフォルトで無効にしているが,
ランタイムでの(任意の)サポートは維持している. DSA は,
SSHv2 プロトコルが仕様化された際に代替のアルゴリズムが特許で阻まれていた
ため, SSHv2 RFC[3] 中で実装が必須の唯一のアルゴリズムだ.
This has not been the case for decades at this point and better
algorithms are well supported by all actively-maintained SSH
implementations. We do not consider the costs of maintaining DSA
in OpenSSH to be justified and hope that removing it from OpenSSH
can accelerate its wider deprecation in supporting cryptography
libraries.
現時点では何十年もこのような(特許による障害がある)場合は起こっておらず,
すべての活発に維持されている SSH の実装でよりよいアルゴリズムが
十分にサポートされている. 我々は OpenSSH で DSA を維持するコストが
正当化されるとは考えておらず, OpenSSH から DSA を除くことが
(DSAを) サポートしている暗号ライブラリでのより広い DSA の非推奨への加速
を期待している.
Currently DSA is disabled at compile time by default. The final
step of removing DSA support entirely is planned for the first
OpenSSH release of 2025.
現在 DSA はデフォルトでコンパイル時に無効となっている. DSA サポートの
完全な除去の最後の段階は 2025 年の最初の OpenSSH のリリースで
予定されている.
DSA support may be re-enabled in OpenBSD by setting "DSAKEY=yes"
in Makefile.inc. To enable DSA support in portable OpenSSH, pass
the "--enable-dsa-keys" option to configure.
DSA のサポートは OpenBSD では Makefile.inc で "DSAKEY=yes" と
設定することで再有効化できる. 移植版 OpenSSH で DSA サポートを
有効にするには configure に "--enable-dsa-keys" を渡す.
Potentially-incompatible changes
--------------------------------
潜在的に非互換な変更
* ssh(1): remove support for pre-authentication compression.
OpenSSH has only supported post-authentication compression in
the server for some years. Compression before authentication
significantly increases the attack surface of SSH servers and risks
creating oracles that reveal information about information sent
during authentication.
ssh(1): 認証前の圧縮のサポートを除去する. OpenSSH はこの数年
サーバーでの認証後の圧縮のみをサポートしている. 認証前の圧縮は
SSH サーバーの攻撃面を顕著に増加させ, 認証中に送られた情報について
の情報を明らかにするオラクルを作成されるリスクも高める.
* ssh(1), sshd(8): processing of the arguments to the "Match"
configuration directive now follows more shell-like rules for
quoted strings, including allowing nested quotes and \-escaped
characters. If configurations contained workarounds for the
previous simplistic quote handling then they may need to be
adjusted.
"Match" 設定項目の引数の処理が, ネストされたクオートや \ で
エスケープされた文字を許すことを含む, クオート文字に対する
よりシェルのようなルールに従うようになる. 設定が以前の単純な
クオート処理に対するワークアラウンドを含んでいる場合,
調整が必要となるかもしれない.
Changes since OpenSSH 9.8
=========================
OpenSSH 9.8 からの変更
This release contains a number of new features and bugfixes.
このリリースはたくさんの新機能とバグ修正を含んでいる.
New features
------------
新機能
* ssh(1), sshd(8): add support for a new hybrid post-quantim key
exchange based on on the FIPS 203 Module-Lattice Key Enapsulation
mechanism (ML-KEM) combined with X25519 ECDH as described by
https://datatracker.ietf.org/doc/html/draft-kampanakis-curdle-ssh-pq-ke-03
This algorithm "mlkem768x25519-sha256" is available by default.
FIPS 203 Module-Lattice Enapsulation mechanism (ML-KEM) と
X25519 ECDH を組み合わせ (詳細は
https://datatracker.ietf.org/doc/html/draft-kampanakis-curdle-ssh-pq-ke-03
)をベースにする新しいハイブリッド耐量子
鍵交換のサポートを追加する.
このアルゴリズム "mlkem768x25519-sha256" はデフォルトで利用可能だ.
* ssh(1): the ssh_config "Include" directive can now expand
environment as well as the same set of %-tokens "Match Exec"
supports.
ssh(1): ssh_config の "Include" 設定項目は "Match Exec" でサポート
されている %-トークンと同じセットのように環境変数を展開できる.
* sshd(8): add a sshd_config "RefuseConnection" option that, if set
will terminate the connection at the first authentication request.
sshd(8): sshd_config に "RefuseConnection" 設定項目を追加する.
設定すると最初に認証リクエストの時点で接続を終了する.
* sshd(8): add a "refuseconnection" penalty class to sshd_config
PerSourcePenalties that is applied when a connection is dropped by
the new RefuseConnection keyword.
sshd(8): sshd_config の PerSourcePenalties に "refuseconnection"
ペナルティクラスを追加する. 新しい RefuseConnection 設定項目に
よって接続が切断された場合に適用される.
* sshd(8): add a "Match invalid-user" predicate to sshd_config Match
options that matches when the target username is not valid on the
server.
sshd(8): "Match invalid-user" 述語を sshd_config の Match 設定項目に
追加する. ターゲットユーザー名がサーバで有効でない場合にマッチする.
* ssh(1), sshd(8): update the Streamlined NTRUPrime code to a
substantially faster implementation.
ssh(1), sshd(8): Streamlined NTRUPrime のコードを大幅に高速な
実装に更新する.
* ssh(1), sshd(8): the hybrid Streamlined NTRUPrime/X25519 key
exchange algorithm now has an IANA-assigned name in addition to
the "@openssh.com" vendor extension name. This algorithm is now
also available under this name "sntrup761x25519-sha512"
ssh(1), sshd(8): ハイブリッド Streamlined NTRUPrime/X25519 鍵交換
アルゴリズムは今や "@openssh.com" のベンダー拡張名に加えて IANA
に割り当てられた名前も持つ. これによりアルゴリズムは今や
"sntrup761x25519-sha512" という名前でも利用可能だ.
* ssh(1), sshd(8), ssh-agent(1): prevent private keys from being
included in core dump files for most of their lifespans. This is
in addition to pre-existing controls in ssh-agent(1) and sshd(8)
that prevented coredumps. This feature is supported in OpenBSD,
Linux and FreeBSD.
ssh(1), sshd(8), ssh-agent(1): 秘密鍵をその生存期間のほとんどに
おいてコアダンプファイルに含まれないようにする. これは ssh-agent(1) と
sshd(8) がコアダンプを阻止する既存の制御への追加だ. この機能は
OpenBSD と Linux, FreeBSD でサポートされている.
* All: convert key handling to use the libcrypto EVP_PKEY API, with
the exception of DSA.
すべて: DSA を除いて, 鍵の処理を libcrypto EVP_PKEY API を用いる
ように変換する.
* sshd(8): add a random amount of jitter (up to 4 seconds) to the
grace login time to make its expiry unpredictable.
sshd(8): 期限切れを予測不能とするため, 猶予ログイン時間に
ランダムなジッタ(最大4秒)を追加する.
Bugfixes
--------
バグ修正
* sshd(8): relax absolute path requirement back to what it was prior
to OpenSSH 9.8, which incorrectly required that sshd was started
with an absolute path in inetd mode. bz3717
sshd(8): 絶対パスの要求を OpenSSH 9.8 より前のものに戻して緩和する.
OpenSSH 9.8 では sshd が inetd モードで起動する際に絶対パスで起動
することを誤って要求していた.
* sshd(8): fix regression introduced in openssh-9.8 that swapped the
order of source and destination addresses in some sshd log messages.
sshd(8): いくつかのログメッセージで送信元アドレスと宛先アドレスの
順番が入れ替わる openssh-9.8 で導入されたリグレッションを修正する.
* sshd(8): do not apply authorized_keys options when signature
verification fails. Prevents more restrictive key options being
incorrectly applied to subsequent keys in authorized_keys. bz3733
sshd(8): 署名検証が失敗した場合に authorized_keys のオプションを
適用しない. より厳しい鍵のオプションが誤って authorized_keys
の後続の鍵に適用されていたのを防ぐ. bz3733
* ssh-keygen(1): include pathname in some of ssh-keygen passphrase
prompts. Helps the user know what's going on when ssh-keygen is
invoked via other tools. Requested in GHPR503
ssh-keygen(1): ssh-keygen のパスフレーズのプロンプトのいくつかに
パス名を含む. ssh-keygen が他のツールから呼び出された場合に
ユーザーが状況を把握するのを助ける. GHPR503 で要求された.
* ssh(1), ssh-add(1): make parsing user@host consistently look for
the last '@' in the string rather than the first. This makes it
possible to more consistently use usernames that contain '@'
characters.
ssh(1), ssh-add(1): user@host の解析を一貫して 文字列中の最初の
'@' ではなく 最後の '@' をを探すようにする. これにより '@' 文字
を含むユーザー名がより一貫して利用できるようになる.
* ssh(1), sshd(8): be more strict in parsing key type names. Only
allow short names (e.g "rsa") in user-interface code and require
full SSH protocol names (e.g. "ssh-rsa") everywhere else. bz3725
ssh(1), sshd(8): 鍵タイプ名のパースをより厳格にする. ユーザー
インターフェイスのコードでのみ短い名前(例えば "rsa") を許し,
全ての箇所で完全な SSH プロトコル名 (例えば "ssh-rsa") を
要求する. bz3725
* regress: many performance and correctness improvements to the
re-keying regression test.
regress: re-keying 回帰テストのたくさんのパフォーマンスと正確性の改善.
* ssh-keygen(1): clarify that ed25519 is the default key type
generated and clarify that rsa-sha2-512 is the default signature
scheme when RSA is in use. GHPR505
ssh-keygen(1): ed25519 が生成される鍵タイプのデフォルトなことを明確に
する. また RSA が用いられる際 rsa-sha-512 がデフォルトの署名スキーム
なことを明確にする. GHPR505
* sshd(8): fix minor memory leak in Subsystem option parsing; GHPR515
sshd(8): Subsystem 設定項目の解析での小さなメモリリークを修正する;
GHPR515
* All: additional hardening and consistency checks for the sshbuf
code.
すべて: sshbuf コードに対する追加の堅牢化と一貫性の検査.
* sshd(8): reduce default logingrace penalty to ensure that a single
forgotton login that times out will be below the penalty threshold.
sshd(8): タイムアウトした単一のログイン忘れが ペナルティの閾値を
下回るようデフォルトの logingrace ペナルティを低減する.
* ssh(1): fix proxy multiplexing (-O proxy) bug. If a mux started with
ControlPersist then later has a forwarding added using mux proxy
connection and the forwarding was used, then when the mux proxy
session terminated, the mux master process would issue a bad message
that terminated the connection.
ssh(1): プロキシの多重化 (-O proxy) のバグを修正する. ControlPersist
と共に開始された多重化が, 後で多重化プロキシ接続を用いて転送が追加され,
その転送が利用されると, 多重化プロキシセッションが終了する際に
多重化マスタープロセスは接続を終了させる不正なメッセージを発行していた.
Portability
-----------
移植性
* sync contrib/ssh-copy-id to the latest upstream version.
contrib/ssh-copy-id を最新のアップストリームのバージョンに同期する.
* regress: improve portablility for some awk(1) usage (e.g. Solaris)
regress: いくつかの awk(1) 利用 (例: Solaris) での移植性を改善する
* In the contrib/redhat RPM spec file, without_openssl was previously
incorrectly enabled unconditionally.
contrib/redhat RPM spec ファイルで, without_openssl が
以前は誤って無条件に有効になっていた.
* sshd(8) restore audit call before exit that regressed in openssh-9.8
Fixes an issue where the SSH_CONNECTION_ABANDON event was not
recorded.
sshd(8): openssh-9.8 で後退した exit 前の監査呼び出しを復元する.
これにより SSH_CONNECTION_ABANDON イベントが記録されていなかった
問題を修正する.
* sshd(8): add support for class-imposed loging restrictions on FreeBSD.
Allowing auth_hostok(3) and auth_timeok(3) to control logins.
sshd(8): FreeBSD でのクラスによるログ制限のサポートを追加する.
auth_hostok(3) と auth_timeok(3) でのログインの制御が可能になる.
* Build fixes for Musl libc.
Musl ライブラリのビルドの修正.
* Fix detection of setres*id on GNU/Hurd
GNU/Hurd での setres*id の検知の修正.
2024/08/26 から仕事を再開しました
落ち着いたら副業もできるとは思います
学習もうまく継続したいですね(この1週間は仕事以外のものはやらなかった)
毎回ではないですが参加しています
2023/11 より案件をやっておらずブラブラしています. (よいお話があれば仕事しますのでなんらかの連絡方法で連絡してください)
最近は再学習もそれなりにやっているので月末にやったことなどをまとめておくといいかなと思いこのようなものを書いてみます
2024/07/01, OpenSSH 9.8p1 がリリースされました.
セキュリティ問題の修正が 2 つあり, 1 つは致命的なものです.
OpenSSH 9.8 がリリース準備中です.
重要と思える変更点は次です.
アップグレードには慎重な対応が求められる場合があるでしょう
2024/03/11, OpenSSH 9.7p1 がリリースされました.
バグ修正中心のリリースです. また今年中に DSA 署名のサポートが無効になりそうです.
OpenSSH 9.7 がリリース準備中です.
バグ修正中心のリリースとなる予定です. DSA の無効化に向けての動きがあります.
https://lists.mindrot.org/pipermail/openssh-unix-dev/2024-March/041181.html
Future deprecation notice
=========================
将来非推奨となる機能の告知
OpenSSH plans to remove support for the DSA signature algorithm in
early 2025 and compile-time disable it later this year.
OpenSSH は 2025年前半に DSA 署名アルゴリズムに対するサポートを除き,
今年(2024)の後半にコンパイル時に無効にすることを計画している.
DSA, as specified in the SSHv2 protocol, is inherently weak - being
limited to a 160 bit private key and use of the SHA1 digest. Its
estimated security level is only 80 bits symmetric equivalent.
SSHv2 プロトコルで指定された DSA は 本質的に弱い - 秘密鍵が 160 bit
に制限されていて SHA1 ハッシュを用いている. 見積もられるセキュリティレベル
は共通鍵暗号の 80 bit しかない.
OpenSSH has disabled DSA keys by default since 2015 but has retained
run-time optional support for them. DSA was the only mandatory-to-
implement algorithm in the SSHv2 RFCs[3], mostly because alternative
algorithms were encumbered by patents when the SSHv2 protocol was
specified.
OpenSSH は 2015 年以降 DSA 鍵をデフォルトで無効にしているが,
ランタイムでの(任意の)サポートは維持している. DSA は,
SSHv2 プロトコルが仕様化された際に代替のアルゴリズムが特許で阻まれていた
ため, SSHv2 RFC[3] 中で実装が必須の唯一のアルゴリズムだ.
This has not been the case for decades at this point and better
algorithms are well supported by all actively-maintained SSH
implementations. We do not consider the costs of maintaining DSA in
OpenSSH to be justified and hope that removing it from OpenSSH can
accelerate its wider deprecation in supporting cryptography
libraries.
現時点では何十年もこのような(特許による障害がある)場合は起こっておらず,
すべての活発に維持されている SSH の実装でよりよいアルゴリズムが
十分にサポートされている. 我々は OpenSSH で DSA を維持するコストが
正当化されるとは考えておらず, OpenSSH から DSA を除くことが
(DSAを) サポートしている暗号ライブラリでのより広い DSA の非推奨への加速
を期待している.
This release makes DSA support in OpenSSH compile-time optional,
defaulting to on. We intend the next release to change the default
to disable DSA at compile time. The first OpenSSH release of 2025
will remove DSA support entirely.
このリリースは OpenSSH の DSA のサポートをコンパイル時に選択可能にする.
デフォルトは有効. 我々は次のリリースでコンパイル時に DSA を無効にするのを
デフォルトにする予定だ. 2025 年の 最初の OpenSSH のリリースで DSA の
サポートを完全に無効にするつもりだ.
Changes since OpenSSH 9.6
=========================
OpenSSH 9.6 からの変更点
This release contains mostly bugfixes.
このリリースは主にバグ修正を含む.
New features
------------
新機能
* ssh(1), sshd(8): add a "global" ChannelTimeout type that watches
all open channels and will close all open channels if there is no
traffic on any of them for the specified interval. This is in
addition to the existing per-channel timeouts added recently.
ssh(1), sshd(8): すべての開いているチャンネルを監視し
指定された間隔でそのすべてについてトラフィックがなかったりら
すべての開いているチャンネルを閉じる "global" ChannelTimeout を
追加する. これは最近追加された既存のチャンネルごとの timeout に
追加される.
This supports situations like having both session and x11
forwarding channels open where one may be idle for an extended
period but the other is actively used. The global timeout could
close both channels when both have been idle for too long.
これはセッションと X11 転送のチャンネルが開かれていて 一方は
長い期間 idle だがもう一方は活発に使われている といった場合を
サポートする. global な timeout は両方が長い間 idle になると
両方を閉じる.
* All: make DSA key support compile-time optional, defaulting to on.
すべて: DSA 鍵のサポートをコンパイル時に選択可能とする. デフォルトは有効.
Bugfixes
--------
バグ修正
* sshd(8): don't append an unnecessary space to the end of subsystem
arguments (bz3667)
sshd(8): サブシステムの引数の最後に不要な空白を追加しない (bz3667)
* ssh(1): fix the multiplexing "channel proxy" mode, broken when
keystroke timing obfuscation was added. (GHPR#463)
ssh(1): 多重化する "channel proxy" モードを修正する.
キーストロークのタイミングの不明瞭化を追加した際に壊れていた.
(GHPR#463)
* ssh(1), sshd(8): fix spurious configuration parsing errors when
options that accept array arguments are overridden (bz3657).
ssh(1), sshd(8): 配列の引数を許容する設定項目が上書きされた場合に
間違った設定のパースを修正する (bz3657)
* Many fixes to manual pages and other documentation, including
GHPR#462, GHPR#454, GHPR#442 and GHPR#441.
GHPR#462 と GHPR#454, GHPR#442, GHPR#441 を含むマニュアルや
他の文書の沢山の修正.
* Greatly improve interop testing against PuTTY.
PuTTY に対する相互運用性テストのすごい改善.
Portability
-----------
移植性
* Improve the error message when the autoconf OpenSSL header check
fails (bz#3668)
autoconf の OpenSSL ヘッダーのチェックに失敗した場合の
エラーメッセージを改善する (bz#3668)
* Improve detection of broken toolchain -fzero-call-used-regs support
(bz3645).
こわれた toolchain の -fzero-call-used-regs サポートの検出を
改善する (bz3645).
* Fix regress/misc/fuzz-harness fuzzers and make them compile without
warnings when using clang16
regress/misc/fuzz-harness fuzzer を修正し, clang16 を利用時のコンパイルで
警告が出ないようにする.