책 보다보니 갑자기 궁금해서 질문남깁니다.
1. 대칭키 생성 알고리즘으로 나온건 디퍼헬먼 밖에 없는데, 우리가 https 통신할때 브라우저가 디퍼헬먼 이용해서 대칭키를 만든다음에특정싸이트의 공개키와 암호화 알고리즘(AES, DES 등)을 이용해서 보내는건가요? 키 교환되는 과정이 이해되는데, 키가 어디서 만들어지는 궁금합니다. 브라우저가 만드는건지 아니면 컴터에 내장된 특정 프로그램이 만드는건지..
2. 디퍼헬먼 같은 경우 공개키 알고리즘을 쓰지만 그안에서 대칭키도 만들어져서 상관없는데, 만약 RSA 방식을 쓴다면 대칭키는 누가 만들는건가요? 따로 프로그램이 존재하는건지...마지막으로 헷갈리는건 AES DES 같은 암호화 알고리즘은 키 생성과는 아무런 관련이 없는거죠?? 생성된 키로 암호화하는 방식일뿐.. 제가 제대로 이해한건지 모르겠네요. 꽤 많이 찾아봤는데, 찾아볼수록 약간씩 헷갈려서요.
조언 좀 부탁드립니다.
RSA³ª ECDHE°°Àº ºñ´ëĪŰ ¾Ë°í¸®Áò(´ëĪ۸¦ ¼·Î ±³È¯Çϱâ À§ÇÑ ¾Ë°í¸®Áò)Àº CPU ÀÚ¿ø ¼Ò¸ð°¡ ´ëĪŰ ¾Ë°í¸®Áòº¸´Ù ¸¹±â ¶§¹®¿¡,
¼¹ö-Ŭ¶óÀ̾ðÆ® °£ µ¥ÀÌÅÍ(HTML µî)Àº ´ëĪŰ(AES)·Î ¾ÏÈ£ÈÇÕ´Ï´Ù. (AES °°Àº °æ¿ì´Â CPU °¡¼Óµµ µÇ°í¿ä.)
±×·¯³ª ´ëĪŰ´Â Çѹø ³ëÃâµÇ¸é Á¦3ÀÚ(ÇØÄ¿)°¡ µµÃ»ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ¸Å¹ø »õ·Î ¸¸µé¾î »ç¿ëÇÕ´Ï´Ù.
´ëĪŰ(µ¥ÀÌÅÍ Àü¼Û¿¡ »ç¿ëÇÒ master secret)¸¦ ¸¸µå´Â ¹æ¹ýÀº Client Nonce, Server Nonce, PMSÀÇ Á¶ÇÕÀ¸·Î ¸¸µå´Âµ¥, (¼Â ´Ù ·£´ýÀÔ´Ï´Ù.)
Client Nonce¿Í PMS(Pre-Master Secret)´Â Ŭ¶óÀ̾ðÆ® ºê¶ó¿ìÀú¿¡¼ ¸¸µé°í, Server Nonce´Â À¥¼¹ö¿¡¼ ¸¸µì´Ï´Ù.
Client Nonce´Â Client Hello¿¡¼, Server Nonce´Â Server Hello °úÁ¤¿¡¼ ¼·Î¿¡°Ô Æò¹®À¸·Î Àü´ÞµË´Ï´Ù.
Ŭ¶óÀ̾ðÆ®´Â Server Hello¶§ ¼¹ö¿¡¼ º¸³½ TLS ÀÎÁõ¼¸¦ ¹Þ´Âµ¥, ÀÌ ÀÎÁõ¼·Î Pre-Master Secret¸¦ ¾ÏÈ£È(ºñ´ëĪŰ)Çؼ ¼¹ö·Î ³Ñ±é´Ï´Ù.
Nonce´Â ÀçÀü¼Û °ø°ÝÀ» ¸·´Â ¿ëµµÀÌ°í, ½ÇÁúÀûÀÎ ´ëĪŰ ¾Ë°í¸®ÁòÀÇ Å°°¡ µÇ´Â °ÍÀº PMS¶ó°í º¸¸é µË´Ï´Ù.
Á¦°¡ º¸´Â Ã¥ ÀϺκÐÀ» ĸÃÄÇß½À´Ï´Ù.
https://d.pr/i/2P5xsH
µðÇÇ-Çï¸ÕÀº Å° ±³È¯ ¾Ë°í¸®ÁòÀε¥, HTTPS(TLS) ȯ°æ¿¡¼´Â ´ëĪŰ¿¡ DH ÆĶó¹ÌÅÍ°¡ µé¾î°¡±â ¶§¹®¿¡ Ã¥¿¡¼´Â ±×·¸°Ô Ç¥ÇöÇÑ°Í °°½À´Ï´Ù.
PMS´Â µðÇÇ-Çï¸ÕÀ¸·Î ¸¸µéÁö¸¸, ¼¼¼ÇÅ°´Â Nonce¿Í PMS·Î ¸¸µì´Ï´Ù.
TLS ÇÑÁ¤À̶ó¸é Å°»ý¼º¿¡ °ü¿©ÇÑ´Ù°í º¼ ¼ö´Â Àְڳ׿ä.
Å°±³È¯À» ECDHE(µðÇÇ-Çï¸ÕÀÇ º¯Çü, Ÿ¿ø°î¼± µðÇÇ-Çï¸Õ)À¸·Î ÇÑ´Ù¸é,
PMS´Â Ŭ¶óÀ̾ðÆ® DH ÆĶó¹ÌÅÍ¿Í ¼¹ö DH ÆĶó¹ÌÅÍ·Î »ý¼ºÇÕ´Ï´Ù.
(RSA´Â PMS¸¦ Ŭ¶óÀ̾ðÆ®¿¡¼ ÀϹæÀûÀ¸·Î »ý¼º)
=> ¸Â½À´Ï´Ù. ·¹¸ó Æ®¸®´Ô ´ä±Û¿¡ ÇØ´ç ³»¿ëµµ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. Á» ´õ Ç®¾î¼ °£´ÜÇÏ°Ô ¼³¸íÇÏÀÚ¸é..
DH°¡ ¾Æ´Ñ RSAÀÇ °æ¿ì¿¡´Â ¾Æ·¡¿Í °°Àº °úÁ¤À» °ÅĨ´Ï´Ù. (´Ü¼øÇÏ°Ô Ç¥ÇöÇѰŶó ¾Ë°í¸®Áò ±³È¯µîÀº »ý·«ÇÕ´Ï´Ù)
1. ¼¹ö°¡ ÀÚ½ÅÀÇ ÀÎÁõ¼¸¦ Ŭ¶ó¿¡°Ô Àü¼ÛÇÕ´Ï´Ù.
- ÀÎÁõ¼¿¡´Â °ø°³Å°¿Í, °ø°³Å°¿Í ±âŸ Á¤º¸¸¦ CA°¡ µðÁöÅÐ ¼¸íÇÑ ¼¸í(Signature)ÀÌ ÀÖ½À´Ï´Ù.
2. Ŭ¶óÀ̾ðÆ®°¡ ¼¹öÀÇ ÀÎÁõ¼¸¦ ¹ÞÀ¸¸é
- a. ¼¹öÀÇ ÀÎÁõ¼¸¦ °ËÁõÇÕ´Ï´Ù. (CAÀÎÁõ¼´Â ÀÌ¹Ì Å¬¶óPC¿¡ ÀÖÀ¸¸ç À̸¦ ÅëÇØ (PKI & µðÁöÅм¸í Âü°í) º¯Á¶°¡ ¾ø´ÂÁö È®ÀÎÇÕ´Ï´Ù.)
- b. ¼¼¼Ç Å°(´ëĪ Å°)¸¦ **·£´ýÀ¸·Î** ¸¸µé¾î ¼¹ö ÀÎÁõ¼¿¡ ÀÖ´Â **°ø°³Å°·Î ¾ÏÈ£È** ÇÏ°í ¾ÏÈ£ÈµÈ °ªÀ» ¼¹ö·Î Àü¼ÛÇÕ´Ï´Ù.
(°ø°³Å°·Î ¾ÏÈ£ÈÇϸé ÇØ´ç Á¤º¸´Â °³ÀÎÅ°·Î¸¸ ¿ ¼ö ÀÖ½À´Ï´Ù)
3. ¼¹ö´Â ¾ÏÈ£ÈµÈ ¼¼¼ÇÅ°¸¦ ¹Þ°í ¾ÕÀ¸·Î ÇØ´ç ¼¼¼ÇÅ°·Î ÀÓÈ£ÈÇÏ¿© ¼·Î Åë½ÅÇÕ´Ï´Ù.
-----
DHEÀÇ °æ¿ì¿¡´Â ¼¼¼Ç °³½Ã¶§ ¼¹ö°¡ Àӽà DH Å°Æä¾î¸¦ ¸¸µé°í -> ¼¹ö ÀÎÁõ¼·Î DH °ø°³Å°¸¦ »çÀÎÇؼ -> Ŭ¶ó¿¡°Ô º¸³»°í -> Ŭ¶ó´Â Àӽ÷ΠDH Å°Æä¾î¸¦ ¸¸µé¾î¼ ¹ÞÀº DH°ø°³Å°¿Í «»ÍÇØ ¼¼¼ÇÅ°¸¦ ¸¸µé°í ÀÚ½ÅÀÇ DH °ø°³Å°¸¦ ¼¹ö¿¡°Ô º¸³»¸é Å°ÇÕÀÇ°¡ ÀÌ·ç¾î Áý´Ï´Ù.
TLS(SSL)Àº À§ Å°±³È¯ »Ó¸¸ ¾Æ´Ï¶ó Å°¸¦ ±³È¯ÇÒ ¶§ ÇØ´ç Á¤º¸°¡ º¯Á¶µÇ¾ú´ÂÁö È®ÀÎÇÏ´Â °úÁ¤°ú ÀçÀü¼Û °ø°Ý°°Àº °ø°Ý¿¡ ´ëºñÇÏ°í ³ªÁß¿¡¶óµµ ºñ¹ÐÅ°°¡ Å»Ãë´çÇßÀ» ¶§¿¡ ´ëÇÑ ´ëºñµµ ÇؾßÇÏ´Â µî °í·ÁÇÒ°ÍÀÌ ¸¹½À´Ï´Ù.
±×·¡¼ ºñ´ëĪ ¾ÏÈ£È + µðÁöÅм¸í + PKI + ´ëĪ ¾ÏÈ£È ¿©·¯ ±â¼úµéÀÇ ÃÑÇÕÀÌÁÒ.
Âü°í·Î ºñ´ëĪŰ´Â ¼ö¸íÀÌ Âª½À´Ï´Ù. ¸î³â ¾È¿¡´Â ¶Õ¸°´Ù°í º¸°í Å°¸¦ ÁÖ±âÀûÀ¸·Î º¯°æÇϸç (±×·¡¼ °øÀÎÀÎÁõ¼µµ 1³â¸¶´Ù Àç¹ß±Þ..¤Ð¤Ð)
RSA & DHÀÇ °æ¿ì ³ªÁß¿¡ ºñ¹ÐÅ°°¡ Å»ÃëµÇ¸é ÀÌÀü Åë½Å³»¿ëÀ» ¾Ë ¼ö Àֱ⠶§¹®¿¡ DH´ë½Å DHE¸¦ ¾²´Â°Ô ¾ÈÀüÇÕ´Ï´Ù.