목차
Part Ⅰ 소개 ... 1
   1. XML과 보안 ... 3
      1.1 XML ... 3
        1.1.1 XML의 기원 ... 4
        1.1.2 XML의 목표 ... 5
        1.1.3 XML의 장점과 단점 ... 6
        1.1.4 XML의 사용 ... 7
      1.2 XML 보안의 필요성 ... 8
      1.3 XML 보안 표준의 현재 ... 9
      1.4 진행 중인 사항 ... 10
   2. 디지털 암호화 기법의 기초 ... 11
      2.1 메시지 요약 ... 11
      2.2 메시지 인증 코드 ... 13
      2.3 비밀 키/대칭 키 암호문 ... 15
      2.4 공개 키/비대칭 키 암호문 ... 17
      2.5 비대칭 키와 인증 ... 18
      2.6 전자 서명 ... 19
      2.7 인증서 ... 20
      2.8 암호문 동봉 기법 ... 24
      2.9 규격화 ... 26
      2.10 불규칙성 ... 27
      2.11 보안에 관한 기타 요소들 ... 28
      2.12 암호화 기법 : 미묘한 기술 ... 29
Part Ⅱ XML 기초 ... 31
   3. XML ... 33
      3.1 관련된 표준과 권고안 ... 34
      3.2 XML 문서 ... 35
        3.2.1 XML 해독 과정 ... 37
        3.2.2 적법성을 가진 문서 ... 39
        3.2.3 유효한 XML 문서 ... 40
      3.3 XML 문서 구조 ... 41
      3.4 XML 문서의 논리적 구조 ... 42
        3.4.1 XML 선언 ... 42
        3.4.2 요소 ... 44
        3.4.3 속성 ... 46
        3.4.4 특수한 속성 xml:space와 xml:lang ... 47
        3.4.5 CDATA 구문 ... 48
        3.4.6 주석 ... 49
        3.4.7 문자 집합과 인코딩 ... 50
        3.4.8 처리 명령어 ... 52
      3.5 네임스페이스 ... 53
        3.5.1 네임스페이스 선언 ... 55
        3.5.2 한정된 이름 사용하기 ... 56
        3.5.3 네임스페이스 지침 ... 57
      3.6 XML 문서의 물리적 구조 ... 58
        3.6.1 범용 엔티티와 매개변수 엔티티 ... 59
        3.6.2 내부 엔티니와 외부 엔티티 ... 60
        3.6.3 엔티티 참조 ... 61
      3.7 XML과 스타일 시트 ... 62
        3.7.1 CSS ... 62
        3.7.2 XSL ... 63
        3.7.3 XSL 대 CSS ... 65
   4. XML 문서 형식 정의 ... 67
      4.1 DTD의 소개 ... 68
      4.2 문서 형식 선언 ... 69
        4.2.1 문서 형식 선언 형태 ... 70
        4.2.2 문서 형식 선언 지침 ... 71
        4.2.3 조건부 구문 ... 71
      4.3 요소 형식 선언 ... 71
        4.3.1 요소 구조 ... 72
        4.3.2 요소 내용 모델 ... 72
        4.3.3 횟수 지시자 ... 75
        4.3.4 요소 내에 포함되는 여러 개의 요소 ... 75
        4.3.5 요소 형식 선언을 위한 일반적인 지침 ... 76
      4.4 DTD 내에서 속성 정의하기 ... 77
        4.4.1 속성 종류 ... 77
        4.4.2 속성 디폴트값 ... 77
      4.5 엔티니 참조 선언 ... 80
        4.5.1 내부 범용 엔티티 참조 선언 ... 81
        4.5.2 매개변수 엔티티 선언 참조 ... 81
      4.6 표기 선언 ... 81
   5. XML 스키마 ... 83
      5.1 개요 ... 84
      5.2 형식(Type) ... 85
        5.2.1 simpleType ... 85
        5.2.2 complexType ... 86
      5.3 요소와 속성 ... 86
      5.4 네임스페이스 ... 91
      5.5 스키마의 기타 특징 ... 92
      5.6 다루지 않은 부분 ... 91
   6. XPath ... 95
      6.1 XPath의 모델 ... 97
      6.2 데이터 모델 ... 97
        6.2.1 루트 노드 ... 98
        6.2.2 요소 노드 ... 99
        6.2.3 속성 노드 ... 100
        6.2.4 네임스페이스 노드 ... 100
        6.2.5 텍스트 노드 ... 101
        6.2.6 처리 명령어 노드 ... 102
        6.2.7 주석 노드 ... 102
      6.3 위치 경로 ... 103
        6.3.1 위치 단계 ... 104
        6.3.2 축 ... 104
        6.3.3 노드 테스트 ... 105
        6.3.4 술어 ... 107
        6.3.5 단축 주해 ... 107
      6.4 표현식 ... 109
        6.4.1 함수 호출 ... 109
        6.4.2 연산자 ... 110
      6.5 함수 라이브러리 ... 112
        6.5.1 노드-세트 함수 ... 112
        6.5.2 문자열 함수 ... 114
        6.5.3 불 함수 ... 115
        6.5.4 숫자 함수 ... 116
   7. URI, xml:base, 그리고 XPointer ... 119
      7.1 URI ... 119
        7.1.1 URI 구문 ... 119
        7.1.2 상대적 URI ... 123
        7.1.3 URI 참조와 단편 기술자 ... 124
        7.1.4 URI 인코딩 ... 124
      7.2 xml:base ... 126
      7.3 XPointer ... 128
        7.3.1 XPointer의 형태 ... 129
        7.3.2 XPath 확장 ... 131
        7.3.3 XPointer 함수들 ... 135
   8. SOAP ... 139
      8.1 SOAP 소개 ... 139
        8.1.1 포함되었거나 그렇지 않은 기능 ... 140
        8.1.2 SOAP과 XML의 연관성 ... 140
        8.1.3 기본 SOAP 네임스페이스 ... 141
      8.2 SOAP Envelope, 메시지 교환, 그리고 처리 모델 ... 142
        8.2.1 SOAP 메시지 ... 142
        8.2.2 SOAP Actor 속성 ... 144
        8.2.3 SOAP 처리 과정 ... 145
        8.2.4 SOAP 장애 ... 146
        8.2.5 SOAP Envelope와 장애 스키마 ... 149
      8.3 SOAP 인코딩 ... 152
        8.3.1 encodingStyle 속성 ... 152
        8.3.2 http://www.w3.org/2001/12/soap-encoding 인코딩 ... 153
      8.4 SOAP 전송 바인딩과 HTTP ... 153
        8.4.1 전송 메시지 교환 패턴 ... 154
        8.4.2 SOAP HTTP 바인딩 ... 154
      8.5 SOAP 원격 프로시저 호출 ... 156
        8.5.1 SOAP HTTP 원격 프로시저 호출 ... 156
        8.5.2 원격 프로시저 호출 장애 ... 157
        8.5.3 원격 프로시저 호출 스키마 ... 158
        8.5.4 애플리케이션 매개변수 이름을 XML에 매핑시키기 ... 158
