「チャレンジレスポンス認証」表記の改善
challenge/response は SSH1 の用語で、keyboard-interactive は SSH2 の用語でしょうか。
印象はともかくこれが正式な表記のように思います。
man sshd_config にも下記のようにあり、すでに SSH で広く使われている用語なので、独自の名称で呼ぶことで「サーバでいうところの challenge-response のことです」「他のクライアントでいうところの challenge-response のことです」のような名称の対応関係が発生し、説明が複雑になったりユーザが混乱することはないでしょうか。
ChallengeResponseAuthentication Specifies whether to use challenge-response authentication. The argument to this keyword must be ``yes'' or ``no''. The default is ``yes''.
maya への返信
challenge/response は SSH1 の用語で、keyboard-interactive は SSH2 の用語でしょうか。
です。
keyboard-interactive は SSH_MSG_USERAUTH_REQUEST での method 名なので SSH2 での別名的に使われてますね。
challenge/response は、TIS Authentication がチャレンジ-レスポンス方式なのでそこから TTSSH が呼んだ物だと思います。
man sshd_config にも下記のようにあり、すでに SSH で広く使われている用語なので、独自の名称で呼ぶことで「サーバでいうところの challenge-response のことです」「他のクライアントでいうところの challenge-response のことです」のような名称の対応関係が発生し、説明が複雑になったりユーザが混乱することはないでしょうか。
オリジナルの ssh や SSH Communications 時代の ssh には Challenge-Response という表現は使っていない(前述のTIS Authentication, SSH2 に後から keyboard-interactive 認証が追加)ですし、 PuTTY 等の他のクライアントでも Challenge Response ではなく keyboard-interactive を使っているのが殆どで、Challenge Response はほぼ OpenSSH だけなんですよね。
また OpenSSH でも ChallengeResponseAuthentication の他に KbdInteractiveAuthenticaion という設定があり、
ssh server \ -o ChallengeResponseAuthentication=no \ -o PasswordAuthentication=no \ -o PubkeyAuthentication=no \ -o KbdInteractiveAuthentication=yesとした場合も keyboard-interactive 認証が使われます
また、PreferredAuthentications で指定するのも keyboard-interactive ですし、一般的にも ChallengeReponse 認証よりは keyboard-interactive 認証として呼ばれていると思います
doda への返信
普段使っているユーザの私の感覚としては
なので誤解のしようがないのですが、キーボードインタラクティブ=チャレンジレスポンス と読めるのがまずいということですね。
TTSSH の歴史として、SSH1 で challenge/response(TIS) だったものに、SSH2 の場合の keyboard-interactive も同じ challenge/response というくくりで扱うようにしたことから起きています。
この ticket は、UI 上の表記を修正すれば済む話ですか?それとも SSH1 と SSH2 でユーザから見た認証方式を分離する提案ということですか?
英語 ; dlg auth DLG_AUTH_METHOD_CHALLENGE1=Use challenge/response to log in(&TIS) DLG_AUTH_METHOD_CHALLENGE2=Use &challenge/response to log in(keyboard-interactive) ; dlg auth setup DLG_AUTHSETUP_METHOD_CHALLENGE=Use challenge/response to log in (SSH1:&TIS, SSH2:keyboard-interactive) 日本語 ; dlg auth DLG_AUTH_METHOD_CHALLENGE1=チャレンジレスポンス認証を使う(&TIS) DLG_AUTH_METHOD_CHALLENGE2=チャレンジレスポンス認証を使う(キーボードインタラクティブ)(&C) ; dlg auth setup DLG_AUTHSETUP_METHOD_CHALLENGE=チャレンジレスポンス認証を使う(SSH1:TIS, SSH2:キーボードインタラクティブ)(&T)
UI 上の表記の修正でいいと思います。
あと今気が付いたのですが、/auth= コマンドラインオプションでも keyboard-interactive が欲しいですね。(challenge と同じ動作)
; dlg auth DLG_AUTH_METHOD_CHALLENGE1=Use challenge/response(&TIS) to log in DLG_AUTH_METHOD_CHALLENGE2=Use keyboard-&interactive to log in ; dlg auth setup DLG_AUTHSETUP_METHOD_CHALLENGE=Use SSH1:challenge/response(&TIS) / SSH2:keyboard-interactive to log in
こんな感じでしょうか。
コマンドラインの challenge は互換性のために残さざるを得ませんね。keyboard-interactive はエイリアス(SSH2に限定しない)ということでよいと思います。
あとは、影響箇所が多そうですがドキュメントの修正をすれば大丈夫ですね。
SSH認証ダイアログでの keyboard-interactive 認証の部分が、
となっている。
この「チャレンジレスポンス認証」という表現が TTSSH にてチャンレンジ・レスポンス方式の認証の為の処理を行っているという誤解を招きかねない。
c.f. https://twitter.com/anew_lu/status/970170235562045441
実際の keyboard-interactive 認証では単なるパスワード認証の変種として使われる事が多いので、他の表現への変更を行いたい。