メッセージ認証
メッセージ認証はデータ(メッセージ)の改ざんの有無を確認する技術で、ハッシュ関数(メッセージダイジェスト関数)を用います。ハッシュ関数は、任意の大きさのデータから、一定長のデータ(ハッシュ値、ハッシュ符号、メッセージダイジェストという)を生成する関数で以下の特徴を持ちます。
- ハッシュ値から元のデータを得ることが困難(一方向性)
- 異なるデータから同じハッシュ値を得る(衝突)のが困難
仕組みとしては次の図を見てください。図中には書いてありませんがメッセージが送信中に改ざんされ受信者に届いても暗号化アルゴリズムとメッセージのハッシュ値を比較すれば改ざんされていることが受信者にバレます。しかしメッセージ認証では改ざんを検出できても元のデータを修復することはできない。

一般的に今はSHA-256というハッシュ関数が使われています。
またハッシュ値のように、メッセージ認証用に付与されるデータを総称してMAC(メッセージ認証符号)といいます。
MACアドレスとは別なものなので注意
ディジタル署名
ディジタル署名は、メッセージ認証に加えて送信者が「本人であること」も確かめる技術です。手順としては次の図にあります。ディジタル署名に関しては元のデータと添付して送信します。

送信者の秘密鍵を用いてるところがディジタル署名の要点です。送信者の秘密鍵で暗号化できるのは送信者本人に限られます。これによりディジタル署名には以下のような効果が得られます。
- なりすましの防止
- 否認の防止(送信者がデータ送信したのに「データを送信していない」と偽る)
PKI(Public Key Infrastructure)
ディジタル署名では署名を複合する公開鍵が通信している相手が本人であること前提としています。この前提が崩れると署名自体が成り立ちません。なので公開鍵の正当性を証明するために認証局(CA)という信頼できる第三者機関が必要になってきます。
公開鍵の正当性を証明するためにはCAに対して電子証明書(ディジタル証明証)の発行を申請します。電子証明書は公開鍵などを含む証明用のデータにCAの署名を施したもので正当性が保障されています。
このような証明書を利用し安全に公開鍵暗号を利用する仕組みをPKI(Public Key Infrastructure)という
PKIでは証明書の有効性を確認するためのCRL(証明書失効リスト)が公開されています。
また、これらの仕組みに加え時刻情報も必要となる場合があります。時刻を証明するものをタイムスタンプと呼ばれディジタル署名と同様の仕組みによって時刻が認証されます。

参考
電子証明書とCRL
電子証明書とCRL(証明書失効リスト)は、PKI(公開鍵基盤)におけるセキュリティを支える重要な要素です。電子証明書は、インターネット上での本人確認やデータのやり取りを安全に行うためのデジタル証明書で、CRLは、その電子証明書が有効期限前に失効した場合に、その情報をまとめたリストです。
電子証明書
電子証明書は、公開鍵と秘密鍵のペアを持ち、特定の人物や組織に紐づけられたデジタル情報です。主に、インターネット上での本人確認(認証)、データの暗号化、電子署名などに利用されます。
CRL(証明書失効リスト)
CRLは、電子証明書が発行された後に、何らかの理由で有効期限前に失効した場合に、その情報を記録したリストです。例えば、秘密鍵の紛失や漏洩、証明書の不正利用などが理由で失効することがあります。
タイムスタンプ(時刻認証)
タイムスタンプとは、電子データが存在した時刻と、その後改ざんされていないことを証明する技術です。電子帳簿保存法における電子取引データの保存要件の一つとしても利用されます。
CAの階層構造
CA (認証局) の階層構造とは、複数の認証局が親子関係のように連鎖し、信頼の連鎖を形成する構造のことです。最上位の認証局は「ルートCA」と呼ばれ、自己署名証明書を持ちます。その下位に「中間CA」が存在し、さらにその下位に「発行CA」や「エンドエンティティ証明書」が連なります。この構造により、証明書の信頼性が確保され、セキュリティリスクが分散されます。
