ALTS
ALTSALTS(Application Layer Transport Security)는 Google 머신 내에서 Remote Procedure Call(RPC; 리모트프로시저 콜)을 보호하기 위해 Google이 개발한 인증 및 암호화 시스템입니다.구글은 [1]TLS의 맞춤형 수정으로 2007년에 개발을 시작했습니다.
배경
ALTS 백서는[1] 2017년 12월에 발행되었습니다.이에 따르면 개발은 2007년부터 시작됐다.당시 지배적인 애플리케이션 계층 프로토콜은 SSL과 TLS 1.1(2008년[2] TLS 1.2는 RFC로만 발행됨)이었습니다.이것들은 많은 레거시 알고리즘을 지원하며 보안 규격이 좋지 않았습니다.RPC의 안전한 전송이 필요한 기계를 구글이 완전히 통제하고 있었기 때문에 시스템 도입은 비교적 쉬웠고, 구글 개발자들은 처음부터 그들만의 시스템을 설계할 수 있었다.
새로운 시스템이 필요하다고 생각되는 또 다른 요건은 다른 신뢰 모델입니다.TLS에서는 서버측이 독자적인 도메인명(및 대응하는 명명 방식)에 커밋됩니다.한편, 구글은 마이크로 서비스의 레플리케이션, 로드밸런싱, 재스케줄링을 심플화하기 위해, 복수의 명명 방식에서 같은 ID(RPC)를 사용할 필요가 있었습니다.een 호스트.
세부 사항
핸드쉐이크 프로토콜
ALTS 핸드쉐이크 프로토콜은 인증된 Diffie-Hellman 키 교환 방식을 기반으로 완벽한 전송 비밀(현재 키에 대한 접근은 미래의 보안을 해치지 않음)과 세션 재개(당사자 간의 첫 번째 세션 후 프로토콜에서 주목할 만한 속도 향상)를 모두 누립니다.
TLS와 달리 ALTS에서는 서버와 클라이언트 양쪽 모두 각각의 ID를 증명하는 증명서를 가지고 있습니다.증명서는 신뢰할 수 있는 서명 서비스 검증 키에 연결되어 리프에는 최종적으로 키 교환에 사용되는 Elliptic curve Diffie-Hellman 키가 있습니다.키 교환에 사용되는 타원 곡선은 Curve25519입니다.[3]
핸드쉐이크 프로토콜은 일반 텍스트로 전송되는 4개의 메시지로 구성됩니다.
- ClientInit은 클라이언트에 의해 시작되며 클라이언트의 증명서, 사용 가능한 암호 스위트 목록 및 세션 재개 시도를 포함합니다.
- ServerInit은 응답으로 서버에 의해 송신되며 자체 증명서, 선택된 암호 스위트 및 옵션으로 암호화된 재개 티켓을 포함합니다.
- Server Finished 는 서버에 의해 송신되며(ALTS 디폴트 실장에서는 이전 메시지에 연결), 계산된 세션키를 사용하는 기존의 비트스트링상의 핸드쉐이크 오센티케이터를 포함한다.
- Client Finished, 클라이언트에서 전송되며 Server Finished의 핸드쉐이크 오센티케이터와 마찬가지로 핸드쉐이크 오센티케이터가 포함됩니다.
양쪽 당사자가 세션키(백서의 기록 프로토콜)를 계산하면 대부분 GCM을 동작 모드로 사용하여 대칭 암호화 알고리즘128비트 AES를 사용하여 트래픽 암호화를 시작할 수 있습니다.구식 기계에서는 Google이 개발한[4] VCM이 [5]사용되었습니다.
핸드쉐이크 프로토콜은 ProVerif 공식 검증 [6]도구를 사용하여 검증되었습니다.
세션 재개
계산 비용이 많이 드는 조작이 반복되지 않도록 ALTS는 세션 재개를 지원합니다.재개 티켓은 서버 또는 클라이언트에 의해 작성되며, 양쪽 당사자가 재개 식별자에 의해 색인화된 동일한 재개 티켓을 보유하고 있는 경우 핸드쉐이크 프로토콜에서 사용할 수 있습니다.resumption secret은 다음 세션키, 오센티케이터 및 캡슐화된(독립된) 재개 티켓/식별자를 도출하기 위해 사용됩니다.
완전 전송 비밀
ALTS 에서는, Perfect Forward Secrecy(PFS; 완전 전송 비밀)는 디폴트로이네이블로 되어 있지 않습니다만, 서포트되고 있습니다.ALTS는 고유의 PFS 알고리즘을 사용하는 대신 수명이 짧은 증명서를 자주 회전시킴으로써 PFS를 실현합니다(6, 20, 또는 48 시간).게다가 PFS 가 네이블의 경우, 의사 난수 기능을 사용해 재개 티켓으로부터 암호 키를 취득하는 것에 의해서, 세션의 재개도 네이블이 됩니다.
「 」를 참조해 주세요.
레퍼런스
- ^ a b "Application Layer Transport Security". Google Cloud. Retrieved 18 November 2019.
- ^ Rescorla, Eric; Dierks, Tim (August 2008). "The Transport Layer Security (TLS) Protocol Version 1.2". tools.ietf.org. Retrieved 18 November 2019.
- ^ "Service-to-service authentication, integrity, and encryption § ALTS Protocol". Google Cloud. Retrieved 18 November 2019.
- ^ Knapp, Ed (2017). "AES-VCM, an AES-GCM Construction Using an Integer-based Universal Hash Function". ai.google. Retrieved 18 November 2019.
- ^ a b "Encryption in Transit in Google Cloud". Google Cloud. Retrieved 18 November 2019.
- ^ "ProVerif: Cryptographic protocol verifier in the formal model". prosecco.gforge.inria.fr. Retrieved 18 November 2019.