OpenSSL ๋ช
๋ น์ด๋ฅผ ์ด์ฉํ์ฌ ์/๋ณตํธํ๋ฅผ ํด๋ณด์
ํด๋น ๋ช
๋ น์ด์ ๋ํ ๋ฉ๋ด์ผ์ ์ฐธ์กฐ ํ์๋ค.
๋จผ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ธ๋ญ ์ํธ ๋ชฉ๋ก์ ํ์ธ ํด๋ณด์
openssl enc -ciphers
[RANIX@DESKTOP-VOGBKQM ~]$ openssl enc -ciphers
Supported ciphers:
-aes-128-cbc -aes-128-cfb -aes-128-cfb1
-aes-128-cfb8 -aes-128-ctr -aes-128-ecb
-aes-128-ofb -aes-192-cbc -aes-192-cfb
-aes-192-cfb1 -aes-192-cfb8 -aes-192-ctr
-aes-192-ecb -aes-192-ofb -aes-256-cbc
-aes-256-cfb -aes-256-cfb1 -aes-256-cfb8
-aes-256-ctr -aes-256-ecb -aes-256-ofb
-aes128 -aes128-wrap -aes192
-aes192-wrap -aes256 -aes256-wrap
-aria-128-cbc -aria-128-cfb -aria-128-cfb1
-aria-128-cfb8 -aria-128-ctr -aria-128-ecb
-aria-128-ofb -aria-192-cbc -aria-192-cfb
-aria-192-cfb1 -aria-192-cfb8 -aria-192-ctr
-aria-192-ecb -aria-192-ofb -aria-256-cbc
OpenSSL ๋ช ๋ น์ด๋ฅผ ์ฐ๋ค ๋ณด๋ฉด Base64 ์ธ์ฝ๋ฉ/๋์ฝ๋ฉ์ด ํ์ ํ ๋ ๊ฐ ๋ง์์ ๊ฐ๋จํ Base64 ์ธ์ฝ๋ฉ/๋์ฝ๋ฉ ๋ช ๋ น์ด ์ฌ์ฉ๋ฒ์ ๊ธฐ๋กํ๋ค. Base64๋ ์ํธํ๊ธฐ๋ฅ์ ์๋๊ณ ์ธ์ฝ๋ฉ/๋์ฝ๋ฉ์ ์ํ ๊ฒ์ด๋ค.
Base64 ์ธ์ฝ๋ฉ
openssl base64 -in file.bin -out file.b64
Base64 ๋์ฝ๋ฉ
openssl base64 -d -in file.b64 -out file.bin
์ด์ ๋ฐ์ดํ ์ํธํ ๋ณตํธํ๋ฅผ ํด๋ณด์ ์ฐ์ ํ๋ ๋ฐฉ์์ KDF ๋ฅผ ์ด์ฉํด ํค๋ฅผ ์์ฑ ํ ์ํธํ/๋ณตํธํ ํ๋ ๋ฐฉ์์ด๋ค.
์ด ๋ฐฉ์์์๋ ํจ์ค์๋๋ฅผ ๋ฐ์ผ๋ฉด ๋ด๋ถ์ ์ผ๋ก Iter ๊ฐ๊ณผ Salt ๊ฐ์ ์ฌ์ฉ ํด ํค๋ฅผ ์์ฑ ํ๊ณ ์์ฑ๋ ํค๋ก ์ํธํ ํ๋ ๋ฐฉ์์ด๋ค.
๋ฌผ๋ก iter ๊ฐ๊ณผ Salt ๊ฐ์ ์ง์ ๋ ๊ฐ๋ฅ ํ์ง๋ฉด ์ฌ๊ธฐ์๋ ๋ด๋ถ ์ง์ ๊ฐ์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค.
PBKDF2 ์ด์ฉ AES-128 ์ํธํ
openssl enc -aes128 -pbkdf2 -in file.txt -out file.aes128
์ด๋ ํจ์ค์๋๋ฅผ ์
๋ ฅํ๋ค. ์ด ํจ์ค์๋๋ ๋ณตํธํ ํ ๋ ์
๋ ฅํ๊ฑฐ๋ -pass ์ต์
์์ ๊ฐ์ ๋ฃ์ด ์ฃผ๋ฉด ๋๋ค.
์ฌ๊ธฐ์ pbkdf2 ๋ฐฉ์์ผ๋ก ํจ์ค์๋ ๊ฐ์ ๊ฐ์ง๊ณ ์ํธํ ํค๋ฅผ ๋ง๋ค์ด์ ์ํธํ๋ฅผ ํ๊ฒ ๋๋ค.
PBKDF2 ์ด์ฉ ๋ณตํธํ
openssl enc -aes128 -pbkdf2 -d -in file.aes128 -out file.txt -pass pass:<password>
์ด์ ๋ชจ๋ ์ง์ ์๋ณตํธํ
์ํธํ
openssl enc -e -aes-128-cbc -in test.txt -out test.enc
์ฌ๊ธฐ์ aes-128-cbc ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ค.
์ด๋ ์ํธํ ํ๋ฉด ํจ์ค์๋๋ฅผ ์
๋ ฅํ๊ณ ๋ด๋ถ์ ์ผ๋ก kdf ๋ฅผ ์ด์ฉํด ์ํธํ ํ๋ค.
๋ณตํธํ
openssl enc -d -aes-128-cbc -in test.enc -out test.dec
์ํธํ ์ ๋ ฅ์ ์ฌ์ฉํ ํจ์ค์๋๋ฅผ ์ ๋ ฅํ๋ฉด ๋ณตํธํ ํ๋ค.
์ค์ ํค์ IV ์ง์ ์๋ณตํธํ๋ฅผ ํด๋ณด์
์ํธํ
openssl enc -e -aes-128-cbc -in test.txt -out test.e1 -K 83A0423EB66693020B7A78AA0F08DE6C -iv EBA02B3EF93F14FDEB64E09A815DE8E8
๋ณตํธํ
openssl enc -d -aes-128-cbc -in test.e1 -out test.d1 -K 83A0423EB66693020B7A78AA0F08DE6C -iv EBA02B3EF93F14FDEB64E09A815DE8E8
์/๋ณตํธํ์ -K ์ ํค๊ฐ๊ณผ -iv ์ Initial Vector ๊ฐ์ผ๋ก Hex ์ธ์ฝ๋ฉ ๋ ๊ฐ์ ๋ฃ์ด ์ฃผ๋ฉด ๋๋ค.
์ฐธ๊ณ ๋ก ์ค์ ๋ก -K ์ต์
์ ์ง์ ์
๋ ฅํ๋ฉด KDF ๋ฐฉ์์ด ํ์ ์์ด์ Salt ๊ฐ์ ํ์๊ฐ ์๋ค.
ํ์ฌ OpenSSL ๋ช
๋ น์ด์์๋ GCM ๋ชจ๋์ CCM ๋ชจ๋๋ ์ง์ ํ์ง ์๋๋ค.
๊ทธ๋ฆฌ๊ณ ์์ผ๋ก๋ ์ง์์ ํ์ง ์๋๋ค๊ณ ํ๋ OpenSSL ๋ช
๋ น์ด๋ก๋ ํ
์คํธ ํ๊ธฐ๋ ์ด๋ ต๊ฒ ๋ค์.
๊ทธ๋๋ GCM ๋ช ๋ น์ด์ CCM ์ ๋ํ ๋ฐ์ดํ๋ BerEditor์์ ์/๋ณตํธํ ๊ธฐ๋ฅ์ ์ด์ฉํ๋ฉด ๋๋ค.
'Manual > OpenSSL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[OpenSSL] MAC ( Message Authentication Code ) ๋ช ๋ น์ด (0) | 2023.05.10 |
---|---|
[OpenSSL] Message Digest ( Hash function ) ๋ช ๋ น์ด (0) | 2023.05.08 |
[OpenSSL] CA.pl ๋ช ๋ น์ด (0) | 2023.04.25 |
[OpenSSL] CMP ๋ช ๋ น์ด ์ฌ์ฉ๋ฒ (0) | 2023.04.07 |
[OpenSSL] RSA์ฉ RootCA ์์ฑ ๋ฐ SSL ์ธ์ฆ์ ๋ง๋ค๊ธฐ (0) | 2023.04.07 |