Manual/OpenSSL

[OpenSSL] pkeyutl ๋ช…๋ น์–ด

JayKim๐Ÿ™‚ 2023. 5. 19. 09:52

์ด ๋ช…๋ น์–ด๋Š” ๊ณต๊ฐœํ‚ค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹คํ–‰ ๋ช…๋ น์–ด์ด๋‹ค.

์ด ๋ฌธ์„œ๋Š” https://www.openssl.org/docs/man3.0/man1/openssl-pkeyutl.html ์ฐธ์กฐ ํ•˜์—ฌ ๋งŒ๋“ค์—ˆ๋‹ค.

  • ๊ฐœ์ธํ‚ค๋ฅผ ์ด์šฉ ์ „์ž ์„œ๋ช… ์ƒ์„ฑ
    ์ด๋•Œ ์ž…๋ ฅ ๊ฐ’์€ ํ•ด์‰ฌ ๊ฐ’์ด์–ด์•ผ ํ•œ๋‹ค( ์›๋ฌธ ์•„๋‹˜ )
openssl pkeyutl -sign in data.txt -inkey rsa_key.pem -out sig

์ƒ์„ฑ๋œ sig ๊ฐ’์€ ์ „์ž ์„œ๋ช… ๋ฐ”์ด๋„ˆ๋ฆฌ ๊ฐ’์ด๋‹ค. (ASN.1 ๋””์ฝ”๋”ฉ ์•ˆ๋จ )

  • ์„œ๋ช… ๋ฐ์ดํƒ€ ๊ฒ€์ฆ

์ž…๋ ฅ๋œ ์„œ๋ช… ๊ฒ€์ฆ

openssl pkeyutl -verify -in data.txt -sigfile sig  -inkey rsa_key.pem
  • ๋ณต๊ตฌ ์„œ๋ช… ๊ฒ€์ฆ
    ์ด ๊ธฐ๋Šฅ์€ ์„œ๋ช… ๊ฒ€์ฆํ•˜๊ณ  ์„œ๋ช…์— ์‚ฌ์šฉ๋œ ํ•ด์‰ฌ ๊ฐ’์„ ๋ณต๊ตฌ ํ•ด์ฃผ๋Š” ๋ช…๋ น์–ด ์ด๋‹ค.
openssl pkeyutl -verifyrecover -in sig -inkey rsa_key.pem 

์ผ๋ฐ˜์ ์œผ๋กœ ์„œ๋ช… ๊ฐ’์—์„œ ์›๋ฌธ์„ ์ฐพ์„ ์ˆ˜๋Š” ์—†๋‹ค.
ํ•˜์ง€๋งŒ ์›๋ฌธ์˜ ํ•ด์‰ฌ ๊ฐ’์„ ์ฐพ์„ ์ˆ˜ ์žˆ์–ด์„œ ํ•ด์‰ฌ ๊ฐ’์„ ๋ณต๊ตฌ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.

  • TLS1 PRF ๊ฐ’ ์–ป๊ธฐ ( ๊ฒฐ๊ณผ ํ‚ค ๊ธธ์ด 48 ๋ฐ”์ดํŠธ ํ•ด์‰ฌ SHA256 )
openssl pkeyutl -kdf TLS1-PRF -kdflen 48 -pkeyopt md:SHA256 -pkeyopt hexsecret:ff -pkeyopt hexseed:ff -hexdump

์‹คํ–‰ ๊ฒฐ๊ณผ

0000 - 4f f5 fa 72 3f f9 b8 ba-18 57 ef f3 93 f6 e2 c0   O..r?....W......
0010 - f3 87 67 d4 8d 83 79 b8-5d d5 c8 9f f9 9f 28 2d   ..g...y.].....(-
0020 - e9 ba cb 1f d4 14 ed 4c-ca 59 b5 b7 92 12 86 76   .......L.Y.....v

๊ฐ„๋‹จํžˆ ํ•ด์‹œ ๊ฐ’์„ ์ด์šฉํ•œ ์ „์ž์„œ๋ช… ๋ฐ ๊ฒ€์ฆ ๋ณต๊ตฌ ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์•Œ์•„ ๋ณด์•˜๋‹ค.
์‚ฌ์‹ค์€ ๋ณต๊ตฌ ๊ธฐ๋Šฅ์ด ๊ถ๊ธˆํ–ˆ๋‹ค..

๊ทธ๋ฆฌ๊ณ  TLS ์—์„œ PRF ๋กœ master_key ๋ฐ ์•”/๋ณตํ˜ธํ™” ํ‚ค๋ฅผ ์ƒ์„ฑ ํ•˜๋Š”๋ฐ
pkeyutl ์—์„œ ์ง€์› ๋˜๋‹ˆ ํ…Œ์ŠคํŠธ ์šฉ์œผ๋กœ ์œ ์šฉํ•˜๋‹ค.