🔑

暗号化技術について

2021/06/09に公開

聞かれることも多くなってきたのでまとめる

暗号化技術

例:クライアントからサーバーにデータを送信する際に、平文から暗号化し、暗号化されたものをサーバーが受け取って、サーバーが復号すること👉逆も然り
暗号化と復号化する際に利用するデータ型を暗号鍵という
以下2種類に別れる

共通鍵暗号方式

暗号化と復号化する際に共通鍵が使われる方式

公開鍵暗号方式

共通鍵暗号方式の方が安全
暗号化する際に公開鍵、復号化する際に秘密鍵が使われる方式

  • A・・・データを欲しい
  • B・・・データを送る
  1. Aが公開鍵と秘密鍵を生成
  2. AがBに公開鍵のみ送信
  3. Bは送られた公開鍵を使いデータを暗号化し、Aにデータを送信
  4. Bに送ってこられたデータを1.で作った秘密鍵で復号化

ssh(Secure Shell)

ネットワークに接続された別コンピュータを遠隔操作するための仕組み
👉 他にもFTPやTelnetと言う技術があるが、sshは暗号化されるため他より安全
認証方式

  • パスワード認証方式・・・単純にログインIDとパスワードで認証する方法
  • 公開鍵認証方式
    • 今の時代大体こっち
    • 公開鍵暗号方式を使っている
    1. クライアントが公開鍵と秘密鍵を生成
    2. クライアントがサーバに公開鍵のみ送信
    3. クライアントは秘密鍵を使って電子署名データを作成し、サーバに送信
    4. サーバーは公開鍵を使って電子署名データを検証
    5. 検証に成功すれば、認証成功し、アクセス可能となる

SSL通信

上記の共通鍵暗号方式と公開鍵暗号方式を使用した通信
TLSになったが、昔からの馴染みでまだSSLと呼ばれている
SSL証明書をサーバー側に設置する必要がある
👉 認証局と呼ばれる機関によって発行される電子証明書で、3つのレベルがある

  • ドメイン認証・・・そのドメインが実在してるかどうかの確認のみ、オンラインで手軽に入手できる
  • 企業認証
  • 拡張認証
  1. クライアントからサーバーに接続要求
  2. サーバーはクライアントにSSL証明書と公開鍵を送信
  3. 送られてきたSSL証明書をクライアント側のブラウザに搭載されているルート証明書で署名を確認し、SSL証明書を検証
  4. クライアント側が共通鍵を作成、送られてきた公開鍵で共通鍵を暗号化し、サーバーへ送信
  5. 暗号化された共通鍵をサーバーが受け取り、サーバー側の秘密鍵で復号化し、共通鍵を設定
  6. クライアントから何かのデータを送信する際に共通鍵で暗号化し、サーバー側も受信したら共通鍵で復号化する
    👉 これによって暗号化された通信が行える

オレオレ証明書・・・電子証明書を認証局などではなく自分で発行して設定したもの
👉 なんの証明にもならないとされているので使わないのが吉

GitHubで編集を提案

Discussion