통신에서의 참여자 및 주요 공격 유형
- 송신자 : 메세지를 보내는 사람
- 수신자 : 메세지를 받는 사람
- 주요 공격 유형
- 도청 (Eavesdrop) : 데이터를
- 방지하려면 암호화를 해야함
- 그러나 복화화를 위한 키 공유도 노출될 수 있음 (취약점)
- 위/변조 : 가로채기
- 도청 (Eavesdrop) : 데이터를
암호화와 복호화
- for 공격 방지
- 평문 (plaintext) : 암호화 하기 전의 메세지, 암호문을 푼 것
- 암호문 (ciphertext) : 암호화 한 후의 메세지
- 암호 기술 : 중간의 도청자가 암호문을 가로챈다 해도 비밀값을 모른다면 암호문을 평문으로 복호화 할 수 없도록 하는 기술, 도청 방지를 위해, 기밀성을 위한 기술
- 보안 프로토콜 : 어떻게 암호화할지 송수신자가 미리 약속해야 함
암호 해독 (Crptanalysis)
- 정당한 수신자가 아닌 공격자가 암호문으로부터 평문을 알아내려고 하는 행위
- 공격자가 아닌 연구자도 암호 해독을 할 수 있음
- 암호 해독 전략
- Ciphertext-only Attack : 암호문만을 이용해 키를 찾는 전략 (=평문을 찾는 전략)
- Known Plaintext Attck : 평문과 암호문의 쌍을 가지고 키를 찾는 전략
- Chosen Plaintext Attack : 공격자가 선택한 평문과 그 평문의 암호문을 갖고 키를 찾는 전략
- Chosen Cyphertext Attack : 공격자가 선택한 암호문과 그 암호문을 복호화한 결과인 평문을 갖고 키를 찾는 전략
- 공격자의 입장 : 위 유형에서 위로 갈수록 난이도 ↑
- 암호 알고리즘이 안전다하고 할 수 있는 조건
- 암호를 깨는 데 드는 비용 > 평문의 가치
- 암호 깨는데 걸리는 시간 > 평문의 수명
암호화와 복호화의 기호 표현
- 암호화와 복호화는 함수로 나타낼 수 있음
- 사용 기호
- 평문 : P
- 암호문 : C
- 키 : K
- 암호화
- Encryption
- 입력 : 평문
- 출력 : 암호문
- 복호화
- Decryption
- 입력 : 암호문
- 출력 : 평문
대칭키 암호화 공개키 암호
- key
- 데이터를 암호화 or 복호화하기 위해 필요한 비밀값
- 복호화에 쓰이는 키 : 해당 사용자들만 소유하거나 알고 있게끔 매우 잘 관리해야 함
- 대칭 암호
- 암호 알고리즘 : 암호화에 쓰이는 키 = 복호화에 쓰이는 키
- 주로 데이터 암호화 시 사용
- 비대칭 암호 (공개키 암호)
- 암호 알고리즘 : 암호화에 쓰이는 키 ≠ 복호화에 쓰이는 키
- 주로 대칭암호에 사용되는 키를 암호화하는데 사용 (key 공유를 위해)
- 암호화에 쓰이는 키는 공개하기 때문에 공개키라고 함
- 단점 : 느리고 제한적
- 하이브리드 암호
- 공개키 암호 + 대칭 암호
- 맨 처음에는 key를 공유해야 함 → Bob이 key를 2개 만듦 (for 암호화 & 복호화) → 암호화 할 때 쓰는 key를 Bob이 Alice에게 그냥 보냄 (앞으로 그렇게 하라고) → Bob이 가진 복호화 key로 Alice에게 받은 data를 복호화 가능
일방향 해시 함수
- 무결성을 위해
- 함수 H(x)에 대해, x가 임의의 길이라도 함숫값의 길이는 항상 일정할 때, 이 함수를 해시 함수라 함ㅁ
- n : 1 함수 (1개의 함숫값에 대응되는 x 값이 多)
- 해시 함수 예시
- H(x)=x의 각각의 바이트를 모두 XOR 연산한 값
- H(x)=x의 처음 10bit
- 위 예시는 안전한 해시 함수 X
- 입력 값이 모든 디지털 데이터 가능, 아무 값도 넣지 않은 경우도 계산할 수 있어야 함
- 해시 함수를 통과시킨 함숫값 : Hash Value, Fingerprint, Message digest
해시 함수와 메세지 인증 코드
- " 원본 msg + hash 값 "을 같이 받아 hash 값이 맞는지 비교
- 문제점 : 내용이 안 바뀐 것은 검증이 되지만, 보낸 사람이 누군지는 모른다
- 해결을 위해 MAC 도입
- MAC : 발신자 인증을 하기 위한 메세지 인증 코드
- 받는 사람만 확인 가능
- MAC을 생성하기 위해 메세지와 키 값이 해시 함수에 입력됨
- MAC을 이용해 메세지가 전송 과정에서 변하지 않았다는 것과 해당 사람이 송신자임을 검증할 수 있음
- False Negative : 공격인데 공격이 아니라고 판단하는 것
- 메세지는 조작하고 해쉬값은 잘 나오게 할 수 있음
디지털 서명
- Bob 말고도 다른 사람도 확인 가능하게 하기 위해
- 무결성을 위해
- 메세지의 출처와 메세지 내용에 대한 확신을 위한 과정
- 공개키 암호 시스템 사용 : 비밀키를 이용하여 서명 → 공개키를 이용해 서명을 검증
- 비밀키를 갖고 있는 사람만 서명 가능 → 서명한 사람이 누구인지 쉽게 검증 가능
- 암호화 알고리즘 X
- 문서 전체를 비밀키를 이용해 암호화하면 시간이 오래 걸리므로 보내는 사람이 자신의 비밀키로 문서의 해시값을 암호화함
난수 및 의사 난수 생성기
- 현재 사용되고 있는 대부분의 보안 프로토콜에서 사용
- 사용 예시
- 암호 알고리즘에서 각종 키 생성
- 프로토콜에서 재전송 공격을 막기 위한 방법
- 난수 : 예측 불가능성과 무작위성을 만족하며 생성된 수
- 예측 불가능성 : 그동안 뭐가 나왔든 간에 앞으로 뭐가 나올지 모르는
- 무작위성 : 모든 수가 나올 확률이 같은
- 난수 알고리즘 : 입력이 항상 달라야 (보통 시간 값) 알고리즘에 따라 나오는 값이 다름
- 의사 난수 스트림 (Pseudo Random Number Stream) : 예측 불가능성과 무작위성을 완벽하게 만족하지는 않고 수열이 반복되기는 하지만 (주기O) 충분히 수열이 길고 불규칙해 어느정도는 난수 성질을 만족하는 수열, 주로 무선 통신에 사용
- Pseudo Random Number Generator : 의사 난수 스트림을 생성하는 알고리즘, 의사 난수 생성기
난수를 이용한 재전송 공격 방지 방법 예시
- K : Alice와 Bob만 공유하고 있는 값
- 난수를 사용하지 않았을 때, Replay Attack
- 난수를 사용할 때 : 위의 상황 해결 가능
보안 위협 완화를 위한 암호 기술 사용 예시
- 보안을 위해 사용되는 암호 기술
- 대칭암호 / 공개키 암호
- 일방향 해시함수
- 메세지 인증 코드 / 디지털 서명
- 의사 난수 생성기
- 보안 위협을 완화시킬 전략
보안 위협 | 위협 받는 특성 | 방지를 위한 암호기술 |
도청 | 기밀성 | 대칭 암호 / 공개키 암호 |
메세지 변경 | 무결성 | 메세지 인증 코드 / 디지털 서명 (+ 대칭 암호 / 공개키 암호 / 일방향 해시 함수) |
위장 | 인증 | 메세지 인증 코드 / 디지털 서명 (+ 대칭 암호 / 공개키 암호 / 일방향 해시 함수) |
부인 | 부인 봉쇄 | 디지털 서명 |
스테가노그라피와 디지털 워터마킹
- 스테가노그래피 (steganography)
- 기밀성 중시할 때는 사용 X
- 메세지 내용을 읽지 못하게 하는 것이 아니라, 메세지의 존재 자체를 숨기는 기법
- 메세지를 숨겨 넣는 방법을 알게 되면 메세지 내용은 금방 노출
- 예시 : 이합체시, 디지털워터마킹
- 디지털 워터마킹
- 저작권자를 확인할 수 있는 특정 마크를 삽입해 불법 복제를 방지하는 기술
- 오디오, 비디오, 이미지 등 디지털 데이터에 특정 마크 삽입 가능
- 불법 복제 시 소유권 정볼르 추적 가능
- 워터마크 삽입 방법 : 공간 or 시간 or 주파수 영역에
암호와 보안 상식
- 비밀 알고리즘을 사용하지 말 것
- 테스트를 안해봐서 안전한지 모름
- 대칭키 암호의 안전성은 키를 비밀로 함으로써 지켜지는 것
- 암/복호화 알고리즘은 오히려 공개되는 것을 권장
- 약한 암호화 알고리즘은 사용하지 말 것
- 공격자가 암호문을, 혹은 평문과 암호문의 쌍을 갖고 있더라도 키를 알아내지 못하도록 해야 함
- 강한 암호화 알고리즘 : AES, 3DES
- 어떤 암호라도 언젠가는 해독된다
- 암호는 보안의 아주 작은 부분이기 때문에 완벽한 보안을 위해서는 암호 기술 외에 다른 여러 가지 요소들도 고려해야 함 : 키&사람 관리, 알고리즘만 믿지 않기
'Computer Science > Network Security' 카테고리의 다른 글
[CS][알기 쉬운 정보보호개론 3판] Chapter05. 블록 암호 모드 (1) | 2023.10.17 |
---|---|
[CS][알기 쉬운 정보보호개론 3판] Chapter04. 대칭 암호 (0) | 2023.10.16 |
[CS][네트워크보안] Chapter03. 암호의 역사 (2) | 2023.10.14 |
[CS][네트워크보안] Chapter1. 스마트 시대와 정보 보호 (1) | 2023.10.09 |
[CS][네트워크보안] "네트워크보안" 수강을 시작하며 (0) | 2023.10.08 |