메인 컨텐츠로 가기

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

developerWorks에 처음 로그인하면 developerWorks프로파일이 생성됩니다.귀하의 프로파일에서 동의하신 내용이 공개되지만 이 사항은 언제든지 변경 가능합니다. 귀하의 성명(숨김으로 체크되어 있어도 표시됩니다)과 디스플레이 이름은 게시한 컨텐츠나 사이트 엑세스시 표시됩니다.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

처음 developerWorks에 로그인할 때 프로파일이 작성되므로, 이를 위해 디스플레이 이름을 선택해야 합니다. 선택하신 디스플레이 이름은 developerWorks에 게시한 컨텐츠에 표시됩니다.

3글자 이상 31글자 이하의 길이로 사용 가능합니다. dW커뮤니티 내에서는 보안상 이메일주소를 제외한 다른 이름을 지정하셔야 합니다.

developerWorks 이용 약관에 동의하시는 경우 제출을 클릭하십시오. 이용 약관 보기.

모든 정보가 안전하게 전송되었습니다.

  • 닫기 [x]

SSL 통신을 캡처하도록 Tomcat과 Wireshark 구성하기

보안 통신 디버깅하기

Dominic Tulley, Leading Architect, DOORS Development Lab, IBM  
Photo of Dominic Tulley
Dominic Tulley has more than ten years experience working in server-side Java development, including the intricacies of client-server communication. He is a leading software architect within the IBM DOORS Development lab.

요약:  클라이언트와 서버 간의 통신 문제를 조사하는 과정은 가장 좋은 때에도 성가신 일이며 SSL로 통신을 보호하면 이 과정은 더욱 어려워집니다. 이 튜토리얼에서는 캡처한 통신을 Wireshark의 SSL Dissector가 복호화할 수 있도록 Tomcat과 Wireshark를 구성하는 단계를 살펴봅니다. 이렇게 하고 나면 마치 SSL이 관련되지 않은 것처럼 조사할 수 있습니다.

원문 게재일:  2009 년 11 월 03 일
난이도:  초급 PDF:  A4 and Letter (563 KB | 17 pages)Get Adobe® Reader®

페이지뷰: 4321 회
의견: 

시작하기 전에

현재의 분산 환경에서는 네트워크 통신이 포함된 시스템을 개발하는 것이 매우 일반적인 현상이다. 이러한 시스템을 개발하는 과정에서는 소프트웨어의 성능을 측정하거나 디버깅하는 작업을 통해서는 조사하기 어려운 통신 문제가 발생할 수 있다. 이런 때에는 시스템의 모든 네트워크 트래픽을 캡처하여 읽을 수 있게 표시하는 Wireshark와 같은 도구를 고려해 볼 필요가 있다. 이 도구는 문제를 해결하는 데 필요한 통찰력을 제공하곤 한다. 해당 시스템에서 통신을 보호하기 위해 SSL을 사용하는 경우에도 네트워크 트래픽을 캡처할 수 있지만, 캡처한 데이터가 모두 암호화되어 있기 때문에 개발자가 유용한 정보를 얻을 수 없다. 다행히도, Wireshark에는 조건이 맞을 경우에 캡처한 트래픽을 복호화할 수 있는 SSL Dissector가 함께 제공된다. 이 튜토리얼에서는 Tomcat을 서버로, 웹 브라우저를 클라이언트로 사용하여 이러한 조건을 설정하는 방법을 단계별로 설명한다.

목표

이 튜토리얼을 마칠 즈음에는 Wireshark SSL Dissector를 사용하기 전에 충족시켜야 하는 다양한 조건을 이해하게 된다. 더불어, 이러한 조건을 조정하여 Tomcat을 설치하는 과정에서 조건이 충족되게 할 수 있다.

선수조건

