LinuxのOpensslコマンドとインスタンスコード


opensslコマンドのフォーマットは「openssl command command command options args」であり、commandの部分には多くのコマンドがあります。これらのコマンドはopensslコマンドに依存して実行できるので、疑似コマンドと呼ばれています。各ダミーコマンドにはそれぞれの機能があります。
OpenSSLは強力なセキュリティソケット層のパスワードライブラリであり、主な暗号アルゴリズム、一般的な鍵と証明書のパッケージ管理機能及びSSLプロトコルを網羅して、テストまたは他の目的のために豊富なアプリケーションを提供します。OpenSSLに曝されて深刻なセキュリティ・ホールが発生した後、SSLプロトコルで暗号化されたウェブサイトの多くはOpenSSLというオープンソース・パッケージを使用していることがわかった。これはインターネット応用の最も広い安全な伝送方法であり、ネットバンク、オンライン決済、電子商取引サイト、ポータルサイト、電子メールなどの重要なウェブサイトに広く使われているため、この脆弱性は広範囲に及んでいる。
OpenSSLには2つの運転モードがあります。インタラクティブモードとバッチ処理モードです。
直接opensslを入力して交互モードに入り、コマンドオプションを持つopensslを入力してバッチ処理モードに入ります。
OpenSSLは、パッケージ全体を大きく分けて三つの主要な機能部分に分けられます。パスワード計算法庫、SSLプロトコルライブラリ及びアプリケーションプログラムです。OpenSSLのディレクトリ構造はもちろんこの三つの機能部分をめぐって計画されています。 
対称暗号化アルゴリズム
OpenSSLは全部で8種類の対称暗号化アルゴリズムを提供しています。7つはパケット暗号化アルゴリズムで、一つのストリーム暗号化アルゴリズムはRC 4だけです。この7つのパケット暗号化アルゴリズムは、AES、DES、Blowfish、CAST、IDEA、RC 2、RC 5であり、いずれも電子暗号本モード(ECB)、暗号化パケットリンクモード(CBC)、暗号化フィードバックモード(CFB)、出力フィードバックモード(OFB)の4つの一般的なパケット暗号化モードをサポートする。AESで使用される暗号フィードバックモード(CFB)と出力フィードバックモード(OFB)のパケット長は128ビットであり、他のアルゴリズムでは64ビットが使用される。実際には、DESアルゴリズムは、一般的なDESアルゴリズムだけでなく、3つの鍵と2つの鍵3 DSアルゴリズムをサポートしています。 
非対称暗号化アルゴリズム
OpenSSLは、DHアルゴリズム、RSAアルゴリズム、DSAアルゴリズム、および楕円曲線アルゴリズム(EC)を含む4つの非対称暗号化アルゴリズムを実装しています。DHアルゴリズムは、一般的にユーザ鍵交換である。RSAアルゴリズムは、鍵交換のためにもデジタル署名のためにも使用できます。もちろん、遅い速度に耐えられるなら、データ暗号化のためにも使用できます。DSAアルゴリズムは一般的にデジタル署名のみに使用される。 
情報の要約アルゴリズム
OpenSSLは、MD 2、MD 5、MDC 2、SHA(SHA 1)、RIPEMDの5つの情報要約アルゴリズムを実現した。SHAアルゴリズムは、実際にはSHAとSHA 1の2つの情報要約アルゴリズムを含んでおり、さらに、OpenSSLは、DSS規格で規定されている2つの情報要約アルゴリズムDSSとDSS 1を実現している。 
鍵と証明書の管理
鍵と証明書管理はPKIの重要な構成部分であり、OpenSSLは豊富な機能を提供し、多様な標準をサポートしています。 
まず、OpenSSLは、ASN.1の証明書と鍵の関連規格を実現し、証明書、公開鍵、秘密鍵、証明書要求、およびCRLなどのデータオブジェクトのDER、PEM、BASE 64のデコード機能を提供する。OpenSSLは、公開鍵と秘密鍵のDERコード復号機能を提供すると同時に、様々な公開鍵ペアと対称鍵を生成する方法、関数、およびアプリケーションを提供する。秘密鍵のPKCSヒドラ12とPKCSヒドラ8の符号化復号機能を実現した。OpenSSLは、秘密鍵の暗号化保護機能を標準で提供し、鍵を安全に記憶し、配布することができるようにする。 
この基礎の上で、OpenSSLは証明書のX.509標準編纂・復号、PKCS〓12フォーマットの編纂・復号、PKCS〓7の編纂・復号機能を実現しました。そして、証明書の管理機能をサポートするテキストデータベースを提供しました。証明書の生成、要求の生成、証明書の発行、破棄、検証などの機能を含みます。 
実際には、OpenSSLが提供するCAアプリケーションは、証明書発行の全体的な流れと証明書管理の大部分のメカニズムを実現する小さな証明書管理センター(CA)である。
実例
1、メッセージ要約アルゴリズムの応用例
SHA 1アルゴリズムでファイルfile.txtの西値を計算し、stdoutに出力する。

