본문 바로가기 주메뉴 바로가기
국회도서관 홈으로 정보검색 소장정보 검색

목차보기

표제지

제출문

요약문

SUMMARY

목차

Contents 13

제1장 서론 20

제1절 연구 개발의 필요성 20

제2절 연구 개발의 목표 및 내용 21

1. 연구 개발 목표 21

2. 내용 및 범위 22

제2장 정형 명세 언어의 소개 29

제1절 정형 명세 언어 Z와 응용 29

1. 기본형들(basic types)과 생략형 정의들(abbreviation definitions) 30

2. 공리 기술들(Axiomatic descriptions) 31

3. 상태 스키마 (State schema) 31

4. 스키마 초기화(Initialization schema) 32

5. 동작 스키마(Operation schema) 33

6. 함축성 있는 선 조건들(Implicit preconditions) 35

7. 스키마 칼큘러스 (schema calculus) 37

제2절 Statechart와 그 응용 39

1. Statechart의 명세 40

2. Statechart의 구성요소 41

3. Statechart의 특징 45

제3장 EAL6 등급의 ADV 클래스 기술 46

제1절 ARC (보안구조) 46

1. 공통평가기준 요구사항 46

2. 수행내용 47

3. 결론 및 제안 54

제2절 FSP (기능명세) 55

1. 공통평가기준 요구사항 55

2. 수행내용 56

3. 결론 및 제안 58

제3절 IMP (구현의 표현) 60

1. 공통평가기준 요구사항 60

2. 수행내용 61

3. 결론 및 제안 65

제4절 INT (TSF 내부) 66

1. 공통평가기준 요구사항 66

2. 수행내용 67

3. 결론 및 제안 78

제5절 SPM (보안정책모델) 81

1. 공통평가기준 요구사항 81

2. 수행내용 81

3. 결론 및 제안 83

제6절 TDS (TOE 설계) 84

1. 공통평가기준 요구사항 84

2. 수행내용 86

3. 결론 및 제안 94

제4장 테스트방법론 96

제1절 모델 기반 테스팅 96

제2절 개발단계의 테스팅과 모델의 역할 97

제3절 테스트케이스 생성과 테스트 수행 100

제4절 결론 및 향후 연구 104

제5장 결론 105

부록 A. CC v2.3 EAL4 KCOS 제출물 분석결과 106

제1절 ST 분석 결과 106

1. 영·한 문서의 불일치 106

2. 오타 107

3. 모호한 용어 정의 108

제2절 SPM 분석결과 108

1. SFR과 동일한 SPM 108

2. 요구사항 부합 않는 시스템 109

3. 애매한 용어사용 112

4. 오역 114

제3절 HLD, LLD 분석결과 115

1. 존재하지 않는 모듈에 대한 정의 115

2. 동작의 기술과 실제소스코드의 불일치 116

3. 서브시스템별 수정사항 116

제4절 IMP 분석 결과 126

1. 서브시스템 및 모듈 정의의 모호성 126

2. 모듈의 비정의 126

3. CC v2.3에서의 소스코드와 실제 코드의 불일치성 128

부록 B. CC v3.1 EAL6 KCOS 평가 제출물 129

K-현금카드 내장소프트웨어 V1.0 TSF 보안 구조 V1.0 / 강미영 130

문서승인 131

목차 132

제1장 개요 134

제1절 목적 134

제2절 보안 구조 설명 식별 134

제3절 용어정의 134

제2장 보안구조 특성 135

제1절 자체 보호(self-protection) 135

제2절 영역 분리(domain isolation) 135

제3절 우회불가성(non-bypassability) 136

제3장 TOE 보안 구조 137

제1절 TSF 초기화 137

제2절 자체 보호 138

1. TSF 데이터 무결성 138

2. TSF 데이터 접근통제 138

제3절 영역 분리 139

제4절 우회 불가성 140

1. 보안관리자의 접속 경로 140

K-현금카드 내장소프트웨어 V1.0 구현의 표현 V1.0 / 정연오 144

문서승인 145

목차 146

제1장 개요 150

제1절 목적 150

제2절 구현의 표현 식별 150

제3절 구성 150

제4절 개발 환경 151

1. 프로그래밍 언어 151

2. 컴파일러 151

3. 운영체제 151

제2장 구현의 표현(IMP) 152

제1절 상세설계서와 소스코드의 일치성 152

1. 개요 152

2. 각 모듈과 소스코드와의 관계 152

제2절 접근통제 서브시스템 153

1. IsAuthenticated 모듈 153

2. IsAllowed 모듈 155

3. SetLifeCycle 모듈 158

4/3. GetLifeCycle 모듈 160

5/4. ResetACSts 모듈 161

6/5. SetACSts 모듈 162

제3절 데이터 관리 서브시스템 164

1. FindFile 모듈 164

2. FileChecksum 모듈 166

3. SelectFile 모듈 168

4. CreateFile 모듈 170

5. UpdateRecord 모듈 176

6. ReadRecord 모듈 178

7/6. UnblockFile 모듈 180

8/7. BlockFile 모듈 183

9/8. GetData 모듈 185

10/9. PutData 모듈 187

제4/5절 인증 서브시스템 191

1. ExtAuth 모듈 191

2. CreateSession 모듈 195

3. GetChallenge 모듈 199

4. Verify 모듈 200

5/4. Getkey 모듈 203

6/5. Putkey 모듈 205

