FIPS
FIPS (FIPS)
FIPS 140이 무엇이고 Docker Hardened Images의 FIPS 변형을 어떻게 쓰는지 알아볼게요.
출처: 문서
본문
FIPS 140이란 (What is FIPS 140?)
FIPS 140은 민감한 정보를 보호하는 암호화 모듈에 대한 보안 요구 사항을 정의하는 미국 정부 표준이에요. 정부, 의료, 금융 서비스 같은 규제 환경에서 널리 사용돼요.
FIPS 인증은 NIST 암호화 모듈 검증 프로그램(CMVP)이 관리하며, 암호화 모듈이 엄격한 보안 표준을 충족하는지 보장해요.
FIPS 준수가 중요한 이유 (Why FIPS compliance matters)
FIPS 140 준수는 민감한 데이터를 보호해야 하는 정부, 의료, 금융, 국방 같은 많은 규제 환경에서 요구되거나 강력히 권장돼요. 이 표준은 검증된 신뢰할 수 있는 알고리즘으로 암호화 작업이 수행되게 하고, 안전한 모듈에 구현되게 해요.
검증된 암호화 모듈에 의존하는 소프트웨어 구성 요소를 사용하면 조직이 다음을 할 수 있어요:
- FedRAMP처럼 FIPS 140 검증 암호화를 요구하거나 강력히 권장하는 연방·산업 명령을 충족.
- 안전하고 표준 기반 암호화 관행의 검증 가능한 증거로 감사 준비 상태를 입증.
- 승인되지 않았거나 안전하지 않은 알고리즘(예: MD5)을 차단하고 환경 간 일관된 동작을 보장해 보안 위험을 줄임.
Docker Hardened Images가 FIPS 준수를 지원하는 방식 (How Docker Hardened Images support FIPS compliance)
Docker Hardened Images는 모두에게 제공되지만, FIPS 변형은 유료 Docker Hardened Images 구독이 필요해요.
Docker Hardened Images(DHI)는 FIPS 140 하에서 검증된 암호화 모듈을 사용하는 변형을 포함해요. 이 이미지들은 표준을 충족하는 구성 요소를 포함해 조직이 규정 준수 요구 사항을 충족하도록 돕기 위한 것이에요.
- FIPS 이미지 변형은 이미 FIPS 140 하에서 검증된 암호화 모듈을 사용해요.
- 이 변형들은 규제 또는 규정 준수 요구가 있는 환경을 지원하기 위해 Docker가 빌드·유지 관리해요.
- Docker는 검증된 암호화 모듈의 사용을 문서화하는 서명된 테스트 증명을 제공해요. 이 증명들이 내부 감사와 규정 준수 보고를 지원할 수 있어요.
- 엔트로피 소스(암호화 작업용 난수 생성)는 기본 이미지에 따라 달라요. Debian 기반 이미지는 OpenSSL 엔트로피 소스를 사용하고, Alpine 기반 이미지는 호스트 커널에서 엔트로피를 가져와요.
[!NOTE] FIPS 이미지 변형을 사용하면 규정 준수 요구 사항을 충족하는 데 도움이 되지만 애플리케이션이나 시스템을 완전히 준수하게 만들지는 않아요. 준수는 이미지가 더 넓은 시스템 안에서 어떻게 통합·사용되는지에 달려 있어요.
FIPS를 지원하는 이미지 식별 (Identify images that support FIPS)
FIPS를 지원하는 Docker Hardened Images는 Docker Hardened Images 카탈로그에서 FIPS 준수로 표시돼요.
FIPS 이미지 변형이 있는 DHI 저장소를 찾으려면 카탈로그를 검색하고:
- 카탈로그 페이지에서 FIPS 필터를 사용
- 개별 이미지 나열에서 FIPS 준수를 찾음
이 표시들은 FIPS 기반 규정 준수 요구를 지원하는 저장소를 빠르게 찾는 데 도움을 줘요. FIPS 지원을 포함한 이미지 변형은 3.13-fips처럼 -fips로 끝나는 태그를 가져요.
FIPS 변형 사용 (Use a FIPS variant)
FIPS 변형을 사용하려면 저장소를 미러한 다음 미러된 저장소에서 FIPS 이미지를 풀해야 해요.
FIPS 증명 보기 (View the FIPS attestation)
Docker Hardened Images의 FIPS 변형에는 이미지에 포함된 실제 암호화 모듈을 나열하는 FIPS 증명이 들어 있어요.
Docker Scout CLI로 FIPS 증명을 검색하고 검사할 수 있어요:
$ docker scout attest get \
--predicate-type https://docker.com/dhi/fips/v0.1 \
--predicate \
dhi.io/<image>:<tag>
예를 들어:
$ docker scout attest get \
--predicate-type https://docker.com/dhi/fips/v0.1 \
--predicate \
dhi.io/python:3.13-fips
증명 출력은 이미지에 포함된 암호화 모듈과 그 규정 준수 상태를 설명하는 JSON 배열이에요. 예를 들어:
[
{
"certification": "CMVP #4985",
"certificationUrl": "https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/4985",
"name": "OpenSSL FIPS Provider",
"package": "pkg:dhi/[email protected]",
"standard": "FIPS 140-3",
"status": "active",
"sunsetDate": "2030-03-10",
"version": "3.1.2"
}
]