전송되는 데이터를 암호화할 수 있다. 저장해 보관하는 데이터도 암호화할 수 있다. 그러나 암호화가 어려운 데이터가 있는데, 바로 사용하는 데이터이다. 문서에서 맞춤법을 검사하는 등 애플리케이션이 데이터를 처리하기 위해서는 데이터를 볼 수 있어야 한다.
토큰화와 형식-유지, 검색 가능, (수학적 연산을 가능하게 만드는)동형(homomorphic), 멀티-파티 암호화 같은 소프트웨어 기반 솔루션들이 있다. 하지만 느리고, 이용하기 불편하고, 지원하지 않는 사용례들이 있다.
하드웨어 기반 보호가 효과적인 방법이다. 스마트폰에 이미 사용되고 있다. 기기의 나머지 부분에 보이지 않는 방법으로 ID와 지불 데이터를 처리할 수 있는 시큐어 엔클레이브(Secure Enclave)이다.
기업 서버에서는 컨피덴셜 컴퓨팅(confidential computing)으로 부르는 기술이다. 이와 관련된 중요한 2가지가 있다. 가장 잘 알려진 것은 이용 중인 데이터와 애플리케이션을 보호하는 애플 칩에 구현된 시큐어 엔클레이브인 인텔의 SGX이다. 이 엔클레이브는 꽤 작다. 엔클레이브를 이용하기 위해서는 일반적으로 애플리케이션을 다시 구현해야 한다. 그러나 작게 유지하면서, 결함이 있는 애플리케이션 논리로 초래되는 위험을 최소화할 수 있다.
또 다른 방법으로는 IBM Z 시스템 메인프레임과 리눅스원 서버의 S390 칩에 사용하는 방법, AMD가 EPYC 칩에 사용하는 방법들이 있다. 여기에 보호된 엔클레이브는 꽤 크고, 애플리케이션과 그 안의 전체 가상 머신이 포함되어 있다. 엔클레이브 내부에서 작동하도록 애플리케이션 설계를 바꾸거나 다시 쓸 필요가 없다는 의미다.
클라우드 공급업체도 동참하고 있다. 아마존은 아직 하드웨어 기반 솔루션을 도입하지 않았지만, 마이크로소프트와 구글 클라우드는 각각 인텔 SGX와 AMD Epyc를 선택했다.
보안 필요성이 아주 높을 때 선택되는 IBM S390
컨피덴셜 컴퓨팅은 비교적 새로운 기술이며, 초기에 도입한 기업은 주로 금융서비스 업종과 기타 보안 요건이 높은 업종에서다. 암호화폐 같은 디지털 자산을 대상으로 금융권 수준의 보호 및 보관 서비스를 제공하는 홍콩 소재 기업인 헥스 트러스트(Hex Trust)를 예로 들 수 있다. 헥스 트러스트의 라팔 체미아스키는 “암호화폐 시장에는 현재 금융 시장에 사용되는 것과 같은 인프라가 필요하다”라고 설명했다. 체미아스키는 과거 금융서비스 산업에서 일을 했었다.
암호화폐 시장은 최근 몇 년간 세상을 떠들썩하게 만든 부끄러운 보안 침해 사건으로 큰 손실을 입었다. 체미아스키는 “대형 금융업체가 도입한다면, 보관(custody)을 중심으로 우리 또한 동일한 인프라가 필요할 것이다. 그러나 사람들이 키를 잃어버리거나, 키와 함께 사라지거나, 죽은 것처럼 가장하는 문제들이 항상 발생한다”라고 설명했다.
체미아스키에 따르면, 몇몇 암호 키를 안전하게 저장하는 방법을 파악하는 것만으로 불충분하다. 대기업과 같은 환경에서 클라이언트는 수많은 자산과 여러 다양한 블록체인을 보유하고 있을 수 있다. 인텔 SGX 엔클레이브 내부에 맞도록 키 관리 애플리케이션을 다시 쓴 경우에도, 이것이 인프라가 키를 관리하는 기능을 제공하지 않는다.
체미아스키는 "이를 어떻게 확장할까? 동일한 키를 이용해 동시에 많은 서비스를 실행하는 방법은 무엇일까? 머신이 작동 중단되면, 다른 서버에서 프로세스를 재개하는 방법은 무엇일까? 우리는 대규모의 트랜젝션 처리가 필요하다”라고 말했다.
또한 암호 인증(cryptographic authentication) 계층이 있으며, 암호를 기반으로 보안 정책을 집행한다. 트랜젝션을 전송할 수 있는 주소들에 대한 화이트리스트 처리를 예로 들 수 있다. 체미아스키는 “시큐어 엔클레이브 내부에서 모든 것을 실행시키면 많은 유연성이 생긴다”라고 밝혔다.
체미아스키에 따르면, IBM은 대규모의 운영을 중시한다. 또한, 온프레미스와 클라우드 모두에서 이 기술을 이용할 수 있다. 체미아스키는 “처음에는 클라이언트들이 IBM 클라우드에서 개념 증명용으로 작게 시작하는 것을 원할 수 있다. 비즈니스가 성장하고, 위험에 더 많이 노출되면 온프레미스 솔루션으로 전환할 수 있다. 이는 기업들에게 많은 유연성을 준다”라고 설명했다.
IBM Z의 시큐어 엔클레이브는 크기를 최대 16테라바이트까지 지원한다. IBM Z와 리눅스원 전문 엔지니어로, IBM 클라우드에 기반을 둔 Z-as-a-service와 블록체인 개발을 주도한 레베카 고트는 “보호하려는 워크로드의 부분을 골라 선택하지 않아도 된다. 한 번에 모든 것을 보호할 수 있다”라고 말했다. 또 코드를 바꿀 필요가 없다고 덧붙였다.
이 기술이 작동하는 방식을 설명하면, 각 시큐어 엔클레이브에 엔클레이브로 유입, 유출되는 통신을 암호화하는 데 사용하는 독자적인 암호화 키 세트가 있다. 기업 고객은 가상 머신 내부에서 애플리케이션과 암호화된 데이터, 암호화를 풀 때 사용하는 키를 묶어 암호화된 보안 채널을 통해 엔클레이브로 보낼 수 있다.
애플리케이션은 엔클레이브 내부에서 자신의 일을 한다. 클라우드 공급업체 시스템 관리자를 포함해 다른 사람이 엿볼 수 없다. 고트는 “이 부분이 가치 제안에서 아주 중요하다. 인프라 관리자, 하이퍼바이저 관리자, 클라우드 관리자 등 높은 권한의 시스템 크리덴셜을 가진 사람도 사용자 데이터나 소프트웨어를 볼 수 없다”라고 강조했다.
전체 가상 머신에서 전송하면 추가적인 노출이 초래될 수 있다. IBM은 각 엔클레이브가 보안 부팅 프로세스를 거치도록 하는 방법으로 최초 이미지가 조작이 되지 않도록 만든다. 그리고 엔클레이브의 암호화 키는 각 머신의 생성 시간에 구현된다. 고트는 “루트 키 요소는 하드웨어 보안 모듈을 절대 떠나지 않는다. 기반이 되는 아키텍처가 커머셜 프로세서에 가장 높은 수준의 연방 보안 인증을 제공한다. 장치를 물리적으로 조작하는 경우, 100나노 초 안에 조작을 감지해 루트 요소를 제거할 수 있다는 의미이다”라고 말했다.
이후 가상 머신과 애플리케이션이 침해당하지 않도록 만드는 프로세스가 엔터프라이즈 클라이언트에서 작동한다. 코드를 프라이빗 깃허브 리포지토리로 불러와, 여기에서 확인 및 서명을 하는 프로세스다. 고트는 “어느 장소에도 조작이 없다는 점을 믿을 수 있다. 코드의 출처를 알고 있고, 전체 감사 추적 트레일을 갖고 있으며, 전체 프로세스를 보호하고 있다”라고 설명했다.
푼드-IT의 수석 애널리스트인 찰스 킹은 2016년 처음 출시된 IBM Z의 하드웨어 기반 컨피덴셜 컴퓨팅이 가장 오래 전에 시장화 된 기술이라고 말했다. 이 기술은 경쟁 기술보다 높은 수준의 성능을 제공하는 기술이다. 다른 Z 메인프레임 기술처럼, 시큐어 엔클레이브는 대기업 고객들이 요구하는 가장 엄격한 보안 요구를 충족할 수 있도록 설계되어 있다.
클라우드의 시큐어 컴퓨팅을 노리는 AMD
IBM과 마찬가지로, AMD 또한 시큐어 엔클레이브에 전체 가상 머신을 집어넣는 방법을 이용한다. 킹에 따르면, AMD는 EPYC 칩으로 퍼블릭 클라우드 시장을 공략하고 있다.
이는 기업에 클라우드 기반 블록체인 애플리케이션을 실행시키는 인프라를 공급하고 있는 프랑스의 iExec 같은 클라우드 전문 업체에게 매력적인 기술이다. iExec의 보안 책임자인 레이 장은 “구글 클라우드에서 공간을 빌려, 블록체인과 오프-블록체인으로 리패키징해 엔터프라이즈 고객들에게 대여하고 있다”라고 밝혔다.
구글 클라우드는 퍼블릭 클라우드 공급업체로는 처음으로 7월 중순부터 AMD EPYC 기반 컨피덴셜 컴퓨팅을 공개 베타 버전으로 제공하고 있다. iExec의 고객사 가운데 하나는 의료 데이터를 연구 관련 회사들과 공유하길 원하는 병원이다. 장은 “의료 데이터는 아주 민감하다. 따라서 데이터 프라이버시와 소유권을 보장해야 한다. 또 다른 고객은 영화의 3D 렌더링에 이 플랫폼을 이용하고 있다. 영화 장면이 유출되면 안 된다”라고 말했다.
AMD EPYC 시큐어 엔클레이브는 그 안에서 전체 렌더링 프로세스를 실행시킬 수 있을 정도로 크다. 블록체인 네트워크는 데이터와 몇몇 다른 사용례를 믿고 처리할 수 있는 방법 가운데 하나다. 장은 “스마트 계약과 일부 비즈니스 로직이 블록체인에서 직접 실행되지만, 확장성에 문제가 있다. 시큐어 엔클레이브가 여기에 도움을 준다. AI 같은 정교한 알고리즘을 블록체인 네트워크에서 직접 실행할 수 없기 때문이다. 많은 비용이 들고 효율적이지 못하다. 이런 애플리케이션을 오프-블록체인 네트워크로 오프로드해야 하는 이유가 여기에 있다. 그러나 이 경우에도 동일한 수준의 신뢰를 보장해야 한다”라고 설명했다.
컨피덴셜 컴퓨팅은 기업이 이런 일을 할 수 있도록 도와준다. 장은 “구글 클라우드 서비스 관리자 같은 이들도 내 데이터를 조사하기 위해 이런 보안 가상 머신을 침입하는 것이 불가능하다”라고 말했다. 장은 인텔 SGX로는 완전한 가상 머신을 실행할 수 없었을 것이라며, “아주 민감하지만, 작은 워크로드, 마이크로서비스를 대상으로 개발이 되었다. AMD 기술은 클라우드 인프라 서비스에 맞춰 설계되어 있다”라고 강조했다.
장은 IBM Z 플랫폼처럼 애플리케이션을 그 상태로 실행시킬 수 있다고. 그는 “소스 코드 수정이 필요 없다. 인텔 SDK를 기반으로 SGX 애플리케이션을 개발하면, 애플리케이션 코드를 많이 수정해야 한다. 아주 힘든 일이다”라고 덧붙였다.
구글 클라우드 시큐어 엔클레이브는 최대 896 기가바이트로 IBM만큼 크지 않다. 그러나 IBM처럼 엔클레이브에 독자적인 암호화 키가 있다. 하드웨어와 소프트웨어를 함께 사용해 생성하는 키이며, 대기업 고객이 자신의 워크로드를 엔클레이브로 보낼 수 있다.
구글 클라우드의 선임 제품 관리자인 넬리 포터는 “고객들은 자신의 키를 사용해 암호화해 유지하거나, 클라우드로 가져올 때 HSM(Hardware Security Module) 기술을 사용해 데이터를 암호화할 수 있다. 애플리케이션을 변경할 필요가 없다. 이는 우리에게 아주 중요한 부분이다”라고 설명했다.
구글은 인텔 SGX 시큐어 엔클레이브를 사용하려 시도했고, 기업 고객을 위해 프로세스를 더 쉽게 만드는 방법을 찾았다. 그러나 기업으로 하여금 애플리케이션 설계를 바꾸도록 만드는 것은 너무 힘든 일이었다. 소스 코드가 없을 수도 있다. 오픈소스 코드의 경우, 애플리케이션을 변경할 수 없는 여러 이유들이나 종속성 문제가 존재할 수도 있다.
AMD 방식의 경우, 시큐어 엔클레이브에서 작동하도록 하이퍼바이저 코드만 변경하면 됐다. AMD의 EPYC 담당 선임 마케팅 책임자 그렉 기비는 “이런 것들은 소수만 존재한다. 리눅스의 경우, 모든 주요 배포판이 완료됐다. 코드가 커뮤니티에 배포되어 승인되었다”라고 말했다. 기비는 VM웨어가 다음 릴리스에서 이 기술을 구현하기 위해 노력하고 있으며, AMD는 독자 하이퍼바이저를 보유한 다른 기업들과 협력하고 있다고 밝혔다.
하이퍼바이저와 가상 머신이 엔클레이브에 액세스 할 수 있도록 만들면 잠재적 공격 표면이 확대된다. 기비는 “악성 하이퍼바이저가 있다면, 가상 머신으로 침입할 방법을 찾을 수도 있다”라고 말했다. 프로덕션 환경에서 다른 보안 솔루션이 이를 방지할 수 있지만, 현재 AMD의 자체 플랫폼은 악성 하이퍼바이저로부터 보호를 제공하지 않는다. 그는 “EPYC 로드맵에 보호책이 있지만, 기다리는 것을 원하지 않았다. 우리는 완벽함을 추구하기 원했다”라고 강조했다.
인텔 SGX를 추구하는 마이크로소프트
모두가 AMD 방식을 추구하는 것은 아니다. 마이크로소프트는 인텔 SGX와 더 작은 엔클레이브를 선택하기로 결정했다. 마이크로소프트 애저 CTO 마크 러시노비치에 따르면, 인텔 SGX 엔클레이브는 AMD EPYC나 IBM Z보다 훨씬 더 작은 256 킬로바이트까지만 지원할 수 있다.
고객들이 누릴 수 있는 혜택은 논리적, 물리적 액세스 모두에 대한 완전한 보호를 제공한다는 것이다. 엔클레이브에는 고객이 집어넣은 것만 존재한다. 러시노비치는 “고객들은 마이크로소프트 기술에 대한 종속성 없이 소프트웨어와 프로세스 데이터를 설치할 수 있다. 이는 아주 높은 수준의 보호와 보장을 제공한다”라고 말했다.
인텔 SGX는 통상 소켓이 여러 개인 데이터센트급 서버가 아닌 작은 워크스테이션에서 실행된다. 그렇지만 마이크로소프트는 인텔과 협력, SGX를 단일 소켓 서버들로 구성된 클라우드 센터로 확대하려 노력하고 있다. 러시노비치는 “전체 가상 머신을 런칭할 수 있다면 더 편리하겠지만, 이는 사이드 채널 공격 표면을 확대시킨다”라고 지적했다.
러시노비치는 “마이크로소프트는 AMD 방식을 자세히 조사했다. 그러나 일부 한계 때문에 채택하지 않기로 결정을 내렸다. 고객들은 인텔 SGX 내부에서 실행되는 것을 인식하는 코드를 써야 한다. 그러나 우리는 기술들과 SDK를 개발하고 있다. 소프트웨어를 엔클레이브로 더 쉽게 옮기는 도구들을 구현하고 있다”라고 설명했다.
마이크로소프트는 AMD와 구글, 인텔, 레드햇, 오라클 등이 참여하고 있는 컨피덴셜 컴퓨팅 컨소시엄과 협력하고 있고, 신뢰된 컴퓨팅 환경 간 차이점을 추출하는 오픈 엔클레이브 SDK에 기여하고 있다. SQL 데이터베이스는 인텔 SGX를 지원한다. 따라서 특정 애플리케이션이 대부분의 민감한 작업에 SQL을 사용하는 경우, 엔클레이브를 이용하기 위해 나머지 애플리케이션을 다시 쓸 필요가 없다.
가트너 애널리스트 스티브 라일리는 인텔 SGX는 코드를 다시 써야 하지만, AMD와 EPYC는 그럴 필요가 없다고 말했다. 애저 SQL 데이터베이스는 수정 없이 엔클레이브로 정보를 옮길 수 있다. 라일리는 "그러나 보통 컴퓨트 인스턴스에서 실행되는 다른 애플리케이션은 수정이 필요할 것이다”라고 지적했다.
마이크로소프트 오픈 엔클레이브 프레임워크만 이 문제를 해결하려 시도하는 것이 아니다. 구글도 에이실로(Asylo)라는 독자적인 방식으로 이를 시도하고 있다. 라일리는 “이 가운데 표준은 존재하지 않는다. 또한 특정 방식이 사실상의 표준으로 부상할 가능성도 크지 않다”라고 예상했다. editor@itworld.co.kr
August 26, 2020 at 12:33PM
https://ift.tt/31trh4T
표준이 없는 하드웨어 기반 암호화, 각기 다른 방식의 IBM과 인텔, AMD - ITWorld Korea
https://ift.tt/30wUX0O
No comments:
Post a Comment