SSL 트래픽을 처리하는 방법에는 크게 3가지가 존재한다.
- SSL Termination (Offloading)
- SSL Passthrough
- SSL Bridging
이 방법들을 각각 알아보도록 한다.
SSL Termination (Offloading)
SSL Termination은 SSL 암호화 트래픽을 서버 측으로 전달하기 전에 로드밸런서 단에서 SSL 암호화를 푼 뒤, 전달해준다. 이 방식은 SSL 암복호화를 내부 웹 서버단이 아닌 로드밸런서/프록시가 해준다는 점에서 내부 백엔드 서버의 부담을 줄여주게 된다. 이러한 이유로 인해 SSL Offloading(전가)이라고도 불리게 된다.
또한, SSL 인증서를 내부의 백엔드 서버별로 각각 설치해줄 필요 없이, 로드밸런서 측에만 설치해주면된다는 점도 존재한다.
다만, 로드밸런서 단과 내부 백엔드 서버 단의 구간에서는 SSL 암호화가 풀린 채로 전달된다는 점에서 MITM과 같은 공격에 취약해진다는 단점이 존재한다.
SSL Passthrough
SSL Passthrough는 말 그대로 SSL 암호화 트래픽을 중간에 위치한 로드밸런서 단에서 별도로 풀지 않고 그대로 전달하는 방법이다.
이 방식은 SSL 트래픽이 전 구간에서 암호화가 유지되므로 로드밸런서와 내부 백엔드 서버 간의 MITM과 같은 공격 등에 비교적 안전한 모습을 보여준다. 다만, SSL 암복호화 작업을 로드밸런서가 아닌 내부 백엔드 서버에서 진행하기에 그에 따른 부하가 존재한다.
SSL Bridging
SSL Bridging은 앞서 이야기한 Passthrough와 Termination을 결합한 방식으로 볼 수 있다. SSL 암호화 트래픽을 중간에 위치한 로드밸런서 단에서 복호화를 한 번 진행 후, 내부 백엔드 서버로 전달할 때 다시 암호화하여 전달해준다.
이 방법에서는 클라이언트-로드밸런서 구간과 로드밸런서-백엔드 서버 구간에 각각 별도의 SSL 연결을 설정한다. 즉, 두 구간에 사용되는 인증서는 달라도 동작한다는 것이다.
SSL 인증서를 로드밸런서와 백엔드 서버 양 측 모두 설치/관리해주어야한다는 점이 단점으로 적용될 수 있다.
위 3가지 방법들을 정리한 내용은 아래와 같다.
특성 | SSL Termination | SSL Passthrough | SSL Bridging |
성능 | 백엔드 서버 부하 감소 (로드밸런서의 SSL 복호화 작업) |
백엔드 서버 부하 증가 (백엔드 서버에서 SSL 복호화 작업) |
백엔드 서버 부하 증가 (2번의 SSL 복호화 작업) |
보안성 | 중 | 상 | 중-상 |
인증서 위치 | 로드밸런서 | 백엔드 서버 | 로드밸런서, 백엔드 서버 |