오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW...

30
© Black Duck 2017 Black Duck Software Korea 오픈소스 라이선스

Transcript of 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW...

Page 1: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

Black Duck Software Korea

오픈소스 라이선스

Page 2: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

▣ 목차

1. OSS 개념 및 라이선스 이해

2. OSS 관리와 위반사례

3. Black Duck Protex를 이용한 라이선스 검증

Page 3: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

일반적인 오픈소스 코드

See http://www.astray.com/acmemail/

acmemail is Copyright (c) 1997-2000 Leon Brocard. All rights reserved.portions Copyright (c) 2001 Peter Watkins

You may distribute acmemail under the terms of either the GNU General Public License as published bythe Free Software Foundation (either version 2 of theLicense or at your option any later version) or theArtistic License. You should have received a copy of both licenses along with this program.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even theimplied warranty of MERCHANTABILITY or FITNESS FOR APARTICULAR PURPOSE. See the GNU General Public LicenseFor more details. Version: see acme_version() in AcmemailConf.pm

Include any library directories

use lib '.';#use lib '/lib/place‘;

▣ 오픈소스의 정의

▣ 오픈소스와 상용 소프트웨어의 가장 큰 공통점은 저작권이 있다는 것

▣ 다만, 저작권리의 행사방식이 가장 큰 차이점이며 일반적인 오픈소스 저작권자들은 소스코드를 공개하고 누구나 복제, 설치, 사용, 변경, 재배포가 가능하도록 저작권리를 행사하고 있음

1. OSS 개념 및 라이선스 이해

Page 4: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

http://opensource.org/

’17년 현재 Apache,

MIT 등 총 78개의

OSI 인증 라이선스

자유로운 재배포

원시코드 제공

파생저작물

저작자의 소스코드 원형 유지: 최초 원시코드 & 패치

개인 및 단체에 대한 차별 금지

사용 분야에 대한 차별 금지

라이선스의 배포

특정 제품에만 유효한 라이선스 금지

다른 소프트웨어를 제한하는 라이선스 금지

라이선스의 기술 중립성

▣ Open Source Initiative 오픈소스 정의 1. OSS 개념 및 라이선스 이해

Page 5: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

• 상용 라이선스들: 사용자는 소스코드를 배포하지 않음

• Microsoft Office는 비공개 상용 라이선스

• 오픈소스 라이선스들: 사용자는 소소코드를 배포해야 함

• 관대한(Permissive) 라이선스들: 사용자는 오픈소스 컴포넌트를 탑재할 수

있으며, 사용자의 코드는 상용 비공개로 사용할 수 있음

• Apache. BSD

• 상호기여(Reciprocal) 라이선스들: 사용자는 오픈소스 컴포넌트를 탑재할 수

있으며, 사용자의 코드는 오픈소스가 되어야 함

• GPL, LGPL

1. OSS 개념 및 라이선스 이해▣ 상용(Proprietary) vs 오픈소스 라이선스들

Page 6: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

개발되는 방식에 초점을 두는 실용적 접근

산업계는 물론이고 개발자에게도 경제적인

보상을 할 수 있어야 한다고 주장

“보는 눈만 많다면, 어떤 버그라도 쉽게 잡을 수

있다"

프로그램을 실행할 수 있는 자유

프로그램을 채택하고 연구할 수 있는 자유

프로그램을 재 배포 할 수 있는 자유

프로그램을 개선할 수 있는 자유

Free Software

Open Source Software

Eric Raymond, 1998

Richard Stallman, 1983

▣ 라이선스 개념 분류

오픈소스와 비오픈소스의 차이

Non-Open Source Software Open Source Software

1. OSS 개념 및 라이선스 이해

Page 7: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

▣ 서로 다른 라이선스의 조합일 경우-각각의 오픈소스 라이선스 의무사항이 서로 상충하여 양립할 수 없다면, 배포가 불가능

MPL 2.0의 경우 secondary License를 GPL로 정의하여 GPL로 확대가능

▣ 라이선스 양립성(Compatibility)

