๐ ๋ณด์
์๊ฐโ
๋ณด์์ Semaphore UI์ ์ต์ฐ์ ๊ณผ์ ์ ๋๋ค. ์ค์ํ ์ธํ๋ผ ์์ ์ ์๋ํํ๋ , ๋ฏผ๊ฐํ ์์คํ ์ ๋ํ ํ ์ ๊ทผ ๊ถํ์ ๊ด๋ฆฌํ๋ , Semaphore UI๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฒฌ๊ณ ํ๊ณ ์์ ํ ์ด์์ ์ ๊ณตํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ด ์น์ ์์๋ Semaphore๊ฐ ๋ณด์์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์๊ณผ ํ๋ก๋์ ํ๊ฒฝ์ ๋ฐฐํฌํ ๋ ๊ณ ๋ คํด์ผ ํ ์ฌํญ์ ์ค๋ช ํฉ๋๋ค.
์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌโ
Semaphore๋ ์์ ํ ์ธ์ฆ๊ณผ ์ ์ฐํ ๊ถํ ๋ถ์ฌ ๋ฉ์ปค๋์ฆ์ ์ง์ํฉ๋๋ค:
-
๋ก๊ทธ์ธ ๋ฐฉ์:
-
์ฌ์ฉ์ ์ด๋ฆ/๋น๋ฐ๋ฒํธ
Semaphore ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ์๊ฒฉ ์ฆ๋ช ์ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ๋ฐฉ์์ ๋๋ค. ๋น๋ฐ๋ฒํธ๋ ์ ๋ ํ๋ฌธ์ผ๋ก ์ ์ฅ๋์ง ์์ผ๋ฉฐ Argon2id๋ก ํด์๋ฉ๋๋ค(๋น๋ฐ๋ฒํธ ํด์ฑ ์ฐธ์กฐ). -
LDAP
์ํฐํ๋ผ์ด์ฆ ๋๋ ํฐ๋ฆฌ ์๋น์ค์ ํตํฉํ ์ ์์ต๋๋ค. ์ฌ์ฉ์/๊ทธ๋ฃน ํํฐ๋ง๊ณผ LDAPS๋ฅผ ํตํ ๋ณด์ ์ฐ๊ฒฐ์ ์ง์ํฉ๋๋ค. -
OpenID Connect (OIDC)
Google, Azure AD, Keycloak๊ณผ ๊ฐ์ ID ๊ณต๊ธ์๋ฅผ ํตํ ์ฑ๊ธ ์ฌ์ธ์จ์ ์ง์ํฉ๋๋ค. ์ฌ์ฉ์ ์ง์ ํด๋ ์๊ณผ ๊ทธ๋ฃน ๋งคํ์ ์ง์ํฉ๋๋ค.
-
-
2๋จ๊ณ ์ธ์ฆ(2FA)
TOTP ๊ธฐ๋ฐ 2FA๋ฅผ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ๊ถ์ฅ๋ฉ๋๋ค. ์ฌ์ฉ์๋ณ๋ก ํ์ฑํํ ์ ์๊ณ ์ ํ์ ์ผ๋ก ๋ณต๊ตฌ ์ฝ๋๋ฅผ ์ง์ํฉ๋๋ค. ์ค์ ์ต์ mfa.totp.enabled์mfa.totp.allow_recovery๋ฅผ ์ฐธ์กฐํ์ญ์์ค. -
์ญํ ๊ธฐ๋ฐ ์ ๊ทผ ์ ์ด
Admin, Maintainer, Viewer ๋ฑ ์๋ก ๋ค๋ฅธ ์ญํ ์ ์ฌ์ฉ์์๊ฒ ํ ๋นํ์ฌ ์ฑ ์์ ๋ฐ๋ผ ์ ๊ทผ์ ์ ํํ ์ ์์ต๋๋ค. -
์ธ์ ๊ด๋ฆฌ
์ธ์ ์ ๋ณด์ HTTP ์ฟ ํค๋ก ๋ณดํธ๋ฉ๋๋ค. ์ธ์ ๋ง๋ฃ ๋ฐ ๋ก๊ทธ์์ ๋ฉ์ปค๋์ฆ์ ํตํด ๋ ธ์ถ์ ์ต์ํํฉ๋๋ค.
๋น๋ฐ๋ฒํธ ํด์ฑโ
Argon2id ๋น๋ฐ๋ฒํธ ํด์ฑ์ Semaphore 2.20๋ถํฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด์ ๋ฒ์ ์ bcrypt๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๋ก์ปฌ ์ฌ์ฉ์ ๋น๋ฐ๋ฒํธ๋ OWASP๊ฐ ๋น๋ฐ๋ฒํธ ์ ์ฅ์ ๊ถ์ฅํ๋ ์๊ณ ๋ฆฌ์ฆ์ธ Argon2id๋ก ํด์๋ฉ๋๋ค. Semaphore๋ OWASP ์ต์ ๊ฐ๋ ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํฉ๋๋ค:
| ๋งค๊ฐ๋ณ์ | ๊ฐ |
|---|---|
| ๋ฉ๋ชจ๋ฆฌ | 19 MiB (m=19456) |
| ๋ฐ๋ณต ํ์ | 2 (t=2) |
| ๋ณ๋ ฌ์ฑ | 1 (p=1) |
| ์ํธ | ๋น๋ฐ๋ฒํธ๋น ์์์ 16๋ฐ์ดํธ |
| ํด์ ๊ธธ์ด | 32๋ฐ์ดํธ |
ํด์๋ ํ์ค PHC ๋ฌธ์์ด ํ์์ผ๋ก ์ ์ฅ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด $argon2id$v=19$m=19456,t=2,p=1$<salt>$<hash>์ ๊ฐ์ผ๋ฉฐ, ๊ฐ ํด์์ ์ฌ์ฉ๋ ๋งค๊ฐ๋ณ์๊ฐ ํด์์ ํจ๊ป ๊ธฐ๋ก๋ฉ๋๋ค.
์ด๋ ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํ ์ ์๋ ๋ชจ๋ ๋ฐฉ์, ์ฆ ์น UI, API, ๊ทธ๋ฆฌ๊ณ CLI ๋ช
๋ น semaphore user add, semaphore user change-by-login, semaphore setup์ ์ ์ฉ๋ฉ๋๋ค.
2.20 ์ด์ ๋ฒ์ ์์ ์ ๊ทธ๋ ์ด๋ํ๊ธฐ. 2.20 ์ด์ ๋ฆด๋ฆฌ์ค๋ bcrypt๋ก ๋น๋ฐ๋ฒํธ๋ฅผ ํด์ํ์ต๋๋ค. ๋ณ๋์ ๋ง์ด๊ทธ๋ ์ด์ ๋จ๊ณ๋ ํ์ํ์ง ์์ต๋๋ค:
- ๊ธฐ์กด bcrypt ํด์๋ ๋ก๊ทธ์ธ ์ ๊ณ์ ํ์ฉ๋๋ฏ๋ก, ์ ๊ทธ๋ ์ด๋ ํ์๋ ๋ชจ๋ ์ฌ์ฉ์๊ฐ ์ ์์ ์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์ฒ์ ๋ก๊ทธ์ธ์ด ์ฑ๊ณตํ๋ฉด ๋น๋ฐ๋ฒํธ๊ฐ ํฌ๋ช ํ๊ฒ Argon2id๋ก ๋ค์ ํด์๋๊ณ bcrypt ํด์๊ฐ ๋์ฒด๋ฉ๋๋ค.
- ํฅํ ๋ฆด๋ฆฌ์ค์์ Semaphore์ Argon2id ๋งค๊ฐ๋ณ์๊ฐ ๊ฐํ๋๋ฉด, ์ด์ ๋งค๊ฐ๋ณ์๋ก ์์ฑ๋ ํด์๋ ๋ค์ ๋ก๊ทธ์ธ ์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ๊ทธ๋ ์ด๋๋ฉ๋๋ค.
์ฌํด์ฑ์ ๋ก๊ทธ์ธ ์์๋ง ์ํ๋๋ฏ๋ก, ๋ค์ ๋ก๊ทธ์ธํ์ง ์๋ ์ฌ์ฉ์๋ bcrypt ํด์๋ฅผ ๊ทธ๋๋ก ์ ์งํฉ๋๋ค. ์ด๋ฌํ ๊ณ์ ์ ๊ฐ์ ๋ก ์
๊ทธ๋ ์ด๋ํ๋ ค๋ฉด semaphore user change-by-login --password ...๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๊ด๋ฆฌ์ UI๋ฅผ ํตํด ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ค์ ํ์ญ์์ค.
2๋จ๊ณ ์ธ์ฆ ๋ณต๊ตฌ ์ฝ๋๋ ์ฌ์ฉ์ ๋น๋ฐ๋ฒํธ๊ฐ ์๋๋ฉฐ ๊ณ์ bcrypt๋ฅผ ์ฌ์ฉํฉ๋๋ค.