정보보안기사 학습 문제 25 — 개인정보 암호화·키 관리·웹 입력 검증
이번 글의 세 문항은 공개 기출문제의 원문을 재현하지 않은 창작 문제다. 정답과 해설은 게시 시점에 확인한 국가법령정보센터, NIST, KISA 공개 자료를 근거로 작성했다.
문제 1 — 비밀번호 저장
문제
개인정보의 안전성 확보조치에 따른 비밀번호 저장 방법으로 가장 적절한 것은?
선택지
- 운영자가 원문을 확인할 수 있도록 평문으로 저장한다.
- 복호화가 가능해야 하므로 대칭키로만 암호화한다.
- 복호화되지 않도록 일방향 암호화하여 저장한다.
- 전송 구간만 보호하면 저장 방식은 고려하지 않는다.
정답
3번
해설
개인정보보호위원회의 「개인정보의 안전성 확보조치 기준」은 비밀번호를 저장할 때 복호화되지 않도록 일방향 암호화하여 저장하도록 규정한다. 이는 운영자가 원문을 복원하는 기능을 기본 전제로 삼지 않는 통제다. [1]
오답 포인트
일반적인 데이터 암호화와 비밀번호 검증용 저장을 동일시하면 안 된다. 복호화 가능한 암호문을 보관하는 방식은 비밀번호 저장의 요구 취지와 맞지 않으며, 전송 암호화만으로 저장 보호 의무가 사라지지도 않는다.
출처 또는 검증 근거
[1] 국가법령정보센터, 「개인정보의 안전성 확보조치 기준」 제7조, https://www.law.go.kr/LSW//admRulInfoP.do?admRulSeq=2100000229672&chrClsCd=010201
문제 2 — 암호 키 관리
문제
NIST SP 800-57의 암호 키 관리 취지에 가장 부합하는 설명은?
선택지
- 알고리즘을 선택하면 키의 생성·보호·폐기는 별도 관리가 필요 없다.
- 키와 관련 메타데이터를 포함해 생성, 보호, 사용, 배포, 폐기 절차를 관리한다.
- 모든 키를 애플리케이션 소스 코드에 고정해 배포한다.
- 키 관리는 공개키 암호에만 적용된다.
정답
2번
해설
NIST SP 800-57은 암호 키 자료의 관리에 대해 키 유형별 보호, 키 관리 기능, 키와 인증서의 접근통제·식별·재고관리 등을 다루는 지침이다. 따라서 알고리즘 선택만으로 충분하지 않고 키의 생애주기와 보호 절차를 함께 설계해야 한다. [2]
오답 포인트
암호 알고리즘의 안전성은 키 관리 실패를 보완하지 못한다. 소스 코드에 비밀 키를 고정하거나 폐기·교체 절차를 두지 않는 것은 키 노출과 장기 사용 위험을 키운다.
출처 또는 검증 근거
[2] NIST CSRC, Recommendation for Key Management: Part 1 — General (SP 800-57 Rev. 5), https://csrc.nist.gov/pubs/sp/800/57/pt1/r5/final
문제 3 — 웹 입력값 검증
문제
웹 애플리케이션의 SQL Injection 위험을 줄이는 대책으로 가장 적절한 것은?
선택지
- 사용자 입력을 SQL 문자열에 그대로 이어 붙인다.
- 오류 메시지에 DB 질의문 전체를 노출한다.
- 매개변수화 질의 등으로 코드와 데이터를 분리하고 입력값을 검증한다.
- 클라이언트 측 JavaScript 검증만 수행한다.
정답
3번
해설
KISA 공개 교육 과정은 SQL Injection을 주요 웹 해킹 항목으로 다루고 보안 대책 학습을 포함한다. 실무적인 방어는 서버 측에서 입력값을 적절히 검증하고, 매개변수화 질의 등으로 사용자 데이터가 SQL 구문으로 해석되지 않도록 하는 것이다. [3]
오답 포인트
클라이언트 검증은 우회할 수 있으므로 서버 측 통제가 필요하다. 문자열 필터 하나에 의존하거나 상세 DB 오류를 외부에 노출하면 우회·정보노출 위험이 남는다.
출처 또는 검증 근거
[3] KISA 아카데미, 「실전형 사이버훈련장(Security-Gym)」 교육 과정, https://academy.kisa.or.kr/edu/apply/applyEduDetail.do?APPLY=02&SQ=9854