Part Ⅲ 규격화와 인증 ... 161
   9. XML 규격화 : 견고함의 핵심 ... 163
      9.1 규격화 - XML 서명의 필수 요소 ... 165
        9.1.1 XML 규격화의 몇 가지 간단한 특징 ... 166
        9.1.2 XML 화이트스페이스에 대한 문제 ... 167
        9.1.3 XML 네임스페이스의 문제 ... 168
        9.1.4 XML 데이터를 위해 필요한 규격화 ... 172
      9.2 규격화된 XML과 XML 암호화 ... 173
      9.3 변형에 대한 정리 ... 175
        9.3.1 입력/읽기 규칙 ... 175
        9.3.2 출력/인쇄 규칙 ... 178
        9.3.3 상속된 속성과 네임스페이스 선언 규칙 ... 181
      9.4 XML 규격화 데이터 모델 ... 183
        9.4.1 노드-세트 ... 185
        9.4.2 문서 순서 ... 187
        9.4.3 네임스페이스와 속성들의 알파벳 순서 ... 187
      9.5 공식적인 생성 기술안 ... 188
        9.5.1 루트 노드 ... 188
        9.5.2 요소 노드 ... 189
        9.5.3 속성 노드 ... 189
        9.5.4 네임스페이스 노드 ... 190
        9.5.5 텍스트 노드 ... 191
        9.5.6 처리 명령어 노드 ... 192
        9.5.7 주석 노드 ... 192
      9.6 XML 규격화의 제한 ... 193
        9.6.1 애플리케이션 동일성 ... 194
        9.6.2 문자 정규화 ... 195
        9.6.3 조작 상의 불일치 ... 196
        9.6.4 조상 네임스페이스 선언과 xml 네임스페이스 속성의 제외/포함 ... 197
   10. XML 서명과 인증 ... 199
      10.1 XML 전자 서명 소개 ... 199
      10.2 XML 서명 구문 ... 203
        10.2.1 서명 요소 ... 206
        10.2.2 SignedInfo 요소 ... 207
        10.2.3 Reference 요소 ... 212
        10.2.4 SignatureValue 요소 ... 216
        10.2.5 KeyInfo 요소 ... 217
        10.2.6 Object 요소 ... 217
        10.2.7 Manifest 요소 ... 219
        10.2.8 SignatureProperties 요소 ... 220
        10.2.9 주석과 처리 명령어 ... 222
      10.3 XML 서명 예제 ... 222
        10.3.1 간단한 프로토콜 예제 ... 222
        10.3.2 간단한 문서 예제 ... 223
        10.3.3 좀 더 복잡한 프로토콜의 예제 ... 225
        10.3.4 좀 더 복잡한 형태 예제 ... 229
      10.4 변환과 XPath의 사용 ... 231
        10.4.1 'XPath' 데이터 모델 ... 232
        10.4.2 URI의 참조 중지 ... 232
        10.4.3 데이터 파이프라인 ... 234
        10.4.4 Transforms 요소 구문 ... 235
      10.5 처리 규칙 ... 236
        10.5.1 Signature 생성 ... 236
        10.5.2 Signature 확인 ... 237
      10.6 서명의 보안 ... 239
        10.6.1 Transforms ... 239
        10.6.2 서명 보안 모델의 검사 ... 242
        10.6.3 서명의 내구성 ... 242
        10.6.4 알고리즘과 실행 가능한 내용의 주의 ... 243
   11. 애플리케이션을 위한 XMLDSIG 프로파일 작성 ... 245
      11.1 P3P XMLDSIG ... 246
        11.1.1 XMLDSIG에서 P3P로의 연결 ... 246
        11.1.2 특정 보증 구문 ... 247
        11.1.3 P3P XMLDSIG 사용 ... 248
        11.1.4 제한 사항 ... 250
      11.2 SOAP XMLDSIG ... 251
        11.2.1 처리규칙 ... 252
        11.2.2 SOAP 서명의 예 ... 253
   12. ETSI '향상된' XML 서명 ... 255
      12.1 XAdES 서명의 레벨 ... 256
        12.1.1 XAdES ... 256
        12.1.2 XAdES-T ... 258
        12.1.3 XAdES-C ... 258
        12.1.4 XAdES-X ... 259
        12.1.5 XAdES-XL ... 259
        12.1.6 XAdES-A ... 260
      12.2 XAdES 서명 구문의 기초 ... 260
        12.2.1 Qualifying과 Qualifying Reference Properties ... 260
        12.2.2 서명된 속성들과 서명되지 않은 속성들 ... 261
        12.2.3 기본 요소 ... 265
      12.3 XAdES 서명 요소 구문 ... 268
        12.3.1 SigningTime 요소 ... 268
        12.3.2 SigningCertificate 요소 ... 268
        12.3.3 SignaturePolicyIdntifier 요소 ... 269
        12.3.4 CounterSignature 요소 ... 272
        12.3.5 DateObjectFormat 요소 ... 272
        12.3.6 CommitmentTypeIndication 요소 ... 274
        12.3.7 SignatureProductionPlace 요소 ... 275
        12.3.8 SignerRole 요소 ... 276
        12.3.9 AllDataObjectsTimeStamp와 IndividualDataObjectsTimeStamp 요소 ... 277
      12.4 유효성 데이터 구문 ... 278
        12.4.1 SignatureTimeStamp 요소 ... 278
        12.4.2 CompleteCertificateRefs 요소 ... 278
        12.4.3 CompleteRevocationRefs 요소 ... 279
        12.4.4 SigAndRefsTimeStamp 요소 ... 281
        12.4.5 RefsOnlyTimeStamp 요소 ... 282
        12.4.6 CertificateValues 속성 요소 ... 282
        12.4.7 RevocationValues 속성 요소 ... 283
        12.4.8 XAdESArchiveTimestamp 요소 ... 284