7/6. GetSessionKey 모듈 207

제5/6절 시동 관리 서브시스템 208

1. InitAutoWait 모듈 208

2. InitEEPStack 모듈 209

3. InitEEPData 모듈 209

4. CreateInitFile 모듈 210

5. CheckRam 모듈 213

6. TRMInit 모듈 214

7. Backup 모듈 215

제6/7절 명령어 관리 서브시스템 216

1. SendApdu 모듈 216

2. ReceiveApdu 모듈 216

3. ApduCmdHandler 모듈 217

4. IsoHandler 모듈 219

5. SetApduSw 모듈 221

제7/8절 암호 서브시스템 222

1. DesCrypt 모듈 222

2. GetCardRandom 모듈 226

3. DecryptApdu 모듈 226

4. VerifyApduMac 모듈 227

제8/9절 칩 드라이버 서브시스템 229

1. DsSecurity 모듈 229

2. DsIo 모듈 229

3. DsCrypto 모듈 229

4. DsEepManager 모듈 230

참고문헌 232

K-현금카드 내장소프트웨어 V1.0 TSF 내부 패밀리 V1.0 / 최정란 233

문서승인 234

목차 235

제1장 개요 239

제1절 목적 239

제2절 보안정책모델 식별 239

제3절 용어정의 239

제2장 TSF 내부(TSF internal) 240

제1절 개요 240

1. 절차적 소프트웨어 구조 240

2. 절차적 소프트웨어의 복잡도 241

제2절 개념 정의 241

1. Cyclomatic Complexity(CC) 242

2. Halstead's Complexity(HC) 243

3. Information Flow 메트릭 243

4. 모듈의 응집도와 결합도 244

제3절 TOE 메트릭 246

1. 추적 도구 246

가. SourceMonitor Version 2.5 246

나. Understand for C++ version 1.4 247

다. Boland Together 247

라. SD메트릭 249

2. 모듈 구조도 250

3. 모듈별 측정 결과 251

가. 복잡도 251

나. TOE의 구조적 메트릭 254

4. 종합 결과 257

가. TOE의 복잡도와 구조적 메트릭 257

나. 재구조화를 적용한 TOE 분석 결과 261

5. 평가 및 제안 266

가. 코드 복잡도와 구조에 대한 평가 266

나. 문제점 267

참고문헌 269

약어표 270

K-현금카드 내장소프트웨어 V1.0 보안정책모델 V1.0 / 박준길 271

문서승인 272

목차 273

제1장 개요 276

제1절 목적 276

제2절 보안정책모델 식별 276

제3절 용어정의 276

제2장 보안 정책 모델(SPM) 278

제1절 개요 278

제2절 기본 특성 278

제3절 TOE 보안 정책 279

1. 명령어 접근통제 보안정책(SPM.1) 280

2. 파일 접근통제 보안정책(SPM.2) 285

3. 비밀정보 접근통제 보안정책(SPM.3) 287

4. 데이터 객체 접근통제 보안정책(SPM.4) 291

5. 차폐행동 보안정책(SPM.5) 292

6. 무결성 보호 보안정책(SPM.6) 293

7. 식별 및 인증 보안정책(SPM.7) 294

제4절 보안정책모델의 일관성 299

1. 초기화 정리 299

2. 선조건 조사 300

제3장 이론적 근거 320

제1절 보안 기능 요구사항(SFR) vs. 보안정책모델 320

제2절 TOE 보안 기능 vs. 보안정책모델 322

참고문헌 324

약어표 325

K-현금카드 내장소프트웨어 V1.0 기능명세 V1.0 / 신지훈 326

문서승인 327

목차 328

제1장 개요 340

제1절 목적 340

제2절 용어정의 340

제2장 TOE 보안기능 342

제1절 SF_ACC_CNTL(데이터 접근통제) 342

1. MF 접근 342

2. DF 접근 343

3. EF 접근 344

4. 데이터 객체 접근 345

제2절 SF_AUTH(관리자 인증) 346

제3절 SF_BKP(백업 관리) 346

제4절 SF_CMD_MNG(명령어 관리) 347

제5절 SF_CMP(안전한 비교) 348

제6절 SF_CRYPTO(암호 연산) 348

제7절 SF_DRV(칩 드라이버) 348

제8절 SF_INT(데이터 무결성) 351

제9절 SF_KEY(암호키 관리) 351

제10절 SF_LOCK(카드 생명주기 상태 관리) 352

제11절 SF_PIN(PIN 관리) 352

제12절 SF_RATIFI(승인 관리) 353

제13절 SF_SEC(보안 관리) 353

제14절 SF_SD_LOAD(안전한 비밀 데이터 탑재) 354

제15절 SF_TST(자체 시험) 354

제16절 보안기능과 TOE 보안기능요구사항 매핑 355

제3장 TOE 운영모드 357

제4장 TSF 외부 인터페이스 359

제1절 get response 365

1. 사용 목적 365

2. 방법 365

3. 효과 365

4. 예외사항 및 오류 메시지 366

5. 운영모드 366

6. TSF 366

제2절 read record 367

1. 사용 목적 367

2. 방법 367

3. 효과 368

4. 예외사항 및 오류 메시지 368

5. 운영모드 368

6. TSF 369

제3절 update record 370

1. 사용 목적 370

2. 방법 370

3. 효과 370

4. 예외사항 및 오류 메시지 371

5. 운영모드 371

6. TSF 372

제4절 get data 373

