Professional Documents
Culture Documents
Lab 11 - Khai Thác Công Cụ OpenSSL (Mã Hóa, Hàm Băm, Chữ Ký Điện Tử)
Lab 11 - Khai Thác Công Cụ OpenSSL (Mã Hóa, Hàm Băm, Chữ Ký Điện Tử)
>> Giải mã tập tin mã hóa AES baocaoXYZ.doc.aes thành tập tin baocaoXYZ01.doc
C:\OpenSSL-Win32\bin> openssl enc -d -aes-256-cbc -in
baocaoXYZ01.doc.aes -out baocaoXYZ01.doc
>> Giải mã tập tin baocaoXYZ.doc.e đã mã hóa. Chú ý tập tin này đã được tạo
từ lệnh trên
C:\OpenSSL-Win32\bin> openssl enc -aes-256-cbc -d -a -in
baocaoXYZ02.doc.aes -out baocaoXYZ02.doc
enter aes-256-cbc decryption password: 123456
...
C:\OpenSSL-Win32\bin> openssl prime -generate -bits 64 -hex
E207F23B9AE52181
C:\OpenSSL-Win32\bin> openssl dgst -md5 baocaoXYZ01.doc
MD5(baocaoXYZ01.doc)= 674cb8f80e2e7a7a72d7dcaed7ee45a2
C:\OpenSSL-Win32\bin> openssl dgst -md5 baocaoXYZ02.doc
MD5(baocaoXYZ02.doc)= 674cb8f80e2e7a7a72d7dcaed7ee45a2
C:\OpenSSL-Win32\bin> openssl dgst -md5 baocaoXYZ03.doc
MD5(baocaoXYZ02.doc)= 674cb8f80e2e7a7a72d7dcaed7ee45a2
C:\OpenSSL-Win32\bin> openssl dgst -md5 baocaoXYZ04.doc
MD5(baocaoXYZ02.doc)= 674cb8f80e2e7a7a72d7dcaed7ee45a2
# If you know an existing password’s “salt,” you can duplicate the hash.
C:\OpenSSL-Win32\bin> openssl passwd -salt 8E 123456
#Add a password and a salt value. For a password of "123456" and salt of "mm", you should
get a hashed value of mmYnPHkgeSFA6
C:\OpenSSL-Win32\bin> openssl passwd -crypt -salt mm 123456
mmYnPHkgeSFA6
C:\OpenSSL-Win32\bin> openssl passwd -crypt -salt yourname 123456
yoqvbKm3bGwMU
C:\OpenSSL-Win32\bin> openssl passwd -1 -salt yourname 123456
$1$yourname$FPamUwOOYj5SPuxBaV4MO.
C:\OpenSSL-Win32\bin> openssl passwd -apr1 -salt yourname 123456
$apr1$yourname$qPivXannLx6tYtj21wH2t/
2.11 Mã hóa sử dụng thuật toán mã hóa công khai RSA
>> Chú ý thay XYZ bằng tên của người dùng
>> Xem nội dung khóa công khai trong file XYZpub.key
C:\OpenSSL-Win32\bin> type XYZpub.key
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDB2UG+5qGpqoCnuWni6/41YAOF
...
OhsddJw6ffSg+B/zPCUzwWo4SOr8mpu5e3nH1kznk4I3IrE2y9CbT18IDsTMbmhj
itUSfBwKp1L8tZtD4wIDAQAB
-----END PUBLIC KEY-----
>> Mã hóa và giải mã sử dụng các khóa (XYZpub.key, XYZpri.key) vừa tạo
C:\OpenSSL-Win32\bin> openssl rsautl -encrypt -pubin -inkey
XYZpub.key -in baocao.txt -out baocaoXYZ.txt.rsa
C:\OpenSSL-Win32\bin> openssl rsautl -decrypt -inkey XYZpri.key -out
baocaoXYZ01.txt -in baocaoXYZ.txt.rsa
>> Xem nội dung giấy chứng nhận XYZ.crt (CRT Certificate Signing Request)
C:\OpenSSL-Win32\bin> type XYZ.crt
-----BEGIN CERTIFICATE-----
MIIDpTCCAw6gAwIBAgIJAIqNct4PcYcZMA0GCSqGSIb3DQEBBQUAMIGUMQswCQYD
VQQGEwJWTjERMA8GA1UECBMISGFpIENoYXUxEDAOBgNVBAcTB0RhIE5hbmcxGDAW
BgNVBAoTD0RhaSBob2MgRGEgTmFuZzEaMBgGA1UECxMRRGFpIGhvYyBCYWNoIEto
...
lsHzUGHCC1ZFdGzibdzAxryUOYVd4psYRN05Zc9n3corO27TQPGAzWcsOQYn+mmk
kE3LProXGTb/voVEHq/+B86uu3x035FZHLaJZ6lF4/JjGwJJ+D2v6SMwx7Ipx7H0
UlqbCRhh52wMneRwEF18CPjZu9dNfNeIMQ==
-----END CERTIFICATE-----
C:\OpenSSL-Win32\bin>
>> Từ cửa sổ Windows, chạy tập tin XYZ.pfx để cài đặt chữ kí điện tử vừa tạo. Xuất
hiện cửa sổ Certificate Import Wizard, chọn nút Next...
2.11.4 Tạo file chứng chỉ số XYZ.pem từ XYZ.pfx
>> Tạo tập tin XYZ.pem từ tập tin XYZ.pfx
File .pem là tập tin định dạng chứng nhận Base64-encoded, như chứng nhận PEM-
encoded X509; sử dụng để chứng thực bảo mật cho một trang web, thông thường
được nhập từ một Apache Web server dựa trên nền Unix, Linux và tương thích với
các ứng dụng OpenSSL.
C:\OpenSSL-Win32\bin> openssl pkcs12 -in XYZ.pfx -out XYZ.pem -nodes
Enter Import Password:
MAC verified OK
C:\OpenSSL-Win32\bin> type XYZpri.pem
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-256-CBC,80C970AE0B2838796CCA2532B88796F5
kLBRwN90W6VvrTz18yvqdU7497Esp/Cv1yQk81PEBmCkP3Q24VGkFg/coprFt21T
p79CTgZiMtS1q58E0FqdVxnTyjz5UaCOM1nYBvhD5x7UoU3j0HfHKf6/7+fRxJGk
10YMjZEQ6LhNfojbrwBlo7Mk3faRabWPUiGp8qKldMZTT51b2TcxDc5hnwBaGHD+
...
-----END RSA PRIVATE KEY-----
>> Xem nội dung khóa công khai trong tập tin XYZpub.pem
C:\OpenSSL-Win32\bin> type XYZpub.pem
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCoXV2n8jZLOs68a9VjXMU1tIYB
10YMjZEQ6LhNfojbrwBlo7Mk3faRabWPUiGp8qKldMZTT51b2TcxDc5hnwBaGHD+
...
-----END PUBLIC KEY-----
C:\OpenSSL-Win32\bin> dir /w
[.] [..] baocao.txt baocaoXYZ.msg XYZ.pem
C:\OpenSSL-Win32\bin> type baocaoXYZ.msg
To: yyy@gmail.com
From: XYZ@gmail.com
Subject: My signed message
MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature";
micalg=sha1; boundary="----506DCA19FAE915BEA60D41A3A5AA37C0"
This is an S/MIME signed message
------506DCA19FAE915BEA60D41A3A5AA37C0
NOI DUNG TUYET MAT
menh mong muon mau mot mau mua
moi mat mien man mai mit mu
------506DCA19FAE915BEA60D41A3A5AA37C0
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
MIIF3gYJKoZIhvcNAQcCoIIFzzCCBcsCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3
DQEHAaCCA6kwggOlMIIDDqADAgECAgkAio1y3g9xhxkwDQYJKoZIhvcNAQEFBQAw
gZQxCzAJBgNVBAYTAlZOMREwDwYDVQQIEwhIYWkgQ2hhdTEQMA4GA1UEBxMHRGEg
...
------506DCA19FAE915BEA60D41A3A5AA37C0--
Kết quả nhận được tập tin baocaoXYZ.msg đã được mã hóa và có chữ kí điện tử.
Dùng WordPad để xem nội dung tập tin.
Hình 1.2.9. Kết quả ký vào tập tin thư điện tử baocaoXYZ.msg
2.14 Sử dụng OpenSSL như một chương trình kết nối đến một Web server và hiển
thị chuỗi certificate chain.
C:\OpenSSL-Win32\bin> openssl s_client -connect www.facebook.com:443
-showcerts
2.15 Benchmarking
The OpenSSL developers have built a benchmarking suite directly into the openssl
binary. It’s accessible via the speed option. It tests how many operations it can
perform in a given time, rather than how long it takes to perform a given number of
operations. There are two sets of results. The first reports how many bytes per second
can be processed for each algorithm, the second the times needed for sign/verify
cycles.
C:\OpenSSL-Win32\bin> openssl speed
You can run any of the algorithm-specific subtests directly.
# test rsa speeds
openssl speed rsa