🔑
暗号化技術について
聞かれることも多くなってきたのでまとめる
暗号化技術
例:クライアントからサーバーにデータを送信する際に、平文から暗号化し、暗号化されたものをサーバーが受け取って、サーバーが復号すること👉逆も然り
暗号化と復号化する際に利用するデータ型を暗号鍵という
以下2種類に別れる
共通鍵暗号方式
暗号化と復号化する際に共通鍵が使われる方式
公開鍵暗号方式
共通鍵暗号方式の方が安全
暗号化する際に公開鍵、復号化する際に秘密鍵が使われる方式
- A・・・データを欲しい
- B・・・データを送る
- Aが公開鍵と秘密鍵を生成
- AがBに公開鍵のみ送信
- Bは送られた公開鍵を使いデータを暗号化し、Aにデータを送信
- Bに送ってこられたデータを1.で作った秘密鍵で復号化
ssh(Secure Shell)
ネットワークに接続された別コンピュータを遠隔操作するための仕組み
👉 他にもFTPやTelnetと言う技術があるが、sshは暗号化されるため他より安全
認証方式
- パスワード認証方式・・・単純にログインIDとパスワードで認証する方法
- 公開鍵認証方式
- 今の時代大体こっち
- 公開鍵暗号方式を使っている
- クライアントが公開鍵と秘密鍵を生成
- クライアントがサーバに公開鍵のみ送信
- クライアントは秘密鍵を使って電子署名データを作成し、サーバに送信
- サーバーは公開鍵を使って電子署名データを検証
- 検証に成功すれば、認証成功し、アクセス可能となる
SSL通信
上記の共通鍵暗号方式と公開鍵暗号方式を使用した通信
TLSになったが、昔からの馴染みでまだSSLと呼ばれている
SSL証明書をサーバー側に設置する必要がある
👉 認証局と呼ばれる機関によって発行される電子証明書で、3つのレベルがある
- ドメイン認証・・・そのドメインが実在してるかどうかの確認のみ、オンラインで手軽に入手できる
- 企業認証
- 拡張認証
- クライアントからサーバーに接続要求
- サーバーはクライアントにSSL証明書と公開鍵を送信
- 送られてきたSSL証明書をクライアント側のブラウザに搭載されているルート証明書で署名を確認し、SSL証明書を検証
- クライアント側が共通鍵を作成、送られてきた公開鍵で共通鍵を暗号化し、サーバーへ送信
- 暗号化された共通鍵をサーバーが受け取り、サーバー側の秘密鍵で復号化し、共通鍵を設定
- クライアントから何かのデータを送信する際に共通鍵で暗号化し、サーバー側も受信したら共通鍵で復号化する
👉 これによって暗号化された通信が行える
オレオレ証明書・・・電子証明書を認証局などではなく自分で発行して設定したもの
👉 なんの証明にもならないとされているので使わないのが吉
Discussion