KRX와 회원사 FEP간의 암호화

1.
몇 일동안 이러저런 사람들을 만나느라 정신이 없네요. 돈이 되는 일이면 좋지만 딱히 돈이 되는 일은 아닙니다. 블로그를 보고 여기저기 물어보는데 박하게 이야기를 하지 않을 수도 없고 고민중입니다.사람들이 잊는? 듯 하지만 저도 생활인인데……(^^)

그렇다고 하더라도 대화는 소중합니다. 다양한 사람들의 이야기는 어플리케이션 혹은 서비스가 어떤 내용으로 구성되어야 하는지, 어떤 방향으로 진화하여야 하는지를 결정하는 토대이기때문입니다. 최근 주문FEP와 관련한 이야기를? 많이 들었습니다.? 주문FEP와 관련된 사항은 증권사가 정책적으로 결정할 일이라고 생각하기때문에 관심밖이었습니다. 하지만 관심을 가져야 하는 이유가 하나 생겼습니다.

KRX가 Extude를 가동한 후 직접적으로 대외계 주문시스템을 접해본 적이 없어서 몰랐던 사항입니다.물론 업무를 담당하는 분들은 다 아는 이야기입니다. 바로 암호화입니다.

2008년 KRX가 차세대를 하면서 발주를 하였던 내용입니다.

2.
DMA 트레이딩을 하는 분들에게 FEP 세션을 어떻게 할당받는가는 중요합니다. 전략에 따라 여러 세션이 필요한 경우가 있는 듯 합니다. 더불어 레이턴시에 영향을 미치는 요인중 하는 FEP 세션의 암호화/복호화입니다.

앞서 제안요청서에도 나왔다시피 주문FEP를 설치 혹은 증설할 때 거래소가 지정한 소프트웨어회사로부터 API를 구매하여 시스템을 구축합니다. 의문이 들었습니다. 왜 거래소는 암호부분을 API구매방식으로 결정하였을까? 나아가 굳이 주문전달구간을 암호화를 하여야 했는가입니다.

먼저, 암호화를 하여야 하나? 위의 제안요청서를 보면 암호화가 필요한 이유를 두가지로 들고 있습니다.

□ 증권선물시장의 정보보호 강화
○ 거래소회원사 소통구간의 송수신 정보에 대해 외부 비인가자에 의한 침해?위협으로부터 정보보호 

□ 내부 인가자로부터 차세대시스템 소통구간의 정보보호 방안 적용
○ 소통구간 암호화를 통하여 내부자(인가받은자)나 통신망사업자의 광단국 관리자가 송?수신 데이터를 도?감청, 위?변조, 데이터 복사(Tapping) 등의 행위를 방지

“국가정보원의 인증을 거친 알고리즘을 사용하여야 한다”는 내용으로 보면? 은행기관거래를 할 때 ‘국가가 인정한 공인인증서’를 사용하여야 하는 것과 비슷한 이치일 듯 합니다. 국가정보원 혹은 관련기관에서 정한 규정에 의한 것이 겠지요.? 그런데 NYSE에서 운영하는 SFTI의 자료를 보면 고객이 원하면 제공하는 방식입니다.

Encryption. For customers utilizing dynamic BGP routing, SFTI offers support for MD5 Header Encryption between BGP Peers, which is used to validate the source of routing updates.? This will prevent unauthorized BGP route updates from impacting a particular customer’s routing table. SFTI also supports protocol encryption at the customer edge.? Currently, we are not offering encryption on the SFTI backbone, but it can be made available as a value-added service on a per-customer basis. 

사실 타당성 여부를 떠나 암호화와 공인인증으로 서비스를 구성하면 모든 트레이더가 동일한 조건이기때문에 문제는 없습니다.

