0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

〜X.509 / TLS / 暗号化FS / DNSSECまで一気に整理〜

331.1 X.509証明書と公開鍵基盤(PKI)

X.509証明書とは

X.509証明書は、以下を CA(認証局)が署名して保証する仕組み です。

  • 公開鍵
  • 所有者情報(CN, SANなど)
  • 有効期限
  • 用途(サーバ認証・クライアント認証 など)

X.509証明書のライフサイクル

  1. 秘密鍵・公開鍵の生成
  2. CSR(証明書署名要求)の作成
  3. CA による署名
  4. 証明書の発行・配布
  5. 運用
  6. 失効(CRL / OCSP)
  7. 期限切れ・更新

証明書の主要フィールド・拡張

  • Subject / Issuer
  • Validity(Not Before / Not After)
  • Subject Alternative Name(SAN)
  • Key Usage
  • Extended Key Usage
  • Basic Constraints(CA:TRUE / FALSE)

信頼の連鎖(Trust Chain)と Certificate Transparency

  • ルートCA → 中間CA → サーバ証明書
  • クライアントは ルートCAを信頼 して検証
  • CT(Certificate Transparency)
    • 不正証明書を検出するための公開ログ
    • 近年の証明書発行ではほぼ必須

CAの作成・管理(OpenSSL)

  • 自己署名CAの作成
  • 厳重な秘密鍵管理(オフライン推奨)
  • CRL の発行
  • 証明書失効管理
openssl genrsa -out ca.key 4096
openssl req -x509 -new -key ca.key -out ca.crt

証明書関連フォーマット

フォーマット 内容
PEM Base64(人が読める)
DER バイナリ
PKCS#12 証明書 + 秘密鍵

Let’s Encrypt / ACME / certbot

  • 無料・自動更新
  • ACME プロトコルで証明書発行
  • certbot で簡単に取得・更新

本番運用では事実上の標準

CFSSL

  • Cloudflare 製の PKI ツール
  • JSON ベース設定
  • Kubernetes 環境などでよく利用

331.2 TLS・署名・認証(Apache HTTPD)

SSL / TLS の理解

  • SSL は廃止、現在は TLS
  • TLS 1.2 / 1.3 が主流
  • 暗号スイート(cipher suite)を理解

Apache HTTPD + mod_ssl

HTTPS 有効化

  • Apache 2.4 以上
  • mod_ssl 使用
  • SNI(複数ドメイン)
  • HSTS(HTTPS 強制)
<VirtualHost *:443>
  SSLEngine on
  SSLCertificateFile /path/server.crt
  SSLCertificateKeyFile /path/server.key
</VirtualHost>

証明書チェーンの提供

  • 中間証明書を正しく設定しないと警告が出る
  • SSLCertificateChainFile または fullchain.pem

クライアント証明書認証

  • 証明書を使ったユーザ認証
  • VPN・管理画面などで利用
SSLVerifyClient require
SSLVerifyDepth 2

OCSP

  • 証明書の失効確認を高速化
  • CRL よりリアルタイム
  • Apache で Stapling 設定可能

OpenSSLでのテスト

openssl s_client -connect example.com:443

331.3 暗号化ファイルシステム

ブロック暗号化 vs ファイル暗号化

種類
ブロック dm-crypt + LUKS
ファイル eCryptfs

dm-crypt + LUKS

  • ディスク全体を暗号化
  • 起動時にパスフレーズ入力
  • LUKS1 / LUKS2
cryptsetup luksFormat /dev/sdb
cryptsetup open /dev/sdb cryptdata

LUKS2 の特徴

  • メタデータ冗長化
  • 鍵管理の柔軟性向上
  • 将来拡張向け

Clevis / Tang / TPM2

  • 自動アンロック
  • NBDE(Network Bound Disk Encryption)
  • サーバ再起動時の手動入力不要

eCryptfs

  • ファイル単位暗号化
  • ホームディレクトリ暗号化
  • PAM 統合
mount.ecryptfs

331.4 DNS と暗号化(DNSSEC)

DNS の基礎

  • ゾーン
  • 権威サーバ / 再帰サーバ
  • RR(A, AAAA, MX, NS など)

DNSSEC の仕組み

  • 改ざん検知
  • データの正当性保証

主なレコード:

  • DNSKEY
  • RRSIG
  • DS
  • NSEC / NSEC3

KSK / ZSK

  • KSK:親ゾーンと信頼を結ぶ
  • ZSK:ゾーン署名用

BIND での DNSSEC 運用

  • 鍵生成
  • ゾーン署名
  • ロールオーバー
dnssec-keygen
dnssec-signzone

再帰サーバでの検証(Validation)

  • クライアントとして DNSSEC を検証
  • delv でテスト

CAA / DANE / TLSA

  • CAA:証明書を発行して良い CA を制限
  • DANE / TLSA:DNS に証明書情報を格納

CA と DNS の連携

TSIG

  • DNS サーバ間の認証
  • ゾーン転送の保護

DNS over TLS / DNS over HTTPS

  • 通信経路の暗号化
  • プライバシー向上

mDNS

  • ローカルネットワークでの名前解決
  • .local ドメイン
0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?