# data[].attributes.body
https://m.blog.naver.com/inventup/220898532558
​소프트웨어의 권리를 확보하는 방법은 특허와 저작권, 영업비밀 등이 있는데요. 정보통신기술이 발달하기 전에는 주로 저작권과 영업비밀을 바탕으로 그 권리를 확보했습니다.

​
소프트웨어에 대한 저작권은 컴퓨터 프로그램 저작권으로 별도로 보호되고 있습니다. 컴퓨터 프로그램 저작권은 프로그램의 소스코드에 대해 저작권 등록을 부여하도록 규정됩니다. 다만, 저작권의 좁은 권리    범위 특성상, 눈에 드러나는 UI가 실질적으로 같더라도 소스코드가 다르게 구현되는 경우 침해로 주장하기 어려울 수 있기 때문에, 제3자가 회피하기에 용이합니다. 따라서, 저작권으로 소프트웨어를 실질적으로 보호하기는 어렵습니다.

​
영업비밀로 소프트웨어 소스코드를 관리하더라도, 그 소프트웨어의 UI가 사용자나 경쟁업체들에게 노출되는 이상, 쉽게 베껴서 개발이 가능할 정도로 종래의 기술수준이 이미 진보한 상태이며, 리버스 엔지니어링 등 소스를 추출하는 툴이 등장하는 등 제3자가 굳이 소스코드를 빼내지 않더라도 유사하게 따라서 제작할 수 있는 가능성이 높다는 점에서 원천적인 보호수단이 되기 어렵습니다.

이에 따라 소프트웨어에 대해 특허로 권리를 보호받는 방법이 대중화되기 시작했는데요. 저작권과는 다르게 표현방식이 아닌 기술적 사상의 창작을 보호하기 때문에 보호 범위가 넓고, 등록 후 출원일로부터 20년간 권리를 확보하기 때문에 보다 안정적이라는 장점이 있습니다.

​

# data[].attributes.attachment_link.title
소프트웨어 특허란 무엇일까?

# data[].attributes.attachment_link.description
정보통신기술 산업이 고도화됨에 스마트 디바이스, BM(Business Model) 특허 등 다양한 특허가 출원되…

# data[].attributes.body
1단계 : 등록의 대상 및 종류, 신청인 적격 등 신청 전 확인

귀하가 등록하고자 하는 신청물이 등록 대상에 해당하는지, 어떤 종류의 등록을 신청하여야 하는지를 확인합니다. 등록은 ‘1저작물 1등록’이 원칙이므로, 등록 대상물의 수와 등록의 종류마다 각각 신청하여야 합니다. 또한 신청인이 적격한 등록권리자 또는 등록의무자여야만 등록을 신청할 수 있습니다.

등록 대상 : 저작물(컴퓨터프로그램 포함), 저작인접물(실연, 음반, 방송), 데이터베이스

2단계 : 신청서류 작성 및 제출(신청 접수)

등록신청은 온라인 등록시스템을 이용하거나 위원회 직접방문 또는 등기우편 제출로 하실 수 있습니다.

온라인 등록시스템 이용 접수 : 인증서와 회원가입 필수

3단계 : 등록 기관의 심사

신청이 접수되면 심사단계를 거치게 됩니다. 서류와 요건에 하자가 없는 경우에는 등록이 완료되나, 그렇지 않은 경우에는 각각 서류보완 단계를 밟거나 신청반려가 됩니다. 등록의 처리기간은 업무일 기준으로 4일이며, 모든 서류가 구비된 때로부터 기산됩니다.

4단계 : 등록 기관의 결과 통보

등록 담당자가 해당 신청의 최종 결과를 통보합니다

위 절차들을 통해 저작권을 취득하게된다면, 자신이 만든 소프트웨어를 보호 할 수 있다.

# data[].attributes.body
소프트웨어의 가장 일반적인 보호방안은 저작권적 보호방안이다. 저작권은 등록과 관계없이 발생하므로 특허와 다르게 권리발생에 비용이 들어가지 않으며, 소송에서 ‘원고가 저작권자인가’, ‘원고의 소프트웨어와 피고의 소프트웨어 사이에 실질적 동일성이 있는가’의 쟁점만 검토하면 되므로 소송수행이 상대적으로 수월하다.

나아가 특허는 등록특허의 무효를 구하는 심판이 들어와서 원고의 권리를 아예 송두리째 앗아가 버리는 경우도 있지만, 저작권 소송에서는 이러한 경우가 상대적으로 매우 적어 원고로서도 자신의 권리보존에 유리한 측면이 있다.

또한 영업비밀은 비밀유지성 때문에 소송에서 영업비밀로 인정받는 데 힘이 들지만, 저작권 소송에서 자신의 소프트웨어가 저작물이라는 점에 대한 입증 과정에서 힘이 들 것은 없다.

하지만 소프트웨어의 특성상 동일·유사한 기능을 가진 소프트웨어의 생성이 용이함에도, 소스코드 사이에 실질적 유사성이 없다면 자신의 소프트웨어를 저작권으로 보호받을 수 있는 방안이 없기에, 저작권보다 강력한 소프트웨어 특허에 관한 논의가 끊이지 않았고, 현재는 미국뿐만 아니라 우리나라에서도 소프트웨어의 특허를 인정하고 있다.

# data[].attributes.body
1. 특허에 의해 sw 보호하는 방법/절차 검색해보고 요약 정리
(링크를 함께 첨부/혹은 이미지)

# data[].attributes.headline
2. 상표권에 의한 소프트웨어 보호 사례(이미지만 첨부)

# data[].attributes.subject
2. 상표권에 의한 소프트웨어 보호 사례(이미지만 첨부)

# data[].attributes.headline
3. 소프트웨어 보호를 위한 기술적 조치 유형 (예시 외 2개 이상 구체적으로 작성)+링크도 함께 첨부

# data[].attributes.subject
3. 소프트웨어 보호를 위한 기술적 조치 유형 (예시 외 2개 이상 구체적으로 작성)+링크도 함께 첨부

# data[].attributes.body
예시)디지털 워터마킹
디지털 콘텐츠의 저작권 정보를 식별할 수 있도록 원본 콘텐츠(저작물 원본)에 사람들의 눈에는 보이지 않는 특정 디지털 워터마크를 삽입하는 기술이다.

1)

2)

# data[].attributes.body
특허권은 설정등록이 있는 날로부터 특허출원일 후 20년 동안 인정됩니다. 시장 독점력을 가질 수 있는 기간을 한정하여 특허권자의 이익을 도모하는 한편, 존속기간 만료 후에는 누구나 이용할 수 있도록 하여 형평성을 꾀하고 있습니다. 또한 특허는 특허로서 보호받고자 하는 모든 나라에 각각 출원하여 등록받아야 합니다. 우리나라에서 특허등록을 받았더라도 미국에 권리로서 등록되지 않은 경우에는 제3자가 미국에서 동일 제품을 판매하는 등의 실시행위를 하는 경우에도 권리행사를 할 수 없습니다.

특허권은 시장 독점을 통한 경쟁력을 확보할 수 있다는 장점이 있습니다. 특허권의 이러한 독점성은 특허를 통한 지식 영토의 확장을 가능하게 하는 것으로서 기술의 표준화 정책과 맞물린 특허풀의 형성으로 시장 독점력을 형성해 나갈 수 있는 기회가 되기도 합니다.

특허권의 독점성은 제3자에게 있어서는 배타성으로 표현됩니다. 즉 정당한 권원이 없는 제3자가 특허 발명을 제조하는 등의 실시 행위를 하는 경우에는 이에 대해서 민사적 제제로서 침해금지 및 예방청구권, 손해배상청구권, 부당이득반환청구권 등을 행사하거나 고소 등의 형사적 제제 조치를 취할 수 있습니다.

# data[].attributes.attachment_link.readable_text
특허권은 심사를 통하여 등록이 결정되고 등록료를 납부하는 시점부터 특허권이 발생합니다. 특허권은 기술의 공개에 대한 대가로서 인정되는 무형의 재산권이라 할 수 있습니다. 『특허법』의 목적이 일정 요건을 구비한 발명을 한 자에게 독점·배타적인 권리를 부여하는 것에 의해서 산업발전을 도모하고자 하는 것임을 이해한다면, 재산권으로서 특허권의 효력을 이해하는데 도움이 될 것입니다.

특허권은 설정등록이 있는 날로부터 특허출원일 후 20년 동안 인정됩니다. 시장 독점력을 가질 수 있는 기간을 한정하여 특허권자의 이익을 도모하는 한편, 존속기간 만료 후에는 누구나 이용할 수 있도록 하여 형평성을 꾀하고 있습니다. 또한 특허는 특허로서 보호받고자 하는 모든 나라에 각각 출원하여 등록받아야 합니다. 우리나라에서 특허등록을 받았더라도 미국에 권리로서 등록되지 않은 경우에는 제3자가 미국에서 동일 제품을 판매하는 등의 실시행위를 하는 경우에도 권리행사를 할 수 없습니다.

특허권은 시장 독점을 통한 경쟁력을 확보할 수 있다는 장점이 있습니다. 특허권의 이러한 독점성은 특허를 통한 지식 영토의 확장을 가능하게 하는 것으로서 기술의 표준화 정책과 맞물린 특허풀의 형성으로 시장 독점력을 형성해 나갈 수 있는 기회가 되기도 합니다.

특허권의 독점성은 제3자에게 있어서는 배타성으로 표현됩니다. 즉 정당한 권원이 없는 제3자가 특허 발명을 제조하는 등의 실시 행위를 하는 경우에는 이에 대해서 민사적 제제로서 침해금지 및 예방청구권, 손해배상청구권, 부당이득반환청구권 등을 행사하거나 고소 등의 형사적 제제 조치를 취할 수 있습니다.

특허권은 무형의 재산권으로서 유형의 재산권과 마찬가지로 자유로운 처분이 가능합니다. 특허권의 전체 또는 그 일부를 제3자에게 양도할 수 있습니다. 한편 특허권은 특허권자가 보유한 채, 특허권을 기초로 하여 제3자에게 해당 기술을 실시할 수 있는 권한을 설정하거나 담보를 제공하는 것에 의해서 재산적 이익을 꾀할 수도 있습니다. 실시권은 실시권의 강도에 따라 전용실시권과 통상실시권으로 구별될 수 있습니다. 전용실시권은 실시 허락된 범위 내에서 특허권자의 사용도 배제되는 독점·배타적인 강력한 권리입니다. 이에 대해 통상실시권은 동일 기술에 대해서 비독점적 실시권을 갖는 것이며, 동일 기술에 대해서 다수에게 통상실시권이 설정될 수 있습니다.

대학 기술의 공익적 성격을 고려하여, 대학 소유 발명에 대해서는 통상실시권 설정을 원칙으로 합니다. 다만 기술의 상용화를 위해서 특정 기업에서 연구 개발을 계속할 필요성이 있다거나, 특정 기업이 해당 분야에서의 기술적·산업적 영향력이 특출하다는 등의 이유가 있는 경우에는 특정 기업에 전용실시권을 설정하는 것이 사회적 이익과 대학의 이익에 모두 부합할 수 있습니다. 기술이전의 방식(매매, 전용실시권 설정, 통상실시권 설정)은 기술의 속성 및 기업의 사업화 능력 등의 제반 사항을 고려하여 탄력적으로 선택되어야 합니다. 일반적으로 기술의 성격이 원천적이거나 범용적일수록 통상실시권 허여를 원칙으로 합니다.

# data[].attributes.attachment_link.title
특허권의 효력은 무엇인가요? |

# data[].attributes.attachment_link.description
특허권은 심사를 통하여 등록이 결정되고 등록료를 납부하는 시점부터 특허권이 발생합니다. 특허권은 기술의 공개에 대한 대가로서 인정되는 무형의 재산권이라 할 수 있습니다. 『특허법』의 목적이 일정 요건을 구비한 발명을 한 자에게 독점·배타적인 권리를 부여하는 것에 의해서 산업발전을 도모하고자 하는 것임을 이해한다면, 재산권으로서 특허권의 효력을 이해하는데 도움이 될 것입니다.

# data[].attributes.body
개인의 아닌 한 회사로써 방법을 제시하면 그 회사의 소프트웨어를 지키는 보호법과 절차는 이러합니다.
컴퓨터 소프트웨어는 컴퓨터프로그램은 기본적으로 저작권 적인 성격이 강하여 특허법 보다는 별도의 컴퓨터프로그램보호법에 의하여 보호받고 있기에 특허에 의존 하는 것 보단 법쪽에 의존 하는 것이 좋습니다.
그리하여 그 보호법을 사용하는 방법 4가지를 적습니다.
1.보유하고 있는 권리, 이 권리를 보호하는 최선의 방법을 명확히 하려면 유능한 변호사나 법률팀을 고용합니다.
2.가능한 경우 특허를 출원하고 상표를 등록합니다.
3.직원과 독립 계약자를 주의 깊게 살펴보고 함께 일하기 전에 비밀 유지 계약에 서명하도록 합니다.

4.데이터 저장과 작업은 안전한 장치를 이용하고 데이터 보안에 대한 모든 모범 사례를 따릅니다

# data[].attributes.attachment_link.readable_text
1. 컴퓨터프로그램은 기본적으로 저작권적인 성격이 강하여 특허법 보다는 별도의 컴퓨터프로그램보호법에 의하여 보호받고 있습니다. 컴퓨터 프로그램등록에 관하여는 등록을 담당하는 정보통신부 산하 프로그램심의조정위원회(www.pdmc.or.kr)에서 상세한 안내를 받으실 수 있습니다.

2. 컴퓨터프로그램에 대한 특허등록은 원칙적으로 불가능합니다(정보통신부 소관의 컴퓨터프로그램보호법의 대상임). 그러나 컴퓨터프로그램을 기록한 컴퓨터로부터 읽을 수 있는 기록매체를 청구한 경우에 컴퓨터프로그램의 기능을 실현 가능하게 하는 매체와 컴퓨터프로그램간의 구조적, 기능적 상호관계를 정의하고 있으면 특허의 대상이 될 수 있습니다.

3. 특허청 컴퓨터관련발명심사기준은 『그 발명이 산업상 이용할 수 있는 구체적 수단, 즉 해당 기술분야의 통상의 지식을 가진 자의 수준에서 당해 발명의 기술적 사항을 이해하는데 필요한 발명이 해결하고자 하는 과제와 과제를 해결하기 위한 수단이 명세서에 기재되어 있는지를 파악하여야 하며, 과제를 해결하기 위한 수단은 그 수단 또는 기능이 어떻게 구현되는가를 플로우챠트 등을 이용해서 구체적으로 설명되고 있는지를 검토해서 특허여부를 판단』하도록 함으로써, 컴퓨터 프로그램을 이용한 구체적 수단 등이 특허대상임을 명확히 하고 있습니다.

4. 특허의 대상이 되는 프로그램
- 물건의 발명 특허청구범위가 하드웨어 또는 하드웨어와 소프트웨어의 결합형태로 기계 또는 제조물의 물리적 구조를 특정하여 유용한 기계 또는 제조물을 정의하는 경우에는 물건의 발명으로 인정됩니다. 또한 프로그램을 기록한 기록매체 또는 데이터구조를 기록한 기록매체는 물건의 발명으로서 청구항에 기재할 수 있으며 그 기록매체를 기능적으로 특정한 경우에는 물건의 발명으로 인정됩니다. 그러나 컴퓨터로 읽을 수 있는 기록매체에 기록되지 않은 데이터 구조, 컴퓨터프로그램리스트 자체는 특정의 대상이 아니며 정보의 단순한 제시나 자연현상, 사실이나 데이터의 단순한 배열․축적 등은 발명으로 인정되지 않으므로 특허대상이 되지 않습니다.
- 방법의 발명 컴퓨터 프로그램에 있어서의 기술적 사상은 그 프로그램의 수순으로부터 파악할 수 있는데, 그 프로그램이 문제해결을 위해 이용하는 수순의 법칙성이 자연법칙인 경우에는 자연법칙을 이용한 방법의 발명으로 특허될 수 있습니다. 이때 자연법칙 이용 여부는 컴퓨터 관련발명의 구성요소의 결합전체를 판단대상으로 하여야 합니다. 특허청구범위에는 소프트웨어에 의하여 실행되는 수순을 명확하게 기재하여야 하며 소프트웨어에 의해 실행되는 수순과 컴퓨터와 응용 기기를 구성하는 것에 의해 실행되는 수순을 시계열적(時計列的)으로 연결된 일련의 처리 또는 조작과정을 순차적으로 기재하여야 합니다. 특허청구범위에 수식이나 수학적 알고리즘 자체를 권리로서 청구하고 있으면 방법의 발명으로 성립할 수 없습니다. 청구항이 수학적 알고리즘을 수행하는 수학적 연산만으로 구성되거나 추상적인 아이디어만을 기재하고 있을 경우에는 방법특허로서 인정되지 않습니다.
- 장치발명 컴퓨터가 어떤 장치나 시스템에서 특정의 기술적 목적을 달성하는 기능실현수단으로 이용되는 경우 이러한 기능실현수단에 의해 구성되는 발명은 장치발명으로서 특허가 될 수 있습니다. 이 경우에도 발명의 성립성 여부 및 자연법칙 이용 여부는 구성요소 전체의 결합관계를 대상으로 하여 판단하여야 합니다. 특허청구범위에는 발명에 필요한 소정의 다수 기능실현수단과 그 외의 컴퓨터 응용기기를 구성하는 것과의 결합관계를 명백하게 기재하여야 하며, 기능실현수단 대신 컴퓨터의 동작 또는 프로그램의 실질적 내용에 상당하는 수순을 기재하여서는 아니 됩니다. 특허청구범위에 수식이나 수학적 알고리즘 자체를 권리로서 청구하고 있으면 장치의 발명으로서 성립할 수 없습니다. 이와 같이 해석하는 것은 수식이나 수학적 공식 자체만으로는 자연법칙을 이용하였다고 볼 수 없기 때문입니다.

# data[].attributes.attachment_link.title
컴퓨터프로그램도 특허로 등록 할 수 있습니까? |

# data[].attributes.attachment_link.description
1. 컴퓨터프로그램은 기본적으로 저작권적인 성격이 강하여 특허법 보다는 별도의 컴퓨터프로그램보호법에 의하여 보호받고 있습니다. 컴퓨터 프로그램등록에 관하여는 등록을 담당하는 정보통신부 산하 프로그램심의조정위원회(www.pdmc.or.kr)에서 상세한 안내를 받으실 수 있습니다.

# data[].attributes.body
소프트웨어를 사용하고자 할 경우 먼저 보호 받는 저작물을 확인하여 저작권자가 있다면 합법적인 비용을 치른 후 이용해야 함.

소프트웨어를 창작하는 사람의 기술적인 사상이나 아이디어는 특허에 의해 보호 받을 수 있다.

# data[].attributes.body
1. 특허에 의해 sw 보호하는 방법/절차

특허는 등록특허의 무효를 구하는 심판이 들어와서 원고의 권리를 아예 송두리째 앗아가 버리는 경우도 있지만, 저작권 소송에서는 이러한 경우가 상대적으로 매우 적어 원고로서도 자신의 권리보존에 유리한 측면이 있다.

특허는 소스코드의 표현 자체를 보호하는 것은 아니고 소프트웨어의 구현 과정에서 나타나는 기술적 사상을 보호하기 때문에, 소프트웨어의 실질적 보호 달성에 크게 기여한다.

하지만 특허는 반드시 등록이 돼야 권리가 발생하는데, 저작권과 달리 특허로서 등록시키는 데 비용이 많이 들어가고, 특허청에서 특허를 등록받는 과정도 쉽지 않다.

일단 소프트웨어 특허를 등록시킨 이후에 침해자를 발견한 경우, 저작권과 달리 특허권자의 침해금지소송, 특허권자의 권리범위확인심판, 상대방의 특허무효심판 등의 소송다발적 현상이 발생하기 때문에 저작권과 달리 실제 소송과정이 용이하지도 않다.

나아가 상대방의 특허무효심판 때문에 돈과 노력을 들여 등록시킨 소프트웨어 특허가 아예 날아가는 경우도 있어 이 위험을 안고 소송을 할 수밖에 없다.

# data[].attributes.headline
1.특허에 의해 소프트웨어를 보호하는 방법/절차

# data[].attributes.subject
1.특허에 의해 소프트웨어를 보호하는 방법/절차

# data[].attributes.body
소프트웨어는 특허법이 정의한 발명의 조건인 자연법칙을 이용한기술적 사상의 창작으로서 고도한 것이어야만 한다는 조건을 충족시키지 못하므로 특허를 통한 권리 획득과 보호가 모호하고 까다롭다.소프트웨어 발명이 특허로 등록되기 위해서는 신규성과 진보성을 만족해야 한다.

# data[].attributes.attachment_link.provider_name
네이버 블로그 | 윕스 공식기업블로그 아이디어 놀이터

# data[].attributes.attachment_link.title
소프트웨어의 권리 보호 방법

# data[].attributes.attachment_link.description
소프트웨어의 권리 보호 방법   4차산업혁명 시대의 도래와 함께 컴퓨터를 이용한 운영체제, 모바일…

# data[].attributes.body
소프트웨어 특허는 컴퓨터 프로그램 또는 CPU를 이용해 운영되는 기술에 관한 특허이다.
이는 어떠한 한 소프트웨어 전체를 하나의 특허로 만드는 것이 아닌 각 기능별로 특허를 받아야한다. 각 기능이 기존에 없었던, 긍정적인 효과를 가져야만 인정받을 수 있다.

# data[].attributes.attachment_link.title
[특허초보를 위한]지식재산 가이드 : 네이버 블로그

# data[].attributes.body
소프트웨어 특허는 컴퓨터 프로그램 또는 컴퓨터 프로세서를 이용하여 운영되는 기술에 관한 특허를 말합니다. 사실 소프트웨어 특허에 대한 명확한 정의는 없지만 이미 많은 나라에서 이미 소프트웨어 특허를 인정하고 출원 및 등록을 진행하고 있습니다. 컴퓨터 프로그램을 이용하는 모든 기술이 소프트웨어 특허의 대상이 될 수 있습니다.

소프트웨어에 대한 특허는 방법, 장치(시스템), 컴퓨터 판독 가능한 저장매체, 컴퓨터 판독 가능한 저장매체에 저장된 컴퓨터 프로그램 등으로 작성될 수 있습니다. 이러한 구성이 실행되는 장치는 하나여야합니다. 특히, 방법도 하나로 기재되어야 합니다.

# data[].attributes.headline
법률행위적 행정행위 확인행위 분쟁을 

# data[].attributes.body
법률행위적 행정행위 확인행위 분쟁을 전제,(판단)행위, (불가변력)공증행위 분쟁을 전제않음, (인식)행위, (공적인 증거력)부관의 가능성 법률행위적 행정행위 재량행위 단, (공무원 임용),(귀화허가)등은 부관기속행위 단, 법령에 규정이 있으면 부관준법률행위적 행정행위 단,(확인),(공증)에 (종기)와 같은 부관은 붙일수있다는 반대 견해있음.행정행위의 하자1. 공법상 의:공법상 계약이란 (공법적 효과)의 발생을 목적으로 하는 (복수당사자) 사이의 서로 (반대 방향)의 의사표시의 합치에 의하여 성립하(비권력적 쌍방행위)⑵ 성립가능성‧자유성⑶ 종 류 행정주체 상호간의 공법상 계 행정주체와 사인간의 공법상 계약 사인 상호간의 공법상 계약 토지수용에 있어서 기업자와 토지소유자(관계인)간의 (협의)4. 행정지도⑴ 의의:행정주체가 일정한 행정목적의 실현을 위하여 상대방의 임의적 협력(동의)하에 일정한 행정질서의 형성을 유도하는(비권력적 사실행위)1. 행정계획의 의의 : 행정주체가 일정한 (행정활동을 위한 목표를 설정)하고 서로 관련되는 (행정수단의 종헙, 조정)을 통하여 목표로 설정된 장래의 일정한 시점에 있어서의 일정한 질서를 실현하기 위한 (구상) 또는 활동기준설정행위⑴ 대집행의 의:행정법상의 대체적 작위의무의 불이행의 경우에 당해 행정청이 (스스로) 행하거나 또는 (제3자)로 하여금 이를 행하게 하고 그에 관한 비용을 의무자로부터 징수하는 행정상의 강제집행(행정대집행법)2. 행정상 즉시강제⑴ 의 의:목전의 급박한 행정상 장해를 제거해야 할 필요가 있는 경우에 미리 의무를 명할 시간적 여유가 없거나, 또는 그 성질상 의무를 명해 가지고는 그 목적을 달성하기 곤란한 때. (행정상 즉시집행)⑵ 근 거: 일반적 규정으로 (경찰관직무집행법)이 있고, 개별법도 많이 있다. (전염병 예방법, 마약법, 소방법, 식품위생법 등)

# data[].attributes.attachment_link.readable_text
시간과 노력, 비용을 쏟아부어 훌륭한 소프트웨어를 개발하고 시장에 출시할 준비가 되었다면, 이제 이 소프트웨어를 어떻게 보호할 것인지 고민해야 합니다.
소프트웨어 보호가 필요한 이유

기업 수익을 저해할 수 있는 저작권 침해, 무단 복제, 또는 소프트웨어의 기타 무단 사용

기업 데이터나 고객 데이터를 위험에 빠뜨리는 보안 침해

물리적인 형태가 있는 제품을 판매하는 경우에는 제품을 보호하는 것이 그렇게 복잡하지는 않습니다. 잠금 장치와 열쇠로 제품을 보관하여 나쁜 의도를 가진 사람이 제품에 접근하지 못하도록 하는 것입니다.

소프트웨어는 다릅니다. 보호되지 않는 소프트웨어를 승인 없이 여러 장치에서 복사, 복제하거나 사용하기는 매우 쉽습니다. 또한, 고객이 소프트웨어를 사용해 민감한 데이터를 저장한 경우, 해커가 침투해 수집하기 쉽습니다.

소프트웨어를 잘 보호한다는 것은 고객이 정보가 안전하리라 믿고 제품을 사용할 수 있다는 것을 의미합니다.

소프트웨어 보호 유형을 세 가지 살펴보겠습니다.

소프트웨어 저작권 보호

저작권이란 창작물을 복제할 수 있는 권리입니다. 즉, 창작물 도용을 방지하여 원저작물의 창작자를 보호하는 지적 재산권의 한 유형입니다. 저작권은 아이디어나 개념을 보호하는 것이 아니라 아이디어나 개념의 표현만을 보호한다는 점에 유의해야 합니다. 소프트웨어에서 이는 실제 코드를 의미합니다.

소프트웨어 저작권 보호란

소프트웨어 저작권 보호란 소프트웨어를 복제하여 불법적으로 사용하지 못하게 하는 것입니다.

이론적으로 소프트웨어는 유형 매체에 코드가 고정되는 즉시 저작권법의 보호를 받게 되므로 저작권법이 자동으로 소프트웨어 저작권을 보호한다고 볼 수 있습니다. 그러나 이는 실제로 그렇게 효과적이지가 않습니다. 다른 사람이 소프트웨어를 복제할 수 없다는 것을 의미할 뿐입니다. 적어도 미국에서는 미 저작권청 에 먼저 등록하지 않는 한, 저작권 침해를 고소할 수도 없습니다.

등록했더라도 소송을 유일한 소프트웨어 저작권 보호 방법으로 삼는 것은 좋은 전략이 아닙니다. 제품을 복제한 사람을 실제로 잡아서 소송을 제기하고 법원에서 소프트웨어를 무단 복제했음을 입증하는 데 상당한 돈과 시간을 소비해야 한다는 뜻이기 때문입니다.

이는 제한된 예산으로 .Net 애플리케이션이나 기타 오픈소스 개발 프로그램의 복제를 방지하고자 하는 소규모 소프트웨어 개발자에게 특히 큰 문제입니다. 저작권 침해를 발견했을 때 법적 조치를 취하는 것은 차치하고 저작권 침해를 모니터링할 수단조차 이들에게는 없습니다.

그렇다면 더욱 효과적인 소프트웨어 저작권 보호 전략에는 무엇이 있을까요?

저작권 침해를 쉽게 증명할 수 있는 방법 한 가지는 의도적으로 코드 내에 중복 구성 요소를 심는 것입니다. 누군가가 코드를 복제했다고 의심될 때 중복 구성 요소를 찾을 수 있으면, 코드 복제가 이뤄졌다는 강력한 증거가 됩니다. 다시 한 번 말하자면, 이 소프트웨어 저작권 보호 전략에는 소송이 수반되지만 적어도 법무팀의 일이 더 수월해집니다.
누가 소스 코드를 볼 수 있는지 조심하기
소프트웨어 공급기업은 항상 모범 사례를 따르면서 권한 있고 신뢰할 수 있는 사람만 소스 코드에 액세스하도록 해야 합니다. 직원을 주의 깊게 검증하고 아웃소싱할 때는 신뢰 수준이 높은 추천 자료를 확보합니다.
ID 기반 라이선스 솔루션 사용
최종 사용자가 소스 코드에 액세스하는 것을 막을 수는 없더라도 ID 기반 라이선싱 솔루션을 사용하면 프로그램을 사용하는 사람에 대해 가능한 한 많은 정보를 얻을 수 있습니다.

ID 기반 라이선싱 솔루션은 사용자 이름과 비밀번호 같은 특정 자격 증명을 사용하는 사용자에게만 액세스를 허용합니다. Sentinel EMS 와 같은 라이선싱 관리 시스템을 사용하면 누가 언제 어떤 제품을 사용하는지 추적 관리하는 데 유용한 여러 데이터에 액세스할 수 있습니다.

SaaS 보호

SaaS(Software as a Service)는 점점 더 인기를 얻고 있는 소프트웨어 제공 모델입니다. 소프트웨어를 한 번 구입해 설치하고 지정된 장치에만 사용하는 대신, 사용자는 구독제로 소프트웨어를 구입하고 원격 서버를 통해 액세스하여 사용할 수 있습니다. 이 모델은 비용 효율적이고 유연한 편입니다. 고객은 여러 장치에서 소프트웨어에 액세스할 수 있으며 항상 최신 버전의 소프트웨어를 사용할 수 있습니다.

SaaS 보호란

SaaS 보호에는 두 가지 구성 요소가 있습니다.

1. 프로그램 자체의 무단 사용 방지 - 무단 복제·절도로부터 공급기업 보호
2. 최종 사용자가 프로그램에 입력한 데이터 보안 - 데이터 침해로부터 고객 보호

SaaS 보호는 이 두 가지 구성 요소를 고려하는 것 외에도 해커가 악용할 수 있는 '진입 지점'이 더 많기 때문에 온프레미스 소프트웨어를 보호하는 것보다 약간 더 복잡합니다. 최근까지 매우 민감한 데이터를 처리하는 많은 조직에서는 보안에 대한 우려로 SaaS 프로그램을 사용하기를 꺼려왔습니다. 데이터를 클라우드에 업로드하고 원격 서버에 저장해야 한다는 점 때문에 데이터 침해에 훨씬 더 취약해 보이는 모델이었기 때문입니다.

다행히 오늘날에는 이용 가능한 기술로 SaaS 데이터를 매우 안전하게 보호할 수 있습니다.

견고한 SaaS 보안 구축

SaaS 공급사라면 잠재 고객에게 데이터의 안전을 보장할 수 있어야만 하며, 이는 제품에 대한 신뢰를 줍니다. 게다가 일부 국가에는 고객 데이터 보안을 규제하는 의무 요건이 있습니다. 따라서 사업을 운영하려면 이러한 규정을 준수해야 할 수도 있습니다.

그렇다면 SaaS를 어떻게 보호할 수 있을까요?

최종 사용자 교육

가장 먼저 이해해야 할 것은 SaaS에 대한 보호는 양방향에서 이루어져야 한다는 점입니다. 최종 사용자에게 최고의 보안 수준을 제공해야 하지만 최종 사용자가 보안에 큰 관심이 없다면 데이터 침해를 방지하기 위해 할 수 있는 일은 많지 않습니다. 따라서 데이터 보안에 관한 사용자 교육 측면에서 할 수 있는 일을 하는 것이 중요합니다.

모든 데이터 암호화

데이터 암호화는 SaaS 보호의 핵심 단계입니다. 데이터를 암호화하면 어떤 프로세스에서 데이터가 유출되더라도 권한 없는 사람이 해석할 수 없는 형태로 나타나게 됩니다.

강력한 비밀번호 요구

지난 몇 년간 사람들은 비밀번호가 복잡해지는 것에 대해 불평해왔지만 공급업체가 더 복잡한 비밀번호를 요구하는 이유가 있습니다. 해커가 추측하기가 훨씬 더 어렵기 때문입니다. 보안 전문가 Brian Krebs 에 따르면 이상적인 비밀번호는 다음과 같습니다.

가능한 한 긴 비밀번호 - 최소 8~10자

일련의 단어를 포함하는 비밀번호 - 숫자나 대문자, 특수 문자도 좋지만 길이가 더 중요하고 문장이면 기억하기가 더 쉽습니다.

'비밀번호'와 같은 흔한 단어, '1234' 또는 'qwerty'와 같은 키보드 조합, 생일, 전화번호, 애완동물 이름 등과 같은 기타 환경이나 소셜 미디어에서 검색할 수 있는 정보를 피합니다.

사이버 보안 기업 고용

확실하지 않을 때는 항상 전문가와 상의하는 것이 좋습니다. 탈레스 Sentinel은 SaaS 제공기업의 요건에 특별히 맞춘 사이버 보안·라이선스 관리 솔루션 패키지를 제공합니다.

보호 키

도난, 무단 복제 및 액세스로부터 소프트웨어를 보호하는 가장 좋은 방법 중 하나는 보호 키를 사용하는 것입니다.

보호 키란

보호 키는 권한 없는 사용자의 소프트웨어 액세스나 복제 시도를 방지하는 코드 유형입니다. 소프트웨어를 키로 보호하면 키가 있는 사용자만 자신의 장치에서 소프트웨어를 실행할 수 있습니다.
보호 키에는 세 가지 유형이 있습니다.
하드웨어 보호 키

동글이라고도 불리는 하드웨어 보호 키는 소프트웨어 액세스를 활성화할 때 연결해야 하는 소형 기기입니다. 최종 사용자에게 물리적 장치를 발급해야 하고 사용자는 장치를 가지고 있을 때만 소프트웨어를 실행할 수 있는 유형이므로 아래의 다른 솔루션보다는 편리성이 떨어집니다. 그러나 일부 사용자는 보안상의 이점 때문에 이 유형의 보호 키를 선호합니다.

소프트웨어 보호 키

