MySQL での SSL 使用方法を理解するために、まず、基本的な SSL と X509 概念について説明します。この基本概念をよく理解している場合は、このセクションを読み飛ばしてください。
MySQL
のデフォルト設定では、クライアントとサーバ間の接続を暗号化していません。これは、ネットワークにアクセスできる者がデータの送受信を傍受する可能性があることを示します。場合によっては、送受信中にデータの変更
(改ざん)
にまで及びます。そのため、クライアント
プリグラムを呼び出すときには、--compress
オプションを使用するなどして、クライアントとサーバ間のセキュリティを少しでも高めることをお勧めします。しかし、これはクラッカー対策としては十分ではありません。
公開ネットワークでの情報のやり取りでも安全性が求められ、基本的に暗号化なしの接続は危険です。暗号化とは、データを読めないようにするということであり、現在でも暗号化アルゴリズムには様々なセキュリティ対策が投じられています。暗号化メッセージの入れ替えやデータ再生の繰り返しなど、様々な攻撃に対応していく必要があります。
SSL とは、複数の異なる暗号化アルゴリズムを使用して、公開ネットワークで受信するデータの信頼性を保証するためのプロトコルです。SSL にはデータの変更、消失、および再生を検知するメカニズムがあります。さらに、X509 規格の ID 認証方式のアルゴリズムも組み込まれています。
X509 とは、インターネット上で ID 認証を可能にする規格です。これは、電子商取引アプリケーションで最も一般的に使用されています。基本的には、「認証局 (Certificate Authority)」 という組織が電子証明書を必要とする者に割り当てるという方法を取ります。証明書には、2 つの暗号化キー(公開キーと秘密キー)がある非対称暗号化アルゴリズムを使用しています。証明書の所有者は、他者に証明書を提示して自分の ID を証明します。証明書には、所有者の公開キーが含まれています。この公開キーで暗号化するデータは、これに対応している秘密キーがなければ解読できません。秘密キーは証明書の所有者が保持しています。
SSL、X509、および暗号化に関する詳細は、インターネット検索エンジンなどで情報検索してください。