"ssh-rsa"の意味がわからーん
PC等のリモート管理に必須の通信プロトコルを何か一つ挙げよという問いが仮にあったなら、まず間違いなくSSH(The Secure SHell)がダントツの一位になることでしょう。こずかむも迷わずSSHを挙げます。
しかし、ものすごーーくお世話になっている割に、必ずしも十二分どころから十分にすら理解されていない代表格でもあるんじゃないかなと思う出来事がありましたので、メモしておくことにします。なお、現時点でも十分な理解には全く達していないことは明白ですので(少なくとも現時点においては)下記内容を鵜呑みすることは決してせず、自分自身で一次文献などに当たるようにしてください。この駄文はあくまでこずかむが今後ちゃんと勉強する時のメモにすぎません。なお、「そんなもん公開するな」というあり得るツッコミに対しては「エライ人が教えてくださることを期待したっていいじゃん?」というリプをあらかじめ用意しておきますので、よろしくお願いいたします。(苦笑)。
前置きはこれくらいにして、そろそろ具体的な話に入ります。???となったのは、具体的には、SSHの代表的実装であるOpenSSHのバージョン8.2以降のリリースノートに登場し続けている次の記述です。
Note that the deactivation of "ssh-rsa" signatures does not necessarily
require cessation of use for RSA keys. In the SSH protocol, keys may be
capable of signing using multiple algorithms. In particular, "ssh-rsa"
keys are capable of signing using "rsa-sha2-256" (RSA/SHA256),
"rsa-sha2-512" (RSA/SHA512) and "ssh-rsa" (RSA/SHA1). Only the last of
these is being turned off by default.
SHA1の危険性はずいぶん前から指摘されていたところ(もっとも、指摘が登場した当時、こずかむはセキュリティにさほど興味を持っていなかったので、そのインパクト等を適切に評価することなく、ふーんっと流してしまっていたような記憶があります(滝汗))、上記リリースノートが引用する論文(Leurent & Peyrin 2020)によると、最近では、5万米ドル未満のコストでSHA1のハッシュ値が攻撃対象のデータと一致するデータを発見することが可能という情勢となってきているようです(ちなみに、同論文アブストによれば、同論文の著者らは、 900 Nvidia GTX 1060なGPUを借り上げてPGP暗号に対する攻撃の実証実験を行い、攻撃準備に手間取ったり、GPUの借り上げコストがもう少し高かったりしたなかで、7万5千米ドルで攻撃を成功させた、とのこと)。したがって、インターネットを通じて世界中どこからでもアクセスできるようにする(ことが多い)SSHサービスの認証の仕組みの中でSHA1を用いることはかなり危ないといえる、そこで、近い将来においてSHA1のサポートをデフォルト設定ではオフに変更する予定であることが警告され続けている、そういうことのようです。そこまではわかる。
しかし、引用箇所には、デフォルトでサポートがオフになるのは、"ssh-rsa" (RSA/SHA1)だけ、"rsa-sha2-256" (RSA/SHA256)および"rsa-sha2-512" (RSA/SHA512)という他の"ssh-rsa"鍵は変更対象外と書かれておりまして、「もしや、"ssh-rsa"には、広義のそれと狭義のそれがあるの???」と驚いてしまったという訳でありまして…。
RFC4253などの公式ドキュメントをちゃんと読めばこの辺もすっきり理解できるとは推測されます。だがしかし今はそんな”遊び”に時間を費やす余裕は全然全くないということで、とりあえずメモだけ残した、そういう次第です。なお、「こんな駄文を残す余裕はあるのかYO!?」というツッコミについては単純に拒否しますので、あしからずご了承ください(苦笑)。というわけで、皆様おはようございます!