소프트웨어 보호 키는 일종의 소프트웨어로, 특정 장치에 설치하고 이 장치를 이용해 보호를 받는 소프트웨어에 액세스하게 됩니다. 사용자는 소프트웨어와 키를 함께 다운로드하고 즉시 액세스할 수 있습니다.

클라우드 기반 보호 키

이 모델을 사용하면 사용자 장치에 보호 키를 다운로드하여 설치하는 대신, 요청이 있을 때마다 최종 사용자의 장치에 키를 전달하고 작업이 끝나면 원격 서버로 반환하게 됩니다. 여러 장치에서 여러 사용자가 다양한 시간대에 키를 사용할 수 있으므로 유연성이 훨씬 뛰어납니다.

탈레스 Sentinel 소프트웨어 보호 솔루션

탈레스 Sentinel은 소프트웨어 저작권 보호 솔루션이나 SaaS 보호 솔루션, 보호 키와 같이 유연하고 맞춤 구성 가능하며 광범위한 소프트웨어 보호 솔루션을 제공합니다. 탈레스 Sentinel이 소프트웨어 수익화 도구 를 통해 소프트웨어를 보호하는 방법을 알아보시기 바랍니다.

# data[].attributes.attachment_link.keywords[]
소프트웨어 저작권 보호

# data[].attributes.attachment_link.title
소프트웨어 저작권 보호 요약 안내서

# data[].attributes.attachment_link.description
시간과 노력, 비용을 쏟아부어 훌륭한 소프트웨어를 개발하고 시장에 출시할 준비가 되었다면, 이제 이 소프트웨어를 어떻게 보호할 것인지 고민해야 합니다. 소프트웨어 보호가 필요한 이유 기업 수익을 저해할 수 있는 저작권 침해, 무단 복제, 또는 소프트웨어의 기타 무단 사용 기업 데이터나 고객 데이터를 위험에 빠뜨리는 보안 침해 물리적인 형태가 있는 제품을 판매하는 경우에는 제품을 보호하는 것이 그렇게 복잡하지는 않습니다.

# data[].attributes.body
특허를 이용하여 소프트웨어를 보호하는 절차
일단 정보를 보낸 후 방식을 심사하고 방식이 완비 되어 있다면 심판관 지정 후 예고 등록하고 한번 더 검사한다 그 후 완비 되어있는 것이 확실하다면 심리를 진행하여 종결 시키고 명세서로 공고한다. 만약 한 부분이라도 아닌 부분이 있다면 바꾸는 것을 요청하고 그 후 바뀌었다면 다음 부분으로 넘어간다 하지만 만약 바뀌지 않았다면 기각 하여 특허 신청을 할 수 없게 한다.

# data[].attributes.body
1. 특허에 의해 sw 보호하는 방법과 절차
특허는 계산 방법이나 추상적인 알고리즘, 컴퓨터 프로그램 그 자체에 대해서는 자연법칙을 이용한 것이 아니기에 특허로서 인정하지 않는다. 대신에 소프트웨어를 구동할 때 하드웨어 외부에서의 물리적 변환을 야기하는 경우, 정보처리가 하드웨어를 이용해 구체적으로 실현되는 경우에는 발명의 성립성을 인정받아 특허의 대상이 된다.
그래서 특허청구범위가 하드웨어 또는 하드웨어와 소프트웨어의 결합 형태로 기계 또는 제조물의 물리적 구조를 특정해 유용한 기계 또는 제조물을 정의하는 경우를 물건의 발명으로 인정을 한다. 또 프로그램을 기록한 기록매체 또는 데이터구조를 기록한 기록매체는 물건의 발명으로 인정한다. 하지만 단점은 자연현상, 사실이나 단순한 배열을 이용한 소프트웨어는 특허청에 등록할수 없다.

소프트웨어를 보호하는 방법은 여러가지 방법이 있지만 그 중에서 라이선싱 관리시스템이란게 있는데 라이선싱 관리 시스템은 사용자가 허용된 방식으로만 소프트웨어를 사용할 수 있도록 라이선스를 발급함으로써 소프트웨어의 지적재산을 보호하는 데 도움이 된다.

# data[].attributes.attachment_link.title
소프트웨어 지적 재산: 정의, 보호 방법

# data[].attributes.attachment_link.description
네 가지 지적 재산의 주요 유형을 알아보고 외부 불법 복제 위협으로부터 적절하게 보호하고 지키는 방법을 살펴보겠습니다.

# data[].attributes.body
<특허에 의해 sw 보호하는 방법/절차 요약>

소프트웨어 저작권 보호란 소프트웨어를 복제하여 불법적으로 사용하지 못하게 하는 것입니다.
소프트웨어 저작권을 보호하는 방법은 중복 코드 심기, 누가 소스 코드를 볼 수 있는지 조심하기, ID 기반 라이선스 솔루션 사용 등이 있다.

# data[].attributes.attachment_link.readable_text
시간과 노력, 비용을 쏟아부어 훌륭한 소프트웨어를 개발하고 시장에 출시할 준비가 되었다면, 이제 이 소프트웨어를 어떻게 보호할 것인지 고민해야 합니다.
소프트웨어 보호가 필요한 이유

기업 수익을 저해할 수 있는 저작권 침해, 무단 복제, 또는 소프트웨어의 기타 무단 사용

기업 데이터나 고객 데이터를 위험에 빠뜨리는 보안 침해

물리적인 형태가 있는 제품을 판매하는 경우에는 제품을 보호하는 것이 그렇게 복잡하지는 않습니다. 잠금 장치와 열쇠로 제품을 보관하여 나쁜 의도를 가진 사람이 제품에 접근하지 못하도록 하는 것입니다.

소프트웨어는 다릅니다. 보호되지 않는 소프트웨어를 승인 없이 여러 장치에서 복사, 복제하거나 사용하기는 매우 쉽습니다. 또한, 고객이 소프트웨어를 사용해 민감한 데이터를 저장한 경우, 해커가 침투해 수집하기 쉽습니다.

소프트웨어를 잘 보호한다는 것은 고객이 정보가 안전하리라 믿고 제품을 사용할 수 있다는 것을 의미합니다.

소프트웨어 보호 유형을 세 가지 살펴보겠습니다.

소프트웨어 저작권 보호

저작권이란 창작물을 복제할 수 있는 권리입니다. 즉, 창작물 도용을 방지하여 원저작물의 창작자를 보호하는 지적 재산권의 한 유형입니다. 저작권은 아이디어나 개념을 보호하는 것이 아니라 아이디어나 개념의 표현만을 보호한다는 점에 유의해야 합니다. 소프트웨어에서 이는 실제 코드를 의미합니다.

소프트웨어 저작권 보호란

소프트웨어 저작권 보호란 소프트웨어를 복제하여 불법적으로 사용하지 못하게 하는 것입니다.

이론적으로 소프트웨어는 유형 매체에 코드가 고정되는 즉시 저작권법의 보호를 받게 되므로 저작권법이 자동으로 소프트웨어 저작권을 보호한다고 볼 수 있습니다. 그러나 이는 실제로 그렇게 효과적이지가 않습니다. 다른 사람이 소프트웨어를 복제할 수 없다는 것을 의미할 뿐입니다. 적어도 미국에서는 미 저작권청 에 먼저 등록하지 않는 한, 저작권 침해를 고소할 수도 없습니다.

등록했더라도 소송을 유일한 소프트웨어 저작권 보호 방법으로 삼는 것은 좋은 전략이 아닙니다. 제품을 복제한 사람을 실제로 잡아서 소송을 제기하고 법원에서 소프트웨어를 무단 복제했음을 입증하는 데 상당한 돈과 시간을 소비해야 한다는 뜻이기 때문입니다.

이는 제한된 예산으로 .Net 애플리케이션이나 기타 오픈소스 개발 프로그램의 복제를 방지하고자 하는 소규모 소프트웨어 개발자에게 특히 큰 문제입니다. 저작권 침해를 발견했을 때 법적 조치를 취하는 것은 차치하고 저작권 침해를 모니터링할 수단조차 이들에게는 없습니다.

그렇다면 더욱 효과적인 소프트웨어 저작권 보호 전략에는 무엇이 있을까요?

저작권 침해를 쉽게 증명할 수 있는 방법 한 가지는 의도적으로 코드 내에 중복 구성 요소를 심는 것입니다. 누군가가 코드를 복제했다고 의심될 때 중복 구성 요소를 찾을 수 있으면, 코드 복제가 이뤄졌다는 강력한 증거가 됩니다. 다시 한 번 말하자면, 이 소프트웨어 저작권 보호 전략에는 소송이 수반되지만 적어도 법무팀의 일이 더 수월해집니다.
누가 소스 코드를 볼 수 있는지 조심하기
소프트웨어 공급기업은 항상 모범 사례를 따르면서 권한 있고 신뢰할 수 있는 사람만 소스 코드에 액세스하도록 해야 합니다. 직원을 주의 깊게 검증하고 아웃소싱할 때는 신뢰 수준이 높은 추천 자료를 확보합니다.
ID 기반 라이선스 솔루션 사용
최종 사용자가 소스 코드에 액세스하는 것을 막을 수는 없더라도 ID 기반 라이선싱 솔루션을 사용하면 프로그램을 사용하는 사람에 대해 가능한 한 많은 정보를 얻을 수 있습니다.

ID 기반 라이선싱 솔루션은 사용자 이름과 비밀번호 같은 특정 자격 증명을 사용하는 사용자에게만 액세스를 허용합니다. Sentinel EMS 와 같은 라이선싱 관리 시스템을 사용하면 누가 언제 어떤 제품을 사용하는지 추적 관리하는 데 유용한 여러 데이터에 액세스할 수 있습니다.

SaaS 보호

SaaS(Software as a Service)는 점점 더 인기를 얻고 있는 소프트웨어 제공 모델입니다. 소프트웨어를 한 번 구입해 설치하고 지정된 장치에만 사용하는 대신, 사용자는 구독제로 소프트웨어를 구입하고 원격 서버를 통해 액세스하여 사용할 수 있습니다. 이 모델은 비용 효율적이고 유연한 편입니다. 고객은 여러 장치에서 소프트웨어에 액세스할 수 있으며 항상 최신 버전의 소프트웨어를 사용할 수 있습니다.

SaaS 보호란

SaaS 보호에는 두 가지 구성 요소가 있습니다.

1. 프로그램 자체의 무단 사용 방지 - 무단 복제·절도로부터 공급기업 보호
2. 최종 사용자가 프로그램에 입력한 데이터 보안 - 데이터 침해로부터 고객 보호

SaaS 보호는 이 두 가지 구성 요소를 고려하는 것 외에도 해커가 악용할 수 있는 '진입 지점'이 더 많기 때문에 온프레미스 소프트웨어를 보호하는 것보다 약간 더 복잡합니다. 최근까지 매우 민감한 데이터를 처리하는 많은 조직에서는 보안에 대한 우려로 SaaS 프로그램을 사용하기를 꺼려왔습니다. 데이터를 클라우드에 업로드하고 원격 서버에 저장해야 한다는 점 때문에 데이터 침해에 훨씬 더 취약해 보이는 모델이었기 때문입니다.

다행히 오늘날에는 이용 가능한 기술로 SaaS 데이터를 매우 안전하게 보호할 수 있습니다.

견고한 SaaS 보안 구축

SaaS 공급사라면 잠재 고객에게 데이터의 안전을 보장할 수 있어야만 하며, 이는 제품에 대한 신뢰를 줍니다. 게다가 일부 국가에는 고객 데이터 보안을 규제하는 의무 요건이 있습니다. 따라서 사업을 운영하려면 이러한 규정을 준수해야 할 수도 있습니다.

그렇다면 SaaS를 어떻게 보호할 수 있을까요?

최종 사용자 교육

가장 먼저 이해해야 할 것은 SaaS에 대한 보호는 양방향에서 이루어져야 한다는 점입니다. 최종 사용자에게 최고의 보안 수준을 제공해야 하지만 최종 사용자가 보안에 큰 관심이 없다면 데이터 침해를 방지하기 위해 할 수 있는 일은 많지 않습니다. 따라서 데이터 보안에 관한 사용자 교육 측면에서 할 수 있는 일을 하는 것이 중요합니다.

모든 데이터 암호화

데이터 암호화는 SaaS 보호의 핵심 단계입니다. 데이터를 암호화하면 어떤 프로세스에서 데이터가 유출되더라도 권한 없는 사람이 해석할 수 없는 형태로 나타나게 됩니다.

강력한 비밀번호 요구

지난 몇 년간 사람들은 비밀번호가 복잡해지는 것에 대해 불평해왔지만 공급업체가 더 복잡한 비밀번호를 요구하는 이유가 있습니다. 해커가 추측하기가 훨씬 더 어렵기 때문입니다. 보안 전문가 Brian Krebs 에 따르면 이상적인 비밀번호는 다음과 같습니다.

가능한 한 긴 비밀번호 - 최소 8~10자

일련의 단어를 포함하는 비밀번호 - 숫자나 대문자, 특수 문자도 좋지만 길이가 더 중요하고 문장이면 기억하기가 더 쉽습니다.

'비밀번호'와 같은 흔한 단어, '1234' 또는 'qwerty'와 같은 키보드 조합, 생일, 전화번호, 애완동물 이름 등과 같은 기타 환경이나 소셜 미디어에서 검색할 수 있는 정보를 피합니다.

사이버 보안 기업 고용

확실하지 않을 때는 항상 전문가와 상의하는 것이 좋습니다. 탈레스 Sentinel은 SaaS 제공기업의 요건에 특별히 맞춘 사이버 보안·라이선스 관리 솔루션 패키지를 제공합니다.

보호 키

도난, 무단 복제 및 액세스로부터 소프트웨어를 보호하는 가장 좋은 방법 중 하나는 보호 키를 사용하는 것입니다.

보호 키란

보호 키는 권한 없는 사용자의 소프트웨어 액세스나 복제 시도를 방지하는 코드 유형입니다. 소프트웨어를 키로 보호하면 키가 있는 사용자만 자신의 장치에서 소프트웨어를 실행할 수 있습니다.
보호 키에는 세 가지 유형이 있습니다.
하드웨어 보호 키

동글이라고도 불리는 하드웨어 보호 키는 소프트웨어 액세스를 활성화할 때 연결해야 하는 소형 기기입니다. 최종 사용자에게 물리적 장치를 발급해야 하고 사용자는 장치를 가지고 있을 때만 소프트웨어를 실행할 수 있는 유형이므로 아래의 다른 솔루션보다는 편리성이 떨어집니다. 그러나 일부 사용자는 보안상의 이점 때문에 이 유형의 보호 키를 선호합니다.

소프트웨어 보호 키

소프트웨어 보호 키는 일종의 소프트웨어로, 특정 장치에 설치하고 이 장치를 이용해 보호를 받는 소프트웨어에 액세스하게 됩니다. 사용자는 소프트웨어와 키를 함께 다운로드하고 즉시 액세스할 수 있습니다.

클라우드 기반 보호 키

이 모델을 사용하면 사용자 장치에 보호 키를 다운로드하여 설치하는 대신, 요청이 있을 때마다 최종 사용자의 장치에 키를 전달하고 작업이 끝나면 원격 서버로 반환하게 됩니다. 여러 장치에서 여러 사용자가 다양한 시간대에 키를 사용할 수 있으므로 유연성이 훨씬 뛰어납니다.

탈레스 Sentinel 소프트웨어 보호 솔루션

탈레스 Sentinel은 소프트웨어 저작권 보호 솔루션이나 SaaS 보호 솔루션, 보호 키와 같이 유연하고 맞춤 구성 가능하며 광범위한 소프트웨어 보호 솔루션을 제공합니다. 탈레스 Sentinel이 소프트웨어 수익화 도구 를 통해 소프트웨어를 보호하는 방법을 알아보시기 바랍니다.

# data[].attributes.attachment_link.keywords[]
소프트웨어 저작권 보호

# data[].attributes.attachment_link.title
소프트웨어 저작권 보호 요약 안내서

# data[].attributes.attachment_link.description
시간과 노력, 비용을 쏟아부어 훌륭한 소프트웨어를 개발하고 시장에 출시할 준비가 되었다면, 이제 이 소프트웨어를 어떻게 보호할 것인지 고민해야 합니다. 소프트웨어 보호가 필요한 이유 기업 수익을 저해할 수 있는 저작권 침해, 무단 복제, 또는 소프트웨어의 기타 무단 사용 기업 데이터나 고객 데이터를 위험에 빠뜨리는 보안 침해 물리적인 형태가 있는 제품을 판매하는 경우에는 제품을 보호하는 것이 그렇게 복잡하지는 않습니다.

# data[].attributes.body
특허법은 자연법칙을 이용한 기술적 창작을 보호하고 수학적인 방법, 비즈니스 방법 또는 컴퓨터 프로그램 그 자체 혹은 알고리즘은 보호하지 않는 것을 원칙으로 합니다.

그러나 오늘날 소프트웨어도 특정한 조건 하에 특허를 받을 수 있으며, 신규성, 진보성, 산업상 이용가능성을 만족하며, 기술적 효과를 보이면 특허의 대상이 된다는 데에는 문제가 없습니다.
소프트웨어 특허는 컴퓨터 프로그램 또는 컴퓨터 프로세서를 이용하여 운영되는 기술에 관한 특허를 말합니다. 사실 소프트웨어 특허에 대한 명확한 정의는 없는 실정이지만 이미 많은 나라에서 이미 소프트웨어 특허를 인정하고 출원 및 등록을 진행하고 있습니다. 좁은 의미로 보면, 마이크로소프트 워드, 파워포인트, 스타크래프트 등과 같은 컴퓨터 프로그램에 관한 것으로 정의할 수 있으나, 넓은 의미로 보면 애플리케이션, 웹 인터페이스 등과 같이 컴퓨터 언어 또는 컴퓨터 프로그램을 이용하는 모든 기술이 소프트웨어 특허의 대상이 될 수 있습니다.

# data[].attributes.attachment_link.provider_name
네이버 블로그 | 더바른코딩

# data[].attributes.attachment_link.title
소프트웨어는 어떻게 보호될까요?

# data[].attributes.attachment_link.description
소프트웨어를 사용하고자 할 경우 먼저 보호받는 저작물인지를 확인하여, 저작권자가 있다면 합법적인 비용...

# data[].attributes.headline
2,상표권에 의한 소프트웨어 보호사례

# data[].attributes.subject
2,상표권에 의한 소프트웨어 보호사례

# data[].attributes.headline
3,소프트웨어 보호를 위한 기술적 조치 유형

# data[].attributes.subject
3,소프트웨어 보호를 위한 기술적 조치 유형

# data[].attributes.body
1)영업 비밀에 의한 보호
영업비밀에 의한 보호란, 공개되지 않고 경제적 가치가 있으며 비밀유지가 된 기술이 부정경쟁방지 및 영업비밀보호법에 의해 보호받는 것을 말한다.영업비밀은 기술정보 뿐만 아니라 경영정보까지도 보호대상으로 하고 있어 보호의 범위는 넓다.이 제도는 로마시대의 노예매수방지소송에서 비롯된 것이다. 이때문에 연혁적으로 가장 오래되고 개념 정립도 잘 되어 있으며 운용도 간편할 것 같지만, 실제 소송에서 영업비밀로 인정되기 위해선 비밀관리를 잘 하고 있어야만 영업비밀로 인정될 수 있다는 까다로운 요건 때문에 입증부담을 크게 안고 있는 기업 입장에서는 그렇게 환영할만한 절차는 아니었다.  영업비밀 제도는 기본적으로 기술공개를 전제로 하는 특허와 상치한 면이 있어 기업은 기술공개 여부를 두고, 기술을 공개해 특허권으로 보호받을 수 있는지 아니면 기술공개를 포기해 영업비밀로 보호받을 수 있는지를 선택해만 했다.

특허에 의한 보호는 특허권 등록이 까다롭기는 하지만 일단 특허권을 취득한 이후에는 단속범위가 넓어 유리하고, 영업비밀에 의한 보호는 까다로운 등록절차가 없지만 일단 분쟁이 발생한 이후에는 기업이 스스로 영업비밀이라는 점을 입증해야 하는 부담이 있다.

최근 영업비밀의 이러한 불편한 점을 해소하고자 특허청은 ‘영업비밀원본증명제도’를 운영하고 있다.

영업비밀원본증명제도란 영업비밀의 원본의 존재 및 보유 시점의 입증을 돕는 제도로서, 영업비밀의 비밀유지성을 살리고 동시에 법정에서의 입증부담을 덜어주기 위한 것이다.

2)산업기술에 의한 보호
산업기술에 의한 보호란, 가장 최근에 생긴 기술보호제도로서 국가의 기술경쟁력을 유지하고자 지식경제부 장관 등에 의해 지정·고시·공고 등이 된 산업기술 또는 국가핵심기술에 대해 산업기술 유출방지 및 보호법에 의해 보호를 해 주는 경우를 말한다.

이 제도는 지식경제부 장관 등에 의해 지정·고시·공고 등이 되면 기술의 비밀유지성 관리 여부에 상관없이 법적으로 보호해 주는 제도로서, 영업비밀이나 특허권보다는 절차가 매우 단순하게 돼 있다고 볼 수 있다.

산업기술이나 국가핵심기술로 인정돼 산업기술 유출방지 및 보호법에 의해 보호받는 기술에 대하여 만일 특허등록이 돼 있고 영업비밀로 잘 유지 관리돼 있다면 이중적인 보호도 받을 수 있고, 기업은 그때 그때 사정에 의해 기술보호 제도를 선택도 할 수 있다.

특히 특허법이나 부정경쟁방지 및 영업비밀보호법은 사법적 성격이 강하지만, 산업기술 유출방지 및 보호법은 공법적 성격이 강하고, 특허권과 달리 복잡한 출원등록 절차가 없다는 점, 영업비밀과 달리 유출사고 이후 기술의 가치를 인정받는 절차가 따로 없어도 된다는 점, 국가정보원 등이 개입하기 때문에 신고 이후 신속하게 수사 및 공소제기가 처리된다는 점에서 기업의 입장에서 매우 유리하다고 할 수 있다.

# data[].attributes.body
소프트웨어를 복제하여 불법적으로 사용하지 못하게 하는 것입니다.

# data[].attributes.body
1.복제방지 기술
DRM은 정총적인 디지털 저작권 보호기술에서 가장 강력한 기술로 알려져 왔으며 암호화 기술을 기발으로 디지털 저작물의 제어를 통해 저작권을 보호하고있다.
2.워터마킹 포렌식기술
워터마킹과 포렌식기술은 저작물에 정보를 은닉함으로써 저작권을 보호하려는 기술이다 일반적으로 워터마킹은 저작자 정보를 은닉하며 포렌식마킹은 사용자 정보를 은닉하여 저작권 침해가 발생하였을때 유포자를 추적하는 데 활용할수있다.

# data[].attributes.attachment_link.title
[저작권 보호의 시각들] 웹소설의 불법복제를 .. : 네이버블로그

# data[].attributes.body
1. 특허의 의해 소프트웨어를 보호하는 방법/절차

소프트웨어를 보호하기 위해서는 특허를 사용할 수 있다. 특허란 어떤 사람의 출원으로 이루어진 공업적 발명의 전용권 , 즉 새로 발명한 것에 대한 여러 권리를 독점할 수 있는 권리를 본인 또는 그 승계자 에게만 부여하는 행정 행위이다.
이러한 특허를 사용하여 소프트웨어를 보호 할 수 있다.

특허를 사용하기 위해서는 선행기술조사 이후 명세서 작성 후 도면과 함께 특허청에 제출 해야 한다.  간단해 보이지만 오랜 시간이 소요될 수 있다. 왜냐하면 특허의 요건을 모두 충족해야 하고 사례에 따라 알맞는 서류, 절차를 준비 해야 하기 때문이다.

이러한 과정 중 제일 중요한 것은 선행기술조사 이다. 충족 요건을 증명 해야하고 내 개발건과 동일한 것이 있는지 타인이 쉽게 발명 할 수 있는건 아닌지 등 충족 해야지만 등록이 가능하다.

# data[].attributes.body
https://kin.naver.com/qna/detail.naver?d1id=6&dirId=60205&docId=353810134&qb=7IaM7ZSE7Yq47Juo7Ja0IOyggOyekeq2jOuztO2YuCDrsKnrspU=&enc=utf8§ion=kin.ext&rank=2&search_sort=0&spq=0
실무상 저작권 권리행사시 자신이 창작하였다는 것과 언제 창작하였는지를 입증해야 하는 부담을 덜기 위해 창작 후 1년 이내에 저작권 등록 하는 것이 바람직하다.

# data[].attributes.attachment_link.readable_text
저희 답변이 도움이 되기를 바랍니다.

​소프트웨어 저작권 보호제도 및 방법에 무엇이 있는지 알려주세요!

= "컴퓨터프로그램저작물"은 저작물의 하나로 예시되어 있는데, "컴퓨터프로그램저작물"이란 "특정한 결과를 얻기 위하여 컴퓨터 등 정보처리능력을 가진 장치(이하 "컴퓨터"라 한다) 내에서 직접 또는 간접으로 사용되는 일련의 지시ㆍ명령으로 표현된 창작물"을 말합니다(저작권법 2조 16호). 이러한 컴퓨터프로그램저작물은 외부에 표현된 것이 보호대상이 되며, 아이디어 자체는 보호되지 않습니다(아래 대법원 판례 참조).

​저작권법에 의하여 보호되는 저작물은 문학·학술 또는 예술의 범위에 속하는 창작물이어야 하는바, 여기에서 창작물이라 함은 저자 자신의 작품으로서 남의 것을 베낀 것이 아니라는 것과 최소한도의 창작성이 있다는 것을 의미하고, 따라서 작품의 수준이 높아야 할 필요는 없지만 저작권법에 의한 보호를 받을 가치가 있는 정도의 최소한의 창작성은 요구되므로, 단편적인 어구나 계약서의 양식 등과 같이 누가 하더라도 같거나 비슷할 수밖에 없는 성질의 것은 최소한도의 창작성을 인정받기가 쉽지 않다 할 것이다. 또한 작품 안에 들어 있는 추상적인 아이디어의 내용이나 과학적인 원리, 역사적인 사실들은 이를 저자가 창작한 것이라 할 수 없으므로, 저작권은 추상적인 아이디어의 내용 그 자체에는 미치지 아니하고 그 내용을 나타내는 상세하고 구체적인 표현에만 미친다.(대법원 1997. 11. 25. 선고 97도2227 판결)

따라서 컴퓨터프로그램간의 침해 여부를 판단할 때에도 창작적 표현형식을 위주로 대비하게 됩니다(아래 대법원 판례 참조).

​구 컴퓨터프로그램 보호법(2009. 4. 22. 법률 제9625호 저작권법 부칙 제2조로 폐지)에서 보호하는 '컴퓨터프로그램저작물'(이하 '프로그램'이라 한다)이란 특정한 결과를 얻기 위하여 컴퓨터 등 정보처리능력을 가진 장치 안에서 직접 또는 간접으로 사용되는 일련의 지시·명령으로 표현된 창작물을 의미하므로, 프로그램저작권 침해 여부를 가리기 위하여 두 프로그램저작물 사이에 실질적 유사성이 있는지를 판단할 때에도 창작적 표현형식에 해당하는 것만을 가지고 대비하여야 한다.(대법원 2013. 3. 28. 선고 2010도8467 판결)

한편, 이러한 컴퓨터프로그램저작물은 일반저작물과 마찬가지로 저작물을 창작한 때부터 발생하며 어떠한 절차나 형식(저작권등록)의 이행을 필요로 하지 않습니다(저작권법 10조).

다만, 저작권은 등록이 없이도 권리가 발생되지만, 실무상 저작권 권리행사시 자신이 창작하였다는 것과 언제 창작하였는지를 입증해야 하는 부담을 덜기 위해 저작권등록을 권합니다. 즉, 저작권등록에 의하여 저작자로 실명이 등록된 자는 그 등록저작물의 저작자로, 창작연월일 또는 맨 처음의 공표연월일이 등록된 저작물은 등록된 연월일에 창작 또는 맨 처음 공표된 것으로 추정합니다. 다만, 저작물을 창작한 때부터 1년이 경과한 후에 창작연월일을 등록한 경우에는 등록된 연월일에 창작된 것으로 추정하지 아니합니다(저작권법 53조). 즉, 창작연월일 추정 효과를 얻기 위해서는 창작 후 1년 이내에 저작권등록을 하는 것이 바람직합니다.

특허출원 특허시제품제작 및 특허창업 마케팅 사업화 전문기업

'특허는 어떻게 돈이 되는가' '미래특허 119' 저자

mail@moonpartner.kr / www.moonpartner.kr / Tel: 02-514-5140 / 카카오ID : moonpartner

# data[].attributes.attachment_link.title
소프트웨어 저작권 보호제도 및 방법에

# data[].attributes.attachment_link.description
저희 답변이 도움이 되기를 바랍니다. ​소프트웨어 저작권 보호제도 및 방법에 무엇이 있는지 알려주세요! = "컴퓨터프로그램저작물"은 저작물의 하나로 예시되어 있는데, "컴퓨터프로그램저작물"이란 "특정한 결과를 얻기 위하여 컴퓨터 등 정보처리능력을 가진 장치(이하 "컴퓨터"라 한다) 내에서 직접 또는 간접으로 사용되는 일련의 지시ㆍ명령으로 표현된 창작물"을 말합니다(저작권법 2조 16호). 이러한 컴퓨터프로그램저작물은 외부에 표현된 것이 보호대상이 되며, 아이디어 자체는 보호되지 않습니다(아래 대법원 판례 참조).

# data[].attributes.body
컴퓨터프로그램에 대한 특허등록은 원칙적으로 불가능합니다(정보통신부 소관의 컴퓨터프로그램보호법의 대상임). 그러나 컴퓨터프로그램을 기록한 컴퓨터로부터 읽을 수 있는 기록매체를 청구한 경우에 컴퓨터프로그램의 기능을 실현 가능하게 하는 매체와 컴퓨터프로그램간의 구조적, 기능적 상호관계를 정의하고 있으면 특허의 대상이 될 수 있습니다.

# data[].attributes.attachment_link.readable_text
1. 컴퓨터프로그램은 기본적으로 저작권적인 성격이 강하여 특허법 보다는 별도의 컴퓨터프로그램보호법에 의하여 보호받고 있습니다. 컴퓨터 프로그램등록에 관하여는 등록을 담당하는 정보통신부 산하 프로그램심의조정위원회(www.pdmc.or.kr)에서 상세한 안내를 받으실 수 있습니다.

2. 컴퓨터프로그램에 대한 특허등록은 원칙적으로 불가능합니다(정보통신부 소관의 컴퓨터프로그램보호법의 대상임). 그러나 컴퓨터프로그램을 기록한 컴퓨터로부터 읽을 수 있는 기록매체를 청구한 경우에 컴퓨터프로그램의 기능을 실현 가능하게 하는 매체와 컴퓨터프로그램간의 구조적, 기능적 상호관계를 정의하고 있으면 특허의 대상이 될 수 있습니다.

3. 특허청 컴퓨터관련발명심사기준은 『그 발명이 산업상 이용할 수 있는 구체적 수단, 즉 해당 기술분야의 통상의 지식을 가진 자의 수준에서 당해 발명의 기술적 사항을 이해하는데 필요한 발명이 해결하고자 하는 과제와 과제를 해결하기 위한 수단이 명세서에 기재되어 있는지를 파악하여야 하며, 과제를 해결하기 위한 수단은 그 수단 또는 기능이 어떻게 구현되는가를 플로우챠트 등을 이용해서 구체적으로 설명되고 있는지를 검토해서 특허여부를 판단』하도록 함으로써, 컴퓨터 프로그램을 이용한 구체적 수단 등이 특허대상임을 명확히 하고 있습니다.

4. 특허의 대상이 되는 프로그램
- 물건의 발명 특허청구범위가 하드웨어 또는 하드웨어와 소프트웨어의 결합형태로 기계 또는 제조물의 물리적 구조를 특정하여 유용한 기계 또는 제조물을 정의하는 경우에는 물건의 발명으로 인정됩니다. 또한 프로그램을 기록한 기록매체 또는 데이터구조를 기록한 기록매체는 물건의 발명으로서 청구항에 기재할 수 있으며 그 기록매체를 기능적으로 특정한 경우에는 물건의 발명으로 인정됩니다. 그러나 컴퓨터로 읽을 수 있는 기록매체에 기록되지 않은 데이터 구조, 컴퓨터프로그램리스트 자체는 특정의 대상이 아니며 정보의 단순한 제시나 자연현상, 사실이나 데이터의 단순한 배열․축적 등은 발명으로 인정되지 않으므로 특허대상이 되지 않습니다.
- 방법의 발명 컴퓨터 프로그램에 있어서의 기술적 사상은 그 프로그램의 수순으로부터 파악할 수 있는데, 그 프로그램이 문제해결을 위해 이용하는 수순의 법칙성이 자연법칙인 경우에는 자연법칙을 이용한 방법의 발명으로 특허될 수 있습니다. 이때 자연법칙 이용 여부는 컴퓨터 관련발명의 구성요소의 결합전체를 판단대상으로 하여야 합니다. 특허청구범위에는 소프트웨어에 의하여 실행되는 수순을 명확하게 기재하여야 하며 소프트웨어에 의해 실행되는 수순과 컴퓨터와 응용 기기를 구성하는 것에 의해 실행되는 수순을 시계열적(時計列的)으로 연결된 일련의 처리 또는 조작과정을 순차적으로 기재하여야 합니다. 특허청구범위에 수식이나 수학적 알고리즘 자체를 권리로서 청구하고 있으면 방법의 발명으로 성립할 수 없습니다. 청구항이 수학적 알고리즘을 수행하는 수학적 연산만으로 구성되거나 추상적인 아이디어만을 기재하고 있을 경우에는 방법특허로서 인정되지 않습니다.
- 장치발명 컴퓨터가 어떤 장치나 시스템에서 특정의 기술적 목적을 달성하는 기능실현수단으로 이용되는 경우 이러한 기능실현수단에 의해 구성되는 발명은 장치발명으로서 특허가 될 수 있습니다. 이 경우에도 발명의 성립성 여부 및 자연법칙 이용 여부는 구성요소 전체의 결합관계를 대상으로 하여 판단하여야 합니다. 특허청구범위에는 발명에 필요한 소정의 다수 기능실현수단과 그 외의 컴퓨터 응용기기를 구성하는 것과의 결합관계를 명백하게 기재하여야 하며, 기능실현수단 대신 컴퓨터의 동작 또는 프로그램의 실질적 내용에 상당하는 수순을 기재하여서는 아니 됩니다. 특허청구범위에 수식이나 수학적 알고리즘 자체를 권리로서 청구하고 있으면 장치의 발명으로서 성립할 수 없습니다. 이와 같이 해석하는 것은 수식이나 수학적 공식 자체만으로는 자연법칙을 이용하였다고 볼 수 없기 때문입니다.

