페이스북에 HTTP 링크 공유하면 HTTPS로 바뀐다

"링크보안인프라에 자동 업그레이드하는 HSTS 프리로딩 기능 도입"

컴퓨팅입력 :2018/03/07 09:17

페이스북이 사용자가 HTTP로 공유한 링크의 인터넷 통신 방식을 보안을 강화한 'HTTPS'로 자동 변경하는 기술을 도입했다.

지난 5일 페이스북의 영국 소재 데이터프라이버시팀 소속 소프트웨어 엔지니어 존 밀리컨(Jon Millican)은 공식 노트를 통해 "페이스북의 링크 보안을 업그레이드했다"고 밝혔다. [☞원문보기]

HTTP는 웹서버와 브라우저가 데이터를 주고받는 일반적인 인터넷통신 프로토콜이다. HTTP로 전달되는 내용은 제3자도 들여다볼 수 있다. 그래서 HTTP 서비스만 제공하는 웹사이트에는 중요한 데이터를 입력하면 안 된다. 주민등록번호나 신용카드번호같은 개인정보, 사용자계정과 패스워드까지 외부에 노출될 수 있다.

HTTPS는 사용자와 웹사이트 사이에 오간 내용을 보호한다. 이를 위해 암호화 기술을 적용한다. 인터넷통신 데이터를 암호화해 제3자가 그 내용을 수집하더라도 실제로 어떤 정보가 담겼는지는 알 수 없게 만든다. 개인정보와 계정같은 중요한 정보를 입력받는 대다수 주요 웹사이트는 모두 이 기술을 사용하고 있다. 페이스북도 마찬가지다.

페이스북 서비스 안에서는 로그인 단계를 포함한 대화 및 활동 내용이 HTTPS로 보호된다. 하지만 사용자들이 타임라인에 외부 웹사이트 링크를 공유하고, 다른 사용자들이 그 웹사이트로 이동하면 얘기가 달라진다. 공유된 웹사이트가 HTTP 기반으로 서비스될 경우에는 여전히 사용자의 인터넷 활동이 제3자에게 노출될 수 있다.

페이스북이 2018년 3월 5일 자사 서비스에서 공유된 링크로 외부 웹사이트를 오가는 사용자들의 인터넷통신까지 HTTPS 암호화통신으로 보호하는 HSTS프리로딩 기능을 링크보안인프라에 적용했다고 밝혔다.

페이스북은 이 부분의 보안을 강화하기 위해, 사용자들이 외부 웹사이트를 방문할 때도 HTTPS 기술로 그 활동을 보호하기로 했다. 사용자들은 페이스북, 인스타그램 서비스에서 HTTP 주소로 공유된 링크를 열면, 페이스북의 링크 보안 인프라에 적용된 기술을 통해 HTTPS 방식으로 통신하게 된다.

페이스북이 도입한 기술은 'HTTPS 스트릭트 트랜스포트 시큐리티(HSTS)' 기능을 사용한다. HSTS는 웹서버 정책을 통해 웹사이트를 HTTPS 통신으로만 제공하는 기능이다. 웹서버에 접속한 방문자 브라우저의 요청이 HTTP로 들어오더라도 무조건 HTTPS로 바꿔서 제공한다는 뜻이다. 그리고 페이스북은 웹서버가 이렇게 동작한다고 사용자의 브라우저에 미리 알려주는 'HSTS프리로딩'이라는 기술도 적용했다.

페이스북은 현존하는 대다수 웹브라우저가 HSTS 기능을 지원하는데, 여전히 이를 지원하지 않는 브라우저를 사용하는 사람들도 많다고 판단했다. 페이스북은 이 기능을 통해 회사의 인터넷서비스에 공유된 HTTP 링크를 HTTPS로 자동 업그레이드해, 사용자들이 그 링크를 눌렀을 때 기술적으로 가능한 최고 수준의 인터넷 통신 보안 수단을 쓰도록 만든 것이다.

HTTPS를 지원하는 웹사이트에서도, 사용자 웹브라우저의 HSTS프리로딩 기능이 동작하려면 조건이 붙는다. 웹브라우저에 내장된 'HSTS 사이트 목록' 안에 해당 웹사이트가 포함돼 있어야 한다. 이 목록은 웹브라우저 새 버전을 통해 갱신된다. 뒤집어 말하자면 이 목록이 오래된 구버전 웹브라우저 사용자에겐 HSTS프리로딩 기능도 제한적으로 작동한다.

이에 페이스북 측은 어떤 웹사이트 링크에 HTTPS 링크 보안 업그레이드 기술을 적용할지 판정하기 위해 2가지 출처를 사용하기로 했다. 하나는 구글 크롬 브라우저의 오픈소스 버전인 '크로미엄' 브라우저의 프리로드 목록이다. 이는 주요 브라우저에 통용되며, 페이스북에서도 그걸 정기적으로 갱신하고 있다. 다른 하나는 페이스북에 공유되는 웹사이트의 HSTS 헤더 기록이다.

다만 이 페이스북의 링크 보안 업그레이드 방식엔 근본적인 한계가 있다. 사용자가 HTTP 링크를 공유하긴 했지만, 그 사이트가 운영되는 서버가 원래부터 HTTPS 기반으로도 운영되고 있을 경우에만 효력을 발휘한다는 점이다. 대상 웹사이트의 서버가 애초부터 HTTPS 방식을 지원하지 않는다면 이 기술은 아무런 효과가 없다.

관련기사

밀리컨은 "여러분이 운영하는 웹사이트가 아직 HTTPS를 지원하지 않는다면, 지원을 시작하고 HSTS를 사용하도록 설정하기를 적극 권한다"며 "페이스북이 후원하는 렛츠인크립트(Let's Encrypt)는 무료 TLS 인증서와 대다수 일반적인 서버 소프트웨어용 HTTPS 구동방법에 대한 간단한 지침을 제공한다"고 제안했다.

렛츠인크립트는 웹서버의 HTTPS 구현에 필요한 TLS인증서를 무료 발급하는 프로젝트다. 유료 구매해야 하는 TLS인증서 대비 적용 도메인 범위가 제한돼 있고 갱신 주기가 짧은 편이다. 비영리조직 인터넷시큐리티리서치그룹(ISRG)이 2015년 9월부터 운영을 시작하며 HTTPS 확산을 거들고 있다. 출범 19개월만인 2017년 6월 TLS인증서 누적 발급건수 1억건을 넘기기도 했다. [☞관련기사]