키워드를 사용하여 생성기 보안 제한조건에 무결성에 필요한 임시값 추가

이 태스크 정보

무결성의 임시값은 특정 요소에 임시값이 임베드되며 요소가 서명되도록 지정하는 데 사용됩니다. 임시값은 무작위로 생성되는 암호화 토큰입니다. 메시지의 특정 파트에 임시값을 추가하면 생성된 임시값이 고유하기 때문에 도난 및 반복 공격을 예방할 수 있습니다. 예를 들어, 임시값이 없으면 HTTP와 같은 비보안 전송을 사용하여 한 시스템에서 다른 시스템으로 사용자 이름 토큰을 전달할 때 토큰이 인터셉트되거나 반복 공격에 사용될 수 있습니다. XML 디지털 서명 및 XML 암호화를 사용하는 경우에도 사용자 이름 토큰을 도난당할 수 있습니다. 그러나 임시값을 추가함으로써 이러한 상황을 예방할 수 있습니다.

요청 생성기 또는 응답 생성기에 적용할 생성기 보안 제한조건을 구성하는 경우 키워드를 사용하여 무결성에 필요한 임시값을 지정하려면 다음 단계를 완료하십시오. 요청 생성기가 클라이언트에 적합하게 구성되고 응답 생성기가 서버에 적합하게 구성됩니다. 다음 단계 중 2단계에서 클라이언트 측 확장기능을 구성하거나 3단계에서 서버 측 확장기능을 구성해야 합니다.

프로시저

  1. 창 > 퍼스펙티브 열기 > J2EE를 클릭하십시오.
  2. 옵션: 프로젝트 탐색기 창을 사용하여 클라이언트 측 확장기능을 찾으십시오. 클라이언트 배치 디스크립터 창이 표시됩니다. 이 웹 서비스에는 구성해야 하는 확장기능이 포함되어 있습니다.
    1. 웹 서비스 > 클라이언트 섹션을 펼친 후 웹 서비스의 이름을 두 번 클릭하십시오.
    2. WS 확장기능 탭을 클릭하고 요청 생성기 구성 절을 펼치십시오.
  3. 옵션: 프로젝트 탐색기 창을 사용하여 서버 측 확장기능을 찾으십시오. 웹 서비스 편집기 창이 표시됩니다. 이 웹 서비스에는 구성해야 하는 확장기능이 포함되어 있습니다.
    1. 웹 서비스 > 서비스 섹션을 펼친 후 웹 서비스의 이름을 두 번 클릭하십시오.
    2. 확장기능 탭을 클릭하고 응답 생성기 서비스 구성 세부사항 절을 펼치십시오.
  4. 무결성 절을 펼치십시오. 기밀성이 암호화를 참조하는 반면 무결성은 디지털 서명을 참조합니다. 무결성은 네트워크에서 데이터를 전송할 때 데이터가 수정될 위험성을 감소시킵니다. SOAP(Simple Object Access Protocol) 메시지의 디지털 서명에 대한 자세한 정보는 XML 디지털 서명을 참조하십시오.
  5. 추가를 클릭하여 무결성에 필요한 임시값을 지정하십시오. 무결성 대화 상자 창이 표시됩니다.
    1. 필수 무결성 이름 필드에 무결성 요소의 이름을 지정하십시오. 예를 들어, int_nonce를 지정할 수 있습니다.
    2. 순서 필드에 순서를 지정하십시오. 값(양의 정수여야 함)은 디지털 서명이 처리되는 순서를 지정합니다. 순서 값 1은 서명이 첫 번째로 완료되도록 지정합니다.
  6. 임시값에서 추가를 클릭하고 임시값 통용어를 선택하십시오. http://www.ibm.com/websphere/webservices/wssecurity/dialect-was 통용어는 임시값이 추가되고 서명된 메시지 파트를 지정합니다. 이 통용어를 선택하면 임시값 키워드에서 다음 키워드 중 하나를 선택할 수 있습니다.
    body
    메시지의 사용자 데이터 부분을 지정합니다. 이 옵션을 선택하면 SOAP(Simple Object Access Protocol) 본문 요소에 임시값이 임베드되고 본문 요소가 서명됩니다.
    timestamp
    임시값이 메시지 내의 독립형 시간소인 요소에 임베드되며 요소가 서명되도록 지정합니다. 시간소인을 선택하는 경우 메시지에 독립형 시간소인 요소가 있는지 확인하십시오. 메시지에 해당 요소가 없는 경우에는 생성기 보안 제한조건에 독립형 시간소인 추가를 참조하십시오.
    securitytoken
    securitytoken 요소가 서명되도록 지정합니다. 보안 토큰은 클라이언트를 인증합니다. 이 옵션을 선택하면 임시값 요소가 securitytoken 요소에 임베드됩니다.
    dsigkey
    임시값이 디지털 서명에 사용되는 키 정보 요소에 삽입되며 키 정보 요소가 서명되도록 지정합니다.
    enckey
    임시값이 암호화에 사용되는 키 정보 요소에 삽입되며 키 정보 요소가 서명되도록 지정합니다.
    messageid
    임시값이 <wsa:MessageID> 요소에 삽입되며 <wsa:MessageID> 요소가 서명되도록 지정합니다.
    to
    임시값이 메시지 내의 <wsa:To> 요소에 삽입되며 <wsa:To> 요소가 서명되도록 지정합니다.
    action
    <wsa:Action> 요소가 서명되도록 지정합니다.
    relatesto
    임시값이 메시지 내의 <wsa:RelatesTo> 요소에 삽입되며 <wsa:RelatesTo> 요소가 서명되도록 지정합니다.
  7. 메시지 파트 절에서 추가를 클릭하고 메시지 파트 통용어 필드에서 http://www.ibm.com/websphere/webservices/wssecurity/dialect-was를 선택하십시오.
  8. 메시지 파트 절에서 메시지 파트 키워드를 선택하십시오.
    중요사항: 무결성에 임시값을 지정하려면 메시지 파트 절에 최소한 하나의 메시지 파트를 정의해야 합니다. 임시값의 상위 요소뿐 아니라 이 메시지 파트도 서명됩니다.
  9. 확인을 클릭하여 구성 변경사항을 저장하십시오.
    참고: 이용자 측과 생성기 측에서 이 구성이 일치해야 합니다.
    임시값 외에도 시간소인 요소에 서명하도록 지정할 수 있습니다. 자세한 정보는 다음 문서를 참조하십시오.