1. 사용 목적 373

2. 방법 373

3. 효과 374

4. 예외사항 및 오류 메시지 374

5. 운영모드 375

6. TSF 375

제5절 put data 376

1. 사용 목적 376

2. 방법 376

3. 효과 377

4. 예외사항 및 오류 메시지 377

5. 운영모드 378

6. TSF 378

제6절 select file 379

1. 사용 목적 379

2. 방법 379

3. 효과 379

4. 예외사항 및 오류 메시지 380

5. 운영모드 380

6. TSF 380

제7절 get challenge 381

1. 사용 목적 381

2. 방법 381

3. 효과 382

4. 예외사항 및 오류 메시지 382

5. 운영모드 382

6. TSF 382

제8절 external authenticate 383

1. 사용 목적 383

2. 방법 383

3. 효과 384

4. 예외사항 및 오류 메시지 384

5. 운영모드 385

6. TSF 385

제9절 block 386

1. 사용 목적 386

2. 방법 387

3. 효과 387

4. 예외사항 및 오류 메시지 387

5. 운영모드 388

6. TSF 388

제10절 unblock 389

1. 사용 목적 389

2. 방법 389

3. 효과 390

4. 예외사항 및 오류 메시지 390

5. 운영모드 391

6. TSF 391

제11절 put key 392

1. 사용 목적 392

2. 방법 393

3. 효과 393

4. 예외사항 및 오류 메시지 394

5. 운영모드 394

6. TSF 394

제12절 verify 396

1. 사용 목적 396

2. 방법 396

3. 효과 397

4. 예외사항 및 오류 메시지 397

5. 운영모드 398

6. TSF 398

제13절 set life cycle 400

1. 사용 목적 400

2. 방법 400

3. 효과 400

4. 예외사항 및 오류 메시지 401

5. 운영모드 401

6. TSF 401

제14절 create file 402

1. 사용 목적 402

2. 방법 402

3. 효과 405

4. 예외사항 및 오류 메시지 405

5. 운영모드 406

6. TSF 406

제15절 create session 407

1. 사용 목적 407

2. 방법 407

3. 효과 408

4. 예외사항 및 오류 메시지 408

5. 운영모드 408

6. TSF 409

제16절 get life cycle 410

1. 사용 목적 410

2. 방법 410

3. 효과 410

4. 예외사항 및 오류 메시지 410

5. 운영모드 411

6. TSF 411

제17절 take shield action 412

1. 사용 목적 412

2. 방법 412

3. 효과 413

4. 예외사항 및 오류 메시지 414

5. 운영모드 414

6. TSF 414

제18절 cold reset 414

1. 사용 목적 414

2. 방법 414

3. 효과 415

4. 예외사항 및 오류 메시지 415

5. 운영모드 415

6. TSF 415

제5장 예외사항 및 오류 메시지 416

제6장 이론적 근거 417

약어표 419

K-현금카드 내장소프트웨어 V1.0 TOE 설계 V1.0 / 정연오 420

문서승인 421

목차 422

제1장 개요 430

제1절 목적 430

제2절 TOE 설계 식별 430

제3절 용어정의 430

제2장 TOE 설계(TDS) 432

제1절 TOE 서브시스템 432

1. 구성 432

2. 준정형화 표현 433

제2절 TOE 모듈 434

1. 구성 434

제3/4절 접근통제 서브시스템 436

1. 개요 436

2. 다른 서브시스템과의 상호관계 436

3. IsAuthenticated 모듈 437

4. IsAllowed 모듈 443

5. SetLifeCycle 모듈 449

6. GetLifeCycle 모듈 454

7. ResetACSts 모듈 457

8. SetACSts 모듈 460

제4/5절 데이터 관리 서브시스템 465

1. 개요 465

2. 다른 서브시스템과의 상호관계 465

3. FindFile 모듈 467

4. FileChecksum 모듈 473

5. SelectFile 모듈 477

6. CreateFile 모듈 482

7. UpdateRecord 모듈 490

8. ReadRecord 모듈 495

9. UnblockFile 모듈 500

10. BlockFile 모듈 505

11. GetData 모듈 511

12. PutData 모듈 515

제5/6절 인증 서브시스템 520

1. 개요 520

2. 다른 서브시스템과의 상호관계 521

3. ExtAuth 모듈 523

4. CreateSession 모듈 530

5. GetChallenge 모듈 536

6. Verify 모듈 540

7. GetKey 모듈 545

8. PutKey 모듈 549

9. GetSessionKey 모듈 555

제6/7절 시동 관리 서브시스템 559

1. 개요 559

2. 다른 서브시스템과의 상호관계 559

3. InitAutoWait 모듈 560

4. InitEEPStack 모듈 560

5. InitEEPData 모듈 560

6. CreateInitFile 모듈 560

7. CheckRam 모듈 561

8. TRMInit 모듈 561

9. Backup 모듈 561

제7/8절 명령어 관리 서브시스템 561

1. 개요 561

2. 다른 서브시스템과의 상호관계 561

3. SendApdu 모듈 562

4. ReceiveApdu 모듈 563

5. ApduCmdHandler 모듈 563

6. IsoHandler 모듈 563

제8/9절 암호 서브시스템 563

1. 개요 563

2. 다른 서브시스템과의 상호관계 563

3. DesCrypt 모듈 564

4. GetCardRandom 모듈 564

5. DecryptApdu 모듈 564

