IT専門就活エージェントを利用する

IT就活対策
PR

暗号化の仕組みを面接で説明するには?共通鍵・公開鍵とHTTPSの役割

暗号化の仕組みを面接で説明するには 共通鍵・公開鍵・HTTPS
tennis0709closs@gmail.com
記事内に商品プロモーションを含む場合があります

暗号化の仕組みを面接で説明するなら、守る対象、鍵の使い方、HTTPSでの利用例を分けて話すのがおすすめです。

共通鍵や公開鍵という名前を覚えていても、ハッシュや電子署名との違いを問われると、説明が曖昧になりがちです。内容を隠すことと、相手や改ざんの有無を確かめることは同じではありません。

自作アプリでHTTPSを使った経験も、何を設定し、どの範囲を確認したかまで整理すると、技術の理解を伝える材料になります。

本記事では、IT就活の技術質問に備える人に向けて、暗号化の基本、共通鍵・公開鍵の違い、ハッシュと電子署名、HTTPSの役割分担、鍵管理と面接での説明方法を解説します。

【PR】IT業界専門のおすすめ就活サービス
ユニゾンキャリア
おすすめ度:
特徴
内定獲得を狙うなら圧倒的なサポートのユニゾンキャリアがおすすめ!
レバテックルーキー
おすすめ度:
特徴
高学歴&情報収集に最適。業界最大手の安心感はレバテックルーキー!
エンジニア就活
おすすめ度:
特徴
インターン参加からスカウトサービスまでエンジニア就活ならトータルサポート!

暗号化は何を守る仕組み?

暗号化は、平文を鍵に基づいて暗号文へ変換し、適切な鍵を持つ側が復号して内容を取り出す仕組みです。平文は変換前のデータ、暗号文はそのままでは内容を読み取りにくくしたデータを指します。

主に守るのは、第三者へ内容を読ませない機密性です。例えば、通信経路を流れるメッセージを盗み見られても、暗号文から元の文章を読み取ることを難しくします。

ただし、データを暗号化したというだけで、相手が正しいことや、途中で書き換えがなかったことまで一律に保証できるわけではありません。相手の認証や完全性の確認は、目的に応じた仕組みと組み合わせます。

文字の表し方を変えるエンコードとも区別が必要です。決まった変換規則で表現を戻せることと、秘密の鍵を持たない相手から内容を守ることは、目的が違います。読みにくい文字列になっただけで暗号化済みとは判断できません。

面接では「誰に読ませたくない、どのデータを守るのか」から説明しましょう。通信中のデータなのか、保存したファイルなのかを先に決めると、方式や鍵の置き場所についても話をつなげやすくなります。

応募先に合わせて技術経験の話し方を準備したい人は、IT就活に対応するエージェントの面接支援も比較してみましょう。

技術経験の伝え方を相談

共通鍵暗号と公開鍵暗号の違い

共通鍵暗号と公開鍵暗号では、暗号化と復号に使う鍵の関係が違います。ここではメッセージを相手へ届ける例で、誰がどの鍵を持つかを比べます。

  • 共通鍵暗号は同じ秘密の鍵を使う
  • 公開鍵暗号は公開鍵と秘密鍵を使い分ける

共通鍵暗号は同じ秘密の鍵を使う

共通鍵暗号では、暗号化と復号に同じ秘密の鍵を使います。送る側と受け取る側が同じ鍵を持ち、第三者にはその鍵を渡さないことが前提です。

大量のデータを保護する場面にも用いる方式で、代表例にAESがあります。ただし、方式名だけで安全性が決まるわけではなく、適切な使い方や鍵の管理も必要です。

相手と同じ鍵を使うには、どう安全に共有するかという課題があります。暗号文と秘密の鍵を誰でも読める場所へ一緒に置けば、内容を守る前提が崩れます。

説明するときは「同じ鍵だから簡単」で終えず、その鍵を誰と共有し、誰から隠すかを添えましょう。公開鍵方式と比べる軸を、鍵の関係と受渡しにそろえると違いが伝わります。

公開鍵暗号は公開鍵と秘密鍵を使い分ける

公開鍵暗号では、公開してよい公開鍵と、持ち主が秘密にする秘密鍵を組にして使います。公開鍵を見られること自体を、秘密鍵の漏えいと同じには扱いません。

