パスワードを忘れた? アカウント作成
15567360 story
バグ

記号から始まるパスワードによる誤動作リスク 97

ストーリー by nagazou
リスク 部門より
少し前にユーザー名を数字で登録するとバグが発生するという話題を紹介したことがあったが、似たようなことがパスワードでも発生しているようだ。@mainyさんの「Qiita」上の記事によれば、パスワードの1文字目に「~(チルダ)」を使用すると問題があるのだという。同氏によると踏み台サーバー経由でサーバーAに接続して作業をし、サーバーA上でroot権限になろうと「sudo su -」し、上記の「~.xxxxxxxxxx」のような「~」から始まる条件のパスワードを入力したらサーバーAから追い出されてしまったという(@mainyさんの記事)。

結論としては「~.」 は ssh 接続を閉じるコマンドであり、パスワードを入力しているつもりなのに、2文字目の . を入力した途端 ssh がサーバーAの接続を閉じて踏み台サーバーに戻るという現象が発生、結果としてパスワード入力中に接続が閉じられるという状況になってしまったという。なおパスワードの途中に「~.」があっても問題は無いそうだ。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2022年02月15日 18時25分 (#4200595)

    こういう説明をするからだめなんだよ。
    改行の直後でのみエスケープ文字は有効、て理解しなきゃ。
    RTFM
    The escape character must always follow a newline to be interpreted as special.

    • 正しくは「改行の直後」じゃなくて「行の先頭」だと思います.
      例えば,接続直後なら "~." って打つだけで切断されます.改行は不要です.

      openssh のman page (ネット上で見るならhttps://man.openbsd.org/ssh)を確認すると
      確かに

      The escape character must always follow a newline to be interpreted as special.

      と書いてあります.しかしよく読むと以下の記述もあります

      The escape character is only recognized at the beginning of a line.

      たぶん前者の記述は間違っています.newlineがなくても良い場合があるからmustではありません.
      後者の記述のほうがより正しい説明だと思われます.

      親コメント
    • by Anonymous Coward

      特定個人の意図と反する動作したら誤動作と言われたりするからな
      仕様通りなんだわ

      • by Anonymous Coward on 2022年02月15日 20時15分 (#4200678)

        仕様知らないやつが変なこと言ってるだけのパターンだな。
        ssh にも記号のパスワードにも何の問題もない。

        改行の直後に ~ を打つと ssh の制御コードになるのはまっとうな仕様。
        作業中に固まったら return ~. って打って強制切断とか普段から良く使うだろ。(文句言うやつは使ってないんだろうな)
        ~. で切断の他にも ~B でブレークの送信とか必要になることもある。(~C で port forward 用のメニューとかも便利)
        改行の直後に ~ を入れたい場合には ~~ と2回打てば良い。(ssh を2段踏んでれば ~~~ と3回入れる。3段なら4回)

        親コメント
  • by Anonymous Coward on 2022年02月15日 19時02分 (#4200629)

    ipmitool sol activateでも同じですが、いったん "a" とかの無害な文字を入れておいてバックスペース(CTRL+H)で消して入れなおす、という技もあったりします。

  • こんなのバグだろ (スコア:1, おもしろおかしい)

    by Anonymous Coward on 2022年02月15日 18時41分 (#4200610)

    パスワードに記号使われるなんて当然なんだから、入力中は無視するぐらいはしようよ
    酷い作りだな
    ユーザビリティのかけらもない

    • by Myrrh (49275) on 2022年02月15日 20時51分 (#4200704)

      そういうのはusabilityとは言わない。せめてuserfriendly。できればbeginner-friendlyと呼んでくれ。

      親コメント
    • by Anonymous Coward

      えーと、どれの?
      「sshがパスワード入力中か判別できないのが悪い」とでも?

      パスワードじゃなくても、行頭でチルダを単独入力したら切れるよね。
      そっちも対応せにゃならんの?

    • by Anonymous Coward

      現在、端末でパスワード受付中です、とサーバが通知してくる仕組みを設えて、sshクライアントがそれを受けてエスケープシーケンスの入力を一次停止して、ってな無駄に複雑な処理になるので無理。

      これ、サーバじゃなくて手元のsshクライアントが入力を横取りしてるだけだからな。sshクライアントの設定変更しろ。
      サーバが無反応なときにさっさと繋ぎ直しを試行するときにさっと使えて便利→Enter→~→.。

  • by Anonymous Coward on 2022年02月15日 18時19分 (#4200587)

    そういえば昔ソフトウェアフローでうっかりハマる人いましたね

    • by Anonymous Coward

      その点、telnetは^]だったので、普通に使う分には踏まなかったな。
      viに乗り換えた今では^]も多用してるけど、telnetを使ってた頃はemacsを主に使ってたし。

      • by Anonymous Coward

        シリアル通信じゃないけど、昔 rlogin か rsh で他のマシンに入っていて、vi で大文字小文字変換を連続していた、つまり、~... と打ったら logout してしまった、なんたあったな。

  • by Anonymous Coward on 2022年02月15日 18時21分 (#4200589)

    サクラチルだ

  • by Anonymous Coward on 2022年02月15日 18時55分 (#4200622)

    弊社、パスワード管理台帳をExcelで作成
    ジェネレータで作成したランダムパスワード、頭文字が「'」
    何も考えず台帳に転記してたので「'」が消えて……

    • by Anonymous Coward on 2022年02月15日 20時18分 (#4200683)

      "+"3文字をパスワードに含めようとして……

      #ATH

      親コメント
      • ATモデムの場合、+++ でコマンドモードに入りますが、
        その前後に1秒の無通信時間が必要ですし、+++は1秒以上間を開けずに送信する必要があります。
        (何も送信せずに1秒待つ→「+」送信→1秒以内に「+」送信→1秒以内に「+」送信→1秒待つ、でコマンドモードに入る)

        なので、パスワードに+++が入っていても、
        キータイプが速いなら前後の無通信時間が入らないのでコマンド判定されないし
        キータイプが遅すぎるなら、+と+の間が開いてコマンド判定されなくなるので、
        実用上問題にはならないと思います。

        親コメント
    • by Anonymous Coward

      そもそもExcelをパスワードマネージャーにするな

      • by Anonymous Coward

        Excelは一応データベース機能を含有すると称しているのだが。

        • by Anonymous Coward

          「○○としても使える。ただし一般的な○○と違って以下のような制約が~」なんてよくある話すぎる

  • たとえば日本語キーボードの場合、せめて「;」「,」「.」「/」などのホームポジションの範囲内で打てる記号は通してほしいんだよ。
    「パスワードは破られないように、英大小数字を混ぜましょう」と曰うところほど先述の記号を拒否しやがる。

  • by Anonymous Coward on 2022年02月15日 19時35分 (#4200654)

    sudo suなんてしなくても、suだけでいいじゃんって思うのだけど、なんでsudoするの?

  • by Anonymous Coward on 2022年02月15日 19時54分 (#4200664)

    openssl s_clientではRとQに特殊な意味が割り当てられているので、SMTPSの動作テストのためにメールサーバにs_clientで接続してRCPT TO:とかQUITとかのコマンドを入れるとおかしなことになったりする。

    接続に使うツールじゃなくて接続を受ける側の端末自体で発生する事象だと、vt100じゃない昔の端末では行削除がCTRL-Uじゃなくて@になってるものがあった。こういう端末でメールアドレスを入力したり@を含むパスワードを入力するにはどうすればいいのかは忘れた(sttyしかない?)。

    • by Anonymous Coward

      普通に \@ としてたけど

  • by Anonymous Coward on 2022年02月15日 20時16分 (#4200680)

    SSH 先でIPMIシリアルコンソール使っているとき、シリアルコンソール終了のつもりで~.を入れたらSSHごと切られてしまって「??」となってから、必ず-e noneつけてSSHするようになりましたよ。

    • by Anonymous Coward

      昔のRHELはsshのlogoutが貧弱で強制切断は必須だった。
      最近のは問題ないようだけど、念の為ということで普通に ~ を escape_char にしてる。

  • by Anonymous Coward on 2022年02月15日 20時19分 (#4200685)

    コマンドラインはコマンドとデータが分離してないからこんなことになる。そんなコマンドラインでなんでもやろうとするからそうなる。
    分離した仕組みが必要だよ・・・

    #一応標準入力で分離できるけどいまいち

  • by Anonymous Coward on 2022年02月15日 20時49分 (#4200703)

    ssh踏み台経由の root login を禁止するために、あえて ~. で始まるパスワードにしてたけど。
    当然、su - もできなくなるけど、sudo -i でいいと思ったから。
    苦情が多くて結局やめた。

    • by Anonymous Coward

      sshクライアント側の仕様だから、セキュアは言いすぎかな。

      改行→「~」をエスケープシーケンス扱いにしない設定のsshクライアントから繋げば通せる。

      わざわざそうするのが面倒くさいから、ちょっとした横着避けか、啓蒙程度ぐらいにはなるけど。

  • by Anonymous Coward on 2022年02月15日 21時01分 (#4200707)

    USキーボード使ってるんだが、デフォルトのキーボードレイアウトが日本語の環境触るときに発狂する

  • by Anonymous Coward on 2022年02月15日 21時33分 (#4200725)

    先頭がスペース(0x20)のパスワードを使って面倒なことなった経験はある。

    そのパスワードへの変更は受け付けられたのに、肝心のそれを使うシステムでは使えなかった。
    仕方ないのでパスワードを再度変更しようとしたら、今度はパスワード変更に必要なパスワード認証すら通らなくなっていた。
    「先頭にスペース」だったことを伝えてパスワードリセットを依頼したが、何もフォローなくリセットされただけで、パスワードに使えない文字の説明などは一切変更されなかった。

typodupeerror

UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie

読み込み中...