Publications

Detailed Information

Transport Layer Security Extensions for Middleboxes and Edge Computing : 미들박스와 엣지컴퓨팅을 위한 전송 보안 계층 확장 연구

Cited 0 time in Web of Science Cited 0 time in Scopus
Authors

이현우

Advisor
권태경
Issue Date
2020
Publisher
서울대학교 대학원
Keywords
Transport Layer SecurityMiddleboxesTrusted Execution Environments전송 계층 보안(TLS)미들박스엣지 컴퓨팅신뢰 수행 환경(TEE)
Description
학위논문 (박사) -- 서울대학교 대학원 : 공과대학 컴퓨터공학부, 2020. 8. 권태경.
Abstract
인터넷 트래픽이 HTTPS로 암호화되면서 웹 캐시나 방화벽 같은 미들박스는 특별한 조치가 없이는 동작하기 어려운 상태가 되었다. 그러다보니 현업에서는 미들박스를 암호화된 세션에서 활용하기 위해 공개키 인증 구조의 신뢰 방식을 오용하여 SplitTLS라고 하는 TLS를 가로채는 기법을 사용하고 있다. 그렇지만 지난 몇 년간 발표된 여러 논문에서는 미들박스가 잘못 구현되었거나 미들박스 설정이 잘못되어 SplitTLS를 수행하는데 있어 여러 보안 문제가 발생하고 있다는 것이 밝혀졌다.

이 논문은 미들박스가 TLS 세션에 안전하고 신뢰성있게 참여하기 위한 방법을 설계하고자 한다. 이를 위해 우리는 먼저 미들박스를 중간자 역할을 수행하는 미들박스와 종단점 역할을 수행하는 미들박스로 구분하였다. 중간자 역할을 수행하는 미들박스란 통신 시간에 서버와 클라이언트 가운데서 동작을 수행하는 중개자이며, 종단점 역할을 수행하는 미들박스란 세션이 활성화된 동안 미들박스가 서버처럼 동작하는 개체를 의미한다. 전자의 예로는 침입 탐지 시스템이 있으며 후자의 예로는 웹 캐시가 있다. 이 구분 하에서 우리는 미들박스를 TLS 세션에 참여시키기 위한 23개의 프로토콜에 대해 검토하였다.
23개 중 14개는 중간자 역할을 수행하는 미들박스를 위한 프로토콜이며, 9개는 종단점 역할을 수행하는 미들박스를 위한 프로토콜이다.

우리는 선행 연구를 검토하면서 다음의 교훈을 얻었다. 우선 중간자 역할을 수행하는 미들박스를 위한 프로토콜을 설계하는데 있어서 먼저 고려해야 할 점은, 미들박스가 과도한 퍼미션을 갖지 않도록 최소 권한을 줄 수 있는 방법을 찾아야 한다는 것이었다. 또한, 서버가 세션에 참여하기 때문에, 서버가 암호학적 방법을 통해서 클라이언트에게 미들박스에 대한
정보를 줄 수 있다는 점도 고려할 수 있다는 것을 알게 되었다. 다음으로 종단점 역할을 수행하는 미들박스를 위한 프로토콜을 설계하는데 있어서 중요하게 고려해야 할 점은 서버가 세션에 참여하지 않기 때문에, 서버로의 통신이 추가되는 것은 바람직하지 않다는 점과 키 관리에 있어서 서버에게 부하가 가지 않도록 되어야 하며 기밀 키의 개수는 최소화할 수 있어야 한다는 점이었다.

이 논문에서는 위 교훈점을 바탕으로 maTLS와 TLS-SEED라는 두 개의 프로토콜을 제안하였다.