# data[].attributes.attachment_link.title
컴퓨터프로그램도 특허로 등록 할 수 있습니까? |

# data[].attributes.attachment_link.description
1. 컴퓨터프로그램은 기본적으로 저작권적인 성격이 강하여 특허법 보다는 별도의 컴퓨터프로그램보호법에 의하여 보호받고 있습니다. 컴퓨터 프로그램등록에 관하여는 등록을 담당하는 정보통신부 산하 프로그램심의조정위원회(www.pdmc.or.kr)에서 상세한 안내를 받으실 수 있습니다.

# data[].attributes.body
1. 특허에 의해 sw 보호하는 방법/절차

특허에 의해 소프트웨어를 보호하는 방법을 보기 전에 소프트웨어는 컴퓨팅 하드웨어로 하여금 특정한 작업들을 수행하게 해주는 명령어들 이라고 한다. 이는 원시 코드 또는 목적 코드로 나누어 진다.

특허는 소프트웨어를 구성하는 아이디어 자체에   대한 보호가 가능하며 아이디어에 대한 보호는 저작권에 의해 제공되지 않는다. 그리고 다른 방법론이나 알고리즘 같은 것들이 담겨있는 원시 코드의 표현을 다르게 한다면 저작권의 보호를 벗어나 버린다. 이러한 방법에는 경제적 이득의 규모가 더 커지고 로열티를 매길 수 있기 때문에 회사의 무형자산 가치는 크게 성장한다는 장점이 있지만 특허는 쉽게 받아지지 않고 오래된 버전은 끊임없이 혁신을 추구하는 소프트웨어에게 쓸모 없어 질 수 있으며 무엇보다 특허권의 유지료는 저작권과는 다르게 무료가 아니라는 단점도 있다.

# data[].attributes.attachment_link.readable_text
Objective-C 프로그래밍의 예시(출처: 강주영 변리사)

저작권법

" 컴퓨터프로그램저작물 "은 특정한 결과를 내기 위하여 컴퓨터 등 정보처리능력을 가진 장치(이하 "컴퓨터"라 한다) 내에서 직접 또는 간접으로 사용되는 일련의 지시ㆍ명령으로 표현된 창작물을 말한다.
저작권법 제2조제16호

특허법

산업상 이용할 수 있는 발명 으로서 다음 각 호의 어느 하나에 해당하는 것을 제외하고는 그 발명에 대하여 특허를 받을 수 있다.
특허법 제29조제1항

특허법은 자연법칙을 이용한 기술적 창작을 보호하고 수학적인 방법, 비즈니스 방법 또는 컴퓨터 프로그램 그 자체 혹은 알고리즘은 보호하지 않는 것을 원칙으로 합니다.

그러나 오늘날 소프트웨어도 특정한 조건 하에 특허를 받을 수 있으며, 신규성, 진보성, 산업상 이용가능성을 만족하며, 기술적 효과를 보이면 특허의 대상이 된다는 데에는 문제가 없습니다.

그러면 컴퓨터 소프트웨어를 특허로 보호받는 것과 저작권으로 보호받는 것 사이에는 어떠한 장단점들이 있을까요?

특허에 의한 소프트웨어 보호의 장단점

특허에 의한 보호의 주된 장점은 소프트웨어를 구성하는 아이디어 자체에 대한 보호가 가능 해진다는 점입니다. 따라서 경제적 이득의 규모가 더 커집니다. 아이디어에 대한 보호는 저작권에 의해 제공되지 않습니다. 어떤 방법론이나 알고리즘이 담겨있는 원시 코드는 그 원시 코드의 표현만을 달리하면 저작권의 보호를 금세 벗어나 버립니다.

또한 특허에 의하면 라이선싱 수수료, 로열티를 매길 수 있어서 그 특허를 보유하는 회사의 무형자산 가치를 크게 향상시킵니다. 물론 단점도 있습니다.

1. 무엇보다, 소프트웨어 특허는 보통, 쉽게 허여받지 못합니다. 특허청 심사관은 매우 까다롭게 소프트웨어 특허를 심사하며 특허 가능성이 있다는 판단을 쉽게 내주지 않습니다.

2. 또한, 소프트웨어는 끊임없이 혁신을 추구하고 있으므로 오래된 버전에 대해 받았던 특허는 새로운 버전이 출시되면 쓸모없는 것이 되어버릴 수 있습니다.

3. 특허권의 유지료는 저작권과 달리 무료가 아닙니다.

이에 비해 저작권은 어떨까요?

저작권에 의한 소프트웨어 보호의 장단점

저작권의 주된 장점은 저작권 등록을 획득하는 과정이 비교적 간단하다는 점입니다. 사실, 저작권은 소프트웨어가 만들어져서 발표되기만 하면 자동적으로 발생합니다. 뿐만 아니라 구 버전의 소프트웨어와 새로운 버전의 소프트웨어가 동일하게 보호된다는 점입니다. 원시 코드와 목적 코드를 저작권위원회 등에 제출하여 등록 을 받으면 그 보호는 더 확실해집니다.

다른 장점으로는 저작권에 의한 보호기간이 훨씬 더 길다는 점입니다. 저작재산권은 저작자가 생존하는 동안과 사망한 후 70년간 존속하는데 비해 특허권은 출원일로부터 20년에 불과합니다.

다만 저작권의 단점은 저작권이 아이디어가 코드로 표현된 것을 보호할 뿐이고, 그 아이디어 자체를 보호하지는 않는다는 점입니다. 따라서 소프트웨어가 출시되면, 그 소프트웨어의 코드가 원시 코드나 목적 코드로 된 것을 보호할 뿐이어서 누군가 그 소프트웨어를 보고 그 기능을 따라하는 다른 소프트웨어를 만드는 것은 문제가 없습니다. 즉, 제3자는 공개된 아이디어를 실현하는 다른 소프트웨어를 자유롭게 만들 수 있습니다.

대한민국 특허청의 태도

우리나라는 1984년에 처음으로 '컴퓨터 관련 발명의 심사기준'을 제정하면서부터 본격적으로 컴퓨터 프로그램과 관련된 발명을 특허로 보호하기 시작했습니다. 그 후 특허법에 의한 컴퓨터 프로그램 관련 발명의 보호가 점진적으로 확장되어 왔습니다.

미국 특허상표청의 태도

근래 미국 특허상표청은 소프트웨어 특허 보호에 미온적이었고, 미국 특허상표청뿐만 아니라 연방법원은 많은 수의 소프트웨어 발명을 추상적인 아이디어로 취급하였습니다. 추상적인 아이디어라면 특허의 보호를 받지 못하죠. 이에 따라 소프트웨어 특허를 허여하는 등록률이 약 50%에서 약 10%로 떨어진 적이 있었습니다. 미국에서는 저작권으로서 소프트웨어 프로그램의 구조, 순서 및 구성을 보호하지만 여전히 중요한 소프트웨어 특허들이 나오고 있는 추세입니다.

유럽 특허청의 태도

유럽 특허협약의 제52조(2)(c)에 따르면 소프트웨어 프로그램은 특허받을 수 있는 대상물이 아닌 것으로 규정되어 있습니다. 더 구체적으로는, "정신적 작용을 수행하거나 놀이를 즐기거나 비즈니스를 행하는 것과 컴퓨터 프로그램에 있어서의 체계, 규칙, 방법"은 특허를 받을 수 있는 발명이 아니라는 것입니다. 이에 따라 상당수의 유럽 국가들은 상당 범위의 소프트웨어 프로그램의 특허 보호를 배척해왔지만, 유럽 특허협약의 제52조(3)에 따르면 소프트웨어가 단순한 하드웨어와 소프트웨어 사이의 기술적인 상호작용을 뛰어넘는 것이라면 특허가 가능하다고 하여 소프트웨어 프로그램이 특허로 보호받을 수 있는 여지를 남겨두고 있습니다.

결어

소프트웨어는 태생적으로 저작권의 보호를 받게 되어 있습니다. 저작권 보호에는 많은 장점들이 있습니다. 그렇지만 그 소프트웨어에 결정적인 진보성이 있을 때, 상업적인 범위 내에서 최고의 가치를 이끌어내기 위해서는 특허권에 의한 보호를 도모하는 것도 바람직합니다. 특히 새로운 혁신적인 기능을 도입하여 그 프로그램의 기능을 본 제3자가 이를 모방하고 싶은 강력한 유인 동기가 있을 때에는, 저작권 보호가 더 이상 그 프로그램의 혁신적 기능을 보호해주지 않으므로 특허 취득도 도모해볼 수 있다 고 하겠습니다.

# data[].attributes.attachment_link.title
소프트웨어 보호는 저작권으로? | 메타 특허법률사무소

# data[].attributes.attachment_link.description
소프트웨어는 태생적으로 저작권의 보호를 받게 되어 있습니다. 저작권에 의한 소프트웨어 보호에는 많은 장점들이 있습니다. 그렇지만 그 소프트웨어에 결정적인 진보성이 있을 때, 상업적인 범위 내에서 최고의 가치를 이끌어내기 위해서는 특허권에 의한 보호를 도모하는 것도 바람직합니다.

# data[].attributes.body
1. 특허에 의해 sw 보호 하는 방법/절차 검색해보고 요약 정리

그동안 sw는 특허법상 보호 대상인 물건에 포함되지 않기 때문에 방법 발명을 구현하는 sw는 usb등의 기록체에 담겨 오프라인으로 유통되는 경우에만 특허로 보호 됐다.
하지만 이젠 SW 유통 환경이 온라인 중심으로 변함에 따라, 특허청은 2005년부터 특허발명이 포함된 SW가 온라인으로 무단 유통되지 않도록 하려고 법개정을 추진해 왔다.

# data[].attributes.attachment_link.readable_text
타인의 특허발명을 도용한 소프트웨어(SW)를 온라인으로 판매하는 경우에 특허침해일까? 침해여부에 대한 답은 개정 특허법이 시행되는 내년 3월 11일을 전후하여 달라진다. 지금은 "아니요"가 맞다.

SW는 특허법상 보호 대상인 물건에 포함되지 않기 때문에 방법발명을 구현하는 SW는 USB 등의 기록매체에 담겨 오프라인으로 유통되는 경우에만 특허로 보호됐다.

SW 유통 환경이 온라인 중심으로 변함에 따라, 특허청은 2005년부터 특허발명이 포함된 SW가 온라인으로 무단 유통되지 않도록 하려고 법개정을 추진해 왔다.

SW를 특허대상에 포함하는 최초 개정안은, 침해대상이 과도하게 확대되어 관련 산업이 위축될 수 있다는 민간단체와 소관부처의 반대에 부딪쳐 계속적인 협의에도 불구하고 수차례 법개정이 무산된 바 있다.

특허청은 특허권자의 이익과 관련 산업의 보호라는 두 마리 토끼를 잡기 위해 온라인으로 무단 유통되는 SW를 차단하는 최종안을 도출함으로써 개정법이 통과되는 계기를 마련했다.

한편, 특허발명이 포함된 SW가 온라인으로 전송된다고 해서 곧바로 특허침해가 되는 것은 아니다. 개정법은 침해한다는 것을 알면서도 SW를 불법으로 유통하는 판매자의 특허침해를 방지하려는 것으로, 개인적인 사용 또는 가정에서의 선량한 사용은 침해행위에 해당하지 않도록 했다.

박원주 특허청장은 "이번 개정법은 온라인으로 유통되는 SW를 보호하여 공정한 SW산업 경쟁에 기여할 수 있을 것"이라며 "AI, 빅데이터 분석 등 4차 산업혁명 시대의 핵심기술이라 할 수 있는 SW를 합리적으로 보호함으로써 관련 스타트업이나 중소기업의 기술보호에 도움이 되기를 기대한다"고 밝혔다.

# data[].attributes.attachment_link.title
≪특허뉴스≫ [특허정책] 온라인으로 무단 유통되는 SW, 특허로 차단한다

# data[].attributes.attachment_link.description
타인의 특허발명을 도용한 소프트웨어(SW)를 온라인으로 판매하는 경우에 특허침해일까? 침해여부에 대한 답은 개정 특허법이 시행되는 내년 3월 11일을 전후하여 달라진다. 지금은 "아니요"가 맞다. SW는 특허법상 보호 대상인 물건에 포함되지 않기 때문에 방법발명을 구현하는 SW는 USB 등의 기록매체에 담겨 오프라인으로 유통되는 경우에만 특허로 보호됐다.

# data[].attributes.body
1)저작권법제2조제20호에서기술적보 호조치를‘저작권그밖에이법에의하여 보호되는권리에대한침해행위를효과적 으로방지하기위하여그권리자나권리자 의 동의를 얻은 자가 적용하는 기술적 조 치라고 정의하고 있다. 그리고 동법제 92조제2항에서‘정당한권리없이저작권그 밖에 이 법에 의하여 보호되는 권리의 기술적 보호조치를 제거∙변경∙우회하는 등 무력화하는 것을 주된 목적으로 하는 기술∙서비스∙제품∙장치 또는 그 주요 부품을 제공∙제조∙수입∙양도∙대여 또는 전송하는 행위를 저작권침해로 보고 있다. 이러한 기술적 보호조치를 무력 화하거나무력화하기위한기술을거래하는 자는 3년이하의 징역또는 3,000만원 이하의벌금에처하게된다(동법제98조)
2)피고인은 1998년 4월부터 2000년 3월 까지 피해자가 1999년 11월부터 2000년 12월까지저작권을가지고있는컴퓨터관 리 프로그램인‘Hypersnap-Dx’의 비밀 번호(시리얼 번호)를 자신의 홈페이지에 무단으로 복제하고 이를 게재하는 방식으로 배포했다.대법원은 컴퓨터 프로그램의 시리얼번호를프로그램의설치또는사용권한을확 인하는수단으로서기술적보호조치에 해당한다고봤다. 그러나시리얼번호는컴퓨터프로그램에 그것을 입력하면 인스톨을 진행하도록 하는 지시, 명령이 표현된 데 이터에불과하므로시리얼번호의복제또 는배포행위자체는컴퓨터프로그램의공 표, 복제, 전송등에해당하지아니해프로 그램저작권이침해됐다고단정할수없다. 다만 복제∙배포된 시리얼번호를 사용하여타인이프로그램을복제하고그행위가 프로그램 저작권을 침해해 처벌된다면 경우에따라저작권침해행위의방조범이될 수있을뿐이라고판시했다. 이 판결은 2001년 기술적 보호조치에 관한 규정이 컴퓨터프로그램보호법에 도입되기 이전의 구법을 적용해 판결한 것이다. 대법원은 시리얼 번호가 기술적 보호조치에해당함을명백히하고있으나그것을 배포하는행위를 처벌하기위해서는 컴퓨터프로그램보호법 제30조의 제2항의 규제대상인 기술적보호조치의무력화도구 인기기∙장치∙부품, 프로그램 또는 기술에 해당해야 한다. 그러나 시리얼 번호가 현행 조항에서 규정하고 있는 무력화 도구로써의 구체적인예에해당되는지는 의문이다. 그러나 컴퓨터프로그램보호법 과는 달리 저작권법은 무력화 장치 등에 ‘서비스’를 포함하고 있으므로 프로그램 이 아닌 저작물에 대한 권리를 보호하기 위한 시리얼 번호의 전송∙제공행위는 저 작권법에의해 금지될수있을것이다.

# data[].attributes.body
특허청은 특허권자의 이익과 관련 산업의 보호라는 두 마리 토끼를 잡기 위해 온라인으로 무단 유통되는 SW를 차단하는 최종안을 도출함으로써 개정법이 통과되는 계기를 마련했다.

# data[].attributes.body
코드 난독화는 소프트웨어 프로그래밍 언어로 작성된 코드에 대해 읽기 어렵게 만드는 작업이며 대표적인 사용 예로는 프로그램에서 사용된 아이디어나 알고리즘 등을 숨기는 기술이다.실행가능한 코드를 수정하여 이해,해석,실행에 사용할 수 없도록 하는 기술이기도하다.

크래킹 기술은 소프트웨어가 사용하는 방어기술에 따라 달리 존재하며 등록키,다중 일련번호와 같은 단순한 등록번호를 사용하면 코드상의 분기문을 수정또는 디버깅을 통해 하드코딩된 등록번호를 알아내거나 등록번호를 생성하는 알고리즘을 분석하여 전문적으로 생성하는 프로그램을 제작할수있다.

# data[].attributes.attachment_link.readable_text
코드 난독화는 애플리케이션을 해킹으로부터 보호하기 위해 가장 많이 사용되는 애플리케이션 보안 기술 중에 하나입니다. 이는 전 세계 보안 전문가들이 가장 권장하는 AppSec 이니셔티브 중 하나이며, 애플리케이션의 최소 보안 사항으로 요구되는 경우가 많습니다. 대개 이 기술은 해킹 시도에 대한 주요한 방어 메커니즘 역할을 수행하며 코드 주입, 리버스 엔지니어링, 고객 및 애플리케이션 사용자의 개인정보 변조와 같은 일반적인 공격으로부터 보호합니다.

코드 난독화는 실행 가능한 코드를 수정하여 이해, 해석, 실행에 사용할 수 없도록 하는 것입니다. 소스 코드 자체가 난독화되어 있어 제3자가 이해할 수 없고 실행만 가능하게 됩니다. 코드 난독화는 최종 사용자를 위한 애플리케이션 인터페이스 또는 코드의 의도된 출력에 영향을 미치지 않습니다. 이는 애플리케이션의 실행 코드를 손에 넣을 수도 있는 해커가 코드를 사용할 수 없도록 하기 위한 예방 조치일 뿐입니다.

코드 난독화가 필요한 이유

코드 난독화는 특히 오픈소스 애플리케이션에 유용하며, 이는 개인의 이익을 위한 코드를 해킹할 가능성을 크게 줄여줍니다. 애플리케이션을 리버스 엔지니어링하기 어렵게 만드는 방법을 통해 개발자는 제품의 지적 재산을 보안 위협, 무단 액세스, 애플리케이션 취약점 발견으로부터 보호합니다. 이 과정은 소스 코드에 대한 악의적인 접근을 제한하고, 구현된 난독화 기법의 종류에 따라 다양한 수준의 코드 보호를 보장합니다. 시간, 비용, 리소스 측면에서 난독화된 코드를 디컴파일하여도 이해하기 어렵기 때문에, 공격자는 코드를 더 이상 보유할 의미가 없어지게 됩니다.

코드 난독화 기술 유형

난독화는 여러 수준에서 작용하며, 의미 구조/유사 코드 구조 또는 데이터 구조/제어 흐름 수준에서 적용됩니다. 난독화 기술도 코드에서 수행하는 연산에 따라 달라집니다. 기본적으로 보안팀은 개발팀과 협의하여 코드에 어떤 수준의 난독화를 사용할지 결정합니다.

이 기술은 변수의 이름을 혼동하게 만들어 원래 사용 의도를 지능적으로 가려줍니다. 메소드와 변수는 서로 다른 표기법과 숫자를 사용하여 이름이 변경되므로 디컴파일러가 제어 흐름을 이해하기 어렵습니다. 이 난독화 기술은 Java, .NET, Android 플랫폼에서 개발된 애플리케이션 코드를 난독화하기 위해 주로 사용됩니다. 이는 레이아웃 난독화의 전반적인 범주에 속하며, 소스 코드를 직접 대상으로 하여 애플리케이션에 대한 방어 계층을 제공합니다.
이름 변경 난독화 메소드의 예
이 기술은 해커가 프로그램의 실제 의도를 파악할 수 없도록 코드에 사용되는 데이터 구조를 대상으로 합니다. 여기에는 프로그램을 통해 데이터가 메모리에 저장되는 방식과 저장된 데이터가 최종 출력을 표시하기 위해 해석되는 방식을 변경하는 것이 포함될 수 있습니다. 이 기술에는 다양한 변형이 있습니다.

이 방법은 프로그램에 데이터가 저장되는 방식을 변경합니다. 예를 들어, 배열은 많은 하위 배열로 분할될 수 있으며 프로그램의 다른 위치에서 참조될 수 있습니다.

이 방법은 데이터가 메모리에 저장되는 방식을 변경합니다. 예를 들어, 개발자는 변수의 저장 위치를 로컬 저장소와 전역 저장소 사이에서 이리저리 바꿀 수 있어서 변수 동작의 실제 특성을 난독화할 수 있습니다.

이 방법은 프로그램/코드 스니펫의 동작을 변경하지 않고 데이터의 순서를 변경합니다. 개발자는 변수 참조의 모든 인스턴스에 대해 호출되는 별도의 모듈을 개발하는 방식으로 이러한 방법을 구현합니다.

이 방법은 읽을 수 있는 문자열을 모두 암호화하여 읽을 수 없는 코드를 생성합니다. 따라서 프로그램이 실행될 때 런타임에 암호를 해독해야 합니다.

5. 제어/코드 흐름 난독화

제어가 코드베이스의 한 섹션에서 다른 섹션으로 전달되는 방법은 프로그램의 의도를 결정하는 데 중요한 역할을 합니다. 이 흐름을 혼란스럽게 하는 것은 일반적으로 해커를 혼동하게 만들 수 있는 방법 중 가장 효과가 좋은 방법입니다. 이 난독화 방법은 해커가 코드의 특정 흐름을 채택하는 방법과 이유를 해독하지 못하게 합니다.

이를 구현하는 가장 일반적인 방법 중 하나는 임의적이고 예상치 못한 구문을 사용하여, 절대로 실행되지 않는 불필요한 대소문자 전환 구문(데드 코드)을 추가하는 것입니다. 이러한 구문은 해커를 혼란스럽게 만드는 것을 목적으로 합니다. 프로그램 실행 구문의 순서에 대한 이러한 변경은 조건부 프로그램 성향을 가진 경우에 특히 유용합니다.
제어 흐름 난독화 예
디버그 정보는 종종 프로그램 흐름, 디컴파일, 재컴파일을 통해 프로그램의 결함 등에 대한 중요한 정보를 아는 데 유용합니다. 식별자, 줄 번호를 변경하거나 디버그 정보에 대한 액세스를 모두 중지하여 이러한 식별 가능한 정보를 마스킹하는 것이 중요합니다.

C, C++와 같은 비메모리 안전 언어를 사용하여 메모리 프로그래밍 오류를 이용하는 공격을 수행하는 것이 보편화 되었습니다. 검사되지 않은 배열의 액세스와 같은 오류로 인해 보안 취약성이 발생하는 경우가 많습니다. 주소 난독화 방법은 변환된 코드가 실행될 때마다 코드의 가상 주소와 프로그램의 데이터가 랜덤화되기 때문에 리버스 엔지니어링 과정을 어렵게 만듭니다. 이는 대부분의 메모리 오류 취약점을 이용한 공격의 효과를 장담할 수 없게 만들기 때문에, 공격 성공의 가능성을 낮추는데 효과적입니다.
주소 난독화의 예
개발자는 커스텀 알고리즘을 사용하여 문자열을 인코딩하고 원래 코드를 가져올 수 있는 디코더 기능을 제공합니다.

런타임에 인수를 예상하도록 프로그램을 변경할 수 있습니다. 이렇게 하려면 사용자가 변수의 암호를 해독할 코드와 암호 해독 키를 모두 가지고 있어야 합니다.

또한 보안 팀은 여러 가지 보안 위협으로부터 애플리케이션을 보호하기 위한 계층적 방어 방식을 구현하기 위해 둘 이상의 기술을 동시에 구현할 수도 있습니다.

난독화 방법의 품질 결정

코드 난독화의 성공 여부는 코드 변환 품질을 결정하는 몇 가지 매개변수에 달려 있습니다. 난독화 기술의 품질은 다음 요소의 조합에 의해 결정되어야 합니다.

난독화된 코드는 가장 취약한 부분에 의해 파괴될 수 있습니다. 따라서 난독화를 시도했을 때 난독화된 코드에 의해 어느 정도의 저항이 나타나는지 확인하는 것이 품질을 확인하는 가장 좋은 방법입니다. 코드를 해독하는 데 더 많은 노력과 시간이 필요할수록 난독화가 더 잘 된 것입니다.

이는 난독화된 코드가 원본 코드와 얼마나 다른지 보여줍니다. 제어 흐름의 깊이, 중첩 수준, 상속 수준은 소스 코드의 복잡성을 증가시키는 데 사용됩니다. 코드 난독화는 이러한 복잡성을 증가시킵니다.

공격자가 난독화된 부분을 혼동하도록 원본 소스 코드와 구분할 수 없어야 합니다. 이는 공격자가 리버스 엔지니어링을 수행하기 어렵게 만듭니다. 이 요인은 상황에 따라 다르며, 종종 자동화된 리버스 엔지니어링 공격을 피하는 데 중요한 요소입니다.

이것은 난독화되지 않은 코드에 비해 난독화된 코드를 실행하는 데 소요된 시간과 자원으로 정의됩니다. 난독화된 코드를 구현할 때 몇 가지 성능 고려 사항을 염두에 두어야 합니다. 지능적으로 난독화된 코드는 신중한 기술을 사용하여 불필요하게 비용/자원을 지출하지 않고 공격자를 혼란스럽게 하는 목적을 제공해야 합니다.

난독화가 코드 성능에 영향을 미치는가?

코드 난독화는 코드 구조에 큰 변화를 가져오므로 애플리케이션의 성능에도 큰 변화를 가져올 수 있습니다. 일반적으로 이름 변경 난독화는 변수, 메소드, 클래스만 변경되므로 성능에 거의 영향을 미치지 않습니다. 반면에 제어 흐름 난독화는 코드 성능에 영향을 미칩니다. 의미 없는 제어 루프를 추가하여 코드를 따르기 어렵게 만드는 것은 종종 기존 코드베이스에 오버헤드를 추가하기 때문에 구현해야 할 필수 기능이지만 주의가 필요합니다.

코드 난독화의 경험 법칙은 원본 코드에 적용되는 기술의 수가 많을수록 해독에 더 많은 시간이 소비된다는 것입니다. 기술 및 컨텍스트화에 따라 코드 성능에 미치는 영향은 일반적으로 10%에서 80%까지 다양합니다. 따라서, 위에서 논의한 요소인 효과와 복원력은 코드 난독화의 지침이 되어야 합니다(난독화 이름 변경 제외). 어떤 종류의 난독화도 기회비용이 있기 때문입니다.

위에서 설명한 대부분의 난독화 기술은 코드 성능을 중요시하며, 애플리케이션에 가장 적합한 기술을 선택하는 것은 개발 및 보안 전문가의 몫입니다. 바이너리 링크와 같은 기술은 여러 입력 라이브러리를 더 적은 수의 출력 라이브러리로 결합합니다. 이렇게 하면 애플리케이션이 가벼워지고 해커가 앱 코드를 조작할 수 있는 인터페이스가 줄어들 수 있지만, 코드 실행을 위해 런타임에 디컴파일을 하는 것은 번거롭고 종종 코드 실행 시간을 늘립니다. 이러한 균형은 보안 로드맵에서 고려하여 적절한 보호 계층을 추가하는 동시에 실제 환경에 코드를 실행할 수 있도록 사전에 결정해야 합니다. 즉, 난독화가 더 강력하고 복잡할수록 성능 오버헤드는 더 커집니다.

코드 난독화의 이점

보안 팀이 오픈 소스 플랫폼에서 호스팅되는 애플리케이션의 코드 난독화를 구현하는 방식에서 특히 많은 이점이 발생합니다. 신뢰할 수 없는 환경에서는 공격자가 코드를 검토하고 애플리케이션을 분석하기 어렵게 만드는 난독화된 애플리케이션을 배포하는 것이 항상 더 좋습니다. 이 프로세스를 통해 불법적인 이익을 얻기 위해 가짜 애플리케이션을 디버깅하고 변조 및 재배포하려는 범죄자가 이용할 수 있는 허점을 남기지 않을 수 있습니다. 이러한 보호 레이어는 특히 비즈니스에 치명적인 고객의 개인정보를 처리하는 애플리케이션에 필수적입니다.

또한 대부분의 난독화기는 유용하지 않은 메타데이터, 사용되지 않는 불필요한 코드 또는 중복 코드를 제거하여 코드를 최적화합니다. 이러한 최소화를 통해 컴파일 프로세스 속도가 빨라지고 코드 실행 속도가 빨라지며 결과도 빨라져 코드 실행 속도도 빨라집니다.

코드 난독화의 또 다른 주요 이점은 애플리케이션을 리버스 엔지니어링하기 어렵게 만든다는 것인데, 오픈 소스 플랫폼에 코드를 구축하는 것을 더 이상 걱정할 필요가 없게 됩니다. 반복적인 코드 난독화는 여러 개의 보안 레이어를 적용하는 경우에 특히 많이 사용됩니다. 이 기술에서 보안 팀은 이전 알고리즘의 출력이 다음 줄에 입력 역할을 하는 하나 이상의 난독화 알고리즘을 적용합니다. 이러한 방식으로 공격자는 프로그램의 원래 의도와 프로그램에 표시되는 내용에 대해 혼동할 수 있으며, 결과적으로 해독 시도가 실패할 수 있습니다.

코드 난독화는 난독화된 코드를 해독하는 데 심각한 노력, 기술, 자원, 시간이 필요하기 때문에 위협을 처리하고 재미로 해킹하는 사람들을 제거하는 실용적인 방법입니다. 해커가 성공하더라도, 해독된 부분은 원래 코드와 많이 닮지 않을 수 있습니다. 실효성 측면에서 실제 측정값을 찾기는 어렵지만 대부분의 기업은 보안을 위해 코드를 난독화하며 사유화합니다.

코드 난독화의 단점

모든 난독화 기술이 코드 성능에 영향을 미치기는 하지만 그 정도는 미미합니다. 난독화된 코드 부분과 난독화된 알고리즘의 복잡성에 따라 코드를 해독하는 데 상당한 노력이 수반될 수 있습니다.

자동화된 해독기 대부분은 난독화된 애플리케이션을 리버스 엔지니어링할 수 있습니다. 난독화는 리버스 엔지니어링을 지연시킬 수 있을 뿐 불가능하게 만드는 것은 아닙니다.

일부 안티바이러스 소프트웨어는 난독화된 코드가 있는 사이트를 방문할 때 사용자에게 경고를 보낼 수도 있는데, 이는 난독화가 악성 코드를 숨기기 위해 사용될 수도 있기 때문입니다. 이는 사용자가 합법적인 애플리케이션을 사용하는 것을 막고 신뢰할 수 있는 회사에서 멀어지게 될 수 있습니다.

코드를 난독화해야 하는가?

코드 난독화의 장단점을 고려할 때 적절한 질문은 '코드 난독화를 적용해야 하는가'입니다. 짧게 대답하자면 '예'입니다. 코드 난독화는 최소한 프로그램을 이해하기 어렵지만 기능을 그대로 유지하는 코드 조각으로 변환합니다. 리버스 엔지니어링 및 사이버 범죄자에게 제기되는 문제는 코드를 난독화하기에 충분한 이유입니다. 강력한 바이너리 수준의 난독화는 코드 미니화로 인해 프로그램 성능에 이점을 제공하므로 전략적인 코드 난독화를 구현해야 할 충분한 이유가 됩니다.

더 나은 결과를 위해 보안 전문가들은 코드 교체, 코드 변조 탐지, 자가 , 워터마크, 암호화, 서버측 보호 등과 같은 다른 보안 메커니즘과 함께 코드 난독화를 구현하도록 권장합니다. 이렇게 하면 공격자는 제시간에 공격 행위를 완료하기가 어려워집니다. 성능에 민감한 코드를 식별하고 강력한 난독화 기술이 적용되는 경우 성능에 영향을 줄 수 있는 코드 부분을 표시할 수 있도록 애플리케이션의 런타임 동작을 분석하는 난독화 도구가 있습니다.

코드 난독화 도구

Android Studio에는 ProGuard 및 DexGuard와 같은 몇 가지 도구가 있습니다. Java의 오픈 소스 난독화기에는 클래스 파일 축소 프로그램인 ProGuard가 포함되며 사용하지 않는 클래스를 제거합니다. 또한 나머지 클래스의 이름을 의미 없는 이름으로 바꾸는 데 도움이 됩니다. 결과로 생성된 JAR 파일은 리버스 엔지니어링이 어렵습니다.

이것은 Python 스크립트를 난독화하고 난독화된 스크립트를 고정 머신 스크립트에 바인딩하는 명령줄 인터페이스 도구입니다. 런타임 동안 각 함수의 co_code와 상수를 보호하여 Python 스크립트의 난독화를 도와줍니다. 또한 실행 중에 난독화된 스크립트의 라이센스 파일을 확인합니다. 개발자는 이를 통해 원래의 Python 스크립트를 난독화된 스크립트로 원활하게 교체할 수 있습니다.

JavaScript 난독화

이 도구는 JavaScript를 난독화하고, 기존 JS 파일을 전혀 새로운 표현식으로 변환하여 기능을 변경하지 않고서는 이해하기 어렵고 재사용할 수 없게 만드는 것으로 유명합니다. 콘솔 출력을 비활성화하여 디버그 보호, 변수 및 함수 이름 변경, 문자열 제거, 비활성 코드 주입, 자가 방어 기능과 같은 다양한 변환을 수행합니다. 사용자가 JS 파일을 업로드하고 필요한 난독화 수준에 따라 적절한 옵션을 선택할 수 있는 사용이 간편한 인터페이스를 갖추고 있습니다. 전역 변수 이름 바꾸기, 문자열 배열 회전 또는 섞기, 문자열 배열 인코딩, 모든 문자열을 유니코드 표현식으로 변환하여 이스케이프 시퀀스에 유니코드 작업을 수행하는 등의 다양한 작업을 수행할 수 있습니다. 또한 제어 흐름 평탄화도 포함되어 프로그램 소스 코드의 이해를 방해합니다. 그러나 이러한 변환은 런타임 속도를 약 1.5배 느리게 하여 코드 성능에 영향을 미칩니다.

이것은 난독화된 JavaScript 코드를 디버깅하는 데 도움을 주는 또 다른 도구입니다. 별도의 소스 맵은 프로덕션 환경에서 코드를 디버깅하는 데 유용할 수 있으며, 개발 팀은 소스 맵을 외부에서는 알 수 없는 비공개 위치에 업로드할 수 있습니다.

CLI 모드에서 작동하며 JS 코드를 최소화, 난독화, 복원(beautify)하기 위한 다양한 옵션이 있습니다. JS에서 AST(추상 구문 트리)를 생성하는 파서, 변수, 메소드 이름을 단일 문자로 줄이는 맹글러 구성 요소와 변환을 사용하여 AST를 작은 것으로 최적화하는 압축기 구성 요소로 구성됩니다.

