🛡️ユーザ認証
- 正当な利用者であることを確かめる技術。
- 方法:ユーザID、パスワード、ICカード、USBキー、 バイオメトリクス認証
- バイオメトリクス認証 :指紋や静脈パターン、虹彩を用いる。
- バイオメトリクス認証 で 虹彩 は経年劣化が少なく、 顔認証 より精度が高い。
- バイオメトリクス認証 は漏れたときのリスクが高い → 最近は「 多要素認証 (生体+パスワード+端末)」が多い。
- USBキー:USBインタフェースを備えたセキュリティ機器、ハードウェア認証に用いられる。
🛡️チャレンジレスポンス方式
- パスワード そのものを送る のではなく、パスワードを 元にした応答 を返すことで証明する方式。
- チャレンジレスポンス方式を用いた認証方式を CHAP (Challenge Handshake Authentication Protocol)とよぶ。
- 💡認証の流れ:
- ① サーバが チャレンジ ( 問題 )を出す。
- ② クライアントが レスポンス ( 答え )を返す。
- ③ サーバが正しい答えかを確認して認証する。
- この方式はパスワードそのものは ネットワークに流さない ため、パスワードの 漏洩 を防止できる。
- チャレンジとレスポンスが 毎回異なる ので、 リプレイ 攻撃も防止できる。
- リプレイ攻撃 :暗号化されたパスワードを盗み出し、そのまま再利用することで 他者になりすます 攻撃。
- 証明の仕方:チャレンジに対して パスワードを元に計算した答え ( ハッシュなど )を返す。
- ・SSHやWi-FiのWPA2認証でもこの仕組みが使われてる。
🛡️ゼロ知識証明
- パスワード そのものを送る のではなく、パスワードを 所有することを証明 する方式。
- 相手には 一切秘密が漏れない
- 💡「相手に一切の知識(=秘密の内容)を渡さずに、自分がそれを知っていることだけを証明する」技術。
- 自分が正しいことを「見せる」→「その過程で何かしらの情報が漏れちゃうかもしれない」を 回避 するトリッキーな証明方法。
- 🧙♂️「わたしは答えを知ってます。でも、内容は絶対に教えません。けど、本当に知ってるってことだけはあなたに信じさせてみせます!」
- レベル高い数学や暗号の仕組みが入ってくるから、ちゃんと自動化されたライブラリやフレームワークを使うことが多い。
- ブロックチェーンで使われる ZK-SNARKs(ズィーケー・スナークス)
- プライバシー保護プロトコル(例:Zcash)
- 暗号通貨・機密性が超重要な場面で使われる。
🛡️認証サーバ
- 認証サーバ:ユーザが本物かどうか確認する( ログイン )
- RADIUS:ネットワークへのアクセス認証、認可、アカウンティング(利用記録)を管理するためのプロトコルおよびサーバシステム。
- ⇩RADIUSは主に以下の3つの機能( AAAフレームワーク )を提供
- ① 認証 ( Authentication ):ユーザが本人であることを確認
- ② 認可 ( Authorization ):認証されたユーザに適切なアクセス権限を付与
- ③ アカウンティング ( Accounting ):ユーザのリソース使用状況を記録・管理
- 💡RADIUSはクライアントサーバシステムの典型的な例
- 🔐RADIUSサーバ:認証サービスを 提供 する側
- ・ ユーザーデータベースへのアクセス権を持つ
- ・ 認証リクエストを処理し、結果を返す
- ・ 通常は企業のサーバルームやデータセンターに設置
- ・ ネットワークアクセスサーバ(NAS)、VPNサーバ、無線LANアクセスポイントなど
- 🖥RADIUSクライアント:サービスを 要求 する側
- ・ アクセスポイントやルーターなどのネットワーク機器
- ・ ユーザーからの接続要求を受け、RADIUSサーバに認証を依頼
- ・ 認証結果に基づいてユーザーのネットワークアクセスを制御
- ・ Active Directory、LDAPなど
- ✅RADIUS技術的特徴
- ・ UDPプロトコル上で動作(標準ポート:認証/認可は1812、アカウンティングは1813)
- ・ さまざまな認証方式をサポート(PAP、CHAP、MS-CHAPv2、EAP など)
🛡️リスクベース認証
- ユーザーの 行動 に応じてリスクを 判断し、 認証レベル を変える方式。
- 例:普段と違う場所やデバイスからログインしようとしたら、 追加認証 (例: SMS認証 )
⏱️ワンタイムパスワード
- 使い捨て パスワード( 1回だけ 使える)
- 一定時間で 自動的に無効 になる → 使いまわし できない。
🔑シングルサインオン
- 一度ログインすれば 、複数のサービスを使える仕組み。
- GoogleアカウントでGmail、YouTube、Google Driveにアクセスできる。
- MicrosoftアカウントでTeams、Outlookなどに一括ログイン。
🖋デジタル署名
- データの 正当性 を保証するために付与される 暗号化 された情報。
- データの 送信者 を証明し、データが 改ざん されていないことを保証する。
- 「これは確かに 送信者 が書いた! 改ざん もされてない!」ことを確かめる。
- デジタル署名は 現実世界の署名と同様の効力を持つ ことが、 電子署名法 によって定められている。
- 💡認証ステップ
- ① 送信者は、送信データを ハッシュ して メッセージダイジェスト を生成する (ダイジェストA)
- ② 送信者は、送信者の 秘密鍵 を用いてダイジェストAを 暗号化 してデジタル署名を生成する。
- ③ 署名をデータに付加して受信者に送る。
- ④ 受信者は、データに付加されたデジタル署名を 送信者 の 公開鍵 を用いて復号し、元のダイジェストAを得る。
- ⑤ 受信者は、 受信したデータ からメッセージダイジェストを生成する(ダイジェストB)
- ⑥ ダイジェストAとダイジェストBが一致すれば、データを受け取る。
- 💡改ざんされたらハッシュはどうなる?
- 🖋ハッシュ(SHA-256 の例)
- → Hello, world! のhash : a591a6d40bf420404a011733cfb7b190...
- → Hello, world. のhash : b94d27b9934d3e08a52e52d7da7dabfa...
- 💡メッセージダイジェスト:メッセージを要約したもの = ハッシュ関数
- ハッシュ関数は 送信者と受信者で「 合意済み 」のものを使う。
- ユーザーが特別な操作をしなくても、ちゃんと「安全なものが使われるよう設計されてる」
- 💬 メッセージアプリ:アプリがデフォルトで安全なハッシュ(例:SHA-256)を使う。
- 🌐 ウェブサイトのHTTPS証明書:サーバーと証明機関(CA)が使うハッシュを事前に規定・合意してる。
- 📄 電子契約サービス:サービス提供者が信頼できるハッシュ関数を使って署名を生成してる。
- 事前合意:通信や署名のやりとりで、使う方式(ハッシュ関数・署名アルゴリズムなど)を“お互いに分かってる・受け入れてる”状態
- 💡「合意」はいつされるの?
- ① ウェブのHTTPS(SSL/TLS)通信のとき
- ・ タイミング:接続の最初(ハンドシェイク)
- ・ ブラウザとサーバーが「TLSハンドシェイク」でやりとりする中で
- ・ お互いが対応している方式を見せ合って、その中から「これにしようね!」って決める
- ・ これが自動的に & 瞬時に行われる!
- ② 電子契約・デジタル署名ファイル(PDFなど)の場合
- ・ タイミング:署名を付けるとき
- ・ 「この署名は SHA-256 + RSA で作りました」って情報がPDFに記録される
- ・ 読み取る側は「それに対応して検証」すればOK
- ・ 「署名者が指定し、受け手はそれに従う」=暗黙の合意
- ③ 公開鍵を配布する場合(PGPなど)
- ・ タイミング:鍵を配るとき
- ・ メール暗号化や個人間の署名では、鍵の使い方をドキュメントや設定で共有する (PCが読める形式)
- 👀鍵ファイルを覗こう!.asc(ASCII形式のPGP鍵) .pem(証明書・鍵).cer / .crt(証明書)
🛡️ハッシュ関数の性質
- ハッシュ関数:データから 数値 を得る関数。
- 一方向性 :ハッシュ値から元データを復元することが困難であること( 不可逆性 )
- 衝突困難性 :同じハッシュ値を持つ異なるデータを生成することが困難である。
- Avalanche ( アバランチ )効果:入力をちょっと変えただけで、出力(ハッシュ値)が全然違うものになる。
- 改ざん検知 :データが改ざんを受けてないことを確認する。
- 否認防止 :データは送信者本人によって作成されたことを「 証明可能 」にする。
🛡️SHA-256とは
- SHA(Secure Hash Algorithm):信頼されてるハッシュ関数のファミリー
- 💡 SHA-256:
- ・ 出力は 256 ビット(32バイト)
- ・ 安全性が高く、電子署名やブロックチェーンで広く使われてる。
- ・ 衝突耐性・第二原像耐性・第一原像耐性 が強い。
- 衝突耐性( 衝突困難性 ):異なるデータから 同じハッシュ値 が得られない(でも理論上は衝突が存在)
- 第二原像耐性:あるハッシュ値から 同じハッシュ値になる別の入力 を見つけるのが難しい。
- 第一原像耐性( 一方向性 ):ハッシュ値から元の入力を逆算できない。
🕓時刻認証
- タイムスタンプ局(TSA)と呼ばれる第三者機関がタイムスタンプ(時刻印)を発行することにより、その時刻に文書が存在し、改ざんされていないこと。を 証明 する方式: タイムスタンプトークン と呼ばれる。
- 💡何のためにタイムスタンプを使う?
- ・ 電子契約や電子文書の真正性(改ざんされてない)と存在証明。
- ・ 長期保存する電子データの証拠力の確保。
- ・ 電子署名の有効期間を延長するため。
- ・ ビジネス文書・論文・開発コードの「作成時刻の証明」など。
- 正確な時刻:NTP(ネットワーク時刻プロトコル)で国の標準時サーバーと同期 → 日本だと「NICT(情報通信研究機構)」の標準時がベース。