公開鍵暗号による暗号化の例なら、送り手は受取人の公開鍵でメッセージを暗号化し、受取人が対応する秘密鍵で復号します。送り手へ秘密鍵を渡す必要はありません。

共通鍵は同じ秘密の鍵、公開鍵暗号の暗号化例は受取人の公開鍵で暗号化し秘密鍵で復号する
メッセージを暗号化して届ける場合の鍵の役割。

一方、その公開鍵が本当に意図した相手のものかは別途確認が必要です。また、公開鍵を使う技術には電子署名や鍵共有もあり、すべてがメッセージの暗号化という同じ操作ではありません。

面接では、まず暗号化の例に用途を限定して鍵の向きを説明し、署名や鍵共有は役割を分けて話しましょう。公開鍵のほうが常に安全、と優劣だけで整理する必要はありません。

ハッシュ・電子署名と暗号化はどう違う?

暗号化は鍵を使って内容を戻す設計、ハッシュはデータから一定長の値を得る仕組み、電子署名は署名者や改ざんの有無を検証するための仕組みです。いずれもセキュリティで使いますが、目的を同じにすると説明が混ざります。

暗号化は内容を隠す、ハッシュは値へまとめる、電子署名は署名を検証する
復号することと、照合・検証することを分ける。

暗号学的ハッシュでは、出力から元のデータを求めたり、同じ出力になる別のデータを見つけたりすることを計算上難しくします。ハッシュ値を復号して元の文章を取り出すわけではありません。

ただし、元の候補が少なければ候補のハッシュ値を計算して比べる推測は可能です。パスワード保存では、単に汎用ハッシュを一度計算するのでなく、ソルトや計算コストを考慮した適切なパスワードハッシュを使います。

電子署名は秘密鍵で作成し、対応する公開鍵で検証します。署名だけで本文を隠せるわけではなく、「秘密鍵で暗号化すること」と一般化するのも不正確です。ハッシュ値を添えるだけで、送信者が正しいと保証できるわけでもありません。

違いを聞かれたら「隠す」「値にまとめて照合する」「署名を検証する」と目的から答えましょう。その後で、元に戻す必要があるか、誰の鍵を使うかを補足すると理解を示せます。

仕組み主な目的元の内容との関係
暗号化内容を第三者へ読ませない適切な鍵で復号する
暗号学的ハッシュデータを値へまとめて照合に使う復号して戻す仕組みではない
電子署名署名者や改ざんの有無を検証する署名だけでは本文を隠さない

HTTPSでは暗号技術をどう組み合わせる?

HTTPSでは、TLSを使って相手の確認、通信の鍵の準備、通信内容の保護を組み合わせます。以下は証明書でサーバーを認証する一般的なTLS 1.3の例で、役割を分けた説明です。通信の厳密な送受信順序を示すものではありません。

証明書と署名で接続相手を確かめる

ブラウザーは、接続先から受け取る証明書などを使って、意図したサーバーへ接続しているかを確かめます。単に公開鍵を受け取っただけでは、正しい相手の鍵か判断できません。

証明書の検証では、接続先の名前、有効期間、信頼する認証局へつながる証明書の関係などを確認します。さらにTLSの署名検証によって、相手が対応する秘密鍵を使えることを確かめます。

証明書を持つことは、そのサイトの内容や事業者があらゆる意味で安全という保証ではありません。利用者のログインを確かめるアプリ側の認証とも、確認する対象が異なります。

面接では「証明書があるから安全」ではなく、接続相手の何を確かめる仕組みかを説明しましょう。通信相手の確認と、サービスへの信頼を分けるのが大切です。

鍵共有で通信に使う秘密を用意する

TLSでは、通信内容を保護する鍵を両者で用意する必要があります。ここではTLS 1.3で用いる代表的な鍵共有を例に考えます。

(EC)DHEによる鍵共有では、交換した情報とそれぞれの秘密を使って共有の秘密を得て、通信に使う鍵を導きます。秘密そのものを、そのまま相手へ送るという説明ではありません。

TLS 1.3で証明書と署名による相手確認、鍵共有、共通鍵での通信保護を組み合わせる
一般的な証明書認証の例。厳密な通信順序ではなく役割を示す。