MPL 1.0(Mozilla public License)다른 소스 코드와 결합하여 사용할 경우수정된 MPL 파일을 반드시 MPL과 동일한 조건으로 공개

GPL 2.0(General public License)다른 소스 코드와 결합하여 사용할 경우결합하는 모든 소스 코드를 GPL과 동일한조건으로 공개

+ =GPL 2.0

1. OSS 개념 및 라이선스 이해

Page 8: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

라이선스의 특징 및 의무사항 BSD Apache GPL2 GPL3 LGPL2 MPL CDDLCPL/EPL

복제.배포.수정의 권한 허여

배포 시 라이선스 사본 첨부

저작권 고지 사항 또는 Attribution 고지사항 유지

배포 시 소스코드 제공의무(Reciprocity)와 범위

* * * file file Module

조합저작물(Larger Work)작성 및 타라이선스 배포허용

수정 시 수정내용 고지

명시적 특허라이선스의 허여

라이선시가 특허소송 제기 시라이선스 종료

이름,상표,상호에 대한 사용제한

보증의 부인

책임의 제한

*GPL : 수정 및 사용된 파일, 라이브러리, Shared Memory 형태로 결합된 프로젝트*LGPL : 수정 및 사용된 파일 형태로 결합된 프로젝트

▣ 라이선스 공통 의무사항

▣ 전 세계 2,500여 종의 OSS 라이선스는 공통적인 의무사항의 조합으로 구성되어 있음

1. OSS 개념 및 라이선스 이해

Page 9: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

▣ 오픈소스 라이선스 확인 방법

▣예) Github repository▣ LICENSE file, README.md 등의 파일에 라이선스를 고지

1. OSS 개념 및 라이선스 이해

Page 10: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

▣ 오픈소스 라이선스 확인 방법

▣예) Homepage

1. OSS 개념 및 라이선스 이해

Page 11: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

▣ 목차

1. OSS 개념 및 라이선스 이해

2. OSS 관리와 위반사례

3. 라이선스 FAQ

Page 12: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

해결 방법 위반 피해 위험 심각도

소프트웨어 공개,

합의

코드 공개를 통한 대외비 및 지적재산누출, 때로는 해당 사업철수, 리콜, 손해배상 등의 불이익을 당하게 됨

매우 심각

충돌 부분 삭제

기능상 오류가 발생하게 되어 품질 테스트를 통과하지 못하거나 재개발 등으로 인한 출하시간 저하

매우 심각

상용 제품으로 대체

현재까지 투입된 비용이 낭비되며 상용제품 구입 비용과 customization 비용이 추가로 발생함

매우 심각

라이선스 대체 충돌이 발생하지 않는 라이선스로 대체 양호

재개발라이선스나 특허에 위반되지 않도록 다시 프로그램을 작성함 양호

▣ OSS 라이선스 위반(License Conflict)

실패비용

예방비용

2. OSS 관리와 위반사례

Page 13: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

• 저작권침해금지 가처분: 보전의 필요성 소명

• FTA 이후 부분적 비 친고죄화 영리목적 OR 상습적

• 양벌 규정 행위자를 처벌하는 외에 그 행위자를 사용하는 법인의 대표자나

법인도 처벌 가능• 위반행위를 방지하기 위해 상당한 주의와 감독을 하였음을 입증

•기업평판, 서비스 정지, 대체비용 등

민사상 손해배상

기타 손해

형사고소

▣ OSS 라이선스를 위반하게 되면 민사상 손해배상, 형사고소와 조직에 있어서의 다양한 손해를 야기시킴

[출처: 한국오픈소스SW법센터]

▣ OSS 라이선스 위반시 법적 효과 2. OSS 관리와 위반사례

Page 14: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017 13

Text 고지 방식 홈페이지 링크 방식

▣ Use Case (라이선스 사용 고지) 2. OSS 관리와 위반사례

Page 15: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

엘림넷 v. 하이온넷

▣ OSS 라이선스 주요 위반사례 2. OSS 관리와 위반사례

