FIPS๋ฅผ ์ํ MongoDB ๊ตฌ์ฑ
์ด ํ์ด์ง์ ๋ด์ฉ
๊ฐ์
FIPS(์ฐ๋ฐฉ ์ ๋ณด ์ฒ๋ฆฌ ํ์ค)๋ ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ฒ ์ํธํํ๊ณ ํด๋ ํ๋ ์ํํธ์จ์ด ๋ชจ๋ ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ธ์ฆํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ฏธ๊ตญ ์ ๋ถ์ ์ปดํจํฐ ๋ณด์ ํ์ค์ ๋๋ค. MongoDB๋ฅผ OpenSSL์ฉ FIPS 140-2 ์ธ์ฆ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํจ๊ป ์คํ๋๋๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์คํ๋๊ฑฐ๋ ๋ช ๋ น์ค์์ ํ์์ ๋ฐ๋ผ ์คํ๋๋๋ก FIPS๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.
FIPS ๋ฐ TLS/SSL์ ๋ํ ์์ธํ ์ค๋ช ์ ์ด ๋ฌธ์์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ฉ๋๋ค. ์ด ํํ ๋ฆฌ์ผ์ FIPS ๋ฐ TLS/SSL์ ๋ํ ์ฌ์ ์ง์์ด ์๋ค๊ณ ๊ฐ์ ํฉ๋๋ค.
์ค์
MongoDB ๋ฐ FIPS
FIPS๋ ์ก์ธ์ค ์ ์ด ์์คํ ์ด ์๋ ์ํธํ ์์คํ ์ ์์ฑ์ ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ฉ ์ค์ธ ํ๊ฒฝ์ FIPS ์ค์ ์ํธํ ๋ฐ ์ก์ธ์ค ์ ์ด๊ฐ ํ์ํ ๊ฒฝ์ฐ, ์ก์ธ์ค ์ ์ด ์์คํ ์ด FIPS ์ค์ ์ํธํ๋ง ์ฌ์ฉํ๋๋ก ํด์ผ ํฉ๋๋ค.
MongoDB์ FIPS ์ง์ MongoDB ๋คํธ์ํฌ ์ํธํ, SCRAM ์ธ์ฆ ๋ฐ X.509 ์ธ์ฆ ์ SSL/TLS ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ๋ค๋ฃน๋๋ค. Kerberos ๋๋ LDAP ์ธ์ฆ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด๋ฌํ ์ธ๋ถ ๋ฉ์ปค๋์ฆ์ด FIPS๋ฅผ ์ค์ํ๋์ง ํ์ธํด์ผ ํฉ๋๋ค.
์ฐธ๊ณ
MongoDB๋ TLS 1.1 ์ด์์ด ์ฌ์ฉ ๊ฐ๋ฅํ ์์คํ ์์ TLS 1.0 ์ํธํ๋ฅผ ์ง์ํ์ง ์์ต๋๋ค.
ํ๋ซํผ ์ง์
FIPS ๋ชจ๋ ๋ MongoDB Enterprise ์๋์ ์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. MongoDB Enterprise ์ค์น๋ฅผ ์ฐธ์กฐํ์ฌ MongoDB Enterprise ๋ฅผ ๋ค์ด๋ก๋ ํ๊ณ ์ค์น MongoDB Enterprise.
FIPS ๋ชจ๋๋ ๋ค์ ํ๋ซํผ์์ ์ง์๋ฉ๋๋ค:
ํ๋ซํผ | TLS/SSL ๋ผ์ด๋ธ๋ฌ๋ฆฌ |
---|---|
Linux | OpenSSL |
Windows | ๋ณด์ ์ฑ๋(Schannel) |
macOS | ๋ณด์ ์ ์ก |
OpenSSL3 ์ง์
MongoDB 6.0.7 ๋ถํฐ ์์๋ฉ๋๋ค. FIPS ๋ชจ๋๋ OpenSSL3 ์ ์ง์ํฉ๋๋ค. ๋ค์ ์ด์ ์ฒด์ ์ ๊ฒฝ์ฐ:
Ubuntu 22.04
RHEL 9
Amazon Linux 2023
Starting in MongoDB 8.0, FIPS ๋ชจ๋ ๋ Amazon Linux 2023.3 ์ฉ OpenSSL3 ๋ฅผ ์ง์ํฉ๋๋ค.
FIPS ๊ตฌ์ฑ
์๋์์ ํ๋ซํผ์ ๋ง๋ ํญ์ ์ ํํฉ๋๋ค:
์ ์ ์กฐ๊ฑด
MongoDB์ FIPS ๋ชจ๋๋ฅผ ์ง์ํ๋ ค๋ฉด Linux ์์คํ ์ FIPS 140-2 ๋ชจ๋๋ก ๊ตฌ์ฑ๋ OpenSSL ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ด์ผ ํฉ๋๋ค.
๋ค์ ๋ช ๋ น์ ์คํํ์ฌ OpenSSL ์ํํธ์จ์ด์ FIPS ์ง์์ด ํฌํจ๋์ด ์๋์ง ํ์ธํ์ธ์.
openssl version Red Hat Enterprise Linux 6.x(RHEL 6.x) ๋๋ CentOS 6.x์ ๊ฐ์ ํ์ ๋ฒ์ ์ ๊ฒฝ์ฐ, FIPS ๋ชจ๋ ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด OpenSSL ํดํท์ ๋ฒ์ ์ด
openssl-1.0.1e-16.el6_5
์ด์์ด์ด์ผ ํฉ๋๋ค. ์ด๋ฌํ ํ๋ซํผ์์ OpenSSL ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ทธ๋ ์ด๋ ํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์คํ ํฉ๋๋ค.sudo yum update openssl ์ผ๋ถ Linux ๋ฒ์ ์ ์ฌ์ ํ ๋น๋ ์ฃผ์๋ก ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ ์ฐ๊ฒฐํ๋ ํ๋ก์ธ์ค๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์คํํฉ๋๋ค. ์ด ํ๋ก์ธ์ค๋ OpenSSL ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ํนํ
libcrypto
์(๋ฅผ) ์์ ํฉ๋๋ค. ์ดํ OpenSSL FIPS ๋ชจ๋๋ ์์ ์ ์ํ๋ ์๋ช ํ์ธ์ ์คํจํ์ฌ ์ปดํ์ผ ์ดํlibcrypto
์ด(๊ฐ) ์์ ๋์ง ์์๋์ง ํ์ธํฉ๋๋ค.Linux ์ฌ์ ๋งํฌ ํ๋ก์ธ์ค๊ฐ
libcrypto
์(๋ฅผ) ์ฌ์ ๋งํฌํ์ง ์๋๋ก ๊ตฌ์ฑํ๋ ค๋ฉด ๋ค์ ๋ช ๋ น์ ์คํํฉ๋๋ค.sudo bash -c "echo '-b /usr/lib64/libcrypto.so.*' >>/etc/prelink.conf.d/openssl-prelink.conf"
FIPS ํธํ ์์
์ ์ง์ํ๋๋ก Linux ์์คํ
์ ๊ตฌ์ฑํ ํ์๋ ์๋ ๋จ๊ณ์ ๋ฐ๋ผ mongod
๋๋ mongos
์ธ์คํด์ค๊ฐ FIPS ๋ชจ๋์์ ์๋ํ๋๋ก ๊ตฌ์ฑํฉ๋๋ค.
์ ์ฐจ
A. TLS/SSL์ ์ฌ์ฉํ๋๋ก MongoDB ๊ตฌ์ฑ
TLS/SSL์ ์ฌ์ฉํ๋๋ก ๋ฐฐํฌ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๊ดํ ์์ธํ ๋ด์ฉ์ TLS/SSL์ ์ํ mongod
๋ฐ mongos
๊ตฌ์ฑ์์ ํ์ธํ์ธ์. ์ธ์ฆ์๊ฐ FIPS๋ฅผ ์ค์ํ๋์ง ํ์ธํฉ๋๋ค.
B. FIPS ๋ชจ๋์์ MongoDB ์ธ์คํด์ค ์คํ
TLS/SSL์ ์ํด mongod
๋ฐ mongos
๊ตฌ์ฑ ํ ์ด ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
๊ตฌ์ฑ ํ์ผ์ ๋ณ๊ฒฝํฉ๋๋ค.
mongod
๋๋ mongos
์ธ์คํด์ค๊ฐ FIPS ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑํ๋ ค๋ฉด ์ธ์คํด์ค๋ฅผ ์ข
๋ฃํ๊ณ ๊ตฌ์ฑ ํ์ผ์ net.tls.FIPSMode
์ค์ ์ผ๋ก ์
๋ฐ์ดํธํฉ๋๋ค.
net: tls: FIPSMode: true
C. FIPS ๋ชจ๋๊ฐ ์คํ ์ค์ธ์ง ํ์ธ
์๋ฒ ๋ก๊ทธ ํ์ผ์์ FIPS๊ฐ ํ์ฑํ๋์๋ค๋ ๋ฉ์์ง๋ฅผ ํ์ธํฉ๋๋ค.
FIPS 140-2 mode activated
์ ์ ์กฐ๊ฑด
Microsoft ๋ Windows 10 ๋ฐ Windows Server 2016 ์ด์์ FIPS ๋ชจ๋ ๊ตฌ์ฑ์ ๋ํ ๋ค์ ๋ฆฌ์์ค ๋ฅผ ์ ๊ณตํฉ๋๋ค.
Windows ์์ FIPS 140- ์ ํจ์ฑ ๊ฒ์ฌ2
FIPS ํธํ ์์
์ ์ง์ ํ๋๋ก Windows ์์คํ
์ ๊ตฌ์ฑํ ํ์๋ ์๋ ๋จ๊ณ์ ๋ฐ๋ผ mongod
๋๋ mongos
์ธ์คํด์ค ๊ฐ FIPS ๋ชจ๋ ์์ ์๋ํ๋๋ก ๊ตฌ์ฑํฉ๋๋ค.
์ ์ฐจ
A. TLS/SSL์ ์ฌ์ฉํ๋๋ก MongoDB ๊ตฌ์ฑ
TLS/SSL์ ์ฌ์ฉํ๋๋ก ๋ฐฐํฌ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๊ดํ ์์ธํ ๋ด์ฉ์ TLS/SSL์ ์ํ mongod
๋ฐ mongos
๊ตฌ์ฑ์์ ํ์ธํ์ธ์. ์ธ์ฆ์๊ฐ FIPS๋ฅผ ์ค์ํ๋์ง ํ์ธํฉ๋๋ค.
B. FIPS ๋ชจ๋์์ MongoDB ์ธ์คํด์ค ์คํ
TLS/SSL์ ์ํด mongod
๋ฐ mongos
๊ตฌ์ฑ ํ ์ด ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
๊ตฌ์ฑ ํ์ผ์ ๋ณ๊ฒฝํฉ๋๋ค.
mongod
๋๋ mongos
์ธ์คํด์ค๊ฐ FIPS ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑํ๋ ค๋ฉด ์ธ์คํด์ค๋ฅผ ์ข
๋ฃํ๊ณ ๊ตฌ์ฑ ํ์ผ์ net.tls.FIPSMode
์ค์ ์ผ๋ก ์
๋ฐ์ดํธํฉ๋๋ค.
net: tls: FIPSMode: true
C. FIPS ๋ชจ๋๊ฐ ์คํ ์ค์ธ์ง ํ์ธ
์๋ฒ ๋ก๊ทธ ํ์ผ์์ FIPS๊ฐ ํ์ฑํ๋์๋ค๋ ๋ฉ์์ง๋ฅผ ํ์ธํฉ๋๋ค.
FIPS 140-2 mode activated
์ ์ ์กฐ๊ฑด
์ง์๋๋ macOS ๋ฒ์ ์ ๊ธฐ๋ณธ๊ฐ FIPS๋ฅผ ์ค์ํฉ๋๋ค. ์ปดํ๋ผ์ด์ธ์ค ์ํ๋ฅผ ํ์ธํ๋ ค๋ฉด ์ฌ์ฉ ์ค์ธ macOS ๋ฒ์ ์ ๋ํ ์ค๋ช ์๋ฅผ ํ์ธํ์ธ์. ์๋ฅผ ์์ Apple์ macOS 10.14 ์ ๋ํด ๋ค์ ๋ฆฌ์์ค ๋ฅผ ์ ๊ณตํฉ๋๋ค.
โค ์ฉ Apple FIPS ์ํธํ ๋ชจ๋ 10.14
ํธํ๋๋ macOS ๋ฒ์ ์์๋ ์๋ ๋จ๊ณ์ ๋ฐ๋ผ mongod
๋๋ mongos
์ธ์คํด์ค ๊ฐ FIPS ๋ชจ๋ ์์ ์๋ํ๋๋ก ๊ตฌ์ฑํฉ๋๋ค.
์ ์ฐจ
A. TLS/SSL์ ์ฌ์ฉํ๋๋ก MongoDB ๊ตฌ์ฑ
TLS/SSL์ ์ฌ์ฉํ๋๋ก ๋ฐฐํฌ์๋ฒ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๊ดํ ์์ธํ ๋ด์ฉ์ TLS/SSL์ ์ํ mongod
๋ฐ mongos
๊ตฌ์ฑ์์ ํ์ธํ์ธ์. ์ธ์ฆ์๊ฐ FIPS๋ฅผ ์ค์ํ๋์ง ํ์ธํฉ๋๋ค.
B. FIPS ๋ชจ๋์์ MongoDB ์ธ์คํด์ค ์คํ
TLS/SSL์ ์ํด mongod
๋ฐ mongos
๊ตฌ์ฑ ํ ์ด ๋จ๊ณ๋ฅผ ์ํํฉ๋๋ค.
๊ตฌ์ฑ ํ์ผ์ ๋ณ๊ฒฝํฉ๋๋ค.
mongod
๋๋ mongos
์ธ์คํด์ค๊ฐ FIPS ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑํ๋ ค๋ฉด ์ธ์คํด์ค๋ฅผ ์ข
๋ฃํ๊ณ ๊ตฌ์ฑ ํ์ผ์ net.tls.FIPSMode
์ค์ ์ผ๋ก ์
๋ฐ์ดํธํฉ๋๋ค.
net: tls: FIPSMode: true
C. FIPS ๋ชจ๋๊ฐ ์คํ ์ค์ธ์ง ํ์ธ
์๋ฒ ๋ก๊ทธ ํ์ผ์์ FIPS๊ฐ ํ์ฑํ๋์๋ค๋ ๋ฉ์์ง๋ฅผ ํ์ธํฉ๋๋ค.
FIPS 140-2 mode activated
์ถ๊ฐ ๊ณ ๋ ค ์ฌํญ
SCRAM SHA ๋ฐ FIPS ๋ชจ๋
MongoDB 5.1 ๋ถํฐ FIPS ๋ชจ๋ ์์ ์คํ๋๋ ์ธ์คํด์ค๋ SCRAM-SHA-1 ์ธ์ฆ ๋ฉ์ปค๋์ฆ ์ด ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋์ด ์์ต๋๋ค. setParameter.authenticationMechanisms ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ SCRAM-SHA- ์ธ์ฆ ๋ฉ์ปค๋์ฆ1 ์ ํ์ฑํํ ์ ์์ต๋๋ค. ๋ช ๋ น.
์ด ๋ณ๊ฒฝ ์ฌํญ์ MongoDB setFeatureCompatibilityVersion
๋ฅผ ๋์์ผ๋ก ํ๋ ๋๋ผ์ด๋ฒ์๋ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค. 4.0+.
SCRAM-SHA-1์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ:
MD5๋ ํ์ํ์ง๋ง ์ํธํ ๋ชฉ์ ์ผ๋ก๋ ์ฌ์ฉ๋์ง ์์ต๋๋ค.
FIPS ๋ชจ๋ ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ SCRAM-SHA-1 ๋์ ๋ค์์ ์ฌ์ฉํฉ๋๋ค.
mongod
, mongos
๋ฐ FIPS ๋ชจ๋
FIPS ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋๋ก mongod
๋ฐ mongos
๋ฅผ ๊ตฌ์ฑํ ๊ฒฝ์ฐ, mongod
๋ฐ mongos
๋ FIPS ํธํ ์ฐ๊ฒฐ์ ์ฌ์ฉํฉ๋๋ค.
Database Tools ๋ฐ FIPS ๋ชจ๋
๋ค์ ํ๋ก๊ทธ๋จ์ ๋ ์ด์ --sslFIPSMode
์ต์
์ ์ง์ํ์ง ์์ต๋๋ค.
FIPS ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋๋ก mongod
๋ฐ mongos
๋ฅผ ๊ตฌ์ฑํ๋ฉด ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๊ตฌ๋ ์๋์ผ๋ก FIPS ํธํ ์ฐ๊ฒฐ์ ์ฌ์ฉํฉ๋๋ค.
MongoDB Shell ๋ฐ FIPS ๋ชจ๋
๊ธฐ๋ณธ mongosh
๋ฐฐํฌ:
OpenSSL 3๋ฅผ ํฌํจํฉ๋๋ค.
mongod
๋ฐmongos
๊ฐ FIPS ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋๋ก ๊ตฌ์ฑํ ๊ฒฝ์ฐmongod
๋ฐmongos
์ ๋ํ FIPS ํธํ ์ฐ๊ฒฐ์ ์ฌ์ฉํฉ๋๋ค.
MongoDB๋ ๋ค์์ ์ฌ์ฉํ ์ ์๋ MongoDB Shell ๋ฐฐํฌํ๋ ์ ๊ณตํฉ๋๋ค.
์๋ฒ์ ์ค์น๋ OpenSSL 1.1 ๋ฐ OpenSSL 3.
--tlsFIPSMode
์ต์ .mongosh
FIPS ๋ชจ๋๋ฅผ ํ์ฑํํฉ๋๋ค.
๋ค์๋ ์ฐธ์กฐํ์ธ์.
OpenSSL ๋ฐ OpenSSL ๊ฐ ํฌํจ๋ ๋ฐฐํฌํ์ ๋ค์ด๋ก๋ํ๋ ค๋ฉด MongoDB Shell 1.1 3 Go MongoDB ๋ค์ด๋ก๋ ์ผํฐ ๋ก ํ์ธ์.