2021년 2월 8일 월요일

[저작권 분쟁 소프트웨어] 소프트웨어 저작권과 공정이용에 관한 리버스엔지니어링


미국에서는 소프트웨어 리버스엔지니어링(Reverse Engineering, 프로그램역분석) 저작권 침해 여부에 대하여 다툼을 벌여 오다가, 1990년대에 공정이용의 항변이 받아들여져 리버스엔지니어링을 허용하게 되었습니다. Atari v. Nintendo 사건, Sega v. Accolade 사건, Sony v. Connectix 사건 등에서 공정이용의 원칙에 따라 리버스엔지니어링이 인정된 사안들입니다. 아래 내용은 강기봉, 컴퓨터프로그램의 리버스엔지니어링에 관한 법정책적 소고, 법제논단, 2014. 4. 논문의 내용을 참조하였습니다.

 

Atari v. Nintendo 사건에서 Atari NES칩의 목적코드의 해독을 시도했습니다. 닌텐도 콘솔의 보안용칩은 사용허가를 받지 않은 카트리지를 감지해 작동을 막는 10NES programming 프로토콜이 내장되어 있습니다. Atari 10NES 목적코드를 Binary code 필사하고 미국 저작권청(US Copyright Office)에서 얻은 10NES 원시코드를 이용하여 필사본의 에러를 보완하였습니다. Atari 최종 완성된 코드를 디스어셈블하고 분석하였습니다. Atari 10NES 해킹하기 위해 Rabbit 개발했는데, Rabbit 10NES 호환되도록 기능합니다. Atari 닌텐도의 NES 시스템에서 Atari사의 게임이 동작할 있도록 것입니다.

 

연방항소법원은 Atrai 미국 저작권청에서 부정하게 얻은 프로그램에 대해 공정이용의 원칙이 적용되지 않고 저작권 남용의 형평법 항변을 주장할 없다고 판단하였지만, 소프트웨어 프로그램에 대한 리버스엔지니어링은 공정이용에 해당될 있음이 확인되었습니다.

 

Sega v. Accolade 사건에서 Accolade Sega Genesis 콘솔의 호환조건을 확인하기 위해 Sega 게임프로그램을 리버스엔지니어링한 것이 문제가 되었습니다. Accolade 판매중인 Sega 게임 카트리지에 포함된 목적코드를 디스어셈블 또는 디컴파일을 통해 원시코드를 확보하고 이를 분석하여 Genesis 콘솔의 호환요건 등에 대한 매뉴얼을 작성하였습니다. 매뉴얼에는 인터페이스를 위한 설명만을 포함하고 Sega 목적코드, 소스코드 등은 포함되지 않았습니다.

 

CAFC 공정이용의 원칙에 대한 구체적인 판단 기준을 제시하면서 Accolade 리버스엔지니어링을 공정이용으로 판단하였습니다. 법원은 디스어셈블은 프로그램에서 보호받지 않는 부분들에 접근할 있는 유일한 방법이고 Accolade Genesis 콘솔의 호환되는 프로그램의 제작을 위한 리버스엔지니어링에 합법적인 이유가 있고 공정이용에 해당한다고 인정한 것입니다.

 

Sony v. Connectix 사건에서 Connectix VGS(Virtual Game Station) 에뮬레이터를 개발하기 위하여 PlayStation 하드웨어와 Bios 펌웨어를 모두 에뮬레이션한 것이 문제가 되었습니다. Connectix PlayStation 하드웨어의 에뮬레이션을 위해서, PlayStation내의 칩에서 BIOS 펌웨어를 추출하고 이것을 컴퓨터의 RAM 복제한 후에 VGS 하드웨어 에뮬레이션 과정에서 디버깅 프로그램 통해 BIOS 기능을 확인하고 BIOS 펌웨어를 이용하여 에뮬레이션 소프트웨어를 디버깅하였는데, Connectix 과정에서 Connectix BIOS 펌웨어를 복제하고 디스어셈블한 것입니다.

 

연방순회법원은 Connectix BIOS 펌웨어의 복제 이용을 Sony 프로그램의 보호받지 않는 요소들에 접근할 목적의 공정이용이라고 판결했습니다. 법원은 Sega v. Accolade 사건을 인용하여 디스어셈블이 저작권이 있는 컴퓨터프로그램에 내재된 아이디어와 기능 요소들에 대해 접근하는 유일한 방법이고 그런 접근에 합법적인 이유가 있는 경우에, 디스어셈블은 저작물의 공정이용이라고 판단하였습니다. 또한 공정이용의 원칙은 컴퓨터프로그램에 포함된 아이디어와 기능적 요소들에 대한 공중의 접근을 보장한다고 판시하였습니다.

 

우리나라 저작권법에도 위와 같은 사안을 위하여 프로그램의 복제와 리버스엔지니어링에 대한 공정이용 규정을 두고 있습니다.

 

저작권법 101조의3(프로그램의 저작재산권의 제한) 다음 호의 어느 하나에 해당하는 경우에는 목적상 필요한 범위에서 공표된 프로그램을 복제 또는 배포할 있다. 다만, 프로그램의 종류·용도, 프로그램에서 복제된 부분이 차지하는 비중 복제의 부수 등에 비추어 프로그램의 저작재산권자의 이익을 부당하게 해치는 경우에는 그러하지 아니하다.

6. 프로그램의 기초를 이루는 아이디어 원리를 확인하기 위하여 프로그램의 기능을 조사·연구·시험할 목적으로 복제하는 경우(정당한 권한에 의하여 프로그램을 이용하는 자가 해당 프로그램을 이용 중인 때에 한한다)

101조의4(프로그램코드역분석) 정당한 권한에 의하여 프로그램을 이용하는 또는 그의 허락을 받은 자는 호환에 필요한 정보를 쉽게 얻을 없고 획득이 불가피한 경우에는 해당 프로그램의 호환에 필요한 부분에 한하여 프로그램의 저작재산권자의 허락을 받지 아니하고 프로그램코드역분석을 있다.

 

 

저작권법 규정과 같이 호환을 목적으로 하지 않는 경우에는 리버스엔지니어링이 허용되지 않는다고 해석되므로 저작권법 101조의3 1 6호와 101조의4 규정은 미국에 비해 리버스엔지니어링의 허용 범위가 좁을 있다는 점은 주의가 필요합니다. 다만, 저작권법 35조의3 공정이용 일반규정을 이용한다면 호환 이외에 아이디어와 기능 등을 확인하기 위한 리버스엔지니어링도 허용될 있는 여지는 있습니다.

 

저작권법 35조의3(저작물의 공정한 이용) 23조부터 35조의2까지, 101조의3부터 101조의5까지의 경우 외에 저작물의 통상적인 이용 방법과 충돌하지 아니하고 저작자의 정당한 이익을 부당하게 해치지 아니하는 경우에는 저작물을 이용할 있다.

 

정회목 변호사




댓글 없음:

댓글 쓰기