6. VerifyApduMac 모듈 564

제9/10절 칩 드라이버 서브시스템 564

1. 개요 564

2. 다른 서브시스템과의 상호관계 565

3. DsSecurity 모듈 565

4. DsIo 모듈 565

5. DsCrypto 모듈 566

6. DsEepManager 모듈 566

참고문헌 567

약어표 568

판권기 569

표 목차

[표 1-1] 개발 클래스 패밀리의 요구사항 22

[표 1-2] 개발 클래스 패밀리의 특성화 분류 23

[표 1-3] 정형, 준정형, 비정형 간의 의미차 23

[표 1-4] FSP와 TDS의 목적 25

[표 1-5] 보안 구조, 구현의 표현, TSF 내부의 목적 26

[표 2-1] EVENT 44

[표 2-2] CONDITI0N 44

[표 2-3] ACTION 45

[표 3-1] read record APDU 구조 57

[표 3-2] read record TSF 세부사항 58

[표 3-3] CC v2.3과 CC v3.1에서 구현의 표현 패밀리 차이점 60

[표 3-4] CC v3.1에서 ADV_IMP.2 컴포넌트 요구사항 61

[표 3-5] 서브시스템별 모듈과 소스코드의 관계 62

[표 3-6] CC 2.3과 CC3.1에서의 ADV_INT의 차이점 67

[표 3-7] KCOS 모듈 코드의 복잡도 69

[표 3-8] KCOS 모듈의 결합도 관련 속성 73

[표 3-9] CC v2.3과 CC v3.1에서 TOE 설계 패밀리 차이점 84

[표 3-10] CC v3.1에서 ADV_TDS.5 컴포넌트 요구사항 85

[표 3-11] TOE를 구성하는 서브시스템 87

[표 3-12] TOE를 구성하는 모듈 88

[표 3-13] SS_AC 서브시스템 간 상호관계 91

[표 3-14] 모듈 IsAuthenticated와 다른 모듈의 상호관계 92

K-현금카드 내장소프트웨어 V1.0 구현의 표현 V1.0 149

[표 1] 각 모듈과 소스코드의 관계 152

K-현금카드 내장소프트웨어 V1.0 TSF 내부 패밀리 V1.0 238

[표 1] CC 권고사항(Recommendations) 243

[표 2] CC에 따라 결점이 추가될 확률 243

[표 3] Understand for C++의 메트릭 247

[표 4] KCOS 모듈 코드의 복잡도 252

[표 5] KCOS 모듈의 결합도 관련 속성 255

[표 6] KCOS 모듈내 함수의 결합도 관련 속성 256

K-현금카드 내장소프트웨어 V1.0 보안정책모델 V1.0 275

[표 1] 차폐행동 293

[표 2] 보안 기능 요구사항(SFR) vs. 보안 정책 모델 321

[표 3] TOE 보안 기능 vs. 보안 정책 모델 323

K-현금카드 내장소프트웨어 V1.0 기능명세 V1.0 336

[표 1] MF 접근조건 342

[표 2] MF 접근조건 값 343

[표 3] DF 접근조건 343

[표 4] DF 접근조건 값 344

[표 5] EF 접근조건 344

[표 6] EF 접근조건 값 345

[표 7] 데이터 객체 읽기 접근조건 345

[표 8] 데이터 객체 읽기 접근조건 값 345

[표 9] 데이터 객체 갱신 접근조건 345

[표 10] 데이터 객체 갱신 접근조건 값 346

[표 11] 위반별 차폐 행동 350

[표 12] 보안기능과 TOE 보안기능요구사항 대응 356

[표 13] 명령어 APDU 내용 359

[표 14] CLA 코딩 - 최상위 4비트 360

[표 15] CLA 코딩 - 최하위 4비트 360

[표 16] INS 코딩 361

[표 17] 응답 APDU 내용 362

[표 18] FID/FDB of Bank DF 364

[표 19] Structure of File Header 364

[표 20] get response APDU 구조 365

[표 21] get response 예외사항 및 오류 메시지 366

[표 22] get response TSF 세부사항 367

[표 23] read record APDU 구조 367

[표 24] read record의 P2 코딩 367

[표 25] read record 예외사항 및 오류 메시지 368

[표 26] read record TSF 세부사항 369

[표 27] update record APDU 구조 370

[표 28] update record의 P2 코딩 370

[표 29] update record 예외사항 및 오류 메시지 371

[표 30] update record TSF 세부사항 373

[표 31] get data APDU 구조 374

[표 32] get data의 P2 및 Le 코딩 374

[표 33] get data 예외사항 및 오류 메시지 375

[표 34] get data TSF 세부사항 376

[표 35] put data APDU 구조 376

[표 36] put data의 P2 및 Lc 코딩 377

[표 37] put data 예외사항 및 오류 메시지 377

[표 38] put data TSF 세부사항 378

[표 39] select file APDU 구조 379

[표 40] select file의 P1 코딩 379

[표 41] select file 예외사항 및 오류 메시지 380

[표 42] select file TSF 세부사항 381

[표 43] get challenge APDU 구조 382

[표 44] get challenge 예외사항 및 오류 메시지 382

[표 45] get challenge TSF 세부사항 383

[표 46] external authenticate APDU 구조 384

[표 47] external authenticate의 P2 코딩 384

[표 48] external authenticate 예외사항 및 오류 메시지 385

[표 49] external authenticate TSF 세부사항 386

