암호화 도구 설치 및 환경 설정

LinuxBeginner
지금 연습하기

소개

본 랩에서는 Ubuntu 22.04 시스템에서 암호 개발을 위한 기반 환경을 설정합니다. 안전한 암호화 원칙 학습 및 구현 모두에 적절한 환경은 매우 중요합니다. 우리는 두 가지 핵심 구성 요소를 설치할 것입니다. 범용 암호화 및 보안 통신을 위한 강력하고 다재다능한 명령줄 툴킷인 OpenSSL 과 일반적인 암호화 알고리즘에 대한 고수준 레시피와 저수준 인터페이스를 제공하는 Python 의 cryptography 라이브러리입니다.

이 랩이 끝날 때쯤이면 암호화, 해싱, 디지털 서명 및 기타 암호화 작업을 탐색할 준비가 된 작동 환경을 갖추게 될 것입니다.

패키지 목록 업데이트

이 단계에서는 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 의 복잡하고 오류가 발생하기 쉬운 세부 사항을 추상화하기 때문에 종종 "인간을 위한 암호학"이라고 불립니다. 활발하게 개발되고 있으며 암호화가 필요한 대부분의 Python 애플리케이션에 권장됩니다.

방금 확인한 Python 패키지 설치 관리자인 pip를 사용하여 Python 패키지 인덱스 (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"

이 명령어가 아무 출력 없이 실행되면 가져오기 (import) 가 성공했음을 의미합니다. 설치에 문제가 있었다면 Python 은 ImportError 추적 (traceback) 을 출력했을 것입니다. 이 경우 출력이 없다는 것은 성공의 신호입니다.

이 두 가지 확인 사항을 통과하면 암호화 개발 환경이 준비된 것입니다.

요약

이 랩 (lab) 을 완료하신 것을 축하드립니다! Ubuntu 에서 암호화 개발을 위한 기본적이면서도 강력한 환경을 성공적으로 설정했습니다.

본 랩에서 다음 사항들을 학습했습니다.

  • apt update를 사용하여 시스템 패키지 목록을 업데이트하는 방법.
  • 필수적인 openssl 명령줄 툴킷을 설치하는 방법.
  • python3와 그 패키지 관리자인 pip를 설치하는 방법.
  • pip를 사용하여 고급 Python 라이브러리인 cryptography를 설치하는 방법.
  • 모든 구성 요소가 설치되었고 접근 가능한지 확인하는 방법.

이 환경은 OpenSSL 을 사용한 간단한 해싱 및 암호화부터 Python 에서 복잡한 보안 애플리케이션을 구축하는 것까지, 다양한 암호화 개념을 탐색하고 구현하는 데 필요한 기반을 제공합니다.