

皆さんが普段お使いのデジタル証明書は、通信経路上での盗聴防止やコンピューター認証の役割を担っています。実は、その証明書に求められるセキュリティ要件が数年後に変わることをご存知でしょうか。
CRYPTRECの方針により、現在主流の「112ビットセキュリティ」の暗号は2030年末で利用非推奨となります。対象となるのは「RSA 2048bit」などで、これを利用したデジタル証明書は入れ替えが必要です。
対策として、より安全な「128ビットセキュリティ」以上(RSA 3072bitやECC P-256など)への移行が求められます。
本記事では、その背景と具体的な設定例を解説します。
日本の暗号技術の評価や監視を行っているCRYPTRECというプロジェクトが、政府機関などが利用する暗号技術の推奨リストを作成・更新しています。その最新の方針で現在広く使われている112ビットセキュリティの暗号方式を、2030年度末をもって非推奨とすることが示されました。
112ビットセキュリティの証明書をご利用中の場合、よりセキュリティ強度の高い証明書に入れ替える必要があります。
以下にCRYPTREC 暗号強度要件(アルゴリズム及び鍵長選択)に関する設定基準より、セキュリティ強度要件の基本設定方針を引用します。
出典: https://www.cryptrec.go.jp/list/cryptrec-ls-0003-2022r1.pdf
ある暗号方式に対して最も効率の良いアルゴリズムで\( 2^k\) 回以上計算 (攻撃) すれば鍵が見つかる時、その暗号方式は\( k\)ビットセキュリティを満たすと評価されます。現在一般的に普及しているRSA 2048bitやECC P-224は112ビットセキュリティにあたるため、2031年からは新規生成が禁止・処理は許容されるということを意味しています。
また、ここで指す許容についても注意が必要です。再びCRYPTREC 暗号強度要件(アルゴリズム及び鍵長選択)に関する設定基準から引用します。
“許容”とは、そのセキュリティ強度の暗号技術では必要なセキュリティ(暗号学的安全性)を確保するには必ずしも十分ではないレベルであると想定され得るが、その正当性を担保又は確認するための何らかの技術的又は運用的な対策やルール等(暗号技術によるものとは限らない)を併用している場合に、過去に暗号保護が施された保護済みのデータに対して復号や検証の処理を行うことを許容する期間であることを示す。
NetAttest EPSなどの弊社製品はプライベートCA局及びRADIUSサーバーとしてネットワーク認証を行う機器として広くご利用いただいておりますが、この場合は上記に例示された利用用途に該当しません。
次の128ビットセキュリティを満たすためには、鍵長をより長くしてRSA 3072bitやECC P-256に移行する必要があります。これはクライアント証明書やサーバー証明書だけでなく、CA証明書なども含まれます。
まだ4年は猶予があるし、突然利用できなくなるわけではないから今のところはそのままで…と思われるかもしれませんが、早めに暗号方式を移行すべき理由をここから解説していきます。
詳しく解説する前に、暗号方式についておさらいしてみます。
送りたい情報そのものを平文、平文を変換して第三者が読み解けないようにしたものを暗号文、平文を暗号化するときや暗号文を復号するときに使うデータのことを鍵と呼びます。
現在インターネット空間上で利用される暗号方式は共通鍵暗号と公開鍵暗号の2つに大別されます。
共通鍵暗号は文字通り送信者と受信者が同じ鍵を用いて暗号化/復号する方式です。通信する前に同じ鍵を共有する必要があるのが運用上の課題でした。
それに対して公開鍵暗号は送信者と受信者で異なる鍵を用います。便宜上、相手に情報を送る際に暗号化に使う鍵を公開鍵、自分だけが持ち復号に使う鍵を秘密鍵と呼びます[1]。
一見、公開鍵から秘密鍵を推測できそうなものですが、できないようになっているのが公開鍵暗号の技術の巧みさです。
本当に公開鍵から秘密鍵を推測できないのか疑問に思われる方もいらっしゃると思いますので、公開鍵暗号であるRSA暗号の安全性の根拠についても簡単にご紹介します。
実際のシーケンスや計算方法は省略しますが、RSA暗号は素因数分解の困難性を安全性の根拠としています。つまり、素数\( p, q\)をかけ合わせた数字を\( N\)とすると、\( p, q\)から\( N\)を計算するのは容易ですが、\( N\)から\( p, q\)を計算するのが難しいという特徴を利用しています。
例えば\( N = 21\)の場合を考えてみましょう。九九にも出てくるので\( (p, q)=(3, 7)\)ということは自明ですね。
次に\( N = 91\)の場合を考えてみましょう。小さな素数から順番に試していくと7で割り切れるので\( (p, q) = (7, 13)\)とわかります。
\begin{align} 91\div3 &= 30 \cdots 1\\ 91\div5 &= 16 \cdots 1\\ 91\div7 &= 13\\ \therefore (p, q)& = (7, 13) \end{align}
では、\( N = 2059\)のときはどうでしょうか。何回も計算してみないと答えはわからないはずです。
\begin{align} 2059 \div3 &= 686 \cdots 1 \\ 2059 \div5 &= 411 \cdots 4 \\ 2059 \div7 &= 294\cdots 1 \\ 2059 \div11 &= 187\cdots 2 \\ &\vdots \\ (p, q) &= (29, 71) \end{align}
\( N\)を作成する側は任意の素数を選んで一度乗算をするだけなので簡単ですが、\( N\)を素因数分解をする側は何回も除算することになり、大量の計算コストがかかります。コンピューターであれば人間よりも高速に解くことはできますが、桁数が大きくなると計算量は総当たりに近しい数値になってきます。
よって、\( N\)が大きければ大きいほどRSA暗号は解読されにくいと言えます。このようなパラメーターを鍵長と言い、RSA暗号では鍵長を併記して表現しています。例えば\( N\)が2048ビットの数だった場合RSA 2048bitと記載します。ちなみに、2048ビットを10進数に直すと617桁という非常に大きな数になります。
RSA暗号以外にも楕円曲線暗号などの公開鍵暗号方式は存在していますが、特定の情報を持っていれば計算は容易で、持っていなければ計算が非常に難しいという特性は同じです。
ここまで現行の暗号技術を突破するにはどれだけ計算コストがかかるかご紹介してきましたが、それでも何故鍵長を長くしないといけないのでしょうか。理由は2つあります。
RSA暗号を含む現在日常的に利用されている暗号技術は「計算量的安全性」に基づいています。これは膨大な時間をかければ解読できてしまう可能性を秘めているということを意味します。
再度RSA暗号を例に挙げますが、計算に時間をかけさえすれば\( N\)の素因数分解はいつか成功します。素因数分解が成功してしまえば暗号文を復号して内容を盗み見たり、証明書の偽造ができてしまいます。素因数分解が成功してしまう可能性は限りなくゼロに近いと証明できても、絶対に解読できないと証明しきれないのが実情です。
ムーアの法則が提唱された1965年以降、コンピューターの計算速度は日進月歩で高速化しています。過去には安全だと思われていた暗号も、コンピューターの計算速度の向上によって解読される可能性を否定できません。
更に、近年では量子コンピューターの実用化に向けた研究も活発化しています。現在のコンピューターでは困難と考えられている計算量でも、量子コンピューターなら高速で演算できてしまうことから、量子コンピューターが実用化される前に更に高セキュリティな暗号方式への移行も必要になります。
近年のRSA暗号の解読事例についてもご紹介します。
2020年には、フランスの研究者らが250桁の合成数の素因数分解に成功しています[2]。ただし、2進数に直すと829bitですのでRSA 2048bitの解読はまだ現実的ではないということになります。
また、2023年に富士通株式会社が39量子ビットの量子コンピューターシミュレーターを利用してRSA 2048bitの解読に必要な計算リソースを見積もったところ、1万量子ビットを超える性能が必要であると発表されています[3] 。量子コンピューターは通常のコンピューターよりはるかに高速に計算できることは判明していても、現時点では効率的な暗号解読は行えていません。
現時点では、現在普及している鍵長のRSA暗号を突破することはできません。
しかし、RSA暗号が発表された当時は鍵長200桁(=667bit)が推奨されていました。もしそのまま運用されていたら、攻撃が成功した可能性があると言えます。
ここからは実際にNetAttest EPSの暗号化方式を128ビットセキュリティを満たすように設定してみます。
128ビットセキュリティに対応する場合は鍵長をRSA 3072bitもしくはECC P-256に変更するだけなのですが、本記事では更に一歩踏み込んでWPA3 Enterprise 192bit modeで利用できるCA局を構築してみます。
WPA3 Enterprise 192bit modeはその名の通り192ビットセキュリティを満たす暗号方式を利用するSSIDの接続方式で、WPA3 Enterpriseの中でセキュリティレベルの高い接続方式です。
他のWPA3 Enterprise Transition modeやWPA3 Enterprise Only modeは証明書に関わる要件はありませんが、WPA3 Enterprise 192bit modeは以下の条件を満たさなければ接続できません[4]。
- 暗号化方式はRSA 3072bit[5]以上もしくはECC P-384
- 署名ハッシュアルゴリズムはSHA384
詳しくはWi-Fi Allianceの発行するWPA3 Specificationもあわせてご参照ください。
また、本記事ではCA構築までを取り扱いますが、別記事ではSSIDに接続するところまで検証していますので、あわせてご覧ください。
今回はNetAttest EPS SXモデル仮想版 v5.2.6を利用します。NetAttest EPSを仮想基盤にデプロイしサービス管理画面にアクセスします。
初回起動時のウィザードでシステム設定を行ったあと、サービスの初期設定からはカスタム設定を選択します。
RADIUS, LDAPの設定をしたあと、CAの構成画面に移行します。
今回はNetAttest EPSをルートCAとして構築します。
CA鍵と署名ハッシュアルゴリズムの項目で、ECC P-384[6], SHA384で設定します。
お手元で設定する際はRSA 3072bit以上もしくはECC P-384を選択してください。なお、NetAttest EPSはRSA 3072bitに対応していないので、RSA 4096bitに設定してください。
次にNetAttest EPSのサーバー証明書の構成に進みます。サーバー証明書もこのNetAttest EPSから発行します。
CA証明書と同様に、ECC P-384とSHA384に設定して次へを押下します。
設定内容を確認したあと、サービスの構築が開始します。
この時点で設定が反映されます。セッションタイムアウトなどでウィザードが中断してしまった場合、設定未反映になるため再度最初からウィザードをやり直す必要があります。
各端末にインポートするクライアント証明書を作成するために、プロファイルを設定していきます。
鍵長と署名ハッシュアルゴリズムの2箇所で変更が必要です。
サービス管理画面> 高度なメニュー> CA> 証明書プロファイル> 署名要求作成 でプロファイルを編集します。証明書の発行方法によって編集する部分が異なりますが、今回はNetAttest EPSのサービス管理画面から証明書ファイルを発行するので「NetAttest EPSクライアント認証証明書」を選択し、公開鍵暗号方式と鍵長を変更します。
署名要求作成欄にある「要求署名ハッシュアルゴリズム」は証明書発行時に利用されるハッシュ値のため、証明書に含まれる署名ハッシュアルゴリズムとは異なる点にご注意ください。
サービス管理画面> 高度なメニュー> CA> 証明書プロファイル> プロファイル でプロファイルを編集します。今回はNetAttest EPSのサービス管理画面から証明書ファイルを発行するので「NetAttest EPSクライアント証明書」を選択し、署名ハッシュアルゴリズムをSHA384に変更します。
EPS上にユーザーを作成してクライアント証明書を発行します。
発行した証明書をインストールして内容を確認すると、ECC P-384, 署名ハッシュアルゴリズムSHA384で作成されていることが確認できます。
現在運用されている暗号が直ちに突破される可能性は低いものの、コンピューターの性能向上や既存の解読アルゴリズムよりも更に効率の良い方法が発見される可能性もあるため、絶対とは言い切れない状態です。
また、現時点での暗号解読を諦めて暗号文の採取だけしておいて、より高度なコンピューターが完成してから解読するHarvest Now, Decrypt Laterと呼ばれる攻撃手法も存在しています。このような攻撃も存在するため、技術の進歩に先んじて暗号方式の強度をより高くしておく必要があると言えます。
特に認証局の運用変更の場合、証明書の配り直しなどで時間がかかることが予想されます。NetAttest EPSの作業は比較的簡単に終わりますので、端末更改やNetAttest EPSリプレース時などのタイミングにあわせて余裕を持った移行計画をご検討ください。
また、弊社IDaaSのSoliton OneGateもRSA 4096bitの証明書が発行できるようになっています。認証局をクラウド上で簡単に運用できたり、MDMと連携して証明書が発行できたりと便利な機能もございますので、クライアント証明書入れ替えの際にはあわせてご検討いただけますと幸いです。
過去の事例から突然利用できなくなる可能性は低いです。
非推奨になることで、2031年以降クライアント端末やサーバーが徐々に112ビットセキュリティの証明書に非対応になっていくことが予想されます。
端末からでも確認いただけますが、NetAttest EPSの管理画面での確認方法をご紹介します。
サービス管理画面の 証明書>証明書一覧 から確認したい証明書を選択すると、Subject Public Key Infoに暗号化方式と鍵長が記載されています。
2025年時点ではリスクは低いものの、対策が遅れるほど暗号化データの解読や偽造された証明書を用いて不正に認証を突破される可能性が高まります。
量子コンピューターの実用化が目前に迫っているため、お早めに移行いただくことを推奨します。
リンクは本記事作成時点での情報です。
[1]^ こちらは公開鍵暗号方式を想定した図です。必ずしも公開鍵で暗号化するものではないことにご注意ください。デジタル署名という技術では、送りたいデータと共に秘密鍵でデータを暗号化したものを第三者に送付し、第三者が公開鍵で復号することでそのデータが改ざんされていないことを確認しています。
[2]^ フランス国立情報学自動制御研究所(INRIA), Factorization of RSA-250, 2020年2月
[3]^ 富士通株式会社, 量子シミュレータを活用したRSA安全性評価に成功, 2023年1月
[4]^ OSのバージョンによっては、この条件を満たさない場合でも接続できてしまう可能性があります。
[5]^ RSA暗号で192ビットセキュリティを満たす場合、鍵長は7680bit必要と見積もられています。
[6]^ RSA暗号は鍵長が長くなると計算コストが著しく上昇してしまいます。それに対して楕円曲線暗号は短い鍵長で高ビットセキュリティが担保されることから、今回はECCを選択しました。