[표 50] block APDU 구조 387

[표 51] block의 P1 코딩 387

[표 52] block 예외사항 및 오류 메시지 388

[표 53] block TSF 세부사항 389

[표 54] unblock APDU 구조 390

[표 55] unblock의 P1 코딩 390

[표 56] unblock 예외사항 및 오류 메시지 391

[표 57] unblock TSF 세부사항 392

[표 58] put key APDU 구조 393

[포 59] put key의 P1 코딩 393

[표 60] put key 예외사항 및 오류 메시지 394

[표 61] put key TSF 세부사항 396

[표 62] verify APDU 구조 397

[표 63] verify의 P2 코딩 397

[표 64] verify 예외사항 및 오류 메시지 398

[표 65] verify TSF 세부사항 399

[표 66] set life cycle APDU 구조 400

[표 67] set life cycle의 P2 코딩 400

[표 68] set life cycle 예외사항 및 오류 메시지 401

[표 69] set life cycle TSF 세부사항 402

[표 70] create file APDU 구조 403

[표 71] create file의 Pl 코딩 403

[표 72] create file의 P2 코딩 404

[표 73] create file의 DF 생성 조건 404

[표 74] create file의 EF 생성 조건 404

[표 75] create file의 키/PIN 파일 생성 조건 405

[표 76] create file 예외사항 및 오류 메시지 405

[표 77] create file TSF 세부사항 407

[표 78] create session APDU 구조 407

[표 79] create session의 P2 코딩 408

[표 80] create session 예외사항 및 오류 메시지 408

[표 81] create session TSF 세부사항 409

[표 82] get life cycle APDU 구조 410

[표 83] get life cycle 예외사항 및 오류 메시지 411

[표 84] get life cycle TSF 세부사항 412

[표 85] 예외사항 및 오류 메시지 416

[표 86] TSF 외부 인터페이스 및 보안기능 매핑 418

K-현금카드 내장소프트웨어 V1.0 TOE 설계 V1.0 427

[표 1] TOE를 구성하는 서브시스템 433

[표 2] TOE를 구성하는 모듈 434

[표 3] SS_AC 서브시스템 간 상호관계 437

[표 4] 모듈 IsAuthenticated와 다른 모듈의 상호관계 438

[표 5] 모듈 IsAuthenticated 인터페이스 isAuthenticated() 442

[표 6] 모듈 IsAllowed와 다른 모듈간의 상호관계 443

[표 7] 모듈 IsAllowed 인터페이스 isAllowed() 448

[표 8] 모듈 SetLifeCycle과 다른 모듈간의 상호관계 450

[표 9] 모듈 SetLifeCycle 인터페이스 proSetLifeCycle() 453

[표 10] 모듈 GetLifeCycle과 다른 모듈간의 상호관계 455

[표 11] 모듈 GetLifeCycle 인터페이스 getLifeCycle() 456

[표 12] 모듈 ResetACSts와 다른 모듈간의 상호관계 457

[표 13] 모듈 ResetACSts 인터페이스 resetGlobalACSts() 459

[표 14] 모듈 ResetACSts 인터페이스 resetLocalACSts() 460

[표 15] 모듈 ResetACSts와 다른 모듈간의 상호관계 461

[표 16] 모듈 SetACSts 인터페이스 setGlobalACSts() 464

[표 17] 모듈 SetACSts 인터페이스 setLocalACSts() 464

[표 18] SS_DM의 서브시스템 간 상호관계 466

[표 19] 모듈 FindFile과 다른 모듈간의 상호관계 468

[표 20] 모듈 FindFile 인터페이스 findFile() 471

[표 21] 모듈 FindFile 인터페이스 findRecord() 472

[표 22] 모듈 FileChecksum과 다른 모듈간의 상호관계 473

[표 23] 모듈 Filechecksum 인터페이스 verifyFile() 476

[표 24] 모듈 Filehecksum 인터페이스 generateFileChecksum() 476

[표 25] 모듈 Filechecksum 인터페이스 updateFileChecksum() 476

[표 26] 모듈 SelectFile과 다른 모듈간의 상호관계 478

[표 27] 모듈 Selectfile 인터페이스 selectFile() 482

[표 28] 모듈 CreateFile과 다른 모듈간의 상호관계 483

[표 29] 파일 생성 시 매개변수 Pl 코딩 485

[표 30] 파일 생성 시 DF 생성 조건 485

[표 31] 파일 생성 시 EF 생성조건 485

[표 32] 파일 생성 시 키/PIN 파일 생성 조건 486

[표 33] 모듈 CreateFile 인터페이스 proCreateFile() 489

[표 34] 모듈 CreateFile 인터페이스 appendFile() 489

[표 35] 모듈 UpdateRecord와 다른 모듈간의 상호관계 491

[표 36] 모듈 UpdateRecord 인터페이스 isoUpdateRecord() 495

[표 37] 모듈 ReadRecord와 다른 모듈간의 상호관계 496

[표 38] 모듈 ReadRecord 인터페이스 isoReadRecord() 500

[표 39] 모듈 UnblockFile과 다른 모듈간의 상호관계 501

[표 40] 모듈 UnblockFile 인터페이스 isoUnblockFile() 505

[표 41] 모듈 BlockFile과 다른 모듈간의 상호관계 506

[표 42] 모듈 BlockFile 인터페이스 proBlockFile() 510

[표 43] 모듈 BlockFile 인터페이스 setBlockFile() 510

