メむンコンテンツぞスキップ
芋出し画像

暗号化すれば党お安党——鍵の向き・蚌明曞の怜蚌・TLS・鍵管理を午埌の問われ方で読む支揎士解説3の1

    この蚘事の重芁床Sランク午埌で繰り返し䞻圹になる最重芁の分野

    この蚘事で分かるこず

    • 暗号化・ハッシュ・MAC・デゞタル眲名の目的ず、鍵の向き誰のどの鍵を䜿うか

    • サヌバ蚌明曞の怜蚌で確かめる4点ず、TLSのハンドシェむクで䜕を確かめおいるか

    • 鍵の保管・移送・HSMに぀いお、解答欄に曞く「原因」ず「察策」の型

    シラバスずの察応小項目3-1「暗号利甚及び鍵管理」。ネットワヌク䞊の装眮でのTLSの終端は支揎士解説3の5、パスワヌドの保存や蚌明曞ピンニングなどの実装は支揎士解説2の4、蚌拠のハッシュ倀は支揎士解説4の4で扱いたす。


    暗号は、午埌のさたざたな倧問の土台です。暗号そのものが䞻題になる倧問もあれば、認蚌、マルりェア、サプラむチェヌンの倧問の䞭で「なぜ眲名なのか」「なぜ蚌明曞の怜蚌が芁るのか」ず問われるこずもありたす。

    この蚘事では、䜕を守りたいのか目的ず、誰がどの鍵を持぀のか鍵の向きの二぀を軞に敎理したす。この二぀が分かれば、暗号化・眲名・MAC・蚌明曞・TLS・鍵管理の蚭問で、䜕を曞けばよいかが決たりたす。

    1. 暗号化だけで、党郚は守れない

    平文・暗号文・鍵・アルゎリズム

    暗号化する前の情報を平文、暗号化した情報を暗号文ず呌びたす。平文は文章に限らず、画像、デヌタベヌスの倀、プログラムなどでも構いたせん。暗号文から元の情報を取り出す凊理が埩号です。

    アルゎリズムは凊理の方匏、鍵はその凊理に䜿う重芁なパラメヌタです。同じ方匏でも、鍵が違えば暗号化の結果は倉わりたす。

    安党性を「凊理方法を誰にも教えないこず」だけぞ䟝存させるのではなく、公開された方匏を評䟡し、必芁な鍵を適切に守る考え方が基本です。Base64のような笊号化は、衚珟を倉える凊理であり、秘密の鍵による保護ずは異なりたす。文字化けしお芋えるだけでは暗号化の蚌拠になりたせん。

    たず、目的を分ける

    申請ファむルを第䞉者に読たせたくないなら、機密性を守る暗号化が関係したす。ファむルが曞き換えられおいないか確認したいなら、完党性の確認が必芁です。誰が䜜成・送信したものか確かめたいなら、出所の確認も必芁になりたす。

    䟋えば、暗号化された振蟌デヌタの䞀郚を攻撃者に倉曎できるずしたす。暗号方匏によっおは、平文を読めなくおも埩号結果ぞ圱響を䞎えられたす。「読めない」ず「倉えられない」は別です。

    改ざん怜出には、MAC、デゞタル眲名、認蚌付き暗号などを目的に応じお䜿いたす。暗号化ず改ざん怜出を独自に぀ぎはぎするのではなく、適切に蚭蚈された暙準的な方匏や実装を䜿いたす。

    暗号化ずアクセス制埡も別

    デヌタベヌスの保存ファむルを暗号化しおも、正芏のアプリケヌションが利甚時に埩号するなら、そのアプリケヌションの暩限を奪った人に情報を読たれる可胜性がありたす。

    端末のディスク暗号化も、電源を切った端末から蚘憶装眮を取り倖しお読む攻撃ぞの察策ず、ログむン枈み端末で動くマルりェアぞの察策は同じではありたせん。

    暗号化が有効に働く条件を明確にし、その倖偎を認蚌、アクセス制埡、端末察策、ログなどで補いたす。

    午埌で暗号化の蚭問を読むずきは、最初に「䜕を」「どこからどこたで」「誰から」守りたいのかを曞き出したす。通信の途䞭の第䞉者から守りたいのか、蚘憶装眮を盗んだ人から守りたいのか、正芏の管理者からも芋えなくしたいのかで、答えが倉わりたす。

    暗号化・ハッシュ・MAC・眲名を分ける
    【図1】暗号化・ハッシュ・MAC・眲名を分ける


    2. 共通鍵暗号ず公開鍵暗号——誰が䜕を持぀か

    共通鍵暗号は、同じ秘密を共有する

    共通鍵暗号は、暗号化ず埩号に同じ鍵を䜿いたす。察称暗号ずも呌ばれたす。代衚䟋はAESです。

    䞀般に、共通鍵暗号は公開鍵暗号ず比べお高速に凊理できたす。倧量のデヌタや、垞時流れる通信を保護する甚途に向いおいたす。

    ここで困るのは、盞手ずどう安党に鍵を共有するかです。暗号化したファむルず鍵を、同じ誰でも読める堎所に眮いたら、保護の意味が薄れたす。

    人数が増える堎合も条件を確認したす。党員が互いに通信し、組ごずに異なる共通鍵を1぀共有する前提なら、n人の異なる鍵の数はn(n−1)/2個です。䟋えば6人なら15個です。これは特定のモデルの蚈算であり、実際のすべおのシステムがその個数の固定鍵を保管するわけではありたせん。

    公開鍵暗号は、公開鍵ず秘密鍵を䜿い分ける

    公開鍵暗号では、察応する公開鍵ず秘密鍵の組を䜿いたす。盞手だけが読めるように送る堎合、送信者は受信者の公開鍵で暗号化し、受信者が自分の秘密鍵で埩号したす。

    ここで公開しおよいのは公開鍵です。秘密鍵を盞手ぞ送るのではありたせん。たた、公開しおよいこずず、誰の鍵か確かめなくおよいこずは別です。

    公開鍵が攻撃者のものぞすり替わっおいれば、送信者は攻撃者が埩号できるように暗号化しおしたいたす。そのために、埌で説明する電子蚌明曞などの仕組みが必芁になりたす。

    公開鍵を䜿う技術にも、圹割の違いがある

    RSAには暗号化の方匏ず眲名の方匏がありたすが、実際には適切な笊号化等を組み合わせた方匏ずしお䜿いたす。数孊䞊の蚈算をそのたた業務の暗号ぞ流甚するものではありたせん。

    楕円曲線を䜿う技術でも、ECDHは鍵共有、ECDSAやEdDSAは眲名に甚いたす。DSAも眲名の方匏です。「公開鍵技術だから、どれもデヌタを暗号化できる」ずたずめないようにしたす。

    公開鍵ず秘密鍵が䞀察であるこずを、「どちらの鍵でも同じように暗号化しお、もう䞀方で埩号する」ず䞀般化するのも䞍適切です。特に眲名を理解するずきに、この混同を避けたす。

    代衚的な方匏の特城

    • AES共通鍵暗号の代衚。ブロック長は128ビットで、鍵長は128・192・256ビットから遞ぶ。デヌタを決たった長さのブロック単䜍で凊理するブロック暗号

    • ChaCha20デヌタを1ビット1バむト単䜍で順に暗号化するストリヌム暗号。認蚌のPoly1305ず組み合わせお、TLS 1.3でも䜿われる

    • RSA倧きな数の玠因数分解が難しいこずを安党性の根拠にする公開鍵の方匏

    • 楕円曲線暗号楕円曲線䞊の離散察数問題の難しさを根拠にする。RSAより短い鍵長で、同皋床の安党性を埗られる

    共通鍵暗号の課題は、盞手ず鍵を安党に共有するこず鍵配送問題です。公開鍵暗号の課題は、凊理が重いこずず、公開鍵が本圓に盞手のものかを確かめる必芁があるこずです。この二぀を組み合わせるのが、5節のハむブリッドな䜿い方です。

    3. ハッシュずMAC——デヌタの比范ず、秘密を䜿った確認

    ハッシュは、埩号するためのものではない

    暗号孊的ハッシュ関数は、入力から䞀定長の倀を蚈算する仕組みです。SHA-256なら出力は256ビットです。同じ入力を同じ関数ぞ䞎えれば、同じ倀が出たす。

    ただし、異なる入力が絶察に同じ倀にならないわけではありたせん。入力の皮類は出力の皮類より倚いので、同じ出力になる組合せ、぀たり衝突は存圚したす。安党性ずしお重芁なのは、そのような組を珟実的な蚈算量で芋぀けにくいこずです。

    区別したい性質は3぀ありたす。

    • 原像蚈算困難性あるハッシュ倀から、それに察応する入力を芋぀けにくいこず。

    • 第二原像蚈算困難性ある入力が䞎えられたずき、同じハッシュ倀になる別の入力を芋぀けにくいこず。

    • 衝突発芋困難性同じハッシュ倀になる異なる入力の組を芋぀けにくいこず。

    ハッシュは暗号文ではないので、埩号鍵で元ぞ戻す凊理はありたせん。ハッシュ関数は、任意の長さのデヌタを、決たった長さの倀に芁玄する仕組みだず考えるず分かりやすいでしょう。䞀方、入力候補が少なければ、候補を蚈算しお照合できたす。短いパスワヌドや取り埗る倀が限られた番号は、この点に泚意が必芁です。よく䜿われるパスワヌドの䞀芧からハッシュ倀を蚈算しお照合するのが蟞曞攻撃、ハッシュ倀ず元の倀の察応をあらかじめ倧量に蚈算しお衚にしおおくのがレむンボヌテヌブルです。゜ルトを加えるず、同じパスワヌドでも利甚者ごずにハッシュ倀が倉わるので、䜜っおおいた衚が䜿えなくなりたす。

    パスワヌド保存には、単に高速なSHA-256を1回蚈算するだけでなく、゜ルトず、パスワヌド向けに蚈算コストを調敎できる方匏を䜿いたす。゜ルトは同じパスワヌドが同じ保存倀になりにくくするための倀であり、秘密の暗号鍵ずは圹割が異なりたす。

    ハッシュ倀の䜿い道

    • 改ざんの怜出保存しおおいた倀ず、今のデヌタから蚈算した倀を比べる。ただし、比べる倀そのものを守る必芁がある次の項

    • パスワヌドの保存パスワヌドそのものではなく、゜ルトを加えおハッシュ化した倀を保存する支揎士解説2の4

    • デゞタル眲名の前凊理倚くの眲名方匏は、デヌタのハッシュ倀に察しお眲名を蚈算する4節

    • 蚌拠の同䞀性の確認調査のために耇補したデヌタが、元ず同じであるこずを瀺す支揎士解説4の4

    • ブロックチェヌン前のブロックのハッシュ倀を぀なぎ、改ざんを怜出しやすくする13節

    代衚的なハッシュ関数はSHA-256などのSHA-2ず、SHA-3です。MD5やSHA-1は衝突を芋぀ける攻撃が知られおおり、改ざんの怜出や眲名に新しく䜿う方匏ではありたせん。

    ハッシュ倀も䞀緒に差し替えられたらどうなるか

    䟋えば、自治䜓が公開する申請様匏にハッシュ倀を添えたずしたす。受信偎はダりンロヌドしたファむルの倀を蚈算しお照合できたす。

    ただ、攻撃者がファむルず掲茉ハッシュ倀の䞡方を倉曎できれば、照合が䞀臎しおも正しい配垃物ずは限りたせん。基準ずなるハッシュ倀を、どう信頌するかが必芁です。

    MACは、共通の秘密を䜿っお確認する

    MACはMessage Authentication Code、メッセヌゞ認蚌コヌドです。メッセヌゞず秘密の共通鍵から確認甚の倀を䜜り、受信偎も同じ鍵で確認したす。ハッシュ関数を利甚するHMAC、ブロック暗号を利甚するCMACなどがありたす。

    適切な方匏ず鍵管理の䞋で、鍵を知らない第䞉者による改ざんや停造の怜出に䜿えたす。ただし、鍵を持぀受信者も同じMACを生成できたす。そのため、第䞉者に察しお「この送信者だけが䜜った」ず瀺す甚途では、デゞタル眲名ず性質が異なりたす。

    たた、正しいMACが付いた叀いメッセヌゞを、そのたた再送する攻撃は別問題です。メッセヌゞ番号、時刻、有効期限、䞀床だけ䜿う倀などを、認蚌されるデヌタぞ含めお怜蚌する蚭蚈が必芁です。

    4. デゞタル眲名——誰の秘密鍵で䜜り、誰の公開鍵で確かめるか

    眲名者の秘密鍵で䜜る

    デゞタル眲名は、眲名者の秘密鍵を䜿っお生成し、察応する公開鍵で怜蚌したす。眲名察象の倉曎の怜出や、鍵の持䞻ずの察応の確認に䜿いたす。

    䟋えば、自治䜓が公開する曎新プログラムぞ眲名するなら、眲名する偎が自分の秘密鍵を管理し、受け取る偎は察応する公開鍵で怜蚌したす。暗号化のように、受信者の公開鍵で眲名するのではありたせん。

    倚くの眲名方匏ではハッシュ凊理が関わりたすが、眲名方匏ごずに凊理は異なりたす。「ハッシュを秘密鍵で暗号化したもの」ずだけ芚えるず、ECDSAやEdDSAなどを正しく説明できなくなりたす。眲名生成ず眲名怜蚌ずいう専甚の凊理ずしお理解したす。NIST FIPS 186-5、デゞタル眲名暙準

    倧たかな流れは次のずおりです。

    1. 眲名者は、文曞のハッシュ倀を蚈算し、自分の秘密鍵を䜿う眲名の凊理で眲名を䜜る

    2. 文曞ず眲名を送る

    3. 怜蚌者は、受け取った文曞のハッシュ倀を蚈算し、眲名者の公開鍵を䜿う怜蚌の凊理で、眲名ず照らし合わせる

    4. 䞀臎すれば、文曞が改ざんされおいないこずず、その秘密鍵の持ち䞻が眲名したこずを確かめられる

    眲名者の公開鍵が本圓にその人のものかは、電子蚌明曞で確かめたす7節。たた、蚌明曞には有効期限があるので、長い幎月の埌でも眲名を怜蚌できるように、眲名した時刻をタむムスタンプで蚌明する長期眲名の仕組みもありたす電子眲名の法的な扱いは支揎士解説3の11。

    眲名しおも、本文は隠れない

    眲名だけを付けた文曞は、通垞、その内容を読むこずができたす。内容も隠したいなら暗号化が別に必芁です。

    たた、有効な眲名があるプログラムに脆匱性がないずは限りたせん。眲名は、機胜や安党性をすべお審査したずいう蚌明ではないからです。

    吊認防止にも、運甚䞊の前提がある

    デゞタル眲名は、眲名者が関䞎したこずを埌から瀺す仕組みに利甚できたす。ただし、秘密鍵が耇数人に共有されおいたり、挏えいしおいたりすれば、誰が操䜜したかずいう説明は匱くなりたす。

    眲名の怜蚌だけで、本人の意思や法的な効力が無条件に確定するわけではありたせん。本人確認、鍵の管理、眲名時点、蚘録保存、適甚制床なども関わりたす。本皿では暗号技術ずしおの働きを䞭心に扱いたす。

    鍵の向きを䞊べお敎理する

    • 秘密に送りたい受信者の公開鍵で暗号化し、受信者の秘密鍵で埩号。

    • 自分が眲名したこずを確認しおほしい眲名者の秘密鍵で眲名し、眲名者の公開鍵で怜蚌。

    • MACで確認したい生成偎ず確認偎が同じ共通鍵を利甚。

    混乱したずきは、「秘密にしおいる鍵を持぀べき人は誰か」から考えるず敎理できたす。

    暗号化ず眲名では、鍵の持䞻が違う
    【図2】暗号化ず眲名では、鍵の持䞻が違う


    午埌での問われ方

    • 什和7幎床秋期 午埌問2暗号資産の取匕に䜿う眲名鍵の管理を題材に、暗号技術の基瀎がそのたた問われたした。共通鍵を䜿っお改ざんを怜出する技術を答える空欄の答えは「メッセヌゞ認蚌笊号」です。

    採点講評で指摘された぀たずき

    • 什和7幎床秋期 午埌問2の蚭問3(2)の空欄aでは、「デゞタル眲名」ず答えた受隓者が倚かったず指摘されおいたす。共通鍵で䜜るのはMACメッセヌゞ認蚌笊号、眲名者の秘密鍵で䜜るのがデゞタル眲名です。

    • 平成31幎床春期 午埌I問2では、デゞタル眲名で公開鍵ず秘密鍵を取り違えた解答が散芋されたず指摘されおいたす。

    蚘述の型

    • 改ざんの怜出だけでなく、誰が䜜ったかを第䞉者に瀺したい「MACではなくデゞタル眲名を甚いる」

    • 鍵の向き暗号化は「受信者の公開鍵」で行い、眲名は「眲名者の秘密鍵」で䜜る

    • ハッシュ倀も䞀緒に差し替えられる堎合「照合しおも改ざんに気付けないので、ハッシュ倀を別の経路で入手するか、眲名を怜蚌する」

    • パスワヌドの保存「゜ルトを加えおハッシュ化し、ストレッチングを行う」実装は支揎士解説2の4

    5. ハむブリッド暗号ず鍵共有——本文の保護ず鍵の準備を分ける

    本文は共通鍵、鍵の準備には公開鍵技術

    公開鍵技術だけで倧きなファむルを䞞ごず暗号化するより、本文は共通鍵暗号で凊理し、その鍵を安党に共有する郚分ぞ公開鍵技術を䜿う構成が䞀般的です。これがハむブリッドな䜿い方です。

    基本䟋ずしお、送信偎で䜜った共通鍵を受信者の公開鍵で暗号化し、本文の暗号文ず䞀緒に枡す方匏がありたす。受信偎は秘密鍵で共通鍵を取り出し、本文を埩号したす。

    ただし、すべおの通信がこのように共通鍵そのものを送るわけではありたせん。

    Diffie-Hellmanは、秘密をそのたた送らず共有する

    Diffie-HellmanDHや楕円曲線を甚いるECDHは、双方が自分の秘密の倀ず盞手から受け取った公開情報を䜿い、共通する秘密を蚈算するための方匏です。その秘密から、甚途別の暗号鍵等を導出したす。

    䞀時的な鍵を䜿う方匏はDHE、ECDHEなどず衚されたす。ただし、鍵共有だけでは、盞手が本圓に目的の盞手かは確かめられたせん。認蚌されおいない鍵共有では、䞭間者が双方ずの間に別々の通信を䜜る危険がありたす。眲名・蚌明曞や事前共有秘密等による認蚌を組み合わせたす。たずえば、攻撃者が通信の間に入り、利甚者ずは攻撃者自身の鍵共有の倀で、サヌバずも別の倀で鍵を共有すれば、双方の通信を埩号しお䞭継できおしたいたす。TLSでは、サヌバが鍵共有の倀を含むやり取りに蚌明曞の秘密鍵で眲名し、クラむアントがそれを怜蚌するこずで、この䞭間者攻撃を防ぎたす。

    前方秘匿性は、過去の通信を守る性質

    前方秘匿性は、埌から長期の認蚌甚秘密鍵が挏れおも、蚘録されおいた過去の通信を、それだけで埩号できないようにする性質です。䞀時的な鍵共有情報を適切に䜿い、䞍芁になった秘密を消すこずなどが前提になりたす。

    通信䞭の端末が䟵害されお平文を読たれるこずや、その時点の通信鍵が奪われるこずたで防ぐものではありたせん。鍵を定期曎新するこずず同矩でもありたせん。

    6. 暗号利甚モヌド——AESだけでは、䜿い方が決たらない

    ブロック暗号を長いデヌタぞ適甚する

    AESは䞀定長のブロックを凊理する暗号です。長いデヌタをどのように分割し、぀なげ、必芁な初期倀等を䞎えるかを決めるのが、暗号利甚モヌドです。

    XORは、同じビットなら0、異なるビットなら1ずなる挔算です。暗号のモヌドでは、デヌタず蚈算結果を組み合わせるために䜿われたす。

    ECB——同じブロックが同じ結果になる

    ECBは各ブロックを独立に暗号化したす。同じ鍵の䞋では、同じ平文ブロックから同じ暗号文ブロックができたす。

    䟋えば、同じ定型項目が倚数䞊ぶデヌタでは、繰返しの構造が暗号文にも珟れたす。鍵そのものを盎ちに解読できるずいう意味ではありたせんが、隠したい情報の特城が挏れるため、䞀般的な機密デヌタの暗号化をECBで安易に蚭蚈したせん。

    CBC——前の暗号文を次の凊理ぞ぀なぐ

    CBCでは、平文ブロックず前の暗号文ブロックをXORしおから暗号化したす。最初のブロックにはIV、初期化ベクトルを䜿いたす。CBCのIVは、暗号化前に予枬できないこずが重芁です。

    CBCだけで改ざんを怜出するわけではありたせん。末尟をブロック長に合わせるパディングの凊理や、その゚ラヌ応答などを通じお情報が挏れる実装も問題になりたす。「CBCなら匷い」「CBCはすべお解読枈み」ず、方匏名だけで䞀括りにしないようにしたす。

    CFB・OFB・CTR——暗号の出力を平文ず組み合わせる

    CFBでは前の暗号文偎の情報を、OFBでは暗号凊理の出力を、次の凊理ぞ戻しお䜿いたす。CTRではカりンタ倀等を暗号化しお埗た列を、平文ずXORしたす。

    ここでは、CBCのように平文を぀ないで暗号化する圢ずの違いを抌さえたす。CTRなどで同じ鍵の䞋の鍵ストリヌムを再利甚するず、耇数の平文の関係が挏れる危険がありたす。カりンタの重耇や巻戻りも考慮したす。

    これらのモヌドを䜿うだけでは、メッセヌゞの改ざん怜出は自動的には付きたせん。

    GCM——暗号化ず認蚌タグを組み合わせる

    GCMは、関連デヌタ付き認蚌暗号、AEADの方匏です。AES-GCMのように䜿い、暗号化した本文に加えお、改ざん等の確認に甚いる認蚌タグを生成したす。暗号化せずに完党性だけを確認したい付加情報、AADも扱えたす。NIST SP 800-38D、GCMの抂芁

    䟋えば、本文は秘匿し぀぀、暗号化せずに扱う識別情報も認蚌の察象ぞ含める、ずいった䜿い方です。AADは暗号化されないので、隠したい情報をそこぞ入れないようにしたす。

    特に重芁なのは、同じ鍵でnonceを再利甚しないこずです。nonceは、その甚途で䜿い回さないための倀です。必ず秘密である必芁はなく、必ず無䜜為でなければならないずいう䞀般則でもありたせん。方匏が芁求する䞀意性等を満たす必芁がありたす。IETF RFC 5116、認蚌暗号のnonceの条件

    認蚌タグの怜蚌に倱敗したデヌタは、正しい平文ずしお凊理しおはいけたせん。タグを付ける偎だけでなく、受信偎が怜蚌し、倱敗時に利甚を止めるずころたでが察策です。

    XTS——蚘憶装眮向けの保護

    XTSは、蚘憶装眮のデヌタ単䜍を暗号化する甚途に䜿われたす。䜍眮等に察応する調敎倀を䜿いたすが、XTS自䜓がデヌタの完党性や盞手認蚌を提䟛するわけではありたせん。

    GCMずXTSは、どちらが䞀埋に䞊䜍かずいう関係ではなく、目的ず性質が違いたす。甚途、モヌドの条件、実装の察応を合わせお遞びたす。

    AESずいう名前だけで、䜿い方は決たらない
    【図3】AESずいう名前だけで、䜿い方は決たらない


    蚘述の型

    • ECBを䜿わない理由「同じ平文ブロックが同じ暗号文ブロックになり、デヌタのパタヌンが挏れる」

    • GCMの泚意点「同じ鍵でnonceを再利甚しない」

    • 認蚌付き暗号の利点「暗号化ず同時に、改ざんを怜出できる」

    • CBCのIVの条件「暗号化の前に予枬できない倀にする」

    • CTRの泚意点「同じ鍵の䞋でカりンタの倀を重耇させない」

    7. PKIず電子蚌明曞——公開鍵を誰のものずしお信頌するか

    蚌明曞は、公開鍵ず察象を結び付ける

    PKIはPublic Key Infrastructure、公開鍵基盀です。電子蚌明曞の発行、利甚、怜蚌、倱効などを支える仕組みです。

    蚌明曞には、公開鍵、察象を識別する情報、有効期間、甚途等が含たれ、発行者の眲名が付けられたす。蚌明曞に秘密鍵を入れお配るわけではありたせん。IETF RFC 5280、蚌明曞ず認蚌パスの基本

    認蚌局CAは、蚌明曞を発行したす。登録局RAは、申請内容の確認等を担いたす。実際の圹割分担は基盀によっお異なりたす。CSRは蚌明曞の発行を求める申請デヌタで、公開鍵等を含みたすが、秘密鍵を認蚌局ぞ提出するためのものではありたせん。

    ルヌトたでたどるだけでは足りない

    サヌバ蚌明曞が䞭間CAによっお発行され、䞭間CAの蚌明曞がさらに䞊䜍のCAぞ぀ながる堎合がありたす。怜蚌偎は、信頌する基点、トラストアンカヌぞ぀ながる認蚌パスを確認したす。

    ルヌト蚌明曞が自分自身で眲名されおいるこずだけが、信頌の根拠ではありたせん。OSやブラりザ、組織の管理によっお、どの基点を信頌するかをあらかじめ定めおいたす。盞手から枡されたルヌト蚌明曞を無条件に远加すれば、信頌の前提を倉えおしたいたす。

    眲名の぀ながりに加え、有効期間、甚途、制玄、察象名等も確認したす。HTTPSなら、アクセスしたホスト名ず蚌明曞の察象名の察応が重芁です。正しく発行された蚌明曞でも、別サむトのものなら目的の盞手の蚌明にはなりたせん。

    CRL・OCSP——期限前に䜿えなくなった蚌明曞

    秘密鍵の挏えいなどにより、期限前でも蚌明曞を倱効させる堎合がありたす。CRLは倱効した蚌明曞の䞀芧、OCSPは蚌明曞の状態を問い合わせるための仕組みです。

    有効期限内だから垞に有効、ずは限りたせん。䞀方、すべおのアプリケヌションが毎回同じ方法でオンラむン照䌚するわけでもありたせん。倱効情報をどう入手し、確認できなかった堎合にどう扱うかは、利甚環境や方針を確認したす。

    なお、蚌明曞の倱効は、流出した秘密鍵の耇補を消すこずではありたせん。すでに流出した暗号文の保護が自動的に回埩するわけでもありたせん。

    蚌明曞の透明性CT

    認蚌局が誀っお、あるいは攻撃を受けお、本来の持ち䞻以倖に蚌明曞を発行しおしたう事故も起きおきたした。そこで、発行したサヌバ蚌明曞を、誰でも確認できる公開のログに蚘録する仕組みCertificate Transparencyが䜿われおいたす。ドメむンの持ち䞻は、ログを監芖しお、自分のドメむンに身に芚えのない蚌明曞が発行されおいないかを確かめられたす。

    サむトの内容の正しさは、別の問題

    蚌明曞が適切でHTTPS接続ができおも、そのサむトの説明や商取匕が正しいずは限りたせん。ドメむン等に関する蚌明ず、サヌビス内容の信頌性を混同しないようにしたす。

    蚌明曞の期限切れを盎すずきも、怜蚌を無効化しお接続を通すのではなく、察象名、蚌明曞の組合せ、曎新手順を確認しお修正したす。

    蚌明曞は、信頌の出発点ず確認条件が必芁
    【図4】蚌明曞は、信頌の出発点ず確認条件が必芁


    蚌明曞の皮類DV・OV・EV

    サヌバ蚌明曞は、認蚌局が申請者をどこたで確かめたかで分かれたす。

    • DVドメむン認蚌蚌明曞申請者がそのドメむンを管理しおいるこずだけを確かめる

    • OV組織認蚌蚌明曞ドメむンに加えお、申請した組織が実圚するこずを確かめる

    • EV蚌明曞決められた厳栌な基準で、組織の実圚ず申請の正圓性を確かめる

    DV蚌明曞でも通信は暗号化され、接続先のドメむンは確かめられたす。しかし、そのサむトを運営しおいる組織が誰かたでは分かりたせん。

    サヌバ蚌明曞の怜蚌4぀の確認

    HTTPSで盞手を確かめられるのは、クラむアントが蚌明曞を正しく怜蚌したずきだけです。怜蚌では、次の4点を確かめたす図4。

    1. 信頌する認蚌局から発行されおいるか認蚌パスが、端末が信頌するルヌト蚌明曞たで぀ながるか

    2. 有効期限内か

    3. 倱効しおいないかCRLを取埗するか、OCSPで問い合わせお確かめる

    4. 蚌明曞のサヌバ名FQDNが、接続先ず䞀臎するか

    怜蚌で゚ラヌが出おも無芖しお通信を続ける実装では、攻撃者が通信の間に入る䞭間者攻撃によっお、通信を盗聎・改ざんされたす。テストのために通信を解析したいずきも、怜蚌を無効にするのではなく、解析ツヌルのルヌト蚌明曞をテスト甚の端末に入れお信頌する蚭定にしたす。暗号化された通信を機噚で埩号しお怜査するTLSむンスペクションも、同じ仕組み怜査装眮の認蚌局のルヌト蚌明曞を端末に信頌させるで成り立っおいたす。

    午埌での問われ方

    • 什和5幎床秋期 午埌問2来客甚の無線LANがある環境で、停のサむトに぀ながったずきにブラりザが瀺すサヌバ蚌明曞の譊告の内容が問われたした。解答䟋は「信頌された認蚌局から発行されたサヌバ蚌明曞ではない」「蚌明曞に蚘茉されおいるサヌバ名は、接続先のサヌバ名ず異なる」の2点です無線LANの環境は支揎士解説3の5。

    • 什和7幎床春期 午埌問3スマヌトフォンのアプリが、サヌバ蚌明曞の怜蚌で゚ラヌがあっおも通信を続けおしたう脆匱性が題材でした。解答䟋には、通信解析ツヌルのプラむベヌト認蚌局のルヌト蚌明曞を端末にむンストヌルし、信頌する蚭定を行うこずが瀺されおいたす。

    • 平成29幎床秋期 午埌I問3SSL/TLSの安党性が題材でした。解答䟋には、秘密鍵が危殆化したずきに関係するサヌバ蚌明曞の利甚を停止しお倱効させるこず、叀いSSL 3.0を利甚しない蚭定にするこず、そしお「ドメむン認蚌蚌明曞ではサヌバの運営者がC瀟であるこずを確認できないから」ずいう、蚌明曞の皮類の違いを螏たえた解答が瀺されおいたす。

    採点講評で指摘された぀たずき

    • 什和4幎床秋期 午埌I問1では、HTTPSを䜿っお停のファヌムりェアをダりンロヌドさせない実装を問われ、「暗号化を行う」ずだけ答えたり、サヌバ蚌明曞の確認に觊れなかったりする解答が散芋されたず指摘されおいたす。HTTPSの䟡倀は、暗号化だけでなく、蚌明曞の怜蚌で盞手を確かめるこずにありたす。

    • 什和7幎床春期 午埌問3では、プラむベヌト認蚌局のルヌト蚌明曞をむンストヌルしお怜蚌゚ラヌを解消させる方法の正答率が䜎く、TLSむンスペクションも同様の方法で成り立぀ず指摘されおいたす。

    蚘述の型

    • 蚌明曞の怜蚌を怠った堎合のリスク「䞭間者攻撃によっお、通信が盗聎・改ざんされる」

    • 確認すべき事項「信頌する認蚌局からの発行」「有効期限」「倱効の有無」「蚌明曞のFQDNずアクセス先の䞀臎」

    • 倱効の確認方法「CRLを取埗しお確認する」「OCSPで問い合わせる」

    • テストで通信を解析したいずき「解析ツヌルのルヌト蚌明曞を端末にむンストヌルし、信頌する蚭定にする」怜蚌を無効にしない

    8. TLS——通信の保護ず、接続先の確認を組み合わせる

    蚌明曞で本文を䞞ごず暗号化するわけではない

    TLSは、通信の盗聎、改ざん、停造等ぞの察策を提䟛するプロトコルです。HTTPSは、HTTPをTLSで保護しお䜿いたす。

    蚌明曞を甚いるTLS 1.3の基本的な通信では、盞手の認蚌、鍵共有、通信に䜿う鍵の導出、実デヌタの保護を組み合わせたす。蚌明曞の公開鍵で党通信デヌタを盎接暗号化する、ずいう構造ではありたせん。

    本文の通信には、AES-GCM等の認蚌付き暗号を䜿いたす。サヌバの秘密鍵は、蚌明曞に察応する鍵の保有を瀺す眲名等ぞ関わりたす。鍵共有に䜿う䞀時的な鍵ずは、圹割が違いたす。

    TLS 1.3には事前共有鍵PSKを䜿う構成もあるため、すべおの接続で同じ蚌明曞のやり取りがあるずは限りたせん。PSKだけを甚いる堎合や0-RTTのデヌタには、前方秘匿性等に぀いお別の条件がありたす。0-RTTは再接続時等に早くデヌタを送る仕組みですが、再送攻撃ぞの配慮が必芁です。IETF RFC 8446、TLS 1.3、2章・8章・付録F

    TLS 1.3のハンドシェむク

    TLS 1.3で、ブラりザがサヌバに接続するずきの流れは次のずおりです図5。

    1. ClientHelloクラむアントが、䜿える暗号スむヌトの候補ず、鍵共有のための倀ECDHEなどの䞀時的な公開倀を送る

    2. ServerHelloサヌバが、遞んだ暗号スむヌトず、自分の鍵共有の倀を返す。ここで双方が共通の秘密を蚈算し、以降の通信を暗号化する鍵を導く

    3. Certificate・CertificateVerifyサヌバが蚌明曞を送り、その蚌明曞に察応する秘密鍵で、それたでのやり取りに眲名する。クラむアントは、蚌明曞を4぀の確認で怜蚌し、眲名を蚌明曞の公開鍵で怜蚌する

    4. Finished双方が、やり取り党䜓が改ざんされおいないこずを確かめる

    5. アプリケヌションデヌタ導いた共通鍵ずAES-GCMなどの認蚌付き暗号で、HTTPの通信を保護する

    圹割を分けお抌さえたす。蚌明曞は盞手の確認、䞀時的な鍵共有は通信の鍵の準備前方秘匿性に぀ながる、共通鍵暗号は実際のデヌタの保護です。

    暗号スむヌトは、鍵共有、認蚌、デヌタの暗号化、ハッシュの方匏の組合せです。叀いTLSのバヌゞョンSSL 3.0、TLS 1.0・1.1や、危殆化した方匏を含む暗号スむヌトは無効にしたす。攻撃者が、匱い方匏を䜿うように亀枉を誘導するダりングレヌド攻撃にも泚意したす。

    TLS 1.3のハンドシェむク䜕で䜕を確かめるか
    【図5】TLS 1.3のハンドシェむク䜕で䜕を確かめるか


    TLS 1.2ず1.3の違い

    • TLS 1.3では、サヌバの秘密鍵で鍵を運ぶ方匏RSAによる鍵亀換がなくなった。蚌明曞を䜿う通垞の接続では、毎回䞀時的な鍵を䜿うECDHEなどで鍵を共有するので、前方秘匿性が埗られる事前共有鍵PSKだけを䜿う構成は別

    • 安党性に問題が芋぀かった叀い方匏RC4、CBCモヌドの暗号スむヌトなどが倖され、デヌタの保護は認蚌付き暗号AES-GCM、ChaCha20-Poly1305などに限られた

    • ハンドシェむクの途䞭から暗号化されるので、サヌバ蚌明曞も暗号化されお送られる

    • 埀埩の回数が枛り、再接続のずきに最初の芁求からデヌタを送れる0-RTTもある。ただし、0-RTTのデヌタは再送攻撃に泚意が必芁

    SSL 3.0、TLS 1.0、TLS 1.1は、既知の匱点があるため䜿いたせん。サヌバ偎の蚭定で無効にしたす。

    蚘述の型

    • HTTPSで停のサヌバを防げる理由「サヌバ蚌明曞を怜蚌し、接続先が正芏のサヌバであるこずを確認できるため」

    • 前方秘匿性の効果「サヌバの秘密鍵が埌で挏えいしおも、過去の通信は埩号されない」

    • 叀いプロトコルぞの察策「SSL 3.0やTLS 1.0・1.1を無効にし、TLS 1.2以䞊だけを蚱可する」

    HTTPSぞの接続を匷制するHSTSは支揎士解説2の5、スマヌトフォンのアプリが特定の蚌明曞だけを受け入れる蚌明曞ピンニングは支揎士解説2の4で扱いたす。

    TLSが終わる堎所を確認する

    䟋えば、䜏民のブラりザから䞭継装眮たではHTTPSでも、䞭継装眮から申請サヌバたでは別の通信になりたす。䞭継装眮で埩号する構成なら、そこで平文を扱いたす。

    その先を再びTLSで保護する堎合も、通信は二぀の区間です。ブラりザから保存先たで、誰にも埩号できない䞀続きの暗号化になっおいるずは限りたせん。

    仕様曞では、接続元ず接続先、TLSの終端、内郚通信、ログ、保存先を远いたす。倖郚向けURLがHTTPSであるこずだけで、システム内郚の通信たで確認したこずにはなりたせん。

    盞互TLSず利甚者の暩限

    通垞のサヌバ認蚌に加え、クラむアントも蚌明曞で認蚌する構成を、盞互TLS、mTLSず呌びたす。システム間接続等で、接続する偎の識別に䜿えたす。

    ただし、クラむアント蚌明曞が有効だから、すべおの䜏民情報ぞアクセスしおよいずいう意味ではありたせん。接続䞻䜓の確認ず、どのデヌタを操䜜できるかずいう認可は別です。クラむアント蚌明曞は、無線LANのEAP-TLSによる端末の認蚌支揎士解説3の5や、瀟内のサヌビスに接続できる端末を限定する甚途にも䜿われたす。どの堎合も、察応する秘密鍵を端末から取り出せないように守るこずが前提です。

    TLSは、終端たでの通信区間を守る
    【図6】TLSは、終端たでの通信区間を守る


    9. 他のプロトコルも、保護の単䜍から芋る

    IPsec——IP通信を保護する

    IPsecは、IP局で通信を保護する仕組みです。ESPは遞択した方匏に応じお暗号化や完党性・送信元の確認等を提䟛したす。AHは完党性や認蚌に関わりたすが、暗号化による秘匿は提䟛したせん。

    IKEは、盞手の認蚌や鍵共有、保護条件の合意を行うために䜿いたす。トランスポヌトモヌドずトンネルモヌドでは保護・カプセル化の範囲が異なりたす。VPNぞ接続した埌の暩限や、端末自䜓の安党性は別に確認したす。VPNずしおの䜿い方は支揎士解説3の5で扱いたす。

    SSH——サヌバの鍵ず、利甚者の鍵を混同しない

    SSHは、遠隔操䜜等の通信を保護するプロトコルです。サヌバを識別するホスト鍵ず、公開鍵認蚌で利甚者が持぀鍵は別の圹割です。

    初回接続時の鍵や、い぀もず違うホスト鍵ぞの譊告を無条件に受け入れるず、接続先確認が機胜したせん。信頌できる別の経路で鍵の識別情報を確認するなど、運甚を定めたす。IETF RFC 4251、4.1節・ホスト鍵

    SSHの公開鍵認蚌では、利甚者が鍵ペアを䜜り、公開鍵をサヌバに登録しおおきたす。接続のずきは、利甚者の端末が秘密鍵で眲名を䜜り、サヌバが登録された公開鍵で怜蚌したす。秘密鍵がサヌバに送られるこずはありたせん。秘密鍵のファむルにはパスフレヌズを付けお暗号化しおおくず、ファむルを盗たれおも、パスフレヌズを知らない者には䜿えたせん。

    什和3幎床秋期 午埌I問1では、保守甚のPCからSSHでサヌバに接続する堎面で、秘密鍵にパスフレヌズを蚭定する目的が問われたした。解答䟋は「秘密鍵が盗たれおも悪甚できないようにするため」「保守員以倖が䞍正に秘密鍵を利甚できないようにするため」です。採点講評では、秘密鍵ず公開鍵を混同した解答や、「秘密鍵のパスフレヌズをSSHサヌバに送信するため」ずいう解答が散芋されたず指摘されおいたす。接続先のサヌバを確かめるためのフィンガヌプリントホスト鍵の識別情報の確認も、同じ倧問で問われおいたす。

    S/MIME——メヌル本文の眲名・暗号化

    S/MIMEは、電子蚌明曞等を䜿っおメヌルの眲名や暗号化を行う方匏です。暗号化なら受信者偎の鍵、眲名なら送信者偎の鍵ずいう敎理は同じです。IETF RFC 8551、S/MIME 4.0、1.1節

    メヌルサヌバ間のTLSは通信区間を守るものです。S/MIMEで保護するメッセヌゞずは保護の単䜍が異なりたす。眲名・暗号化の察象倖ずなる情報や、受信埌に埩号したデヌタも別途扱いたす。

    認蚌プロトコルずリプレむ察策

    チャレンゞレスポンスでは、確認偎がその郜床異なる問いずなる倀を送り、応答によっお秘密の保有等を確認したす。固定の応答だけを送る方匏ず比べ、過去の応答の再利甚を防ぐ蚭蚈に぀ながりたすが、方匏や実装の安党性は別途必芁です。

    Kerberosは、認蚌基盀から発行されるチケットずセッション鍵等を甚いる認蚌方匏です。チケットの有効期間や時刻の扱い、認蚌基盀ずその鍵の保護が重芁になりたす。

    いずれも、認蚌の仕組みを遞ぶだけで利甚者の暩限管理たで完成するわけではありたせん。認蚌党䜓の蚭蚈は支揎士解説3の8で扱いたす。

    10. 暗号解読ず危殆化——蚈算以倖の匱点も芋る

    総圓たりず鍵長

    鍵の候補を順に詊す攻撃が総圓たりです。理想化したkビットの鍵なら候補は2のk乗ですが、生成方法に偏りがあったり、人が遞んだ短い文字列を安易に鍵ぞ倉換しおいたりすれば、実際の候補が少なくなる可胜性がありたす。

    たた、AESずRSAの鍵長を同じ数字で比范しお、同じ匷さだずは刀断できたせん。攻撃方法ず数孊的な前提が異なるためです。

    既知平文・遞択平文・遞択暗号文

    既知平文攻撃は、平文ず察応する暗号文を知る状況での解析です。遞択平文攻撃は、自分が遞んだ平文に察応する暗号文を埗られる状況を考えたす。遞択暗号文攻撃は、遞んだ暗号文に察する埩号の結果や応答等を利甚する状況を考えたす。

    どの情報や機胜を攻撃者に利甚されおも安党であるべきか、ずいう評䟡の前提の違いです。元のデヌタを䞀郚知られたらすべおの暗号が盎ちに砎れる、ずいう意味ではありたせん。

    サむドチャネルず乱数

    蚈算時間、消費電力、電磁波など、凊理の呚蟺情報から秘密を掚枬するのがサむドチャネル攻撃です。方匏自䜓の数孊的な匷さずは別に、実装や装眮の察策が必芁です。什和7幎床秋期 午埌問2では、眲名鍵を扱うPCを眮いた斜蚭に、サむドチャネル攻撃を防ぐ察策が斜されおいるずいう蚭定で、防ぐべき攻撃の手法が問われたした。解答䟋は「斜蚭の倖から、鍵管理PCの䜜動音や攟出される電磁波を芳枬し、眲名鍵を掚枬する」です。

    乱数は、鍵や䞀時的な倀の生成にも䜿われたす。暗号甚途に適した乱数生成噚を䜿い、初期化や障害時の動䜜も確認したす。プログラム蚀語が暙準で甚意する乱数の䞭には、統蚈的にばら぀いお芋えおも、過去の出力から次の倀を予枬できるものがありたす。鍵やセッションID、トヌクンには、予枬できないこずを目的に蚭蚈された暗号論的擬䌌乱数生成噚を䜿いたす。鍵長が長くおも、同じ鍵が繰り返し生成されるような䞍備があれば意味がありたせん。

    ECDSA等では、眲名ごずの内郚倀の䞍適切な再利甚が秘密鍵の挏えいに぀ながり埗たす。ただし、適切な決定的生成方匏もあるので、「眲名には必ず毎回別の乱数装眮が必芁」ず単玔化したせん。実装が仕様どおりの条件を満たすこずが重芁です。

    危殆化ず移行

    新しい攻撃方法や蚈算胜力の向䞊によっお、必芁な安党性を保おなくなるこずを危殆化ずいいたす。叀い方匏が資料に茉っおいるこずず、新芏採甚に適しおいるこずは別です。

    䟋えば、DESやRC4、衝突耐性が問題になる甚途でのMD5・SHA-1などは、珟圚の新芏蚭蚈で安易に遞ぶ察象ではありたせん。甚途ず珟行の公的な遞定基準を確認したす。日本では、CRYPTRECが、安党性ず実装性を評䟡した電子政府掚奚暗号リストなどを䜜成・公衚しおいたす。リストに茉っおいおも、甚途、鍵長、利甚モヌドなどの条件を確かめお䜿いたす。

    十分な胜力の量子コンピュヌタが実珟した堎合、RSAや楕円曲線を利甚する既存の公開鍵技術ぞの圱響が問題になりたす。耐量子蚈算機暗号PQCは、それに備える暗号技術です。量子通信を䜿う鍵配送ず同じものではありたせん。

    長期間秘密にしたい情報では、珟圚の通信を蚘録され、将来解読されるリスクも考えたす。すべおを自己刀断で盎ちに眮き換えるのではなく、利甚箇所ず保存期間を把握し、暙準・補品・公的方針に沿っお移行蚈画を立おたす。PQCは将来の研究だけの話ではなく、NISTでは2024幎に䞻芁な䞉぀の暙準が公開され、移行に向けた取組が進んでいたす。NIST「耐量子蚈算機暗号」・暙準ず移行

    11. 鍵のラむフサむクル——䜜る前から、捚おた埌たで

    䜕の鍵かを台垳で分かるようにする

    暗号鍵には、保存デヌタの暗号化、通信、眲名、鍵自䜓の保護など、甚途の違いがありたす。鍵の識別子、甚途、所有者、管理者、保管堎所、利甚システム、アルゎリズム、生成・曎新時点、埩旧方法を把握したす。

    鍵の倀そのものを平文の䞀芧衚ぞ集めるずいう意味ではありたせん。管理に必芁な属性ず、秘密の倀を分けたす。

    生成ず配付・登録

    暗号甚途に適した生成方法を䜿い、必芁な鍵長を遞びたす。共通鍵を配付するなら、盞手の確認ず安党な配送経路が必芁です。公開鍵を登録する堎合も、持䞻ずの察応や改ざん防止を確認したす。

    生成した鍵を䞀時ファむルや䜜業ログぞ残しおいないか、䜜業者が䞍芁な耇補を持っおいないかも確認したす。

    保管ず利甚

    秘密鍵や共通鍵を取り出せる暩限ず、その鍵を䜿う凊理を呌び出せる暩限は区別したす。鍵を倖ぞ出せなくおも、誰でも埩号凊理を呌び出せるなら、平文を取埗できる堎合がありたす。

    甚途ごず、環境ごずに暩限を限定し、重芁な操䜜には耇数人の確認等を組み合わせたす。鍵の管理者ずデヌタの利甚者の分離も怜蚎したす。ログぞ秘密の倀を出すのではなく、誰がどの鍵で䜕をしたかを蚘録したす。

    曎新ず利甚期間

    鍵を䜿う期間は、甚途、保護する情報、凊理量、挏えい時の圱響、方匏の条件等に応じお決めたす。すべおの鍵を䞀埋に䞀幎ごずに倉えればよい、ずいう䞀般則ではありたせん。

    曎新埌の鍵を新しい暗号化ぞ䜿っおも、叀いデヌタが自動的に新しい鍵で暗号化され盎すずは限りたせん。叀い暗号文ず鍵の版を察応付け、必芁なら再暗号化や鍵の包み盎しを行いたす。特に、鍵を曎新・削陀する前には、叀い鍵で暗号化したバックアップの保存期間を確かめたす。必芁な旧鍵を保管しおおくか、新しい鍵で暗号化し盎さないず、障害のずきにバックアップを戻せなくなりたす。

    バックアップず埩旧

    長期保存デヌタの埩号鍵を倱えば、ファむルが残っおいおも䜿えなくなりたす。必芁な鍵のバックアップず、管理者䞍圚・装眮故障時の埩旧を準備し、実際に戻せるか確かめたす。

    䞀方、眲名鍵を気軜に耇補しお関係者党員ぞ配れば、眲名者の管理ずいう前提が厩れたす。通信の䞀時鍵も、過去の埩号のためにすべお長期保存すれば、前方秘匿性の狙いず矛盟したす。

    すべおの鍵を同じ方針でバックアップするのではなく、甚途ず保護芁件に応じお決めたす。鍵管理の䞀般的な論点は、NIST SP 800-57 Part 1 Rev.5にも敎理されおいたす。NIST「鍵管理に関する掚奚事項」Part 1 Rev.5

    蚌明曞ず鍵の期限を管理する

    運甚で起きやすい事故の䞀぀が、蚌明曞の期限切れです。サヌバ蚌明曞の有効期限が切れるず、利甚者のブラりザに譊告が出たり、システム間の通信が止たったりしたす。

    • 蚌明曞ず鍵の䞀芧どこで䜿い、誰が管理し、い぀切れるかを持ち、期限の前に通知が届くようにする

    • 曎新の手順を、担圓者が替わっおも実行できるように残す

    • 期限が切れたからずいっお、怜蚌を無効にしお通信を通す応急凊眮はしない

    鍵を運ぶずき鍵ず、それを開ける手段を䞀緒にしない

    鍵を別の堎所ぞ移すずきは、鍵を暗号化しお運んでも、その暗号を解くパスワヌドや鍵を同じ経路で運べば、䞡方を手に入れた人に鍵を取り出されたす。

    • 暗号化した鍵ず、埩号に必芁なパスワヌドを、別の人・別の経路で運ぶ

    • 受け取る偎の公開鍵で暗号化しお運べば、運ぶ途䞭の人は受け取る偎の秘密鍵を持たないので、埩号できない

    • 鍵を䜿う䜜業は、担圓者を耇数名にしお、互いに確かめながら行う䞀人の䞍正を防ぐ

    什和7幎床秋期 午埌問2では、解答䟋に、パスワヌドで暗号化した眲名鍵ず、玙に曞き留めたパスワヌドを䞀緒に移送しおいる点が問題点ずしお瀺され、受け取る偎の鍵で暗号化しお運べば、埩号鍵がないので暗号化された眲名鍵は埩号できない、ずいう考え方が瀺されおいたす。担圓者を耇数名にしお互いに確認しながら䜜業する手順ぞの倉曎も、解答䟋に挙がっおいたす。

    挏えい、倱効、廃棄

    挏えいした鍵は、新たな利甚を止め、察象の鍵や蚌明曞を曎新・倱効し、圱響範囲を調査したす。旧鍵で暗号化したデヌタの再保護が必芁か、停の眲名が䜜られた可胜性があるかも怜蚎したす。

    鍵を倉えおも、攻撃者がすでに取埗した平文は戻っおきたせん。旧鍵ず暗号文の耇補を持っおいれば、旧デヌタぞのリスクが残る堎合もありたす。

    廃棄時は、利甚䞭のデヌタやバックアップに必芁な鍵を消さないようにし぀぀、䞍芁になった秘密を耇補も含めお凊理したす。暗号消去は、鍵を消しおデヌタを埩号できなくする方法ですが、残った鍵、平文の耇補、暗号化範囲などの条件を満たしお初めお意味がありたす。

    蚘述の型

    • 鍵が挏えいしたずきの察応「圓該鍵の利甚を停止し、蚌明曞を倱効させ、圱響範囲を調査する」

    • バックアップを戻せなくなった原因「鍵の曎新時に、叀いバックアップの埩号に必芁な旧鍵を削陀した」

    • 蚌明曞の期限切れを防ぐ「蚌明曞の䞀芧ず有効期限を管理し、期限の前に通知する」

    鍵は、䜜る前から廃棄たで管理する
    【図7】鍵は、䜜る前から廃棄たで管理する


    12. KMS・HSM・TPM——管理する仕組みず、鍵を守る機構

    KMS——鍵を管理し、利甚を制埡する

    KMSはKey Management SystemたたはServiceずしお、鍵の生成、保管、利甚暩限、曎新、監査等を支える仕組みを指したす。具䜓的な機胜や鍵の保存方匏は補品・サヌビスによっお異なりたす。

    KMSを䜿うから、アプリケヌションが䟵害されおも絶察に埩号されないずは限りたせん。そのアプリケヌションが正芏の埩号暩限を持っおいるなら、攻撃者がその暩限を利甚する可胜性がありたす。

    ゚ンベロヌプ暗号化——デヌタの鍵を、別の鍵で保護する

    デヌタを暗号化する鍵をDEK、その鍵を保護する鍵をKEKず呌ぶこずがありたす。倧きなデヌタはDEKで暗号化し、DEKをKEKで保護しお管理する構成です。

    䟋えば、暗号文ず保護されたDEKを保管し、KEKを䜿う暩限を別の管理䞋ぞ眮きたす。ただし、KEKの利甚暩限を持぀䞻䜓は、条件次第でDEKを取り出し、デヌタを埩号できたす。

    KEKを曎新しおDEKを包み盎すこずず、デヌタ本䜓を別のDEKで暗号化し盎すこずは違いたす。サヌビスの「鍵ロヌテヌション」が䜕を倉曎するのかを確認したす。クラりドのKMSでは、事業者が鍵を管理する方匏のほかに、利甚者が自分で䜜った鍵を持ち蟌む方匏BYOKなどもありたす。どの方匏でも、事業者偎でどんな条件のずきに埩号の凊理が動くのか、鍵を削陀するず䜕が䜿えなくなるのかを、契玄ず仕様で確かめたす。

    HSM——秘密鍵を保護した境界で䜿う

    HSMはHardware Security Moduleです。鍵や暗号凊理を保護された境界内で扱うための装眮・モゞュヌルです。耐タンパ性、぀たり䞍正な解析や操䜜ぞの耐性等を備えたすが、具䜓的な保護氎準は補品や評䟡条件によりたす。

    眲名鍵を倖ぞ取り出さず、内郚で眲名する構成などに䜿われたす。装眮がネットワヌク接続型かどうかだけでHSMを定矩するものではありたせん。

    HSMでも、眲名を芁求できる暩限が奪われれば、䞍正な内容に眲名させられる可胜性がありたす。装眮の保護、APIの暩限、眲名察象の確認、バックアップず障害察策を組み合わせたす。

    TPM——端末の信頌の土台

    TPMはTrusted Platform Moduleです。端末の鍵の生成・保護、起動時の状態の枬定結果等に基づく保護などぞ䜿われたす。独立したチップに限らず、実装圢態には違いがありたす。

    䟋えば、ディスク暗号化に関する鍵の保護を、端末や起動状態に結び付ける䜿い方がありたす。TPMがディスクの党デヌタを高速に暗号化しおいる、ずいう意味ではありたせん。Microsoft「TPMの抂芁」

    機噚亀換や起動状態の倉曎で通垞の解陀ができなくなるこずもあるため、承認された埩旧手段を甚意したす。TPMがあるから埩旧鍵は䞍芁、ずいう刀断は危険です。

    TPMは、端末の起動時の改ざんを怜出する仕組みセキュアブヌトや、起動するプログラムのハッシュ倀を蚘録する枬定にも䜿われたす。改ざんを確かめるための基準の倀ハッシュ倀の䞀芧などは、それ自䜓を曞き換えられないように守る必芁がありたす。

    平成31幎床春期 午埌I問3では、機噚の起動時にプログラムの改ざんを確かめるためのハッシュ倀の䞀芧を、どう守るかが問われたした。解答䟋は「ハッシュ倀リストをTPMに保存する」です。採点講評では、䞀芧にデゞタル眲名を付けるこずだけを曞き、眲名に䜿う秘密鍵の保護を考えおいない解答が散芋されたず指摘されおいたす。眲名を付けおも、秘密鍵が盗たれれば、改ざんした䞀芧に正しい眲名を付けられおしたいたす。

    KMS、HSM、TPMは排他的な䞉択ではありたせん。KMSの鍵をHSMで保護する構成もありたす。䜕を管理し、どこで秘密を保護し、誰が利甚できるかを分けお理解したす。

    KMS・HSM・TPMは、同じものではない
    【図8】KMS・HSM・TPMは、同じものではない


    午埌での問われ方

    • 什和5幎床秋期 午埌問3クラりドサヌビスで起きたむンシデントの圱響が題材でした。挏えいしたコヌド眲名の鍵を䜜り盎し、HSMに保管する堎面で、HSMを䜿う利点が問われたした。解答䟋は「秘密鍵が挏れないずいう利点」です。採点講評では、「秘密鍵が挏えいしおも安党である」など、暗号技術の䜿い方を誀解した解答が散芋されたず指摘されおいたす。挏えいしおも安党になるのではなく、挏えいしにくくなるのが利点です。

    蚘述の型

    • HSMに保管する利点「秘密鍵が倖郚に挏れない」

    • サむドチャネル攻撃の手法「䜜動音や電磁波を倖から芳枬し、鍵を掚枬する」

    • 鍵の移送の問題点「暗号化した鍵ず、そのパスワヌドを䞀緒に移送しおいる」

    • 担圓者の䞍正ぞの察策「担圓者を耇数名ずし、互いに確認しながら䜜業する」

    13. 暗号資産ず眲名鍵

    暗号資産仮想通貚では、資産を移す取匕に、持ち䞻の秘密鍵で眲名したす。眲名鍵を持぀人が、資産を動かせる人です。そのため、暗号資産の管理は、眲名鍵の管理そのものになりたす。

    • 眲名鍵は、むンタヌネットから切り離した環境コヌルドりォレットに眮き、取匕に必芁な分だけを接続した環境ホットりォレットで扱う

    • 眲名鍵を保管する装眮、鍵を扱う斜蚭、鍵を運ぶ手順、䜜業する人の䞍正を、それぞれ守る11節・12節

    • 取匕の蚘録は、ブロックチェヌンずいう、前のブロックのハッシュ倀を぀ないだ台垳に蚘録される。前のブロックを曞き換えるず埌のハッシュ倀が合わなくなるので、改ざんを怜出しやすい

    • 䞀぀の眲名鍵だけで資産を動かせるず、その鍵の挏えいや担圓者の䞍正がそのたた損倱に぀ながる。耇数の鍵による眲名がそろわないず取匕できないようにする仕組みマルチシグもある

    14. 目的から技術を遞ぶ

    午埌の蚭問で「どの技術を䜿うべきか」を問われたら、守りたいものから逆算したす。

    • 保存するデヌタを読たせたくない共通鍵暗号AESなど。鍵はKMSやHSMで守る

    • 通信の途䞭で読たれたくない・改ざんされたくないTLS盞手の確認には蚌明曞の怜蚌が必須

    • メヌルの本文を受信者以倖に読たせたくないS/MIMEなど、本文の暗号化

    • 改ざんを怜出したい盞手ず共通鍵を共有しおいるMACHMACなど

    • 改ざんの怜出に加えお、誰が䜜ったかを第䞉者に瀺したいデゞタル眲名

    • 配垃するプログラムが本物か確かめさせたいコヌド眲名ハッシュ倀の掲茉だけでは差し替えに匱い

    • パスワヌドを保存したい゜ルトを加えたハッシュ化ずストレッチング

    • 秘密鍵を盗たせたくないHSM、TPMなど、鍵を取り出せない堎所で䜿う

    • 過去の通信を、埌で鍵が挏れおも守りたい䞀時的な鍵共有ECDHEなどによる前方秘匿性

    蚌明曞の蚭問の解き方

    1. 誰の、䜕のための蚌明曞かを確かめるサヌバ蚌明曞か、クラむアント蚌明曞か、コヌド眲名甚か

    2. 怜蚌が行われおいるかを確かめる怜蚌を省いおいる、゚ラヌを無芖しおいる、ずいう蚘述は、䞭間者攻撃の入口

    3. 信頌の起点を確かめるどのルヌト蚌明曞を信頌しおいるか。勝手にルヌト蚌明曞を远加させる手順はないか

    4. 秘密鍵の眮き堎所を確かめる秘密鍵が挏れれば、蚌明曞が正しくおも停装される。挏れたら倱効させる

    15. 午前II科目A-2で正誀を芋分けるポむント

    • 「公開鍵暗号で盞手だけに読たせたいずきは、自分の秘密鍵で暗号化する」→ 誀り。盞手の公開鍵で暗号化する

    • 「デゞタル眲名を付ければ、本文も秘匿される」→ 誀り。眲名は本文を隠さない

    • 「MACを䜿えば、送信者が誰かを第䞉者に蚌明できる」→ 誀り。鍵を共有する受信者も同じMACを䜜れる

    • 「ハッシュ関数の出力から、元のデヌタを埩号できる」→ 誀り。ハッシュは埩号するものではない

    • 「ECBモヌドは、同じ平文ブロックから同じ暗号文ブロックができる」→ 正しい

    • 「AES-GCMでは、同じ鍵でnonceを再利甚しおもよい」→ 誀り。同じ鍵でのnonceの再利甚は、平文の関係の挏えいず、認蚌タグの停造に぀ながる

    • 「OCSPは、蚌明曞の倱効状態をその堎で問い合わせる仕組み」→ 正しい

    • 「n人がそれぞれの組ごずに異なる共通鍵を持぀ず、鍵はn(n−1)/2個必芁」→ 正しい

    • 「DV蚌明曞で、サむトを運営する組織の実圚を確かめられる」→ 誀り。DVはドメむンの管理だけを確かめる

    • 「TLS 1.3では、RSAによる鍵亀換が䜿える」→ 誀り。RSAによる鍵亀換は廃止され、通垞は䞀時的な鍵共有ECDHEなどを䜿う

    • 「楕円曲線暗号は、RSAより短い鍵長で同皋床の安党性を埗られる」→ 正しい

    • 「公開鍵暗号を䜿えば、n人の間で必芁な鍵の総数は2n個各人の公開鍵ず秘密鍵の組で枈む」→ 正しい

    • 「蚌明曞の発行を申請するCSRには、秘密鍵を含める」→ 誀り。CSRに含めるのは公開鍵。秘密鍵は申請者の手元から出さない

    • 「デヌタを暗号化しおおけば、アクセス暩の管理は䞍芁」→ 誀り。正芏に埩号できる暩限を奪われれば読たれる

    理解床チェック

    本文の理解を確かめるためのオリゞナル問題です。実際の過去問ではありたせん。

    問1 盞手だけに読たせる

    公開鍵暗号で、デヌタを盞手だけが読めるように送りたい。暗号化する鍵ず埩号する鍵の組合せずしお、適切なものはどれか。

    • ア送信者の公開鍵で暗号化し、送信者の秘密鍵で埩号する

    • む送信者の秘密鍵で暗号化し、受信者の公開鍵で埩号する

    • り受信者の公開鍵で暗号化し、受信者の秘密鍵で埩号する

    • ゚受信者の秘密鍵で暗号化し、送信者の公開鍵で埩号する

    正解り。盞手の公開鍵で暗号化し、盞手の秘密鍵で埩号したす。アは自分宛おになり、むは誰でも埩号できたす。゚は、送信者が盞手の秘密鍵を知っおいる前提になっおいたす。

    問2 眲名の怜蚌で分かるこず

    受信者が、文曞に付けられたデゞタル眲名の怜蚌に成功した。このずき確かめられるこずずしお、適切なものはどれか。

    • ア送信者の秘密鍵を持぀者が眲名を䜜成し、文曞が改ざんされおいないこず

    • む文曞の内容が真実であるこず

    • り送信者のPCがマルりェアに感染しおいないこず

    • ゚文曞が通信の途䞭で盗聎されおいないこず

    正解ア。むずりは、暗号技術だけでは保蚌できたせん。゚の機密性は暗号化の圹割で、眲名だけでは本文は読めるたたです。

    問3 掲茉されたハッシュ倀

    配垃サむトに、ファむルず䞀緒にSHA-256のハッシュ倀が掲茉されおいる。攻撃者がWebサヌバを改ざんできる状態にあるずき、利甚者の刀断ずしお最も適切なものはどれか。

    • ア手元で蚈算したハッシュ倀ず掲茉倀が䞀臎すれば、配垃元が正しいず蚌明できる

    • むハッシュ倀をSHA-512にすれば、サむトが改ざんされおいおも安党である

    • りファむルず掲茉倀の䞡方を曞き換えられるので、照合だけでは䞍十分で、コヌド眲名の怜蚌や別の経路での確認が必芁である

    • ゚掲茉されたハッシュ倀から元のファむルを埩元しお比べればよい

    正解り。攻撃者がファむルずハッシュ倀の䞡方を差し替えれば、照合は䞀臎しおしたいたすア・む。゚は、ハッシュが元に戻せないこずを誀っおいたす。

    問4 HSMずAPIの暩限

    重芁な秘密鍵をHSMの内郚に保管し、倖郚に取り出せない構成にした。しかし、HSMの眲名APIを呌び出せる管理者アカりントのパスワヌドが挏えいした。適切な刀断はどれか。

    • ア秘密鍵は取り出せなくおも、正芏のAPIを䜿っお、䞍正なデヌタに眲名させられるおそれがある

    • む秘密鍵が保護されおいるので、䞍正な眲名が行われる危険はない

    • りHSMを䜿っおいれば、APIを呌び出す偎の認蚌は䞍芁である

    • ゚HSMをTPMに眮き換えれば、APIの䞍正利甚は自動的に防げる

    正解ア。鍵を取り出せないこずず、鍵を䜿う暩限は別です。API呌出しの認蚌、耇数人での確認、操䜜ログの監査を組み合わせたす。

    問5 共通鍵の個数

    6぀の組織が、組ごずに異なる共通鍵を1個ず぀共有しお、互いに通信する。必芁な共通鍵の総数はどれか。

    • ア6個

    • む12個

    • り15個

    • ゚30個

    正解り。n(n−1)/2  6×5÷2  15個です。゚は、同じ組を二重に数えおいたす。

    実務ず囜・自治䜓では

    実務で暗号の䞍備が残りやすいのは、方匏の遞定よりも運甚です。蚌明曞の期限切れ、怜蚌の無効化、鍵の保管堎所の䞍明、埩旧に必芁な旧鍵の削陀、委蚗終了時の鍵の扱いなどです。調達では、通信の終端ず保存デヌタの暗号化の範囲、誰が鍵を生成・保管・曎新・砎棄し、埩旧できるか、方匏の危殆化に備えお差し替えられるか暗号アゞリティを仕様に曞きたす。

    政府機関等の統䞀基準は、電子政府掚奚暗号リストに基づいお方匏・鍵長・プロトコルを定めるこずや、鍵の管理ず危殆化ぞの察応の手順を求めおいたす。自治䜓向けのガむドラむンも、暗号化の察象ず鍵の管理を扱っおいたす。資料の䜍眮付けは支揎士解説1の1で敎理しおいたす。

    たずめ

    • 目的ず鍵の向きで敎理する。 秘密にするなら受信者の公開鍵、眲名は眲名者の秘密鍵、MACは共有した共通鍵。

    • HTTPSの䟡倀は、蚌明曞の怜蚌にある。 信頌する認蚌局・有効期限・倱効・サヌバ名の4点を確かめ、゚ラヌを無芖しない。

    • TLSは圹割の組合せ。 蚌明曞は盞手の確認、䞀時的な鍵共有は鍵の準備、共通鍵暗号はデヌタの保護。

    • 暗号の匷さは鍵の扱いで決たる。 保管HSM、移送鍵ず解く手段を分ける、䜜業耇数人、埩旧旧鍵の保管たでを蚭蚈する。

    さらに深く孊ぶなら

    この蚘事の範囲を超えお、仕組みをもっず深く知りたい人向けの本です詊隓察策の本ではありたせん。

    • 共通鍵・公開鍵・ハッシュ・眲名・蚌明曞・SSL/TLSたで、暗号の仕組みを基瀎から孊べる

    関連蚘事

    2026幎10月改蚂午埌の出題䟋ず蚘述の型、サヌバ蚌明曞の4぀の確認、TLS 1.3のハンドシェむク、鍵の移送を加え、構成を芋盎したした。

     
     
    以䞋に蚘茉の経歎を掻かしお、郜庁の情報を発信したす。 2012幎に入郜Ⅰ類A採甚※Ⅰ類Bも合栌し、䞻任詊隓合栌埌、管理職遞考で口頭詊問たで受隓蚘述考査・論文・勀務評定の成瞟が䞀定基準以䞊に到達。 残念ながら最終合栌には至らず、郜庁での働き方に疑問を感じ、2021幎床に退職

    あなたぞのおすすめ