JavaScript의 한 가지 단점은 완전한 해독 방지가 될 수 없다는 것입니다. JS는 기본적으로 브라우저에서 실행되며 브라우저의 JS 엔진이 리소스를 렌더링하기 위해 JS를 읽어야 하기 때문입니다. 따라서 이 캡처 포인트는 생략할 수 없습니다.

Naneu의 PHP 난독화기

이것은 PHP를 파싱하고 변수 이름과 메소드를 난독화하는 난독화 도구입니다. 이 라이브러리는 UnPHP와 같은 해독기로부터 PHP를 보호하며 네이티브 PHP 환경에서 코드를 실행하는 데 유용합니다.

이 도구는 PHP Parser 4.x를 사용하여 PHP 코드를 구문 분석하며 GIT 클론으로 사용할 수 있습니다. 이로 인해 PHP 컴파일러는 재배포 코드를 이해할 수 있지만 소스 코드를 변조하는 사람은 이해할 수 없습니다. 제어 흐름 난독화를 구현하고, 주석, 들여쓰기, 문자열 리터럴을 모두 제거하고, 프로그램 디렉토리 전체를 반복적으로 난독화하며, 이름 변경 난독화를 구현합니다.

PHP Compactor 라이브러리는 PHP 코드베이스를 간결화 및 압축하는 또 다른 오픈 소스 라이브러리 난독화 도구입니다. 공백, 빈 줄, 주석이 제거되고 문자열이 인코딩됩니다.

HTML은 HTML 태그를 사용하여 복원(beautify)된 단순히 마크업된 텍스트입니다. HTML을 난독화하는 것은 보통 JavaScript로 변환하거나, 각 HTML 줄을 해당하는 숫자 코드로 변환하거나, 두 가지 메소드를 조합하여 수행합니다. 이것은 종종 효과적이지만, 변환의 각 단계에서 코드 오버헤드가 추가되기 때문에 순수 HTML의 무시할 수 있는 크기를 2~3배 증가시킵니다.

기존의 보안 접근 방식은 주로 서버측 보안에 중점을 두기 때문에 HFO(HTML Field Obfuscation)는 무시되는 경우가 많습니다. 앱에는 몇 가지 보안 취약성이 있습니다. Man-In-The-Browser와 같은 공격은 스크립트를 주입하여 사용자 이름 및 암호와 같은 중요한 필드에 연결하고 사용자가 입력할 때 자격 증명을 탈취합니다. 부정행위 방지 애플리케이션은 HFO를 사용하여 스크립트가 실행되지 않도록 합니다.

이 접근 방식은 대상 필드를 식별하는 데 브라우저 기반 애플리케이션을 사용하는 공격을 교란하도록 설계되었습니다. 미끼 필드는 필드 값을 암호화하는 것 외에도 공격자의 주의를 분산시키는 데에도 사용됩니다.

C 코드를 난독화하는 가장 좋은 방법은 컴파일하여 바이너리만 배포하는 것입니다. 이렇게 배포된 코드를 원래 형태로 리버스 엔지니어링하는 것은 매우 어렵습니다. 디컴파일 후 C/C++ 기계어 출력은 자체 난독화 되어 있어, 일정 수준의 난독화 기능이 내장되어 있다고 할 수 있습니다. 이러한 특징은 지적 재산에 대한 기술적 보호에 도움이 된다고 할 수 있습니다.

ANTLR(Another Tool for Language Recognition)은 C/C++ 소스 코드를 입력 파일로 가져와서 입력의 암시적 계층을 캡처하여 AST로 변환하는 파서 생성기입니다. 얻어진 구조에 기초하여, 각 노드는 구조의 의미 있는 구성요소를 나타냅니다. 이는 노드를 재구성하고 난독화 후 성능과 복원력을 검토함으로써 난독화 알고리즘을 구현하는 기반이 됩니다.

C/C++에 비해 C# 코드는 리버스 엔지니어링이 더 쉽습니다. 그 이유는 C# 어셈블리에 C++에 없는 메타데이터가 포함되어 있기 때문입니다. 또한 C#는 C/C++보다 소스 코드로 디컴파일하기가 쉬운 중간 언어로 매핑됩니다. 자동 난독화 도구의 일부 기능에는 사용자가 정의할 수 있는 보존된 이름 목록, C#에 대해 미리 정의된 예약 이름 목록, 주석 제거가 있습니다.

Crypto Obfuscator는 정교한 난독화 기술을 사용하여 C# 코드를 리버스 엔지니어링으로부터 보호합니다. 여기에는 기호 이름을 인식할 수 없는 이름으로 바꾸기, 중요한 메소드를 숨기기 위한 외부 메소드로부터 호출 숨기기, 문자열 암호화, 제어 흐름 난독화 등이 포함됩니다.

결론

요컨대, 코드 난독화만으로는 복잡한 보안 위협을 처리할 수 없습니다. 코드를 해독하는 것은 어렵지만, 자동화된 도구를 이용할 수 있고 해커도 전문 지식을 갖고 있으므로 리버스 엔지니어링이 불가능하지는 않습니다.

따라서 코드 난독화는 모든 애플리케이션 보안 요구를 위한 올인원 솔루션이 아닙니다. 개발 팀은 보안 요구 사항, 애플리케이션의 특성 및 성능 벤치마크에 따라 신뢰할 수 없는 환경에서 코드를 보호하기 위해 다수의 코드 난독화 기술을 구현하는 것을 고려할 수 있습니다. 각 기술의 장단점을 고려하여 이러한 작업을 수행해야 합니다. 이 전략은 암호화, RASP, 데이터 보존 정책 등과 같은 다른 AppSec 이니셔티브를 보완해야 합니다. 앱실링(AppSealing)과 같은 RASP 도구와 함께 사용하면 현재의 보안 위협에 대한 강력한 해결책을 구축할 수 있습니다.

# data[].attributes.attachment_link.title
코드 난독화 : 코드 보안을 위한 포괄적인 가이드 - AppSealing

# data[].attributes.attachment_link.description
코드 난독화는 애플리케이션을 해킹으로부터 보호하기 위해 가장 많이 사용되는 애플리케이션 보안 기술 중에 하나입니다. 이는 전 세계 보안 전문가들이 가장 권장하는 AppSec 이니셔티브 중 하나이며, 애플리케이션의 최소 보안 사항으로 요구되는 경우가 많습니다. 대개 이 기술은 해킹 시도에 대한 주요한 방어 메커니즘 역할을 수행하며 코드 주입, 리버스 엔지니어링, 고객 및 애플리케이션 사용자의 개인정보 변조와 같은 일반적인 ...

# data[].attributes.headline
2. 상표권에 의한 소프트웨어 보호 사례

# data[].attributes.subject
2. 상표권에 의한 소프트웨어 보호 사례

# data[].attributes.body
https://m.blog.naver.com/pipcblog/120190472828

# data[].attributes.attachment_link.provider_name
네이버 블로그 | 한국특허기술진흥원(KIPRO) 공식 블로그

# data[].attributes.attachment_link.readable_text
상표/디자인

[내부기고] 도형상표의 식별력에 관한 연구 - 최신 판례를 중심으로

도형상표의 식별력에 관한 연구

다시 말하자면 , 문자와 도형이 결합된 복합상표의 경우 수요자와 거래자는 문자부분에 의하여 상표를 호칭하고 기억할 것이기 때문에 도형부분이 현저하게 드러나는 경우와 같이 도형부분이 요부로 인식되어질 수 있어야만 도형에 의하여 식별력이 인정될 수 있다 는 것이다 . 즉 강한 식별력을 지닌 도형성이 식별력이 없는 문자의 인식력을 압도할 수 있을 때에만 도형의 식별력으로 인하여 상표등록을 받을 수 있으며 , 그와 반대로 도형화된 정도가 상표전체 구성에 있어서 부수적 또는 보조적이거나 문자의 인식력을 압도할 수 없을 만큼 수요자의 특별한 주의를 끌지 못한다면 상표등록을 받을 수 없다는 것이다 . 다음의 관련판례 1 과 2 를 통해서 도형성이 문자의 인식력을 압도하는 경우와 그렇지 못한 경우를 예로 들어 도형의 식별력에 대해 구체적으로 살펴보도록 한다 .

﻿

세 번째 이미지는 지정서비스업인 검도지도업에서 문자부분은 출처를 표시할 수 있는 식별력이 없으나 , 도형부분에 칼과 곧은 정신을 상징하는 대나무의 이미지를 결합하여 형상화하고 여기에 음양을 상징하는 태극문양과 중첩시켜서 이를 7 개의 마디로 이루어진 방패의 중앙에 휘장처럼 삼고 있는 도형으로써 전체적으로 독창적인 도형이라고 볼 수 있다 .

상표의 구성에 있어서 도형부분이 문자부분을 압도하는 크기로 배치되어 있고 , 지정상품 ( 또는 지정서비스업 ) 과 관련하여 기술적 또는 설명적인 의미로 직감되는 문자에 창의적이고 독특한 도형요소가 결합되어 있어 수요자가 보통의 주의력을 가지고 있는 경우 전체적으로 보아 그 도형화된 정도가 수요자의 특별한 주의를 끌 정도에 이르러 문자의 기술적 또는 설명적인 의미를 직감할 수 없을 만큼 문자의 인식력을 압도한 경우에는 그 문자의 한계성을 도형요소로써 극복하고 특별한 식별력을 가진 것으로 보아야 하므로 상표법 제 6 조 1 항 각호의 적용 대상이라고 볼 수 없다 .15

2. 성질표시를 나타내는 도형

﻿

4. 사실적 ․ 디자인적 표장의 식별력

﻿

5. 도형상표의 유사

﻿

﻿

﻿

Ⅲ . 맺음말

[ 참고자료 ]

﻿

1. 한국특허정보원 특허정보진흥센터는 대한민국 특허청으로부터 공인받은 상표, 디자인, 특허기술 분야 전문조사기관이다. (홈페이지 : www.pipc.or.kr)
2. 상표법 제2조 제1항 제1호
3. "본법에서 상표라 함은 상표를 표시하는 것으로서 생산․제조․가공․증명 또는 판매업자가 자기의 상품을 타업자의 상품과 식별시키기 위하여 사용하는 기호․문자․도형 또는 그 결합의 특별현저한 것을 말한다." 상표법§ 제1조(1949.11.28 법률 제71호).
4. 대법원 1997. 2. 28 선고 96후979 판결.
5. 상표가 상품의 출처를 표시하거나 상품의 품질을 보증하는 기능을 발휘하기 위해서는 그 전제로서 자기의 상품과 타인의 상품을 구별할 수 있어야 하는데 이를 자타상품의 식별기능이라 한다. 이러한 상표의 자타상품식별기능으로 인하여 상표사용자는 자기의 상품을 소비자에게 인식시키고 소비자는 자기가 구매하고자 하는 상품을 쉽게 찾을 수 있게 되므로 상표를 '상품의 얼굴'이라고 표현하기도 하며, 자타상품식별기능이 발휘됨으로서 다른 기능, 즉 품질보증기능․출처표시기능 등이 발휘되기 때문에 자타상품식별기능을 상표의 기능 중 가장 기본적이고 본질적인 기능이라고 일컫는다. 문삼섭, 「상표법」, 세창출판사, 2004, 142면.
6. 정상조, 「지적재산권법」, 홍문사, 2004, 490면.
7. 송영식, 황종환, 김원오 공저, 「상표법」, 한빛지적소유권센터, 1996, 322면.
8. 문삼섭, 「상표법」, 2004, 184면.
9. "사용에 의하여 식별력을 취득한 상표"에 관한 내용은, 문삼섭, 앞의 책, 303-317면 참조.
10. 특허청, 「조문별 상표법해설」, 2004, 18면.
11. "도형상표 심사가이드"(2008.1, 특허청 상표디자인심사본부)에서 소개한 판례를 바탕으로 최신의 자료들을 요약 및 정리한 것임을 밝힌다.
12. 우리 상표법에서 일반명칭상표는 보통명칭(§제6조 제1항 제1호) 및 관용명칭(§제6조 제1항 제2호)에 해당하고, 기술적 상표는 성질표시(§제6조 제1항 제3호)표장부터 기타 식별력이 인정되지 않는 표장((§제6조 제1항 제7호)에 해당하는 것으로 크게 나누어 볼 수 있다.
13. 특허청, 「상표심사기준」, 2012, 14면.
14. 그 상품의 산지․품질․원재료․효능․용도․수량․형상․가격․생산방법․가공방법․사용방법 또는 시기를 보통으로 사용하는 방법으로 표시한 표장만으로 된 상표, 일명 성질표시표장 또는 기술적 상표에 해당하는 것을 말한다.
15. 2000.2.25. 선고 98후1679 판결
16. 특허청, 「상표심사기준」, 2012, 19-20면.
17. 대법원 2002. 11. 26. 선고 2001후3415 판결.
18. 특허법원 2002. 11. 1. 선고 2002허3474 판결.
19. 특허법원 2008. 9. 11. 선고 2008허2312 판결.

# data[].attributes.attachment_link.title
[내부기고] 도형상표의 식별력에 관한 연구 - 최신 판례를 중심으로

# data[].attributes.attachment_link.description
상표/디자인 [내부기고] 도형상표의 식별력에 관한 연구 - 최신 판례를 중심으로 도형상표의 식별력에 관한 연구 다시 말하자면 , 문자와 도형이 결합된 복합상표의 경우 수요자와 거래자는 문자부분에 의하여 상표를 호칭하고 기억할 것이기 때문에 도형부분이 현저하게 드러나는 경우와 같이 도형부분이 요부로 인식되어질 수 있어야만 도형에 의하여 식별력이 인정될 수 있다 는 것이다 .

# data[].attributes.body
소프트웨어 발명이 특허로 등록되기 위해서는 발명의 성립성 을 충족 해야 하고 신규성 과 진보성을 만족 해야 한다. 기존의 기술과도 달라야하는등 이러한점 때문에 특허가 나기에는 쉽지않다 우리나라도 1984년과 1998년 컴퓨터 소프트웨어 발명 심사기준의 재정과 개정을 통애 소프트웨어의 특허를 인정하기 시작했다

# data[].attributes.attachment_link.provider_name
네이버 블로그 | 윕스 공식기업블로그 아이디어 놀이터

# data[].attributes.attachment_link.title
소프트웨어의 권리 보호 방법

# data[].attributes.attachment_link.description
소프트웨어의 권리 보호 방법   4차산업혁명 시대의 도래와 함께 컴퓨터를 이용한 운영체제, 모바일…

# data[].attributes.body
상표권을 침해하는 행동이 발견된다면, 상표권자는 먼저 자기 권리에 문제가 없는지를 확인한 후에 변리사에게 의뢰해 상표권 침해 가능성을 검토해야 한다. 상표권 침해 가능성이 높은 경우 또는 침해라고 단정할 수는 없지만 상표권이 훼손될 염려가 있다고 판단되면 변리사를 통해 경고장이나 협조문을 보내는 것이 일반적이다.

# data[].attributes.attachment_link.readable_text
게임 소프트웨어의 상표등록

퍼블리셔가 상표권을 소유하는 경우 , 라이센싱 계약이 종료되면 퍼블리셔는 상표권을 개발사에 반환해야 할 것인가 ? 게임 타이틀에 대한 상표권은 그 소유자에 대해 재산권으로서의 역할을 하게 된다 .

특히 , 게임 소프트웨어의 타이틀은 게임 서비스 기간 동안 퍼블리셔의 출처로서 사용되었으므로 , 계약 종료 후 상표권의 이전에 대한 명시적인 규정이 없는 한 퍼블리셔가 상표권자로서 계속적으로 상표권을 보유한다고 볼 수 있다 .

그러나 , 게임 소프트웨어의 저작권과 타이틀의 상표권 소유자가 다르다는 것을 이유로 게임 소프트웨어로부터 타이틀을 무조건적으로 분리하면 , 라이센싱 계약의 종료로 인해 게임 타이틀이 변경되면 게임 소프트웨어의 가치가 급격하게 하락하게 되어 게임 개발사와 퍼블리셔 모두 상당한 경제적 손해를 입을 수밖에 없을 것이다 . 따라서 , 게임 타이틀에 대한 상표권을 퍼블리셔가 소유하는 경우 , 개발사는 라이센싱 종료 시점에 상표권을 반환할 수 있는 방안을 고려하는 것이 필요하다 .

해외 상표권 확보 및 보호

# data[].attributes.attachment_link.title
≪특허뉴스≫ [지식재산 활용백서④] 상표권 보호 및 활용

# data[].attributes.attachment_link.description
게임 소프트웨어의 상표등록 퍼블리셔가 상표권을 소유하는 경우 , 라이센싱 계약이 종료되면 퍼블리셔는 상표권을 개발사에 반환해야 할 것인가 ? 게임 타이틀에 대한 상표권은 그 소유자에 대해 재산권으로서의 역할을 하게 된다 . 특히 , 게임 소프트웨어의 타이틀은 게임 서비스 기간 동안 퍼블리셔의 출처로서 사용되었으므로 , 계약 종료 후 상표권의 이전에 대한 명시적인 규정이 없는 한 퍼블리셔가 상표권자로서 계속적으로 상표권을 보유한다고 볼 수 있다 .

# data[].attributes.headline
2. 상표권에 의한 소프트웨어 보호 사례

# data[].attributes.subject
2. 상표권에 의한 소프트웨어 보호 사례

# data[].attributes.headline
1] 난독화 장치 밑 소프트웨어:

# data[].attributes.body
1] 난독화 장치 밑 소프트웨어:
보안처리 시스템
소스 코딩이 수행되는 적어도 하나의 개발자 컴퓨터와 소스코딩, 기계어번역이 완료된 원본 파일을 코드 난독화를 수행하여 반환하는 것으로 권한없는 제3는 접근 불가하고 상기 난독화 장치에서 난독화 완료 파일을 수신하는 보안관리서버를 포함하고 있다.
2] 소프트웨어 임의조작 방지 기술:
대부분의 소프트웨어 공격은 화이트박스로 디버거 등만을 공격하는데 이 화이트박스 공격을 방지할 수 있는 화이트박스 암호 기반 AES기술과 SW 위변조 방지 밑 라이선스/암호키 등 정보 은닉 기술을 활용해 강인한 지식콘텐츠 관리 소프트웨어 위변조 밑 권한의 불법 유출을 방지하고 강인한 소프트웨어 기반으로 화이트박스 공격을 막은 사례가 있다.

# data[].attributes.headline
소프트웨어 보호를 위한 기술적 조치 유형

# data[].attributes.subject
소프트웨어 보호를 위한 기술적 조치 유형

# data[].attributes.body
1.코드 난독화
코드 난독화는 프로그래밍 언어로 작성된 코드에 대해 읽기 어렵게 만드는 작업이다. 대표적인 사용 예로는 프로그램에서 사용된 아이디어나 알고리즘 등을 숨기는 것 등이 있다. 코드 난독화 과정을 거친 코드를 특정 기준에 의해 심사하는 대회도 있다.
2.정품 소프트웨어 인증제도
소프트웨어 저작권사 라이선스 정책과 기준을 근거로 해 객관적인 인증심사위원회를 통하셔 심사를 한 후 인증 여부를 결정하게 되는 소프트웨어 정품 사용 인증제도입니다

# data[].attributes.headline
3. 소프트웨어 보호를 위한 기술적 조치 유형

# data[].attributes.subject
3. 소프트웨어 보호를 위한 기술적 조치 유형

# data[].attributes.body
1. DOI - 인터넷 주소가 변경되더라도 사용자가 그 문서의 새로운 주소로 다시 찾아 갈 수 있도록, 웹파일이나 인터넷 문서에 영구적으로 부여된 식별자

2. DRM - 디지털 콘텐츠의 무단 사용을 막아, 제공자의 권리와 이익을 보호해주는 기술과 서비스
3. 스테가노그라피 - 정보가 제 3의 사용자로부터 불법적으로 사용되거나 정보의 변조를 막기위한 수단

# data[].attributes.attachment_link.description
IT (Information Technology)에 대한 다양한 영역의 정보들에 대한 블로그입니다.

# data[].attributes.headline
상표권에 의한 소프트웨어 보호 사례

# data[].attributes.subject
상표권에 의한 소프트웨어 보호 사례

# data[].attributes.attachment_link.title
[넥슨vs다크앤다커 도둑질 시비 점입가경] STEAM에서 내려갔으면 게임 끝일까?

# data[].attributes.headline
상품권에 의한 소프트웨어 보호사례

# data[].attributes.subject
상품권에 의한 소프트웨어 보호사례

# data[].attributes.headline
소프트웨어 보호를 위한 기술적 조치 유형

# data[].attributes.subject
소프트웨어 보호를 위한 기술적 조치 유형

# data[].attributes.body
1) 툰레이더
네이버웹툰 유료회차 이용 시 캡처 관련 안내가 공지된다. /사진=네이버웹툰 제공웹툰은 이미 추적 시스템이 마련돼 있다. 네이버웹툰의 경우 회원가입자만 이용 가능한 유료 회차에 한해 인공지능(AI) 기술 '툰레이더'를 통해 이미지를 캡처한 이용자의 아이디를 추적하고 있다. 툰레이더는 웹툰 이미지에 보이지 않는 사용자 식별 정보를 삽입, 최초 불법 유출자를 식별·차단하는 시스템이다. 네이버웹툰은 이 기술을 자체 연구개발해 2017년 7월부터 국내외 불법 웹툰 복제물 추적에 활용 중이다.
2)

# data[].attributes.body
1) 소프트웨어 암호화 : 셋탑박스, 스마트폰, PC 등 개방형 단말 환경에서 지식콘텐츠 관리 소프트웨어 위변조 및 권한의 불법 유출을 방지하기 위한 보안 플랫폼 핵심기술, 화이트박스 공격 및 BORE(Break Once Run Everywhere) 공격에 강인한 소프트웨어 기반 Tamper-Resistant 기술

2) 소프트웨어 코드 난독화 : 코드 난독화는 프로그래밍 언어로 작성된 코드에 대해 읽기 어렵게 만드는 작업이다. 대표적인 사용 예로는 프로그램에서 사용된 아이디어나 알고리즘 등을 숨기는 것 등이 있다.

# data[].attributes.body
3.소프트웨어 보호를 위한 기술적 조치 유형

1.DRM 복제방지 기술
DRM은 전통적인 디지털 저작권 보호 기술에서 가장 강력한 기술로 알려져 왔으며, 암호화 기술을 기반으로 디지털 저작물의 권한 제어를 통해 저작권을 보호하고 있다.
DRM 요소기술의 하나인 화면캡처 방지기술은 웹상 화면을 이미지로 저장하는 것이나 텍스트 복제를 방지하는 기술이다.
저자구
2.고속 탐색 기술
일반적으로 웹소설과 같은 저작물은 압축파일 형태로 불법유통되기 때문에 저작물의 불법성 여부를 조사하기 위해 압축파일 해제와 해제된 파일의 내용을 고속으로 파악하여 보호되는 저작물에 해당하는지를 판단하는 것이다.

# data[].attributes.headline
상표권에 의 소프트웨어 보호사례

# data[].attributes.subject
상표권에 의 소프트웨어 보호사례

# data[].attributes.headline
암호우리는 어디 회원 가입을 

# data[].attributes.body
암호
우리는 어디 회원 가입을 할때면 암호를 만든다
이 암호도 우리 개인정보를 소프트웨어에서 부터 지켜주는 수단이다

# data[].attributes.body
본 논문에서는 소프트웨어가 가지는 위협 모델과 크래킹 기술에 ...

koreascience.or.kr

https://koreascience.or.kr

# data[].attributes.body
1) 정품 소프트웨어 인증 제도
소프트웨어 인증 제도란 소비자가 정품 소프트웨어를 구입하면 제품의 일련번호를 소프트웨어 등록 기관이나 인증 센터에 등록하여 정품 인증을 받은 후 사용할 수 있는 제도입니다.

# data[].attributes.attachment_link.title
명성특허사무소 무료상담 1600-9439 : 네이버 블로그

# data[].attributes.headline
소프트웨어 보호를 위한 기술적 조치 유형

# data[].attributes.subject
소프트웨어 보호를 위한 기술적 조치 유형

# data[].attributes.body
1. 암호는 정보를 이해할 수 없도록 암호화 하거나 다시 해독하기 위한 일련의 단계를 정의한 알고리즘이다.
자신만 아는 암호를 사용해 쉽게 소프트웨어를 보호할 수 있다
2.

# data[].attributes.attachment_link.provider_name
네이버 블로그 | 더바른코딩

# data[].attributes.attachment_link.title
소프트웨어는 어떻게 보호될까요?

# data[].attributes.attachment_link.description
소프트웨어를 사용하고자 할 경우 먼저 보호받는 저작물인지를 확인하여, 저작권자가 있다면 합법적인 비용...

# data[].attributes.headline
상표권에 의한 소프트웨어 보호사례

# data[].attributes.subject
상표권에 의한 소프트웨어 보호사례

# data[].attributes.body
1. 특허에 의해 sw 보호하는 방법/절차 요약
모든 지식재산권을 등록 결정까지 끌고 가기 위해서는, 출원이 가장 중요한 절차라고 볼 수 있습니다. 성공적으로 등록을 받으려면, 출원을 준비하는 과정에서 전문적인 지식을 배경으로 하는 전략이 필요하기 때문입니다. 출원은 가장 먼저 선행 기술조사가 우선시됩니다.소프트웨어 특허 등록을 성공적으로 받으려면 선행기술조사가 우선시 됩니다. 선행기술 조사를 통해 기존에 등록되어 있는 소프트웨어 특허를 비교하며 가능성을 검토하게 된다. 등록 결정을 받아서 특허청에 납부해야 하는 관납료를 지불하고 특허권을 취득 가능하다.

# data[].attributes.attachment_link.title
[테헤란 특허 비즈니스 센터] : 네이버 블로그

# data[].attributes.headline
2. 상표권에 의한 소프트웨어 보호 사례

# data[].attributes.subject
2. 상표권에 의한 소프트웨어 보호 사례

# data[].attributes.attachment_link.readable_text
개발사 스테이션3가 모바일 부동산 어플 '다방' 상표권 소송에서 승소하고 브랜드명 '다방'에 대한 권리를 지켜냈다. 올 4월 경 '직방'을 서비스하는 채널브리즈의 상표권침해금지가처분 신청 이후 약 6개월만의 판결이다.

사진제공=다방

스테이션3는 지난 2013년 7월 정식으로 '다방' 애플리케이션을 출시하고, 상품분류코드 중 대분류에 해당하는 금융업, 부동산업, 무역업이 포함된 '상품 제 36류'와 전자통신이 관련된 '상품 제 9류' 중 각각 하나의 중분류에만 상표권을 등록했다. 스타트업이 변리사 없이 상표권 등록을 하는 과정에서 착오가 있었다.

이후 채널브리즈는 '다방', '꿀방' 등 유사 서비스업체의 서비스명에 대한 상표권을 등록했고 스테이션3 측에서 부정경쟁을 목적으로 '다방'이라는 서비스를 운영했다며 상표권침해금지 가처분 신청에 대한 소송을 제기했다.

그러나 법원은 지난 9월, 스테이션3가 '다방' 서비스를 운영하는 데에 부정경쟁 목적이 없으며 채널브리즈의 상표등록출원 이전부터 '다방', 'DABANG' 명칭을 내걸고 서비스를 운영한 점을 인정했다. 이어 차후에도 관련 상표를 사용할 수 있다는 판결을 내리며 스테이션3 측의 손을 들어줬다.

한편, 스테이션3는 '다방' 상표권을 지켜낸 이후 10월 초 '다방' 애플리케이션을 대대적으로 업데이트하며 서비스의 품질을 높이기 위한 노력을 이어가고 있다.

# data[].attributes.attachment_link.title
스테이션3, '다방' 상표권 소송에서 승소 - 머니투데이

# data[].attributes.attachment_link.description
개발사 스테이션3가 모바일 부동산 어플 '다방' 상표권 소송에서 승소하고 브랜드명 '다방'에 대한 권리를 지켜냈다. 올 4월 경 '직방'을 서비스하는 채널브리즈의 상표권침해금지가처분 신청 이후 약 6개월만의 판결이다. 사진제공=다방 스테이션3는 지난 2013년 7월 정식으로 '다방' 애플리케이션을 출시하고, 상품분류코드 중 대분류에 해당하는 금융업, 부동산업, 무역업이 포함된 '상품 제 36류'와 전자통신이 관련된 '상품 제 9류' 중 각각 하나의 중분류에만 상표권을 등록했다.

# data[].attributes.headline
2.상표권에 의한 소프트웨어 보호 사례

# data[].attributes.subject
2.상표권에 의한 소프트웨어 보호 사례

# data[].attributes.attachment_link.title
코로나19 여파로 온라인 교육 관련 상표출원 크게 늘어

# data[].attributes.attachment_link.description
코로나19 여파로 온라인 교육 관련 상표출원 크게 늘어, 경제

# data[].attributes.body
카피래프트 (Copyleft)는 저작권과 반대되는 단어로 주로 저작권을 반대하는 사람들이 사용하는 단어다. 이들은 저작권을 구시대의 악습이라 여긴다. 이들의 주장은 다음과 같다. 첫째: 저작권은 남용될 수 있다. 예시로 주식회사 코카콜라는 법 자사의 제품 중 하나인 카페인 음료 몬스터의 저작권을 다른 회사가 침해했다고 고소했다. 그 회사는 게임 회사다. 그 회사의 게임 중에서 단 한번도 카페인 음료인 몬스터가 등장하지 않았지만 재판에서는 고소가 인정됐다. 코카콜라는 몬스터란 단어의 저작권을 주장한 것이다. 그들은 이 사건을 대기업이 중소 회사를 탄압하고 더 나아가 저작권을 독점하는 것이라고 말했다. 두 번째: 저작권의 기준은 애매하다. 많은 노래들이 표절로 논란이 되던 가운데 법원의 판결은 무죄와 유죄 둘 다 판결했다. 이는 저작권의 기준이 정해져 있지 않기 때문에 발생한 사건이라고 그들은 주장한다. 마지막: 기존의 저작권은 잘못되었다. 이들은 기존의 저작권이 자본이 많은 사람만이 이기는 불합리한 시스템이라고 주장한다. 그리고 이들은 새로운 저작권인 카피래프트가 필요하다고 주장한다. 카피래프트는 다음과 같다. 첫째: 영리를 하지 말 것, 둘째: 독점하지 말 것, 셋째: 비슷한 점이 기준을 초과하지 말 것. 그들은 카피래프트가 진정한 저작권이라고 주장한다.

# data[].attributes.body
3.소프트웨어 보호를 위한 기술적 조치 유형

1.DRM 복제방지 기술
DRM은 전통적인 디지털 저작권 보호 기술에서 가장 강력한 기술로 알려져 왔으며, 암호화 기술을 기반으로 디지털 저작물의 권한 제어를 통해 저작권을 보호하고 있다.
DRM 요소기술의 하나인 화면캡처 방지기술은 웹상 화면을 이미지로 저장하는 것이나 텍스트 복제를 방지하는 기술이다.
2.고속 탐색 기술
일반적으로 웹소설과 같은 저작물은 압축파일 형태로 불법유통되기 때문에 저작물의 불법성 여부를 조사하기 위해 압축파일 해제와 해제된 파일의 내용을 고속으로 파악하여 보호되는 저작물에 해당하는지를 판단하는 것이다.

# data[].attributes.body
1. 중복 코드 심기

의도적으로 코드 내에 중복 구성 요소를 심는 다.
누군가가 코드를 복제했다고 의심될 때 중복 구성 요소를 찾을 수 있으면, 코드 복제가 이뤄졌다는 강력한 증거가 되기 때문에 법무팀의 일이 더 수월해진다.

2. 모든 데이터 암호화

데이터 암호화는 SaaS 보호의 핵심 단계이다.데이터를 암호화하면 어떤 프로세스에서 데이터가 유출되더라도 권한 없는 사람이 해석할 수 없는 형태로 나타나게 된다.

# data[].attributes.attachment_link.readable_text
시간과 노력, 비용을 쏟아부어 훌륭한 소프트웨어를 개발하고 시장에 출시할 준비가 되었다면, 이제 이 소프트웨어를 어떻게 보호할 것인지 고민해야 합니다.
소프트웨어 보호가 필요한 이유

기업 수익을 저해할 수 있는 저작권 침해, 무단 복제, 또는 소프트웨어의 기타 무단 사용

기업 데이터나 고객 데이터를 위험에 빠뜨리는 보안 침해

물리적인 형태가 있는 제품을 판매하는 경우에는 제품을 보호하는 것이 그렇게 복잡하지는 않습니다. 잠금 장치와 열쇠로 제품을 보관하여 나쁜 의도를 가진 사람이 제품에 접근하지 못하도록 하는 것입니다.

소프트웨어는 다릅니다. 보호되지 않는 소프트웨어를 승인 없이 여러 장치에서 복사, 복제하거나 사용하기는 매우 쉽습니다. 또한, 고객이 소프트웨어를 사용해 민감한 데이터를 저장한 경우, 해커가 침투해 수집하기 쉽습니다.

소프트웨어를 잘 보호한다는 것은 고객이 정보가 안전하리라 믿고 제품을 사용할 수 있다는 것을 의미합니다.

소프트웨어 보호 유형을 세 가지 살펴보겠습니다.

소프트웨어 저작권 보호

저작권이란 창작물을 복제할 수 있는 권리입니다. 즉, 창작물 도용을 방지하여 원저작물의 창작자를 보호하는 지적 재산권의 한 유형입니다. 저작권은 아이디어나 개념을 보호하는 것이 아니라 아이디어나 개념의 표현만을 보호한다는 점에 유의해야 합니다. 소프트웨어에서 이는 실제 코드를 의미합니다.

소프트웨어 저작권 보호란

소프트웨어 저작권 보호란 소프트웨어를 복제하여 불법적으로 사용하지 못하게 하는 것입니다.

이론적으로 소프트웨어는 유형 매체에 코드가 고정되는 즉시 저작권법의 보호를 받게 되므로 저작권법이 자동으로 소프트웨어 저작권을 보호한다고 볼 수 있습니다. 그러나 이는 실제로 그렇게 효과적이지가 않습니다. 다른 사람이 소프트웨어를 복제할 수 없다는 것을 의미할 뿐입니다. 적어도 미국에서는 미 저작권청 에 먼저 등록하지 않는 한, 저작권 침해를 고소할 수도 없습니다.

등록했더라도 소송을 유일한 소프트웨어 저작권 보호 방법으로 삼는 것은 좋은 전략이 아닙니다. 제품을 복제한 사람을 실제로 잡아서 소송을 제기하고 법원에서 소프트웨어를 무단 복제했음을 입증하는 데 상당한 돈과 시간을 소비해야 한다는 뜻이기 때문입니다.