[표 44] 모듈 GetData와 다른 모듈간의 상호관계 512

[표 45] 모듈 GetData 인터페이스 isoGetData() 515

[표 46] 모듈 PutData와 다른 모듈간의 상호관계 516

[표 47] 모듈 PutData 인터페이스 isoPutData() 520

[표 48] SS_AUTH의 서브시스템 간 상호관계 522

[표 49] 모듈 ExtAuth와 다른 모듈간의 상호관계 525

[표 50] 모듈 ExtAuth 인터페이스 extAuth() 530

[표 51] 모듈 CreateSession과 다른 모듈간의 상호관계 532

[표 52] 모듈 CreateSession 인터페이스 createSession() 536

[표 53] 모듈 GetChallenge와 다른 모듈간의 상호관계 537

[표 54] 모듈 GetChallenge 인터페이스 getChallenge() 540

[표 55] 모듈 Verify와 다른 모듈간의 상호관계 541

[표 56] 모듈 Verify 인터페이스 verify() 545

[표 57] 모듈 GetKey와 다른 모듈간의 상호관계 546

[표 58] 모듈 GetKey 인터페이스 getKey() 549

[표 59] 모듈 PutKey와 다른 모듈간의 상호관계 550

[표 60] 모듈 PutKey 인터페이스 putKey() 555

[표 61] 모듈 GetKey와 다른 모듈간의 상호관계 556

[표 62] 모듈 GetSessionKey 인터페이스 getSessionKey() 558

[표 63] SS_INI의 서브시스템간 상호관계 560

[표 64] SS_CMD의 서브시스템간 상호관계 562

[표 65] SS_CRYPTO의 서브시스템간 상호관계 564

[표 66] SS_DS의 서브시스템간 상호관계 565

그림 목차

(그림 1-1) 개발 클래스 문서간의 관계 28

(그림 2-1) Statechart의 Clustering 개념 41

(그림 2-2) Statecharts의 상태(states)들 42

(그림 3-1) IC 카드 메모리 파일 구조 50

(그림 3-2) 세션키 생성 과정 52

(그림 3-3) 세션 생성 과정 53

(그림 3-4) 관리자 인증 과정 54

(그림 3-5) ADV_FSP.4 이하 요구사항 55

(그림 3-6) ADV_FSP.5 요구사항 56

(그림 3-7) read record TSF 58

(그림 3-8) KCOS 모듈 구조도 69

(그림 3-9) 보안 기능 수행도 69

(그림 3-10) LOC와 CC의 관계 75

(그림 3-11) CC와 LOS 차트 (로그눈금 사용) 76

(그림 3-12) KCOS IFC의 파이 차트 77

(그림 3-13) KCOS 모듈의 FO, CBO 관계 78

(그림 3-14) K-현금카드의 서브시스템 구성도 87

(그림 3-15) 모듈 IsAuthenticated와 다른 모듈의 상호관계 93

(그림 3-16) IsAuthenticated 모듈의 준정형화 표현 94

(그림 4-1) 개발 프로세스와 모델 98

(그림 4-2) 테스팅단계에서의 모델의 활용 100

(그림 4-3) 벤딩 머신 UML 모델 101

(그림 4-4) 테스트 목적을 모델링한 상태 다이어그램 102

(그림 4-5) 모델로부터 생성된 테스트 케이스 102

(그림 4-6) 테스트 커버리지 분석 103

(그림 4-7) 모델과 소스코드의 매개변수 연결 103

(그림 4-8) 테스트의 결과 확인 104

K-현금카드 내장소프트웨어 V1.0 TSF 보안 구조 V1.0 133

(그림 1) IC 카드 메모리 파일 구조 139

(그림 2) 세션키 생성 과정 141

(그림 3) 세션 생성 과정 142

(그림 4) 관리자 인증 과정 143

K-현금카드 내장소프트웨어 V1.0 TSF 내부 패밀리 V1.0 237

(그림 1) KCOS 모듈 구조도 250

(그림 2) 서브시스템내의 보안 기능 수행도 251

(그림 3) LOC와 CC의 관계 257

(그림 4) CC와 LOS 차트 258

(그림 5) CC와 LOS 차트 (로그눈금 사용) 259

(그림 6) KCOS IFC의 파이 차트 261

(그림 7) KCOS 모듈의 FO, CBO 관계 262

(그림 8) M_AUTH에 대한 NOC, CBO 263

(그림 9) M_BKP에 대한 NOC, CBO 263

(그림 10) M_CMD에 대한 NOC, CBO 비교 263

(그림 11) M_CRYPTO에 대한 NOC, CBO 비교 264

(그림 12) M_FDOM에 대한 NOC, CBO 비교 264

(그림 13) M_INI에 대한 NOC, CBO 비교 264

(그림 14) M_INT에 대한 NOC, CBO 비교 265

(그림 15) M_LOAD에 대한 NOC, CBO 비교 265

(그림 16) M_SAM에 대한 NOC, CBO 비교 265

(그림 17) M_SDM에 대한 NOC, CBO 비교 266

K-현금카드 내장소프트웨어 V1.0 기능명세 V1.0 334

(그림 1) TOE 운영모드 358

(그림 2) 명령어 APDU 구조 359

(그림 3) 응답 APDU 구조 361

(그림 4) Answer To Reset 단계 362

(그림 5) 파일 구조 364

(그림 6) get response TSF 366

(그림 7) read record TSF 369