다음으로 특정한 업체의 API를 지정하여 공급하는 – 물론 유상구매 – 방식의 타당성입니다.? 들리는 말에 따르면 암호 및 복호부분의 레이턴시가 평균 80~100마이크로초 정도라고 합니다.각 증권사마다 API로 공급받은 암호화프로그램을 운용하는 시스템의 성능은 다릅니다. CPU등의 성능이 좋은 서버는 낮은 수준이고 반대면 높은 수준입니다. 하드웨어의 투자비용에 따라 레이턴시차가 발생합니다. 시세데이타나 주문전문의 경우 프로토콜문서를 제공하여 개발하도록 하면서 굳이 API를 구매하는 방식을 택했을까? 만약 국가정보원의 인증이 문제면 국가정보원이 인증한 알고리즘을 지정하고 접속시험단계에서 국가정보원이 인증을 하도록 하면 좀더 자유로운 선택이 가능하지 않을까 합니다.

제가 아는한 국내에서 인증받은 암호화프로그램은 SEED라는 알고리즘을 제공합니다. SEED는 한국인터넷진흥원에서 개발하여 무상으로 C와 Java로 된 소스를 제공하고 있습니다.

SEED알고리즘 보급

너무 암호화를 단순하게 생각했을 수 있습니다. 그렇지만 경쟁도 아니고 특정한 제품을 유상으로 공급하는 방식은 소비자인 증권사의 선택을 제약한다고 생각합니다. 더구나 지금처럼 레이턴시경쟁이 치열할 때? 암호화 레이턴시를 줄이는 방법은 하드웨어사양을 높이는 것뿐입니다.

3.
만약 SEED를 지정하여 증권사가 자체적으로 구현하면 어떤 대안이 가능할까요? 아마 대용량서버보다 훨씬 비용도 절약하면서 성능은 몇 배 빠른 대안을 만들 수 있지 않을까 합니다. 바로 GPU를 이용한 암호/복호화입니다. 이미 이와 관련된 연구논문이 발표되었습니다.

GPGPU를 이용한 SEED 알고리즘의 구현 및성능 향상에 관한 연구

위의 결론을 보도록 하죠.

본 연구는 기존의 전용 암호화 하드웨어 혹은 CPU를 사용한 소프트웨어적인 암호화 알고리즘의 처리에서 벗어나, 대부분의 시스템에서 널리 사용되는 GPU를 활용하여 암호화 알고리즘의 암호화/복호화 과정을 병렬 처리하였다. 이를 통해, 고속처리가 필요한 네트워크 시스템에서 암호화 연산으로 인한 오버해드를 줄이고 충분한 수준의 암호 처리 성능을 얻을 수 있도록 하였다. 본 연구에서 구현에 사용한 SEED 블록 암호 알고리즘은 한국에서 네트워크 통신 암호화를 위해 주로 사용되고 있다. 

이를 위해, 주로 NVIDIA GPU를 사용한 GPU 기반 고성능 SEED 블록 암호 알고리즘을 구현하였으며, 또한 멀티 코어 프로세서 및 Cell BE에 기반한 병렬화된 SEED 블록 암호알고리즘 역시 구현하였다. 본 연구에서 제안한 SEED 블록 암호 알고리즘은 GPU 하드웨어를 효율적으로 활용하도록 병렬화 되었으며, 다양한 NVIDIA GPU상에서 검증되었다. GeForce GTX 285 GPU 상에서 9.5Gbps의 암호화 성능을 기록하였으며, 이는 8-core CPU 플랫폼에서 병렬화된 SEED 암호 알고리즘을 적용해 얻은 성능보다 약 5배 빠른 것이다. 대부분의 GPU에서 8-core CPU보다 우수한 성능을 나타내었으며, Cell BE에서의 구현 역시 10% 이상의 성능 향상을 보였다. 이러한 GPU 및 Cell BE에서의 암호화 성능은 암호화 기술이 사용되는 고성능 네트워크 시스템에서 SEED 블록 암호 알고리즘이 적용되는 경우 일으킬 수 있는 병목 현상을 방지하는데 충분한 수준이다.