엘림넷의 핵심 솔루션인 패킷병합 모듈 ETUN의 개발에 관여한 R&D팀, 기술운영팀, 영업팀의 9명이 경쟁사인 하이온넷으로 이직하여 ETUN을 토대로 한 프로그램(HL)을 개발하여 엘림넷과 동일한 사업을 시작

엘림넷이 하이온넷을 상대로 부정경쟁방지 및 영업비밀보호에 관한 법률위반으로 형사소송, 저작권침해가처분으로 민사소송을 제기함

소송의 핵심 대상인 ETUN이 GPL 라이선스인 Vtun을 모방한 것이 밝혀짐

FSF는 서울중앙지방법원에 엘림넷과 하이온넷 모두 GPL을 위반했고 따라서, 영업비밀은 해당되지 않음을 제안

서울중앙지방법원은 FSF의 의견에도 불구하고 ETUN의 영업비밀에 해당되는 부분을 인정(2005.9)

이후 FSF는 엘림넷과 하이온넷을 상대로 GPL 라이선스인 Vtun의 저작권위반과 관련하여 저작권자들을 대표하여 이의 제기

엘림넷과 하이온넷은 향후 GPL 준수를 약속하고 해당 소프트웨어에 대한 소스 전체를 공개

쟁점 및 시사점 : - 국내 최초의 GPL 라이선스 관련 소송 사건- 경쟁사간의 법정 소송으로서 지적재산권에 대한 자산관리 필요성 인식의 계기- 법원 결과와 관련 없이 양사 모두 소송을 통해 원하는 결과를 얻지 못했으며, 사건의 핵심

솔루션에 대한 소스가 GPL 임을 인정하고, 엘림넷과 하이온넷은 공개 사과문을 발표하였고 GPL 규정에 따라 공개

- 홈페이지를 통해 소스 전체를 공개 하였음

Page 16: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

▣ OSS 라이선스 주요 위반사례 2. OSS 관리와 위반사례

게임플랫폼

일본 LEAF사 GPL 위반 사건2005년 일본 LEAF사 게임 오프닝 화면에 Xvid(MPEG4 Codec Lib) 무단사용 적발→ 회사 홈페이지에 Xvid측 사과문 게재, 자사의 게임소스코드 전면 오픈

일본 게임 ICO GPL 위반 사건

2007년 Sony PS2 명작게임 ICO에 GPL librac 무단사용 적발 (Disassembler Tool)

→ 전체 소스코드 오픈

Page 17: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

▣ 목차

1. OSS 개념 및 라이선스 이해

2. OSS 관리와 위반사례

3. Black Duck Protex를 이용한 라이선스 검증

Page 18: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

• 클라이언트 소프트웨어 다운로드• http://protex.blackducksoftware.co.kr 로 접속한 후로그인합니다.

• 오른쪽 상단에 위치한 로그인 계정 클릭 > Tools를 클릭 합니다.

• Protex Client Software 로 이동합니다.

• PC 환경에 맞는 Client Software를 Download합니다.

▣ 클라이언트 소프트웨어 설치 3. Black Duck Protex를 이용한 라이선스 검증

Page 19: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

• Protex 클라이언트 소프트웨어 설치• 다운받은 파일 압축을 풀고 blackduck-client-windows.exe을실행하여 설치합니다.

그림1-5. Protex Client Software 설치

▣ 클라이언트 소프트웨어 설치 3. Black Duck Protex를 이용한 라이선스 검증

Page 20: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

• Client Tool 로 Protex 접속• 시작 > 모든 프로그램 > Black Duck Software > Protex 실행

• http://localhost:9000으로 웹브라우저에서 접속합니다.

• 웹브라우저는 인터넷 익스플로어가 아닌 크롬이나 파이어폭스를권장합니다.

▣ 프로젝트 등록 3. Black Duck Protex를 이용한 라이선스 검증

Page 21: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

• 프로젝트 등록• MY PROJECTS > Create project 버튼을 클릭합니다.