(그림 8) update record TSF 372

(그림 9) get data TSF 375

(그림 10) put data TSF 378

(그림 11) select file TSF 381

(그림 12) get challenge TSF 383

(그림 13) external authenticate TSF 386

(그림 14) block TSF 389

(그림 15) unblock TSF 392

(그림 16) put key TSF 395

(그림 17) verify TSF 399

(그림 18) set life cycle TSF 402

(그림 19) create file TSF 406

(그림 20) create session TSF 409

(그림 21) get life cycle TSF 411

(그림 22) 전력 및 클럭의 이상검출 영역 412

(그림 23) 보안통제 레지스터(SECCON) 413

K-현금카드 내장소프트웨어 V1.0 TOE 설계 V1.0 425

(그림 1) K-현금카드의 서브시스템 구성도 432

(그림 2) 서브시스템 상호관계의 준정형화 표현 433

(그림 3) 모듈 IsAuthenticated와 다른 모듈의 상호관계 439

(그림 4) IsAuthenticated 모듈의 statechart를 이용한 준정형화 표현 441

(그림 5) 모듈 IsAllowed와 다른 모듈간의 상호관계 444

(그림 6) IsAllowed 모듈의 statechart를 이용한 준정형화 표현 447

(그림 7) 모듈 SetLifeCycle과 다른 모듈간의 상호관계 451

(그림 8) SetLifeCycle 모듈의 statechart를 이용한 준정형화 표현 453

(그림 9) 모듈 GetLifeCycle과 다른 모듈간의 상호관계 455

(그림 10) GetLifeCycle 모듈의 statechart를 이용한 준정형화 표현 456

(그림 11) 모듈 ResetACSts와 다른 모듈간의 상호관계 458

(그림 12) ResetACSts 모듈의 statechart를 이용한 준정형화 표현 459

(그림 13) 모듈 ResetACSts와 다른 모듈간의 상호관계 461

(그림 14) SetACSts 모듈의 statechart를 이용한 준정형화 표현 463

(그림 15) 모듈 FindFile과 다른 모듈간의 상호관계 469

(그림 16) FindFile 모듈의 statechart를 이용한 준정형화 표현 471

(그림 17) 모듈 FileChecksum과 다른 모듈간의 상호관계 474

(그림 18) FileChecksum 모듈의 statechart를 이용한 준정형화 표현 475

(그림 19) 모듈 SelectFile과 다른 모듈간의 상호관계 478

(그림 20) SelectFile 모듈의 statechart를 이용한 준정형화 표현 481

(그림 21) 모듈 CreateFile과 다른 모듈간의 상호관계 484

(그림 22) CreateFile 모듈의 statechart를 이용한 준정형화 표현 488

(그림 23) 모듈 UpdateRecord와 다른 모듈간의 상호관계 492

(그림 24) UpdateRecord 모듈의 statechart를 이용한 준정형화 표현 494

(그림 25) 모듈 ReadRecord와 다른 모듈간의 상호관계 497

(그림 26) ReadRecord 모듈의 statechart를 이용한 준정형화 표현 499

(그림 27) 모듈 UnblockFile과 다른 모듈간의 상호관계 502

(그림 28) UnblockFile 모듈의 statechart를 이용한 준정형화 표현 504

(그림 29) 모듈 BlockFile과 다른 모듈간의 상호관계 507

(그림 30) BlockFile 모듈의 statechart를 이용한 준정형화 표현 509

(그림 31) 모듈 GetData와 다른 모듈간의 상호관계 512

(그림 32) GetData 모듈의 statechart를 이용한 준정형화 표현 514

(그림 33) 모듈 PutData와 다른 모듈간의 상호관계 517

(그림 34) PutData 모듈의 statechart를 이용한 준정형화 표현 519

(그림 35) 모듈 ExtAuth와 다른 모듈간의 상호관계 526

(그림 36) ExtAuth 모듈의 statechart를 이용한 준정형화 표현 529

(그림 37) 모듈 CreateSession과 다른 모듈간의 상호관계 533

(그림 38) CreateSession 모듈의 statechart를 이용한 준정형화 표현 535

(그림 39) 모듈 GetChallenge와 다른 모듈간의 상호관계 538

(그림 40) GetChallenge 모듈의 statechart를 이용한 준정형화된 표현 539

(그림 41) 모듈 Verify와 다른 모듈간의 상호관계 542

(그림 42) Verify 모듈의 statechart를 이용한 준정형화 표현 544

(그림 43) 모듈 GetKey와 다른 모듈간의 상호관계 546

(그림 44) GetKey 모듈의 statechart를 이용한 준정형화 표현 548

(그림 45) 모듈 PutKey와 다른 모듈간의 상호관계 551

(그림 46) PutKey 모듈의 statechart를 이용한 준정형화 표현 554

(그림 47) 모듈 GetKey와 다른 모듈간의 상호관계 556

(그림 48) GetSessionKey 모듈의 statechart를 이용한 준정형화 표현 557

초록보기

1. 제목

스마트카드 운영체제에 대한 EAL6 수준의 개발문서 평가제출물 개발

2. 연구개발의 목적 및 중요성

현재까지 국제적으로 EAL5 이상의 고등급을 획득한 제품은 40여개 정도가 된다. 국가별로 보면, 독일이 60%, 미국이 15% 정도를 차지하고 있다.