네트워크 통신 메커니즘을 기본적으로 이해하고 있다고 가정한다. Tomcat과 Wireshark를 모두 다뤄본 적이 있으면 유리하지만 그렇지 않더라도 아무런 문제가 없다. 특히 이 튜토리얼에서는 Wireshark가 올바르게 구성되어 있다고 가정하여 Wireshark를 사용하는 방법에 관해서는 깊이 다루지 않는다.

참고: 이 튜토리얼에서는 이러한 명령 세트가 작동하는 이유나 이러한 명령을 실행했을 때 나타날 수 있는 차이에 대한 고려사항은 다루지 않는다. 그 대신 개발 환경에서 네트워크 트래픽을 기록하고 디코드할 수 있게 하는 데 그 목적이 있다. 여기에서 수행한 절차와 생성된 일부 암호화 아티팩트는 보안에 매우 취약하며 따라서 프로덕션 환경에는 적용하지 말아야 한다.

시스템 요구사항

이 튜토리얼에서는 독자가 Windows®를 사용하고 있다고 가정한다. 이 튜토리얼을 따라하려면 다음과 같은 소프트웨어를 설치해야 한다. (다운로드 사이트는 참고자료를 참조한다.)

  • Tomcat 5.5
  • Tomcat에 적합한 JVM
  • Wireshark — 이 튜토리얼에서는 Wireshark 버전 1.2.2를 사용한다. 다운로드한 Wireshark는 반드시 GnuTLS와 Gcrypt와 함께 컴파일해야 한다. 이것은 Wireshark의 "About" 창에서 확인할 수 있다.
  • openssl이 포함된 Cygwin — 이 튜토리얼에서는 openssl 버전 0.9.8i를 사용한다.
  • Jetty — 이 튜토리얼에서는 버전 6.1.21을 사용한다. 기타 최신 버전과 이전 버전도 작동할 수 있지만 이 소프트웨어에 안에 있는 필수 클래스 파일의 위치가 변경되었을 수 있다.

이외에도 웹 브라우저를 사용하여 Tomcat 서버를 액세스할 두 번째 시스템이 필요하다.

개요

Wireshark를 이용하여 보안 연결을 복호화하려면 다음과 같은 주요 조건이 충족되어야 한다.

  • 서버 인증서를 사용하여 Tomcat을 구성해야 한다.
  • 클라이언트와 서버 간(브라우저 및 Tomcat)에 사용된 특정 암호는 Wireshark의 복호화 방법을 따라야 한다.
  • Wireshark가 서버 인증서와 관련된 개인 키에 액세스할수 있어야 한다.

이 튜토리얼에서는 이와 같은 단계를 다음과 같은 순서로 살펴보며 Tomcat 서버로 연결되는 브라우저를 사용하여 요청과 응답을 캡처하여 Wireshark에서 시험한다.

비밀번호와 관련된 참고사항

이 튜토리얼에서는 별도의 세 가지 비밀번호를 정의한다. 이 튜토리얼에서는 각 비밀번호를 신중하게 지정하고 참조하지만, 편리하게 세 가지 모두 동일한 비밀번호를 사용할 수도 있다.

17 | 다음

의견



static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=20
Zone=웹 개발, 오픈 소스
ArticleID=632096
TutorialTitle=SSL 통신을 캡처하도록 Tomcat과 Wireshark 구성하기
publish-date=11032009
author1-email=dominic.tulley@uk.ibm.com
author1-email-cc=

태그

Help
검색 필드를 사용하여 My developerWorks 내에서 해당 태그가 사용된 모든 종류의 컨텐츠를 검색하십시오.

태그를 더 많이 보거나 적게 보기 위해 슬라이더 막대를 사용하십시오.

인기 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 최고 인기 태그를 보여줍니다.

내 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 귀하의 태그를 보여줍니다.

검색 필드를 사용하여 My developerWorks 내에서 해당 태그가 사용된 모든 종류의 컨텐츠를 검색하십시오. 인기 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 최고 인기 태그를 보여줍니다. 내 태그는 특정 컨텐츠 존(예를 들어, 자바, 리눅스, WebSphere)의 귀하의 태그를 보여줍니다.