제 7 장: 부채널 저항

TLS Lite — WIA-TLS-LITE · 저자: 연삼흠 박사

7.1 서론 — 부채널 위협 모델의 자리

TLS Lite는 제약 환경에서 동작하는 경량 보안 채널 표준이다. 본 표준의 봉투 형식과 핸드셰이크가 아무리 수학적으로 견고하더라도, 그 견고함은 「추상 알고리즘이 실행되는 물리적 매체」를 통과하면서 누설될 수 있다. 누설은 전력 소비, 전자기 방사, 연산 시간, 캐시 점유, 결함 주입에 의한 분기 변동, 그리고 음향 진동 같은 「부채널」을 통해 흘러나간다. 본 장은 RFC 8446 §9.4가 권고하는 「상수 시간 구현」을 토대로, ISO/IEC 17825:2024와 NIST SP 800-140F가 정의하는 시험 절차에 맞춰 TLS Lite 호스트가 비침입형 부채널 공격에 견디는 방법을 다룬다.

부채널 위협 모델은 전통적인 능동/수동 공격자 모델과 다르다. Dolev-Yao 적은 네트워크 메시지의 무결성·기밀성을 깨려 시도하지만, 부채널 적은 메시지가 「만들어지는 동안」 회로가 발생시키는 부산물을 측정한다. 1996년 Paul Kocher가 발표한 타이밍 공격 논문(Crypto '96)은 모듈로 지수승의 분기에 따라 RSA 비밀 지수가 통계적으로 누설된다는 사실을 보였다. 1999년 Kocher·Jaffe·Jun이 발표한 차분 전력 분석(DPA)은 단일 키를 통째로 복구하는 데 약 1,000개 트레이스로 충분하다는 점을 실증했다. 이후 30년간 부채널 연구는 학회(CHES, COSADE)와 인증 체계(Common Criteria EAL 4+, FIPS 140-3) 양쪽을 동시에 견인해 왔다.

TLS Lite가 다루는 부채널의 범위는 다음과 같다. 첫째, 「시간」 — 패스워드 비교나 MAC 검증의 조기 반환(early-exit)으로 인한 누설. 둘째, 「전력」 — 비밀 의존 연산이 회로의 동적 전력 소비를 통해 그래프 위에 진폭으로 나타나는 누설. 셋째, 「전자기」 — 칩 표면에서 방사되는 EM 필드를 H 필드 프로브로 측정하여 키 비트를 복구하는 경로. 넷째, 「캐시」 — 공유 캐시 라인 점유 시간으로 키 의존 분기를 추정하는 Flush+Reload, Prime+Probe, Spectre/Meltdown 잔향 등의 마이크로아키텍처 채널. 다섯째, 「결함」 — 클럭 글리치, 전압 글리치, 레이저 펄스로 분기를 강제 변경시키는 차분 결함 분석(DFA). 본 표준은 다섯 채널 모두에 대한 최소 방어 수준을 SHOULD/SHALL 수준으로 분류한다.

부채널 저항의 평가는 단순히 「우리 구현은 상수 시간이다」라는 자기 선언으로는 충분하지 않다. 평가자는 ISO/IEC 17825:2024의 비침입형 시험을 통해 TVLA(Test Vector Leakage Assessment)의 Welch's t-test 임계값 |t| ≤ 4.5를 만족하는지 확인하고, 마스킹 차수가 주장 보안 수준을 실제로 달성하는지 ISO/IEC 20085-1과 20085-2의 시험 도구 교정 절차에 따라 검증한다. 본 장은 그 평가 절차에 호스트 측이 어떻게 응답해야 하는지를 한 단계씩 설명한다.

TLS Lite의 부채널 위협 모델이 다른 경량 보안 채널 표준(DTLS 1.3, OSCORE 등)과 구분되는 지점은 「양산 IoT 환경의 비침입형 공격을 기본 위협으로 가정하면서도, 마스킹·셔플링의 성능 오버헤드 상한을 명시적으로 정의한다」는 점이다. 본 표준의 호스트는 1차 마스킹과 셔플링의 조합 사용을 SHOULD 수준으로 권고받으며, 그 조합에 따른 면적 오버헤드 +150~250%와 지연 오버헤드 +200~400%를 양산 라인의 비용 산정에 반영해야 한다. 운영자가 이 상한을 초과하는 환경(예: 결제 단말, 전자여권)에 진입할 때는 2차 마스킹 또는 고차 마스킹으로 등급을 상향하고, 평가 등급도 ISO/IEC 17825 Class C로 상향해야 한다.

본 장의 구성은 다음과 같다. §7.2는 부채널 공격을 침입형·반침입형·비침입형의 세 범주로 분류하고 다섯 비침입형 공격(SPA, DPA, CPA, EM, FI)의 장비 비용과 평균 측정 시간을 비교한다. §7.3은 상수 시간 구현 원칙과 두 의사 코드(ct_memcmp, ct_select)를 제시한다. §7.4는 마스킹의 차수별 보안·성능 트레이드오프를 분석하고 1차 부울 마스킹 AES S-box 의사 코드를 제시한다. §7.5는 ISO/IEC 17825 평가 등급(Class A/B/C)과 TVLA 합격 임계값(μ ± 4.5σ)을 명시한다. §7.6은 결함 주입·음향·캐시 부채널의 대응책을 정리한다. §7.7은 Common Criteria EAL 4+ 인증과 TVLA 합격 사례를 다루고, 한국 부채널 저항·CC 평가 인프라 12종을 정합한다. 마지막으로 미주는 17종 1차 출처를 GitHub 적합성 슈트 링크와 함께 포함한다.

본 표준이 부채널 저항에 부여하는 우선순위는 RFC 8446 §9.4가 권고하는 「구현 노트」 수준을 넘어선다. RFC 8446은 TLS 1.3 프로토콜 자체의 정합성을 우선하고, 부채널은 호스트 구현자의 재량에 위임한다. 본 표준은 그 위임된 영역에 SHALL/SHOULD 수준의 명시적 요구사항을 더해 양산 호스트가 ISO/IEC 17825 Class A/B/C 등급 중 어느 하나를 분명히 선언하도록 강제한다. 이는 호스트 운영자가 인증 비용을 미리 산정할 수 있게 하고, 평가 기관이 호스트마다 즉흥적 시험 계획을 세우지 않도록 절차를 표준화하는 효과가 있다.

부채널 위협의 「상대적 비용」도 본 장이 다루는 중요한 차원이다. 비밀 키 한 비트의 경제적 가치를 USD로 환산했을 때, 공격자가 그 한 비트를 회수하기 위해 지불해야 하는 측정 비용·장비 감가상각·인건비의 총합이 비밀의 가치를 초과하면 공격은 비합리적이다. 본 표준은 「양산 IoT 호스트의 통상 비밀 가치」를 USD 0.10~1.00 수준으로 가정하고, 그에 상응하는 방어 비용 상한을 호스트당 USD 0.20~2.00로 권고한다. 이 비용 모델은 부채널 방어가 「수학적 무한 강도」가 아니라 「경제적 합리성의 균형」임을 명시한다.

7.2 부채널 공격 유형 분류와 비용

부채널 공격은 「표적 디바이스에 어떤 정도까지 접촉이 허용되는가」에 따라 침입형(invasive), 반침입형(semi-invasive), 비침입형(non-invasive)으로 나뉜다. ISO/IEC 17825:2024는 이 세 범주를 표준 시험 구조로 흡수하면서, 인증 평가자가 표적 디바이스 패키지를 어디까지 가공할 수 있는지를 명시한다. 표 7-1은 세 범주의 정의·도구·평균 평가 기간을 한눈에 보여준다.

표 7-1. 부채널 공격 유형 분류 (ISO/IEC 17825:2024 기준)
범주패키지 접촉 정도대표 공격대표 도구평가 기간
침입형 (Invasive)다이 디캡슐레이션·마이크로프로빙버스 프로빙, 광학적 메모리 판독FIB(Focused Ion Beam), 광학 현미경4~12주
반침입형 (Semi-invasive)다이 노출, 본딩 와이어 유지레이저 결함 주입, EM 근접 측정레이저 펄스 스테이션, EM 프로브2~6주
비침입형 (Non-invasive)패키지 그대로SPA, DPA, CPA, 타이밍, 음향오실로스코프, 차폐 챔버, 분석 PC1~3주

비침입형 평가는 비용이 가장 낮기 때문에 양산 디바이스에 대한 일반화된 위협으로 간주된다. 본 표준은 비침입형 위협에 대한 방어를 SHALL 수준으로, 반침입형은 SHOULD, 침입형은 인증 등급(EAL 4+ 이상)에서 추가 검토하는 권고로 분류한다. 표 7-2는 다섯 비침입형 공격의 장비 비용과 평균 측정 시간을 비교한다.

표 7-2. SPA·DPA·CPA·EM·FI 공격 비용 비교
공격필요 트레이스장비 비용 (USD)평균 측정 시간대표 표적
SPA (단순 전력 분석)1~10$2,000~$8,0001~4시간RSA 모듈로 지수승, ECDSA 분기
DPA (차분 전력 분석)1,000~10,000$5,000~$25,0004~24시간AES S-box, DES
CPA (상관 전력 분석)500~5,000$5,000~$25,0002~12시간AES, 마스킹 차수 검증
EM (전자기 분석)2,000~20,000$15,000~$60,0008~48시간스마트카드, IoT MCU
FI (결함 주입)회당 1$8,000~$40,000분기당 수 분부트로더, 분기 명령

표 7-2에서 한 가지 주의할 점은 「장비 비용」이 시간이 지남에 따라 가파르게 하락한다는 사실이다. ChipWhisperer 같은 오픈 하드웨어 플랫폼은 단돈 $300에 DPA 실험을 가능하게 만들었고, 그에 따라 IoT 디바이스 양산 라인의 부채널 방어 기준선은 「최소 1차 마스킹 + 셔플링 + 상수 시간」으로 상향되어 왔다. CHES 2018에서 발표된 분석에 따르면, 상수 시간만으로는 DPA를 막을 수 없으며 마스킹과 셔플링의 조합이 통계적 누설을 의미 있게 억제한다.

「필요 트레이스 수」 컬럼은 양산 라인의 측정 환경(샘플링 레이트, 노이즈 수준, 트리거 정밀도)에 따라 한두 자릿수 범위에서 변동한다. CRI(Cryptography Research Inc.)의 화이트 페이퍼는 「DPA의 통계적 신뢰도」가 트레이스 수의 제곱근에 비례한다고 명시한다. 따라서 1,000 트레이스로 도출된 t-통계량이 임계값을 1.5배 초과할 경우, 10,000 트레이스로 확장하면 같은 t-통계량이 4.7배 초과로 증폭될 수 있다. 본 표준은 이러한 트레이스 수 스케일링을 평가 절차에 명시적으로 반영해, 평가자가 Class A에서 |t| ≤ 4.5를 통과한 호스트가 Class B로 상향될 때 Class B의 10만 트레이스 임계를 다시 통과해야 함을 분명히 한다.

부채널 공격의 「표적 선택」도 본 표준이 다루는 영역이다. 공격자는 키 스케줄, 첫 라운드 S-box, 마지막 라운드 S-box, MAC 검증, 패딩 비교 중 어느 지점이 가장 약한 고리인지 사전 탐색한다. 본 표준의 conformance 슈트는 평가자가 다섯 표적 모두에 TVLA를 적용해 어느 하나라도 임계 초과가 발견되면 합격을 미루도록 요구한다. 이는 평가 절차의 통일성을 보장하면서, 호스트 구현자가 「임의 한 표적만 잘 방어하고 나머지는 무시」하는 패턴을 차단한다. 운영자 입장에서는 평가 시작 전 다섯 표적 모두의 마스킹 차수와 셔플링 적용 범위를 자체 점검표로 정리해 두는 것이 비용 절감 경로다.

표 7-2의 EM 공격은 다른 비침입형 공격과 비교해 장비 비용이 가장 높지만, 패키지 가공이 전혀 필요 없기 때문에 침입형보다 평가 기간이 짧다. EM 분석의 핵심 도구는 H-필드 프로브(직경 0.5~5 mm)와 저잡음 증폭기(LNA), 그리고 RF 차폐 챔버다. BSI(독일 정보보안청) AIS-46 가이드는 EM 분석의 측정 거리·각도·주파수 범위를 표준화해, 같은 칩이 같은 결과를 내도록 한다. 본 표준은 호스트의 EM 차폐 설계를 위해 패키지 캡 위에 미세 패라데이 격자(Faraday mesh) 적용을 SHOULD 수준으로 권고한다.

7.3 상수 시간 구현 원칙

상수 시간 구현이란 「비밀 데이터에 의존하는 어떠한 분기·메모리 접근·연산 지연도 발생시키지 않는」 코드를 말한다. 가장 흔한 위반 사례는 두 비트열을 비교할 때 첫 불일치 바이트에서 조기 반환하는 strcmp/memcmp 패턴이다. 이 패턴은 평균 비교 시간이 일치 접두사 길이에 비례하여 증가하므로 타이밍 누설을 만든다. 본 표준의 인증 토큰 검증, MAC 검증, 패스워드 비교는 모두 SHALL 수준으로 상수 시간 비교 함수를 사용해야 한다. 아래는 권고 의사 코드이다.

// 상수 시간 바이트 비교 — 두 길이가 같다는 전제
// 반환: 모든 바이트가 같으면 0, 다르면 비-0
int ct_memcmp(const uint8_t *a, const uint8_t *b, size_t n) {
    uint8_t diff = 0;
    for (size_t i = 0; i < n; i++) {
        diff |= a[i] ^ b[i];   // 비밀 의존 분기 없음
    }
    // diff가 0이면 0 반환, 아니면 1 반환 (분기 없이)
    return (diff | -diff) >> 7;
}

// 상수 시간 조건부 선택 — if 분기 회피
uint32_t ct_select(uint32_t mask, uint32_t a, uint32_t b) {
    // mask는 0 또는 0xFFFFFFFF만 가질 것
    return (mask & a) | (~mask & b);
}

표 7-3은 가변 시간 코드와 상수 시간 코드의 대표적 차이를 정리한다. T-table AES 구현이 캐시 부채널에 취약한 이유는 키 의존 인덱스로 S-box 룩업 테이블을 접근하기 때문이며, 이 때문에 본 표준은 AES 구현에 대해 비트슬라이싱 또는 AES-NI/ARMv8 Crypto Extension의 하드웨어 명령 사용을 SHOULD 수준으로 권고한다.

표 7-3. 상수 시간 vs 가변 시간 코드 비교
연산가변 시간 패턴상수 시간 대체표준 권고
바이트 비교strcmp / memcmp 조기 반환OR 누적 XORSHALL
AES S-boxT-table 메모리 룩업비트슬라이싱 또는 AES-NISHOULD
RSA 모듈로 지수승Square-and-multiply (분기)Montgomery ladderSHALL
ECDSA 스칼라 곱Double-and-add (분기)Montgomery ladder, X25519SHALL
해시 패딩 비교memcmp 조기 반환ct_memcmpSHALL

상수 시간 구현의 가장 미묘한 함정은 「컴파일러 최적화에 의한 분기 재도입」이다. GCC -O2 또는 Clang -O3 옵션은 OR-누적 XOR 패턴을 인식해 일부 비트가 일찍 결정되면 조기 반환하는 분기로 자동 재작성하는 경우가 있다. 본 표준은 SHALL 수준으로 ct_memcmp 함수에 컴파일러 최적화 방지 속성(GCC의 `__attribute__((optimize("O0")))` 또는 명시적 `volatile` 키워드)을 적용하도록 요구한다. 또한 OpenSSL·BoringSSL·libsodium의 CRYPTO_memcmp 패밀리 사용을 SHOULD 수준으로 권고한다. 이 라이브러리들은 컴파일러 최적화 회피 코드가 이미 통합되어 있어 회귀 위험이 낮다.

비트슬라이싱(bitslicing) AES는 「8비트 바이트의 S-box 룩업을 32개 비트 평면의 논리 게이트 연산으로 대체」하는 기법이다. 메모리 룩업이 없으므로 캐시 부채널과 키 의존 메모리 접근 모두를 구조적으로 제거한다. Käsper와 Schwabe의 2009년 CHES 논문은 비트슬라이싱 AES-CTR이 Intel Core 2에서 7.59 cycles/byte로 동작함을 보여, T-table AES(약 10~12 cycles/byte)와 비교해 성능 손실이 미미함을 입증했다. 본 표준의 호스트가 AES-NI를 지원하지 않는 ARMv7-M Cortex-M4급 MCU에서 동작할 때, 비트슬라이싱 AES는 최선의 상수 시간 대안이다.

RFC 7748은 X25519 곡선을 「설계 자체가 상수 시간」으로 명시한다. Montgomery ladder는 비밀 비트 값에 무관하게 매 비트마다 한 번의 점 두 배(double)와 한 번의 점 덧셈(add)을 수행한다. RFC 8032의 Ed25519 서명은 결정론적 nonce를 사용하므로 RSA가 겪는 nonce 누설 위험을 구조적으로 회피한다. 본 표준의 TLS Lite 핸드셰이크는 키 합의 알고리즘으로 X25519를, 서명 알고리즘으로 Ed25519를 각각 기본 알고리즘으로 채택한다. AEAD에서는 TLS_AES_128_GCM_SHA256과 TLS_CHACHA20_POLY1305_SHA256을 기본, TLS_AES_256_GCM_SHA384을 권고 사이퍼 슈트로 채택하며, 모두 RFC 8446의 §B.4 권고 명단에 속한다.

7.4 마스킹 (Masking)

마스킹은 「비밀 값을 무작위 마스크와 분할하여 어느 한 부분 단독으로는 비밀을 드러내지 않게 하는」 기법이다. 1차 마스킹은 비밀 s를 s = s₁ ⊕ s₂로 나누어 두 부분이 독립된 회로 경로를 통해 처리되도록 한다. 차분 전력 분석은 비밀 의존 중간값과 전력 트레이스의 상관관계를 노리는데, 비밀이 두 임의 부분으로 흩어져 있으면 한 부분만 관측해서는 비밀을 복구하지 못한다. d차 마스킹은 d+1개의 부분으로 비밀을 나눠 d차 DPA를 막는다.

// 1차 부울 마스킹의 AES S-box — 의사 코드
// 입력: 마스킹된 바이트 (x_m1, x_m2), 단 x = x_m1 XOR x_m2
// 출력: 마스킹된 S-box 출력 (y_m1, y_m2), 단 y = S(x) = y_m1 XOR y_m2
void masked_sbox(uint8_t x_m1, uint8_t x_m2, uint8_t *y_m1, uint8_t *y_m2) {
    uint8_t fresh_mask = random_byte();   // 매 호출 새 마스크 (TRNG)
    *y_m2 = fresh_mask;
    // 미리 계산된 마스킹된 S-box 테이블 (x_m2, fresh_mask 인덱스)
    *y_m1 = masked_sbox_table[x_m1][x_m2][fresh_mask];
    // 이제 (*y_m1) XOR (*y_m2) == S(x_m1 XOR x_m2)
}

마스킹의 비용은 차수가 높아질수록 가파르게 증가한다. 표 7-4는 차수별 보안 강도와 성능 오버헤드를 정리한다. 학회 CHES에서 발표된 다수의 논문은 1차 마스킹만으로는 2차 DPA를 막지 못한다는 점을 명확히 했으며, 따라서 EAL 5+ 등급 평가에서는 통상 2차 마스킹과 셔플링의 조합을 요구한다.

표 7-4. 마스킹 차수별 보안 강도 vs 성능 오버헤드
차수방어 가능 DPA 차수면적 오버헤드지연 오버헤드권고 사용 등급
0 (마스킹 없음)없음0%0%일반 데스크톱 호스트
1차1차 DPA+150~250%+200~400%일반 IoT 디바이스
2차2차 DPA+400~700%+500~900%EAL 4+ 스마트카드
고차 (d ≥ 3)d차 DPA+1,000~2,500%+1,500~3,000%EAL 5+ 금융·여권

마스킹 외에 「셔플링(Shuffling)」은 비밀 의존 연산의 순서를 매 호출마다 무작위로 섞는 기법이다. AES의 16개 S-box 호출을 매번 다른 순서로 실행하면, DPA가 같은 시각 점에 같은 비밀 비트가 등장한다는 가정에 의존하지 못하게 된다. 본 표준은 마스킹과 셔플링의 조합 사용을 SHOULD 수준으로 권고하며, 두 기법은 직교(orthogonal)하므로 함께 적용해도 보안이 가산적으로 누적된다.

마스킹의 안전성은 「프레시 마스크(fresh mask)의 진정한 무작위성」에 결정적으로 의존한다. 의사 난수 발생기(PRNG)가 결정론적 시드에서 마스크를 생성하면, 공격자가 시드를 추측해 마스크를 역산하는 「마스크 회수 공격」이 성립한다. 본 표준은 SHALL 수준으로 마스킹용 난수 공급원을 TRNG(True Random Number Generator) 또는 NIST SP 800-90B에 따라 검증된 엔트로피 원천에서 가져오도록 요구한다. ARM TrustZone-M이나 Intel SGX 같은 신뢰 실행 환경(TEE)이 가용한 경우, TRNG 콜은 TEE 내부에서 수행되어 비-신뢰 영역으로 마스크가 노출되지 않도록 한다.

고차 마스킹의 구현 난이도는 차수의 제곱에 비례한다. d차 마스킹의 안전한 합성을 위해 Ishai-Sahai-Wagner(ISW) 정리에 따른 그래프 변환이 필요하며, 변환 후 회로는 (d+1)² 곱셈 게이트를 사용한다. CHES 2010에서 Rivain과 Prouff가 발표한 「Probing-Secure Masking」 프레임워크는 ISW를 AES에 적용한 결과 2차 마스킹의 실측 오버헤드가 +500%, 3차 마스킹은 +1,200%에 달함을 보였다. 본 표준의 권고는 양산 IoT 호스트에 대해 1차 마스킹을 기본으로, 결제 단말이나 전자여권에 대해서만 2차 이상을 권장하는 이유다.

7.5 ISO/IEC 17825:2024 평가 등급

ISO/IEC 17825:2024는 NIST FIPS 140-3의 §4.10이 요구하는 비침입형 부채널 시험을 구체화한 국제 표준이다. 평가자는 표적 디바이스에서 다수의 전력 트레이스를 수집하고, TVLA의 Welch's t-test를 적용해 비밀 의존 누설이 있는지 통계적으로 검사한다. 표 7-5는 이 표준이 정의하는 평가 등급을 보여준다.

표 7-5. ISO/IEC 17825:2024 평가 등급
등급최소 트레이스 수임계값 (|t|)대상 보안 수준예시 적용
Class A10,000≤ 4.5저위협 환경 (가전 IoT)스마트 전구, 센서 노드
Class B100,000≤ 4.5중위협 환경 (산업 IoT)스마트미터, 의료기기
Class C1,000,000≤ 4.5고위협 환경 (금융·정부)전자여권, 결제 단말

표 7-5의 임계값 |t| ≤ 4.5는 CRI(Cryptography Research Inc.)가 제안한 TVLA의 보수적 임계로, 표준정규분포 가정 하에 1억 회 시험에서 약 한 번의 위양성만 허용한다. TVLA는 두 트레이스 세트(고정 평문 vs 무작위 평문)의 평균 차이를 표준편차로 나눠 t-통계량을 계산한다. 표 7-6은 TVLA 합격/불합격 판정 임계값을 시점별로 분해한다.

표 7-6. TVLA 합격 임계값 (CRI Welch's t-test)
시점합격 조건의미대응 조치
전체 트레이스 (avg)μ ± 4.5σ 이내평균 누설 없음없음
S-box 1라운드|t| ≤ 4.51라운드 누설 없음마스킹 차수 검토
S-box 10라운드|t| ≤ 4.5최종 라운드 누설 없음셔플링 도입
키 스케줄|t| ≤ 4.5키 확장 누설 없음키 확장 마스킹
I/O 경계|t| ≤ 4.5입출력 시점 누설 없음버스 마스킹
전력 정점 인덱스|t| ≤ 4.5고유 진폭 누설 없음전력 평탄화

한 보안 평가 엔지니어는 산업 IoT 게이트웨이의 ISO/IEC 17825 Class B 평가에서 「I/O 경계」 시점에서 |t| = 7.2의 임계 초과를 발견했다. 분석 결과는 버스 인터페이스의 직접 메모리 접근(DMA)이 키 확장 중간값을 평문으로 전송하고 있었다는 점이었다. 이 사례는 마스킹과 셔플링이 핵심 연산에만 적용되어 있었어도 데이터 경로 어디 한 곳에서 평문이 노출되면 통계적 누설이 회복된다는 점을 보여 준다. 정정 후 |t|는 2.1로 떨어졌고 Class B 평가를 합격했다.

TVLA의 「고정 vs 무작위(fixed-vs-random)」 시험은 가장 흔히 쓰이는 변종이지만, 「반-고정(semi-fixed)」 시험도 함께 권고된다. 반-고정 시험은 입력의 절반은 고정, 나머지 절반은 무작위로 두어 키 의존 누설 외의 입력 의존 누설을 분리한다. 본 표준은 평가자에게 두 변종을 동시에 적용하도록 SHOULD 수준으로 권고하며, 두 결과가 한 표적에서 동시에 임계를 초과하면 「키 의존 + 입력 의존 누설 결합」으로 판정한다. 이 결합 판정은 마스킹 차수 상향이 아니라 「입력 전처리 단계 마스킹」을 요구한다는 점에서 진단·정정이 다르다.

평가 기관마다 TVLA 측정의 「전처리(pre-processing)」 절차가 미세하게 다른 점도 본 표준이 다루는 영역이다. 트레이스 정렬(alignment), 노이즈 제거 필터(저역통과·고역통과), 푸리에 변환 변환·역변환, 주성분 분석(PCA) 차원 축소 등이 전처리에 포함된다. 본 표준은 평가 보고서에 사용된 전처리 절차를 「Pre-processing chain v1.0」 형식의 식별자로 명시 기록하도록 SHALL 수준으로 요구한다. 이를 통해 평가 보고서의 재현 가능성이 보장된다.

7.6 결함 주입(FI) 대응과 음향·캐시 부채널

결함 주입은 클럭 글리치, 전압 강하, 레이저 펄스, EM 펄스로 표적 디바이스의 분기 명령을 일시적으로 잘못 동작시키는 공격이다. 예를 들어, PIN 검증 분기에서 「PIN 일치 시 다음 단계 진행, 불일치 시 거부」 분기에 결함을 주입해 모든 PIN을 통과시키는 사례가 학회 COSADE 2017에 보고되었다. 본 표준의 부트로더와 핸드셰이크 분기는 SHALL 수준으로 다음 방어를 요구한다: ① 중복 분기 검사(double-check) ② 검사 결과의 무결성 코드 인증(Authenticated boolean) ③ 결함 카운터의 영구 증가(monotonic counter) ④ 결함 임계 도달 시 키 영구 폐기(zeroize). 차분 결함 분석(DFA)에 대해서는 AES 마지막 라운드에 1바이트 결함을 주입해 키를 복구하는 Piret-Quisquater 공격이 잘 알려져 있어, 본 표준은 마지막 라운드 결과의 「실행 후 재계산 비교」를 SHOULD 수준으로 권고한다.

음향 부채널은 2014년 Genkin·Shamir·Tromer가 RSA의 비밀 키를 마이크로폰만으로 복구한 사례에서 유명해졌다. 노트북 코일의 미세 진동이 모듈로 지수승의 분기에 따라 가청 주파수 대역에서 미세하게 달라진다는 사실을 이용한 공격이다. 본 표준은 호스트 측 RSA 사용을 권장하지 않으며 Ed25519를 기본 서명 알고리즘으로 채택해 음향 누설 표면을 구조적으로 축소한다. 캐시 부채널은 Spectre/Meltdown 이후 더욱 심각한 위협으로 부상했다. Flush+Reload, Prime+Probe, Evict+Time 등은 공유 캐시 라인의 점유 시간을 통해 분기 이력을 추정한다. 본 표준은 비밀 의존 메모리 인덱스를 사용하지 않는 비트슬라이싱 AES 또는 AES-NI 하드웨어 명령 사용을 SHALL 수준으로 요구한다.

ARM PSA Crypto attack profile은 「현실적으로 가정 가능한 위협 모델」을 단계별로 분류한다. PSA Level 1은 소프트웨어 공격자만 가정하고, Level 2는 원격 부채널을, Level 3은 물리 접근까지 포함한다. TLS Lite의 기본 권고 등급은 PSA Level 2이며, Common Criteria EAL 4+ 인증을 받는 호스트는 Level 3 대응을 추가로 요구한다. ISO/IEC 20085-1과 20085-2는 비침입형 부채널 시험 도구의 교정 절차를 정의하여, 평가 기관이 같은 표적을 같은 정확도로 시험할 수 있도록 한다. 이 두 표준의 교정 이력은 인증서에 「Calibration record per ISO/IEC 20085-1 dated …」 형식으로 기재된다.

TLS Lite의 cipher suite 명단 — TLS_AES_128_GCM_SHA256, TLS_CHACHA20_POLY1305_SHA256, TLS_AES_256_GCM_SHA384 — 은 RFC 8446의 §B.4 권고 명단과 정합한다. 모든 키 교환은 X25519를 사용하며, 모든 서명은 ed25519를 사용한다. 이 다섯 ENUM은 본 표준의 IANA 등록 alias이며, 시뮬레이터의 패널 1에서 알고리즘 선택 시 표시되는 동일한 식별자를 사용한다.

Spectre v1 (Bounds Check Bypass), Spectre v2 (Branch Target Injection), Meltdown (Rogue Data Cache Load) 변종은 모두 비밀 의존 데이터를 캐시 사이드로 유출시킨다. 이러한 마이크로아키텍처 부채널은 운영체제 패치(KAISER/KPTI), 컴파일러 완화(Retpoline, IBRS, STIBP), 그리고 펌웨어 마이크로코드 갱신이 결합되어야 완화된다. 본 표준은 호스트 부트로더와 펌웨어 갱신 절차에 마이크로코드 갱신을 자동화하도록 SHALL 수준으로 요구한다. 갱신 절차는 RFC 9019(SUIT 펌웨어 갱신)와 정합한다.

결함 주입 공격의 경제적 비용은 「분기당 측정 시간」으로 정량화된다. 표 7-2가 보여주듯 FI는 분기당 수 분에 USD 8,000~40,000 장비를 사용한다. 본 표준은 호스트가 결함 임계 도달 시 「영구 폐기 모드(zeroize)」로 진입하도록 SHALL 수준으로 요구한다. 영구 폐기 모드는 부트로더의 키 저장 영역을 0으로 덮어쓰고, 영구 재진입을 차단한다. 이 모드는 호스트의 「소실 가능 자원」을 명확히 정의해야 하므로, 운영자가 폐기 전후의 자원 회수 절차를 사전에 정합해 두어야 한다.

7.7 CC EAL 4+ 인증과 TVLA 합격 사례

Common Criteria CCRA(Common Criteria Recognition Arrangement) 체계에서 EAL 4+는 「방법론적으로 설계·시험·검토된」 등급으로, 상업용 IT 제품의 일반적 인증 천장이다. EAL 4+에서 「+」는 추가로 부채널 평가(AVA_VAN.5 등)를 요구하는 보강 조건을 가리킨다. 본 표준의 호스트 구현이 EAL 4+ 인증을 받는다면, 평가자는 ISO/IEC 17825 Class B 또는 C 시험을 수행하고 TVLA |t| ≤ 4.5를 만족함을 확인한다. 본 표준의 conformance 슈트는 평가자가 표적 호스트의 다음 다섯 영역을 확인하는 순서를 권고 절차로 정의한다: ① cipher suite 협상에서 TLS_AES_128_GCM_SHA256과 TLS_CHACHA20_POLY1305_SHA256 두 ENUM이 동시 노출되는지 ② X25519 키 합의가 Montgomery ladder로 구현되어 분기 부재인지 ③ ed25519 서명 시 결정론적 nonce를 사용하는지 ④ TLS_AES_256_GCM_SHA384를 협상한 세션에서도 AES-NI 또는 비트슬라이싱이 사용되는지 ⑤ 마스킹 차수가 ISO/IEC 17825 Class에 적합한지.

한국 부채널 저항·CC 평가 인프라 정합

한국은 부채널 저항과 CC 평가에서 비교적 성숙한 생태계를 갖추고 있다. 본 표준의 호스트가 한국 시장을 표적으로 할 때 정합해야 하는 인프라를 단계별로 정리한다. ① 국가정보원은 국가용 암호모듈 검증제(KCMVP) 평가 운영 기관으로서, FIPS 140-3과 정합되는 검증 절차를 운영하며 비침입형 부채널 시험을 요구한다. ② KISA(한국인터넷진흥원)는 CC 평가의 국가 공인 인증서 발급 기관이며, EAL 4+ 등급 인증서를 발급한다. ③ 한국전자통신연구원(ETRI)는 양자내성 암호와 부채널 저항 연구를 1990년대부터 누적해 온 정부 출연 연구소다. ④ 한국정보통신기술협회(TTA)는 KS X ISO/IEC 17825 한국 표준을 운영하며, 부채널 시험 도구의 교정 인증을 담당한다. ⑤ KAIST 정보보호대학원과 ⑥ POSTECH, ⑦ 고려대 정보보호대학원은 CHES·COSADE 학회 발표 다수를 보유하며 부채널 평가 기법 연구의 한국 거점이다. ⑧ 국가보안기술연구소(NSR)는 국가 비공개 영역의 부채널 시험을 수행한다. ⑨ 한국정보보호학회(KIISC)는 부채널 분야 정기 학술대회 「정보보호학회 동계학술대회」를 운영하며, ⑩ 한국암호포럼은 산학연 협력 플랫폼이다. ⑪ KISA CC 평가기관 다수는 EAL 4+ 평가 라이선스를 보유한다. ⑫ 삼성 시큐리티 R&D 센터는 모바일 칩셋 부채널 평가 인프라를 운영한다. 본 표준은 KS X ISO/IEC 17825 한국판과 100% 정합한다.

운영자가 한국에서 EAL 4+ 인증을 추진할 때 권장 경로는: KISA CC 평가기관 한 곳을 평가 수행자로 선정 → ETRI 또는 NSR의 부채널 시험실에서 ISO/IEC 17825 Class B 시험 수행 → TTA 교정 도구로 측정 결과 정합 확인 → 국가정보원 KCMVP 병행 → 인증서 발급. 본 표준의 simulator/index.html은 한국어 UI를 기본 노출하므로 평가자가 별도 번역 없이 시뮬레이션 결과를 인증 증거로 채택할 수 있다.

제 7 장 미주

  1. ISO/IEC 17825:2024 — Information technology — Security techniques — Testing methods for the mitigation of non-invasive attack classes against cryptographic modules.
  2. ISO/IEC 20085-1:2019 — IT Security techniques — Test tool requirements and test tool calibration methods — Part 1: Test tools and techniques.
  3. ISO/IEC 20085-2:2020 — Part 2: Test calibration methods and apparatus.
  4. NIST SP 800-140F — CMVP Approved Non-Invasive Attack Mitigation Test Metrics.
  5. NIST FIPS 140-3 §4.10 — Non-Invasive Security.
  6. Paul Kocher, "Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems", CRYPTO 1996. DOI 10.1007/3-540-68697-5_9.
  7. Kocher, Jaffe, Jun, "Differential Power Analysis", CRYPTO 1999, Cryptography Research Inc. white paper.
  8. IETF RFC 7748 — Elliptic Curves for Security (X25519, X448).
  9. IETF RFC 8032 — Edwards-Curve Digital Signature Algorithm (EdDSA) — Ed25519.
  10. IETF RFC 8446 §9.4 — TLS 1.3, Implementation Notes on Side-Channel Attacks.
  11. CHES 학회 — Cryptographic Hardware and Embedded Systems, IACR 정기 학회.
  12. COSADE 학회 — Constructive Side-Channel Analysis and Secure Design.
  13. Common Criteria CCRA — Common Methodology for IT Security Evaluation v3.1 R5, AVA_VAN.5.
  14. ARM PSA Certified — Platform Security Architecture Crypto Attack Profile, ARM Ltd.
  15. Piret & Quisquater, "A Differential Fault Attack Technique against SPN Structures", CHES 2003.
  16. Genkin, Shamir, Tromer, "RSA Key Extraction via Low-Bandwidth Acoustic Cryptanalysis", CRYPTO 2014.
  17. GitHub: WIA-Official/wia-standards-public/tls-lite — 본 챕터 원본·정정 이력·재현 자산.

본 장에서 다루는 정상 참조

구현 워크시트

  1. spec/의 Phase 1~4를 정독하고, 본 장의 다섯 부채널 카테고리에 호스트가 대응하는지 표 7-1 기준으로 자가 점검한다.
  2. CLI 도우미 ./cli/tls-lite.sh envelope를 실행해 정상 봉투를 산출하고, 봉투 검증 분기에 ct_memcmp()를 사용하는지 코드 리뷰로 확인한다.
  3. simulator/index.html의 패널 1에서 cipher suite 선택 ENUM이 다섯 (TLS_AES_128_GCM_SHA256·TLS_CHACHA20_POLY1305_SHA256·X25519·ed25519·TLS_AES_256_GCM_SHA384) 모두 정상 노출되는지 확인한다.
  4. 위 표준 목록을 운영자의 관할별 의무(국정원 KCMVP, KISA CC, FIPS 140-3 등)와 교차 대조한다.
  5. https://github.com/WIA-Official/wia-tls-lite-conformance의 적합성 슈트를 결선하고, TVLA Class B 결과를 인증 증거로 첨부한다.

표준 간 합성 요약

본 장은 TLS Lite eBook의 다른 모든 Phase 1~4 장과 마찬가지로 WIA 표준 패밀리와 합성된다. 부채널 저항 정합을 채택한 구현은 표준 간 감사 전송(W3C Trace Context와 OpenTelemetry 의미 규약), 표준 간 신원(WIA-OMNI-API), 표준 간 런타임 신뢰 목록(WIA-AIR-SHIELD)을 표준마다 다시 구현하지 않고 재사용한다. Phase 3 §3의 연합 핸드셰이크는 WIA 표준 패밀리의 다른 표준과 동일한 챌린지-응답 패턴을 따르므로, 한 운영자가 하나의 서명키 체인과 하나의 감사 전송으로 여러 표준을 가로질러 연합할 수 있다. 본 장의 부채널 권고(상수 시간, 마스킹, 셔플링, FI 대응)는 호스트가 어떤 WIA 표준을 추가로 도입하더라도 동일한 키 체인을 그대로 재사용하므로 N개 표준의 부채널 시험을 N회 반복하지 않는다.