먼저, maTLS 프로토콜은 중간자 역할을 수행하는 미들박스를 위한 프로토콜이다. 현재 미들박스를 보안 세션에 참여시키기 위한 SplitTLS라는 프로토콜은 매우 많은 보안 문제점이 발견 되었다. 여러 선행 연구들이 TLS와 미들박스를 결합하면서 인증서 검증 실패나 오래된 암호 기법을 사용하거나 원치 않는 수정을 한다는 것을 밝혀 내었다. 이러한 보안 취약점을 해결하기 위해 우리는 maTLS 프로토콜을 제안하였다. 이 프로토콜은 미들박스가 TLS 세션에 자신을 드러내면서 감독될 수 있는 형태로 참여하도록 한다. TLS 세션에 참여하는 모든 미들박스들은 세션을 두 개의 세그먼트로 분할하며
각 세그먼트는 해당 세그먼트를 위한 보안 파라미터를 갖는다. maTLS 프로토콜은 미들박스를 인증하고 각 세그먼트들의 보안 파라미터를 검증하며, 미들박스의 쓰기 연산을 감독하도록 설계되었다. 이렇게 하여 전체 세션의 보안성이 보장된다.이 보안성이 실제 달성된다는 것을 보이기 위해 우리는 최신 보안성 검증 도구인 Tamarin을 활용하여 증명하였으며 실제 테스트베드 실험을 통해 maTLS가 약간의 오버헤드를 가지면서 위 보안성 목표를 달성한다는 것을 보였다.

다음으로 TLS-SEED는 종단점 역할을 수행하는 미들박스를 위한 프로토콜이다. 특별히 우리는 엣지 컴퓨팅 시나리오를 고려하면서 이 프로토콜을 설계하였다. 엣지 컴퓨팅이란 계산과 저장 노드를 클라이언트에 가깝게 위치시켜서 클라이언트에게는 빠른 응답을 제공하고 서버에게는 대역폭 부하를 줄이도록 한다. 일반적으로 엣지 컴퓨팅 플랫폼은 애플리케이션 제공자나 클라이언트에게 서드 파티이기 때문에 이 두 개체는 모두 높은 수준의 보안성을 요구할 것이다. 이에 따라 우리는 \tls를 제안하였으며, 이를 통해 위험한 개인키 공유 문제와 비효율적인 원격 입증 문제를 해결하고자 하였으며, 동시에 엣지 컴퓨팅의 장점인 성능 향상을 유지토록 하고자 하였다. TLS-SEED는 애플리케이션 서비스 제공자가 i) 자신의 개인키를 공유하지 않으면서도 엣지 애플리케이션을 도입할 수 있도록 만들어주고, ii) 원격 입증을 수행하여 엣지 애플리케이션을 인가하거나 비인가할 수 있도록 해준다. 또한 애플리케이션 서비스 제공자가 클라이언트에게 엣지 애플리케이션에 대한 충분한 정보를 제공하여 클라이언트가 입증 서비스에 의존하지 않더라도 엣지 애플리케이션에 대해 이해할 수 있도록 해준다. TLS-SEED를 위한 핵심 자료 구조는 CrossCredential (CC)이며, 이는 클라이언트에게 애플리케이션 제공자와 신뢰할 수 있는 기기 사이의 신뢰 관계를 명시적으로 보여준다. CC는 또한 클라이언트가 엣지 애플리케이션의 무결성을 검증할 수 있도록 충분한 정보를 제공한다. TLS-SEED를 수학적으로 증명하기 위해, 우리는 ACCE-SEED라는 TLS-SEED를 위한 보안 모델을 도입하였다. 이 모델은 TLS를 위한 ACCE 모델을 TLS-SEED에 적합하도록 확장한 것이다. 이 모델을 바탕으로 우리는 TLS-SEED가 ACCE-SEED 안전하다는 것을 보였다. 마지막으로, 테스트 베드 기반 실험을 통해 우리는 TLS-SEED가 무시할만한 부하만 일으키기 때문에 실현 가능하다는 것을 증명하였다.
Internet traffics are getting encrypted with HTTPS, which makes middleboxes blind. To introduce middleboxes in the encrypted session, the TLS interception schemes (\aka \splittls) that abuse the public key infrastructure (PKI) are widely used in practice. Several papers, however, demonstrate that the SplitTLS practice is risky due to incorrect implementation or misconfiguration of middleboxes.