다음 예제는 SOAP 메시지 본문에 임시값이 삽입되어 있고 서명된 SOAP 메시지입니다.

<soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soapenv:Header soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/
       wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
         <wsse:BinarySecurityToken EncodingType="http://docs.oasis-open.org/wss/2004/01/
          oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType=
          "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" 
          wsu:Id="x509bst_1179110083179840266" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/
          oasis-200401-wss-wssecurity-utility-1.0.xsd"> E21hcnV5YW1hQGpwLmlibS5jb22CAgEBMA0GCSqGSIb3
          DQEBBQUAA4GBAHkthdGDgCvdIL9/vXUo74xpfOQd/rr1owBmMdb1TWdOyzwbOHC7lkUlnKrkI7SofwSLSDUP571iiMX
          Ux3tRdmAVCoDMMFuDXh9V7212luXccx0s1S5KN0D3xW97LLNegQC0/b+aFD8XKw2U5ZtwbnFTRgs097dmz09RosDKkLlM
         </wsse:BinarySecurityToken>
         <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
            <ds:SignedInfo>
               <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                  <ec:InclusiveNamespaces PrefixList="wsse ds xsi soapenc xsd soapenv " 
                   xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
               </ds:CanonicalizationMethod>
               <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
               <ds:Reference URI="#wssecurity_signature_id_8451968259110349556">
                  <ds:Transforms>
                     <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
                        <ec:InclusiveNamespaces PrefixList="xsi soapenc xsd wsu soapenv " 
                         xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#"/>
                     </ds:Transform>
                  </ds:Transforms>
                  <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
                  <ds:DigestValue>HgfL7FiG/TGECE/L0zg5mJldfgc=</ds:DigestValue>
               </ds:Reference>
            </ds:SignedInfo>
            <ds:SignatureValue>iE2G53VMwCFBI6BwOWiaOLYvemZUJTXJocXpy8loyW1LiR8bBQcFioDOuDXXzVj3K+ZD2p
             Yhc0krVYqkYY0IZoRx7xpWt+9qn7aSbxKjuHlMFNCdB1Uxp608zCZcSwvuoCffjlO0ltUQ8JTEBnmMB0cfaoiG5bF
             kUOEpkFo2P9c=</ds:SignatureValue>
            <ds:KeyInfo>
               <wsse:SecurityTokenReference>
                  <wsse:Reference URI="#x509bst_1179110083179840266" ValueType="http://docs.oasis-open.org/
                   wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3"/>
               </wsse:SecurityTokenReference>
            </ds:KeyInfo>
         </ds:Signature>
      </wsse:Security>
   </soapenv:Header>
   <soapenv:Body soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
    wsu:Id="wssecurity_signature_id_8451968259110349556" xmlns:wsu="http://docs.oasis-open.org/
    wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
      <getVersion/>
      <wsse:Nonce wasextention="wedsig" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/
       oasis-200401-wss-wssecurity-secext-1.0.xsd">1u0otbnjkPiCWDhh25yEyBHD/r3VPSbQ1oZTs0Ks1GE/iDL4YbKDT
       wdL+e2Hb7nNZn397nRJQ9ePGgf7PRdEuqATFbfq0/T+6j6Fk/MbSHmZnHHoBscFX8W/dYssyCmWDp99447kRhnJbNg5JxarkFmM
       LqpxKfm1iP3hKP5DpJY=</wsse:Nonce>
   </soapenv:Body>
</soapenv:Envelope>

다음에 수행할 작업

디지털로 서명할 메시지 파트를 지정한 후 메시지에 디지털로 서명하는 데 사용되는 메소드를 지정해야 합니다. 자세한 정보는 이용자 바인딩에 필요한 서명 정보 구성을 참조하십시오.

피드백