公開鍵暗号方式について
*平文の暗号化と復号:受信者の公開鍵で暗号化、受信者の秘密鍵で復号
平文→受信者側の鍵ペアを使用
*ディジタル署名の添付と検証:送信者の秘密鍵で暗号化、送信者の公開鍵で復号
ディジタル署名→送信者側の鍵ペアを使用
ディジタル署名を加えることで、
1. メッセージが送信者本人によって作成されたこと
2. メッセージが改ざんされていないこと
を保証できる。
1. メッセージが送信者本人によって作成されたことは、送信者の鍵ペアを使用していることで実現
2. メッセージが改ざんされていないことは、ハッシュ関数を使用していることで実現されている。
ハッシュ関数は
・同じメッセージから同じハッシュ値を生成
・異なるメッセージから異なるハッシュ値を生成
している。ハッシュ値から元のメッセージを生成できない(非可逆性)
第三者による改ざんの有無を検知することができるが、元の内容へ復元することはできない。
公開鍵が正当であることを証明する機関:認証局(CA:Certificate Authority)
SSHはTelnetやFTPと異なり、パスワード認証方式や公開鍵認証方式が利用された上での遠隔操作ができるので、セキュリティ面で安全である。
特に、公開鍵認証方式が用いられる。
サーバに接続する際には、SSHで公開鍵認証方式を活用するべき。
秘密鍵:電子署名を作る。自分のPCに保管しておく。
SSHサーバにクライアントの公開鍵を、クライアント端末にクライアントの秘密鍵を登録する。
★S/MINEについて
S/MINEは広く普及しているMINE規格に基づき、暗号セキュリティサービスを電子メッセージ通信アプリケーションに提供するプロトコル。S/MINE対応のメールソフトでは、共通鍵暗号方式と公開鍵暗号方式を併用して、いかに記述する処理を行うことができる。なお、実際にはBASE64と言われるエンコード(コード変換)処理も行われるが、本文では省略する。
★S/MINEで避けられるリスク
・メール内容の盗聴:電子メールは様々な通信経路を辿るため、技術のある人であればメールを見ることができる。S/MINEはメールを丸ごと暗号化し、情報漏洩を防ぐ。
・メール内容の改竄:S/MINEはメールを暗号化するので、盗み見られたとしても、簡単に元のメッセージがわからないようになる。そのため、内容の改竄を防ぐことができる。
・メール送信者のなりすまし:S/MINEには、メールが送信者本人から送られたメールであることを証明する「電子署名」という仕組みがある。これを見れば、メール送信者から送られた本物であることが証明される。
https://www.fenet.jp/infla/column/%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3/201/
★ハッシュ値:入力文字を少しでも変えると、全く同じハッシュ値になる
※生成されたダイジェストから、元のメッセージを復元することはできない。
ハッシュ値と公開鍵暗号方式の混合⇨ディジタル署名
★S/MINEでは、認証局(CA)が発行するディジタル証明書を用いて、公開鍵の正当性を保証する方法をとっている。
<チャレンジ問題>
メッセージの内容の機密を保持したい場合、送信者側は処理①と処理②を行い、暗号化されたメッセージと暗号化された鍵Aを生成して受信者に送付する。受信者は暗号化されたメッセージと暗号化された鍵Aを受け取り、処理④と処理⑤を行う。この時、処理①で用いられる鍵Aは共通鍵であり、処理②で用いられる鍵Bは受信者の公開鍵である。このように、暗号化処理を2回行うことにより、公開鍵暗号化方式が持つ暗号化と復号の処理に時間がかかるといった欠点を解消することができる。
また、否認を防止し、なりすましやメッセージの改竄の有無を検出したい場合は、送信者が処理③によって暗号化されたダイジェストを生成し、受信者に送付する。この時用いられている鍵Cは送信者の秘密鍵である。この時、受信者側では処理⑥を行い、両方のダイジェストが一致すれば、そのメッセージは改竄されていないことになる。
なお、処理③と処理⑥を行うだけでは、公開鍵そのものが本人のものである保証をすることはできない。S/MMEでは、認証局(CA)が発行するディジタル証明書を用いて、公開鍵の正当性を保証する方法をとっている。
<要点まとめ>
★ハッシュ値⇨メッセージが改竄されていないことを確認できる(完全性の確認)
★公開鍵暗号方式⇨秘密鍵を持つ本人がメッセージを送付したことが証明できる(真正性の確認)
★ディジタル証明書(電子証明書・公開鍵証明書)⇨第三者期間である認証局(CA)が公開鍵を証明(お墨付き)
この記事が気に入ったらサポートをしてみませんか?