• 파일시스템 Local 에서 소스가 위치한 경로를 선택 후 Project Name 란에 고유한프로젝트명을 입력하고 save를 클릭합니다.

• 프로젝트 라이선스는 ‘Open Source’를 선택하거나 Select License에서 프로젝트에적용될 라이선스를 선택 합니다.

ex) 예를 들어 프로젝트를 Apache License 2.0으로 공개할 경우 ‘Apache License 2.0’을 선택 합니다.

• 라이선스 명은 full name으로 입력합니다. GPL(X) GNU General Public License v2.0(O)

▣ 프로젝트 등록 3. Black Duck Protex를 이용한 라이선스 검증

Page 22: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

• 프로젝트 분석• Manage > Analysis를 선택합니다.

• Source Location에서 소스파일의 경로를 확인 후 Analyze Now 버튼을 클릭하여 분석을 진행합니다.

▣ 프로젝트 분석 3. Black Duck Protex를 이용한 라이선스 검증

Page 23: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

• 프로젝트 분석• 분석은 Initializing > Scanning > Analyzing 의 3단계로진행됩니다.

• 분석이 완료되면 OK 버튼을 클릭합니다.

그림3-6. Project 분석 완료

그림3-5. Project 분석 진행

▣ 프로젝트 분석 3. Black Duck Protex를 이용한 라이선스 검증

Page 24: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

• KnowledgeBase 모든 컴포넌트는Code Prints로서 저장됨

• 소스 및 바이너리로부터 CodePrint 추출

• 소스 파일

• 파일매치 & 부분매치 : 파일하나의 매치율에 따라 CodePrint 생성

• *.c, *.java, *.pl, etc

• 85억개 이상의 CodePrint DB를 사용하여 부분매치의 코드를 발견

• 바이너리 파일

• 파일매치 : 파일 1개에 하나의 CodePrint 생성

• 라이브러리, 클래스파일, 실행파일, 아카이브, 등

파일전체 일치에 대한 CodePrint

부분일치에 대한CodePrint

▣ FAQ – 검증 대상 3. Black Duck Protex를 이용한 라이선스 검증

Page 25: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

• 분석된 프로젝트에서 오픈소스와 매치되는 각각의 파일들에 대해 매치되는오픈소스 컴포넌트 리스트 확인

▣ FAQ – 검증 대상 3. Black Duck Protex를 이용한 라이선스 검증

Page 26: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

• 2,400개의 라이선스에서 요구하는 의무사항들을 21개의 속성으로분류하여 라이선스 충돌여부 확인

Apache 2.0 License (partial)

GPL 2.0 License (partial)

▣ FAQ – 라이선스 충돌 원리 3. Black Duck Protex를 이용한 라이선스 검증

Page 27: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

• KB안에 있는 라이선스들은 일련의 속성들로 구성되어 있음

• 속성들은 다음과 같은 영역을 포함:• 코드를 수정,복사, 역 공학할 권리

• 보증과 배상 요건

• 변경사항 고지

• 예제: 소스코드 배포

▣ FAQ – 라이선스 충돌 원리 3. Black Duck Protex를 이용한 라이선스 검증

Page 28: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

GPL 3.0 License

Proprietary Commercial License

LicenseConflict

• 프로젝트 라이선스 vs 검증된 오픈소스 라이선스

▣ FAQ – 라이선스 충돌 원리 3. Black Duck Protex를 이용한 라이선스 검증

Page 29: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지

© Black Duck 2017

• 프로젝트의 성격에 맞는 라이선스를 결정하지 못했을 경우

1. 프로젝트 라이선스를 Open Source로 적용

2. 검증 결과에 따라 프로젝트 성격을 결정(permissive / copyleft)

3. 프로젝트 라이선스 재정의

▣ FAQ – 라이선스 선택 3. Black Duck Protex를 이용한 라이선스 검증

Page 30: 오픈소스라이선스kossa.kr/materials/KSH/2017 OT/4. 오픈소스 SW 라이선스_이서연(블랙덕... · 저작자의소스코드원형유지: 최초원시코드& 패치 개인및단체에대한차별금지