This dissertation aims to design secure and trustworthy methods to introduce middleboxes in the TLS session. To this end, we first classify middleboxes into two types called a middlebox-as-a-middlebox and a middlebox-as-an-middlebox. A middlebox-as-a-middlebox is an intermediary between a client and a server at communication time, while a middlebox-as-an-endpoint is an intermediary that takes on the role of a server during the session. An example of the former is an intrusion detection system and that or the latter is a web cache. Then we conduct literature reviews over 23 protocols (14 protocols for a middlebox-as-a-middlebox and 9 protocols for a middlebox-as-an-endpoint) that make middleboxes participate into TLS sessions.

From our reviews, we have learned the following lessons. For a protocol with a middlebox-as-a-middlebox, we should consider the least privilege of a middlebox to limit it not to perform functionality with excessive permission in design. Also, since a server is involved into the session, we can use a server to help a client to understand a middlebox. For a protocol with a middlebox-as-an-endpoint, we should consider a method not to add further round-trips to a server. In addition, the number of secrets should be minimal and the overhead for the key management should not be placed on a server.

In this disseration, we propose two protocols called maTLS and TLS-SEED, based on our learnings.

The maTLS protocol is a protocol for a middlebox-as-a-middlebox. Existing solutions, such as SplitTLS, which intercepts TLS sessions, often introduce significant security risks by installing a custom root certificate or sharing a private key. Many studies have confirmed security vulnerabilities when combining TLS with middleboxes, which include certificate validation failures, use of obsolete ciphersuites, and unwanted content modification. To address these issues, we introduce a middlebox-aware TLS protocol, dubbed maTLS, which allows middleboxes to participate in the TLS session in a visible and auditable fashion. Every participating middlebox now splits a session into two segments with their own security parameters in collaboration with the two endpoints. The maTLS protocol is designed to authenticate the middleboxes to verify the security parameters of segments, and to audit the middleboxes' write operations. Thus, security of the session is ensured. We prove the security model of maTLS by using Tamarin, a state-of-the-art security verification tool. We also carry out testbed-based experiments to show that maTLS achieves the above security goals with marginal overhead.

The TLS-SEED protocol is a protocol for a middlebox-as-an-endpoint, especially considering a scenario of edge computing. Edge computing is an emerging technology to bring computation and data storage closer to clients, to provide fast responses and to reduce the bandwidth usage in cloud servers. An edge computing platform is typically a third party to an application service provider and a client, both of which require high security assurance. Therefore, we propose TLS-SEED, a TLS extension that addresses risky private key sharing and inefficient remote attestation on the third party, while preserving performance in edge computing. TLS-SEED allows an application service provider (i) to deploy its edge application without sharing its private keys, (ii) to authorize/deauthorize its edge application by performing remote attestation, while presenting sufficient information for a client to verify the edge application without relying on an attestation service. A central data structure of TLS-SEED is a Cross Credential (CC) that shows a client the trust relation between an application service provider and a trusted device. The CC also gives the client the ability to verify the integrity of the edge application. To formally analyze TLS-SEED, we introduce ACCE-SEED, a formal model for TLS-SEED, by extending the ACCE model for TLS, and show TLS is ACCE-SEED secure. Furthermore, testbed-based experiments show that TLS-SEED can be substantiated with a negligible performance overhead.
Language
eng
URI
https://hdl.handle.net/10371/169340

http://dcollection.snu.ac.kr/common/orgView/000000161674
Files in This Item:
Appears in Collections:

Altmetrics

Item View & Download Count

  • mendeley

Items in S-Space are protected by copyright, with all rights reserved, unless otherwise indicated.

Share