TLS 1.3とセキュア通信
🔥 Vibe プロンプト
「PythonでTLS 1.3サーバーとクライアントを作成。TLS 1.2 vs 1.3のハンドシェイクRTTを比較。」
import ssl, socket, threading, time
context_srv = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
context_srv.load_cert_chain(certfile="server.crt", keyfile="server.key")
context_srv.minimum_version = ssl.TLSVersion.TLSv1_3
def server():
with socket.socket() as sock:
sock.bind(('localhost', 8443)); sock.listen(1)
with context_srv.wrap_socket(sock, server_side=True) as ssock:
conn, addr = ssock.accept()
print(f"サーバー: cipher={conn.cipher()}, version={conn.version()}")
context_cli = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
context_cli.load_verify_locations(cafile="root-ca.crt")
def client():
time.sleep(0.1)
with socket.create_connection(('localhost', 8443)) as sock:
with context_cli.wrap_socket(sock, server_hostname="api.vibetutor.com") as ssock:
print(f"クライアント: version={ssock.version()}")
threading.Thread(target=server).start()
threading.Thread(target=client).start()
TLS 1.3の改善点
| 機能 | TLS 1.2 | TLS 1.3 | |------|---------|---------| | ハンドシェイク | 2 RTT | 1 RTT | | 暗号スイート | 多数(脆弱あり) | AEADのみ |
暗号化コース完了!🎉
- ✅ AES
- ✅ RSA
- ✅ ハッシュ/HMAC
- ✅ PKI
- ✅ TLS 1.3
章のまとめ
- コアコンセプトと原理を理解
- 実装方法とテクニックを習得
- 一般的な問題と解決策に精通
- 実際のプロジェクトに適用可能
さらに読む
- 公式ドキュメントとAPIリファレンス
- GitHubのオープンソース例
- 技術書とオンラインコース
- コミュニティディスカッションと技術ブログ
実装例
基本例
# 完全な実装例を提供します
手順
- セットアップ: 開発環境の設定
- データ: 必要なデータの準備
- 実装: コア機能の構築
- テスト: 動作確認
- 最適化: パフォーマンスの向上
よくあるエラー
| エラー種別 | 原因 | 解決方法 | |-----------|------|---------| | コンパイル | 構文 | コードの構文を確認 | | 実行時 | 環境 | 依存パッケージの確認 | | 論理 | アルゴリズム | ステップごとのデバッグ | | パフォーマンス | 効率 | プロファイラーの使用 |
コード例
import sys
def main():
print("Hello, World!")
if __name__ == "__main__":
main()
参考資料
- 公式ドキュメント
- APIリファレンス
- オープンソース例
- コミュニティディスカッション