이는 제한된 예산으로 .Net 애플리케이션이나 기타 오픈소스 개발 프로그램의 복제를 방지하고자 하는 소규모 소프트웨어 개발자에게 특히 큰 문제입니다. 저작권 침해를 발견했을 때 법적 조치를 취하는 것은 차치하고 저작권 침해를 모니터링할 수단조차 이들에게는 없습니다.

그렇다면 더욱 효과적인 소프트웨어 저작권 보호 전략에는 무엇이 있을까요?

저작권 침해를 쉽게 증명할 수 있는 방법 한 가지는 의도적으로 코드 내에 중복 구성 요소를 심는 것입니다. 누군가가 코드를 복제했다고 의심될 때 중복 구성 요소를 찾을 수 있으면, 코드 복제가 이뤄졌다는 강력한 증거가 됩니다. 다시 한 번 말하자면, 이 소프트웨어 저작권 보호 전략에는 소송이 수반되지만 적어도 법무팀의 일이 더 수월해집니다.
누가 소스 코드를 볼 수 있는지 조심하기
소프트웨어 공급기업은 항상 모범 사례를 따르면서 권한 있고 신뢰할 수 있는 사람만 소스 코드에 액세스하도록 해야 합니다. 직원을 주의 깊게 검증하고 아웃소싱할 때는 신뢰 수준이 높은 추천 자료를 확보합니다.
ID 기반 라이선스 솔루션 사용
최종 사용자가 소스 코드에 액세스하는 것을 막을 수는 없더라도 ID 기반 라이선싱 솔루션을 사용하면 프로그램을 사용하는 사람에 대해 가능한 한 많은 정보를 얻을 수 있습니다.

ID 기반 라이선싱 솔루션은 사용자 이름과 비밀번호 같은 특정 자격 증명을 사용하는 사용자에게만 액세스를 허용합니다. Sentinel EMS 와 같은 라이선싱 관리 시스템을 사용하면 누가 언제 어떤 제품을 사용하는지 추적 관리하는 데 유용한 여러 데이터에 액세스할 수 있습니다.

SaaS 보호

SaaS(Software as a Service)는 점점 더 인기를 얻고 있는 소프트웨어 제공 모델입니다. 소프트웨어를 한 번 구입해 설치하고 지정된 장치에만 사용하는 대신, 사용자는 구독제로 소프트웨어를 구입하고 원격 서버를 통해 액세스하여 사용할 수 있습니다. 이 모델은 비용 효율적이고 유연한 편입니다. 고객은 여러 장치에서 소프트웨어에 액세스할 수 있으며 항상 최신 버전의 소프트웨어를 사용할 수 있습니다.

SaaS 보호란

SaaS 보호에는 두 가지 구성 요소가 있습니다.

1. 프로그램 자체의 무단 사용 방지 - 무단 복제·절도로부터 공급기업 보호
2. 최종 사용자가 프로그램에 입력한 데이터 보안 - 데이터 침해로부터 고객 보호

SaaS 보호는 이 두 가지 구성 요소를 고려하는 것 외에도 해커가 악용할 수 있는 '진입 지점'이 더 많기 때문에 온프레미스 소프트웨어를 보호하는 것보다 약간 더 복잡합니다. 최근까지 매우 민감한 데이터를 처리하는 많은 조직에서는 보안에 대한 우려로 SaaS 프로그램을 사용하기를 꺼려왔습니다. 데이터를 클라우드에 업로드하고 원격 서버에 저장해야 한다는 점 때문에 데이터 침해에 훨씬 더 취약해 보이는 모델이었기 때문입니다.

다행히 오늘날에는 이용 가능한 기술로 SaaS 데이터를 매우 안전하게 보호할 수 있습니다.

견고한 SaaS 보안 구축

SaaS 공급사라면 잠재 고객에게 데이터의 안전을 보장할 수 있어야만 하며, 이는 제품에 대한 신뢰를 줍니다. 게다가 일부 국가에는 고객 데이터 보안을 규제하는 의무 요건이 있습니다. 따라서 사업을 운영하려면 이러한 규정을 준수해야 할 수도 있습니다.

그렇다면 SaaS를 어떻게 보호할 수 있을까요?

최종 사용자 교육

가장 먼저 이해해야 할 것은 SaaS에 대한 보호는 양방향에서 이루어져야 한다는 점입니다. 최종 사용자에게 최고의 보안 수준을 제공해야 하지만 최종 사용자가 보안에 큰 관심이 없다면 데이터 침해를 방지하기 위해 할 수 있는 일은 많지 않습니다. 따라서 데이터 보안에 관한 사용자 교육 측면에서 할 수 있는 일을 하는 것이 중요합니다.

모든 데이터 암호화

데이터 암호화는 SaaS 보호의 핵심 단계입니다. 데이터를 암호화하면 어떤 프로세스에서 데이터가 유출되더라도 권한 없는 사람이 해석할 수 없는 형태로 나타나게 됩니다.

강력한 비밀번호 요구

지난 몇 년간 사람들은 비밀번호가 복잡해지는 것에 대해 불평해왔지만 공급업체가 더 복잡한 비밀번호를 요구하는 이유가 있습니다. 해커가 추측하기가 훨씬 더 어렵기 때문입니다. 보안 전문가 Brian Krebs 에 따르면 이상적인 비밀번호는 다음과 같습니다.

가능한 한 긴 비밀번호 - 최소 8~10자

일련의 단어를 포함하는 비밀번호 - 숫자나 대문자, 특수 문자도 좋지만 길이가 더 중요하고 문장이면 기억하기가 더 쉽습니다.

'비밀번호'와 같은 흔한 단어, '1234' 또는 'qwerty'와 같은 키보드 조합, 생일, 전화번호, 애완동물 이름 등과 같은 기타 환경이나 소셜 미디어에서 검색할 수 있는 정보를 피합니다.

사이버 보안 기업 고용

확실하지 않을 때는 항상 전문가와 상의하는 것이 좋습니다. 탈레스 Sentinel은 SaaS 제공기업의 요건에 특별히 맞춘 사이버 보안·라이선스 관리 솔루션 패키지를 제공합니다.

보호 키

도난, 무단 복제 및 액세스로부터 소프트웨어를 보호하는 가장 좋은 방법 중 하나는 보호 키를 사용하는 것입니다.

보호 키란

보호 키는 권한 없는 사용자의 소프트웨어 액세스나 복제 시도를 방지하는 코드 유형입니다. 소프트웨어를 키로 보호하면 키가 있는 사용자만 자신의 장치에서 소프트웨어를 실행할 수 있습니다.
보호 키에는 세 가지 유형이 있습니다.
하드웨어 보호 키

동글이라고도 불리는 하드웨어 보호 키는 소프트웨어 액세스를 활성화할 때 연결해야 하는 소형 기기입니다. 최종 사용자에게 물리적 장치를 발급해야 하고 사용자는 장치를 가지고 있을 때만 소프트웨어를 실행할 수 있는 유형이므로 아래의 다른 솔루션보다는 편리성이 떨어집니다. 그러나 일부 사용자는 보안상의 이점 때문에 이 유형의 보호 키를 선호합니다.

소프트웨어 보호 키

소프트웨어 보호 키는 일종의 소프트웨어로, 특정 장치에 설치하고 이 장치를 이용해 보호를 받는 소프트웨어에 액세스하게 됩니다. 사용자는 소프트웨어와 키를 함께 다운로드하고 즉시 액세스할 수 있습니다.

클라우드 기반 보호 키

이 모델을 사용하면 사용자 장치에 보호 키를 다운로드하여 설치하는 대신, 요청이 있을 때마다 최종 사용자의 장치에 키를 전달하고 작업이 끝나면 원격 서버로 반환하게 됩니다. 여러 장치에서 여러 사용자가 다양한 시간대에 키를 사용할 수 있으므로 유연성이 훨씬 뛰어납니다.

탈레스 Sentinel 소프트웨어 보호 솔루션

탈레스 Sentinel은 소프트웨어 저작권 보호 솔루션이나 SaaS 보호 솔루션, 보호 키와 같이 유연하고 맞춤 구성 가능하며 광범위한 소프트웨어 보호 솔루션을 제공합니다. 탈레스 Sentinel이 소프트웨어 수익화 도구 를 통해 소프트웨어를 보호하는 방법을 알아보시기 바랍니다.

# data[].attributes.attachment_link.keywords[]
소프트웨어 저작권 보호

# data[].attributes.attachment_link.title
소프트웨어 저작권 보호 요약 안내서

# data[].attributes.attachment_link.description
시간과 노력, 비용을 쏟아부어 훌륭한 소프트웨어를 개발하고 시장에 출시할 준비가 되었다면, 이제 이 소프트웨어를 어떻게 보호할 것인지 고민해야 합니다. 소프트웨어 보호가 필요한 이유 기업 수익을 저해할 수 있는 저작권 침해, 무단 복제, 또는 소프트웨어의 기타 무단 사용 기업 데이터나 고객 데이터를 위험에 빠뜨리는 보안 침해 물리적인 형태가 있는 제품을 판매하는 경우에는 제품을 보호하는 것이 그렇게 복잡하지는 않습니다.

# data[].attributes.body
drm
DRM이란 정보보호 기술 중 하나로 암호화 기술을 이용해서 비허가 사용자로부터 디지털 컨텐츠를 보호하게 하는 기술을 말합니다.
drm 2가지 종류로 나뉩니다.

문서 drm과 멀티미디어 drm이 있습니다.
1.문서 drm
이는 기업들이 내부에서 사용하는 문서들을 제어하기 위한 기술을 말합니다.

기업 내부에는 보호해야할 중요문서나 개인정보보 포함 문서가 많기 때문에 문서관리 시스템과 연동하여 문서에 접근하거나 읽을 수 있는 사용자들에 대해 구별할 수 있도록 도와줍니다.

보안적인 문제를 생각해보았을 때 DRM이란 기술을 사용하여 기업 외부에서 문서를 열람하는 것을 방지할 수 있게도 할 수 있게 도와주는거죠

2.멀티미디어drm
즉 동영상이나 음악 컨텐츠에 DRM 기술을 적용하는 것을 말합니다.

쉽게 이야기해서 우리가 음악 스트리밍으로 많이 이용하고 있는 멜론이나 플로와 같은 곳이 멀티미디어 DRM이 적용된 서비스라고 보시면 됩니다.그들이 제공하는 음악이라는 컨텐츠를 사용자가 자신의 이용권에 따라서 누구는 다운도 받을 수 있고 누구는 듣기만할 수 있는 등 차등적인 정책이 가능한 것을 떠올려보시면 이해가 쉬우실 것 입니다.

# data[].attributes.headline
소프트웨어 보호를 위한 기술적 조치 유형 

# data[].attributes.subject
소프트웨어 보호를 위한 기술적 조치 유형 

# data[].attributes.body
1) 암호화를 활용하여 정보를 알수없게 암호화 하여 자신만 해독할수 있도록 만들어 소프트웨어를 지킬수있다

2)정품 소프트웨어 인증 제도를 통하여 소비자가 정품 소프트웨어를 구입하여 제품의 일련 번호를 소프트웨어 등록 기관이나 인증 센터에 등록하여 정품 인증을 받은 후 사용할 수 있는 제도

# data[].attributes.attachment_link.provider_name
네이버 블로그 | 더바른코딩

# data[].attributes.attachment_link.title
소프트웨어는 어떻게 보호될까요?

# data[].attributes.attachment_link.description
소프트웨어를 사용하고자 할 경우 먼저 보호받는 저작물인지를 확인하여, 저작권자가 있다면 합법적인 비용...

# data[].attributes.headline
소프트웨어 보호를위한 기술적조치 유형

# data[].attributes.subject
소프트웨어 보호를위한 기술적조치 유형

# data[].attributes.body
2)암호
암호를 활용하여 보호한다

# data[].attributes.body
1. 소프트웨어 코드 난독화
코드 난독화는 실행 가능한 코드를 수정하여 이해, 해석, 실행에 사용할 수 없도록 하는 것이다. 소스 코드 자체가 난독화되어 있어 제3자가 이해할 수 없고 실행만 가능하게 된다.  코드 난독화는 애플리케이션을 해킹으로부터 보호하기 위해 가장 많이 사용되는 애플리케이션 보안 기술 중에 하나 이다. 대개 이 기술은 해킹 시도에 대한 주요한 방어 메커니즘 역할을 수행하며 코드 주입, 리버스 엔지니어링, 고객 및 애플리케이션 사용자의 개인정보 변조와 같은 일반적인 공격으로부터 보호한다.

# data[].attributes.attachment_link.readable_text
코드 난독화는 애플리케이션을 해킹으로부터 보호하기 위해 가장 많이 사용되는 애플리케이션 보안 기술 중에 하나입니다. 이는 전 세계 보안 전문가들이 가장 권장하는 AppSec 이니셔티브 중 하나이며, 애플리케이션의 최소 보안 사항으로 요구되는 경우가 많습니다. 대개 이 기술은 해킹 시도에 대한 주요한 방어 메커니즘 역할을 수행하며 코드 주입, 리버스 엔지니어링, 고객 및 애플리케이션 사용자의 개인정보 변조와 같은 일반적인 공격으로부터 보호합니다.

코드 난독화는 실행 가능한 코드를 수정하여 이해, 해석, 실행에 사용할 수 없도록 하는 것입니다. 소스 코드 자체가 난독화되어 있어 제3자가 이해할 수 없고 실행만 가능하게 됩니다. 코드 난독화는 최종 사용자를 위한 애플리케이션 인터페이스 또는 코드의 의도된 출력에 영향을 미치지 않습니다. 이는 애플리케이션의 실행 코드를 손에 넣을 수도 있는 해커가 코드를 사용할 수 없도록 하기 위한 예방 조치일 뿐입니다.

코드 난독화가 필요한 이유

코드 난독화는 특히 오픈소스 애플리케이션에 유용하며, 이는 개인의 이익을 위한 코드를 해킹할 가능성을 크게 줄여줍니다. 애플리케이션을 리버스 엔지니어링하기 어렵게 만드는 방법을 통해 개발자는 제품의 지적 재산을 보안 위협, 무단 액세스, 애플리케이션 취약점 발견으로부터 보호합니다. 이 과정은 소스 코드에 대한 악의적인 접근을 제한하고, 구현된 난독화 기법의 종류에 따라 다양한 수준의 코드 보호를 보장합니다. 시간, 비용, 리소스 측면에서 난독화된 코드를 디컴파일하여도 이해하기 어렵기 때문에, 공격자는 코드를 더 이상 보유할 의미가 없어지게 됩니다.

코드 난독화 기술 유형

난독화는 여러 수준에서 작용하며, 의미 구조/유사 코드 구조 또는 데이터 구조/제어 흐름 수준에서 적용됩니다. 난독화 기술도 코드에서 수행하는 연산에 따라 달라집니다. 기본적으로 보안팀은 개발팀과 협의하여 코드에 어떤 수준의 난독화를 사용할지 결정합니다.

이 기술은 변수의 이름을 혼동하게 만들어 원래 사용 의도를 지능적으로 가려줍니다. 메소드와 변수는 서로 다른 표기법과 숫자를 사용하여 이름이 변경되므로 디컴파일러가 제어 흐름을 이해하기 어렵습니다. 이 난독화 기술은 Java, .NET, Android 플랫폼에서 개발된 애플리케이션 코드를 난독화하기 위해 주로 사용됩니다. 이는 레이아웃 난독화의 전반적인 범주에 속하며, 소스 코드를 직접 대상으로 하여 애플리케이션에 대한 방어 계층을 제공합니다.
이름 변경 난독화 메소드의 예
이 기술은 해커가 프로그램의 실제 의도를 파악할 수 없도록 코드에 사용되는 데이터 구조를 대상으로 합니다. 여기에는 프로그램을 통해 데이터가 메모리에 저장되는 방식과 저장된 데이터가 최종 출력을 표시하기 위해 해석되는 방식을 변경하는 것이 포함될 수 있습니다. 이 기술에는 다양한 변형이 있습니다.

이 방법은 프로그램에 데이터가 저장되는 방식을 변경합니다. 예를 들어, 배열은 많은 하위 배열로 분할될 수 있으며 프로그램의 다른 위치에서 참조될 수 있습니다.

이 방법은 데이터가 메모리에 저장되는 방식을 변경합니다. 예를 들어, 개발자는 변수의 저장 위치를 로컬 저장소와 전역 저장소 사이에서 이리저리 바꿀 수 있어서 변수 동작의 실제 특성을 난독화할 수 있습니다.

이 방법은 프로그램/코드 스니펫의 동작을 변경하지 않고 데이터의 순서를 변경합니다. 개발자는 변수 참조의 모든 인스턴스에 대해 호출되는 별도의 모듈을 개발하는 방식으로 이러한 방법을 구현합니다.

이 방법은 읽을 수 있는 문자열을 모두 암호화하여 읽을 수 없는 코드를 생성합니다. 따라서 프로그램이 실행될 때 런타임에 암호를 해독해야 합니다.

5. 제어/코드 흐름 난독화

제어가 코드베이스의 한 섹션에서 다른 섹션으로 전달되는 방법은 프로그램의 의도를 결정하는 데 중요한 역할을 합니다. 이 흐름을 혼란스럽게 하는 것은 일반적으로 해커를 혼동하게 만들 수 있는 방법 중 가장 효과가 좋은 방법입니다. 이 난독화 방법은 해커가 코드의 특정 흐름을 채택하는 방법과 이유를 해독하지 못하게 합니다.

이를 구현하는 가장 일반적인 방법 중 하나는 임의적이고 예상치 못한 구문을 사용하여, 절대로 실행되지 않는 불필요한 대소문자 전환 구문(데드 코드)을 추가하는 것입니다. 이러한 구문은 해커를 혼란스럽게 만드는 것을 목적으로 합니다. 프로그램 실행 구문의 순서에 대한 이러한 변경은 조건부 프로그램 성향을 가진 경우에 특히 유용합니다.
제어 흐름 난독화 예
디버그 정보는 종종 프로그램 흐름, 디컴파일, 재컴파일을 통해 프로그램의 결함 등에 대한 중요한 정보를 아는 데 유용합니다. 식별자, 줄 번호를 변경하거나 디버그 정보에 대한 액세스를 모두 중지하여 이러한 식별 가능한 정보를 마스킹하는 것이 중요합니다.

C, C++와 같은 비메모리 안전 언어를 사용하여 메모리 프로그래밍 오류를 이용하는 공격을 수행하는 것이 보편화 되었습니다. 검사되지 않은 배열의 액세스와 같은 오류로 인해 보안 취약성이 발생하는 경우가 많습니다. 주소 난독화 방법은 변환된 코드가 실행될 때마다 코드의 가상 주소와 프로그램의 데이터가 랜덤화되기 때문에 리버스 엔지니어링 과정을 어렵게 만듭니다. 이는 대부분의 메모리 오류 취약점을 이용한 공격의 효과를 장담할 수 없게 만들기 때문에, 공격 성공의 가능성을 낮추는데 효과적입니다.
주소 난독화의 예
개발자는 커스텀 알고리즘을 사용하여 문자열을 인코딩하고 원래 코드를 가져올 수 있는 디코더 기능을 제공합니다.

런타임에 인수를 예상하도록 프로그램을 변경할 수 있습니다. 이렇게 하려면 사용자가 변수의 암호를 해독할 코드와 암호 해독 키를 모두 가지고 있어야 합니다.

또한 보안 팀은 여러 가지 보안 위협으로부터 애플리케이션을 보호하기 위한 계층적 방어 방식을 구현하기 위해 둘 이상의 기술을 동시에 구현할 수도 있습니다.

난독화 방법의 품질 결정

코드 난독화의 성공 여부는 코드 변환 품질을 결정하는 몇 가지 매개변수에 달려 있습니다. 난독화 기술의 품질은 다음 요소의 조합에 의해 결정되어야 합니다.

난독화된 코드는 가장 취약한 부분에 의해 파괴될 수 있습니다. 따라서 난독화를 시도했을 때 난독화된 코드에 의해 어느 정도의 저항이 나타나는지 확인하는 것이 품질을 확인하는 가장 좋은 방법입니다. 코드를 해독하는 데 더 많은 노력과 시간이 필요할수록 난독화가 더 잘 된 것입니다.

이는 난독화된 코드가 원본 코드와 얼마나 다른지 보여줍니다. 제어 흐름의 깊이, 중첩 수준, 상속 수준은 소스 코드의 복잡성을 증가시키는 데 사용됩니다. 코드 난독화는 이러한 복잡성을 증가시킵니다.

공격자가 난독화된 부분을 혼동하도록 원본 소스 코드와 구분할 수 없어야 합니다. 이는 공격자가 리버스 엔지니어링을 수행하기 어렵게 만듭니다. 이 요인은 상황에 따라 다르며, 종종 자동화된 리버스 엔지니어링 공격을 피하는 데 중요한 요소입니다.

이것은 난독화되지 않은 코드에 비해 난독화된 코드를 실행하는 데 소요된 시간과 자원으로 정의됩니다. 난독화된 코드를 구현할 때 몇 가지 성능 고려 사항을 염두에 두어야 합니다. 지능적으로 난독화된 코드는 신중한 기술을 사용하여 불필요하게 비용/자원을 지출하지 않고 공격자를 혼란스럽게 하는 목적을 제공해야 합니다.

난독화가 코드 성능에 영향을 미치는가?

코드 난독화는 코드 구조에 큰 변화를 가져오므로 애플리케이션의 성능에도 큰 변화를 가져올 수 있습니다. 일반적으로 이름 변경 난독화는 변수, 메소드, 클래스만 변경되므로 성능에 거의 영향을 미치지 않습니다. 반면에 제어 흐름 난독화는 코드 성능에 영향을 미칩니다. 의미 없는 제어 루프를 추가하여 코드를 따르기 어렵게 만드는 것은 종종 기존 코드베이스에 오버헤드를 추가하기 때문에 구현해야 할 필수 기능이지만 주의가 필요합니다.

코드 난독화의 경험 법칙은 원본 코드에 적용되는 기술의 수가 많을수록 해독에 더 많은 시간이 소비된다는 것입니다. 기술 및 컨텍스트화에 따라 코드 성능에 미치는 영향은 일반적으로 10%에서 80%까지 다양합니다. 따라서, 위에서 논의한 요소인 효과와 복원력은 코드 난독화의 지침이 되어야 합니다(난독화 이름 변경 제외). 어떤 종류의 난독화도 기회비용이 있기 때문입니다.

위에서 설명한 대부분의 난독화 기술은 코드 성능을 중요시하며, 애플리케이션에 가장 적합한 기술을 선택하는 것은 개발 및 보안 전문가의 몫입니다. 바이너리 링크와 같은 기술은 여러 입력 라이브러리를 더 적은 수의 출력 라이브러리로 결합합니다. 이렇게 하면 애플리케이션이 가벼워지고 해커가 앱 코드를 조작할 수 있는 인터페이스가 줄어들 수 있지만, 코드 실행을 위해 런타임에 디컴파일을 하는 것은 번거롭고 종종 코드 실행 시간을 늘립니다. 이러한 균형은 보안 로드맵에서 고려하여 적절한 보호 계층을 추가하는 동시에 실제 환경에 코드를 실행할 수 있도록 사전에 결정해야 합니다. 즉, 난독화가 더 강력하고 복잡할수록 성능 오버헤드는 더 커집니다.

코드 난독화의 이점

보안 팀이 오픈 소스 플랫폼에서 호스팅되는 애플리케이션의 코드 난독화를 구현하는 방식에서 특히 많은 이점이 발생합니다. 신뢰할 수 없는 환경에서는 공격자가 코드를 검토하고 애플리케이션을 분석하기 어렵게 만드는 난독화된 애플리케이션을 배포하는 것이 항상 더 좋습니다. 이 프로세스를 통해 불법적인 이익을 얻기 위해 가짜 애플리케이션을 디버깅하고 변조 및 재배포하려는 범죄자가 이용할 수 있는 허점을 남기지 않을 수 있습니다. 이러한 보호 레이어는 특히 비즈니스에 치명적인 고객의 개인정보를 처리하는 애플리케이션에 필수적입니다.

또한 대부분의 난독화기는 유용하지 않은 메타데이터, 사용되지 않는 불필요한 코드 또는 중복 코드를 제거하여 코드를 최적화합니다. 이러한 최소화를 통해 컴파일 프로세스 속도가 빨라지고 코드 실행 속도가 빨라지며 결과도 빨라져 코드 실행 속도도 빨라집니다.

코드 난독화의 또 다른 주요 이점은 애플리케이션을 리버스 엔지니어링하기 어렵게 만든다는 것인데, 오픈 소스 플랫폼에 코드를 구축하는 것을 더 이상 걱정할 필요가 없게 됩니다. 반복적인 코드 난독화는 여러 개의 보안 레이어를 적용하는 경우에 특히 많이 사용됩니다. 이 기술에서 보안 팀은 이전 알고리즘의 출력이 다음 줄에 입력 역할을 하는 하나 이상의 난독화 알고리즘을 적용합니다. 이러한 방식으로 공격자는 프로그램의 원래 의도와 프로그램에 표시되는 내용에 대해 혼동할 수 있으며, 결과적으로 해독 시도가 실패할 수 있습니다.

코드 난독화는 난독화된 코드를 해독하는 데 심각한 노력, 기술, 자원, 시간이 필요하기 때문에 위협을 처리하고 재미로 해킹하는 사람들을 제거하는 실용적인 방법입니다. 해커가 성공하더라도, 해독된 부분은 원래 코드와 많이 닮지 않을 수 있습니다. 실효성 측면에서 실제 측정값을 찾기는 어렵지만 대부분의 기업은 보안을 위해 코드를 난독화하며 사유화합니다.

코드 난독화의 단점

모든 난독화 기술이 코드 성능에 영향을 미치기는 하지만 그 정도는 미미합니다. 난독화된 코드 부분과 난독화된 알고리즘의 복잡성에 따라 코드를 해독하는 데 상당한 노력이 수반될 수 있습니다.

자동화된 해독기 대부분은 난독화된 애플리케이션을 리버스 엔지니어링할 수 있습니다. 난독화는 리버스 엔지니어링을 지연시킬 수 있을 뿐 불가능하게 만드는 것은 아닙니다.

일부 안티바이러스 소프트웨어는 난독화된 코드가 있는 사이트를 방문할 때 사용자에게 경고를 보낼 수도 있는데, 이는 난독화가 악성 코드를 숨기기 위해 사용될 수도 있기 때문입니다. 이는 사용자가 합법적인 애플리케이션을 사용하는 것을 막고 신뢰할 수 있는 회사에서 멀어지게 될 수 있습니다.

코드를 난독화해야 하는가?

코드 난독화의 장단점을 고려할 때 적절한 질문은 '코드 난독화를 적용해야 하는가'입니다. 짧게 대답하자면 '예'입니다. 코드 난독화는 최소한 프로그램을 이해하기 어렵지만 기능을 그대로 유지하는 코드 조각으로 변환합니다. 리버스 엔지니어링 및 사이버 범죄자에게 제기되는 문제는 코드를 난독화하기에 충분한 이유입니다. 강력한 바이너리 수준의 난독화는 코드 미니화로 인해 프로그램 성능에 이점을 제공하므로 전략적인 코드 난독화를 구현해야 할 충분한 이유가 됩니다.

더 나은 결과를 위해 보안 전문가들은 코드 교체, 코드 변조 탐지, 자가 , 워터마크, 암호화, 서버측 보호 등과 같은 다른 보안 메커니즘과 함께 코드 난독화를 구현하도록 권장합니다. 이렇게 하면 공격자는 제시간에 공격 행위를 완료하기가 어려워집니다. 성능에 민감한 코드를 식별하고 강력한 난독화 기술이 적용되는 경우 성능에 영향을 줄 수 있는 코드 부분을 표시할 수 있도록 애플리케이션의 런타임 동작을 분석하는 난독화 도구가 있습니다.

코드 난독화 도구

Android Studio에는 ProGuard 및 DexGuard와 같은 몇 가지 도구가 있습니다. Java의 오픈 소스 난독화기에는 클래스 파일 축소 프로그램인 ProGuard가 포함되며 사용하지 않는 클래스를 제거합니다. 또한 나머지 클래스의 이름을 의미 없는 이름으로 바꾸는 데 도움이 됩니다. 결과로 생성된 JAR 파일은 리버스 엔지니어링이 어렵습니다.

이것은 Python 스크립트를 난독화하고 난독화된 스크립트를 고정 머신 스크립트에 바인딩하는 명령줄 인터페이스 도구입니다. 런타임 동안 각 함수의 co_code와 상수를 보호하여 Python 스크립트의 난독화를 도와줍니다. 또한 실행 중에 난독화된 스크립트의 라이센스 파일을 확인합니다. 개발자는 이를 통해 원래의 Python 스크립트를 난독화된 스크립트로 원활하게 교체할 수 있습니다.

JavaScript 난독화

이 도구는 JavaScript를 난독화하고, 기존 JS 파일을 전혀 새로운 표현식으로 변환하여 기능을 변경하지 않고서는 이해하기 어렵고 재사용할 수 없게 만드는 것으로 유명합니다. 콘솔 출력을 비활성화하여 디버그 보호, 변수 및 함수 이름 변경, 문자열 제거, 비활성 코드 주입, 자가 방어 기능과 같은 다양한 변환을 수행합니다. 사용자가 JS 파일을 업로드하고 필요한 난독화 수준에 따라 적절한 옵션을 선택할 수 있는 사용이 간편한 인터페이스를 갖추고 있습니다. 전역 변수 이름 바꾸기, 문자열 배열 회전 또는 섞기, 문자열 배열 인코딩, 모든 문자열을 유니코드 표현식으로 변환하여 이스케이프 시퀀스에 유니코드 작업을 수행하는 등의 다양한 작업을 수행할 수 있습니다. 또한 제어 흐름 평탄화도 포함되어 프로그램 소스 코드의 이해를 방해합니다. 그러나 이러한 변환은 런타임 속도를 약 1.5배 느리게 하여 코드 성능에 영향을 미칩니다.

이것은 난독화된 JavaScript 코드를 디버깅하는 데 도움을 주는 또 다른 도구입니다. 별도의 소스 맵은 프로덕션 환경에서 코드를 디버깅하는 데 유용할 수 있으며, 개발 팀은 소스 맵을 외부에서는 알 수 없는 비공개 위치에 업로드할 수 있습니다.

CLI 모드에서 작동하며 JS 코드를 최소화, 난독화, 복원(beautify)하기 위한 다양한 옵션이 있습니다. JS에서 AST(추상 구문 트리)를 생성하는 파서, 변수, 메소드 이름을 단일 문자로 줄이는 맹글러 구성 요소와 변환을 사용하여 AST를 작은 것으로 최적화하는 압축기 구성 요소로 구성됩니다.

JavaScript의 한 가지 단점은 완전한 해독 방지가 될 수 없다는 것입니다. JS는 기본적으로 브라우저에서 실행되며 브라우저의 JS 엔진이 리소스를 렌더링하기 위해 JS를 읽어야 하기 때문입니다. 따라서 이 캡처 포인트는 생략할 수 없습니다.

Naneu의 PHP 난독화기

이것은 PHP를 파싱하고 변수 이름과 메소드를 난독화하는 난독화 도구입니다. 이 라이브러리는 UnPHP와 같은 해독기로부터 PHP를 보호하며 네이티브 PHP 환경에서 코드를 실행하는 데 유용합니다.

이 도구는 PHP Parser 4.x를 사용하여 PHP 코드를 구문 분석하며 GIT 클론으로 사용할 수 있습니다. 이로 인해 PHP 컴파일러는 재배포 코드를 이해할 수 있지만 소스 코드를 변조하는 사람은 이해할 수 없습니다. 제어 흐름 난독화를 구현하고, 주석, 들여쓰기, 문자열 리터럴을 모두 제거하고, 프로그램 디렉토리 전체를 반복적으로 난독화하며, 이름 변경 난독화를 구현합니다.

PHP Compactor 라이브러리는 PHP 코드베이스를 간결화 및 압축하는 또 다른 오픈 소스 라이브러리 난독화 도구입니다. 공백, 빈 줄, 주석이 제거되고 문자열이 인코딩됩니다.

HTML은 HTML 태그를 사용하여 복원(beautify)된 단순히 마크업된 텍스트입니다. HTML을 난독화하는 것은 보통 JavaScript로 변환하거나, 각 HTML 줄을 해당하는 숫자 코드로 변환하거나, 두 가지 메소드를 조합하여 수행합니다. 이것은 종종 효과적이지만, 변환의 각 단계에서 코드 오버헤드가 추가되기 때문에 순수 HTML의 무시할 수 있는 크기를 2~3배 증가시킵니다.

기존의 보안 접근 방식은 주로 서버측 보안에 중점을 두기 때문에 HFO(HTML Field Obfuscation)는 무시되는 경우가 많습니다. 앱에는 몇 가지 보안 취약성이 있습니다. Man-In-The-Browser와 같은 공격은 스크립트를 주입하여 사용자 이름 및 암호와 같은 중요한 필드에 연결하고 사용자가 입력할 때 자격 증명을 탈취합니다. 부정행위 방지 애플리케이션은 HFO를 사용하여 스크립트가 실행되지 않도록 합니다.

이 접근 방식은 대상 필드를 식별하는 데 브라우저 기반 애플리케이션을 사용하는 공격을 교란하도록 설계되었습니다. 미끼 필드는 필드 값을 암호화하는 것 외에도 공격자의 주의를 분산시키는 데에도 사용됩니다.

C 코드를 난독화하는 가장 좋은 방법은 컴파일하여 바이너리만 배포하는 것입니다. 이렇게 배포된 코드를 원래 형태로 리버스 엔지니어링하는 것은 매우 어렵습니다. 디컴파일 후 C/C++ 기계어 출력은 자체 난독화 되어 있어, 일정 수준의 난독화 기능이 내장되어 있다고 할 수 있습니다. 이러한 특징은 지적 재산에 대한 기술적 보호에 도움이 된다고 할 수 있습니다.

ANTLR(Another Tool for Language Recognition)은 C/C++ 소스 코드를 입력 파일로 가져와서 입력의 암시적 계층을 캡처하여 AST로 변환하는 파서 생성기입니다. 얻어진 구조에 기초하여, 각 노드는 구조의 의미 있는 구성요소를 나타냅니다. 이는 노드를 재구성하고 난독화 후 성능과 복원력을 검토함으로써 난독화 알고리즘을 구현하는 기반이 됩니다.

