Java SE์—์„œ ๋”๋ฏธ ECDSA ์„œ๋ช…์„ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ. MySQL, VirtualBox ๋ฐ Solaris์˜ ์ทจ์•ฝ์ 

์˜ค๋ผํด์€ ์ค‘์š”ํ•œ ๋ฌธ์ œ์™€ ์ทจ์•ฝ์ ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•œ ์˜ˆ์ •๋œ ์ œํ’ˆ ์—…๋ฐ์ดํŠธ ๋ฆด๋ฆฌ์Šค(Critical Patch Update)๋ฅผ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. 520์›” ์—…๋ฐ์ดํŠธ์—์„œ๋Š” ์ด XNUMX๊ฐœ์˜ ์ทจ์•ฝ์ ์ด ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ช‡ ๊ฐ€์ง€ ๋ฌธ์ œ:

  • 6 Java SE์˜ ๋ณด์•ˆ ๋ฌธ์ œ. ๋ชจ๋“  ์ทจ์•ฝ์ ์€ ์ธ์ฆ ์—†์ด ์›๊ฒฉ์œผ๋กœ ์•…์šฉ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์ฝ”๋“œ ์‹คํ–‰์„ ํ—ˆ์šฉํ•˜๋Š” ํ™˜๊ฒฝ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐ€์ง€ ๋ฌธ์ œ์— ์‹ฌ๊ฐ๋„ ์ˆ˜์ค€ 7.5๊ฐ€ ํ• ๋‹น๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Java SE 18.0.1, 11.0.15 ๋ฐ 8u331 ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” ์ทจ์•ฝ์ ์ด ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

    ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜(CVE-2022-21449)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ƒ์„ฑ ์‹œ ์ œ๋กœ ๊ณก์„  ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ƒ์˜ ECDSA ๋””์ง€ํ„ธ ์„œ๋ช…์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ XNUMX์ด๋ฉด ๊ณก์„ ์ด ๋ฌดํ•œ๋Œ€๋กœ ์ด๋™ํ•˜๋ฏ€๋กœ XNUMX ๊ฐ’์€ ๋ช…์‹œ์ ์œผ๋กœ ๊ธˆ์ง€๋ฉ๋‹ˆ๋‹ค). ์‚ฌ์–‘). Java ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ECDSA ๋งค๊ฐœ๋ณ€์ˆ˜์˜ null ๊ฐ’์„ ํ™•์ธํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— null ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ์„œ๋ช…์„ ์ฒ˜๋ฆฌํ•  ๋•Œ Java๋Š” ํ•ด๋‹น ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋ชจ๋“  ๊ฒฝ์šฐ์— ์œ ํšจํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ–ˆ์Šต๋‹ˆ๋‹ค.

    ๋ฌด์—‡๋ณด๋‹ค๋„ ์ด ์ทจ์•ฝ์ ์€ Java์—์„œ ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์œผ๋กœ ํ—ˆ์šฉ๋˜๋Š” ๊ฐ€์ƒ์˜ TLS ์ธ์ฆ์„œ๋ฅผ ์ƒ์„ฑํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ WebAuthn์„ ํ†ตํ•œ ์ธ์ฆ์„ ์šฐํšŒํ•˜๊ณ  ๊ฐ€์ƒ์˜ JWT ์„œ๋ช… ๋ฐ OIDC ํ† ํฐ์„ ์ƒ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ทจ์•ฝ์ ์„ ํ†ตํ•ด ํ™•์ธ์„ ์œ„ํ•ด ํ‘œ์ค€ java.security.* ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Java ์ฒ˜๋ฆฌ๊ธฐ์—์„œ ์˜ฌ๋ฐ”๋ฅธ ๊ฒƒ์œผ๋กœ ์Šน์ธ๋˜๊ณ  ์ธ์‹๋˜๋Š” ๋ฒ”์šฉ ์ธ์ฆ์„œ ๋ฐ ์„œ๋ช…์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” Java ๋ถ„๊ธฐ 15, 16, 17 ๋ฐ 18์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ๊ฐ€์งœ ์ธ์ฆ์„œ ์ƒ์„ฑ์˜ ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. jshell> import java.security.* jshell> var ํ‚ค = KeyPairGenerator.getInstance("EC").generateKeyPair() ํ‚ค ==> java.security.KeyPair@626b2d4a jshell> var ๊ณต๋ฐฑ ์„œ๋ช… = ์ƒˆ ๋ฐ”์ดํŠธ[64] ๊ณต๋ฐฑ ์„œ๋ช… ==> ๋ฐ”์ดํŠธ[64] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, โ€ฆ , 0, 0, 0, 0, 0, 0, 0, 0 } jshell > var sig = Signature.getInstance("SHA256WithECDSAInP1363Format") sig ==> ์„œ๋ช… ๊ฐ์ฒด: SHA256WithECDSAInP1363Format jshell> sig.initVerify(keys.getPublic()) jshell> sig.update("Hello, World".getBytes()) jshell> sig.verify(blankSignature) $8 ==> true

  • MySQL ์„œ๋ฒ„์—๋Š” 26๊ฐœ์˜ ์ทจ์•ฝ์ ์ด ์žˆ์œผ๋ฉฐ, ๊ทธ ์ค‘ 7.5๊ฐœ๋Š” ์›๊ฒฉ์œผ๋กœ ์•…์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. OpenSSL ๋ฐ protobuf ์‚ฌ์šฉ๊ณผ ๊ด€๋ จ๋œ ๊ฐ€์žฅ ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ์—๋Š” ์‹ฌ๊ฐ๋„ ์ˆ˜์ค€ 8.0.29๊ฐ€ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. ๋œ ์‹ฌ๊ฐํ•œ ์ทจ์•ฝ์ ์€ ์ตœ์ ํ™” ํ”„๋กœ๊ทธ๋žจ, InnoDB, ๋ณต์ œ, PAM ํ”Œ๋Ÿฌ๊ทธ์ธ, DDL, DML, FTS ๋ฐ ๋กœ๊น…์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” MySQL Community Server 5.7.38 ๋ฐ XNUMX ๋ฆด๋ฆฌ์Šค์—์„œ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • VirtualBox์˜ 5๊ฐ€์ง€ ์ทจ์•ฝ์ . ๋ฌธ์ œ์—๋Š” 7.5์—์„œ 3.8๊นŒ์ง€์˜ ์‹ฌ๊ฐ๋„ ์ˆ˜์ค€์ด ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค(๊ฐ€์žฅ ์œ„ํ—˜ํ•œ ์ทจ์•ฝ์ ์€ Windows ํ”Œ๋žซํผ์—๋งŒ ๋‚˜ํƒ€๋‚จ). ์ด ์ทจ์•ฝ์ ์€ VirtualBox 6.1.34 ์—…๋ฐ์ดํŠธ์—์„œ ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์†”๋ผ๋ฆฌ์Šค์˜ 6๊ฐ€์ง€ ์ทจ์•ฝ์ . ๋ฌธ์ œ๋Š” ์ปค๋„๊ณผ ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์œ ํ‹ธ๋ฆฌํ‹ฐ์˜ ๊ฐ€์žฅ ์‹ฌ๊ฐํ•œ ๋ฌธ์ œ๋Š” ์œ„ํ—˜ ์ˆ˜์ค€ 8.2๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ์ทจ์•ฝ์ ์€ Solaris 11.4 SRU44 ์—…๋ฐ์ดํŠธ์—์„œ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€