Part Ⅳ 키의 사용 ... 287
   13. KeyInfo 요소 ... 289
      13.1 KeyInfo 요소 ... 293
        13.1.1 DSAKeyInfo 요소 ... 295
        13.1.2 RSAKeyInfo 요소 ... 297
        13.1.3 DHKeyInfo 요소 ... 298
      13.2 EncryptedKey 요소 ... 299
      13.3 RetrievalMethod 요소 ... 299
      13.4 AgreementMethod 요소 ... 301
      13.5 KeyName 요소 ... 302
      13.6 X509Data 요소 ... 302
        13.6.1 구분된 이름 인코딩 ... 304
        13.6.2 X509Data 구분 ... 305
        13.6.3 PKCS7signedData 요소 ... 306
        13.6.4 OCSP 토큰 ... 307
      13.7 PGPData 요소 ... 307
      13.8 SPKIData 요소 ... 308
      13.9 MamtData 요소 ... 309
   14. XKMS : XML 키 관리 ... 311
      14.1 키 정보 서비스 ... 312
        14.1.1 X-KISS 서비스 ... 313
        14.1.2 위치 추적 서비스 ... 314
        14.1.3 유효화 서비스 ... 316
      14.2 XKMS 공통 데이터 요소 ... 320
      14.3 키 등록 서비스 ... 322
        14.3.1 X-KISS 서비스 ... 322
        14.3.2 X-KISS 등록 메시지 ... 323
        14.3.3 다량 등록 서비스 ... 325
      14.4 XKMS 암호화 알고리즘 ... 326
        14.4.1 공유된 비밀 데이터 ... 326
        14.4.2 사용자 생성 키의 등록 ... 327
        14.4.3 서버 생성 키의 등록 ... 329
      14.5 보안 고려 사항 ... 330
