정보보호 - 6(Security Protocol - TLS)
Security Protocol(Transport Layer Security)
- 기존의 SSL을 표준화한것이 TLS(현재 사용중)
- IETF에 RFC 2246으로 표준화된 문서가 있음
Transport Layer Security(TLS)
- TLS architecture
- TCP, ip위에서 동작
TLS Handshake Protocol
- A가 서버 B로 접속을 원할때
- TCP단계까지의 연결은 끝났다고 가정하고 그 이후의 단계
- A가 본인이 지원할 수 있는(구현이 되어있는) 암호화 알고리즘 세트와 본인만아는 랜덤넘버 Ra를 보냄
- 암호화 알고리즘 세트(ciphers)는 공개키, 대칭키, 해쉬함수 알고리즘을 말함
- B는 본인의 공개키를 인증기관의 서명을 받아 A에게 랜덤넘버 Rb, 선택한 ciphers와 함께 보냄
- A는 2명만 알아야하는 S(밑에서 키들을 생성하는데 사용)를 B의 공개키를 사용하여 B에게 보냄
- A,B는 K = f(S,Ra,Rb)로 매우 큰 K를 생성하고 K를 이용해 키 6개(K1 ~ K6)를 만듬(양쪽이 같아야 함)
- 키 6개중 1,2번은 대칭키로 사용 대칭키가 2개인 이유는 방향에 따라 다르게 사용하여 보안 강화
- 3,4번은 각각의 대칭키에 대한 이니셜라이즈 벡터
- 5,6번은 각각의 대칭키에 해쉬함수를 만들때 이어붙이기 위한 키값(hmac)
- 위의 전체 과정은 B의 개인키 공개키만 사용하기 때문에 A에 대한 부인봉쇄를 만족하지 못함 Ka-까지 사용하면 부인봉쇄를 만족할 수 있지만 기본적인 TLS에서는 사용하지 않는다.
- B가 랜덤한 넘버 R을 A에게 보내고 A가 인증을 위해 Ka-(R)을 B에게 보내고 B는 기존에 저장했던 서버에서 Ra+로 R을 도출해 동일하면 인증 성공임
- B가 보낸 R에 A가 서명하면 인증이고 m을 서명해서 B에게 보내면 부인봉쇄
- 효율(압축측면)
- 압축을 한 후 암호화를 해야함
- 암호화를 먼저하면 비트가 랜덤하게 바뀌기 때문에 압축 알고리즘 수행 어려움
- 일반적으로 Ka-를 대칭키 K를 통해 암호화해서 저장 하기 떄문에 해커가 순수한 Ka-를 해킹하는것은 어려움
- Ka-로 서명된 내용은 B가 Kc-(Ka+)를 A에게 받아 Kc+를 공인기관에서 받아 풀어야 함
- A가 Ka-의 해킹을 의심해 인증기관에게 요청하면 인증기관은 Ka+를 무효화시킴(CRL)
- 해커가 Ka-를 사용한다해도 B는 Ka+를 사용하면 안된다는 정보를 CRL에게 받았기 때문에 보안이 유지될 수 있음
- 개인키, 공개키의 저장위치
- 개인키 : keystore
- 공개키 : truststore(다른 사용자의 공개키를 저장)