https를 사용하면 안전하다고 생각해서 비밀번호 등을 암호화 하지 않는 경우가 있다. 하지만 https를 사용하더라도 중간자 공격에 의해 비밀번호가 탈취될 수 있다.
https의 동작
대칭 키와 비대칭 키
- 대칭 키 방식은 하나의 대칭 키로 암호화, 복호화를 하는 것이다.
- 최초 접근 시에 서버가 클라이언트로 대칭 키를 전달해 줘야 하는데 이 때 탈취당할 수 있다.
- 비대칭 키 방식은 서버가 공개 키/개인 키를 갖고 있다가 클라이언트 요청 시 공개키를 주는 방식이다.
- 대칭 키 방식에 비해 성능이 저하된다.
ssl을 활용한 https
보안성과 성능 두마리 토끼를 잡기 위해 실제로는 두 방식을 섞어서 사용한다.
- 서버(사이트)는 서버의 공개 키와 사이트 정보를 인증기관에 전달
- 인증기관은 (서버 공개키 + 사이트 정보)를 인증기관 개인 키로 서명 : 사이트 인증서
- 브라우저는 인증기관들로부터 인증기관의 공개 키를 미리 제공받음
- 브라우저가 서버에 접근하면 서버는 서버의 인증서를 클라이언트에게 전달
- 클라이언트는 갖고있는 인증기관의 공개 키로 서버 인증서를 복호화해 서버 공개 키를 얻음
- 클라이언트는 클라이언트의 대칭 키를 서버의 공개 키로 암호화해서 서버에게 보냄
- 서버는 이것을 서버의 개인 키로 복호화해서 대칭 키를 얻는다. 이후 대칭 키 방식을 사용함
위 과정의 5번이 부실하게 구현되었다면 https를 사용하더라도 중간자공격에 의해 정보를 탈취당할 수 있다.
https 취약점
ssl을 우회하기 위해 중간자 공격을 할 수 있다. 공격 도구로는 sslstrip, snnopyspy 등이 쓰인다.
공격 기법
- 스니핑
- 네트워크를 통해 오고가는 패킷을 제 3자가 가로채서 보는 것
- 스니핑을 위해 통신 패킷이 공격자를 거쳐 가도록 해야함. 이를 위해 ARP 스푸핑 사용
- 스푸핑
- 공격자가 자신의 신분을 속이는 것
- arp 스푸핑, ip 스푸핑, 쿠키 스푸핑, dns 스푸핑 등
- arp 스푸핑을 과정
- 공격 대상의 arp 테이블 변조
- 공격 대상의 네트워크 패킷이 공격자를 거쳐감
- 공격자는 패킷에 대해 정상 처리해줌
- 공격 대상은 의심 없이 네트워크 사용
- arp 테이블 : ip주소와 mac 주소가 매핑된 테이블
공격 시나리오
- 스마트폰 활용 출석 앱
- 공격자가 ssl 프록시 서버에 스마트폰의 ip 주소와 무선 ap의 게이트웨이 주소를 입력해 arp 스푸핑 실행
- 스마트폰의 모든 통신패킷이 ssl 프록시 서버 경유, 공격자가 사용자의 통신패킷을 볼 수 있게 된다
- ssl 프록시는 가짜 인증서를 만들어 ssl 통신을 중개함. 클라이언트에 ssl 패킷을 보내고 서버한테는 클라이언트인 척 통신함
- 사용자 스마트폰이 ssl 인증서를 검증한다면 공격을 찾아낼 수 있음. 하지만 ssl 인증서를 검증하지 않고 ssl 프로토콜을 사용하기만 한다면 중간자 공격에 성공한다.
- 인증토큰 노출 및 변조사례
- 인증토큰 : 주로 모바일 앱에서 자동 로그인을 위해 사용하며 사용자 정보가 내장되어 있음
- 클라이언트가 https 통신시 서버의 인증서를 검증하지 않으면 중간자 공격으로 인증토큰을 도청 및 변조할 수 있다.
공격 시나리오에서 확인할 수 있는 것처럼 클라이언트가 인증서를 제대로 검증하지 않으면 중간자공격에 의해 비밀번호 등이 평문으로 노출될 수 있다.
따라서 https 통신을 사용한다고 하더라도, 중요 정보는 암호화하도록 하자.
출처
- 취약한 HTTPS 인증 시스템에 대한 SSL 프록시 중간자 공격(지우중, 이경문, 이병천), 중부대학교 정보보호학과
'시큐어코딩' 카테고리의 다른 글
개발보안 취약 사례 및 대응방안 - 2 (1) | 2024.12.04 |
---|---|
개발보안 취약 사례 및 대응 방안 - 1 (0) | 2024.11.24 |