팀 프로젝트를 하면서 로그인이나 Kakao Map API가 배포 후에는 작동하지 않은 경험이 있다. HTTPS의 환경에서 하지 않은 것이 그 이유였는데 단순히 보안이 좋다라고 알고 있었지만 어떤 큰 차이가 있을지에 대해서 정리해보았다.
HTTP 보안의 취약성
HTTP는 텍스트를 전송하는 기본 프로토콜이다. 데이터가 평문으로 전달되기 때문에 중간에서 누구나 볼 수 있고, 바꿀 수도 있다는 점이 가장 큰 취약점이다.
어떤 보안에 취약할까?
1. 도청
HTTP는 암호화가 없어서 같은 와이파이를 쓰는 사람이나 네트워크 중간 장비가 요청/응답 내용을 그대로 볼 수 있다. 즉, 몰래 훔쳐보기가 너무 쉽다.
2. 데이터 변조
중간에서 데이터를 바꿔치기 할 수 있다. 다운로드 파일에 악성코드를 삽입한다던지, 서버가 보낸 페이지 내용을 변조 할 수 있다. 사용자는 원래 서버가 보낸 건지 알 방법이 없기 때문이다.
3. 중간자 공격
사용자 ↔ 서버 사이에 공격자가 끼어들어서 둘 다 속이는 공격이다. 가짜 로그인 페이지를 보여주고 정보를 탈취하거나 요청을 가로채서 다른 서버로 보낼 수 있다.
4. 서버 신원 위조
이 서버가 진짜인지 검증을 하지 않아서 가짜 사이트를 진짜처럼 꾸며도 구분이 어렵다.
HTTP vs HTTPS의 차이
이러한 취약점을 방지하기 위해서 TLS(SSL)이라는 암호화 프로토콜을 쓴다. 모든 데이터를 암호화하여 전송하므로 가로채더라도 내용을 알 수 없다.

왜 로그인이 안 됐을까? (Cookie & Secure)
최근 브라우저 정책상, SameSite = None 설정을 쓰려면 반드시 Secure 속성을 true로 설정해야한다. 이 Secure 속성은 HTTPS 연결에서만 쿠키를 전송하도록 강제하기 때문에 HTTP 환경에서는 로그인이 유지되지 않았던 것이다.
SSL과 TLS란?
그렇다면 SSL(Secure Sockets Layer)과 TLS(Transport Layer Security)가 무엇일까? 웹 브라어자와 웹 서버 간의 데이터를 암호화하여 통로를 보호하는 보안 통신 규약이다. TLS는 SSL의 최신 버전으로 과거의 개발된 SSL의 보안 취약점을 개선하여 표준화 한 것이 TLS이다. 오늘날 우리는 기술적으로 TLS를 사용하고 있지만, 관습적으로는 여전히 SSL이나 SSL/TLS라고 부른다.
HTTPS의 원리
HTTPS가 안전하면서도 빠른 이유는 2가지 암호화 방식을 섞어 쓰는 하이브리드 방식을 사용하기 때문이다.
왜 2가지 방식을 쓸까?
- 비대칭키(공개키) : 암호화할 때와 복호화할 때 쓰는 키가 다르다. 보안은 강력하지만, 계산 복잡도가 높아서 컴퓨터에 부하가 많이 걸리고 속도가 느리다.
- 대칭키 : 암호화와 복호화에 같은 키를 쓴다. 계산이 단순해서 매우 빠르지만, 상대방에게 키를 전달하는 과정에서 가로채기 당할 위험이 크다.
따라서 비대칭키로 한 번만 대칭키를 안전하게 전달하고, 그 다음부터는 그 대칭키로 빠르게 대화하는 것이 핵심 전략이다.
HTTPS 3단계 암호화 과정
1. Handshake : 브라우저와 서버가 처음 만나 통신 방식을 정한다. 이때 서버는 자신의 공개키가 담긴 인증서를 브라우저에 보낸다.
2. 비밀번호 전달
- 브라우저는 데이터를 빠르게 암호화할 때 쓸 대칭키를 랜덤하게 만든다.
- 이 대칭키를 서버의 공개키로 암호화해서 서버에 보낸다.
- 이 암호문은 서버가 가진 개인키로만 풀 수 있기 때문에 전송 중에 해커가 가로채도 열어볼 수 없다.
3. 진짜 데이터 전송 : 브라우저와 서버 둘 다 똑같은 대칭키를 안전하게 나눠 가졌기 때문에 이 키를 사용해 실제 웹사이트 데이터를 암호화해서 빠르게 주고 받는다.

이번 이슈를 분석하면서 예전에 들었던 보안 수업 시간의 내용이 스쳐 지나갔다. 당시에는 이 용어가 시험을 위한 이론으로만 느껴졌는데 실제 프로젝트에서 로그인 장애라는 실무적인 문제로 마주하니 중요하다는 것을 깨달았다. 다음 프로젝트에서는 설계 단계부터 이런 보안 정책을 고려하는 개발자가 되어야겠다.
'💻 STUDY > CS' 카테고리의 다른 글
| SQL vs NoSQL (0) | 2026.06.12 |
|---|---|
| JWT란? (0) | 2026.01.23 |
| 코테 필수 암기 알고리즘 (0) | 2026.01.15 |