GPU카드를 어떤 종류를 쓰느냐에 따라 많이 달라집니다.그래도 아주 무식하게 결론을 인용하면, 5배라는 차이는 100마이크로초가 20마이크로초로 줄어든다는 말입니다.하드웨어 사양을 높여도 80전후라고 하면 휠씬 낮은 비용으로 4배정도의 성능차이를 볼 수 있는 방법이 있습니다. 그런데 API구매때문에 기술적 향상, 기술적 경쟁이 제약받고 있습니다.

한국자본시장의 문제는 경쟁의 과잉이 아니라 경쟁의 부족입니다.

10 Comments

  1. 다나끔

    폐쇄망에서의 암호화가 어떤 의미가 있는지는 고민해 보지 않았습니다만.
    FEP 주문 암호화의 또 다른 문제는 전송데이터길이가 늘어난다는데 있습니다.
    현재 KRX 주문포멧의 길이는 300바이트 입니다. 여기에 전문헤더 82바이트가 붙으면 382바이트죠.
    이게 암호화되면 500바이트에 근접하게 됩니다.
    자 지금은 속도가 증설되었습니다만, 작년 이맘때 파생상품쪽 거래라인의 속도는 거래소 규정상
    전증권/선물사 공통으로 768K 2회선을 사용하도록 되어 있었습니다.
    786K회선이란 말 그대로 1초동안 768Kbits가 지나갈 수 있다는 이야기가 되겠죠.
    바이트로 환산하면 96KByte 입니다. 그러면 1ms에 지나갈 수 있는 데이터량은. 96Byte입니다.
    물리적인 전기의 속도와 거래소와의 회선거리를 고려치 않더라도. 평문인 382Byte가 전송되는데 걸리는
    순수시간만 4ms내외가 걸리리라는것은 능히 짐작가능하겠죠. 그런데 이게 암호화 되면?
    이러면서도 전문포멧에 압축은 없습니다. HFT나 단순 DMA를 이용한 주문이라 할지라도 특정시점에서
    하나의 벤더가 발생시키는 주문의 량은 많게는 3000건에서 작게는 4~10건이 됩니다. 이런량이 한번에
    튀어 나오게 되는데, 2개의 회선에 주문하나당 순수한 물리적인 소요시간만 저리 되는 현실에서..
    폐쇄망에서의 암호화로 사이즈를 늘려놓는것도 불만이고, 압축 지원도 안되는것도 꽤 불만사항입니다.
    막상 이러면서 실제 KRX의 아웃소싱을 전담하고 있는 코스콤 출신인지라 뭐라 할말은 없습니다만.. ^^;;

    Reply
    1. smallake

      맨 마지막을 보고 누군지 짐작하였습니다. 아마도 맞을 듯…(^^)

      규정과 관련된 이야기는 항상 동전의 양면입니다. 말씀처럼 이런 저런 기능이 되지 않아서 품질이 좋지 않다라고 할 수 있습니다. 반면 모든 증권사가 다 동일합니다.결국 모든 트레이더가 동일한 조건에서 경쟁을 합니다. 불만이 있지만 불공정(?)은 아니라는 뜻입니다.

      글중 물리적인 라인과 논리적인 세션을 같은 의미로 사용한 듯 합니다. 거래소가 의무적으로 2개 라인을 쓰라고 했는지는 모르지만 어찌되었든 물리적인 회선일 듯 합니다. 반면 다 아시지만 논리적으로 세션을 몇 개를 쓰는지는 다른 문제가 아닐까 합니다. Throughput이 Bandwidth와 연결되어 있지만 반대 일치하지는 않습니다. 요즘 하드웨어 – NIC 포함 – 가 좋아서.

      그런데 대역폭이 왜 768일까요? 가격? 아니면 매매체결시스템의 용량?
      차차세대를 하면 네트워크설계도 다시 해야 하지 않을까 생각합니다.(^^)

      Reply
  2. 헤헤헤

    대한민국은 IT강국이 아니라 인터넷 인프라강국인데, 금융 시스템에서의 인프라는 기반시설도 제대로 활용 못하는 허접수준이라니….
    Suck이란 단어부터 튀어나오네요. ㅡ ㅡ;

    Reply
    1. smallake

      금융이라는 특수성을 고려하여야 합니다. 폐쇄망이기때문에 보안이 필요없다는 논리는 비약이라고 생각합니다. 암호화를 하든 압축을 하든, 무언가 보안을 위한 조치가 필요하겠죠. 다만 보안이ㅏ 특정한 업체에 종속적인 방식으로 제공되니까 문제라고 생각합니다. RSA이든 SEED이든 무엇이든 공개키방식의 알고리즘으로 하면 될 듯 합니다만 그렇지 않으니까 저는 문제점을 지적한 것입니다.

      감독규정이 특정한 것을 지정하면 경쟁이 비집고 들어갈 자리가 없습니다.

      Reply
    2. 헤헤헤

      제 논지는 암호화 하지 말라는 얘기가 아니라요.
      T1/E1 급도 보편화된 대한민국 인터넷 인프라를 쓰기 어려운 것도 아닌데, 돈이 없는 것도 아니라 돈이 많은 금융계에서 낮은 대역폭을 쓰기 때문에 그러는 겁니다.

      Reply
    3. smallake

      옙…오해했습니다…(^^)

      대역폭을 넓히는 것이 그렇게 쉬운 문제가 아니더군요. 거래소 매매체결시스템의 용량도 계산해야 하고 호가등을 받는 증권사 트레이딩시스템도 고려해야 하고.

      만약 지금보다 대역폭이 1.5배 늘어나면 증권사가 IT에 투자하는 비용이 많이 늘어날 것입니다. 특히 HTS서버와 관련된 하드웨어투자가 발생하지 않을까…

      그러면 증권사는 싫죠…뭐 돈을 더 버는 것도 없는데. 용량때문에 투자를 더해야 하니까…

      Reply
    4. 헤헤헤

      IT 비용에 투자하기 싫어하는게 어디 금융업체 뿐이겠습니까.
      IT 비용에 투자한 것으로 수익이 나야 투자를 하겠죠.
      HFT 기법을 활용하는 투자자들이 대거 늘어나서 서버들이 팍팍 죽어주고, 프로세스들도 나가 떨어지고 그래야 뒤늦게 부랴부랴 준비들 하겠죠.

      Reply
    5. smallake

      그런 상황이 되면 아마 해당증권사 IT담당임원부터 줄줄이 목이 날라가지 않을까요?

      하여튼 소 잃고 외양간 고치는 것보다 미리미리 문단속 잘하는 것이 좋지만. 투자를 해야 하는 것이라 결국 “누가 고양이 목에 방울을 달까?”라는 문제로 귀결.

      Reply
  3. PKT

    암호화의 문제는 모두가 동일하다는 인식으로 조금은 덮혀있던 부분입니다.
    하지만, FEP 성능의 발전과 프로그램 기법의 발전은 암호화 Latency까지 신경을 쓸 수 밖에 없습니다.

    Reply
    1. smallake

      한국거래소가 증권사나 투자자위에 군림할 수 없습니다. 증권사나 투자자를 위해 존재하는 기관이 거래소입니다.

      지금은 반대인 듯 합니다. 거래소를 먹여살리기 위해 투자자나 증권사가 존재하는 듯 하네요. 해외는 경쟁때문에 지금도 수수료를 줄이고 기술을 높이고 있습니다. 보다 나은 서비스를 통한 생존의 몸부림입니다.

      그렇지만 감독기관과 거래소의 규정이면 모든 것이 일사천리입니다. 시장참여자들의 이해와 부합하는지를 떠나..

      세상의 진리.

      “스스로 찾는 자에게 빵 하나라도 더 옵니다.”(^^)

      Reply

Leave a Comment

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.