Geeks_Key_Exchanger
일단 이 솔루션을 설명하기에 앞서 용어 몇가지를 설명 드리겠습니다.
공개키 : RSA 기반에서 사용되는 키로써 상대방에게 공개를 하는 키이며 개인키와 한쌍을 이룬다.
개인키 : RSA 기반에서 사용되는 키로써 자신만이 갖고 있는 개인키이며, 공개키와 한쌍을 이룬다.
비밀키 : 대칭키 기반 시스템에서 사용되는 키로써 암호 문을 만들때 사용되는 키 이다.
평문 : 암호화 되기 이전의 텍스트.
암호문 : 특정 키를 이용하여 평문을 암호화 시킨문.
이외에 공개키 기반의 정보는 제 관련자료에서 찾아 보실 수 있습니다.
안녕하세요 Geeeks_Company 입니다.
오늘 소개 시켜 드릴 솔루션은 공개키 기반의 구조에서 비밀키를 안전하게 교환 하는 Geeks_Key_Exchanger 입니다.
이 솔루션에서 사용 하는 핵심 암호화/복호화는 대칭/비대칭 방식을 사용 하며,
솔루션에 사용된 핵심 모듈의 자세한 사항은 http://free1234.tistory.com/entry/GeeksCryptograph 을 참고 하시면 됩니다.
Geeks_Key_Exchanger 는 수학적 이론을 바탕으로 제작된 RSA의 공개 키 교환 시스템을 사용합니다.
Geeks_Key_Exchanger 는 비밀키 시스템에서 가장 큰 문제인 키 교환 취약점을 해결 하는데 제작 목적이 있습니다.
사용 용도 및 목적
스트리밍 서비스시 컨텐츠의 자체 암호화 루틴을 적용 시켜야 되는 시스템.
클라이언트 / 서버 의 관계에서 클라이언트의 민감한 정보를 선택적으로 암호화 시켜서 서버로 전송 할때
매번 정보 전송시 서로 다른 키(1회용)를 사용하여 암호화 시켜야 할때.
클라이언트의 전송 정보의 변경 유무체크를 할 수 있습니다
간략한 시퀀스를 적어드리겠습니다.
Server : 1. 클라이언트의 접속을 기다립니다.
Client : 2. 서버에 접속을 합니다.
Server : 3. 접속한 클라이언트에 새로 생성된 공개키를 전송 합니다.
Client : 4. 서버에서 제공한 공개키를 저장하고 비밀키를 생성합니다.
Client : 5. 생성된 비밀키를 공개키를 이용하여 암호화를 시킵니다.
Client : 6. 암호화된 비밀키를 서버로 전송을 합니다.
Server : 7. 암호화된 비밀키를 서버에 저장된 개인키를 사용하여 복호화를 합니다.
Server, Client : 8. 비밀키 교환이 끝납니다.
키교환이 이뤄진후 클라이언트에서는 공유된 비밀키(Secret Key)를 사용하여 암호화된 정보를 서버로 전송 합니다.
서버는 키교환이 이뤄진후 클라이언트에 공유된 비밀키를 사용하여 암호화된 정보를 전송합니다.
- KeyExchanger는 키 교환 시스템 서버 입니다.
- KeyExchangeClient는 키 교환 시스템을 활용 하는 클라이언트 입니다.
1. 서버를 클릭 하는 순간, 서버는 클라이언트의 접속을 대기 하며 기다립니다.
2. 클라이언트가 접속합니다.
3. 접속된 클라이언트에게 서버에서 생성된 공개키(PublicKey)를 제공 해줍니다.
4. 서버에서 제공받은 PublicKey를 저장 한후 클라이언트는 비밀키 1627379692 를 자동으로 생성 시킵니다.
5. 생성된 비밀키를 공개키로 암호화를 시킵니다.
6. 암호문을 서버로 전송을 시킵니다.
7. 클라이언트에서 받은 암호문을 서버에서 복호화를 시킵니다.
8. 복호화된 비밀키 1627379692 를 서버와 클라이언트 2군데서 공유를 합니다. 이로써 키교환은 종료가됩니다.
'Geeks_Company 자료' 카테고리의 다른 글
Geeks_Compression (0) | 2010.05.03 |
---|---|
Geeks_BlowFish (0) | 2010.04.25 |
Geeks_Cryptography (0) | 2010.04.13 |
Geeks SMTP 모듈 (0) | 2010.04.08 |
Geeks_Barcode_Generator (0) | 2010.04.08 |