그러나 국내에는 EAL5 이상의 고등급을 획득한 사례가 한 건도 없다. 이는 국내 개발 산업의 정형기법에 대한 인식과, 개발과정에서 정형기법을 사용하는 능력이 외국에 비해 많이 뒤떨어져있는 상황에 기인한다. 본 과제에서는 KCOS라는 스마트카드 운영체제에 대한 EAL6 수준의 개발문서 평가제출물을 개발한다. 이 과제는 다음과 같은 이유에서 매우 필요하다.

o (준)정형기법의 인식과 활용능력이 부족한 현재의 국내 현실에서, (준)정형기법을 사용하여 EAL6 수준의 개발문서 평가제출물 개발사례를 확보가 중요

o 개발된 평가제출물은 국내 고등급 평가능력 함양을 위한 모의평가에 사용할 수 있음

o 스마트카드 운영체제에 대한 고등급 평가제출물을 확보하여, 증가하는 내장형 시스템의 평가 수요에 대처할 평가능력을 국내에 갖추게 됨

o 국내에 고등급 평가능력을 갖추게 되면, 국산보안제품을 국제 평가 기관을 통해 평가 받을 때 발생하는 고비용이 절감됨

o 국내 우수 기술이 국외로 유출 될 수 있는 가능성이 차단됨

o 국산 스마트카드 운영체제인 KCOS가 EAL6의 고등급을 획득하게 되면 국산 보안제품이 국제 시장에서 매우 큰 경쟁력을 가지게 됨

또한 본 과제에서는 고등급 개발문서 평가제출물 개발과 함께 준정형명세와 정형도구을 기반으로 하는 테스팅 방법론을 제안한다. 이것은 EAL6의 ATE 클래스에 해당하는 '시험문서' 작성을 위한 기반 연구가 된다.

3. 연구개발의 내용 및 범위

본 과제는 다음과 같은 세부 연구내용을 중심으로 진행된다.

o 스마트카드 운영체제(KCOS)에 대한 EAL6 수준의 개발문서 평가제출물 개발

o 제품의 고 신뢰도 평가를 위한 정형도구를 사용한 테스트 방법론 제안

4. 연구결과

본 연구에서는 K현금차드 내장형소프트웨어를 대상으로 CC v3.1의 ADV 클래스의 ARC, FSP, IMP, INT, SPM, TDS를 작성하였다. EAL6 수준의 개발문서를 작성하기 위해 정형기법으로는 Z를 사용했고, 준정형기법으로는 Statecharts와 Call Graph를 이용하였다. TSF내부의 구조적 정보와 복잡성 메트릭을 추출하기 위해 SourceMonitor Version 2.5, Understand for C++ Version 1.4, Boland Together, SD메트릭의 도구를 사용하였다. 이러한 도구를 통해 KCOS를 분석한 결과, 재구조가 필요한 모듈들을 발견할 수 있었다.

또한 본 연구에서는 모델을 기반한 테스트 방법론을 조사하였는데, 이 과제에서 TDS를 명세한 언어인 Statecharts을 대상으로 하였다. 본 연구에서는 Statecharts 모델을 이용한 테스트 프레임워크와 모델 활용 방안을 제시하였다.

5. 활용에 대한 건의

본 연구 결과인 고등급 평가제출물은 국내 고등급 평가능력을 갖추기 위한 기초자료로 활용될 수 있으며, 구체적으로 모의 평가·인증, 또는 교육 자료로 사용될 수 있다.

6. 기대효과

본 연구의 결과는 다음과 같은 기대효과를 갖는다.

o 정형기법의 효과성을 이해하고 국내에 인식을 확산

o 고등급 평가제출물은 국내 고등급 평가능력을 갖추기 위한 기초자료로 활용

o 연구 결과를 논문으로 작성함으로써 학문적인 기여

o KCOS가 EAL6 고등급을 획득하는데 사용될 수 있음

본 연구에서는 계획단계에서 정형 명세 언어를 이용하여 시스템의 요구 사항을 명확히 추출하고, 지원도구를 이용하여 작성된 명세의 정확성을 검사한 후, 검증된 명세로부터 테스트 케이스를 생성함으로써 체계적이고 논리적으로 증명이 된 보안 기능 시스템을 구현하게 될 것이다.

본 연구를 통해 고등급인 EAL6 수준의 개발문서 평가제출물을 개발하여 시스템 개발업체 및 평가·인증기관에 고 보증등급의 획득 및 평가·인증을 위한 기초 자료로 활용이 됨으로써, 정형화 문서의 작성 경험을 축적하는데 도움이 될 수 있을 것이다.

본 과제를 통하여 나온 결과를 각종 학술 대회 및 논문지에 발표함으로써 국내의 연구진에 도움이 되며 정형기법의 필요성을 기업 및 사용자들에게 인식시켜 전사회적인 정형기법 효과성의 공감대를 형성시킬 수 있을 것이다.

본 과제를 통하여 나온 결과를 이용하여 국산 보안 제품이 고등급을 획득하는 방안을 제시함으로써 국산 보안 제품이 국제 시장에서 매우 큰 경쟁력을 가질수 있을 것이다.

이용현황보기

스마트카드 운영체제에 대한 EAL6 수준의 개발문서 평가제출물 개발 이용현황 표 - 등록번호, 청구기호, 권별정보, 자료실, 이용여부로 구성 되어있습니다.
등록번호 청구기호 권별정보 자료실 이용여부
T000028672 전자형태로만 열람가능함 이용불가