暗号化ツールのインストールと環境設定

LinuxBeginner
オンラインで実践に進む

はじめに

この実験(Lab)では、Ubuntu 22.04 システム上に暗号開発のための基本的な環境をセットアップします。安全な暗号技術の学習と実装のためには、適切な環境が不可欠です。ここでは、汎用的な暗号化や安全な通信のための堅牢で多機能なコマンドラインツールキットである OpenSSL と、一般的な暗号アルゴリズムへのハイレベルなレシピとローレベルなインターフェースを提供する Python の cryptography ライブラリの 2 つの主要コンポーネントをインストールします。

この実験(Lab)の終わりまでに、暗号化、ハッシュ化、デジタル署名、その他の暗号操作を探求するための動作環境が整います。

パッケージリストの更新

このステップでは、Ubuntu システムのパッケージリストを更新します。新しいソフトウェアをインストールする前に、ローカルのパッケージインデックスを中央リポジトリと同期させることが最善の慣行です。apt update コマンドは、設定されているすべてのソースからパッケージ情報をダウンロードし、利用可能なソフトウェアの最新バージョンをインストールできるようにします。

このコマンドはインストール済みのパッケージをアップグレードするのではなく、利用可能なパッケージのリストを更新するだけであることに注意してください。

パッケージリストを更新するには、ターミナルで次のコマンドを実行します。この操作はシステムレベルのパッケージ情報を変更するため、sudo を使用する必要があります。

sudo apt update

Ubuntu リポジトリからパッケージリストがフェッチされていることを示す出力が表示されます。出力は若干異なる場合がありますが、概ね以下のようになります。

Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates InRelease [119 kB]
Get:3 http://security.ubuntu.com/ubuntu jammy-security InRelease [119 kB]
...
Fetched 3,334 kB in 2s (1,950 kB/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.

OpenSSL のインストール

このステップでは、OpenSSL をインストールします。OpenSSL は、トランスポート層セキュリティ (TLS) およびセキュアソケットレイヤー (SSL) プロトコルのために広く使用されている強力なオープンソースツールキットです。また、汎用的な暗号ライブラリとしても機能し、鍵の生成、証明書の作成、ファイルの暗号化/復号化などのための豊富なコマンドラインツールセットを提供します。

apt install コマンドを使用して openssl パッケージをインストールします。また、インストールを自動的に確認し、確認を求めるプロンプトが表示されないようにする -y フラグも追加します。

ターミナルで次のコマンドを実行します。

sudo apt install -y openssl

コマンドが完了すると、インストールおよび設定されるパッケージの詳細を含む、インストールプロセスを詳述する出力が表示されます。

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
openssl is already the newest version (3.0.2-0ubuntu1.15).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

システムによっては、openssl がすでにインストールされていると表示される場合があります。これは多くのベースイメージで一般的です。コマンドを実行することで、それが存在することを保証します。

Python と pip のインストール

このステップでは、Python とそのパッケージインストーラである pip がインストールされていることを確認します。Python は、その可読性と広範なサードパーティライブラリのエコシステムにより、サイバーセキュリティや暗号技術を含む幅広いアプリケーションで非常に人気のある言語です。pip は、これらの Python パッケージをインストールおよび管理するための標準ツールです。

LabEx 環境には Python がプリインストールされていますが、このコマンドを実行することで、python3python3-pip の両方がシステムのパッケージマネージャによって正しくインストールおよび管理されていることを保証します。

両方のパッケージをインストールするには、次のコマンドを実行します。ここでも、対話的なプロンプトなしで続行するために -y を使用します。

sudo apt install -y python3 python3-pip

出力により、パッケージがインストールされているか、すでに最新バージョンであることが確認されます。

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
python3 is already the newest version (3.10.6-1~22.04).
python3-pip is already the newest version (22.0.2+dfsg-1ubuntu0.4).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Cryptography パッケージのインストール

このステップでは、Python 用の cryptography パッケージをインストールします。これは、暗号アルゴリズムを安全かつ簡単に使用できるようにする、モダンでハイレベルなライブラリです。低レベルの暗号 API の複雑でエラーが発生しやすい詳細の多くを抽象化するため、「人間向けの暗号 (cryptography for humans)」と呼ばれることがよくあります。これは活発に開発されており、暗号化を必要とするほとんどの Python アプリケーションに推奨されています。

先ほど確認した Python パッケージインストーラである pip を使用して、Python Package Index (PyPI) から cryptography ライブラリをダウンロードしてインストールします。

ターミナルで次のコマンドを実行します。

pip install -U cryptography

パッケージとその依存関係をダウンロードおよびインストールする際の pip からの出力を確認できます。-U フラグは、パッケージを最新バージョンに更新するために使用されます。

Successfully installed cffi-2.0.0 cryptography-46.0.3 typing-extensions-4.15.0

インストールの確認

この最終ステップでは、インストールしたすべてのツールが正しく機能していることを検証します。これは、開発に使用を開始する前に、環境が適切に設定されていることを確認するための重要なチェックです。

まず、openssl コマンドラインツールを確認します。version 引数を付けて実行すると、そのバージョン情報が出力され、システムがそれを検索して実行できることが確認されます。

openssl version

出力には、インストールされている OpenSSL のバージョンが表示されるはずです。

OpenSSL 3.0.2 15 Mar 2022 (Library: OpenSSL 3.0.2 15 Mar 2022)

次に、Python の cryptography ライブラリが正しくインストールされており、Python インタプリタによってインポートできることを検証します。これは、コード文字列を実行する -c フラグを使用した簡単な一行コマンドで実行できます。

python -c "import cryptography"

このコマンドが何も出力せずに実行された場合、インポートは成功したことを意味します。インストールに問題があった場合、Python は ImportError のトレースバックを出力します。この場合、出力がないことは成功のサインです。

これら 2 つのチェックに合格すれば、暗号開発環境の準備が整いました。

まとめ

この実験(Lab)の完了、おめでとうございます!Ubuntu 上で、暗号開発のための基本的かつ強力な環境を正常にセットアップできました。

この実験(Lab)では、以下の方法を学びました。

  • apt update を使用してシステムのパッケージリストを更新する方法。
  • 必須の openssl コマンドラインツールキットをインストールする方法。
  • python3 とそのパッケージマネージャである pip をインストールする方法。
  • pip を使用して、ハイレベルな cryptography Python ライブラリをインストールする方法。
  • すべてのコンポーネントがインストールされ、アクセス可能であることを検証する方法。

この環境は、OpenSSL を使用した単純なハッシュ化や暗号化から、Python で複雑なセキュアなアプリケーションを構築するところまで、さまざまな暗号概念を探求し実装するために必要な基盤を提供します。