OpenSSL について言及する場合は、まず SSL について言及する必要があります。おそらく、日常的にオンラインにアクセスするときに、自分のオンライン活動が他のインターネット ユーザーに監視されることを望んでいる人はいないでしょう。したがって、ネットワーク通信を保護するためのプロトコルが必要です。 SSL プロトコルはこのような背景に基づいて開発され、ユーザーとサーバー アプリケーション間の通信が攻撃者によって盗聴されることを防ぎ、サーバーを常に認証し、オプションでユーザーを認証することができます。
通常、SSL プロトコルは信頼性の高いトランスポート層プロトコル (TCP) に基づいています。 SSL プロトコルの利点は、アプリケーション層プロトコルから独立していることです。高レベルのアプリケーション層プロトコル (HTTP、FTP、TELNET など) を SSL プロトコル上に透過的に構築できます。 SSL プロトコルは、アプリケーション層プロトコル通信の前に、暗号化アルゴリズム、通信キーのネゴシエーション、およびサーバー認証の処理をすでに完了しています。アプリケーション層プロトコルを通じて送信されるすべてのデータは、通信の機密性を確保するために暗号化されます。
■いわゆる暗号化とは、平文を何らかの仕組みで暗号文に変換することであり、ネットワーク通信においては、対称暗号化、公開鍵暗号化、一方向暗号化といった暗号化セキュリティ機構が使用されます。
対称暗号化の特徴と欠点: 暗号化と復号は同じ鍵を使用して平文を固定サイズのブロックに分割し、1 つずつ暗号化します。欠点は、通信する双方の当事者が管理すべき鍵が多すぎるため、鍵の配布が難しいことです。その暗号化アルゴリズムは、DES、3DES、および AES です。
公開キー暗号化には次の特徴があります。そのキーはペアで表示され、一般的に使用される暗号化アルゴリズムには RSA および DSA が含まれます。その用途は次のとおりです: 第一に、ID 認証用: 送信者は独自の秘密キーを使用してデータを暗号化し、受信者はその公開キーを使用して復号化します。第二に、キー交換: 送信者は受信者の公開キーを使用してデータを暗号化し、受信者は、独自の秘密キーを使用してそれを復号化します。公開キーは秘密キーから抽出されます。
一方向暗号化の特徴: 雪崩効果を伴う方向性出力。暗号化アルゴリズムには、MD5、SHA1、SHA256、SHA384、SHA512 が含まれます。データを抽出するために一般的に使用される特性。
今年 4 月 10 日、セキュリティ プロトコル OpenSSL によって、今年最も深刻なセキュリティ脆弱性「Heartbleed」が暴露されました。人々がこのオープンソース プロトコルに注目し始めるようにします。では、OpenSSL とは一体何なのでしょうか?実際、OpenSSL は、openssl 多目的コマンド ライン ツール、パブリック暗号化ライブラリ libcrypto、および SSL プロトコル ライブラリ libssl の 3 つの主要コンポーネントで構成される SSL ライブラリとみなすことができます。
openssl 多目的コマンド ライン ツールを使用して、対称暗号化を実装できます:
out 暗号化ファイルの出力パス
openssl enc -d -対称暗号アルゴリズム-a -salt -in 復号するファイル -out 復号されたファイル出力パス
たとえば、上記の暗号化されたファイルを復号します: openssl enc -d -des3 -a -salt -in /tmp/fstab -out /tmp/Fstab 復号結果: 公開鍵暗号化における鍵交換にも使用可能: (umask 077; openssl genrsa -out Output private key file path)秘密鍵から公開鍵を抽出します: openssl rsa -in private Key file path-pubout
注: () は、コマンドはサブシェルで実行され、umask 077 により秘密鍵ファイルへのアクセスが保証されます
これは
にも使用できます。一方向暗号化: openssl dgst -md5|-sha1 -out ファイルを暗号化するファイル出力パス
たとえば、md5 を使用して /etc/passwd を暗号化します: openssl dgst -md5 -out /tmp/md5passwd /etc/passwd
## ユーザー パスワードの生成にも使用できます: openssl passwd -1 -salt SALT_STRING ユーザー パスワード
乱数の生成にも使用できます: openssl rand -hex バイト数
以上がOpenSSL の基本で暗号化と復号化を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。