C/C++에 비해 C# 코드는 리버스 엔지니어링이 더 쉽습니다. 그 이유는 C# 어셈블리에 C++에 없는 메타데이터가 포함되어 있기 때문입니다. 또한 C#는 C/C++보다 소스 코드로 디컴파일하기가 쉬운 중간 언어로 매핑됩니다. 자동 난독화 도구의 일부 기능에는 사용자가 정의할 수 있는 보존된 이름 목록, C#에 대해 미리 정의된 예약 이름 목록, 주석 제거가 있습니다.

Crypto Obfuscator는 정교한 난독화 기술을 사용하여 C# 코드를 리버스 엔지니어링으로부터 보호합니다. 여기에는 기호 이름을 인식할 수 없는 이름으로 바꾸기, 중요한 메소드를 숨기기 위한 외부 메소드로부터 호출 숨기기, 문자열 암호화, 제어 흐름 난독화 등이 포함됩니다.

결론

요컨대, 코드 난독화만으로는 복잡한 보안 위협을 처리할 수 없습니다. 코드를 해독하는 것은 어렵지만, 자동화된 도구를 이용할 수 있고 해커도 전문 지식을 갖고 있으므로 리버스 엔지니어링이 불가능하지는 않습니다.

따라서 코드 난독화는 모든 애플리케이션 보안 요구를 위한 올인원 솔루션이 아닙니다. 개발 팀은 보안 요구 사항, 애플리케이션의 특성 및 성능 벤치마크에 따라 신뢰할 수 없는 환경에서 코드를 보호하기 위해 다수의 코드 난독화 기술을 구현하는 것을 고려할 수 있습니다. 각 기술의 장단점을 고려하여 이러한 작업을 수행해야 합니다. 이 전략은 암호화, RASP, 데이터 보존 정책 등과 같은 다른 AppSec 이니셔티브를 보완해야 합니다. 앱실링(AppSealing)과 같은 RASP 도구와 함께 사용하면 현재의 보안 위협에 대한 강력한 해결책을 구축할 수 있습니다.

# data[].attributes.attachment_link.title
코드 난독화 : 코드 보안을 위한 포괄적인 가이드 - AppSealing

# data[].attributes.attachment_link.description
코드 난독화는 애플리케이션을 해킹으로부터 보호하기 위해 가장 많이 사용되는 애플리케이션 보안 기술 중에 하나입니다. 이는 전 세계 보안 전문가들이 가장 권장하는 AppSec 이니셔티브 중 하나이며, 애플리케이션의 최소 보안 사항으로 요구되는 경우가 많습니다. 대개 이 기술은 해킹 시도에 대한 주요한 방어 메커니즘 역할을 수행하며 코드 주입, 리버스 엔지니어링, 고객 및 애플리케이션 사용자의 개인정보 변조와 같은 일반적인 ...

# data[].attributes.body
2)
고도의 보안성을 갖는 스마트카드를 이용하여 용이하게 소프트웨어 등을 다운, 실행, 인증 시킬 수 있는 S/W 저작권 보호용 장치에 관한 것으로, 이동식 디스크와 동일 유형을 갖는 하우징 내에 IC칩과 전기적으로 연결되어 외부 PC와 통신하도록 하는 USB인터페이스부와, 상기 USB인터페이스부와 전기적으로 접속되어 있는 스마트카드부를 구비하는 저작권보호용장치에 있어서, 상기 스마트카드부는, 상기 저작권보호용장치를 외부 PC과 연결 시 S/W를 다운 받을 수 있는 해당 사이트로 이동하도록 하는 자동로그인부와, 상기 해당 사이트 이동 후, S/W set up 프로그램을 다운받도록 하기 위한 다운로드프로그램부와, 상기 해당 S/W 제품을 다운받는 URL 정보가 저장되는 소프트웨어정보저장부 및 상기 S/W를 상기 외부 PC에 설치 시, 인증키를 생성하는 인증키생성부를 포함하여 이루어진다. 이를 통해 S/W의 저작권 보호를 극대화할 수 있다.

# data[].attributes.headline
2.코드난독화코드 난독화는 애

# data[].attributes.body
2.코드난독화
코드 난독화는 애플리케이션을 해킹으로부터 보호하기 위해 가장 많이 사용되는 애플리케이션 보안 기술 중에 하나입니다 이 기술은 해킹 시도에 대한 주요한 방어 메커니즘 역할을 수행하며 코드 주입, 리버스 엔지니어링, 고객 및 애플리케이션 사용자의 개인정보 변조와 같은 일반적인 공격으로부터 보호합니다

# data[].attributes.attachment_link.readable_text
코드 난독화는 애플리케이션을 해킹으로부터 보호하기 위해 가장 많이 사용되는 애플리케이션 보안 기술 중에 하나입니다. 이는 전 세계 보안 전문가들이 가장 권장하는 AppSec 이니셔티브 중 하나이며, 애플리케이션의 최소 보안 사항으로 요구되는 경우가 많습니다. 대개 이 기술은 해킹 시도에 대한 주요한 방어 메커니즘 역할을 수행하며 코드 주입, 리버스 엔지니어링, 고객 및 애플리케이션 사용자의 개인정보 변조와 같은 일반적인 공격으로부터 보호합니다.

코드 난독화는 실행 가능한 코드를 수정하여 이해, 해석, 실행에 사용할 수 없도록 하는 것입니다. 소스 코드 자체가 난독화되어 있어 제3자가 이해할 수 없고 실행만 가능하게 됩니다. 코드 난독화는 최종 사용자를 위한 애플리케이션 인터페이스 또는 코드의 의도된 출력에 영향을 미치지 않습니다. 이는 애플리케이션의 실행 코드를 손에 넣을 수도 있는 해커가 코드를 사용할 수 없도록 하기 위한 예방 조치일 뿐입니다.

코드 난독화가 필요한 이유

코드 난독화는 특히 오픈소스 애플리케이션에 유용하며, 이는 개인의 이익을 위한 코드를 해킹할 가능성을 크게 줄여줍니다. 애플리케이션을 리버스 엔지니어링하기 어렵게 만드는 방법을 통해 개발자는 제품의 지적 재산을 보안 위협, 무단 액세스, 애플리케이션 취약점 발견으로부터 보호합니다. 이 과정은 소스 코드에 대한 악의적인 접근을 제한하고, 구현된 난독화 기법의 종류에 따라 다양한 수준의 코드 보호를 보장합니다. 시간, 비용, 리소스 측면에서 난독화된 코드를 디컴파일하여도 이해하기 어렵기 때문에, 공격자는 코드를 더 이상 보유할 의미가 없어지게 됩니다.

코드 난독화 기술 유형

난독화는 여러 수준에서 작용하며, 의미 구조/유사 코드 구조 또는 데이터 구조/제어 흐름 수준에서 적용됩니다. 난독화 기술도 코드에서 수행하는 연산에 따라 달라집니다. 기본적으로 보안팀은 개발팀과 협의하여 코드에 어떤 수준의 난독화를 사용할지 결정합니다.

이 기술은 변수의 이름을 혼동하게 만들어 원래 사용 의도를 지능적으로 가려줍니다. 메소드와 변수는 서로 다른 표기법과 숫자를 사용하여 이름이 변경되므로 디컴파일러가 제어 흐름을 이해하기 어렵습니다. 이 난독화 기술은 Java, .NET, Android 플랫폼에서 개발된 애플리케이션 코드를 난독화하기 위해 주로 사용됩니다. 이는 레이아웃 난독화의 전반적인 범주에 속하며, 소스 코드를 직접 대상으로 하여 애플리케이션에 대한 방어 계층을 제공합니다.
이름 변경 난독화 메소드의 예
이 기술은 해커가 프로그램의 실제 의도를 파악할 수 없도록 코드에 사용되는 데이터 구조를 대상으로 합니다. 여기에는 프로그램을 통해 데이터가 메모리에 저장되는 방식과 저장된 데이터가 최종 출력을 표시하기 위해 해석되는 방식을 변경하는 것이 포함될 수 있습니다. 이 기술에는 다양한 변형이 있습니다.

이 방법은 프로그램에 데이터가 저장되는 방식을 변경합니다. 예를 들어, 배열은 많은 하위 배열로 분할될 수 있으며 프로그램의 다른 위치에서 참조될 수 있습니다.

이 방법은 데이터가 메모리에 저장되는 방식을 변경합니다. 예를 들어, 개발자는 변수의 저장 위치를 로컬 저장소와 전역 저장소 사이에서 이리저리 바꿀 수 있어서 변수 동작의 실제 특성을 난독화할 수 있습니다.

이 방법은 프로그램/코드 스니펫의 동작을 변경하지 않고 데이터의 순서를 변경합니다. 개발자는 변수 참조의 모든 인스턴스에 대해 호출되는 별도의 모듈을 개발하는 방식으로 이러한 방법을 구현합니다.

이 방법은 읽을 수 있는 문자열을 모두 암호화하여 읽을 수 없는 코드를 생성합니다. 따라서 프로그램이 실행될 때 런타임에 암호를 해독해야 합니다.

5. 제어/코드 흐름 난독화

제어가 코드베이스의 한 섹션에서 다른 섹션으로 전달되는 방법은 프로그램의 의도를 결정하는 데 중요한 역할을 합니다. 이 흐름을 혼란스럽게 하는 것은 일반적으로 해커를 혼동하게 만들 수 있는 방법 중 가장 효과가 좋은 방법입니다. 이 난독화 방법은 해커가 코드의 특정 흐름을 채택하는 방법과 이유를 해독하지 못하게 합니다.

이를 구현하는 가장 일반적인 방법 중 하나는 임의적이고 예상치 못한 구문을 사용하여, 절대로 실행되지 않는 불필요한 대소문자 전환 구문(데드 코드)을 추가하는 것입니다. 이러한 구문은 해커를 혼란스럽게 만드는 것을 목적으로 합니다. 프로그램 실행 구문의 순서에 대한 이러한 변경은 조건부 프로그램 성향을 가진 경우에 특히 유용합니다.
제어 흐름 난독화 예
디버그 정보는 종종 프로그램 흐름, 디컴파일, 재컴파일을 통해 프로그램의 결함 등에 대한 중요한 정보를 아는 데 유용합니다. 식별자, 줄 번호를 변경하거나 디버그 정보에 대한 액세스를 모두 중지하여 이러한 식별 가능한 정보를 마스킹하는 것이 중요합니다.

C, C++와 같은 비메모리 안전 언어를 사용하여 메모리 프로그래밍 오류를 이용하는 공격을 수행하는 것이 보편화 되었습니다. 검사되지 않은 배열의 액세스와 같은 오류로 인해 보안 취약성이 발생하는 경우가 많습니다. 주소 난독화 방법은 변환된 코드가 실행될 때마다 코드의 가상 주소와 프로그램의 데이터가 랜덤화되기 때문에 리버스 엔지니어링 과정을 어렵게 만듭니다. 이는 대부분의 메모리 오류 취약점을 이용한 공격의 효과를 장담할 수 없게 만들기 때문에, 공격 성공의 가능성을 낮추는데 효과적입니다.
주소 난독화의 예
개발자는 커스텀 알고리즘을 사용하여 문자열을 인코딩하고 원래 코드를 가져올 수 있는 디코더 기능을 제공합니다.

런타임에 인수를 예상하도록 프로그램을 변경할 수 있습니다. 이렇게 하려면 사용자가 변수의 암호를 해독할 코드와 암호 해독 키를 모두 가지고 있어야 합니다.

또한 보안 팀은 여러 가지 보안 위협으로부터 애플리케이션을 보호하기 위한 계층적 방어 방식을 구현하기 위해 둘 이상의 기술을 동시에 구현할 수도 있습니다.

난독화 방법의 품질 결정

코드 난독화의 성공 여부는 코드 변환 품질을 결정하는 몇 가지 매개변수에 달려 있습니다. 난독화 기술의 품질은 다음 요소의 조합에 의해 결정되어야 합니다.

난독화된 코드는 가장 취약한 부분에 의해 파괴될 수 있습니다. 따라서 난독화를 시도했을 때 난독화된 코드에 의해 어느 정도의 저항이 나타나는지 확인하는 것이 품질을 확인하는 가장 좋은 방법입니다. 코드를 해독하는 데 더 많은 노력과 시간이 필요할수록 난독화가 더 잘 된 것입니다.

이는 난독화된 코드가 원본 코드와 얼마나 다른지 보여줍니다. 제어 흐름의 깊이, 중첩 수준, 상속 수준은 소스 코드의 복잡성을 증가시키는 데 사용됩니다. 코드 난독화는 이러한 복잡성을 증가시킵니다.

공격자가 난독화된 부분을 혼동하도록 원본 소스 코드와 구분할 수 없어야 합니다. 이는 공격자가 리버스 엔지니어링을 수행하기 어렵게 만듭니다. 이 요인은 상황에 따라 다르며, 종종 자동화된 리버스 엔지니어링 공격을 피하는 데 중요한 요소입니다.

이것은 난독화되지 않은 코드에 비해 난독화된 코드를 실행하는 데 소요된 시간과 자원으로 정의됩니다. 난독화된 코드를 구현할 때 몇 가지 성능 고려 사항을 염두에 두어야 합니다. 지능적으로 난독화된 코드는 신중한 기술을 사용하여 불필요하게 비용/자원을 지출하지 않고 공격자를 혼란스럽게 하는 목적을 제공해야 합니다.

난독화가 코드 성능에 영향을 미치는가?

코드 난독화는 코드 구조에 큰 변화를 가져오므로 애플리케이션의 성능에도 큰 변화를 가져올 수 있습니다. 일반적으로 이름 변경 난독화는 변수, 메소드, 클래스만 변경되므로 성능에 거의 영향을 미치지 않습니다. 반면에 제어 흐름 난독화는 코드 성능에 영향을 미칩니다. 의미 없는 제어 루프를 추가하여 코드를 따르기 어렵게 만드는 것은 종종 기존 코드베이스에 오버헤드를 추가하기 때문에 구현해야 할 필수 기능이지만 주의가 필요합니다.

코드 난독화의 경험 법칙은 원본 코드에 적용되는 기술의 수가 많을수록 해독에 더 많은 시간이 소비된다는 것입니다. 기술 및 컨텍스트화에 따라 코드 성능에 미치는 영향은 일반적으로 10%에서 80%까지 다양합니다. 따라서, 위에서 논의한 요소인 효과와 복원력은 코드 난독화의 지침이 되어야 합니다(난독화 이름 변경 제외). 어떤 종류의 난독화도 기회비용이 있기 때문입니다.

위에서 설명한 대부분의 난독화 기술은 코드 성능을 중요시하며, 애플리케이션에 가장 적합한 기술을 선택하는 것은 개발 및 보안 전문가의 몫입니다. 바이너리 링크와 같은 기술은 여러 입력 라이브러리를 더 적은 수의 출력 라이브러리로 결합합니다. 이렇게 하면 애플리케이션이 가벼워지고 해커가 앱 코드를 조작할 수 있는 인터페이스가 줄어들 수 있지만, 코드 실행을 위해 런타임에 디컴파일을 하는 것은 번거롭고 종종 코드 실행 시간을 늘립니다. 이러한 균형은 보안 로드맵에서 고려하여 적절한 보호 계층을 추가하는 동시에 실제 환경에 코드를 실행할 수 있도록 사전에 결정해야 합니다. 즉, 난독화가 더 강력하고 복잡할수록 성능 오버헤드는 더 커집니다.

코드 난독화의 이점

보안 팀이 오픈 소스 플랫폼에서 호스팅되는 애플리케이션의 코드 난독화를 구현하는 방식에서 특히 많은 이점이 발생합니다. 신뢰할 수 없는 환경에서는 공격자가 코드를 검토하고 애플리케이션을 분석하기 어렵게 만드는 난독화된 애플리케이션을 배포하는 것이 항상 더 좋습니다. 이 프로세스를 통해 불법적인 이익을 얻기 위해 가짜 애플리케이션을 디버깅하고 변조 및 재배포하려는 범죄자가 이용할 수 있는 허점을 남기지 않을 수 있습니다. 이러한 보호 레이어는 특히 비즈니스에 치명적인 고객의 개인정보를 처리하는 애플리케이션에 필수적입니다.

또한 대부분의 난독화기는 유용하지 않은 메타데이터, 사용되지 않는 불필요한 코드 또는 중복 코드를 제거하여 코드를 최적화합니다. 이러한 최소화를 통해 컴파일 프로세스 속도가 빨라지고 코드 실행 속도가 빨라지며 결과도 빨라져 코드 실행 속도도 빨라집니다.

코드 난독화의 또 다른 주요 이점은 애플리케이션을 리버스 엔지니어링하기 어렵게 만든다는 것인데, 오픈 소스 플랫폼에 코드를 구축하는 것을 더 이상 걱정할 필요가 없게 됩니다. 반복적인 코드 난독화는 여러 개의 보안 레이어를 적용하는 경우에 특히 많이 사용됩니다. 이 기술에서 보안 팀은 이전 알고리즘의 출력이 다음 줄에 입력 역할을 하는 하나 이상의 난독화 알고리즘을 적용합니다. 이러한 방식으로 공격자는 프로그램의 원래 의도와 프로그램에 표시되는 내용에 대해 혼동할 수 있으며, 결과적으로 해독 시도가 실패할 수 있습니다.

코드 난독화는 난독화된 코드를 해독하는 데 심각한 노력, 기술, 자원, 시간이 필요하기 때문에 위협을 처리하고 재미로 해킹하는 사람들을 제거하는 실용적인 방법입니다. 해커가 성공하더라도, 해독된 부분은 원래 코드와 많이 닮지 않을 수 있습니다. 실효성 측면에서 실제 측정값을 찾기는 어렵지만 대부분의 기업은 보안을 위해 코드를 난독화하며 사유화합니다.

코드 난독화의 단점

모든 난독화 기술이 코드 성능에 영향을 미치기는 하지만 그 정도는 미미합니다. 난독화된 코드 부분과 난독화된 알고리즘의 복잡성에 따라 코드를 해독하는 데 상당한 노력이 수반될 수 있습니다.

자동화된 해독기 대부분은 난독화된 애플리케이션을 리버스 엔지니어링할 수 있습니다. 난독화는 리버스 엔지니어링을 지연시킬 수 있을 뿐 불가능하게 만드는 것은 아닙니다.

일부 안티바이러스 소프트웨어는 난독화된 코드가 있는 사이트를 방문할 때 사용자에게 경고를 보낼 수도 있는데, 이는 난독화가 악성 코드를 숨기기 위해 사용될 수도 있기 때문입니다. 이는 사용자가 합법적인 애플리케이션을 사용하는 것을 막고 신뢰할 수 있는 회사에서 멀어지게 될 수 있습니다.

코드를 난독화해야 하는가?

코드 난독화의 장단점을 고려할 때 적절한 질문은 '코드 난독화를 적용해야 하는가'입니다. 짧게 대답하자면 '예'입니다. 코드 난독화는 최소한 프로그램을 이해하기 어렵지만 기능을 그대로 유지하는 코드 조각으로 변환합니다. 리버스 엔지니어링 및 사이버 범죄자에게 제기되는 문제는 코드를 난독화하기에 충분한 이유입니다. 강력한 바이너리 수준의 난독화는 코드 미니화로 인해 프로그램 성능에 이점을 제공하므로 전략적인 코드 난독화를 구현해야 할 충분한 이유가 됩니다.

더 나은 결과를 위해 보안 전문가들은 코드 교체, 코드 변조 탐지, 자가 , 워터마크, 암호화, 서버측 보호 등과 같은 다른 보안 메커니즘과 함께 코드 난독화를 구현하도록 권장합니다. 이렇게 하면 공격자는 제시간에 공격 행위를 완료하기가 어려워집니다. 성능에 민감한 코드를 식별하고 강력한 난독화 기술이 적용되는 경우 성능에 영향을 줄 수 있는 코드 부분을 표시할 수 있도록 애플리케이션의 런타임 동작을 분석하는 난독화 도구가 있습니다.

코드 난독화 도구

Android Studio에는 ProGuard 및 DexGuard와 같은 몇 가지 도구가 있습니다. Java의 오픈 소스 난독화기에는 클래스 파일 축소 프로그램인 ProGuard가 포함되며 사용하지 않는 클래스를 제거합니다. 또한 나머지 클래스의 이름을 의미 없는 이름으로 바꾸는 데 도움이 됩니다. 결과로 생성된 JAR 파일은 리버스 엔지니어링이 어렵습니다.

이것은 Python 스크립트를 난독화하고 난독화된 스크립트를 고정 머신 스크립트에 바인딩하는 명령줄 인터페이스 도구입니다. 런타임 동안 각 함수의 co_code와 상수를 보호하여 Python 스크립트의 난독화를 도와줍니다. 또한 실행 중에 난독화된 스크립트의 라이센스 파일을 확인합니다. 개발자는 이를 통해 원래의 Python 스크립트를 난독화된 스크립트로 원활하게 교체할 수 있습니다.

JavaScript 난독화

이 도구는 JavaScript를 난독화하고, 기존 JS 파일을 전혀 새로운 표현식으로 변환하여 기능을 변경하지 않고서는 이해하기 어렵고 재사용할 수 없게 만드는 것으로 유명합니다. 콘솔 출력을 비활성화하여 디버그 보호, 변수 및 함수 이름 변경, 문자열 제거, 비활성 코드 주입, 자가 방어 기능과 같은 다양한 변환을 수행합니다. 사용자가 JS 파일을 업로드하고 필요한 난독화 수준에 따라 적절한 옵션을 선택할 수 있는 사용이 간편한 인터페이스를 갖추고 있습니다. 전역 변수 이름 바꾸기, 문자열 배열 회전 또는 섞기, 문자열 배열 인코딩, 모든 문자열을 유니코드 표현식으로 변환하여 이스케이프 시퀀스에 유니코드 작업을 수행하는 등의 다양한 작업을 수행할 수 있습니다. 또한 제어 흐름 평탄화도 포함되어 프로그램 소스 코드의 이해를 방해합니다. 그러나 이러한 변환은 런타임 속도를 약 1.5배 느리게 하여 코드 성능에 영향을 미칩니다.

이것은 난독화된 JavaScript 코드를 디버깅하는 데 도움을 주는 또 다른 도구입니다. 별도의 소스 맵은 프로덕션 환경에서 코드를 디버깅하는 데 유용할 수 있으며, 개발 팀은 소스 맵을 외부에서는 알 수 없는 비공개 위치에 업로드할 수 있습니다.

CLI 모드에서 작동하며 JS 코드를 최소화, 난독화, 복원(beautify)하기 위한 다양한 옵션이 있습니다. JS에서 AST(추상 구문 트리)를 생성하는 파서, 변수, 메소드 이름을 단일 문자로 줄이는 맹글러 구성 요소와 변환을 사용하여 AST를 작은 것으로 최적화하는 압축기 구성 요소로 구성됩니다.

JavaScript의 한 가지 단점은 완전한 해독 방지가 될 수 없다는 것입니다. JS는 기본적으로 브라우저에서 실행되며 브라우저의 JS 엔진이 리소스를 렌더링하기 위해 JS를 읽어야 하기 때문입니다. 따라서 이 캡처 포인트는 생략할 수 없습니다.

Naneu의 PHP 난독화기

이것은 PHP를 파싱하고 변수 이름과 메소드를 난독화하는 난독화 도구입니다. 이 라이브러리는 UnPHP와 같은 해독기로부터 PHP를 보호하며 네이티브 PHP 환경에서 코드를 실행하는 데 유용합니다.

이 도구는 PHP Parser 4.x를 사용하여 PHP 코드를 구문 분석하며 GIT 클론으로 사용할 수 있습니다. 이로 인해 PHP 컴파일러는 재배포 코드를 이해할 수 있지만 소스 코드를 변조하는 사람은 이해할 수 없습니다. 제어 흐름 난독화를 구현하고, 주석, 들여쓰기, 문자열 리터럴을 모두 제거하고, 프로그램 디렉토리 전체를 반복적으로 난독화하며, 이름 변경 난독화를 구현합니다.

PHP Compactor 라이브러리는 PHP 코드베이스를 간결화 및 압축하는 또 다른 오픈 소스 라이브러리 난독화 도구입니다. 공백, 빈 줄, 주석이 제거되고 문자열이 인코딩됩니다.

HTML은 HTML 태그를 사용하여 복원(beautify)된 단순히 마크업된 텍스트입니다. HTML을 난독화하는 것은 보통 JavaScript로 변환하거나, 각 HTML 줄을 해당하는 숫자 코드로 변환하거나, 두 가지 메소드를 조합하여 수행합니다. 이것은 종종 효과적이지만, 변환의 각 단계에서 코드 오버헤드가 추가되기 때문에 순수 HTML의 무시할 수 있는 크기를 2~3배 증가시킵니다.

기존의 보안 접근 방식은 주로 서버측 보안에 중점을 두기 때문에 HFO(HTML Field Obfuscation)는 무시되는 경우가 많습니다. 앱에는 몇 가지 보안 취약성이 있습니다. Man-In-The-Browser와 같은 공격은 스크립트를 주입하여 사용자 이름 및 암호와 같은 중요한 필드에 연결하고 사용자가 입력할 때 자격 증명을 탈취합니다. 부정행위 방지 애플리케이션은 HFO를 사용하여 스크립트가 실행되지 않도록 합니다.

이 접근 방식은 대상 필드를 식별하는 데 브라우저 기반 애플리케이션을 사용하는 공격을 교란하도록 설계되었습니다. 미끼 필드는 필드 값을 암호화하는 것 외에도 공격자의 주의를 분산시키는 데에도 사용됩니다.

C 코드를 난독화하는 가장 좋은 방법은 컴파일하여 바이너리만 배포하는 것입니다. 이렇게 배포된 코드를 원래 형태로 리버스 엔지니어링하는 것은 매우 어렵습니다. 디컴파일 후 C/C++ 기계어 출력은 자체 난독화 되어 있어, 일정 수준의 난독화 기능이 내장되어 있다고 할 수 있습니다. 이러한 특징은 지적 재산에 대한 기술적 보호에 도움이 된다고 할 수 있습니다.

ANTLR(Another Tool for Language Recognition)은 C/C++ 소스 코드를 입력 파일로 가져와서 입력의 암시적 계층을 캡처하여 AST로 변환하는 파서 생성기입니다. 얻어진 구조에 기초하여, 각 노드는 구조의 의미 있는 구성요소를 나타냅니다. 이는 노드를 재구성하고 난독화 후 성능과 복원력을 검토함으로써 난독화 알고리즘을 구현하는 기반이 됩니다.

C/C++에 비해 C# 코드는 리버스 엔지니어링이 더 쉽습니다. 그 이유는 C# 어셈블리에 C++에 없는 메타데이터가 포함되어 있기 때문입니다. 또한 C#는 C/C++보다 소스 코드로 디컴파일하기가 쉬운 중간 언어로 매핑됩니다. 자동 난독화 도구의 일부 기능에는 사용자가 정의할 수 있는 보존된 이름 목록, C#에 대해 미리 정의된 예약 이름 목록, 주석 제거가 있습니다.

Crypto Obfuscator는 정교한 난독화 기술을 사용하여 C# 코드를 리버스 엔지니어링으로부터 보호합니다. 여기에는 기호 이름을 인식할 수 없는 이름으로 바꾸기, 중요한 메소드를 숨기기 위한 외부 메소드로부터 호출 숨기기, 문자열 암호화, 제어 흐름 난독화 등이 포함됩니다.

결론

요컨대, 코드 난독화만으로는 복잡한 보안 위협을 처리할 수 없습니다. 코드를 해독하는 것은 어렵지만, 자동화된 도구를 이용할 수 있고 해커도 전문 지식을 갖고 있으므로 리버스 엔지니어링이 불가능하지는 않습니다.

따라서 코드 난독화는 모든 애플리케이션 보안 요구를 위한 올인원 솔루션이 아닙니다. 개발 팀은 보안 요구 사항, 애플리케이션의 특성 및 성능 벤치마크에 따라 신뢰할 수 없는 환경에서 코드를 보호하기 위해 다수의 코드 난독화 기술을 구현하는 것을 고려할 수 있습니다. 각 기술의 장단점을 고려하여 이러한 작업을 수행해야 합니다. 이 전략은 암호화, RASP, 데이터 보존 정책 등과 같은 다른 AppSec 이니셔티브를 보완해야 합니다. 앱실링(AppSealing)과 같은 RASP 도구와 함께 사용하면 현재의 보안 위협에 대한 강력한 해결책을 구축할 수 있습니다.

# data[].attributes.attachment_link.title
코드 난독화 : 코드 보안을 위한 포괄적인 가이드 - AppSealing

# data[].attributes.attachment_link.description
코드 난독화는 애플리케이션을 해킹으로부터 보호하기 위해 가장 많이 사용되는 애플리케이션 보안 기술 중에 하나입니다. 이는 전 세계 보안 전문가들이 가장 권장하는 AppSec 이니셔티브 중 하나이며, 애플리케이션의 최소 보안 사항으로 요구되는 경우가 많습니다. 대개 이 기술은 해킹 시도에 대한 주요한 방어 메커니즘 역할을 수행하며 코드 주입, 리버스 엔지니어링, 고객 및 애플리케이션 사용자의 개인정보 변조와 같은 일반적인 ...

# data[].attributes.body
소프트웨어 보호를 위한 기술적 조치 유형
우선 소프트웨어 보호를 위한 기술적 조치 유형 우선 기술적보호조치란 저작권을 보호하기 위하여 멀티미디어, 문서 등의 디지털화된 저작물의 불 법 복제를 방지하고 지정된 사용자에게 허가된 범위 내에서 사용할 수 있게 하는 기술로서 콘텐츠 유통산업의 성장에 핵심이 되는 기술이라고 할 수 있다.
(1) 핑거프린팅 : 음악, 영상 등의 콘텐츠에서 특징점을 찾아내어 이것을 DB에 보관하고, 후에 이를 다른 콘텐츠 에서 추출된 특징점과 비교하여 두 콘텐츠가 일치 혹은 유사한지 알아내는 방법을 특징점 기반의 핑거프린팅이라고 한다. 여기서 특징점이란, 음악이나 영상파일이 가지고 있는 고유한 특성인 음 원의 주파수나 화면전환정보, 위치정보, 컬러정보 등을 말하며, 이것을 음원DNA, 영상물DNA라 고 부르기도 한다. 지문을 통해 사람의 신원을 확인하듯이, 콘텐츠의 특징점을 통해 해당 콘텐츠를 올바르게 인식할 수 있다.
(2)저작권 보호기술에서의 필터링: 불법저작물의 유통을 막기 위해 이용자들의 불법 저작물 접 근을 제한하거나 온라인 서비스에서 불법 저작물을 걸러내는 여러 방법들을 통칭한다. OSP들이 자체적인 모니터링 인력을 활용하여 불법 콘텐츠를 삭제하는 것도 일종의 필터링에 해당한다 볼 수 있으며, P2P∙웹스토리지 서비스에서 검색에 대한 금칙어를 설정하여 이용자들이 불법콘텐츠 를 검색하지 못하게 하는 것도 필터링이다.

# data[].attributes.attachment_link.title
소프트캠프 공식블로그 "공감하는 보안이야기" : 네이버 블로그

# data[].attributes.headline
2. 상표권에 의한 소프트웨어 보호사례

# data[].attributes.subject
2. 상표권에 의한 소프트웨어 보호사례

# data[].attributes.body
2. 상표권에 의한 소프트웨어 보호 사례

# data[].attributes.headline
2.상표권에 의한 소프트웨어 보호 사례

# data[].attributes.subject
2.상표권에 의한 소프트웨어 보호 사례

# data[].attributes.headline
상표권에 의한 소프트웨어 보호 사례

# data[].attributes.subject
상표권에 의한 소프트웨어 보호 사례

# data[].attributes.headline
3.소프트웨어 보호를 위한 기술적 조치 유형

# data[].attributes.subject
3.소프트웨어 보호를 위한 기술적 조치 유형

# data[].attributes.body
1) 화이트 박스 암호화 기술
화이트박스 암호화는 소프트웨어 구현에서 비밀 키가 노출되지 않도록 보호하는 기술이다.

# data[].attributes.attachment_link.readable_text
암호학

화이트 박스(White Box) 암호 기술

암호 기술에는 화이트 박스(White Box)와 블랙 박스(Black Box) 암호화 기술이 있다. 결론부터 이야기하자면 블랙 박스 암호기술은 예전 기술이고 화이트 박스 기술은 최신의 기술이고 더 안전한 암호화 기술이다.

암호학은 쉽게 말해 평문(Plain text)을 암호문(Cipher text)으로 바꾸는 것이다. 즉 평문을 암호화해서 크래커가 알 수 없도록 하는 것이다.

암호화해주는 장치에도 여러 가지가 있다. 이 장치는 소프트웨어 코드일 수도 있고, 하드웨어 장치일 수도 있다. 어떤 형태의 암호화 장치이건, 그 장치에 기반하는 암호화 기술은 블랙 박스 또는 화이트 박스에 기반한다.

아래 그림을 보면 블랙 박스에 기반한 암호화 장치를 나타내고 있다. 암호화 과정에는 암호화 키(Key)가 필요한데 이 암호화 키는 블랙 박스로 가정한 암호화 장치 내부에 들어 있다. 블랙 박스라고 하는 것은 '그 안이 들여다 보이지 않는다'는 의미이다. 즉 암호화 장치를 설계할 때 크래커가 이 암호화 장치 내부는 들여다 볼 수 없다고 가정하는 것이다.

따라서 크래커는 평문과 그 결과물인 암호화문 두 개의 입출력 값만 볼 수 있다. 아마 크래커는 이 두 개의 입출력 값을 계속해서 관찰하여 어떤 패턴을 알아내고자 할 것이다.

블랙 박스는 단순히 암호화 장치의 설계자가 이 암호화 장치 자체는 '완벽히 안전하다'고 가정하는 것이다. 즉 블랙 박스로 가정하는 것이다. 따라서 만에 하나, 이 암호화 장치 자체가 뚫려 버리면 암호화 키가 누출될 수 있다. 암호화 키가 누출되면 모든 암호화 과정은 크래커에게 완전히 공개된다.

이보다 더 발전된 방식이 '화이트 박스(White Box)' 암호 장치이다. 화이트 박스를 해석하면 하얀 색의 상자이겠지만, 더 정확히는 투명 상자라고 생각하면 된다. 암호화 장치의 설계자는 크래커가 어떤 방법을 써서든지 결국에 암호 장치 내부를 들여다 볼 수 있을 것이라고 가정한다. 결국 크래커가 암호화 장치 내부를 들여다 볼 수 있다고 가정하면 더 고려할 사항들이 많아진다. 장치 내부를 볼 수 있다면 암호화 키(Key)를 획득할 수 있기 때문이다. 또한 그 외에도 암호화 장치 내부에 메모리를 샅샅이 살펴볼 수도 있다.

