GPGはrpmとyum repoを発行し検証する
https://blog.packagecloud.io/eng/2014/11/24/howto-gpg-sign-verify-rpm-packages-yum-repositories/本稿では、GPGの署名がRPMがファイルとYUM倉庫に適用されたこと、およびこれらの署名をどのように生成し検証するかを示す.また、pythonライブラリpygpgmeについても説明し、RPMおよびYUMの倉庫でGPG署名を検証する方法についても説明します.
私たちはGPGで私たちが発表したデータに署名して、消費者は私たちのデータを取得して、私たちのデータの署名も取得して、私たちの署名を使って私たちのデータが人に改ざんされていないことを検証することができて、私たちが提供した原始データです.RPMパッケージとYUM repo metadataはいずれもGPGで署名できる.
Pygpgmeは実際にGPGMEの機能をパッケージ化したpythonライブラリであり、GPGをより直接使用することができる.GPGMEは、GPG key、暗号化データ、復号化データなどを取得するのに非常に便利なインタフェースを提供しています.YUMはpythonで開発されているので、YUMはこのライブラリを大量に使用してRPMとYUM repo Metabataのデジタル情報を検証しています.
RPMファイル形式はバイナリファイル形式であり、以下を含む.は「lead」と呼ばれるデータ構造であるが、多くはすでに「header」データ構造に取って代わられている である. GPG署名を含む署名部分は、作成後に改ざんされていないことを検証するために使用することができる. ヘッダは、RPMパケットおよびファイルに関する内部情報 を格納する一連のインデックスを含む. CPI 0圧縮アーカイブされたgzipは、ファイルシステムの真のファイルに書き込まれるRPMファイルを含むGPG署名がヘッダとCPIO計算に基づいて生成され、署名部分に格納される.rpmsignまたはrpm--addsignでRPMsに署名することができます.例えばrpmがfilenameですrpm、あなたのSIGN Keyは です
あなたのrpmacrosは
rpmパッケージに署名できます
repo metadataに署名する目的はRPMに署名する目的と同じです.改ざんを防止するために検証された.createrepoは、repoを作成するときに、自動的にrepo metadataにGPG署名を生成しません.コマンドを使用して、別々のGPG署名を生成できます.repo metadataがrepomdであると仮定します.xmlでは、次のコマンドを実行できます.
このコマンドは「repodata/repomd.xml.GPG署名のASCIIバージョンを含むasc’のファイル.Repo configのいくつかのオプション構成により、YUMクライアントはこのファイルをアクティブに要求し、この署名を検証しようとします.
GPG keysをよく検証するためには、クライアントで以下のことをしなければなりません. pygpgmeパッケージをインストールする必要があります.これにより、yumはGPG署名を検証できます.このパッケージをインストールしないと、yumはGPG署名の検証をスキップします.このパッケージをインストールするには、EPEL repoをインストールする必要があります.RHEL 6/CentOS 6以降のシステムでは、pygpgmeはyumとともにインストールされます. YUM reposは.repoのファイルが存在し、/etc/yum.repos.d/下、例えば repoファイルでは、以下のオプション
GPG署名の生成と検証は,パケット自体とストレージパケットのrepoの認証を確立する上で重要である.インストールするパッケージが仕入先提供パッケージであることを確認し、パッケージを取得する倉庫は仕入先提供の倉庫であり、インストールするパッケージが安全であることを保証する唯一の方法です.RPMとYUM repoにGPGを発行し、GPGを検証することは特に簡単ではないが、複雑ではない.あなたのGPGを発行して検証してみましょう.
GPGサインが必要なのは何ですか?
私たちはGPGで私たちが発表したデータに署名して、消費者は私たちのデータを取得して、私たちのデータの署名も取得して、私たちの署名を使って私たちのデータが人に改ざんされていないことを検証することができて、私たちが提供した原始データです.RPMパッケージとYUM repo metadataはいずれもGPGで署名できる.
Pygpgme
Pygpgmeは実際にGPGMEの機能をパッケージ化したpythonライブラリであり、GPGをより直接使用することができる.GPGMEは、GPG key、暗号化データ、復号化データなどを取得するのに非常に便利なインタフェースを提供しています.YUMはpythonで開発されているので、YUMはこのライブラリを大量に使用してRPMとYUM repo Metabataのデジタル情報を検証しています.
RPM GPG署名
RPMファイル形式はバイナリファイル形式であり、以下を含む.
Cara Wang
あなたのrpmacrosは
%_gpg_name Cara Wang
rpmパッケージに署名できます
rpm --addsign filename.rpm
RPM Repo metadata GPG署名
repo metadataに署名する目的はRPMに署名する目的と同じです.改ざんを防止するために検証された.createrepoは、repoを作成するときに、自動的にrepo metadataにGPG署名を生成しません.コマンドを使用して、別々のGPG署名を生成できます.repo metadataがrepomdであると仮定します.xmlでは、次のコマンドを実行できます.
gpg --detach-sign --armor repodata/repomd.xml
このコマンドは「repodata/repomd.xml.GPG署名のASCIIバージョンを含むasc’のファイル.Repo configのいくつかのオプション構成により、YUMクライアントはこのファイルをアクティブに要求し、この署名を検証しようとします.
RPMとmetadataの署名認証を可能にする
GPG keysをよく検証するためには、クライアントで以下のことをしなければなりません.
/etc/yum.repos.d/my_stuff.repo
gpgcheck=1 RPM GPG
repo_gpgcheck=1 YUM repo metadata GPG
で具体的なGPG keysが選択されており、ファイルまたはURLを直接指定することができます.gpgkey=https://packagecloud.io/gpg.key
または gpgkey=https://packagecloud.io/gpg.key
https://some-other-website.com/another_gpg.key
のようにURLとして指定すると、YUMクライアントは自動的にインポートをダウンロードします.まとめ
GPG署名の生成と検証は,パケット自体とストレージパケットのrepoの認証を確立する上で重要である.インストールするパッケージが仕入先提供パッケージであることを確認し、パッケージを取得する倉庫は仕入先提供の倉庫であり、インストールするパッケージが安全であることを保証する唯一の方法です.RPMとYUM repoにGPGを発行し、GPGを検証することは特に簡単ではないが、複雑ではない.あなたのGPGを発行して検証してみましょう.