You cannot see this page without javascript.

진주성 블로그 방문하기

기술문서 SSL, IPSEC

2017.11.01 07:35

구피천사 조회 수:99

전송구간 암호화 보안서버 SSL

SSL 구성

- Change Cipher Spec Protocol : 협의된 암호 알고리즘, 키교환 알고리즘, MAC 암호화, HASH 알고리즘이 
                                사용될 것을 클라이언트와 웹서버에게 공지한다
- Alert Protocol : 클라이언트와 웹 서버 중 누군가의 에러나 세션의 종료, 
                   비정상적인 동작이 발생할 시에 사용되는 프로토콜
- Record Protocol : 산출된 데이터를 SSL 에서 처리가 가능한 크기의 블록으로 나누고 압축한후에 선택적으로 
                    MAC(Message Authentication Code)을 덧 붙여 전송하고 반대로 수신한 데이터는 복호화 한다
                    분할, 압축, MAC 추가, 암호화

 

 

  • SSL Handshaking 과정
1. Client Hello : 클라이언트가 서버에 SSL 버전번호, 암호화 방법, 임의의수, 데이터 압축방법 등을 통신에 필요한 정보를 송신한다.
2. Server Hello : 서버가 클라이언트에 SSL 버전번호, 암호하 방법, 임의이수, 데이터 압축방법 등을 통신에 필요한 정보를 송신한다.
3. Client 인증서 : 서버가 클라이언트에 서버의 공개키 인증서를 전송한다.
4. Server Hello Done : 클라이언트는 서버 인증서를 인증한다, 실패하면 세션을 종료한다.
5. Client 인증서 전달 : 클라이언트가 handshake에서 얻은 정보로 premaster secret 를 생성한고 서버의 공개키로 암호화해서 서버에 전송한다.
6. Premaster Key 전송 : 서버가 클라이언트 인증을 요구하면 클라이언트는 서버의 공개키로 암호화 한 premaster secret과 자신의 공개키 인증서를 전송한다.
7. Change Cipher Spec : 서버가 클라이언트의 인증서를 인증한다. 실패하면 세션을 종료한다.
8. Change Cipher Spec  클라이언트와 서버 가각이 자신의 개인키로 premaster secret를 복호화 하고 master secret 를 생성한다.
   그다음 master secret 를 이용해 세션키를 만든다. 이 세션 키를 양쪽이 보유하고 대칭키로 클라이언트와
   서버 사이의 데이터 암호화 및 복호화 , 무결성 확인을 위해서 사용된다.
9. Finished : 클라이언트가 서버에 handshake 종료를 표시하는 암호화된 메시지를 전송한다.
10. Finished : 서버가 클라이언트에 handshake 종료를 표시하는 암호화된 메시지를 전송한다.

인증 > premaster secert > master secert > 세션키

 

OpenSSL 취약점

하트비트(Heartbeat) 확장 모듈에서 클라이언트 요청 메시지를 처리할때 데이터 길이를 검증하지 않아서 
시스템에 저장된 64KB 메모리 정보가 유출
취약 버젼 : openssl 1.0.1 ~ 1.0.1f, 1.0.2-beta, 1.0.2-beta1

진주성 블로그 방문하기
CLOSE