1. Yêu cầu phần cứng tối thiểu và kiến trúc hệ thống
Mã hóa kháng lượng tử (Post-Quantum Cryptography - PQC) sử dụng các thuật toán có kích thước khóa lớn hơn nhiều so với RSA hay ECC truyền thống, đòi hỏi tài nguyên CPU và RAM cao hơn đáng kể.
Để triển khai PostgreSQL 16 với các extension PQC và OpenSSL 3.2 trên Ubuntu 24.04, cấu hình tối thiểu được khuyến nghị như sau:
- CPU: Tối thiểu 4 nhân vật lý (vCPU), ưu tiên kiến trúc x86_64 hoặc ARM64 hỗ trợ tập lệnh AES-NI và SHA-NI để tăng tốc tính toán crypto.
- RAM: Tối thiểu 8GB. Cần 4GB cho PostgreSQL (shared_buffers) và 4GB dành cho các buffer mã hóa và bộ nhớ đệm của OpenSSL.
- Disk: SSD NVMe là bắt buộc. Các thuật toán PQC tạo ra lượng I/O lớn khi ký và mã hóa dữ liệu. Dung lượng tối thiểu 50GB (20GB cho OS, 30GB cho DB).
- Network: Băng thông 1Gbps ổn định để đồng bộ dữ liệu và tải các gói cài đặt lớn.
Việc không đáp ứng các yêu cầu này sẽ dẫn đến tình trạng CPU load 100% liên tục, gây ra deadlock hoặc timeout khi thực hiện các giao dịch TLS với PQC.
2. Tải và kiểm tra tính toàn vẹn Ubuntu 24.04 LTS
Chúng ta cần tải bản ISO chính thức của Ubuntu 24.04 LTS (Noble Numbat) để đảm bảo kernel mới nhất và các thư viện crypto mặc định đã được cập nhật.
Tải file ISO 64-bit từ mirror chính thức và kiểm tra chữ ký SHA256 để đảm bảo file không bị giả mạo trong quá trình truyền tải.
wget -O ubuntu-24.04-live-server-amd64.iso https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso
File ISO được tải về thư mục hiện tại với dung lượng khoảng 1.5GB - 2GB.
Tiếp theo, tải file checksum chính thức để đối chiếu.
wget https://releases.ubuntu.com/24.04/SHA256SUMS
File SHA256SUMS chứa danh sách hash của các file ISO chính thức.
Thực hiện lệnh kiểm tra tính toàn vẹn của file ISO vừa tải.
sha256sum -c SHA256SUMS | grep ubuntu-24.04-live-server-amd64.iso
Kết quả mong đợi là dòng chữ ubuntu-24.04-live-server-amd64.iso: OK. Nếu thấy FAILED, hãy xóa file và tải lại.
3. Cài đặt Ubuntu 24.04 và cập nhật Kernel/Crypto Libraries
Giả định bạn đã boot vào môi trường cài đặt Ubuntu Server 24.04 từ file ISO đã kiểm tra ở bước trên. Trong quá trình cài đặt, chọn phân vùng ổ cứng và tạo user admin.
Sau khi hệ điều hành boot lần đầu, đăng nhập bằng user root hoặc user có quyền sudo để thực hiện cập nhật toàn bộ hệ thống.
sudo apt update && sudo apt upgrade -y
Hệ thống sẽ tải về và cài đặt các gói cập nhật mới nhất cho Ubuntu 24.04, bao gồm các bản vá bảo mật và kernel mới.
Ubuntu 24.04 đi kèm với OpenSSL 3.2, nhưng chúng ta cần đảm bảo các thư viện crypto được cài đặt đầy đủ nhất để hỗ trợ các extension PQC sau này.
sudo apt install -y openssl libssl3 libssl-dev build-essential gcc g++ make
Các gói libssl-dev và build-essential cần thiết để biên dịch các extension PostgreSQL từ nguồn (source code) trong các phần tiếp theo.
Để đảm bảo kernel hỗ trợ đầy đủ các tập lệnh phần cứng cho mã hóa, hãy kiểm tra phiên bản kernel và các module crypto.
uname -r && grep -E "aes|sha" /proc/crypto | head -n 10
Kết quả mong đợi: Phiên bản kernel >= 6.8 và danh sách các algorithm như aes-x86_64, sha1-sha256-x86_64 xuất hiện, chứng tỏ phần cứng đã sẵn sàng.
4. Cài đặt PostgreSQL 16 từ APT Repository chính thức
Ubuntu 24.04 mặc định có thể chưa có PostgreSQL 16 trong repository chính. Chúng ta cần thêm repository chính thức của Postgres.org để có phiên bản mới nhất.
Cài đặt các công cụ cần thiết để import key GPG của Postgres.
sudo apt install -y wget gnupg lsb-release
Các gói wget, gnupg và lsb-release được cài đặt thành công.
Thêm key GPG của Postgres vào hệ thống để xác minh tính xác thực của gói.
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /usr/share/keyrings/postgresql-archive-keyring.gpg
File key GPG được lưu vào thư mục keyrings của hệ thống.
Thêm repository PostgreSQL 16 vào danh sách nguồn cập nhật của Ubuntu.
echo "deb [signed-by=/usr/share/keyrings/postgresql-archive-keyring.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
File cấu hình repository được tạo tại /etc/apt/sources.list.d/pgdg.list.
Cập nhật lại danh sách gói và cài đặt PostgreSQL 16.
sudo apt update && sudo apt install -y postgresql-16 postgresql-contrib-16
PostgreSQL 16 cùng với các extension mặc định được cài đặt. Service postgresql tự động khởi động.
Verify việc cài đặt bằng cách kiểm tra phiên bản và trạng thái service.
pg_config --version && systemctl status postgresql
Kết quả mong đợi: Dòng chữ "PostgreSQL 16.x.x" và trạng thái service là active (running).
5. Cài đặt OpenSSL 3.2 từ Source (Nếu cần version mới hơn mặc định)
Mặc dù Ubuntu 24.04 đã có OpenSSL 3.2, nhưng để chuẩn bị cho các thuật toán PQC (như Kyber, Dilithium) chưa được tích hợp vào bản phát hành stable của OS, chúng ta cần biên dịch OpenSSL từ source với các patch cần thiết.
Tạo thư mục làm việc và tải source code OpenSSL 3.2 từ trang chủ.
sudo mkdir -p /opt/build && cd /opt/build && wget https://www.openssl.org/source/openssl-3.2.1.tar.gz
File source code được tải về thư mục /opt/build.
Giải nén file archive.
tar -xzf openssl-3.2.1.tar.gz && cd openssl-3.2.1
Hệ thống giải nén ra thư mục openssl-3.2.1.
Cấu hình build với các tùy chọn hỗ trợ PQC và các thuật toán hiện đại. Lưu ý: Đây là bước chuẩn bị, các patch PQC cụ thể sẽ được apply trong Phần 2.
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl --libdir=lib enable-ec_nistp_64_gcc_128 enable-asm enable-tls1_3 enable-md5 enable-rc4 enable-weak-ssl-ciphers no-shared
Lệnh config tạo ra file Makefile tùy chỉnh cho môi trường của bạn.
Biên dịch và cài đặt OpenSSL mới vào thư mục /usr/local/ssl.
make -j$(nproc) && sudo make install
Quá trình biên dịch có thể mất vài phút. Kết quả là thư viện OpenSSL mới được đặt vào /usr/local/ssl/lib và /usr/local/ssl/include.
Verify phiên bản OpenSSL vừa biên dịch.
/usr/local/ssl/bin/openssl version -a
Kết quả mong đợi: Dòng đầu tiên hiển thị "OpenSSL 3.2.1" và đường dẫn build là /usr/local/ssl.
6. Cài đặt Postgres-XC (PostgreSQL-XC) cho khả năng mở rộng
Postgres-XC là một phân phối của PostgreSQL hỗ trợ sharding và xử lý song song, rất quan trọng khi triển khai các thuật toán PQC nặng nề trên nhiều node. Chúng ta sẽ cài đặt từ source để tích hợp tốt nhất với OpenSSL 3.2 vừa biên dịch.
Tải source code của Postgres-XC (phiên bản tương thích với PG16).
cd /opt/build && wget https://github.com/postgres-xl/postgres-xl/archive/refs/heads/master.tar.gz && tar -xzf master.tar.gz
Source code được tải và giải nén vào thư mục postgres-xl-master.
Chuyển vào thư mục source và thực hiện bước configure. Chúng ta cần chỉ định đường dẫn đến OpenSSL 3.2 mới biên dịch và PostgreSQL 16.
cd postgres-xl-master && ./configure --prefix=/usr/local/pgsql-xc --with-openssl=/usr/local/ssl --with-pg-config=/usr/lib/postgresql/16/bin/pg_config
Lệnh configure kiểm tra các thư viện và tạo file Makefile. Nếu không tìm thấy OpenSSL, hãy kiểm tra lại bước 5.
Biên dịch và cài đặt Postgres-XC.
make -j$(nproc) && sudo make install
Hệ thống biên dịch các binary của Postgres-XC và cài đặt vào /usr/local/pgsql-xc.
Cấu hình biến môi trường để hệ thống nhận diện các binary mới.
echo "export PATH=/usr/local/pgsql-xc/bin:\$PATH" | sudo tee -a /etc/profile.d/pgsql-xc.sh && source /etc/profile.d/pgsql-xc.sh
Biến PATH được cập nhật, bạn có thể chạy lệnh pgxc-master hoặc pgxc-datanode ngay lập tức.
Verify việc cài đặt bằng cách kiểm tra phiên bản.
pg_config --version
Kết quả mong đợi: Hiển thị phiên bản PostgreSQL 16 (được build bởi Postgres-XC).
7. Tổng hợp và Kiểm tra Môi trường (Verification)
Tiến hành kiểm tra tổng thể để đảm bảo tất cả các thành phần đã được cài đặt chính xác và sẵn sàng cho Phần 2 (Cấu hình OpenSSL PQC).
Thực thi script kiểm tra nhanh các thành phần.
echo "=== Kernel ===" && uname -r; echo "=== Ubuntu Version ===" && lsb_release -a; echo "=== OpenSSL (System) ===" && openssl version; echo "=== OpenSSL (Custom) ===" && /usr/local/ssl/bin/openssl version; echo "=== PostgreSQL ===" && /usr/lib/postgresql/16/bin/postgres --version; echo "=== Postgres-XC ===" && /usr/local/pgsql-xc/bin/pg_config --version
Kết quả mong đợi:
- Kernel: >= 6.8
- Ubuntu: 24.04 LTS
- OpenSSL System: 3.2.x
- OpenSSL Custom: 3.2.1 (hoặc version bạn tải)
- PostgreSQL: 16.x.x
- Postgres-XC: 16.x.x (hoặc version tương ứng)
Khởi động lại service PostgreSQL để đảm bảo nó chạy với các thư viện mới nhất (nếu có thay đổi).
sudo systemctl restart postgresql && sudo systemctl status postgresql
Service PostgreSQL khởi động lại và chạy ổn định (active).
Điều hướng series:
Mục lục: Series: Triển khai Database Quantum-safe với Postgres và Ubuntu 24.04
Phần 2: Cấu hình OpenSSL 3.2 cho các thuật toán kháng lượng tử (PQC) »