본문 바로가기
개발

[HTTP 완벽 가이드] 14장 보안 HTTP 14.1~14.4

by soyooooon 2025. 1. 10.
반응형

HTTP를 안전하게 만들기

HTTPS는 넷스케이프 커뮤니케이션 주식회사에서 개척했으며 모든 주류 브라우저와 서버에서 지원한다. HTTPS를 사용할 경우, 모든 HTTP 요청과 응답 데이터는 네트워크로 보내지기 전에 암호화된다. SSL과 TLS를 이용하여 구현되며 두 가지는 매우 비슷하기 때문에 양쪽 모두를 포함하는 용어로 SSL을 사용한다.

디지털 계산의 도래로 복잡한 인코딩과 디코딩이 가능해졌다. 또한 매우 큰 키를 지원하는 것이 가능해져서 단일 암호 알고리즘으로 키의 값마다 다른 수조 개의 가상 암호 알고리즘을 만들어낼 수 있게 되었다.

대칭키 암호법

대칭키 암호법에서는 인코딩을 할 때 사용하는 키가 디코딩을 할 때 사용하는 키와 같다. 발송자와 수신자 모두 통신을 위해 비밀 키를 똑같이 공유해야 한다. 대칭키 암호 알고리즘으로 DES, Triple-DES, RC2, RC4 등이 있다.

공격자가 코드를 크래킹하려면 모든 가능한 키 값을 시도해보아야 하는데, 키 값에 대한 경우의 수를 늘리기 위해 키가 몇 비트이며 얼마나 많은 키가 유효한지에 달려있다. 40비트 키는 약 1조가지가 가능한데, 초당 수십억 번의 계산이 가능한 요즘에는 쉽게 깨질 수도 있다. 때문에 128비트 키를 사용하는 것이 더 보안에 좋다. 대칭키 암호의 단점 중 하나는 발송자와 수신자가 둘 다 공유키를 가지고 있어야 한다는 점이다. 

공개키 암호법

공개키 암호 방식은 두 개의 비대칭 키를 사용한다. 하나는 호스트의 메시지를 인코딩하기 위해 사용되며 다른 하나는 메시지를 디코딩하기 위해 사용된다. 인코딩 키는 모두를 위해 공개되어 있지만, 호스트만이 개인 디코딩 키를 알고 있다. 공개키 암호 체계 중 유명한 것은 RSA 알고리즘이다.

비대칭 공개키 암호 방식은 누구나 공개키를 알면 그 키에 대응되는 공개 서버에 안전하게 메시지를 보낼 수 있지만, 계산이 느린 경향이 있기 때문에 실제로는 대칭과 비대칭을 섞어 쓴다. 예를 들어, 안전한 의사소통 채널을 수립할 때는 공개 키 암호를 사용하고, 안전한 채널을 통해 임시의 무작위 대칭 키를 생성하고 교환하여 이후 나머지 데이터를 암호화할 때는 빠른 대칭 키를 사용한다.

반응형