古い方式で見られる「共通鍵をサーバーのRSA公開鍵で暗号化して送る」という鍵配送は、TLS 1.3の手順ではありません。一方、TLS 1.3でRSAの署名まで一律になくなったという意味でもありません。

HTTPSの説明では、公開鍵による暗号化と鍵共有をひとまとめにしないようにしましょう。詳しい数式を覚えるより、共有の秘密から通信の鍵を用意する役割を押さえることが先です。

共通鍵で通信内容を保護する

鍵の準備ができた後の通信データは、共通鍵を使って保護します。相手の確認で使う署名と、日々送受信するデータの保護は役割が異なります。

TLS 1.3のレコード保護は、機密性と完全性を扱う認証付き暗号(AEAD)を使います。HTTPSでは、保護された通信区間のHTTPヘッダーや本文も対象になります。

ただし、端末やサーバーで復号した後のデータ、データベースへ保存した内容まで、HTTPSが自動的に保護するわけではありません。アクセス権や保存時の保護は別に考えます。

「HTTPSを使った」と話すときは、通信中のどの区間を守り、どこから先は別の対策が必要かまで示しましょう。暗号化をアプリ全体の安全性と同一視しない説明につながります。

暗号化しても必要なデータと鍵の管理

暗号方式が適切でも、鍵の置き場所や復号後の権限を誤ると、守りたい内容へ第三者が近づけます。実装経験を説明するときは、暗号化の処理だけでなく運用上の扱いも整理しましょう。

  • 秘密鍵・共通鍵を公開しない
  • 復号後のアクセス権も管理する
  • 漏えい時の交換と復旧を考える

秘密鍵・共通鍵を公開しない

公開鍵は公開して使う一方、秘密鍵や共通鍵は秘密に扱います。名前に「鍵」が付くから全部隠す、全部共有してよい、という整理にはしません。

秘密鍵や共通鍵が漏れると、その鍵の用途に応じて復号やなりすましなどの危険につながります。ソースコードだけでなく、設定ファイル、ログ、公開資料に秘密が混ざっていないかも確認が必要です。

例えば、学習用アプリを公開するときに、動作説明のため設定を載せても、実際に使う秘密の値まで載せてよいわけではありません。削除前の履歴に残っている可能性もあります。

ポートフォリオでは処理や管理方法を説明し、秘密の値そのものは公開しないようにしましょう。GitHubへ載せる範囲を決める際も、本文だけでなく履歴を含めて点検することが大切です。

あわせて読みたい
GitHubを就活で見せる準備|README・公開設定・提出の手順
GitHubを就活で見せる準備|README・公開設定・提出の手順

復号後のアクセス権も管理する

暗号文を安全に保存していても、アプリが復号したデータを誰に見せるかは別の問題です。暗号化とアクセス権は、片方で他方を置き換える関係ではありません。

復号して利用する場面では、利用者や処理にそのデータを扱う権限があるかの判断が必要です。ログインできる利用者でも、他人の情報まで読めてよいわけではありません。

また、復号後の値をログへ書き出したり、不要な画面へ表示したりすると、暗号化していた範囲の外へ内容が出ます。データの流れを追い、どこで平文になるかを意識する必要があります。

面接では、暗号化の設定と、読み書きを許す条件を分けて説明しましょう。自作アプリなら、別の利用者のデータを操作できないことまで確認したかを振り返ると、実装の話が具体的になります。

あわせて読みたい
認証の仕組みを面接で説明するには?認可・セッション・OAuthの違い
認証の仕組みを面接で説明するには?認可・セッション・OAuthの違い

漏えい時の交換と復旧を考える

鍵の管理には、作る、保管する、使う、交換する、使い終えた鍵を扱うといった段階があります。最初に暗号化できたことだけでは、継続してデータを使えるとは限りません。

鍵の紛失で復号できなくなる問題と、鍵の漏えいで第三者に使われる問題は別です。復旧に必要な鍵の保管と、その保管先を不正に使わせない対策を両方考えます。

漏えいが疑われる場合は、影響範囲を調べ、鍵の交換や失効など用途に合う対応を検討します。鍵を交換するだけで、すでに流出した内容まで取り戻せるわけではありません。

学習経験を話す場合も、鍵を失ったときと漏れたときに何が困るかを分けて考えておきましょう。具体的な交換周期を根拠なく決めるより、利用目的や管理方針に応じて判断する姿勢が重要です。