# openssl dgst -sha1 file.txt
SHA 1アルゴリズムでファイルfile.txtの西値を計算して、ファイルdigest.txtに出力します。

# openssl sha1 -out digest.txt file.txt
DSS 1(SHA 1)アルゴリズムでファイルfile.txtに署名し、ファイルdsasign.binに出力する。署名されたprvate keyは、DSAアルゴリズムのために生成され、ファイルdsakey.pemに保存されなければならない。

# openssl dgst -dss1 -sign dsakey.pem -out dsasign.bin file.txt
dss 1アルゴリズムでfile.txtのデジタル署名dsasign.binを検証し、検証されたprvate keyはDSAアルゴリズムで生成されたファイルdsakey.pemである。

# openssl dgst -dss1 -prverify dsakey.pem -signature dsasign.bin file.txt
shar 1アルゴリズムでファイルfile.txtに署名し、ファイルrsasign.binに出力し、署名されたprvate keyはRSAアルゴリズムで生成されたファイルrsapprivate.pemである。

#openssl sha1 -sign rsaprivate.pem -out rsasign.bin file.txt
皬はshar 1アルゴリズムでfile.txtのデジタル署名rsasign.binを検証し、検証されたpublic keyはRSAアルゴリズムで生成されたrsablic.pemである。

# openssl sha1 -verify rsapublic.pem -signature rsasign.bin file.txt
2、対称暗号化の応用例
対称暗号化アプリケーション例は、DES 3アルゴリズムのCBCモードでファイルplintext.docを暗号化し、暗号化結果をファイルciphertext.binに出力する。

# openssl enc -des3 -salt -in plaintext.doc -out ciphertext.bin
DES 3アルゴリズムのOFBモードでファイルciphertext.binを解読して、提供するパスワードはtrusersで、ファイルplintext.docに出力します。注意:モードが異なるため、このコマンドは以上のファイルを復号できません。

# openssl enc -des-ede3-ofb -d -in ciphertext.bin -out plaintext.doc -pass pass:trousers
BlowfishのCFBモードでplintext.docを暗号化して、パスワードは環境変数PASSWORDから取って、ファイルciphertext.binに出力します。

# openssl bf-cfb -salt -in plaintext.doc -out ciphertext.bin -pass env:PASSWORD
ファイルciphertext.binにbase 64で符号化してファイルbase 64.txtに出力します。

# openssl base64 -in ciphertext.bin -out base64.txt
RC 5アルゴリズムのCBCモードでファイルplintext.docを暗号化して、ファイルciphertext.binに出力して、salt、keyと初期化ベクトル(iv)はコマンドラインで指定します。

# openssl rc5 -in plaintext.doc -out ciphertext.bin -S C62CB1D49F158ADC -iv E9EDACA1BD7090C6 -K 89D4B1678D604FAA3DBFFD030A314B29
3、ディffie-Hellman応用例
生成因子2とランダムな1024-bitの素数を用いてD 0 ffie-Hellmanパラメータを生成し、ファイルdhparam.pemに出力します。

