暗号化と認証とは?基本情報技術者試験の重要ポイントを解説!

更新日:2021年9月30日

暗号化と認証とは?

サイバー攻撃が高度化する一方で、テレワークの浸透などを背景にインターネットなどのコンピュータ間通信を用いる機会は増えています。このときに問題となるのが、セキュリティ対策です。

コンピュータ間通信におけるセキュリティ対策は、暗号化と認証の2つがポイントとなります。基本情報技術者試験でも、セキュリティ対策のポイントである暗号化と認証は必ず問われる範囲となります。

この記事では、基本情報技術者試験の対策として、暗号化と認証についての解説を行います。

目次

暗号化とは

暗号化とは、データを第三者から理解できない暗号文に変換することをいいます。暗号化を行うことで、たとえデータが盗聴されたり流出したりしても、データの内容を他者に知られることがなくなります。

暗号化の方法は、大きく「可逆暗号化」と「不可逆暗号化」の2つの方法があります。前者は暗号化を行ったデータを元に戻す(これを復号といいます)ことが可能である暗号化であり、後者は一度暗号化を行うと元に戻せない暗号化のことです。

前者はファイルの転送などに利用され、後者はパスワードのデータベース上での保管時などに利用されます。

現代では多数のコンピュータ間通信が行われていますが、これらの通信時にデータが流出したり、盗聴されたりするリスクが生じます。そこで、コンピュータ間通信を行う際に暗号化を行うことにより、セキュリティ上のリスクを避けることができます。

共通鍵暗号方式

以下では、可逆暗号化手法のうち、共通鍵暗号方式について解説します。

共通鍵暗号とは、暗号化と復号に同じ鍵を使う暗号化方式のことです。暗号化と復号に同じ鍵を用いるため、あらかじめ送信者と受信者は共通の鍵を保有する必要があります。代表的な暗号化手法として、DESやAESなどが挙げられます。

共通鍵暗号方式を用いたデータのやり取り流れは以下の通りです。

  • (送信者)暗号化に用いる鍵を生成
  • (送信者)鍵を受信者に送付
  • (送信者)送付データを暗号化し、受信者に送付
  • (受信者)データを受信し、鍵により復号

共通鍵暗号方式はシンプルな手法ではありますが、鍵自体をやり取りする必要があるため鍵の流出リスクがあることや、データを送る相手の数だけ鍵を作成する必要があることから、不特定多数の人にデータを送るのに向かないことから、現在のコンピュータ間通信では後述する公開鍵暗号化方式が主に用いられています。

公開鍵暗号方式

公開鍵暗号方式とは、暗号化と復号に違う鍵を使う暗号化方式のことです。主に巨大な数の素因数分解を用いたRSAや、楕円曲線暗号などの手法が用いられます。

以下で、その詳細について解説します。

公開鍵暗号方式の仕組み

公開鍵暗号方式のポイントは、暗号化に使う鍵(これを公開鍵といいます)を公開し、送信者に利用してもらうことです。暗号化に使う鍵を公開する一方で、復号に必要な鍵(これを秘密鍵といいます)は受信者のみが持っておきます。

これにより、受信したデータを復号できるのは受信者のみとなり、たとえデータが流出したとしても他者がその内容を把握することはできません。

公開鍵暗号方式を用いたデータの通信の流れは以下の通りです。

  • (受信者)データの暗号化に必要な公開鍵と、その暗号化を復号できる秘密鍵を作成する
  • (受信者)そのうち、公開鍵のみを公開する
  • (送信者)受信者の公開鍵を利用して、データを暗号化し、受信者に送付する
  • (受信者)自身のみが持つ秘密鍵で、データを復号する

公開鍵暗号方式のメリットは、秘密鍵さえ漏洩させなければ通信の秘密が破られることはないこと、そして共通鍵暗号方式のデメリットであった送信者・受信者のペアごとに鍵を作成する必要がないことです。

ディジタル署名

ディジタル署名は公開鍵暗号方式を用いた署名の手法です。ディジタル署名は、そのデータを作成したのが自分であることを示すために用いられます。

例えば、メールや公開文章に対してディジタル署名を付与することで、そのメールや文章の信頼性を高めることができます。

ディジタル署名では、自身の暗号鍵で自分が作成したデータを要約したメッセージダイジェストを暗号化することで、自身が作成したことを保証します。

具体的な流れは以下の通りです。

  • (送信者)署名の対象とするデータをハッシュ化したメッセージダイジェストを作成する
  • (送信者)メッセージダイジェストを、自身の秘密鍵で暗号化し、データとともに送付する
  • (送信者)受信したメッセージダイジェストを公開鍵で復号できれば、そのデータを作成したのは送信者自身であると判断できる。

ディジタル署名のポイントは、データを作成した本人しか持っていない秘密鍵で暗号化することにあります。

秘密鍵により暗号化されていれば、秘密鍵の漏洩がない限り作成者が必ず本人であると証明できます。

