디지털 서명은 온라인 주권(Sovereignty)의 중추입니다. 1976년에 공개키 암호가 출현하면서 글로벌 커뮤니케이션 매체, 인터넷 및 완전히 새로운 형태의 화폐인 비트코인(Bitcoin)을 탄생할 길을 열었습니다. 그 이후로 공개키 암호의 기본 속성은 많이 변경되지 않았지만 암호 작성기의 도구 상자에는 수십 개의 오픈 소스 디지털 서명 구조가 있습니다.
샤토시 나카모토(Satoshi Nakamoto)가 비트코인(Bitcoin)를 작업하기 시작했을때, 고려해야할 주요 설계 선택 사항중 하나는 개방적이고 허가 불필요한 금융 시스템에서 사용할 서명 방식이었습니다. 요구 사항은 명확했다. 샤토시(Satoshi)는 광범위하게 사용되고 잘 이해되고 안전하고 가볍고 가장 중요한 오픈소스 알고리즘을 필요로 했습니다. 당시 사용가능한 모든 옵션중에서 그는 ECDSA(Elliptic Curve Digital Signature Algorithm)과 같은 기준에 가장 적합한 옵션을 사용했습니다.
당시 ECDSA는 온라인 커뮤니케이션의 프라이버시를 향상시키기 위해 사이퍼펑크(Cypherpunk : 수신자만이 알 수 있는 암호로 정보를 보내는 사람) 베테랑들이 개발한 오픈 소스 암호화 도구인 OpenSSL에 의해 기본적으로 지원되었습니다. 다른 널리 사용되는 방식과 비교하여 ECDSA는 디지털 형태의 화폐를 위한 유용한 속성인 낮은 계산 요구 사항과 더 짧은 키 길이의 이점을 지니고 있습니다. 동시에 RSA와 같은 구조에 비슷한 수준의 보안을 제공했습니다. 예를 들어 256비트 ECDSA 키는 3,072 비트 RSA 키와 동등한 보안 기능을 갖습니다.
Pieter Wuille 및 다른 사람들이 secp256k1이라는 개선된 커브의 개발 노력 덕분에 (Elliptic Curve에서 처럼) 비트코인(Bitcoin)의 ECDSA가 보다 빠르고 효율적으로 수행되었습니다. 그러나 여전히 ECDSA에는 내재된 결함이 있습니다. 2년간의 연구와 실험끝에 비트코인(Bitcoin) 트랜잭션의 프라이버시와 효율성을 높이기 위해 슈미트 디지털 서명(Schnorr Digital Signature)인 새로운 서명 체계가 설정되었습니다.
슈노르 서명의 부상
슈노르 디지털 서명(Schnorr Digital Signature)가 ECDSA보다 많은 이점을 제공하더라도 확실히 새로운 것은 아닙니다. 그는 Claus-Peter Schnorr (독일의 암호 학자이자 학자)가 1980년대 프랑크푸르트 대학 (University of Frankfurt)의 교수이자 연구원이었을때 발명했습니다. 그의 제안된 서명 구조는 David Chaum, Taher EIgamal, Amos Fiat 및 Adi Shamir의 연구와 개발 작업이 융합된 것입니다. 그럼에도 불구하고 그것이 발표되기 전에 수년 동안 직접 사용하지 못하게 막은 새로운 발명 구조에 대한 특허를 클라우스 슈노르 (Claus Schnorr)가 가지고 있었습니다.
흥미롭게도 ECDSA의 전신인 DSA는 Claus Schnorr의 특허를 회피하기 위해 고안된 ElGamal과 Schnorr 혼합체였습니다. 실제로 Schnorr의 미국 특허가 발급된지 2개월 만에 DSA의 선구자인 미국 국립 표준 기술 연구소 (NIST)도 해결 방법에 대한 특허를 제출했습니다. 사이퍼펑크(Codypunks) 이력을 보면 Cloth Schnorr는 그의 특허에 대해 매우 방어적이었습니다.
슈노르 서명(Schnorr Signature)이 도입된지 거의 20년이 지난 2008년 Claus Schnorr의 특허가 만료되었습니다. 우연히도, 2008년은 우리가 가장 좋아하는 사이퍼펑크 샤토시 나코모토(Satoshi Nakamoto)가 비트코인(Bitcoin)을 구현한 해였습니다. 슈노르 서명(Schnorr Signature)이 당시 사용되었을지라도 표준화되거나 널리 사용되지는 않았지만 샤토시가 ECDSA 대신 사용하려는 동기였습니다. 암호 학자들과 수학자들에 의해 종종 혹평되었지만, ECDSA는 널리 사용되고 있었고 당시에는 비트코인(Bitcoin)을 위한 더 안전한 옵션을 제공했습니다.
비크코인에서의 슈노르
일부 알트코인(Altcoin)들의 인기있는 옵션이 ed25519와 같은 표준화된 구현으로 오늘날에는 덜 난해합니다. 비트코인(Bitcoin)에서 Schnorr를 구현할 가능성이 엿보인 비공식적인 회담은 2014년 BitcoinTalk 스레드로 거슬러 올라간다. 하지만 이 제안은 Pieter Wuille이 Schnorr BIP를 작성했을때 수년간의 연구와 실험을 거쳐 공식화되었다. 이 BIP 초안은 잠재적인 Schnorr 구현의 사양 및 기술을 기술하며 ECDSA에 비해 다음과 같은 이점을 제공합니다.
· 보안 증명 (Security Proof) : Schnorr 서명의 보안은 충분히 임의의 해시 함수(임의 오라클 모델)가 사용되고 서명에 사용된 ECDLP (이산 로그 문제)가 충분히 확고할때 쉽게 증명할 수 있습니다. 그러한 증명(Proof)는 ECDSA에는 존재하지 않습니다.
· 비유연성 (Non-malleability) : ECDSA 서명은 본질적으로 유연성이 있으므로 제3자가 기존의 유효한 서명을 변경하기 위해 개인 키에 액세스하지 않고도 가능하도록 할 수 있습니다. 이 문제는 BIP62에서 정식으로 논의되었습니다. 이와 대조적으로, 슈노르 서명(Schnorr Signature)는 비유연성 (Non-malleability)을 가지므로 이를 막을 수 있습니다.
· 선형성 (Linearity) : 슈노르 서명(Schnorr Signature)은 여러 당사자가 공동 키의 합계에 유효한 서명을 생성하기 위해 협업할 수있는 뛰어난 속성을 가지고 있습니다. 이것은 다중 서명 및 기타 스마트 계약과 같은 효율성 및 개인 정보 보호를 향상시키는 다양한 상위 수준의 구조을위한 구성 요소입니다.
2019년 7월 13일 토요일
2019년 5월 11일 토요일
Remote Desktop Protocol (RDP) 개요
RDP (Remote Desktop Protocol :
원격 데스크톱 프로토콜)는 Microsoft에서 개발한 프로토콜로 서버에서 실행되는 Windows 기반
응용 프로그램의 보안 네트워크 통신 프로토콜입니다.
RDP을 사용한 네트워크 연결을 통해 다른 컴퓨터에 연결할 수 있는 그래픽 인터페이스를 사용자에게 제공합니다. 사용자는 이를 사용하기 위해서 RDP 클라이언트 소프트웨어를 사용하지만
반대편 컴퓨터는 RDP 서버 소프트웨어를 실행해야 합니다.
RDP를 통해 네트워크 관리자는 개별 가입자가 겪고 있는 문제를 원격으로 진단하고 해결할 수 있습니다. RDP는 Windows 운영 체제와 Mac OS X의 대부분의 버전에서 사용할 수 있습니다. 오픈 소스
버전도 사용할 수 있습니다.
RDP는 여러 유형의 네트워크 및 여러 LAN 프로토콜을 지원하도록
설계되었습니다.
기본
아키텍처
RDP는 ITU T.120 프로토콜 패밀리를 기반으로 하며 확장됩니다. RDP는 암호화된 클라이언트 마우스 및 키보드 데이터뿐만 아니라 서버로부터 장치 통신 및 데이터를 전달하는
별도의 가상 채널을 허용하는 다중 채널 프로토콜입니다. RDP는 확장 가능한 기반을 제공하며 데이터
전송을 위한 최대 64,000개의 개별 채널과 다중 지점(Multipoint)
전송을 위한 기능을 지원합니다.
서버에서 RDP는 자체 비디오
드라이버를 사용하여 RDP 프로토콜을 사용하여 렌더링 정보를 네트워크 패킷으로 구성하고 네트워크를 통해
클라이언트로 전송함으로써 디스플레이 출력을 렌더링합니다. 클라이언트에서 RDP는 렌더링 데이터를 받고 해당 그래픽 장치 인터페이스 (GDI :
Graphic Device Interface) API 호출로 패킷을 해석합니다. 입력 경로의
경우 클라이언트 마우스 및 키보드 이벤트가 클라이언트에서 서버로 전송됩니다. 서버에서 RDP는 자체 키보드 및 마우스 드라이버를 사용하여 이러한 키보드 및 마우스 이벤트를 수신합니다.
원격 데스크톱 세션에서는 RCP-Tcp 연결
설정에 따라 모든 환경 변수 (예 : 색상 깊이와 배경 화면
활성화 및 비활성화를 결정하는 변수)가 결정됩니다. 이는
원격 데스크톱 웹 연결 레퍼런스 (Remote Desktop Web Connection Reference) 및
원격 데스크톱 서비스 WMI 공급자 인터페이스(Remote
Desktop Service WMI Provider Interface)에서 환경 변수를 설정하는 모든 함수 및 메서드에 적용됩니다.