# openssl dhparam -out dhparam.pem -2 1024
dhparam.pemからDiffie-Hellパラメータを読み取り、Cコードの形でstdoutに出力します。

# openssl dhparam -in dhparam.pem -noout -C
4、DSA応用例応用例
1024ビットのDSAパラメータセットを生成し、ファイルdsaparam.pemに出力します。

# openssl dsaparam -out dsaparam.pem 1024
パラメータファイルdsaparam.pemを使ってDSA秘密鍵を生成し、3 DS暗号化してファイルdsaprvatekey.pemに出力します。

# openssl gendsa -out dsaprivatekey.pem -des3 dsaparam.pem
私鍵を使用してdsaprvatekey.pemを生成し、dsapublickey.pemに出力します。

# openssl dsa -in dsaprivatekey.pem -pubout -out dsapublickey.pem
dsaprvatekey.pemから私鍵を読み取り、暗号解読して新しいパスワードを入力して暗号化し、ファイルdsaprvatekey.pemに書き込みます。

# openssl dsa -in dsaprivatekey.pem -out dsaprivatekey.pem -des3 -passin
5、RSA応用例
1024ビットのRSAプライベートスプーンを生成し、3 DSでそれを暗号化し、パスワードはtrusersとなり、ファイルrsapprivatekey.pemに出力します。

# openssl genrsa -out rsaprivatekey.pem -passout pass:trousers -des3 1024
ファイルrsapprivatekey.pemから私匙を読み取り、パスワードtrusersで解読し、作成した公開鍵をファイルrsappublickey.pemに出力する。

# openssl rsa -in rsaprivatekey.pem -passin pass:trousers -pubout -out rsapubckey.pem
公開鍵のrsappublickey.pemでファイルのpline.txtを暗号化して、ファイルcipher.txtに出力します。

# openssl rsautl -encrypt -pubin -inkey rsapublickey.pem -in plain.txt -out cipher.txt
私鍵rsapprivatekey.pemを使って暗号文cipher.txtを解読してファイルplin.txtに出力します。

# openssl rsautl -decrypt -inkey rsaprivatekey.pem -in cipher.txt -out plain.txt
私鍵のrsapprivatekey.pemでファイルplin.txtに署名してファイルのsignature.binに出力します。

# openssl rsautl -sign -inkey rsaprivatekey.pem -in plain.txt -out signature.bin
公開鍵のrsappublickey.pemで署名signature.binを検証して、ファイルplin.txtに出力します。

# openssl rsautl -verify -pubin -inkey rsapublickey.pem -in signature.bin -out plain
X.509証明書ファイルのcert.pemから公開鍵を取得し、3 DSでメール.txtを暗号化してファイルmail.encに出力する。

# openssl smime -encrypt -in mail.txt -des3 -out mail.enc cert.pem
X.509証明書ファイルのcert.pemから受取人の公開鍵を取得し、私鍵key.pemでS/MIMEメッセージmail.encを解読し、結果をファイルmail.txtに出力します。

# openssl smime -decrypt -in mail.enc -recip cert.pem -inkey key.pem -out mail.txt
cert.pemはX.509証明書ファイルで、私用の鍵key、pemはmail.txtで署名して、証明書はS/MIMEメッセージに含まれて、ファイルmail.sgnに出力します。

# openssl smime -sign -in mail.txt -signer cert.pem -inkey key.pem -out mail.sgn
S/MIMEメッセージmail.sgnを検証し、ファイルmail.txtに出力し、署名者の証明書はS/MIMEメッセージの一部としてmail.sgnに含まれるべきである。

# openssl smime -verify -in mail.sgn -out mail.txt
締め括りをつける
以上は小编で绍介されたLinuxのOpenssl命令と実例コードです。皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。