Sinh cặp khóa RSA bất đối xứng với độ dài tùy chọn, xuất PEM/DER và kèm hướng dẫn bảo vệ khóa.
Features
- Độ dài tùy chỉnh: Hỗ trợ độ dài từ 256 đến 16384 bit đáp ứng nhiều nhu cầu
- Định dạng chuẩn: Xuất khóa dạng PEM/DER tương thích thư viện phổ biến
- Ngẫu nhiên an toàn: Dùng node-forge với nguồn ngẫu nhiên mật mã chất lượng cao
- Kiểm tra hợp lệ: Xác thực độ dài và cấu trúc khóa theo thời gian thực
Use Cases
- Tạo chứng chỉ SSL/TLS: Tạo cặp khóa RSA cho chứng chỉ SSL/TLS để bảo vệ giao tiếp web. Sử dụng khóa 2048 bit cho chứng chỉ tiêu chuẩn, 3072-4096 bit cho chứng chỉ xác thực mở rộng (EV). Cần thiết cho mã hóa HTTPS, bảo vệ dữ liệu người dùng và thiết lập niềm tin với trình duyệt và người dùng.
- Xác thực khóa SSH: Tạo cặp khóa RSA cho xác thực máy chủ SSH không cần mật khẩu. Tạo khóa công khai để thêm vào authorized_keys trên máy chủ, cho phép truy cập từ xa an toàn mà không cần mật khẩu. Được sử dụng rộng rãi bởi nhà phát triển, quản trị viên hệ thống và nhóm DevOps để quản lý máy chủ an toàn.
- Ký mã và phân phối phần mềm: Tạo cặp khóa RSA cho ký mã để xác minh tính xác thực và tính toàn vẹn của phần mềm. Ký các tệp thực thi, trình cài đặt và gói để ngăn chặn giả mạo và phân phối phần mềm độc hại. Cần thiết cho Windows Authenticode, macOS Gatekeeper và ký gói Linux.
- Chữ ký số và xác minh tài liệu: Tạo cặp khóa RSA cho chữ ký số trên tài liệu pháp lý, hợp đồng và giao dịch. Ký tài liệu bằng khóa bí mật, xác minh chữ ký bằng khóa công khai, đảm bảo không thể từ chối và tính toàn vẹn của tài liệu. Được sử dụng trong nền tảng chữ ký điện tử, giao dịch blockchain và tuân thủ pháp lý.
- Xác thực API và token JWT: Tạo cặp khóa RSA cho xác thực API và ký token JWT. Sử dụng khóa bí mật để ký token, khóa công khai để xác minh, cho phép xác thực không trạng thái an toàn. Cần thiết cho kiến trúc microservices, OAuth 2.0 và bảo mật API hiện đại.
- Mã hóa email (PGP/GPG): Tạo cặp khóa RSA cho mã hóa email PGP/GPG và nhắn tin an toàn. Mã hóa email bằng khóa công khai của người nhận, giải mã bằng khóa bí mật, đảm bảo giao tiếp bí mật. Được sử dụng bởi nhà báo, doanh nghiệp và cá nhân quan tâm đến quyền riêng tư cho giao tiếp email an toàn.
- VPN và bảo mật mạng: Tạo cặp khóa RSA cho kết nối VPN, đường hầm an toàn và mã hóa mạng. Thiết lập mạng riêng ảo an toàn, bảo vệ dữ liệu đang truyền và cho phép truy cập từ xa an toàn. Được sử dụng trong mạng doanh nghiệp, dịch vụ đám mây và giao thức giao tiếp an toàn.
- Blockchain và ví tiền điện tử: Tạo cặp khóa RSA cho ví tiền điện tử và ứng dụng blockchain. Bảo vệ khóa bí mật của ví, ký giao dịch blockchain và xác minh tính xác thực của giao dịch. Được sử dụng trong sàn giao dịch tiền điện tử, ứng dụng ví và hệ thống nhận dạng dựa trên blockchain.
Usage Guide
- Thiết lập tham số: Chọn độ dài khóa (2048/3072/4096 bit) và định dạng xuất phù hợp với hệ thống tích hợp.
- Sinh cặp khóa: Nhấn "Sinh lại cặp khóa" để tạo khóa mới, chờ tới khi tiến trình hoàn tất.
- Kiểm tra và sao lưu: Xem lại khóa vừa sinh, sao chép và lưu Riêng tư key vào nơi bảo mật, Công khai key có thể lưu riêng.
- Xuất khẩu & tích hợp: Xuất PEM/DER, tải xuống hoặc dán vào cấu hình OpenSSL, SSH, JWT hay ứng dụng server.
Technical Details
Thuật toán sinh khóa
Dựa trên độ khó phân tích số nguyên lớn: chọn p, q nguyên tố, tính n=p×q, φ(n)=(p-1)(q-1), chọn e (thường 65537) và tìm d sao cho e×d≡1 mod φ(n). Công cụ sử dụng thuật toán Miller–Rabin và node-forge để đảm bảo ngẫu nhiên mật mã.
Định dạng khóa chuẩn
Xuất khóa dạng PEM (Base64 có Tiêu đề/Chân trang) hoặc DER (nhị phân). Tuân thủ PKCS#1 cho RSA và PKCS#8 cho khóa riêng khi cần tương thích đa hệ thống.
Quản lý khóa
Khuyến nghị: dùng nguồn ngẫu nhiên mật mã, khóa tối thiểu 2048 bit, bảo vệ Riêng tư key bằng passphrase/KMS, thiết lập quy trình quay vòng khóa và kiểm soát truy cập chặt chẽ.
Frequently Asked Questions
- Cặp khóa dùng trong tình huống nào?
- HTTPS/SSL, SSH, ký mã (code signing), email PGP/GPG, JWT, chữ ký tài liệu, VPN... Bất cứ nơi nào cần trao đổi khóa an toàn hoặc ký số.
- Khác biệt PEM và DER?
- PEM là văn bản Base64 có Tiêu đề/Chân trang, dễ sao chép. DER là nhị phân nhỏ gọn, dùng cho Java hoặc một số hệ thống chứng chỉ. Đa số trường hợp nên dùng PEM.
- Làm sao kiểm tra khóa hợp lệ?
- Dùng OpenSSL: `openssl rsa -in Riêng tư.pem -check`. Hoặc thử mã hóa bằng Công khai key rồi giải mã bằng Riêng tư key, đảm bảo khôi phục dữ liệu ban đầu.
- Có thể tạo Công khai key từ Riêng tư key?
- Có, Riêng tư key chứa đủ thông tin để suy ra Công khai key (n, e). Lệnh: `openssl rsa -in Riêng tư.pem -pubout -out Công khai.pem`. Ngược lại thì không thể.
- Lưu Riêng tư key thế nào cho an toàn?
- Mã hóa Riêng tư key bằng passphrase, lưu trong password manager hoặc HSM, giới hạn quyền truy cập (chmod 600), không commit lên Git, sao lưu ngoại tuyến và bảo vệ bằng MFA.
Related Documentation
- NIST SP 800-57 Phần 1 - Khuyến nghị quản lý khóa mật mã, độ dài và vòng đời cho RSA.
- OWASP Cryptographic Storage - Thực hành lưu trữ khóa an toàn
- API mật mã Web theo MDN - API sinh khóa trên trình duyệt
- RFC 8017 - PKCS #1 - Đặc tả chuẩn RSA bao gồm định dạng khóa và thuật toán sinh khóa.
- RFC 5246 - TLS - TLS và quản lý khóa RSA