暗号化の知識を面接で伝える方法

技術面接では、用語を長く並べるよりも、質問の範囲へ答えた後に具体例を補足すると伝わりやすくなります。概念の説明、自分が確認したこと、まだ経験していないことを切り分けて準備しましょう。

目的から方式と利用例を説明する

最初の回答では、何を守る技術かを示し、必要に応じて鍵方式と利用例へ進みます。最初から数式やアルゴリズム名を並べると、問いへの答えが見えにくくなります。

共通鍵は同じ秘密の鍵、公開鍵方式は公開鍵と秘密鍵の組を使うという違いを軸にすると、比較の条件がそろいます。その後で、HTTPSでは複数の役割を組み合わせることを補足できます。

「ハッシュとの違いは」と聞かれたなら、そこへ先に答え、TLSの詳細を一度に説明しようとしなくても構いません。用意した文章を最後まで読むことが目的ではありません。

目的、鍵の関係、身近な用途の順で短く説明し、追加質問に合わせて深めましょう。応募職種や自分の理解に合わせて、説明できる言葉へ置き換えておくのがおすすめです。

自分の理解・経験に合わせる回答例

暗号化は、第三者に内容を読ませないためにデータを変換する仕組みです。共通鍵では同じ秘密の鍵を使い、公開鍵方式では公開鍵と秘密鍵を使い分けます。HTTPSでは、相手の確認や鍵共有と、共通鍵による通信の保護を組み合わせます。

設定と確認した範囲を示す

制作経験を添えるときは、利用したサービスやライブラリと、自分が行った設定を分けます。既存機能を利用した経験でも、何を確かめたかが具体的なら説明の材料になります。

HTTPSで接続できたこと、証明書の対象名や有効期間を確認したこと、鍵の保管先を設定したことは、それぞれ異なる確認範囲です。一つを確認しただけで、ほかも検証したとは言えません。

例えば、ホスティングサービスのHTTPS機能を有効にしたなら、その操作とブラウザーで見た結果を述べます。自分で暗号方式を実装したかのように説明する必要はありません。

設定項目、確認方法、得られた結果を対応付けて話しましょう。公開できる記録を残す場合も、秘密の値や個人情報を見せずに、判断した内容が分かる形に整えることが大切です。

自分の理解・経験に合わせる回答例

学習用アプリでは、利用サービスのHTTPS機能を設定し、公開URLへ接続して証明書の対象名と有効期間を確認しました。暗号方式の実装はサービス側の機能を利用しています。

未経験の範囲を区別して答える

概要を学んだ段階と、設定して動かした段階、運用で問題へ対応した段階は同じではありません。質問が自分の経験を超えたときも、その境界を示せます。

暗号化の原理を説明できることと、本番環境の鍵管理や障害対応を経験していることは別です。未経験の運用について、実際に担当したような回答を用意する必要はありません。

分からない点は、どこまで理解していて、何をまだ確認していないかを述べます。そのうえで、使用する製品の公式資料や設定を調べるなど、次に確かめる対象を具体化できます。

未経験の範囲を曖昧に広げず、今説明できる根拠と次の学習をつなげましょう。応募先に合う経験の伝え方を練習したい場合は、IT就活向けの面接支援も比較して活用できます。

自分の理解・経験に合わせる回答例

鍵の種類とHTTPSの役割分担は学習しましたが、本番の鍵交換や漏えい対応は未経験です。まず利用するサービスの鍵管理機能と運用手順を確認したいと考えています。

技術経験の伝え方を相談

参考資料

IT就活大学では「IT業界への就職を目指す就活生」を対象に
キャリア選択に役立つ情報を発信しています。

無料でみれるコンテンツのみを配信していますので、
就活生がIT業界の就職で迷わないように拡散をお願いします。
IT就活解説記事
IT就活のいろはを解説!

View More

ABOUT ME
IT就活大学
IT就活大学
IT就活で落単しないために
キャリアを学べるWebサイト
IT就活のWebマーケティング領域を支援してきました。

よくあるプログラミングスクールをはじめたら「月収100万円」みたいな嘘のマーケティング活動をしている会社に嫌気が指す思いでいたので、当ブログを設立。

未来を担う学生が、大人に食い物にされないように、「IT就活における社会の真理」をお伝えするブログです。
記事URLをコピーしました