Part Ⅴ XML 암호화 ... 331
   15. XML 암호화 ... 333
      15.1 XML 암호화 소개 ... 333
        15.1.1 왜 또 다른 암호화 구문인가? ... 333
        15.1.2 암호화 입자 ... 334
        15.1.3 둘러싼 암호화와 분리된 암호화 ... 334
      15.2 XML 암호화 구문 ... 336
        15.2.1 EncryptedType ... 337
        15.2.2 CipherData 요소 ... 340
        15.2.3 EncryptionProperties 요소 ... 342
        15.2.4 EncryptedData 요소 ... 343
        15.2.5 EncryptedKey 요소 ... 344
        15.2.6 ReferenceList 요소 ... 346
        15.2.7 ds:KeyInfo 요소로의 확장 ... 347
      15.3 암호화 예제 ... 348
        15.3.1 XML 요소들의 암호화 ... 349
        15.3.2 XML 요소 내용의 암호화 ... 350
        15.3.3 임의의 데이터 암호화 ... 351
        15.3.4 슈퍼 암호화 ... 352
        15.3.5 참조된 EncryptedKey ... 353
      15.4 처리 과정 ... 355
        15.4.1 암호화 ... 355
        15.4.2 복호화 ... 357
        15.4.3 XML 암호화 ... 358
      15.5 암호화의 보안에 관한 고려 사항 ... 358
        15.5.1 XMLDSIG와 XML 암호화의 결합 ... 358
        15.5.2 드러나는 정보 ... 358
        15.5.3 알고리즘과 표현식의 고려 사항 ... 359
   16. 암호화와 서명의 결합 ... 361
      16.1 일반적인 고려 사항 ... 361
        16.1.1 서명된 데이터와 서명의 암호화 ... 362
        16.1.2 Signature를 제외한 서명된 데이터의 암호화 ... 364
        16.1.3 암호화된 데이터에 서명하기 ... 365
      16.2 복호화 변환 ... 366
        16.2.1 복호화 변환의 소개 ... 366
        16.2.2 복호화 변환 구문 ... 366
        16.2.3 복호화 변환 처리 과정 ... 368
        16.2.4 복호화 변환의 제한 사항 ... 369
