암호화 세트를 찾아봤어요.

학전 인상


암호화된 알고리즘인 거 알아요.
왜 그렇게 많을까?

조사


암호화 키트


영어에서 Cipher Suites는 TLS 암호 통신에 사용되는 프로토콜의 여러 암호화 알고리즘의 조합을 가리킨다.
또 여러 군데 암호화를 사용하고 곳마다 다른 암호화 알고리즘을 사용한다.
암호화 알고리즘은 여러 가지가 있는데 두 가지로 나뉜다.
알고리즘은 각자의 특징과 암호화 강도가 있어 클라이언트와 서버 간에 서로 제시하고 어떤 조합을 사용할지 결정한다.

암호화 키트에는 네 가지 요소가 포함되어 있습니다.

  • Kx: 키 교환용 암호화 알고리즘
  • Au: 인증용 암호화 알고리즘
  • Enc: 응용층 암호화에 사용되는 알고리즘
  • Mac: 메시지 검증을 위한 알고리즘
  • 서버에서 실제 사용 가능한 목록 보기

    openssl ciphers -v 명령을 사용하여 확인
    [root@localhost ~]# openssl ciphers -v
    ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
    ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AESGCM(256) Mac=AEAD
    ECDHE-RSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA384
    ECDHE-ECDSA-AES256-SHA384 TLSv1.2 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA384
    ECDHE-RSA-AES256-SHA    SSLv3 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA1
    ECDHE-ECDSA-AES256-SHA  SSLv3 Kx=ECDH     Au=ECDSA Enc=AES(256)  Mac=SHA1
    DH-DSS-AES256-GCM-SHA384 TLSv1.2 Kx=DH/DSS   Au=DH   Enc=AESGCM(256) Mac=AEAD
    DHE-DSS-AES256-GCM-SHA384 TLSv1.2 Kx=DH       Au=DSS  Enc=AESGCM(256) Mac=AEAD
    DH-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH/RSA   Au=DH   Enc=AESGCM(256) Mac=AEAD
    DHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=DH       Au=RSA  Enc=AESGCM(256) Mac=AEAD
    DHE-RSA-AES256-SHA256   TLSv1.2 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA256
    DHE-DSS-AES256-SHA256   TLSv1.2 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA256
    DH-RSA-AES256-SHA256    TLSv1.2 Kx=DH/RSA   Au=DH   Enc=AES(256)  Mac=SHA256
    DH-DSS-AES256-SHA256    TLSv1.2 Kx=DH/DSS   Au=DH   Enc=AES(256)  Mac=SHA256
    DHE-RSA-AES256-SHA      SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1
    DHE-DSS-AES256-SHA      SSLv3 Kx=DH       Au=DSS  Enc=AES(256)  Mac=SHA1
    DH-RSA-AES256-SHA       SSLv3 Kx=DH/RSA   Au=DH   Enc=AES(256)  Mac=SHA1
    DH-DSS-AES256-SHA       SSLv3 Kx=DH/DSS   Au=DH   Enc=AES(256)  Mac=SHA1
    DHE-RSA-CAMELLIA256-SHA SSLv3 Kx=DH       Au=RSA  Enc=Camellia(256) Mac=SHA1
    .....
    
    많이 썼어요. 이해하기 힘들어요.
    맨 위의 설명만 발췌하다
    1                           2       3           4       5               6
    ECDHE-RSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH     Au=RSA  Enc=AESGCM(256) Mac=AEAD
    
  • 1.암호화 키트 이름
  • ECDHE-RSA-AES256-GCM-SHA384의 곳
    ECDHE: 키 교환 방식을 나타냅니다(Kx) ※ 3곳
    RSA: 키 인증 방식을 나타냅니다(Au) ※ 4곳
    AES256: 메시지 암호화(Enc) ※ 5곳
    GCM: 블록 처리 표시 ※ 5곳
    SHA384: 메시지 서명 방식(Mac) ※ 5, 6을 표시하는 곳
  • 2.프로토콜 버전
  • TLSv1.2의 곳
    이 암호화 세트가 어떤 프로토콜에서 사용되는지 적혀 있습니다.
  • 3.키 교환용 암호화 알고리즘
  • Kx=ECDH의 곳
    Kx는 키 교환Key Exchange의 약자입니다.
    키 교환에 사용되는 암호화 알고리즘은 EDDHEnc(응용층 암호화에 사용되는 알고리즘), Mac(메시지 검증에 사용되는 알고리즘)에서 사용되는 공유 공공 키의 원시 데이터 기능
  • 4.검증용 암호화 알고리즘
  • Au=RSA의 곳
    Au는 인증Authentication의 약자입니다.
    키 인증에 사용되는 암호화 알고리즘은 RSA키 교환(Kx)과 협업하여 서버 측이 사칭이 아님을 확인합니다
    인증서에 포함된 공개 키에 대응하는 개인 키를 사용하여 서버 인증서의 합법적인 소유자임을 증명합니다
    전자 서명의 경우 서명을 할 수 있는 것은 비밀 키의 소유자뿐이기 때문에 서명을 발송함으로써 비밀 키 자체를 제시하지 않고 비밀 키의 모든 것을 증명한다
  • 5.암호화 응용 층에 사용되는 알고리즘
  • Enc=AESGCM(256)의 곳
    Enc는 암호화Encryption의 약자입니다.
    응용 층에서 암호화하는 데 사용되는 암호화 알고리즘은 AESGCM(256)통신 데이터 암호화 기능
  • 6.[Mac] 메시지 검증을 위한 알고리즘
  • Mac=AEAD의 곳
    Mac은 메시지 인증 코드Message Authentication Code의 약자입니다.
    통신 데이터에 변조 기능이 있는지 검사하다
    확인용 데이터(메시지 인증 코드)를 부여하고 발송하며 수신 측에서 일치성을 확인했는지 확인합니다

    브라우저에서 어디를 봐야 하는지.


    F12를 누르면 Security 탭에서 확인할 수 있습니다.

    학습 후의 인상


    장소에 따라 암호화 알고리즘이 달라요.
    워낙 암호화 알고리즘이 많아서 조합도 많아요.
    암호화 세트가 많습니까!
    재밌다.

    참고 자료

  • SSL/TLS 기반
  • [도해] TLS 암호화 키트의 견해와 보안 설정/빈틈 확인 방법
  • 암호 세트의 암호 강도 및 공개 키 비트 설정
  • 즐거운 암호 세트 이야기
  • 이해하려는 SSL/TLS라도 더 이해하면 재미있다
  • 보안 HTTPS 통신 제공 방법
  • 좋은 웹페이지 즐겨찾기