セキュリティ

512ビットのRSAキーは1000円程度の費用をかければ数十時間で解読できてしまう



メールのなりすましを防ぎ、正しい人物から送信されたことを証明する仕組みとして「DKIM」がありますが、DKIMの署名に使用されるRSAキーが短いと簡単に解読されてしまうことをエンジニアのアンドレアス・ウルフ氏が解説しています。

How We Cracked a 512-Bit DKIM Key for Less Than $8 in the Cloud
https://dmarcchecker.app/articles/crack-512-bit-dkim-rsa-key


DKIMなど、メールのなりすましや改ざんを防ぐ仕組みについては以下の記事で解説しています。

メールを正しく送信するために必要な「SPF」「DKIM」「DMARC」とは一体どんなものなのか? - GIGAZINE


ウルフ氏は上位100万サイトを調査し、1700以上のサイトが1024ビット未満のRSAキーを使用している事を発見。そのうちの1つである「redfin.com」のキーを実際に解読してみることにしました。「redfin.com」では以下の通り、RSA方式で512ビットの長さのキーが設定されていました。


キーはBase64方式でエンコードされているため、ウルフ氏はデコードして公開鍵の係数と指数を取得。RSA暗号では「1070958……98119」で表される係数を2つの素因数に分解することで秘密鍵を入手することが可能です。


ウルフ氏はクラウドサービスを使用して、「CADO-NFS」というオープンソースの素因数分解ツールで素因数分解を実施。素因数分解にはAMD EPYC 7003のvCPU8個のマシンで約86時間かかったとのこと。より強力なPCを使用したり、タスクを複数のPCに分割したりすることで、より短い時間で素因数分解することも可能だとウルフ氏は語っています。


ウルフ氏は2つの素因数を元に秘密鍵を作成しました。こうして512ビットのRSAキーは数十時間程度で解読されてしまったというわけです。


実際に上記の秘密鍵でメールを署名してさまざまなメールサービスにメールを送信してみたところ、「ヤフーメール」「Mailfence」「Tuta」という3つのサービスでは「正当な署名」として検証を突破してしまいました。一方、「Gmail」「Outlook」「Zoho」「Fastmail」「Proton Mail」「GMX」「OnMail」などのサービスでは1024ビット未満のRSAキーで生成されたDKIM署名を拒否する設定となっており、無事に検証に失敗することが確認できたとのこと。

ウルフ氏は「30年前であれば512ビットのRSAキーを解読するのはスーパーコンピューターでなければできない偉業でしたが、今では低コスト・短時間で解読できてしまいます。メールサービスは1024ビット未満のRSAキーによる署名を自動的に拒否する必要があります」と述べています。

なお、GmailはDKIM署名に使用するRSAキーの長さとして2048ビットを推奨しています。

この記事のタイトルとURLをコピーする

・関連記事
使用していないドメインを勝手に名乗ってメールを送信されるのを防ぐためのDNS設定まとめ - GIGAZINE

「スパム扱いされない営業メール」の書き方を総額760億円以上の営業を請け負ってきたスタートアップの創業者が伝授 - GIGAZINE

自分のメールアドレスを使ってスパムかどうか判定するSPF・DKIM・DMARCの仕組みをアニメーションで理解できる「Learn and Test DMARC」レビュー - GIGAZINE

Gmailがメールを1日5000件以上送信するユーザーに「購読解除ボタンの設置」「メールの認証」などのスパム対策要件を設ける - GIGAZINE

メールクライアントごとにHTMLメールで使用できる機能を一目でわかる形式でまとめてくれるサイト「Can I email…」 - GIGAZINE

in ソフトウェア,   セキュリティ, Posted by log1d_ts

You can read the machine translated English article here.