Eavesdrop (도청): 메시지를 엿들어 정보를 수집하는 행위
Insert (삽입): 연결된 통신에 메시지나 데이터를 악의적으로 삽입하는 행위
Impersonation (사칭): 패킷의 필드 등을 변경하여 다른 주체로 가장하는 행위
Hijacking: 연결 중 한 쪽을 강제로 끊고 자신이 해당 연결을 대신 사용하는 행위
Denial of Service (서비스 거부): 대상 시스템에 공격을 가해 서비스를 정상적으로 이용할 수 없게 만드는 것
암호화와 복호화에 동일한 키를 사용하는 암호화 방법
종류
- Monoalphabetic cipher: 간단한 치환 암호화 방식으로, 평문의 각 문자를 다른 문자로 일대일로 치환하여 암호화하는 방법
- DES(Data Encryption Standard): 64비트 블록 단위로 데이터를 암호화하는 블록 암호화 방식
- 64비트의 평문을 입력으로 받고, 56비트의 암호화 키를 사용하여 암호화
- AES(Advanced Encryption Standard): DES의 키 길이 취약성 등으로 인해 등장한 보다 안전한 대칭키 암호화
- 128비트, 192비트, 256비트의 키 길이를 지원하며, 현재 널리 사용되는 암호화 알고리즘
암호화와 복호화에 각각 다른 키를 사용하는 암호화 기술
- 대칭키 암호화 방식을 사용할 때 두 사용자가 아직 한 번도 만난 적이 없어서 어떤 대칭키를 사용할 것인지 정해지지 않았을 경우 발생하는 문제를 해결할 수 있다.
- 공개키(public key)와 개인키(private key)라는 두 개의 키를 사용하여 데이터를 암호화 및 복호화
- 공개키(public key): 누구나 알 수 있는 키로, 송신자는 수신자의 공개키를 사용하여 데이터를 암호화한다.
암호화된 데이터는 수신자가 가지고 있는 개인키로만 해독될 수 있다.- 개인키(private key): 해당 키를 소유한 사용자만이 알고 있는 비밀 키로, 공개키로 암호화된 데이터를 개인키를 사용하여 해독할 수 있다.
과정
- 공개키 암호화 시스템에서는 데이터를 수신하는 사람은 자신의 공개키와 개인키를 생성
- 수신자는 다른 사람들에게 공개키를 제공하여 다른 사람들이 해당 수신자에게 안전하게 데이터를 보낼 수 있도록 제공
- 데이터를 수신한 수신자는 개인키를 사용하여 데이터를 해독
Assymmetric cryptography 조건 2가지
- Public key로 암호화한 것을 Private key로 복호화 가능해야 한다.
- Public key로 Private key를 도출해 낼 수 없어야 한다.
RSA 알고리즘은 공개키를 암호화에 사용하고, 해당 데이터를 복호화하는 데에는 개인키를 사용한다.
전자 서명 등의 디지털 서명 기능
RSA 알고리즘에서는 공개키를 암호화에 개인키를 복호화에, 또는 그 반대로 사용하더라도 정상적으로 암호화와 복호화가 가능 (동일한 값)
통신하는 두 개체 간에 서로의 신원을 확인하거나 검증하는 과정
Nonce (Number used only once in a lifetime): 한 번의 라이프사이클에서만 사용되고 이후에는 폐기되는 값
- 대칭키 암호화: 앨리스와 밥은 알고 있는 대칭키를 사용하여 통신
- Nonce 사용: 앨리스가 밥에게 메시지를 보낼 때, 밥은 먼저 무작위로 생성된 숫자인 Nonce를 앨리스에게 전송
- 앨리스는 해당 Nonce를 사용하여 메시지를 암호화하고, 암호화된 메시지와 함께 Nonce를 밥에게 전송
- 트루디가 이전에 전송된 암호화된 메시지를 가로채서 밥에게 다시 보내려고 할 때, Nonce를 사용하여 방어
- Playback attack 방어: 밥은 Nonce를 기억하고 있어, 동일한 Nonce가 재사용되었다면 밥은 해당 메시지를 무시하고 버린다.
이로써 트루디가 이전에 가로챈 메시지를 재전송하여 playback Attack을 시도하더라도, 밥은 Nonce를 검증하여 이를 방어할 수 있다.
Man in the middle attack: 통신 과정에서 공격자가 중간에서 끼어들어 메시지를 가로채고 수정하거나 조작하는 공격