암호화 장치를 화이트박스로 가정하면 암호화 키(Key) 를 손쉽게 장치 내에 저장할 수 없다. 따라서 일반적인 화이트 박스에서는 암호화 키가 그대로 존재하지 않고 암호화 알고리즘과 뒤섞여 존재한다.

예를 들자면 아래와 같은 형태로 존재한다고 생각하면 된다. 암호화 키가 분리되지 않고 아래와 같은 복잡한 수학계산 알고리즘과 뒤섞여 있다. 따라서 암호화 키를 따로 얻을 수가 없다. 또한 이 알고리즘은 되돌리기(invert)가 어려운 알고리즘이다. 따라서 결과값을 갖고 원본값이나 암호화 키를 추측하기 어렵다.

[그림 3: 화이트 박스에서의 알고리즘+암호화 키]

블랙 박스에서의 암호화 과정이 아래와 같다면,

화이트 박스에서의 암호화 과정은 아래와 같다고 볼 수 있다. 즉 암호화 키는 보여지지 않는다.

결론적으로 말하자면 블랙 박스 암호화보다는 화이트 박스 암호화가 더 진보된 암호화 방법이라고 생각하면 된다.

# data[].attributes.attachment_link.description
암호학 화이트 박스(White Box) 암호 기술 암호 기술에는 화이트 박스(White Box)와 블랙 박스(Black Box) 암호화 기술이 있다. 결론부터 이야기하자면 블랙 박스 암호기술은 예전 기술이고 화이트 박스 기술은 최신의 기술이고 더 안전한 암호화 기술이다. 암호학은 쉽게 말해 평문(Plain text)을 암호문(Cipher text)으로 바꾸는 것이다. 즉 평문을 암호화해서 크래커가 알 수 없도록 하는 것이다.

# data[].attributes.body
특허의 의해 보호한다

# data[].attributes.body
특허권을 받는 조건은 산업상 이용 가능성,신규성,진보성을 판단하는 것으로  심사 판단에 출원준비 -출원- 심사 등록 절차를 밟고 있고 이과정을 걸쳐 특허권을 받으면 그 후 부터 아이디어 자체에 대한 보호를 저작권으로 부터 받는 다는 장점이있다

# data[].attributes.body
3. 소프트웨어 보호를 위한 기술적 조치

암호
정보를 이해할 수 없도록 암호화 하거나 다시 해독하기 위한 일련의 단계를 정의한 알고리즘이다.

1) 잠금화면: 잠금화면에 암호를 설정하여 소프트웨어를 보호

2) PIN: PIN 4자리 번호를 설정해서 소프트웨어를 보호

# data[].attributes.headline
[1] 소프트웨어 코드 난독화: 코드

# data[].attributes.body
[1] 소프트웨어 코드 난독화: 코드 난독화는 프로그램을 변화하는 방법의 일종으로, 코드를 읽기 어렵게 만들어 역공학을 통한 공격을 막는 기술을 의미한다. 난독화는 난독화의 대상에 따라 크게 소스 코드 난독화와  바이너리 난독화로 나눌 수 있다. 소스 코드 난독화는 C/C++/자바 등의 프로그램의 소스 코드를 알아보기 힘든 형태로 바꾸는 기술이고, 바이너리 난독화는 컴파일 후에 생성된 바이너리를 역공학을 통해 분석하기 힘들게 변조하는 기술이, 쉽게 말하자면 프로그래밍 언어로 작성된 코드에 대해 읽기 어렵게 만드는 작업이다. 대표적인 사용 예로는 프로그램에서 사용된 아이디어나 알고리즘 등을 숨기는 것 등이 있다. 코드 난독화 과정을 거친 코드를 특정 기준에 의해 심사하는 대회도 있다.
[2]디지털 저작권 관리: 저작권자가 배포한 디지털 콘텐츠가 저작권자의 의도한 용도로만 사용되도록 디지털 콘텐츠의 생성, 유통, 이용까지의 전 과정에 걸쳐 사용되는 디지털 콘텐츠 관리 및 보호 기술이다.

- 예시로 멜론 사이트에서 음악 스트리밍을 할 때 음악 MP3 파일을 DRM 다운로드하는 게 있었는데 여기서 DRM이 인가된 사용자에게만 파일을 사용할 수 있도록 하는 저작권 관리 시스템이다. DRM 다운로드 한 MP3 파일은 해당 기기, 해당 사용자에 한해서 사용이 가능하고 타인에게 공유가 불가능하거나 공유 시 사용자 인증이 제대로 안 되는 것을 감지해 MP3 파일이 정상 작동하지 않는다, 더 말해보자면 DRM(Digital Rights Management: 저작권 관리 시스템)은 네트워크에서의 다양한 컨텐츠를 제공자 (Content Provider: CP)로부터 고객(Client)로 안전하게 전달하고 이 고객이 불법적으로 컨텐츠를 유통하지 못하도록 하는 시스템 기술이다. DRM시스템에서 있어 가장 중요한 기술은 암호화 기술로서 고객의 비밀 번호 혹은 고객 컴퓨터의 고유번호를 암호 키로 사용하여 컨텐츠를 암호화하여 전달하기 때문에 이를 복사하여 제3자에게 전달하여도 풀리지 않도록 하는 점이 가장 중요하다. 물론 DRM은 이외에도 컨텐츠 사용규칙 제어기술, 과금 결제를 위한 기술 등의 부대적인 기술들이 필요하다.

# data[].attributes.body
1.안티 리버스 엔지니어링
리버스 엔지니어링을 막기 위한 다양한 방법 중 안티 리버스 엔지니어링 분야도 크게 발전하고 있다. 프로그램 내부 알고리즘과 중요 데이터들을 분석 하지 못하도록 실행파일을 패킹하거나 안티 디 버깅을 적용함으로써 디버깅을 방지하고 분석을 어렵게 하는데 큰 목적이 있다. 프로그램 실행과 상관이 없는 의미 없는 코드들을 무작위로 삽입하거나 패킹, 코드 난독화, 암 호화, 리버스엔지니어링 관련 프로그램 실행시 강제 프로그램 종료, 프로그램 실행 시 다른 프로세 스가 접근 하지 못하도록 하는 등의 방법으로 프로그램을 보호하며 분석을 방해하고 지연시킨다

2.소프트웨어 취약점
점검 안전한 소프트웨어를 개발하려면 계발단계에서부터 보안상의 취약점이 발생되지 않도록 내부 개발보안정책 또는 가이드라인을 적용하여 개발해야 하지만 이 과정들은 그야말로 이상이며 현실 적으로 볼 때 시간에 기거나 기타 다른 이유로 일정에 쫓겨 심각한 취약점이 내제된 소프트웨어가 개발 될 수 있다.

3.기술적 보호조치 우회 검증
악의적인 리버스 엔지니어링을 통해 안티바이러스, 키보드보안 프로그램 등의 보안솔루션을 우 회하고 소프트웨어에 구현된 기술적 보호조치 및 알고리즘을 우회하는 악성코드나 프로그램이 있 을 경우 이런 우회 방법들을 검증하고 분석을 할 때에도 리버스 엔지니어링이 쓰인다. 해당 프로그램이 구현된 기술적 보호조치를 우회하고 무력화 했는지를 검증하여 컴퓨터프로그 램보호법에 위배 되었는지 검증을 하며 이것을 통해 실제 소프트웨어의 취약점을 찾을 수도 있다.

출처 한국 저작권 위원회

# data[].attributes.body
2. DRM
DRM은 각종 디지털 컨텐츠의 허용되지 않은 접근 및 불법 복제를 제한하는 프로그램이다. 디지털 환경에서 저작물을 불법 복제하거나 문서 등을 위조하는 것을 방지하기 위해 정당한 권리를 가진 자에게만 접근을 허용하는 시스템. 전자책, 음원, 영화, TV 프로그램, 게임, 전자 문서 발급 등에 폭넓게 이용되고 있다.

# data[].attributes.body
특허의의해 소프트웨어를 보호하는 방법과절차

소프트웨어는 특허법이 정의한 발명의 조건인
자연법칙을 이용한 기술적 사상의 창작으로서 고도한것이여야만 한다는 발명의 성립성을 충족시키지 못하고, 인간의 논리나 일정한 규칙을 따른것이기 때문에 특허를 통한 권리획득과 보호의 기준이 모호하고 까다롭다 따라서 발명의성립성을 충족시키고 신규성과 진보성을 만족해야합니다

# data[].attributes.attachment_link.provider_name
네이버 블로그 | 윕스 공식기업블로그 아이디어 놀이터

# data[].attributes.attachment_link.title
소프트웨어의 권리 보호 방법

# data[].attributes.attachment_link.description
소프트웨어의 권리 보호 방법   4차산업혁명 시대의 도래와 함께 컴퓨터를 이용한 운영체제, 모바일…

# data[].attributes.headline
소프트웨어 보호를 위한 기술적 조치 유형

# data[].attributes.subject
소프트웨어 보호를 위한 기술적 조치 유형

# data[].attributes.body
1.암호
암호를 사용하여 소프트웨어를 보호 할 수 있다 쉽게 예를 들어 핸드폰에 암호를 걸어 개인정보를 보호 하듯이 자신만이 아는 암호를 만들어 소프트웨어를 보호 할 수 있다.

2.drm
디지털 저작권 관리를 의미한다 콘텐츠 제공자의 권리와 이익을 안전하게 보호하며 불법복제를 막고 사용료 부과와 결제대행 등 콘텐츠의 생성에서 유통 관리 까지를 일괄적으로 지원하는 기술로 소프트웨어를 보호 할 수 있다.

# data[].attributes.body
소프트웨어 특허는 컴퓨터 프로그램 또는 컴퓨터 프로세서를 이용하여 운영되는 기술에 관한 특허를 말한다. 좁은 의미로 보면, 마이크로소프트 워드, 파워포인트, 스타크래프트 등과 같은 컴퓨터 프로그램에 관한 것으로 정의할 수 있으나, 넓은 의미로 보면 애플리케이션, 웹 인터페이스 등과 같이 컴퓨터 언어 또는 컴퓨터 프로그램을 이용하는 모든 기술이 소프트웨어 특허의 대상이 될 수 있다. 우리나라 특허법은 커뮤터 프로그램이 저장된 매체 또는 매체에 저장된 컴퓨터 프로그램을 발명의 대상으로 보고, 특허로서 보호해주고 있다.
또한 bm 특허도 소프트웨어에 의해 구현되게 되는것이 통상적이므로 소프트웨어 특허의 일종이라고 볼 수 있다. BM 발명이 특허로 등록되기 위해서는 진보성 판단기준을 만족시켜야 한다. 진보성 판단기준이란 발명에 대한 특허성 여부를 판단할 때 해당 발명이 선행기술에 비해 어느 정도로 진보했는지를 판단하기 위한 기준이다. 진보 정도가 일정 수준 이상이어야 특허로 인정받을 수 있다.

​

# data[].attributes.attachment_link.title
[특허]소프트웨어 저작권 보호용 장치

# data[].attributes.attachment_link.description
본 발명은 고도의 보안성을 갖는 스마트카드를 이용하여 용이하게 소프트웨어 등을 다운, 실행, 인증 시킬 수 있는 S/W 저작권 보호용 장치에 관한 것으로, 이동식 디스크와 동일 유형을 갖는 하우징 내에 IC칩과 전기적으로 연결되어 외부 PC와 통신하도록 하는 USB인터페이스부와, 상기 USB인터페이스부와 전기적으로 접속되어 있는 스마트카드부를 구비하는 저작권보호용장치에 있어서, 상기 스마트카드부는, 상기 저작권보호용장치를 외부 PC과 연결 시 S/W를 다운 받을 수 있는 해당 사이트로 이동하도록 하는 자동로그인부와, 상기 해당 사이트 이동 후, S/W set up 프로그램을 다운받도록 하기 위한 다운로드프로그램부와, 상기 해당 S/W 제품을 다운받는 URL 정보가 저장되는 소프트웨어정보저장부 및 상기 S/W를 상기 외부 PC에 설치 시, 인증키를 생성하는 인증키생성부를 포함하여 이루어진다.

# data[].attributes.headline
상표권에 의한 소프트웨어 보호 사례

# data[].attributes.subject
상표권에 의한 소프트웨어 보호 사례

# data[].attributes.body
특허를 받는 방법
특허출원을 하기 위해서는 출원인코드를 발급받아야 하고, 출원서류, 특허명세서, 심사청구서 등의 서류를 준비해야 합니다.
특허명세서 작성은 발명에 대한 권리화를 하는 부분으로, 전문 변리사를 통해 작성하는 게 더욱 안전합니다
특허출원 및 심사청구를 진행하면 심사관은 특허출원을 심사합니다.
심사 결과, 특허출원의 약 90% 이상은 의견제출통지서를 통지받게 됩니다.
의견제출통지서는 특허출원 및 심사청구일로부터 약 1년 내 통지됩니다.
의견제출통지서는 대부분 진보성 위반으로 통지됩니다.
출원인은 의견서와 보정서를 제출하여 심사관에게 선행기술과 본 발명의 차이점을 주장합니다.
특허법은 특허청구범위의 보정 범위를 제한하고 있고, 심사관을 설득하는 게 어렵기 때문에 전문가의 도움을 받는 것이 좋습니다

# data[].attributes.attachment_link.readable_text
기율특허법률사무소입니다!
오늘은 특허가 어떤 절차를 거쳐 등록되는지 정리해 드리려고 합니다!
특허출원은 전문 변리사에게 위임 하시더라도, 기본적인 절차에 관해서 알아두시면 좋겠죠?
오늘은 복잡한 특허등록절차에 대해서 간단하고 명확하게 정리해 드릴테니 재미있게 봐주세요!

발명이 선행기술과 동일한지, 진보한 발명인지 선행기술조사를 통해 판단할 수 있습니다.
선행기술에 대한 검색은 키프리스, 구글을 통해 가능합니다.
다만, 자신의 발명이 특허성이 있는지 판단하는 것이 매우 어려울 수 있으니 전문가를 통한 선행기술 조사를 진행하신 후 특허출원을 진행하는 것을 추천드립니다.
본격적인 특허 출원 진행
선행기술조사를 한 후에는 본격적으로 특허출원을 진행하게 됩니다.
특허출원을 하기 위해서는 출원인코드를 발급받아야 하고, 출원서류, 특허명세서, 심사청구서 등의 서류를 준비해야 합니다.
특허명세서 작성은 발명에 대한 권리화를 하는 부분으로, 전문 변리사를 통해 작성하는 게 더욱 안전합니다.

특허출원 및 심사청구를 진행하면 심사관은 특허출원을 심사합니다.
심사 결과, 특허출원의 약 90% 이상은 의견제출통지서를 통지받게 됩니다.
의견제출통지서는 특허출원 및 심사청구일로부터 약 1년 내 통지됩니다.
의견제출통지서는 대부분 진보성 위반으로 통지됩니다.
출원인은 의견서와 보정서를 제출하여 심사관에게 선행기술과 본 발명의 차이점을 주장합니다.
특허법은 특허청구범위의 보정 범위를 제한하고 있고, 심사관을 설득하는 게 어렵기 때문에 전문가의 도움을 받는 것이 좋습니다.

의견서와 보정서 제출을 통해 심사관을 설득하면 특허등록결정서가 통지되게 됩니다.
특허등록결정서가 통지된 경우 통지받은 날로부터 3월 이내에 설정등록료를 납부해야 특허권을 획득할 수 있습니다.
설정등록료는 3년치 특허유지료를 한 번에 납부하는 것으로 4년차부턴 매년 등록유지료를 납부해야 합니다.
만약 등록유지료를 납부하지 않을 시엔 획득한 특허권이 소멸되는 일이 발생할 수 있습니다.

특허, 선행기술조사부터 등록 후까지 중요 내용을 정리해 보았는데 이해가 잘 되셨나요?
전문적이고 철저하게 준비해야 하는 특허등록과 관리,
도움이 필요하신 분들은 언제든지 로 연락주세요!

# data[].attributes.attachment_link.title
특허내는 방법, 특허등록절차 등록 후 주의사항까지

# data[].attributes.attachment_link.description
기율특허법률사무소입니다!오늘은 특허가 어떤 절차를 거쳐 등록되는지 정리해 드리려고 합니다!특허출원은 전문 변리사에게 위임 하시더라도, 기본적인 절차에 관해서 알아두시면 좋겠죠?오늘은 복잡한 특허등록절차에 대해서 간단하고 명확하게 정리해 드릴테니 재미있게 봐주세요! 발명이 선행기술과 동일한지, 진보한 발명인지 선행기술조사를 통해 판단할 수 있습니다.선행기술에 대한 검색은 키프리스, 구글을 통해 가능합니다.다만, 자신의 발명이 특허성이 있는지 판단하는 것이 매우 어려울 수 있으니 전문가를 통한 선행기술 조사를 진행하신 후 특허출원을 진행하는 것을 추천드립니다.

# data[].attributes.headline
 소프트웨어 저작권을 침해하

# data[].attributes.body
소프트웨어 저작권을 침해하는 대표적 위협에는 소프트웨어 도용이 있다. 소프트웨어 도용에 대한 위협에 대한 방어 기법으로는 소프트웨어 워터마킹과 버스마킹이 있다.
1. 소프트웨어 워터마킹에서는 대상 프로그램에 유일한 식별자(워터마크)를 탑재시켜 배포하고, 소프트웨어 도용 시에 그 소프트웨어가 워터마크를 포함하고 있음을 증명하여 원 저작자나 불법 배포자를 식별한다.
2. 소프트웨어 버스마킹은 소프트웨어에 본래부터 존재하는 특징(버스마크)에 기반하여 각 소프트웨어를 식별할 수 있는 기법이다. 소프트웨어 전체 또는 부분이 도용되었을 경우, 그 소프트웨어들로부터 버스마크를 추출하여 비교함으로써 한 소프트웨어가 다른 소프트웨어의 복사본임을 판단할 수 있다.

# data[].attributes.attachment_link.readable_text
이미지, 오디오, 동영상 워터마킹처럼 소프트웨어 소스코드에 사람이 인지하지 못하도록 저작권 정보를 삽입하고 추출하는 기술이다. 소프트웨어를 복제할 경우 소프트웨어의 워터마크를 추출하여 저작권자의 정보를 확인하는 기술이다.

출처

제공처 정보

한국저작권위원회는 급변하는 저작권 환경 변화 속에서 국내 · 외 저작권 보호 및 공정한 이용환경 조성을 위하여 다각적인 사업을 능동적으로 추진하여 왔으며, 우리나라가 글로벌 저작권 선도국으로서 자리매김하는데 앞장서고 있다.

본 콘텐츠의 저작권은 저자 또는 제공처에 있으며, 이를 무단 이용하는 경우 저작권법 등에 따라 법적책임을 질 수 있습니다.
외부 저작권자가 제공한 콘텐츠는 네이버의 입장과 다를 수 있습니다.

# data[].attributes.attachment_link.description
이미지, 오디오, 동영상 워터마킹처럼 소프트웨어 소스코드에 사람이 인지하지 못하도록 저작권 정보를 삽입하고 추출하는 기술이다. 소프트웨어를 복제할 경우 소프트웨어의 워터마크를 추출하여 저작권자의 정보를 확인하는 기술이다. 한국저작권위원회는 급변하는 저작권 환경 변화 속에서 국내 · 외 저작권 보호 및 공정한 이용환경 조성을 위하여 다각적인 사업을 능동적으로 추진하여 왔으며, 우리나라가 글로벌 저작권 선도국으로서 자리매김하는데 앞장서고 있다.

# data[].attributes.headline
상표권에 의한 소프트웨어 보호 사례

# data[].attributes.subject
상표권에 의한 소프트웨어 보호 사례

# data[].attributes.attachment_link.readable_text
의료기기 '틈새 투자처' 부상, 저평가 '메드트로닉' 주목②

[홍콩 대장주] 메이퇀 ③ 신성장 동력의 '폭발적 성장'

비츠로셀, '2차전지 리튬박 개발' 정부과제 진행..."LG엔솔에 공급 기대"

신성이엔지, 2차전지 드라이룸 수요↑...LG엔솔 인니 공장 매출 1Q 반영

사진

尹대통령 지지율 1.3%p↑ 38.8%...4주째 30% 후반대 정체 [서울=뉴스핌] 송기욱 기자 = 윤석열 대통령의 국정수행 지지율이 소폭 상승하며 38.8%를 기록했다는 여론조사 결과가 12일 발표됐다. 여론조사 전문기관 알앤써치가 종합뉴스통신 뉴스핌 의뢰로 지난 9~10일 전국 만 18세 이상 남녀 1033명에게 물은 결과 윤 대통령의 지지율은 38.8%로 집계됐다. 이는 지난주 조사 대비 1.3%p 상승한 수치다. [서울=뉴스핌] 송기욱 기자 = 2023.04.11 oneway@newspim.com 부정평가는 2.2%p 하락한 57.4%, '잘 모름' 응답은 3.8%로 나타났다. 긍정평가와 부정평가 간 격차는 18.6%p다. 윤 대통령의 지지율은 지난 3월 둘째 주 36.1%로 떨어진 뒤 4주째 소폭 상승과 하락을 반복하며 30% 후반대에서 답보하는 모습을 보였다. 지지율은 20대(5.7%p↑), 30대(6.3%p↑), 60세 이상(2%p↑), 경기/인천(6.9%p↑), 대구/경북(2.6%p↑)에서 상승했다. 특히 국민의힘 지지층에서는 87.8%로 조사 이래 최고치를 경신했다. 반면 50대(6.7%p↓), 서울(6.3%p↓), 전남/광주/전북/제주(3.9%p↓)에서는 하락했다. 더불어민주당 지지층에서는 긍정평가가 5.7%에 그쳤다. 알앤써치 관계자는 "최근 여러 논란에도 불구하고 지지율이 소폭 상승한 것은 국민의힘 지지층, 60세 이상, TK 등에서 긍정평가가 과반을 넘게 형성되는 등 전통적 보수층이 결집한 결과"라고 분석했다. 이번 여론조사는 성·연령·지역별 인구비례 할당 추출 무선 RDD방식으로 추출된 표본을 구조화된 설문지를 이용한 무선 100% 자동응답 방식으로 실시했으며 응답률은 2.1%, 표본오차는 95% 신뢰수준에 ±3.1%p다. 통계보정은 셀가중 2023년 1월말 행정안전부 발표 주민등록 인구를 기준으로 성별 연령별 지역별 가중 값을 부여했다. 자세한 내용은 중앙선거여론조사심의위원회 홈페이지를 참고하면 된다. oneway@newspim.com

사진

안정론 vs 심판론중도층은 누구의 손 들어줄까 [서울=뉴스핌] 윤채영 기자 = 내년 4월 10일 치러지는 22대 국회의원 총선거가 1년 앞으로 다가왔다. 여야는 각각 '정권안정론'과 '정권심판론'을 내세우며 승부수를 던질 전망이다. 국민의힘은 169석 거대야당의 '입법독재'로 인해 국정 운영에 차질이 불가피했다는 점을 강조하며 정권에 힘을 실어줄 것을 호소하고, 더불어민주당은 윤석열 정부의 정책적 실책을 강조하며 '무능한 정권' 프레임으로 정권을 심판해야 한다는 점을 주요 선거전략으로 내세울 것으로 보인다. [서울=뉴스핌] 윤창빈 기자 = 이재명 더불어민주당 대표를 예방한 김기현 국민의힘 대표가 15일 오전 서울 여의도 국회에서 기념촬영을 마치고 자리로 향하고 있다. 2023.03.15 pangbin@newspim.com ◆尹대통령 집권 3년 중간 평가...정권안정론 vs 정권심판론, 통할 가능성은 여당 입장에서 윤석열 대통령 집권 3년 차에 맞는 내년 총선은 중간평가 성격이다. 내년 총선에서 질 경우 대통령의 레임덕 문제와 직결돼 국민의힘은 과반 이상의 안정적 의석이 필요하다. 국민의힘은 기반이 탄탄한 영남권을 제외하고는 캐스팅보트인 충청과 상대적 열세 지역인 수도권에서 표심을 확실하게 잡아야 한다. 수도권 전체 121석 중 국민의힘 의석은 19석뿐이다. 그러나 최근 윤석열 정부 노동개혁의 일환으로 나온 '주 69시간' 근로시간 개편안 논란, 당심 100%로 치른 3·8 전당대회 이후 꾸려진 지도부가 영남권 일색이라는 점, 4·5 재보궐선거에서의 지지부진한 성적 등이 주요 리스크 요인이다. 신율 명지대 정치학과 교수는 뉴스핌과 통화에서 "국민의힘은 위기 관리 능력이 어느 정도 되느냐가 중요한 요소"라며 "위기 관리를 잘 못하면 정권심판론이 올라갈 수 있다"고 지적했다. 한편 지난 대통령 선거와 지방선거에서 연이어 패한 민주당은 내년 총선에서도 패하면 향후 대선도 장담하기 어렵다. 정권심판론은 야당의 무기다. 윤석열 대통령의 한일 정상회담 비판, 여당 지도부 내 구설수 등 정부·여당의 각종 문제를 놓치지 않고 모조리 맹공을 퍼붓는 전략을 선거 때까지 활용할 것으로 보인다. 다만 민주당의 가장 큰 위협은 이재명 당대표의 사법리스크다. 선거 때까지 이 문제를 해소하지 못하면 여당의 방탄 프레임 공격과 사법 의혹을 해소하지 못하는 정당으로 되레 민심의 역풍을 맞을 수 있다. 민주당이 총선 직전 이 대표와의 결별을 선언할지, 아니면 이 대표를 선거 선봉장으로 내세워 선거를 치를지가 관건이다. 신 교수는 "이 대표는 올해 말쯤 공천 윤곽을 잡은 다음 물러날 것이라고 본다"며 "그렇게 되면 이 대표는 꽃놀이패가 된다. 공천 윤곽을 자기가 잡았기 때문에 선거에서 이기면 내가 잘 해서 된 것이고 지면 떠난 대표라며 책임에서 벗어날 수 있다"고 설명했다. 최창렬 용인대 정치학과 교수는 "검찰이 (이 대표를) 다른 사건 혐의로 기소할지, 영장 청구를 할지 (봐야한다). 그래서 이낙연 대표에 대한 관심도 커지는 것"이라고 말했다. [서울=뉴스핌]윤석열 대통령이 4일 용산 대통령실 청사에서 열린 국무회의를 주재, 모두발언을 하고 있다. [사진=대통령실] 2023.04.04 photo@newspim.com ◆표심은 어디로...중도층 누가 잡느냐가 관건 한국갤럽이 지난 4~6일 전국 만 18세 이상 성인남녀 1000명을 대상으로 한 여론조사에서 내년 총선 결과 기대에 대한 질문에 견제론(50%)이 지원론(36%)보다 14%p 높게 나타났다. 3월 1주차 조사와 비교하면 지원론은 6%p 하락했고, 견제론은 6%p 상승했다. 윤석열 정부 출범 1년도 안된 상황이지만, 현재 민심은 정권심판론으로 기운 것으로 분석된다. 민주당 관계자는 기자에게 "보통 민심은 출범한지 어느 정도 지나면 심판하려고 한다"며 "민주당도 이 기회를 놓치지 말아야 한다"고 말했다. 신 교수는 정당을 향해 중도 확장성을 주문했다. 그는 여당을 향해서는 "이미지 관리가 매우 중요하다"며 "극단적 세력과는 확실하게 선을 긋는 것이 민주당과의 차별성"이라고 주장했다. 이어 민주당을 향해서도 "극단적 세력과 결별해야 한다"며 "거기서 파생되는 문제가 한두 개가 아니다. 극단적인 목소리를 듣고 눈치를 보니까 단독으로 (법안을) 처리하는 것 아니냐"고 말했다. 결국 내년 총선은 무당층과 중도층의 표심이 좌우할 것으로 전망된다. 한국갤럽이 지난달 28~30일 조사해 31일 공개한 정당 지지율 결과에 따르면 국민의힘과 더불어민주당은 각각 33%로 동일했다. 어떤 정당도 선호하지 않는 무당층은 29%로 오차범위 안에서 양당을 따라잡는 수치였다. 양당이 전 주에 비해 각각 1%p, 2%p 하락한 사이 무당층은 4%p 상승했다. 중도층 표심은 윤석열 정부의 경제 성적표가 가장 큰 변수가 될 전망이다. 또한 공천 과정에서 얼마나 잡음이 일어날지 여부도 중도층의 표심을 움직일 만한 변수로 꼽힌다. 한국갤럽 여론조사는 무선전화 RDD 표본 프레임에서 무작위 추출된 표본을 상대로 전화조사원 인터뷰 방식으로 진행됐다. 표본오차는 95% 신뢰수준에 ±3.1%p다. 자세한 조사개요와 결과는 한국갤럽 홈페이지 또는 중앙선거여론조사심의위원회 홈페이지를 참조하면 된다. ycy1486@newspim.com

영상
[영상] 주한 스웨덴 대사 "공통점 많은 양국...경제 분야는 배울 점 많아"

영상
[고수 뭐라카노] 中 대표 내수주 귀주모태 주가 오를까

# data[].attributes.attachment_link.title
"이름 되찾았다" 다방, 상표권침해금지가처분 소송서 승소

# data[].attributes.attachment_link.description
의료기기 '틈새 투자처' 부상, 저평가 '메드트로닉' 주목② [홍콩 대장주] 메이퇀 ③ 신성장 동력의 '폭발적 성장' 비츠로셀, '2차전지 리튬박 개발' 정부과제 진행..."LG엔솔에 공급 기대" 신성이엔지, 2차전지 드라이룸 수요↑...LG엔솔 인니 공장 매출 1Q 반영 사진 尹대통령 지지율 1.3%p↑ 38.8%...4주째 30% 후반대 정체 [서울=뉴스핌] 송기욱 기자 = 윤석열 대통령의 국정수행 지지율이 소폭 상승하며 38.8%를 기록했다는 여론조사 결과가 12일 발표됐다.

# data[].attributes.headline
3.소프트웨어 보호를 위한 기술적 조치 유형

# data[].attributes.subject
3.소프트웨어 보호를 위한 기술적 조치 유형

# data[].attributes.body
2) 코드 난독화
코드 난독화는 실행 가능한 코드를 수정하여 이해, 해석, 실행에 사용할 수 없도록 하는 기술이다.

# data[].attributes.attachment_link.readable_text
코드 난독화는 애플리케이션을 해킹으로부터 보호하기 위해 가장 많이 사용되는 애플리케이션 보안 기술 중에 하나입니다. 이는 전 세계 보안 전문가들이 가장 권장하는 AppSec 이니셔티브 중 하나이며, 애플리케이션의 최소 보안 사항으로 요구되는 경우가 많습니다. 대개 이 기술은 해킹 시도에 대한 주요한 방어 메커니즘 역할을 수행하며 코드 주입, 리버스 엔지니어링, 고객 및 애플리케이션 사용자의 개인정보 변조와 같은 일반적인 공격으로부터 보호합니다.

코드 난독화는 실행 가능한 코드를 수정하여 이해, 해석, 실행에 사용할 수 없도록 하는 것입니다. 소스 코드 자체가 난독화되어 있어 제3자가 이해할 수 없고 실행만 가능하게 됩니다. 코드 난독화는 최종 사용자를 위한 애플리케이션 인터페이스 또는 코드의 의도된 출력에 영향을 미치지 않습니다. 이는 애플리케이션의 실행 코드를 손에 넣을 수도 있는 해커가 코드를 사용할 수 없도록 하기 위한 예방 조치일 뿐입니다.

코드 난독화가 필요한 이유

코드 난독화는 특히 오픈소스 애플리케이션에 유용하며, 이는 개인의 이익을 위한 코드를 해킹할 가능성을 크게 줄여줍니다. 애플리케이션을 리버스 엔지니어링하기 어렵게 만드는 방법을 통해 개발자는 제품의 지적 재산을 보안 위협, 무단 액세스, 애플리케이션 취약점 발견으로부터 보호합니다. 이 과정은 소스 코드에 대한 악의적인 접근을 제한하고, 구현된 난독화 기법의 종류에 따라 다양한 수준의 코드 보호를 보장합니다. 시간, 비용, 리소스 측면에서 난독화된 코드를 디컴파일하여도 이해하기 어렵기 때문에, 공격자는 코드를 더 이상 보유할 의미가 없어지게 됩니다.

코드 난독화 기술 유형

난독화는 여러 수준에서 작용하며, 의미 구조/유사 코드 구조 또는 데이터 구조/제어 흐름 수준에서 적용됩니다. 난독화 기술도 코드에서 수행하는 연산에 따라 달라집니다. 기본적으로 보안팀은 개발팀과 협의하여 코드에 어떤 수준의 난독화를 사용할지 결정합니다.

이 기술은 변수의 이름을 혼동하게 만들어 원래 사용 의도를 지능적으로 가려줍니다. 메소드와 변수는 서로 다른 표기법과 숫자를 사용하여 이름이 변경되므로 디컴파일러가 제어 흐름을 이해하기 어렵습니다. 이 난독화 기술은 Java, .NET, Android 플랫폼에서 개발된 애플리케이션 코드를 난독화하기 위해 주로 사용됩니다. 이는 레이아웃 난독화의 전반적인 범주에 속하며, 소스 코드를 직접 대상으로 하여 애플리케이션에 대한 방어 계층을 제공합니다.
이름 변경 난독화 메소드의 예
이 기술은 해커가 프로그램의 실제 의도를 파악할 수 없도록 코드에 사용되는 데이터 구조를 대상으로 합니다. 여기에는 프로그램을 통해 데이터가 메모리에 저장되는 방식과 저장된 데이터가 최종 출력을 표시하기 위해 해석되는 방식을 변경하는 것이 포함될 수 있습니다. 이 기술에는 다양한 변형이 있습니다.

이 방법은 프로그램에 데이터가 저장되는 방식을 변경합니다. 예를 들어, 배열은 많은 하위 배열로 분할될 수 있으며 프로그램의 다른 위치에서 참조될 수 있습니다.

이 방법은 데이터가 메모리에 저장되는 방식을 변경합니다. 예를 들어, 개발자는 변수의 저장 위치를 로컬 저장소와 전역 저장소 사이에서 이리저리 바꿀 수 있어서 변수 동작의 실제 특성을 난독화할 수 있습니다.

이 방법은 프로그램/코드 스니펫의 동작을 변경하지 않고 데이터의 순서를 변경합니다. 개발자는 변수 참조의 모든 인스턴스에 대해 호출되는 별도의 모듈을 개발하는 방식으로 이러한 방법을 구현합니다.

이 방법은 읽을 수 있는 문자열을 모두 암호화하여 읽을 수 없는 코드를 생성합니다. 따라서 프로그램이 실행될 때 런타임에 암호를 해독해야 합니다.

