- ㄱ. 위장(masquerade)
- ㄴ. 변조(modification)
- ㄷ. 도청(eavesdropping)
- ㄹ. 트래픽 분석(traffic analysis)
적극적 공격은 위장과 변조(ㄱ, ㄴ)이다.
적극적 공격은 데이터를 변경하거나 시스템에 직접 영향을 주는 공격이고, 소극적 공격은 정보를 엿보기만 하고 변경하지 않는 공격이다.
- 위장: 다른 개체인 척 속이는 적극적 공격이다.
- 변조: 메시지 내용을 바꾸는 적극적 공격이다.
- 도청: 내용을 엿듣기만 하는 소극적 공격이다.
- 트래픽 분석: 통신 패턴을 관찰해 정보를 추론하는 소극적 공격이다.
전자서명은 메시지 기밀성을 제공하지 않는다.
전자서명은 서명자의 개인키로 만들고 누구나 공개키로 검증하므로 메시지 내용을 숨기지 못한다. 기밀성이 필요하면 별도의 암호화를 함께 적용해야 한다.
- 메시지 무결성: 메시지가 바뀌면 서명 검증이 실패하므로 제공된다.
- 서명자 인증: 서명자의 공개키로 검증되므로 서명자가 누구인지 확인된다.
- 서명 부인 방지: 서명자만 개인키를 가지므로 서명 사실을 부인할 수 없다.
흔히 Orange Book으로 불리는 미국의 정보 보안 평가 기준은 TCSEC이다.
TCSEC는 미국 국방부가 제정한 기준으로, 주로 기밀성을 중심으로 시스템을 D, C1, C2, B1, B2, B3, A1 등급으로 평가한다.
- CC: 각국 평가 기준을 통합한 국제 공통평가기준이다.
- PIMS: 국내의 개인정보보호 관리체계 인증 제도였다.
- ITSEC: 유럽 국가들이 제정한 평가 기준이다.
- 상업 환경에서의 데이터의 무결성에 중점을 둔 것이다.
- 정형화된 트랜잭션의 처리 과정에서 직무를 분리하도록 한다.
- 제약을 받는(constrained) 데이터 항목에 대해 무결성 검증 절차를 거치도록 한다.
상업 환경의 무결성, 직무 분리, 제약 데이터 항목(CDI)의 검증 절차를 특징으로 하는 모델은 Clark-Wilson 모델이다.
Clark-Wilson 모델은 데이터를 정형화된 트랜잭션(TP)으로만 변경하게 하고, 무결성 검증 절차(IVP)와 직무 분리로 무결성을 유지한다.
- Bell-LaPadula: 군사 환경의 기밀성에 중점을 둔 모델이다.
- Biba: 무결성 모델이지만 등급 기반 규칙을 쓰며 트랜잭션·직무 분리 개념은 없다.
- Lattice: 보안 등급을 격자 구조로 표현한 정보 흐름 모델이다.
- 정당한 사용자가 정보시스템의 데이터 또는 자원을 필요로 하는 시점에 사용할 수 있는 성질이다.
- 확보 방법으로 데이터 백업, 중복성 유지 등이 있다.
- 위협 요소로는 서비스 거부 공격, 지진, 홍수 등이 있다.
정당한 사용자가 필요할 때 데이터와 자원을 사용할 수 있는 성질은 가용성이다.
가용성은 백업·중복성 유지 등으로 확보하며, 서비스 거부 공격이나 지진·홍수 같은 재해가 대표적 위협이다.
- 기밀성: 허가된 사람만 정보를 볼 수 있게 하는 성질이다.
- 무결성: 정보가 허가 없이 변경되지 않게 하는 성질이다.
- 책임추적성: 누가 언제 무엇을 했는지 추적할 수 있게 하는 성질이다.
「개인정보 보호법」의 개인정보는 살아 있는 개인에 관한 정보이므로, 사망자에 대한 정보는 해당하지 않는다.
개인정보는 살아 있는 개인에 관한 정보로서 성명·주민등록번호·영상 등을 통해 개인을 알아볼 수 있거나, 다른 정보와 쉽게 결합해 알아볼 수 있는 정보 등을 말한다.
- 성명은 개인을 알아볼 수 있는 정보로 개인정보에 해당한다.
- 주민등록번호는 개인을 알아볼 수 있는 정보로 개인정보에 해당한다.
- 영상 등을 통해 개인을 알아볼 수 있는 정보는 개인정보에 해당한다.
- 공인 IP 주소가 내부 사설 IP 주소보다 부족한 경우에 적용 가능한 방식이다.
- 내부 사설 IP 주소나 내부 네트워크 대역을 공인 IP로 자동 매핑하는 기능을 제공한다.
- 내부 IP 주소를 외부로부터 보호해 주는 기능을 제공하기도 한다.
사설 IP 주소를 공인 IP 주소로 매핑하고 내부 주소를 숨겨 주는 기술은 NAT(Network Address Translation)이다.
NAT는 적은 공인 IP로 여러 내부 호스트가 통신하게 해 주소 부족을 완화하고, 외부에서 내부 주소가 보이지 않아 내부망 보호 효과도 있다.
- ARP: IP 주소에 대응하는 MAC 주소를 알아내는 프로토콜이다.
- IPS: 침입을 탐지해 차단까지 하는 시스템이다.
- VLAN: 물리적 배치와 관계없이 논리적으로 네트워크를 나누는 기술이다.
- 1. 공개키 암호 방법을 사용하는 A와 B의 통신에 C가 개입한다.
- 2. C는 A의 공개키를 가로채어 B에게 C의 공개키를 A의 공개키처럼 전송한다.
- 3. B는 C의 공개키로 메시지를 암호화하여 A에게 전송한다.
- 4. C는 B가 보낸 메시지를 가로채어 C의 개인키로 복호화한다.
- 5. C는 복호화한 메시지를 단계 2에서 가로챈 A의 공개키로 암호화하여 A에게 B가 보낸 것처럼 전송한다.
- 6. A는 자신의 개인키로 메시지를 복호화한다.
통신 중간에 끼어들어 공개키를 바꿔치기하고 메시지를 복호화·재암호화하는 공격은 중간자(MITM) 공격이다.
A와 B는 서로 직접 통신한다고 믿지만 실제로는 C를 거치며, 이는 공개키가 정말 상대방의 것인지 인증하지 않았기 때문에 가능하다. 인증서(PKI)로 공개키를 검증하면 막을 수 있다.
- Smurf: 출발지를 피해자로 위조한 ICMP 요청을 브로드캐스트해 응답을 몰리게 하는 서비스 거부 공격이다.
- Sniffing: 패킷을 엿보기만 하는 소극적 공격으로, 키 바꿔치기나 메시지 재전송을 하지 않는다.
- Slowloris: HTTP 헤더를 매우 느리게 보내 연결을 오래 점유하는 서비스 거부 공격이다.
공개키 암호 방식으로 송신자가 수신자에게 보낼 평문을 암호화할 때는 (가) 를 사용하고, 송신자가 평문을 전자서명하여 수신자에게 보낼 때는 (나) 를 사용한다.
| (가) | (나) | |
|---|---|---|
| ① | 송신자의 공개키 | 송신자의 공개키 |
| ② | 수신자의 공개키 | 송신자의 공개키 |
| ③ | 송신자의 공개키 | 송신자의 개인키 |
| ④ | 수신자의 공개키 | 송신자의 개인키 |
(가)에는 수신자의 공개키, (나)에는 송신자의 개인키가 들어간다.
암호화는 수신자만 자신의 개인키로 풀 수 있도록 수신자의 공개키로 하고, 전자서명은 송신자만 만들 수 있도록 송신자의 개인키로 해서 누구나 송신자의 공개키로 검증하게 한다.
- 송신자의 공개키·송신자의 공개키: 송신자의 공개키로 암호화하면 수신자가 복호화할 수 없고, 공개키로 서명하면 누구나 같은 서명을 만들 수 있다.
- 수신자의 공개키·송신자의 공개키: 암호화는 맞지만, 공개키로는 서명이 성립하지 않는다.
- 송신자의 공개키·송신자의 개인키: 서명은 맞지만, 송신자의 공개키로 암호화하면 수신자가 복호화할 수 없다.
익명·가명 처리의 우선순위가 뒤바뀌었으므로 옳지 않다. 법은 익명 처리가 가능하면 익명으로, 익명으로 목적을 달성할 수 없으면 가명으로 처리하도록 한다.
익명처리는 개인을 다시 알아볼 수 없게 하는 것이라 가명처리보다 보호 수준이 높으므로 먼저 고려해야 한다.
- 처리 목적을 명확히 하고 필요한 범위에서 최소한의 개인정보만 적법·정당하게 수집해야 한다는 원칙은 옳다.
- 처리 목적에 필요한 범위에서 정확성·완전성·최신성을 보장해야 한다는 원칙은 옳다.
- 정보주체의 사생활 침해를 최소화하는 방법으로 처리해야 한다는 원칙은 옳다.
스택에서 코드가 실행되는 것을 허용하면 공격자가 스택에 넣은 셸코드가 실행될 수 있으므로 대응 방법으로 옳지 않다.
올바른 대응은 스택 영역을 실행 불가로 지정하는 것(Non-Executable Stack, DEP/NX)이다.
- 저장할 데이터의 최대 길이를 지정하는 안전한 함수(strncpy 등)를 쓰는 것은 올바른 대응이다.
- 스택 주소를 무작위로 배치해 주소 추측을 어렵게 하는 ASLR은 올바른 대응이다.
- 함수 종료 전에 카나리 값의 변조 여부를 검사하는 스택 가드는 올바른 대응이다.
정보시스템 보호는 ISMS-P 보호대책 요구사항 중 인증 및 권한관리가 아니라 물리 보안 영역에 속한다.
인증 및 권한관리 영역은 사용자 계정 관리, 사용자 식별, 사용자 인증, 비밀번호 관리, 특수 계정 및 권한관리, 접근권한 검토로 구성된다.
- 비밀번호 관리는 인증 및 권한관리 항목이다.
- 접근권한 검토는 인증 및 권한관리 항목이다.
- 특수 계정 및 권한관리는 인증 및 권한관리 항목이다.
「위치정보의 보호 및 이용 등에 관한 법률」의 소관 부처는 과학기술정보통신부가 아니라 방송통신위원회이므로 잘못 짝지어졌다.
위치정보사업자의 허가·신고와 개인위치정보 보호 등 위치정보법 집행은 방송통신위원회가 맡는다.
- 「개인정보 보호법」의 소관이 개인정보보호위원회인 것은 옳다.
- 「공공기관의 정보공개에 관한 법률」의 소관이 행정안전부인 것은 옳다.
- 「전자서명법」의 소관이 과학기술정보통신부인 것은 옳다.
공격자는 웹사이트에서 인증 과정을 거쳐 활성 세션을 가지고 있는 사용자로 하여금 공격자가 만든 악의적인 링크에 접근하게 유도한다. 이 링크를 클릭한 사용자는 자신도 인지하지 못한 채 공격자가 의도한 데이터를 HTTP 몸체(body)에 첨부하여 페이지 내용을 변경하도록 하는 HTTP (가) 요청을 웹사이트로 보낸다. 이와 같은 방식의 공격을 (나) 라고 한다.
| (가) | (나) | |
|---|---|---|
| ① | GET | XSS |
| ② | GET | CSRF |
| ③ | POST | XSS |
| ④ | POST | CSRF |
(가)에는 POST, (나)에는 CSRF가 들어간다.
데이터를 HTTP 몸체에 담아 서버의 내용을 변경하는 요청은 POST 방식이며, 인증된 사용자가 자신도 모르게 공격자가 의도한 요청을 보내게 만드는 공격은 CSRF(사이트 간 요청 위조)다.
- GET·XSS: GET은 데이터를 몸체가 아니라 URL의 쿼리 문자열로 전달하고, XSS는 악성 스크립트를 사용자 브라우저에서 실행시키는 공격이다.
- GET·CSRF: 공격 명칭은 맞지만, 몸체에 데이터를 첨부하는 요청은 GET이 아니다.
- POST·XSS: 요청 방식은 맞지만, 사용자의 권한으로 요청을 위조하는 공격은 XSS가 아니라 CSRF다.
S/MIME의 콘텐트 유형 중 데이터의 기밀성만 제공하는 것은 Enveloped-Data이다.
Enveloped-Data는 콘텐츠를 콘텐츠 암호화 키로 암호화하고, 그 키를 수신자별로 암호화해 함께 보내는 전자봉투 방식이다.
- Signed-Data: 전자서명으로 무결성과 인증을 제공하며 기밀성은 제공하지 않는다.
- Auth-Enveloped-Data: 인증 암호화로 기밀성과 함께 무결성(인증)까지 제공한다.
- Compressed-Data: 콘텐츠를 압축하는 유형으로 보안 기능을 제공하지 않는다.
/etc/shadow에는 대칭키 암호 알고리즘의 종류가 들어가지 않는다.
패스워드 필드는 해시 알고리즘 식별자, 솔트, 해시값으로 이루어지며, 패스워드는 복호화되는 대칭키 암호가 아니라 일방향 해시로 저장된다. 이 밖에 계정명, 최종 변경일, 최소·최대 사용 기간, 경고 기간 등의 필드가 있다.
- 사용자 계정명은 첫 번째 필드로 포함된다.
- 솔트는 패스워드 필드 안에 포함된다.
- 기준일(1970년 1월 1일)부터 패스워드를 마지막으로 바꾼 날까지의 일수는 포함된다.
소수 p의 원시근 대신 p-1의 소인수 q를 위수로 갖는 원소로 키를 만드는 전자서명은 Schnorr 서명이다.
Schnorr 방식은 위수가 작은 q의 부분군에서 연산하므로 ElGamal보다 서명 길이와 계산량이 줄어든다.
- RSA: 큰 수의 소인수분해 문제에 기반한 서명으로 원시근을 사용하지 않는다.
- ElGamal: 위수가 p-1인 원시근을 그대로 사용하는 방식이다.
- ECDSA: 유한체의 곱셈군이 아니라 타원 곡선 위의 점 연산을 사용하는 방식이다.
- ㄱ. 인증서 확인
- ㄴ. 세션을 활성 상태로 유지
- ㄷ. 세션키 생성 및 교환
- ㄹ. 응용 데이터 전송
TLS 핸드셰이크 프로토콜의 목적은 인증서 확인과 세션키 생성 및 교환(ㄱ, ㄷ)이다.
핸드셰이크는 데이터를 보내기 전에 암호 알고리즘을 협상하고, 인증서로 상대를 인증하며, 이후 통신에 쓸 키를 만들어 공유하는 과정이다.
- 세션을 활성 상태로 유지하는 것은 핸드셰이크가 아니라 하트비트(Heartbeat) 확장의 역할이다.
- 응용 데이터 전송은 핸드셰이크가 끝난 뒤 레코드 프로토콜이 수행한다.
는 키 K에 0을 채워 전체 길이를 해시 함수 출력 크기가 아니라 해시 함수의 입력 블록 크기(b비트)와 같게 만든 것이므로 옳지 않다.
HMAC은 를 ipad와 XOR해 메시지 앞에 붙여 한 번 해시하고, 그 결과 앞에 와 opad의 XOR을 붙여 다시 해시한다. 가 ipad·opad와 XOR되므로 세 값은 모두 블록 크기여야 한다.
- 해시 함수 H로 MD5·SHA-1·SHA-512 등 가용한 것을 선택할 수 있다는 설명은 옳다.
- K가 HMAC를 주고받는 사용자가 공유하는 비밀키라는 설명은 옳다.
- ipad·opad가 각각 16진수 36·5C의 반복으로 블록 크기와 같다는 설명은 옳다.
- : 평문 블록
- : 암호문 블록
- : 암호화 함수
- : 키
- : 초기벡터
주어진 수식은 CBC 모드이며, 복호화가 , 라는 설명이 옳다.
암호화 식 의 양변에 를 적용하면 이고, 양변에 를 XOR하면 평문이 나온다. 첫 블록은 대신 IV를 쓴다.
- IV는 비밀일 필요가 없고 예측 불가능하면 되므로, 반드시 비밀로 해야 한다는 설명은 틀리다.
- 암호문 블록 하나의 비트 오류는 해당 평문 블록과 바로 다음 평문 블록 두 개에만 영향을 주므로, 마지막 블록까지 모두 영향을 준다는 설명은 틀리다.
- 각 암호화가 이전 암호문 블록을 필요로 하므로 암호화 과정은 병렬 처리할 수 없다(복호화는 병렬 가능).