스마트 카드에서 Derivation Rule(Derived Key)란?

2013. 5. 9. 11:49IT관련

반응형

스마트 카드에는 키가 보안의 핵심요소라 할 수 있다.

해당 키를 이용하여 외부 entity와 인증을 맺은 후 데이터를 서로 주고 받을 수 있다. 

간단히 말하면 신용카드(스마트 카드)내의 키를 알아야 신용 결제를 성공 할 수 있다고 보면 된다.


대략적인 결제 흐름을 보면

  1. 신용카드는 결제시 결제 데이터를 가지고 카드안에 들어 있는 특정키로 암호화하여 만든 암호문(Cryptogram)만든다.
  2. 결제단말기는 전달된 암호문(Cryptogram)을 신용카드사에 전달한다.
  3. 신용카드사는 해당 카드 내에 존재하는 키를 알고 있기 때문에 전달된 암호문(Cryptogram)이 정상인지 확인 후 승인/거절 처리를 한다.
결국은 신용카드사가 카드별로 키를 전부 알고 있어야 하는데 매일, 매월 발급되는 카드가 엄청나기 때문에 모든 키를 DB화 하여 구축하는 것은 비용적으로 큰 문제가 발생된다.

위 문제는 Derived Key(파생키)라는 것을 만들어 신용카드에 주입함으로써 문제를 해결 할 수 있다.

Derived Key = Encrypt(Derivation Data, Master Key)
Derivation Data와 Master Key를 알고 Encrypt 방식까지 정했다면 Derived Key를 생성할 수 있다.

즉, 신용카드사는 Master Key를 가지고 Encrypt 방식을 결정한 후 신용카드에 위와 같은 방식으로 Derived key를 만들어 주입을 하면 신용카드사는 위 3)번의 경우 카드내에 존재하는 파생키를 유추하여 암호문을 확인할 수 있게 된다. 단, Derivation Data를 암호문(Cryptogram)과 함께 신용카드 서버로 전달해야 한다.

이와 같이 된다면 신용카드사는 모든 키에 대하여 DB화를 할 필요가 없다는 의미가 된다.


스마트카드에서 일반적인 Derivation Rule로는 CPG라는 것이 있는데 이는 Card Production Guide의 약자로써 VISA에서 정의하는 규칙이다.

이 CPG 버전에 따라 방식이 다르며 일반적으로 CPG v2.0.4와 CPG v2.1.1을 일반적으로 사용한다.




반응형