본문 바로가기
Computer Science

[CS] 단방향 암호화, 체크섬, HMAC

by 왕타오 2023. 11. 21.

들어가기에 앞서, 단방향 암호화, 체크섬, HMAC 을 알아야하는 이유는 뭘까?

'HTTP/HTTPS 의 동작'을 이해하기 위해서 위의 개념들을 잘 알고 있어야 한다.

 

그렇다면 간략하게 HTTP/HTTPS 부터 먼저 알아보도록 하자!

 

HTTP/HTTPS 란?

HTTP 는 텍스트 기반 통신 규약으로 인터넷에서 데이터를 주고 받을 수 있는 프로토콜이다. 
HTTP + Secure 즉 HTTP의 보안 버전이다. 

 

HTTPS 의 등장 배경

HTTP는 주고 받는 데이터가 암호화 되지 않고 전송되기 때문에 네트워크 어디에서나
*패킷을 캡쳐하면 비밀번호와 같은 중요한 정보도 노출이 되는 위험이 있다.

또한, 정보를 전달해주는 곳이 안전한 곳인지 신뢰할 수 없다는 문제점도 있다. (*피싱, 피싱사이트)

이 두 가지 문제를 해결하기 위해 HTTPS 가 등장했다.

더보기

*패킷(packet)

컴퓨터 네트워크에서 데이터를 주고받을 때 정해 놓은 규칙. 즉, 정보를 보낼 때 특정 형태(데이터 조각)를 맞추어 보낸다. 
참고: https://enlqn1010.tistory.com/9

*피싱

신뢰할 수 있는 소스에서 보낸 것처럼 위장한 사기성 통신을 보내는 수법.

 

일반적으로 HTTPS는 *TLS(Transport Layer Security) 프로토콜을 사용해 보안된 통신을 한다.

TLS는 데이터의 무결성을 보장하기 위해 MAC(Message Authentication Code) 또는 Hash 함수를 사용하여 체크섬 값을 생성한다. 체크섬은 전송되는 모든 데이터에 대해 생성이 되며, 헤더와 페이로드 그리고 기타 전송되는 모든 부분을 포함한다.

더보기

* TLS
전송 계층 보안(TLS)은 인터넷 상의 커뮤니케이션을 위한 개인 정보와 데이터 보안을 용이하게 하기 위해 설계되어 널리 채택된 보안 프로토콜이다.

 

체크섬(CheckSum)

체크섬은 네트워크를 통해 전달된 값이 조작이나 유실 등의 오류 검출을 위한 기법으로 통신으로 주고받는 데이터의 신뢰성을 보장하기 위한 방법이다.

 

TCP 세그먼트에는 IP헤더, 체크섬, 송수신지 주소등의 정보가 있는데, TCP 세그먼트의 값들 중 체크섬을 제외한 모두를 더한다음 그 결과과 세그먼트의 체크섬 값과 일치하는지 확인하는 방식을 말한다

* 참고 : https://hojak99.tistory.com/246

 

단방향 암호화란? 

암호화된 데이터에 대한 복호화가 불가능한 암호화 방식. 대표적으로 HashMAC(Message Authentication Code)이 있다.

단방향 암호화는 암호로 만들어주는 암호키가 존재하지만, 암호를 풀어주는 복호화키가 존재하지 않는 암호화 방식이다.

따라서 어떤 값인지 파악할 필요없이 해당 값이 존재하는지 확인할 때 사용된다.

 

해시(Hash)

해시는 Hash function의 줄임말로, 임의의 길이를 갖는 임의의 데이터를 고정된 길이의 데이터로 변환하는 방법을 의미한다.

해시의 중요한 특징 중 하나는 해시 함수를 통해 데이터를 변환하면(해시하면) 변환된 데이터를 원본 데이터로 복구할 수 없다는 것이다.

이를 '단방향'이라고 표현한다.

 

MAC(Message Authentication Code)

임의 길이의 메시지와 송수신자가 공유하는 키를 기반으로 하는 고정 길이의 출력값을 계산하는 함수로 출력한 값을 MAC라고 한다.

메시지 인증 코드는 메시지의 무결성을 확인하고 메시지에 대한 인증을 할 때 사용된다.

MAC 알고리즘은 메시지와 키를 이용해 MAC 값을 구하고 송신자는 메시지에 MAC 값을 끼워 보낸다.

수신자는 받은 메시지와 본인의 키로 MAC 알고리즘을 통해 MAC 값을 구하고 송신자가 보낸 MAC 값과 일치하는지 확인하다. 

 

HMAC(Keyed-Hash Message Authentication Code)

해시 함수를 사용해서 메시지 인증 코드를 구성하는 방법을 HMAC이라고 한다.

암호화 해시 함수기밀 암호화 키를 수반하는 특정한 유형의 메시지 인증 코드(MAC) 입니다.

 

중요한건 체크섬 자체로는 데이터의 오류는 확인 할 수 있지만 데이터를 신뢰할 수 있는가는 확인할 수가 없다는 점이다.

'Computer Science' 카테고리의 다른 글

[CS] HMAC 활용  (0) 2023.11.27