暗号

暗号理論, 及び暗号技術(Cryptography)についてのまとめ.

🎓暗号理論

📝情報理論を基礎にしている. 暗号の理学.

📝暗号技術

📝暗号理論の現実の活用, 暗号の工学.

共通鍵暗号

暗号化と復号に同一の (共通の) 鍵を用いる暗号方式.

AES

アメリカ国防省のの暗号方式.

DES (ブロック暗号)

RC4 (ストリーム暗号)

ワンタイムパッド

公開鍵暗号

暗号化と復号に別個の鍵 (手順) を使い暗号化の為の鍵を公開できるようにした暗号方式.

  • 暗号鍵で lock したものは公開鍵でしか unlock できない
  • 公開鍵で lock したものは秘密鍵でしか unlock できない

デメリット

  • 基本的に一方通行の使い方しかできない.

送信側に対して今度は受信側から暗号化したデータを送信しようとする場合, 送信側で秘密鍵と公開鍵を作成し, 公開鍵を公開しておく必要があります.

  • 処理が複雑になるため処理速度が遅くなる傾向がある

デジタル署名

秘密鍵で lock して, 公開鍵で unlock する.

📝RSA暗号

桁数が大きい合成数の素因数分解問題が困難であることを安全性の根拠とした公開鍵暗号の一つ.

大学で 2 回も同じ講義をうけたけど, すっかり忘れたというもの.

📝楕円曲線暗号

楕円曲線暗号 (ECC). 📝ブロックチェーンの基礎技術らしい.

これも大学でやった. レポートかいたの覚えてる. すっかり忘れた.

ElGamal

暗号化通信

📝ssh

SSL

SSH と SSL の違い

SSH は AP 層で認証・暗号化を行います. SSL/TLS は, AP 層の下の層での認証・暗号化を行うものです.

  • SSH
    • OSI : Application Layer (7 層) に位置.
    • クライアントとサーバ間の全てのトラフィックを完全に暗号化.
    • コマンドラインなど CUI アクセスや管理コンソールアクセスの場合に利用される.
    • Version2 では, 第三者が交換データを偽造に対し保護機能がある.
  • SSL / TLS
    • OSI : Transport Layer (4 層) の上位に位置.
    • HTTP/Web トラフィックを代表とし, SMTP,POP,IMAP などのトラフィックをセキュリティ保護する場合に利用.
    • 暗号化,認証,改竄検出の機能を提供.

HTTPS

認証

PKI

公開鍵基盤は, 利用者の身元について「信頼できる第三者」が審査を行い, 保証を実現する仕組み.

BASIC 認証

HTTP で定義される認証方式の一つ.

  • Basic 認証では, ユーザ名とパスワードの組みをコロン ”:” でつなぐ
  • Base64 でエンコードして送信する.
  • 盗聴や改竄が簡単
  • ほぼ全ての Web サーバおよびブラウザで対応している

参考リンク.

Appatch での設定

  • ウェブサーバの設定を記述する「.htaccess 」ファイル
  • 基本認証用の ID とパスワードを記述する「.htpasswd 」ファイル

LDAP 認証

LDAP は, ディレクトリ・サービスに接続するために使用されるプロトコル

インターネットやイントラネットなどの TCP/IP ネットワークで, ディレクトリデータベースにアクセスするためのプロトコル.

ディレクトリサービス

ディレクトリサービスとは, ネットワークを利用するユーザのメールアドレスや環境に関する情報を管理するサービスのことで, ユーザ名からこれらの情報を検索することができる.

  • 読み取りが高速
  • 分散型の情報格納モデル
  • 高度な検索機能を持つ

メールアドレス管理とかも.

NTLM 認証

Windows NT 4.0 以前の Windows NT シリーズの OS で標準的に使われていた, ネットワークログオンのためのユーザ認証方式. NT 4.0 の後継にあたる Windows 2000 からはデフォルトの認証方式に Kerberos 認証が採用されたが, 旧環境との互換性を保つため NTLM 認証も利用可能となっている.

チャレンジ/ レスポンス方式

  • クライアントがサーバに対し, ユーザ認証の要求を発行する
  • サーバは認証要求を受け, ランダムなバイト列「チャレンジ」を送り返す
  • クライアントは, チャレンジとパスワード情報に基づいて「レスポンス」を生成し, サーバに送る
  • サーバ側でも先ほど送ったチャレンジとパスワード情報を基にレスポンスを生成する
  • クライアントから送られたレスポンスと, 自ら生成したレスポンスを比較することにより, クライアント側とサーバ側両方のパスワード情報が同一であることを確認する
  • パスワード情報の同一性が確認できた場合, クライアントにログオン許可を与える
  • クライアント側ではログオン許可を受け, ログオン処理を実行する

ケルベロス認証

共通鍵暗号によって暗号化.

このページにアニメーションつきの鍵のやりとりがある.

📝OAuth

API 利用側がユーザ認証を API 提供サービス側にやってもらうための仕様. 現在はOAuth2.0.

OAuth は, 以下の特徴を持つ「認可情報の委譲」のための仕様です.

  • あらかじめ信頼関係を構築したサービス間で
  • ユーザの同意のもとに
  • セキュアにユーザの権限を受け渡しする

登場人物

  • 1 つ目は OAuth Service Provider と呼ばれる, ユーザの認可情報を第三者に渡すサービス.
  • 2 つ目は OAuth Consumer と呼ばれる, Service Provider から認可情報を受け取り, ユーザに代っていろいろな情報にアクセスしたり変更/ 追加を行ったりするサービス.
  • 3 つめが, User です. User は Service Provider が Consumer に認可情報を渡すことを許可したり, すでに受け渡した認可情報を無効にするといったことができます

🔗References