ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 공인인증서 동작원리
    카테고리 없음 2016. 7. 26. 21:56
    참고자료의 내용을 발췌하여 재구성하였습니다. 


    SSL

    + 미국 Netscape사에 의해 개발된 SSL 프로토콜은 클라이언트와 서버 사이에서 오가는 데이터의  인증 및 암호화 통신을 위해 사용되는 프로토콜


    SSL 수행 단계 분류

    * SSL Server Authentication
    - 사용자의 웹브라우저가 상대방의 웹서버를 인증하는 단계이다.
    - SSL을 지원하는 웹브라우저는 표준 공용키 암호화 기법을 사용하여 서버의 인증서와 공용 ID를 실제로 브라우저가 신뢰하는 인증기관 (Trusted CA)으로부터 발급받았는지 여부를 인증하는 기능을 내장하고 있다.

    * SSL Client Authentication
    - 웹서버가 자신에게 요청한 클라이언트를 인증하는 단계이다.
    - 서버 인증 시에 사용했던 동일한 기법으로 인증하는데 서버에 내장된 SSL 지원 소프트웨어나 서버 앞에 배치된 SSL 하드웨어는 클라이언트의 인증서와 공용 ID를 실제로 서버가 신뢰하는 인증기관 (Trusted CA)으로부터 발급 받았는지 여부를 인증하는 기능을 내장하고 있다.

    * Encrypt Connection
    - 서로에 대한 인증단계 이후 정상적으로 종결되면 클라이언트와 서버사이에 교환되는 모든 데이터는 사적인 내용을 보호하기 위한 암호화를 요구받는다.
    - SSL커넥션을 통해 암호화된 데이터 역시 전송 중 변경을 방지(Message Integrity)하기 위해 Hash 알고리즘 이라고 불리는 기술에 의해 보호된다.

    위의 3가지 단계를 기반으로 실제로 구현되는 순서는 다음과 같으며 다음 순서를 진행하기전 SSL 또한 TCP프로토콜에 기반을 두고 있으므로 반드시 TCP 3 Handshake는 이루어져 있어야만 한다.



    SSL  Handshaking



    1) ClientHello 메시지를 Server에 전송 :  SSL 버전번호, 암호화방식 등 
    2) Client가 전송한 메시지에 대한 응답 : Client 가 제안한 SSL 옵션들에 대해서 사용할 기능을 선택하여 Client에게 답변. 필요시 디지털 인증서의 요청 및 전달.
    3) ServerKeyExchange 메시지 전송 : 서버의 공개키를 포함하는 메시지 전송
    4) ServerHelloDone 메시지 전송 : 서버가 Client에게 일련의 작업이 정상종료 됨을 알려줌.
    5) Client의 Key정보 전송 : 클라이언트는 암호화에 사용되는 세션 키와 함께 클라이언트에서 지원하는 Cipher Suite를 서버로 전송하며, 서버가 인증서를 요청한 경우에는 클라이언트의 인증서도 함께 전송
    6) Client는 보안서비스 시작 메시지 전송 : Client와 서버간의 일련의 Key교환 및 교섭작업의 완료를 알림.
    7) 협상성공 및 보안검증의 완료메시지 전송 : Client 측
    8) 서버도 보안서비스 시작 메시지 전송 : Client와 서버간의 일련의 Key교환 및 교섭작업의 완료를 알림
    9) 협상 성공 및 보안검증의 완료 메시지 전송 : 서버측 



    SSL 의 암호화 방식

    + SSL에서는 대칭키 암호화 방식, 공개키 암호화, 디지털 인증 기술 모두 사용한다
    + 디지털 인증서 교환을 통해 상대방에 대한 인증을 확실히 하고, 이를 ㅌ오해 공개키 암호화의 단점을 보완
    + 공개키 암호화 기술을 이용해 세션키를 클라이언트와, 서버가 공유, 비용은 비싸지만 세션키를 보호하기 위해 높은 수준의 보안 기술을 사용하게 됨.
    + 공유된 세션키를 이용해 대칭키 암호화 방식으로 통신, 이 방식은 공개키 방식에 비해 낮은 수준의 보안을 제공하지만 데이터 처리 부하가 적어서 빠르게 통신이 가능
    + SSL에서 세션키를 통해 암호화하는 기법으로는 DES, 3DES, RC2, RC4등이 있고 40비트부터 168비트까지 사용됨.
    + 메시지 무결성 보장을 위해 사용되는 Hash알고리즘은 MD5, SHA1등이 사용됨.



    공인 인증

    + 어떤 문서를 모든 사람들이 신뢰할 수 있도록 공탁하듯이 공인인증서를 이용하여 ‘이 거래는 법적으로 유호하다’는 것을 인감도장을 찍음으로서 거래럴 신뢰할 수 있도록 하는 것.
    + 공인인증서는 국가가 인정한 공인기관(CA)으로 하여금 유효성을 관리하도록 하고있음


    공인 인증 과정





    +  RA는 은행, CA는 금융 결제 원에 해당됨 ( CA는 한국증권전산, 한국전사원, 한국정보인증, 한국전자인증, KTNET 등)

    1) 본인확인 : 공인인증서를 발급하기 위해서 반드시, 대면확인을 통해 본인임을 증명해야 함.
    2,3) 신청정보 전송 : 은행의 Teller등에 의하여, 본인확인 절차를 거친 후, 등록 요청기관/주민NO 등의 정보를 CA로 전송.
    4,5) 응답 : CA는 RA로부터의 요청을 접수한 후 임시번호의 역할을 하게 되는, 참조번호와 인가코드를 RA를 통하여, 신청자에게 전달.
    6) 인증서 신청 : 사용자는 일정기간 내에 전달받은 참조번호와 인가코드를 이용하여, CA로부터 일정한 유효기간(!년)을 갖는 인증서를 발급받음.
    7) 인증서 발급정보 배포 : CA는 신규 발급한 인증서의 발급정보를 각 금육기관 등에 배포함으로써, 인증서의 유효성을 검증



    암호화 알고리즘 

    1) 대칭키 암호화
    + 대칭키 암호 알고리즘은 비밀키 암호 알고리즘 혹은 단말키 암호 알고리즘이라고 불리기도 하는데 이 방식은 송/수신자가 동일한 키에 의해 암호화 및 복호화 과정을 수행한다.

    - 블록 암호 알고리즘 : 블록 암호 알고리즘은 고정된 크기의 입력 블록을 고정된 크기의 출력 블록으로 변경하는 알고리즘에 의해 암호화 및 복호화 과정을 수행한다. 대표적인 알고리즘으로 DEF, Triple DES, Skipjack, IDEA, FEAL, MISTY 등이 있다.
    - 스트림 암호 알고리즘 : 이진화된(binary) 평문과 키 이진 수열을 배타적 논리합 (eXclusive-OR) 이라는 비트 단위 이진 연산으로 결합하여 암호문을 생성하는 방식, 사용하는 스티림이 주기적인지 아닌지에 따라 두가지로 분류가 가능하다. 대표적으로 RC4, SEAL등이 있다.

    2) 비대칭키 암호화
     + 공개키 암호 알고리즘을 사용하는 시스템은 암/복호화에 사용되는 Key Set을 다르게 생성, 배포 및 관리함으로 높은 수준의 보안 유지가 가능하다. 공개키 암호 시스템은 두개의 Key Set을 생성하여 그 중 하나를 공개(PublicKey), 나머지 하나는 비밀키로 자신이 보관하여(PrivateKey) 사용하는 암호 시스템 방식이다. 대표적으로 RSA, Rabin, Merkie-Hellman Knapsack, Graham-Shamir, McEllece 암호화가 있다.











    Hybrid 방식 암호화

    + 대칭키와 비대칭키방식을 혼용하는 방식을 말한다. 
    + 전송하고자 하는 실제 Data는 대칭키 방식을 이용, 이때 사용하는 대칭키는 PKI방식의 비대칭키를 이용하여 암호화한 후 이를 전송하게 되는 방식
    + 실제 데이터를 대칭키방식으로 암호화함으로 속도 및 길이의 효율성을 높이고 PKI 방식을 이용해 키배포의 위험성을 없애고 보안을 강화한다.






    Hash 

    + 해쉬함수는 임의의 고정된 길이의 비트 문자열(해쉬코드)을 출력하는 함수이다.
    + 출력된 해쉬코드에 대한 원본 비트 문자열을 찾아내는 것이 불가능하다.
    + 주어진 입력에 대해 같은 해쉬코드를 생성하는 또 다른 입력값을 찾아내는 것이 불가능하다.

    + 이와 같은 성질을 이용해 비밀번호와 같이 복호화가 필요없는 자료의 단방향 암호화에 사용되고 있다.



Designed by Tistory.