Part Ⅵ 알고리즘 ... 371
   17. 알고리즘의 개요 ... 373
      17.1 알고리즘 구문 ... 373
      17.2 알고리즘의 규칙 ... 375
        17.2.1 AgreementMethod ... 376
        17.2.2 CanonicalizationMethod ... 377
        17.2.3 DigestMehtod ... 378
        17.2.4 EncryptionMethod ... 379
        17.2.5 SignatureMethod ... 380
        17.2.6 변환 ... 381
   18. 암호화 알고리즘 ... 383
      18.1 메시지 요약 ... 383
        18.1.1 MDS ... 383
        18.1.2 SHA-1 ... 385
        18.1.3 추가적인 SHA 버전 ... 385
        18.1.4 RIPEMD-160 ... 386
      18.2 키 승인 알고리즘 ... 386
        18.2.1 Diffie-Hellman 키 알고리즘 ... 389
      18.3 메시지 인증 코드 ... 392
        18.3.1 HMAC SHA-1 ... 392
        18.3.2 추가적인 HMAC 변종 ... 393
      18.4 서명 알고리즘 ... 394
        18.4.1 DSA ... 394
        18.4.2. RSA-SHA 1 ... 395
        18.4.3 추가적인 RSA 변종 ... 396
      18.5 블록 암호화 알고리즘 ... 396
        18.5.1 삼중 DES ... 397
        18.5.2 AES ... 398
      18.6 스트림 암호화 알고리즘 ... 398
        18.6.1 ARCFOUR ... 399
      18.7 키 전송 알고리즘 ... 400
        18.7.1 RSA Version 1.5 ... 400
        18.7.2 RSA-OAEP ... 401
      18.8 대칭 키 포장 알고리즘 ... 402
        18.8.1 CMS 키 체크섬 ... 402
        18.8.2 삼중 DES 키 포장 ... 402
        18.8.3 ASE 키 포장 ... 404
   19. 비암호화 알고리즘 ... 409
      19.1 규격화 알고리즘 ... 409
        19.1.1 규격화된 XML ... 410
        19.1.2 배타적 XML 규격화 ... 411
        19.1.3 최소 규격화 ... 411
      19.2 변환 알고리즘 ... 412
        19.2.1 규격화 ... 413
        19.2.2 Base-64 디코딩 ... 413
        19.2.3 XPath 필터링 ... 413
        19.2.4 둘러싸인 서명 변환 ... 418
        19.2.5 XSLT 변환 ... 418
        19.2.6 XPointer ... 419
        19.2.7 XML 스키마 유효화 ... 420
        19.2.8 복호화 변환 ... 421
부록 ... 423
   Appendix A XML 보안 도구 ... 425
      A.1 Apache ... 426
      A.2 Baltimore Technologies ... 427
      A.3 Capslock ... 430
      A.4 Done Information ... 430
      A.5 DSTC ... 431
      A.6 Entrust ... 431
      A.7 Fujitsu ... 432
      A.8 GapXse ... 432
      A.9 HP Web Service ... 433
      A.10 IAIK ... 433
      A.11 IBM ... 434
      A.12 Infomosaic ... 434
      A.13 JDSS II ... 435
      A.14 Mather ... 435
      A.15 Microsoft ... 436
      A.16 NEC ... 436
      A.17 Phaos Technology ... 437
      A.18 Poupou ... 437
      A.19 RSA Security ... 438
      A.20 Siggen ... 438
      A.21 Verisign ... 438
      A.22 W3C ... 439
      A.23 WebSig ... 440
      A.24 Wedgetail ... 440
      A.25 XML Sec ... 440
   Appendix B W3C와 W3C 문서들 ... 443
      B.1 W3C 문서로의 접근 ... 443
      B.2 W3C 문서 상태 ... 444
      B.3 W3C 문서 형식 ... 445
      B.4 W3C 문서 공지 사항 ... 445
      B.5 W3C 소프트웨어 공지 사항 ... 446
   Appendix C IETF와 IETF 문서 ... 449
      C.1 RFC 상태 ... 450
      C.2 RFC로의 접근 ... 451
      C.3 RFC 포맷 ... 452
   Appendix D NIST와 NIST 문서 ... 453
      D.1 NIST FIPS 문서로의 접근 ... 454
      D.2 NIST 문서의 상태 ... 454
      D.3 FIPS의 포맷 ... 455
   Appendix E 문서와 프로토콜 관점 ... 457
      E.1 기본 관점 ... 457
      E.2 의미의 문제 ... 459
        E.2.1 핵심 의미 ... 459
        E.2.2 부속 의미 ... 460
      E.3 처리 모델 ... 461
        E.3.1 처리량 ... 461
        E.3.2 처리 과정 입자 ... 461
      E.4 보안과 규격화 ... 462
        E.4.1 규격화 ... 463
        E.4.2 디지털 인증 ... 464
        E.4.3 규격화와 디지털 인증 ... 464
        E.4.4 암호화 ... 465
      E.5 유일한 내부 라벨들 ... 465
      E.6 예 ... 467
      E.7 관점의 해법 ... 467
   Appendix F
      처리의 확장성 ... 469
      참조와 약어 ... 485
      찾아보기 ... 498
닫기