SSL(Secure Sockets Layer) - 暗号化全般

暗号化全般 | IT用語集

SSLとは

SSL(Secure Sockets Layer)は、1990年代にNetscape社が開発したインターネット通信を暗号化するプロトコルです。SSL 2.0(1995年)、SSL 3.0(1996年)がリリースされましたが、重大な脆弱性が発見されたため、現在はすべてのバージョンが非推奨です。

現在「SSL証明書」「SSL/TLS」と呼ばれるものは、実際にはTLS(Transport Layer Security)を指しています。歴史的な理由から「SSL」という名称が残っていますが、新規システムでは必ずTLS 1.2以上を使用してください。

SSLの歴史と脆弱性

バージョンリリース年脆弱性状態
SSL 1.0未公開設計段階で重大な欠陥❌ 未リリース
SSL 2.01995DROWN攻撃など多数❌ 非推奨
SSL 3.01996POODLE攻撃❌ 非推奨
TLS 1.01999BEAST攻撃⚠️ 非推奨
TLS 1.22008適切に設定すれば安全✅ 安全
TLS 1.32018最新・最も安全✅ 推奨

AIエンジニアとしての実体験

AIエンジニアとして、古いSSLプロトコルを使用しているレガシーシステムとの接続で問題に遭遇することがあります。PythonのrequestsライブラリでSSL 3.0のみをサポートするサーバーに接続しようとすると、エラーが発生します:

# 古いSSLサーバーへの接続(非推奨だが必要な場合)
import ssl
import urllib3

# 警告:セキュリティリスクがあります
ssl_context = ssl.create_default_context()
ssl_context.minimum_version = ssl.TLSVersion.TLSv1

SSLからTLSへの移行

移行が必要な理由

  • POODLE攻撃:SSL 3.0のパディング処理の脆弱性
  • DROWN攻撃:SSL 2.0が有効な場合、TLS通信も解読可能
  • PCI DSS要件:クレジットカード情報を扱うシステムではTLS 1.2以上が必須

サーバー設定の確認

# サーバーがサポートするプロトコルを確認
nmap --script ssl-enum-ciphers -p 443 example.com

# OpenSSLでSSL 3.0の無効化を確認
openssl s_client -ssl3 -connect example.com:443
# エラーになれば正しく無効化されている

トラブル事例と対策

⚠️ レガシーシステムとの互換性

症状:古いシステムがTLS 1.2をサポートしていない

対策:システムのアップグレードを最優先。やむを得ない場合は、隔離されたネットワークで一時的に対応。

権威あるリソース

関連用語

📝 関連ブログ記事

【2026年最新】OpenSSLの深刻な問題とは?

セキュリティ診断のご相談