Encryption, Authentication, and Integrity


TLS 프로토콜은 모든 응용프로그램의 위에 동작하는 암호화, 인증, 데이터 무결성이라는 세가지 필수 서비스를 제공하기 위해 설계되었다. 기술적으로 모든 상황에서 세가지 모두를 사용할 필요는 없다. 인증의 유효성 확인 없이 인증서를 확인할 수는 있지만 보안의 위험성과 인증이 없을때 초래되는 결과에 대해 반드시 잘 알아야 한다. 실제로 보안 웹 응용 프로그램은 세가지 서비스 모두다 필요하다.

Encryption

통신간에 무엇이 보내지는지 알수 없게 하는 과정

Authentication

제공된 신원확인이 유효한지 확인하는 과정

Integrity

메시지가 위조되거나 변조되었는지지 확인하는 과정

암호화 보안 데이터 채널을 수립하기 위해 상호간의 통신연결은 데이터를 암호화하는데 사용될 키들과 ciphersuites에 동의해야 한다. 암호화 스위트(ciphersuite)는 공개키, 대칭키, 해시 알고리즘의 집합이다. TLS 프로토콜은 이 교환을 수행하는 handshake 과정을 잘 명시해놓았다. 관련 사항은 TLS Handshake 부분에서 살펴보도록 하겠다. 실제로 효과적인 Handshake의 기발한 부분은 공개키 암호화( 비대칭키) 를 사용한다는 점이다. 공개키 암호화는 상호간에 사전 정보로 연결할 필요가 없는 공유된 비밀키를 선택하고 암호화되지 않은 채널로 전달한다.

TLS handshake 의 과정으로 프로토콜은 상호간의 인증확인 절차를 하도록 한다. 브라우저를 사용하는 경우 인증 과정은 client가 server를 인증하는 곳이 어디인지 이름이나 ip주소를 위장하여 목적지인 척하는것은 아닌지를 확인할 수 있도록 한다. 이 검증은 인증서 체인에 기반한다. 추가적으로 서버는 선택에 따라 client의 신원을 검증할 수 있다. 예를 들어 회사 프록시 서버는 모든 직원들에게 권한을 부여할 수 있고 각각의 직원들은 회사로부터 검증된 자신만의 인증서를 갖을 수 있다.

마지막으로 암호화와 인증 과정에서 TLS 프로토콜은 메시지 프레이밍 절차를 제공하고 메시지 인증 코드 (MAC) 로 각각의 메시지를 암호화 한다. MAC 알고리즘은 상호간에 통신으로 동의된 키를 사용하는 단방향 암호화 해시 함수이다. TLS record가 보내질 때마다 MAC값이 만들어지고 메시지에 포함이 된다. 수신자는 보내진 MAC값을 통하여 메시지 무결성과 인증을 확인을 위해 계산하여 검증할 수 있다.

결합된 세가지 과정은 웹을 통한 보안 통신의 기본토대를 제공한다. 다양한 ciphersuites를 지원하는 현대 웹 브라우저들은 client와 server 둘다 인증할 수 있고 모든 TLS record마다 투명하게 메시지 무결성 체크를 수행할 수 있다.

results matching ""

    No results matching ""