응용프로그램 방식의 보안 서버 » 이력 » 버전 1
이태훈, 2024/03/27 04:07
| 1 | 1 | 이태훈 | h1. 응용프로그램 방식의 보안 서버 |
|---|---|---|---|
| 2 | |||
| 3 | * 웹 브라우저와 웹 서버에 별도의 모듈을 추가하여 데이터를 암호화하는 기능을 제공합니다. |
||
| 4 | * 응용프로그램 방식은 웹 브라우저와 웹 서버가 기본저긍로 제공해 주지 않는 추가적인 기능으로 동작하기 때문에 이러한 확장기능을 통하여 기능을 제공합니다. |
||
| 5 | |||
| 6 | h2. 1) 응용프로그램 방식 보안서버 개요 |
||
| 7 | |||
| 8 | * 제공되는 솔루션마다 설치 방법과 사용방법이 다릅니다. |
||
| 9 | * SSL 방식과 같이 클라이언트와 서버간의 데이터를 암호화하는 기능을 제공합니다. |
||
| 10 | |||
| 11 | h2. 2) 보안서버 모듈 종류 |
||
| 12 | |||
| 13 | |_.|_.클라이언트 모듈|_.서버 모듈| |
||
| 14 | |_.제작방식|<.웹 브라우저 확장기능을 이용하여 제작|<.웹 서버의 확장 기능을 이용하여 제작| |
||
| 15 | |||
| 16 | ------------------------------------------------------------------------------------------ |
||
| 17 | |||
| 18 | h3. 1. 대칭키 |
||
| 19 | |||
| 20 | * 대칭키는 동일한 키로 암호화와 복호화를 같이 할 수 있는 방식의 암호화 기법을 의미합니다. |
||
| 21 | |||
| 22 | h3. 2. 공개키 |
||
| 23 | |||
| 24 | * 공개키 방식은 비공개키(Private key)와 공개키(public key)라는 두개의 키를 갖게 됩니다. |
||
| 25 | * 비공개키는 자신만 가지고 잇고, 공개키는 타인에게 제공합니다. |
||
| 26 | * 공개키를 제공받은 타인은 공개키를 이용해서 암호화를 합니다. 암호화한 정보를 비공개키를 가지고있는 사람에게 전송합니다. 비공개키의 소유자는 암호화된 정보를 복호화합니다.(이 과정에서 공개키가 유출되어도 비공개키를 모르면 복호화를 할 수 없기 때문에 안전합니다.) |
||
| 27 | |||
| 28 | h2. 3) SSL 인증서 |
||
| 29 | |||
| 30 | * 클라이언트와 서버간의 통신을 제 3자가 보증해주는 전자화 된 문서입니다. |
||
| 31 | |||
| 32 | h3. 1. SSL 인증서의 역할 |
||
| 33 | |||
| 34 | # 클라이언트가 접속한 서버가 신뢰할 수 있는 서버임을 보장 |
||
| 35 | # SSL 통신에 사용할 공개키를 클라이언트에게 제공 |
||
| 36 | |||
| 37 | h3. 2. CA(Certificate authority) |
||
| 38 | |||
| 39 | * 인증서의 역할은 클라이언트가 접속한 서버가 클라이언트가 의도한 서버가 맞는지를 보장하는 역할을 합니다. 이 역할을 하는 민간기업들이 있는데 이런 기업들을 CA혹은 Root Certificate 라고 부릅니다. |
||
| 40 | |||
| 41 | h3. 3. SSL 인증서의 내용 |
||
| 42 | |||
| 43 | # 서비스의 정보(인증서를 발급한 CA, 서비스의 도메인 등) |
||
| 44 | * 클라이언트가 접속한 서버가 클라이언트가 의도한 서버가 맞는지에 대한 내용 |
||
| 45 | # 서버 측 공개키(공개키의 내용, 공개키의 암호화 방법) |
||
| 46 | * 서버와 통신할 때 사용할 공개키와 그 공개키의 암호화 방법들의 정보 |
||
| 47 | |||
| 48 | h3. 4. SLL 인증서가 서비스를 보증하는 방법 |
||
| 49 | |||
| 50 | * 웹 브라우저가 서버에 접속할 때 서버는 제일 먼저 인증서를 제공 |
||
| 51 | * 브라우저는 이 인증서를 발급한 CA가 자신이 내장한 CA의 리스트에 있는지 확인 |
||
| 52 | * 내장되어 있다면 해당 CA의 공개키를 이용해서 인증서를 복호화 |
||
| 53 | |||
| 54 | h2. 4) SSL의 동작 방법 |
||
| 55 | |||
| 56 | * 순서 : 악수(Handshake) → 세션 → 세션 종료 |
||
| 57 | |||
| 58 | h3. 1. 악수(Handshake) |
||
| 59 | |||
| 60 | # 클라이언트가 서버에 접속합니다.(이 단계에서 주고 받는 정보는 아래와 같습니다.) |
||
| 61 | |||
| 62 | * 클라이언트 측에서 생성한 랜덤 데이터 |
||
| 63 | * 클라이언트가 지원하는 암호화 방식들 |
||
| 64 | * 세션아이디 |
||
| 65 | # 서버는 클라이언트의 요청에 따라 응답을 합니다.(이 단계에서 주고 받는 정보는 아래와 같습니다.) |
||
| 66 | |||
| 67 | * 서버 측에서 생성한 랜덤 데이터 |
||
| 68 | * 서버가 선택한 클라이언트의 암호화 방식 |
||
| 69 | * 인증서 |
||
| 70 | # 클라이언트는 서버의 인증서가 CA에 의해서 발급된것인지 확인하기 위해서 클라이언트에 내장된 CA리스트를 확인합니다. |
||
| 71 | |||
| 72 | * CA 리스트에 인증서가 없다면 사용자에게 경과 메시지를 출력하게 됩니다. |
||
| 73 | * CA에 의해서 발급된 것인지를 확인하기 위해서 클라이언트에 내장된 CA의 공개키를 이용해서 인증서를 복호화 합니다. 복호화에 성공했다면 인증서는 CA의 개인키로 암호화된 문서임이 암시적으로 보증된것입니다. |
||
| 74 | # 서버는 클라이언트가 전송한 pre master secret 값을 자신의 비공개키로 복호화합니다. |
||
| 75 | # 클라이언트와 서버는 handshake 단계의 종료를 서로에게 알립니다. |
||
| 76 | |||
| 77 | h3. 2. 세션 |
||
| 78 | |||
| 79 | * 실제로 서버와 클라이언트가 데이터를 주고받는 단계입니다. |
||
| 80 | * 이 단계에서 핵심은 정보를 상대방에게 전송하기 전에 session key 값을 이용해서 대칭키 방식으로 암호화 한다는 점입니다. |
||
| 81 | |||
| 82 | h3. 3. 세션 종료 |
||
| 83 | * 데이터의 전송이 끝나면 SSL 통신이 끝났음을 서로에게 알려줍니다. 이 때 통신에서 사용한 대칭키인 세션키를 폐기합니다. |