SSLの概要
ネットワーク通信をより安全にするために、認証と暗号化が必要です。認証は相手が正しいことを確認し、暗号化は中間者がメッセージ内容を取得できないようにします。このため、TCPの上にセキュアな通信層を作成するSSL(Secure Sockets Layer)が設計されました。HTTP on SSLはHTTPSであり、現在ほとんどの銀行サイトはHTTPSを使用しています。
OpenSSLの機能
OpenSSLは、鍵と証明書の管理、対称暗号化、非対称暗号化を実現します。
1.1 暗号化コマンド
openssl enc -e -des3 -a -salt -in testfile -out testfile.cipher openssl enc -d -des3 -a -salt -in testfile.cipher -out testfile
対称暗号化アルゴリズムにはAES、DES、Blowfish、CAST、IDEA、RC2、RC5があります。これらのアルゴリズムはECB、CBC、CFB、OFBの4つのモードをサポートしています。
非対称暗号化アルゴリズムにはDH、RSA、DSA、楕円曲線アルゴリズム(EC)があります。
1.2 ハッシュコマンド
openssl dgst -md5 [-hex] /PATH/SOMEFILE openssl dgst -md5 testfile
OpenSSLはMD2、MD5、MDC2、SHA(SHA1)、RIPEMDの5種類のハッシュアルゴリズムを実装しています。
1.3 パスワード生成とBase64エンコード
openssl passwd -1 -salt string -in file
1.4 乱数生成
openssl rand -out file -base64 -hex num
1.5 鍵ペアの生成
openssl genrsa -out privatekey.pem 2048 openssl rsa -in privatekey.pem -pubout -out publickey.pem
1.7 証明書の作成
CA証明書と申請証明書を作成するには、配置ファイルを確認する必要があります。具体的には/etc/pki/tls/openssl.cnfファイルを参照してください。
- CAに必要なディレクトリとファイルを作成する。
- 証明書の開始番号を指定する。
- 私有鍵を生成する。
- 自己署名証明書を生成する。
openssl req -new -x509 -key privatekey.pem -out cacert.pem -days 365
(2)証明書の発行
証明書を使用するホストで証明書要求を生成し、それを信頼できる方法でCAホストに送信します。
(3)証明書の失効
証明書の失効はCAサーバー上で実行します。
openssl ca -revoke cert.pem echo 01 > /etc/pki/CA/crlnumber openssl ca -gencrl -out /etc/pki/CA/crl/ca.crl