認証局

認証局は、その公開鍵を作成した人物や組織を認証するための機関です。これまで説明した通り、公開鍵暗号化方式では公開されている公開鍵で暗号化を行いますが、その公開鍵を作成したのが誰かまでは保証されていません。

そのため、悪意のある人物がある企業といつわり偽物の公開鍵を公開し、送信者をだますようなことができてしまいます。

そこで、公開鍵を作成した際に、その公開鍵を作成した人物がだれであるかを保証する必要が出てきます。この役目を担うのが、認証局(CA:Certification Authority)です。

認証局の認証を受ける場合、作成した公開鍵とその公開鍵に対応する秘密鍵の所有者情報を合わせたCSR(Certificate Signing Request)を認証局に提出する必要があります。

そのうえで、認証局が企業や組織の実在確認を実施したうえで、公開鍵の作成者を保証する証明書を交付します。公開鍵を公開する際に、合わせて証明書を提示することで、その公開鍵の作成者を保証することができます。

認証とは

認証とは、あるデータにアクセスするときにそのデータにアクセスできる人であるのかを判断するための方法のことです。認証を経ない場合、だれであってもそのデータを利用することができます。

公開されている情報であればそのような状況でも構いませんが、特定の人のみが知ってよい情報や、特定の人のみが利用できるシステムを設ける場合には、必ず利用者を特定し、利用が認められる本人であることを確認する必要があります。

特に、利用者を認証することをユーザ認証といいます。最近では、重要な情報を取り扱う場合などのユーザ認証方法として、単一情報のみでの認証だけではなく、例えばパスワードと携帯電話の所有や、指紋とICカードといったように、複数の情報で認証を行う多要素認証が用いられるケースも増えました。

主な認証方式

以下では、主な認証方式について解説します。

パスワード認証

パスワード認証は、データにアクセスするときにIDとパスワードを入力し、あらかじめ保持しているデータと突き合わせることで、本人を認証する方法です。最も基本的な認証方法であり、普段私たちが生活する中でも多くの場面でパスワード入力を求められているのではないでしょうか。

パスワード認証においては、事前に登録したパスワードと利用時に入力したパスワードを照合することで本人確認を行います。ただし、事前に登録したパスワードをそのまま保存しておくと、万一そのデータが流出した際に被害が大きくなります。

よって、事前に登録したパスワードは不可逆暗号化し、ハッシュ値として保存しておき、パスワードが流出された場合にも被害を軽減できるようにするのが一般的です。ログイン時に入力されたパスワードも同様に不可逆暗号化し、事前に登録したパスワードとハッシュ値同士で比較し、一致していることを確認することで、認証を行います。

パスワード認証は最もシンプルで一般的な認証方法ですが、パスワードを盗まれると本人以外でもアクセスできてしまうため、特に重要な情報を取り扱うような場合には、パスワード認証に加えてSMSや証明書等を用いた多要素認証などの複合的な手法を用いることが多いです。

CAPTCHA

CAPTCHAは、プログラムが自動で不正にログインすることを避けるために、読みにくい文字列などを表示し利用者に入力させることで、人間が処理を実行していることを確認する方法のことです。

インターネットを利用する中で、曲がりくねった文字列を読み取るように指示されたり、写真に写った信号機などを選択したりした経験があるのではないでしょうか。これが、CAPTCHAと呼ばれる認証方式です。

認証におけるセキュリティリスクとして、コンピュータプログラムを利用して何度もパスワードを変更しながらログインを試行し、たまたまIDとパスワードが一致することを狙う、いわゆるブルートフォース攻撃が挙げられます。ブルートフォース攻撃による認証の突破を防ぐために、CAPTCHAを用いて人間が実施していること確認するのです。

生体認証

生体認証とは、人間の指紋や目の虹彩、顔などの身体的特徴を用いて認証を行う方法のことです。

本人以外が生体認証を用いて認証を行うことは困難ですので、なりすましのリスクが低いことがメリットですが、一方で生体認証は識別を間違ってしまうリスクもあります。本人を間違って否認したり、本人以外を間違って承認してしまったりするケースがあるため、注意が必要です。

生体認証を利用する場合に確実に防がなければならないのが、上記のうち「本人以外を間違って認証してしまうケース」です。本人以外が間違って認証されてしまった場合の被害は甚大なものとなります。

よって、認証システムの基準を調整し、たとえ本人を間違って否認したとしても、本人以外を認証しないように認証基準を上げるようにするのが一般的です。

まとめ

この記事では、基本情報技術者試験を受けようとされている方に向けて、暗号化と認証に関する内容の解説を行いました。基本情報技術者試験のシラバスの中でも、セキュリティに関する内容は最重要項目として指定されています。

暗号化と認証は、セキュリティを守るための重要な技術です。基本情報技術者試験対策として、確実に押さえておくべき範囲といえるでしょう。

基本情報技術者コラム一覧へ戻る