RON_wanwan
2021年02月13日更新 787 Views

基本情報の勉強をしてみた ③セキュリティ・暗号技術

文系出身の私が、営業職として飛び込んだIT業界。現在育休中なので隙間時間にて改めてITのお勉強。。。難しいなと思ったポイントを備忘録として整理しておきます。

はじめに

下記単語は覚えておく
平文:暗号化する前の意味のわかる文章
暗号化:データ通信でデータが盗聴されても内容が分からないように鍵を使って暗号文にすること
復号化:鍵を使って暗号文を元の文章に戻すこと

暗号化方式

①共通鍵(秘密鍵)方式
スクリーンショット 2021-02-13 22.03.33.png
・暗号化時、復号化時、共に同じ鍵を行う。(共通鍵)
・相手の数だけ鍵を用意するため、オンライン通販等の不特定多数とのやりとりには不向き

・AES(Advanced Encryption Standard):
米国商務省標準局が制定した共通暗号方式の1つ。それまでの鍵長56ビットのDES(Data Encryption Standard)に変わるもの。

②公開鍵方式
スクリーンショット 2021-02-13 22.03.39.png
・受信者が用意する秘密鍵と公開鍵は2種類で、一対のペアである。公開鍵で暗号化されたデータは、対応する秘密鍵でしか復号できない。
・秘密鍵は受信者のみが所有し、公開鍵は誰もが取得可能である。
・送信者は公開鍵を使って暗号化を行い、受信者は自身の秘密鍵で復号化する。
・管理する鍵は2種類のみとなり、不特定多数とのやりとりに向いている。
・暗号化と復号化で複雑な計算を伴うため処理速度は遅い。
=> 受信者は鍵を2つ用意し、公開鍵を送信者に渡し、暗号化してもらえば良いという方式。

RSA(Rivest-Shamir-Adleman):
業界標準の公開鍵暗号化方式。この方式は応用され、デジタル署名の規格としても広く使われている。

ディジタル署名

・公開鍵方式の鍵を逆に使った方式*で、送信者のなりすましの確認と改竄検知ができる。(改竄部分の特定や訂正はできない、また平文は暗号化されていないので情報漏洩は防げない。)
・送信者が秘密鍵と公開鍵を作成し、秘密鍵で暗号化、受信者に公開鍵を渡して復号化させる。
・秘密鍵を署名鍵、公開鍵を検証鍵とも呼ぶ。
・公開鍵/検証鍵の所有者が本人であるかどうかは、認証局(CA:Certificate Authority)により発行される、ディジタル証明書によって担保される。

=> * 公開鍵方式とディジタル署名の違い
公開鍵方式では、受信者が公開鍵と秘密鍵を作成する。暗号化は公開鍵を使った送信者によって行われ、復号化は秘密鍵を使った受信者によって行われる。
ディジタル署名では、送信者が公開鍵/検証鍵と秘密鍵/署名鍵を作成する。
暗号化は秘密鍵を使った送信者によって行われ、復号化は公開鍵を使った受信者によって行われる。

<具体的な流れ>
スクリーンショット 2021-02-13 22.03.48.png

①送信者は平文からハッシュ関数* を使ってメッセージダイジェスト(暗号化で使われるハッシュ値)を作る。
②上記メッセージダイジェストを送信者の秘密鍵/署名鍵で暗号化し、送信する。
③受信者は受け取ったディジタル署名を送信者の公開鍵/検証鍵で復号化し、メッセージダイジェストを取り出す。この時、鍵はペアとなることから、送信者本人であることが確認できる。
④受け取った平文から、送信者と同じハッシュ関数を使ってメッセージダイジェストを作成する。
⑤ ④と③のメッセージダイジェストを比較する。この時、メッセージダイジェスト(ハッシュ値)は入力データが同じであれば同じ値が出力されることから、改竄されていないことが確認できる。

PKI(Public Key Infrastracture: 公開鍵基盤)

PKIとは公開鍵暗号技術を実現するためのインフラを指す。具体的にはディジタル証明書(公開鍵証明書)とそれを発行するCA(Certificate Authority: 認証局)であり、これらの管理、運営が主な内容。ディジタル署名の仕組みでは発信元の身元までは確認ができなかったが(公開鍵を所有しているかの確認まで)、CAは現実に存在する組織や個人が発行する公開鍵である、と証明書にて保証する。

・ディジタル証明書には、下記の種類がある。
クライアント証明書:企業や個人を証明するもので、サーバーにアクセスする正当な利用者であるかを証明する。
サーバー証明書:WEBサイトではSSLサーバ証明書と言う。運営組織になりすましがないかを証明。
ルート証明書:認証局自体の信頼性を証明。

<主な記載内容>
ITU-T 勧告 X./509規約形式にて記載
スクリーンショット 2021-02-11 9.44.55.png

メッセージ認証

改竄検知を行うことができる。(なりすましの確認はできない。)
送信者と受信者で秘密鍵を共有の上、MAC(Message Authentication Code: メッセージ認証符号)を作成し、確認を行う。

<手順>
送信側:メッセージを秘密鍵で暗号化し、MACを作成し、送信。
受信側:
  受診したメッセージを秘密鍵で暗号化し、MACを作成。
  送信側と受信側のMACを照合し、誤りが無いか確認。
  誤りがなければ、そのメッセージは本物であり、改竄はないもの、となる。

SSL(Secure Socket Layer)/ TLS 通信

公開鍵暗号方式と共通鍵暗号化方式の双方を使った、ユーザーのPCとWEBサーバー間の暗号化通信。
SSLは現在TLSとなっているが、一般的には未だSSLと呼ばれている。
SSLに対応していると「HTTPS」という表記になる。

スクリーンショット 2021-02-13 22.04.01.png
=> 公開鍵方式で共通鍵を安全にWEBサーバーに渡す。(WEBサーバーの公開鍵で暗号化してから共通鍵を共有)
受け取った共通鍵で、WEBサーバーは平文を暗号化し、ユーザーに送付。

S/MIME(Secure MIME)

MIMEは電子メールにて画像や音声を添付し送付できる規格であるが、それをセキュリティ機能を取り入れ拡張したもの。具体的には、暗号化機能やディジタル認証機能が挙げられる。

TBU....

関連記事

VPN、アプリケーションGW、RASなどネットワークセキュリティを図解。WAF、無線LANの暗号化なども含め、社内セキュリティの全体像を把握することを目指します。
2021年03月27日
プロキシサーバとリバースプロキシサーバの流れを図解。各々の機能・役割を含め把握することを目指します。
2021年04月03日
要求定義から始まり、設計、テストまでの大まかな流れを図解。外部設計と内部設計の違いを含め、各工程の作業内容を理解することを目指します。
2021年04月11日
代表的な図式手法となるUML、DFD、E-R図、決定表、状態遷移図を図解。各々の記載方法を含め理解することを目指します。
2021年07月11日
オブジェクト、属性、メソッド、カプセル化、クラスにインスタンス、独特な単語の意味を図解を含め整理。クラス図の書き方も含め、オブジェクト指向設計の基本を理解することを目指します。
2021年06月10日
ホームへ戻る