5. 제어/코드 흐름 난독화

제어가 코드베이스의 한 섹션에서 다른 섹션으로 전달되는 방법은 프로그램의 의도를 결정하는 데 중요한 역할을 합니다. 이 흐름을 혼란스럽게 하는 것은 일반적으로 해커를 혼동하게 만들 수 있는 방법 중 가장 효과가 좋은 방법입니다. 이 난독화 방법은 해커가 코드의 특정 흐름을 채택하는 방법과 이유를 해독하지 못하게 합니다.

이를 구현하는 가장 일반적인 방법 중 하나는 임의적이고 예상치 못한 구문을 사용하여, 절대로 실행되지 않는 불필요한 대소문자 전환 구문(데드 코드)을 추가하는 것입니다. 이러한 구문은 해커를 혼란스럽게 만드는 것을 목적으로 합니다. 프로그램 실행 구문의 순서에 대한 이러한 변경은 조건부 프로그램 성향을 가진 경우에 특히 유용합니다.
제어 흐름 난독화 예
디버그 정보는 종종 프로그램 흐름, 디컴파일, 재컴파일을 통해 프로그램의 결함 등에 대한 중요한 정보를 아는 데 유용합니다. 식별자, 줄 번호를 변경하거나 디버그 정보에 대한 액세스를 모두 중지하여 이러한 식별 가능한 정보를 마스킹하는 것이 중요합니다.

C, C++와 같은 비메모리 안전 언어를 사용하여 메모리 프로그래밍 오류를 이용하는 공격을 수행하는 것이 보편화 되었습니다. 검사되지 않은 배열의 액세스와 같은 오류로 인해 보안 취약성이 발생하는 경우가 많습니다. 주소 난독화 방법은 변환된 코드가 실행될 때마다 코드의 가상 주소와 프로그램의 데이터가 랜덤화되기 때문에 리버스 엔지니어링 과정을 어렵게 만듭니다. 이는 대부분의 메모리 오류 취약점을 이용한 공격의 효과를 장담할 수 없게 만들기 때문에, 공격 성공의 가능성을 낮추는데 효과적입니다.
주소 난독화의 예
개발자는 커스텀 알고리즘을 사용하여 문자열을 인코딩하고 원래 코드를 가져올 수 있는 디코더 기능을 제공합니다.

런타임에 인수를 예상하도록 프로그램을 변경할 수 있습니다. 이렇게 하려면 사용자가 변수의 암호를 해독할 코드와 암호 해독 키를 모두 가지고 있어야 합니다.

또한 보안 팀은 여러 가지 보안 위협으로부터 애플리케이션을 보호하기 위한 계층적 방어 방식을 구현하기 위해 둘 이상의 기술을 동시에 구현할 수도 있습니다.

난독화 방법의 품질 결정

코드 난독화의 성공 여부는 코드 변환 품질을 결정하는 몇 가지 매개변수에 달려 있습니다. 난독화 기술의 품질은 다음 요소의 조합에 의해 결정되어야 합니다.

난독화된 코드는 가장 취약한 부분에 의해 파괴될 수 있습니다. 따라서 난독화를 시도했을 때 난독화된 코드에 의해 어느 정도의 저항이 나타나는지 확인하는 것이 품질을 확인하는 가장 좋은 방법입니다. 코드를 해독하는 데 더 많은 노력과 시간이 필요할수록 난독화가 더 잘 된 것입니다.

이는 난독화된 코드가 원본 코드와 얼마나 다른지 보여줍니다. 제어 흐름의 깊이, 중첩 수준, 상속 수준은 소스 코드의 복잡성을 증가시키는 데 사용됩니다. 코드 난독화는 이러한 복잡성을 증가시킵니다.

공격자가 난독화된 부분을 혼동하도록 원본 소스 코드와 구분할 수 없어야 합니다. 이는 공격자가 리버스 엔지니어링을 수행하기 어렵게 만듭니다. 이 요인은 상황에 따라 다르며, 종종 자동화된 리버스 엔지니어링 공격을 피하는 데 중요한 요소입니다.

이것은 난독화되지 않은 코드에 비해 난독화된 코드를 실행하는 데 소요된 시간과 자원으로 정의됩니다. 난독화된 코드를 구현할 때 몇 가지 성능 고려 사항을 염두에 두어야 합니다. 지능적으로 난독화된 코드는 신중한 기술을 사용하여 불필요하게 비용/자원을 지출하지 않고 공격자를 혼란스럽게 하는 목적을 제공해야 합니다.

난독화가 코드 성능에 영향을 미치는가?

코드 난독화는 코드 구조에 큰 변화를 가져오므로 애플리케이션의 성능에도 큰 변화를 가져올 수 있습니다. 일반적으로 이름 변경 난독화는 변수, 메소드, 클래스만 변경되므로 성능에 거의 영향을 미치지 않습니다. 반면에 제어 흐름 난독화는 코드 성능에 영향을 미칩니다. 의미 없는 제어 루프를 추가하여 코드를 따르기 어렵게 만드는 것은 종종 기존 코드베이스에 오버헤드를 추가하기 때문에 구현해야 할 필수 기능이지만 주의가 필요합니다.

코드 난독화의 경험 법칙은 원본 코드에 적용되는 기술의 수가 많을수록 해독에 더 많은 시간이 소비된다는 것입니다. 기술 및 컨텍스트화에 따라 코드 성능에 미치는 영향은 일반적으로 10%에서 80%까지 다양합니다. 따라서, 위에서 논의한 요소인 효과와 복원력은 코드 난독화의 지침이 되어야 합니다(난독화 이름 변경 제외). 어떤 종류의 난독화도 기회비용이 있기 때문입니다.

위에서 설명한 대부분의 난독화 기술은 코드 성능을 중요시하며, 애플리케이션에 가장 적합한 기술을 선택하는 것은 개발 및 보안 전문가의 몫입니다. 바이너리 링크와 같은 기술은 여러 입력 라이브러리를 더 적은 수의 출력 라이브러리로 결합합니다. 이렇게 하면 애플리케이션이 가벼워지고 해커가 앱 코드를 조작할 수 있는 인터페이스가 줄어들 수 있지만, 코드 실행을 위해 런타임에 디컴파일을 하는 것은 번거롭고 종종 코드 실행 시간을 늘립니다. 이러한 균형은 보안 로드맵에서 고려하여 적절한 보호 계층을 추가하는 동시에 실제 환경에 코드를 실행할 수 있도록 사전에 결정해야 합니다. 즉, 난독화가 더 강력하고 복잡할수록 성능 오버헤드는 더 커집니다.

코드 난독화의 이점

보안 팀이 오픈 소스 플랫폼에서 호스팅되는 애플리케이션의 코드 난독화를 구현하는 방식에서 특히 많은 이점이 발생합니다. 신뢰할 수 없는 환경에서는 공격자가 코드를 검토하고 애플리케이션을 분석하기 어렵게 만드는 난독화된 애플리케이션을 배포하는 것이 항상 더 좋습니다. 이 프로세스를 통해 불법적인 이익을 얻기 위해 가짜 애플리케이션을 디버깅하고 변조 및 재배포하려는 범죄자가 이용할 수 있는 허점을 남기지 않을 수 있습니다. 이러한 보호 레이어는 특히 비즈니스에 치명적인 고객의 개인정보를 처리하는 애플리케이션에 필수적입니다.

또한 대부분의 난독화기는 유용하지 않은 메타데이터, 사용되지 않는 불필요한 코드 또는 중복 코드를 제거하여 코드를 최적화합니다. 이러한 최소화를 통해 컴파일 프로세스 속도가 빨라지고 코드 실행 속도가 빨라지며 결과도 빨라져 코드 실행 속도도 빨라집니다.

코드 난독화의 또 다른 주요 이점은 애플리케이션을 리버스 엔지니어링하기 어렵게 만든다는 것인데, 오픈 소스 플랫폼에 코드를 구축하는 것을 더 이상 걱정할 필요가 없게 됩니다. 반복적인 코드 난독화는 여러 개의 보안 레이어를 적용하는 경우에 특히 많이 사용됩니다. 이 기술에서 보안 팀은 이전 알고리즘의 출력이 다음 줄에 입력 역할을 하는 하나 이상의 난독화 알고리즘을 적용합니다. 이러한 방식으로 공격자는 프로그램의 원래 의도와 프로그램에 표시되는 내용에 대해 혼동할 수 있으며, 결과적으로 해독 시도가 실패할 수 있습니다.

코드 난독화는 난독화된 코드를 해독하는 데 심각한 노력, 기술, 자원, 시간이 필요하기 때문에 위협을 처리하고 재미로 해킹하는 사람들을 제거하는 실용적인 방법입니다. 해커가 성공하더라도, 해독된 부분은 원래 코드와 많이 닮지 않을 수 있습니다. 실효성 측면에서 실제 측정값을 찾기는 어렵지만 대부분의 기업은 보안을 위해 코드를 난독화하며 사유화합니다.

코드 난독화의 단점

모든 난독화 기술이 코드 성능에 영향을 미치기는 하지만 그 정도는 미미합니다. 난독화된 코드 부분과 난독화된 알고리즘의 복잡성에 따라 코드를 해독하는 데 상당한 노력이 수반될 수 있습니다.

자동화된 해독기 대부분은 난독화된 애플리케이션을 리버스 엔지니어링할 수 있습니다. 난독화는 리버스 엔지니어링을 지연시킬 수 있을 뿐 불가능하게 만드는 것은 아닙니다.

일부 안티바이러스 소프트웨어는 난독화된 코드가 있는 사이트를 방문할 때 사용자에게 경고를 보낼 수도 있는데, 이는 난독화가 악성 코드를 숨기기 위해 사용될 수도 있기 때문입니다. 이는 사용자가 합법적인 애플리케이션을 사용하는 것을 막고 신뢰할 수 있는 회사에서 멀어지게 될 수 있습니다.

코드를 난독화해야 하는가?

코드 난독화의 장단점을 고려할 때 적절한 질문은 '코드 난독화를 적용해야 하는가'입니다. 짧게 대답하자면 '예'입니다. 코드 난독화는 최소한 프로그램을 이해하기 어렵지만 기능을 그대로 유지하는 코드 조각으로 변환합니다. 리버스 엔지니어링 및 사이버 범죄자에게 제기되는 문제는 코드를 난독화하기에 충분한 이유입니다. 강력한 바이너리 수준의 난독화는 코드 미니화로 인해 프로그램 성능에 이점을 제공하므로 전략적인 코드 난독화를 구현해야 할 충분한 이유가 됩니다.

더 나은 결과를 위해 보안 전문가들은 코드 교체, 코드 변조 탐지, 자가 , 워터마크, 암호화, 서버측 보호 등과 같은 다른 보안 메커니즘과 함께 코드 난독화를 구현하도록 권장합니다. 이렇게 하면 공격자는 제시간에 공격 행위를 완료하기가 어려워집니다. 성능에 민감한 코드를 식별하고 강력한 난독화 기술이 적용되는 경우 성능에 영향을 줄 수 있는 코드 부분을 표시할 수 있도록 애플리케이션의 런타임 동작을 분석하는 난독화 도구가 있습니다.

코드 난독화 도구

Android Studio에는 ProGuard 및 DexGuard와 같은 몇 가지 도구가 있습니다. Java의 오픈 소스 난독화기에는 클래스 파일 축소 프로그램인 ProGuard가 포함되며 사용하지 않는 클래스를 제거합니다. 또한 나머지 클래스의 이름을 의미 없는 이름으로 바꾸는 데 도움이 됩니다. 결과로 생성된 JAR 파일은 리버스 엔지니어링이 어렵습니다.

이것은 Python 스크립트를 난독화하고 난독화된 스크립트를 고정 머신 스크립트에 바인딩하는 명령줄 인터페이스 도구입니다. 런타임 동안 각 함수의 co_code와 상수를 보호하여 Python 스크립트의 난독화를 도와줍니다. 또한 실행 중에 난독화된 스크립트의 라이센스 파일을 확인합니다. 개발자는 이를 통해 원래의 Python 스크립트를 난독화된 스크립트로 원활하게 교체할 수 있습니다.

JavaScript 난독화

이 도구는 JavaScript를 난독화하고, 기존 JS 파일을 전혀 새로운 표현식으로 변환하여 기능을 변경하지 않고서는 이해하기 어렵고 재사용할 수 없게 만드는 것으로 유명합니다. 콘솔 출력을 비활성화하여 디버그 보호, 변수 및 함수 이름 변경, 문자열 제거, 비활성 코드 주입, 자가 방어 기능과 같은 다양한 변환을 수행합니다. 사용자가 JS 파일을 업로드하고 필요한 난독화 수준에 따라 적절한 옵션을 선택할 수 있는 사용이 간편한 인터페이스를 갖추고 있습니다. 전역 변수 이름 바꾸기, 문자열 배열 회전 또는 섞기, 문자열 배열 인코딩, 모든 문자열을 유니코드 표현식으로 변환하여 이스케이프 시퀀스에 유니코드 작업을 수행하는 등의 다양한 작업을 수행할 수 있습니다. 또한 제어 흐름 평탄화도 포함되어 프로그램 소스 코드의 이해를 방해합니다. 그러나 이러한 변환은 런타임 속도를 약 1.5배 느리게 하여 코드 성능에 영향을 미칩니다.

이것은 난독화된 JavaScript 코드를 디버깅하는 데 도움을 주는 또 다른 도구입니다. 별도의 소스 맵은 프로덕션 환경에서 코드를 디버깅하는 데 유용할 수 있으며, 개발 팀은 소스 맵을 외부에서는 알 수 없는 비공개 위치에 업로드할 수 있습니다.

CLI 모드에서 작동하며 JS 코드를 최소화, 난독화, 복원(beautify)하기 위한 다양한 옵션이 있습니다. JS에서 AST(추상 구문 트리)를 생성하는 파서, 변수, 메소드 이름을 단일 문자로 줄이는 맹글러 구성 요소와 변환을 사용하여 AST를 작은 것으로 최적화하는 압축기 구성 요소로 구성됩니다.

JavaScript의 한 가지 단점은 완전한 해독 방지가 될 수 없다는 것입니다. JS는 기본적으로 브라우저에서 실행되며 브라우저의 JS 엔진이 리소스를 렌더링하기 위해 JS를 읽어야 하기 때문입니다. 따라서 이 캡처 포인트는 생략할 수 없습니다.

Naneu의 PHP 난독화기

이것은 PHP를 파싱하고 변수 이름과 메소드를 난독화하는 난독화 도구입니다. 이 라이브러리는 UnPHP와 같은 해독기로부터 PHP를 보호하며 네이티브 PHP 환경에서 코드를 실행하는 데 유용합니다.

이 도구는 PHP Parser 4.x를 사용하여 PHP 코드를 구문 분석하며 GIT 클론으로 사용할 수 있습니다. 이로 인해 PHP 컴파일러는 재배포 코드를 이해할 수 있지만 소스 코드를 변조하는 사람은 이해할 수 없습니다. 제어 흐름 난독화를 구현하고, 주석, 들여쓰기, 문자열 리터럴을 모두 제거하고, 프로그램 디렉토리 전체를 반복적으로 난독화하며, 이름 변경 난독화를 구현합니다.

PHP Compactor 라이브러리는 PHP 코드베이스를 간결화 및 압축하는 또 다른 오픈 소스 라이브러리 난독화 도구입니다. 공백, 빈 줄, 주석이 제거되고 문자열이 인코딩됩니다.

HTML은 HTML 태그를 사용하여 복원(beautify)된 단순히 마크업된 텍스트입니다. HTML을 난독화하는 것은 보통 JavaScript로 변환하거나, 각 HTML 줄을 해당하는 숫자 코드로 변환하거나, 두 가지 메소드를 조합하여 수행합니다. 이것은 종종 효과적이지만, 변환의 각 단계에서 코드 오버헤드가 추가되기 때문에 순수 HTML의 무시할 수 있는 크기를 2~3배 증가시킵니다.

기존의 보안 접근 방식은 주로 서버측 보안에 중점을 두기 때문에 HFO(HTML Field Obfuscation)는 무시되는 경우가 많습니다. 앱에는 몇 가지 보안 취약성이 있습니다. Man-In-The-Browser와 같은 공격은 스크립트를 주입하여 사용자 이름 및 암호와 같은 중요한 필드에 연결하고 사용자가 입력할 때 자격 증명을 탈취합니다. 부정행위 방지 애플리케이션은 HFO를 사용하여 스크립트가 실행되지 않도록 합니다.

이 접근 방식은 대상 필드를 식별하는 데 브라우저 기반 애플리케이션을 사용하는 공격을 교란하도록 설계되었습니다. 미끼 필드는 필드 값을 암호화하는 것 외에도 공격자의 주의를 분산시키는 데에도 사용됩니다.

C 코드를 난독화하는 가장 좋은 방법은 컴파일하여 바이너리만 배포하는 것입니다. 이렇게 배포된 코드를 원래 형태로 리버스 엔지니어링하는 것은 매우 어렵습니다. 디컴파일 후 C/C++ 기계어 출력은 자체 난독화 되어 있어, 일정 수준의 난독화 기능이 내장되어 있다고 할 수 있습니다. 이러한 특징은 지적 재산에 대한 기술적 보호에 도움이 된다고 할 수 있습니다.

ANTLR(Another Tool for Language Recognition)은 C/C++ 소스 코드를 입력 파일로 가져와서 입력의 암시적 계층을 캡처하여 AST로 변환하는 파서 생성기입니다. 얻어진 구조에 기초하여, 각 노드는 구조의 의미 있는 구성요소를 나타냅니다. 이는 노드를 재구성하고 난독화 후 성능과 복원력을 검토함으로써 난독화 알고리즘을 구현하는 기반이 됩니다.

C/C++에 비해 C# 코드는 리버스 엔지니어링이 더 쉽습니다. 그 이유는 C# 어셈블리에 C++에 없는 메타데이터가 포함되어 있기 때문입니다. 또한 C#는 C/C++보다 소스 코드로 디컴파일하기가 쉬운 중간 언어로 매핑됩니다. 자동 난독화 도구의 일부 기능에는 사용자가 정의할 수 있는 보존된 이름 목록, C#에 대해 미리 정의된 예약 이름 목록, 주석 제거가 있습니다.

Crypto Obfuscator는 정교한 난독화 기술을 사용하여 C# 코드를 리버스 엔지니어링으로부터 보호합니다. 여기에는 기호 이름을 인식할 수 없는 이름으로 바꾸기, 중요한 메소드를 숨기기 위한 외부 메소드로부터 호출 숨기기, 문자열 암호화, 제어 흐름 난독화 등이 포함됩니다.

결론

요컨대, 코드 난독화만으로는 복잡한 보안 위협을 처리할 수 없습니다. 코드를 해독하는 것은 어렵지만, 자동화된 도구를 이용할 수 있고 해커도 전문 지식을 갖고 있으므로 리버스 엔지니어링이 불가능하지는 않습니다.

따라서 코드 난독화는 모든 애플리케이션 보안 요구를 위한 올인원 솔루션이 아닙니다. 개발 팀은 보안 요구 사항, 애플리케이션의 특성 및 성능 벤치마크에 따라 신뢰할 수 없는 환경에서 코드를 보호하기 위해 다수의 코드 난독화 기술을 구현하는 것을 고려할 수 있습니다. 각 기술의 장단점을 고려하여 이러한 작업을 수행해야 합니다. 이 전략은 암호화, RASP, 데이터 보존 정책 등과 같은 다른 AppSec 이니셔티브를 보완해야 합니다. 앱실링(AppSealing)과 같은 RASP 도구와 함께 사용하면 현재의 보안 위협에 대한 강력한 해결책을 구축할 수 있습니다.

# data[].attributes.attachment_link.title
코드 난독화 : 코드 보안을 위한 포괄적인 가이드 - AppSealing

# data[].attributes.attachment_link.description
코드 난독화는 애플리케이션을 해킹으로부터 보호하기 위해 가장 많이 사용되는 애플리케이션 보안 기술 중에 하나입니다. 이는 전 세계 보안 전문가들이 가장 권장하는 AppSec 이니셔티브 중 하나이며, 애플리케이션의 최소 보안 사항으로 요구되는 경우가 많습니다. 대개 이 기술은 해킹 시도에 대한 주요한 방어 메커니즘 역할을 수행하며 코드 주입, 리버스 엔지니어링, 고객 및 애플리케이션 사용자의 개인정보 변조와 같은 일반적인 ...

# data[].attributes.headline
3. 소프트웨어 보호를 위한 기술적 조치 유형

# data[].attributes.subject
3. 소프트웨어 보호를 위한 기술적 조치 유형

# data[].attributes.body
1. 중복 코드 심기
저작권 침해를 쉽게 증명할 수 있는 방법 한 가지는 의도적으로 코드 내에 중복 구성 요소를 심는 것입니다. 누군가가 코드를 복제했따고 의심이 될떄 중복 구성 요소를 찾을 수 있으면, 코드 복제가 이뤄졌다는 강력한 증거가 됩니다.
2. ID 기반 라이선스 솔루션 사용
최종 사용자가 소스 코드에 액세스하는 것을 막을 수는 없더라도 ID기반 라이선싱 솔루션을 사용하면 프로그램을 사용하는 사람에 대해 가능한 한 많은 정보를 얻을 수 있습니다. ID 깁나 라이선싱 솔루션은 사용자 이름과 비밀번호 같은 특정 자격 증명을 사용하는 사용자에게만 액세스를 허용합니다. 라이선싱 관리 시스템을 사용함으로써 누가 언제 어떤 제품을 사용하는지 추적 관리하는데 유용한 여러 데이터에 액세서 할 수 있습니다.

# data[].attributes.attachment_link.readable_text
시간과 노력, 비용을 쏟아부어 훌륭한 소프트웨어를 개발하고 시장에 출시할 준비가 되었다면, 이제 이 소프트웨어를 어떻게 보호할 것인지 고민해야 합니다.
소프트웨어 보호가 필요한 이유

기업 수익을 저해할 수 있는 저작권 침해, 무단 복제, 또는 소프트웨어의 기타 무단 사용

기업 데이터나 고객 데이터를 위험에 빠뜨리는 보안 침해

물리적인 형태가 있는 제품을 판매하는 경우에는 제품을 보호하는 것이 그렇게 복잡하지는 않습니다. 잠금 장치와 열쇠로 제품을 보관하여 나쁜 의도를 가진 사람이 제품에 접근하지 못하도록 하는 것입니다.

소프트웨어는 다릅니다. 보호되지 않는 소프트웨어를 승인 없이 여러 장치에서 복사, 복제하거나 사용하기는 매우 쉽습니다. 또한, 고객이 소프트웨어를 사용해 민감한 데이터를 저장한 경우, 해커가 침투해 수집하기 쉽습니다.

소프트웨어를 잘 보호한다는 것은 고객이 정보가 안전하리라 믿고 제품을 사용할 수 있다는 것을 의미합니다.

소프트웨어 보호 유형을 세 가지 살펴보겠습니다.

소프트웨어 저작권 보호

저작권이란 창작물을 복제할 수 있는 권리입니다. 즉, 창작물 도용을 방지하여 원저작물의 창작자를 보호하는 지적 재산권의 한 유형입니다. 저작권은 아이디어나 개념을 보호하는 것이 아니라 아이디어나 개념의 표현만을 보호한다는 점에 유의해야 합니다. 소프트웨어에서 이는 실제 코드를 의미합니다.

소프트웨어 저작권 보호란

소프트웨어 저작권 보호란 소프트웨어를 복제하여 불법적으로 사용하지 못하게 하는 것입니다.

이론적으로 소프트웨어는 유형 매체에 코드가 고정되는 즉시 저작권법의 보호를 받게 되므로 저작권법이 자동으로 소프트웨어 저작권을 보호한다고 볼 수 있습니다. 그러나 이는 실제로 그렇게 효과적이지가 않습니다. 다른 사람이 소프트웨어를 복제할 수 없다는 것을 의미할 뿐입니다. 적어도 미국에서는 미 저작권청 에 먼저 등록하지 않는 한, 저작권 침해를 고소할 수도 없습니다.

등록했더라도 소송을 유일한 소프트웨어 저작권 보호 방법으로 삼는 것은 좋은 전략이 아닙니다. 제품을 복제한 사람을 실제로 잡아서 소송을 제기하고 법원에서 소프트웨어를 무단 복제했음을 입증하는 데 상당한 돈과 시간을 소비해야 한다는 뜻이기 때문입니다.

이는 제한된 예산으로 .Net 애플리케이션이나 기타 오픈소스 개발 프로그램의 복제를 방지하고자 하는 소규모 소프트웨어 개발자에게 특히 큰 문제입니다. 저작권 침해를 발견했을 때 법적 조치를 취하는 것은 차치하고 저작권 침해를 모니터링할 수단조차 이들에게는 없습니다.

그렇다면 더욱 효과적인 소프트웨어 저작권 보호 전략에는 무엇이 있을까요?

저작권 침해를 쉽게 증명할 수 있는 방법 한 가지는 의도적으로 코드 내에 중복 구성 요소를 심는 것입니다. 누군가가 코드를 복제했다고 의심될 때 중복 구성 요소를 찾을 수 있으면, 코드 복제가 이뤄졌다는 강력한 증거가 됩니다. 다시 한 번 말하자면, 이 소프트웨어 저작권 보호 전략에는 소송이 수반되지만 적어도 법무팀의 일이 더 수월해집니다.
누가 소스 코드를 볼 수 있는지 조심하기
소프트웨어 공급기업은 항상 모범 사례를 따르면서 권한 있고 신뢰할 수 있는 사람만 소스 코드에 액세스하도록 해야 합니다. 직원을 주의 깊게 검증하고 아웃소싱할 때는 신뢰 수준이 높은 추천 자료를 확보합니다.
ID 기반 라이선스 솔루션 사용
최종 사용자가 소스 코드에 액세스하는 것을 막을 수는 없더라도 ID 기반 라이선싱 솔루션을 사용하면 프로그램을 사용하는 사람에 대해 가능한 한 많은 정보를 얻을 수 있습니다.

ID 기반 라이선싱 솔루션은 사용자 이름과 비밀번호 같은 특정 자격 증명을 사용하는 사용자에게만 액세스를 허용합니다. Sentinel EMS 와 같은 라이선싱 관리 시스템을 사용하면 누가 언제 어떤 제품을 사용하는지 추적 관리하는 데 유용한 여러 데이터에 액세스할 수 있습니다.

SaaS 보호

SaaS(Software as a Service)는 점점 더 인기를 얻고 있는 소프트웨어 제공 모델입니다. 소프트웨어를 한 번 구입해 설치하고 지정된 장치에만 사용하는 대신, 사용자는 구독제로 소프트웨어를 구입하고 원격 서버를 통해 액세스하여 사용할 수 있습니다. 이 모델은 비용 효율적이고 유연한 편입니다. 고객은 여러 장치에서 소프트웨어에 액세스할 수 있으며 항상 최신 버전의 소프트웨어를 사용할 수 있습니다.

SaaS 보호란

SaaS 보호에는 두 가지 구성 요소가 있습니다.

1. 프로그램 자체의 무단 사용 방지 - 무단 복제·절도로부터 공급기업 보호
2. 최종 사용자가 프로그램에 입력한 데이터 보안 - 데이터 침해로부터 고객 보호

SaaS 보호는 이 두 가지 구성 요소를 고려하는 것 외에도 해커가 악용할 수 있는 '진입 지점'이 더 많기 때문에 온프레미스 소프트웨어를 보호하는 것보다 약간 더 복잡합니다. 최근까지 매우 민감한 데이터를 처리하는 많은 조직에서는 보안에 대한 우려로 SaaS 프로그램을 사용하기를 꺼려왔습니다. 데이터를 클라우드에 업로드하고 원격 서버에 저장해야 한다는 점 때문에 데이터 침해에 훨씬 더 취약해 보이는 모델이었기 때문입니다.

다행히 오늘날에는 이용 가능한 기술로 SaaS 데이터를 매우 안전하게 보호할 수 있습니다.

견고한 SaaS 보안 구축

SaaS 공급사라면 잠재 고객에게 데이터의 안전을 보장할 수 있어야만 하며, 이는 제품에 대한 신뢰를 줍니다. 게다가 일부 국가에는 고객 데이터 보안을 규제하는 의무 요건이 있습니다. 따라서 사업을 운영하려면 이러한 규정을 준수해야 할 수도 있습니다.

그렇다면 SaaS를 어떻게 보호할 수 있을까요?

최종 사용자 교육

가장 먼저 이해해야 할 것은 SaaS에 대한 보호는 양방향에서 이루어져야 한다는 점입니다. 최종 사용자에게 최고의 보안 수준을 제공해야 하지만 최종 사용자가 보안에 큰 관심이 없다면 데이터 침해를 방지하기 위해 할 수 있는 일은 많지 않습니다. 따라서 데이터 보안에 관한 사용자 교육 측면에서 할 수 있는 일을 하는 것이 중요합니다.

모든 데이터 암호화

데이터 암호화는 SaaS 보호의 핵심 단계입니다. 데이터를 암호화하면 어떤 프로세스에서 데이터가 유출되더라도 권한 없는 사람이 해석할 수 없는 형태로 나타나게 됩니다.

강력한 비밀번호 요구

지난 몇 년간 사람들은 비밀번호가 복잡해지는 것에 대해 불평해왔지만 공급업체가 더 복잡한 비밀번호를 요구하는 이유가 있습니다. 해커가 추측하기가 훨씬 더 어렵기 때문입니다. 보안 전문가 Brian Krebs 에 따르면 이상적인 비밀번호는 다음과 같습니다.

가능한 한 긴 비밀번호 - 최소 8~10자

일련의 단어를 포함하는 비밀번호 - 숫자나 대문자, 특수 문자도 좋지만 길이가 더 중요하고 문장이면 기억하기가 더 쉽습니다.

'비밀번호'와 같은 흔한 단어, '1234' 또는 'qwerty'와 같은 키보드 조합, 생일, 전화번호, 애완동물 이름 등과 같은 기타 환경이나 소셜 미디어에서 검색할 수 있는 정보를 피합니다.

사이버 보안 기업 고용

확실하지 않을 때는 항상 전문가와 상의하는 것이 좋습니다. 탈레스 Sentinel은 SaaS 제공기업의 요건에 특별히 맞춘 사이버 보안·라이선스 관리 솔루션 패키지를 제공합니다.

보호 키

도난, 무단 복제 및 액세스로부터 소프트웨어를 보호하는 가장 좋은 방법 중 하나는 보호 키를 사용하는 것입니다.

보호 키란

보호 키는 권한 없는 사용자의 소프트웨어 액세스나 복제 시도를 방지하는 코드 유형입니다. 소프트웨어를 키로 보호하면 키가 있는 사용자만 자신의 장치에서 소프트웨어를 실행할 수 있습니다.
보호 키에는 세 가지 유형이 있습니다.
하드웨어 보호 키

동글이라고도 불리는 하드웨어 보호 키는 소프트웨어 액세스를 활성화할 때 연결해야 하는 소형 기기입니다. 최종 사용자에게 물리적 장치를 발급해야 하고 사용자는 장치를 가지고 있을 때만 소프트웨어를 실행할 수 있는 유형이므로 아래의 다른 솔루션보다는 편리성이 떨어집니다. 그러나 일부 사용자는 보안상의 이점 때문에 이 유형의 보호 키를 선호합니다.

소프트웨어 보호 키

소프트웨어 보호 키는 일종의 소프트웨어로, 특정 장치에 설치하고 이 장치를 이용해 보호를 받는 소프트웨어에 액세스하게 됩니다. 사용자는 소프트웨어와 키를 함께 다운로드하고 즉시 액세스할 수 있습니다.

클라우드 기반 보호 키

이 모델을 사용하면 사용자 장치에 보호 키를 다운로드하여 설치하는 대신, 요청이 있을 때마다 최종 사용자의 장치에 키를 전달하고 작업이 끝나면 원격 서버로 반환하게 됩니다. 여러 장치에서 여러 사용자가 다양한 시간대에 키를 사용할 수 있으므로 유연성이 훨씬 뛰어납니다.

탈레스 Sentinel 소프트웨어 보호 솔루션

탈레스 Sentinel은 소프트웨어 저작권 보호 솔루션이나 SaaS 보호 솔루션, 보호 키와 같이 유연하고 맞춤 구성 가능하며 광범위한 소프트웨어 보호 솔루션을 제공합니다. 탈레스 Sentinel이 소프트웨어 수익화 도구 를 통해 소프트웨어를 보호하는 방법을 알아보시기 바랍니다.

# data[].attributes.attachment_link.keywords[]
소프트웨어 저작권 보호

# data[].attributes.attachment_link.title
소프트웨어 저작권 보호 요약 안내서

# data[].attributes.attachment_link.description
시간과 노력, 비용을 쏟아부어 훌륭한 소프트웨어를 개발하고 시장에 출시할 준비가 되었다면, 이제 이 소프트웨어를 어떻게 보호할 것인지 고민해야 합니다. 소프트웨어 보호가 필요한 이유 기업 수익을 저해할 수 있는 저작권 침해, 무단 복제, 또는 소프트웨어의 기타 무단 사용 기업 데이터나 고객 데이터를 위험에 빠뜨리는 보안 침해 물리적인 형태가 있는 제품을 판매하는 경우에는 제품을 보호하는 것이 그렇게 복잡하지는 않습니다.

# data[].attributes.body
1)난독화
코드 난독화는 프로그래밍 언어로 작성된 코드에 대해 읽기 어렵게 만드는 작업이다. 대표적인 사용 예로는 프로그램에서 사용된 아이디어나 알고리즘 등을 숨기는 것 등이 있다. 코드 난독화 과정을 거친 코드를 특정 기준에 의해 심사하는 대회도 있다.
코드 난독화는 프로그램 코드의 일부 또는 전체를 변경하는 방법 중 하나로, 코드의 가독성을 낮춰 역공학에 대한 대비책을 제공한다. 난독화를 적용하는 범위에 따라 소스 코드 난독화와 바이너리 난독화로 나눌 수 있다. 또한, 난독화의 목적에 따라 각각 기술의 무단복제와 불법으로 침입하려는 프로그램을 방지하는 것으로 나뉘기도 한다.
2)소프트웨어 암호화
소프트웨어 암호화는 소프트웨어 도구를 사용하여 데이터를 암호화한다.암호화는 공용 키 또는 대칭 키 암호화를 기반으로 삼으며, 일반적으로 암호를 사용한다.
이는 추가 하드웨어가 필요하지 않고 비용이 적다는 장점이 있으나 암호 해독 소프트웨어에 의한 공격에 취약할 수 있다는 단점이 있다.