Replicated

안전한 데이터 전송 본문

소프트웨어 보안개발방법론

안전한 데이터 전송

라구넹 2025. 4. 19. 21:25

실제로 안전한 메시지 통신 어떻게 이루어지는가?

1. 앨리스, 밥 간 (상호) 인증  (경우에 따라 클라는 인증 안함)

2. 암호화 키 및 인증 키 공유

3. 안전한 데이터 전송

 

 

1. 앨리스, 밥 간 (상호) 인증

- 인증서 기반 상호 인증(Cerificate based Mutual Authentication)
    - 인증서를 교환하여 상호 신원을 확인

- Challenge-Response 인증

    - 임의의 값을 전송하고 상대방이 이를 암호화하여 응답

- Key Agreement Protocol

    - 키 합의 과정에서 상대방의 시크릿 검증

    - Diffie-Hellman Protocol

- Password 기반 상호 인증

    - 패스워드를 이용한 상호 인증 및 키 교환

    - SPEKE(Simple Password Exponential Key Exchange), SRP(Secure Remote Password)

 

* 중간자(MITM, Man In The Middle) 공격

- 클라한테는 서버, 서버한테는 클라처럼 행동

- DNS 스푸핑, ARP 스푸핑

 

 

2. 암호화 키 및 인증 키 공유

- KDC(Key Distribution Center) 이용

    - 신뢰할 수 있는 3자를 이용한 키 분배(kerberos 프로토콜)

- 공개키 암호화 방식을 이용한 키 분배 (RSA)

    - 키 생성 후 상대방의 공개키로 암호화하여 전송

- Pre-Shared Key 이용

    - 사전에 안전한 방법으로 공유된 키를 이용해 키 생성

- 공개키 알고리즘을 이용한 키 협상

    - Diffie-Hellman 키 협상

 

 

* Key/Secret 종류

Long-term Key

- 오랜 기간 유지, 높은 보안 강도 필요

- 인증 및 키 교환에 사용

Short-term Key

- 짧은 기간 유지(통신 세션 등)

- 데이터 암호화에 사용

Master Key

- 다른 키를 생성 또는 유도하는데 사용

- 데이터 암호화 및 인증에 사용되지 않음

Derived Key

- 마스터 키로부터 생성 또는 유도

- 데이터 암호화 및 인증에 사용

 

* 키 생성 방법

User Password -> Masker Key (MK)  .. 비번으로 계산해서 얻음

 

MK -> Authentication Key .. HMAC(MK, "auth")

MK -> Server Encryption Key .. HMAC(MK, "server_enc")

MK -< Cilent Encryption Key .. HMAC(MK, "client_enc")

 

 

3. 안전한 데이터 전송

공유된 암호화 키 및 인증키를 이용하여 secure channel 생성

- 공유된 암호화 키를 이용하여 데이터 기밀성 보장

- 공유된 인증 키를 이용하여 데이터 무결성 보장