공개 SW 라이선스검증개요및수행방안 Leading Solutions for Software Compliance Management Copyright 2006 by Black Duck Software, Korea. ALL RIGHTS RESERVED.
목차 1. 공개SW 동향 2. 공개SW 개념및라이선스이해 3. 공개 SW 라이선스검증서비스 4. 공개SW 라이선스검증시스템 - 1 -
공개 SW 혁명 1. 공개 SW 동향 Android(Google) ios(apple) LiMo( 보다폰, 삼성전자, 오렌지, 파나소닉등 ) MeeGo( 노키아, 인텔 ) Bada & SLP( 삼성전자 ) ChromeOS(Google) Tizen(Linux Foundation, LiMo+MeeGo) GENIVI Alliance : Open In Vehicle Infotainment 플랫폼 - 2 -
Super 공개 SW 커뮤니티 1. 공개 SW 동향 Healthcare Aerospace Polarsys (2004. Airbus) Finance (2011. Bank of America) Mobile - 3 -
공개 SW 프로젝트개발및사용현황 1. 공개 SW 동향 2011 년에만 Mobile 분야에서 10,000 개이상의신규공개 SW 프로젝트개발, 안드로이드플랫폼기반이 76% Cloud 공개 SW 프로젝트도급속도로증가하고있음 Bearing Point 에서조사한 Automotive OSS Study 2012 에의하면자동차산업에서약 85% 공개 SW 사용 Bearing Point Automotive OSS Study 2012 향후 GENIVI 오픈플랫폼기반의 OSS 프로젝트? - 4 -
자동차산업에서공개 SW 를사용하는이유 1. 공개 SW 동향 Bearing Point Automotive OSS Study 2012-5 -
공개 SW 공급망관리를위한표준 1. 공개 SW 동향 SPDX SOFTWARE PACKAGE DATA EXCHANGE 표준 소프트웨어패키지관련콤포넌트, 라이선스, copyrights 등을상호교환하기위한표준 Linux Foundation 의오픈컴플라이언스프로그램의핵심 SPDX Group: Linux Foundation의워킹그룹 20여개이상의소프트웨어, 시스템, 툴벤더, 컨설턴트등이참여 소프트웨어패키지에포함된실제파일의라이선스정보를설명하기위한정의된표준화된포맷 2011 년 8 월버전 1.0 이출시 인텔, 필립스등 SPDX 를통한공급망관리시행중 See: http://www.spdx.org Getting started - http://spdx.org/wiki/spdx/participationguidelines Contact: General - Phil Odence (Chair) - podence@blackducksoftware.com Business team - Jack Manbeck (Co-Chair)- j-manbeck2@ti.com Legal team - Jilayne Lovejoy (Co-Chair) - jilayne.lovejoy@openlogic.com Technical team - Kate Stewart (Chair) - stewart@linux.com - 6 -
국내공개 SW 관리및장려정책 1. 공개 SW 동향 2012 년 4 월지식경제부및행정안전부예산안작성세부지침개정 - 정부는공개 SW SW 활용확산을제도적으로지원하기위해 4 월예산안작성세부지침을개정하고, 3 조원에달하는공공 부문정보화사업에상용 SW 를도입하려고할때총비용관점에서유사한기능의공개 SWSW 를함께검토하도록하였으 며, ' 공공부문공개 SW 적용지원센터 ' 를설치하여공공부문의공개 SW SW 적용을활성화할전망 2011 년부터지식경제부산하정보통신산업진흥원공개 SW 역량프라자에서중소기업및일반개발자대상무료공개 SW 라 이선스검증서비스시행중 지식경제부약 2 천억원규모의 WBS(World Best Software) 사업에공개 SW 라이선스준법성강화 - 7 -
공개 SW 의정의 2. 공개 SW 개념및라이선스이해 공개 SW 는저작권이있으면서소스코드가공개되어누구나복제, 설치, 사용, 변경, 재배포가가능한 SW 를말하며, 패키지형태로전체를사용하는경우와일부소스코드를참조하여구현하는경우로구분됨 1) 패키지형태로된공개 SW ( 예 ) 2) 소스코드에사용된공개 SW 구현 ( 예 ) 운영체제 (OS) 웹서버 DBMS 개발언어개발도구프레임워크 WAS 서버데스크탑오피스비즈니스애플리케이션 Linux Apache, Tomcat MySQL, PostgreSQL PHP, Perl, Python Eclipse Anyframe, Spring, Struts JB공개SW, Glassfish, Geronimo OpenOffice sugarcrm, Alfresco, uengine /* * @(#)AuthProvider.java 1.4 05/11/17 * * Copyright 2006 Sun Microsystems,Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */ package java.security; import javax.security.auth.subject; import javax.security.auth.login.loginexception; import javax.security.auth.callback.callbackhandler; public abstract class AuthProvider extends Provider { protected AuthProvider(String name, double version, String info) { super(name, version, info); } - 8 -
공개 SW 의특징 ( 양면성 ) 2. 공개 SW 개념및라이선스이해 자유 복제, 설치, 운영, 수정, 배포의자유 기존소스코드및라이브러리의재사용으로생산성향상 성숙한공개 SW 커뮤니티의프로젝트적용으로품질보장 Copyleft 공개되어있는소스코드 공개되어있는소스코드를통해알고리즘과로직을분석하고응용할수있어설계자, 개발자, 테스터의소프트웨어기술력증강 무료 내부사용 외부판매 TCO(Total Cost Ownership) 절감 기술지원및유지보수서비스를기반으로사업가능 반환의무 특정공개 SW 라이선스의소스코드공개의무 GPL, LGPL, MPL, CPL, IBM, EPL, OSL, Qt 등이해당됨 연결된소프트웨어의소스코드공개의무가발생 비공개 SW 가공개 SW SW 로변경될수있음 특허, 영업비밀, 핵심기술등의외부유출가능성존재 저작권 저작권법에따른법적권리보장 공개 SW 라이선스미준수시저작자와분쟁가능 협력업체가저작권위반시협력업체가책임을지더라도최종적으로고객이동의하지않는소스코드공개등은공급사의부담이됨 - 9 -
공개 SW 라이선스주요용어및개념 2. 공개 SW 개념및라이선스이해 사용형태 범위 의무사항 복제? 내부사용? 공개범위 특허무효 파생물? 배포? 공개방법 양립성 고지 배포형태? 라이선스? - 10 -
Open Source Initiative 인증 70 개공개 SW 라이선스 2. 공개 SW 개념및라이선스이해 Academic Free License 3.0 (AFL-3.0) Affero GNU Public License: See "GNU Affero General Public License 3.0 (AGPL-3.0)" Adaptive Public License (APL-1.0) Apache License 2.0 (Apache-2.0) Apple Public Source License (APSL-2.0) Artistic license 2.0 (Artistic-2.0) Attribution Assurance Licenses (AAL) BSD 3-Clause "New" or "Revised" License (BSD-3-Clause) BSD 2-Clause "Simplified" or "FreeBSD" License (BSD-2-Clause) Boost Software License (BSL-1.0) Computer Associates Trusted Open Source License 1.1 (CATOSL-1.1) Common Development and Distribution License 1.0 (CDDL-1.0) Common Public Attribution License 1.0 (CPAL-1.0) CUA Office Public License Version 1.0 (CUA-OPL-1.0) EU DataGrid Software License (EUDatagrid) Eclipse Public License 1.0 (EPL-1.0) Educational Community License, Version 2.0 (ECL-2.0) Eiffel Forum License V2.0 (EFL-2.0) Entessa Public License (Entessa) European Union Public License, Version 1.1 (EUPL-1.1) (links to every language's version on their site) Fair License (FAIR) Frameworx License (Frameworx-1.0) GNU Affero General Public License v3 (AGPL-3.0) GNU General Public License version 2.0 (GPL-2.0) GNU General Public License version 3.0 (GPL-3.0) GNU Library or "Lesser" General Public License version 2.1 (LGPL-2.1) GNU Library or "Lesser" General Public License version 3.0 (LGPL-3.0) Historical Permission Notice and Disclaimer (HPND) IBM Public License 1.0 (IPL-1.0) IPA Font License (IPA) ISC License (ISC) LaTeX Project Public License 1.3c (LPPL-1.3c) Lucent Public License Version 1.02 (LPL-1.02) MirOS Licence (MirOS) - 11 - Microsoft Public License (Ms-PL) Microsoft Reciprocal License (Ms-RL) MIT license (MIT) Motosoto License (Motosoto) Mozilla Public License 2.0 (MPL-2.0) Multics License (Multics) NASA Open Source Agreement 1.3 (NASA 1.3) NTP License (NTP) Naumen Public License (Naumen) Nethack General Public License (NGPL) Nokia Open Source License (Nokia) Non-Profit Open Software License 3.0 (NPOSL-3.0) OCLC Research Public License 2.0 (OCLC-2.0) Open Font License 1.1 (OFL 1.1) Open Group Test Suite License (OGTSL) Open Software License 3.0 (OSL-3.0) PHP License 3.0 (PHP-3.0) The PostgreSQL License (PostgreSQL) Python License (Python-2.0) (overall Python license) CNRI Python license (CNRI-Python) (CNRI portion of Python License) Q Public License (QPL-1.0) RealNetworks Public Source License V1.0 (RPSL-1.0) Reciprocal Public License 1.5 (RPL-1.5) Ricoh Source Code Public License (RSCPL) Simple Public License 2.0 (SimPL-2.0) Sleepycat License (Sleepycat) Sun Public License 1.0 (SPL-1.0) Sybase Open Watcom Public License 1.0 (Watcom-1.0) University of Illinois/NCSA Open Source License (NCSA) Vovida Software License v. 1.0 (VSL-1.0) W3C License (W3C) wxwindows Library License (WXwindows) X.Net License (Xnet) Zope Public License 2.0 (ZPL-2.0) zlib/libpng license (Zlib)
라이선스사용빈도 Top 20 2. 공개 SW 개념및라이선스이해 Rank License % 1. GNU General Public License (GPL) 2.0 40.35% 2. MIT License 12.12% 3. Artistic License (Perl) 7.64% 4. GNU General Public License (GPL) 3.0 7.56% 5. BSD License 2.0 6.95% 6. GNU Lesser General Public License (LGPL) 2.1 6.50% 7. Apache License 2.0 6.41% 8. Code Project Open 1.02 License 1.92% 9. Microsoft Public License (Ms-PL) 1.80% 10. GNU Lesser General Public License (LGPL) 3.0 1.33% 11. Mozilla Public License (MPL) 1.1 1.05% 12. Eclipse Public License (EPL) 0.87% 13. BSD Two Clause License 0.38% 14. Common Public License (CPL) 0.38% 15. zlib/libpng License 0.33% 16. Common Development and Distribution License (CDDL) 0.32% 17. Academic Free License 0.29% 18. Open Software License (OSL) 0.20% 19. Microsoft Reciprocal License (Ms-RL) 0.20% 20. Ruby License 0.18% [ 2012년 6월블랙덕 KnowledgeBase ] - 12 -
주요라이선스및의무사항 2. 공개 SW 개념및라이선스이해 주요공개 SW 라이선스인 GPL, LGPL, CPL, MPL 등은공개 SW 코드뿐아니라사용자코드공개의무발생 공개 SW 를활용하면서공개하기어려운코드를보호하기위해서는적절한라이선스관리가필요함 라이선스 GPL (General Public License) 주요의무사항 자유로운사용, 복제, 배포및수정 저작권표시, 보증책임이없다는표시, GPL 명시 소프트웨어수정및링크시모든코드를 GPL 에의해공개 공개범위및특징 GPL 코드와연결된모든코드 LGPL (Lesser General Public License) 자유로운사용, 복제, 배포및수정 저작권표시, 보증책임이없다는표시, LGPL 명시 소프트웨어수정및링크시모든코드를 LGPL에의해공개 ( 단, 라이브러리링크시공개하지않음 ) LGPL 코드와연결된모든코드 MPL (Mozilla Public License) EPL (Eclipse Public License) 자유로운사용, 복제, 배포및수정 저작권표시, 보증책임이없다는표시, MPL 명시 특허보복조항 ( 특허 SW 사용시특허권을주장할수없음 ) 소프트웨어수정및링크시해당파일을공개 자유로운사용, 복제, 배포및수정 저작권표시, 보증책임이없다는표시, MPL 명시 특허보복조항 ( 특허 SW 사용시특허권을주장할수없음 ) 소프트웨어수정및링크시해당모듈을공개 MPL 코드와연결된해당파일 EPL 코드와연결된해당모듈 특허 SW 시특허권리주장하지못함 - 13 -
소스코드공개범위 2. 공개 SW 개념및라이선스이해 경우에따라해당공개 SW 의소스코드만공개하거나 (case 1) 해당공개 SW 의소스코드를수정또는추가한부분만공개하거나 (case 2) 또는해당공개 SW 와링크가걸린부분까지 (case 3) 모두공개해야하는의무를명시하는경우가있음. 2. 소스코드의추가및수정된부분 1. 공개 SW 원본소스코드 링크 3. 공개 SW 를링크하여이용하는경우 Case 1 : 1 만공개 case 2 : 1+2 를공개 case 3 : 1+2+3 모두공개 - 14 -
소스코드공개범위 (GPL) 2. 공개 SW 개념및라이선스이해 수정한내용에대한소스공개의무발생, SW 를수정하거나새로운 SW 를링크시키는경우하나의프로세스로동작하는전체프로그램의소스코드공개 ( 동일한실행파일에포함되는경우, 공유주소영역 (Shared address space) 에서링크되어실행되는경우 ) 소스코드를공개할필요가없는경우 - 정상적인리눅스 system call 을사용, Class Path Exception 인경우, 리눅스를기반으로개발된 Application, 커널모듈형태로작성된 Loadable Device Driver, 2 개의프로그램이파이프 (pipe), 소켓 (socket), command line arguments 형태로통신하는경우 GPL 라이선스공개의범위 - 녹색부분 Machine 1 Static Library Dynamic Library 메인프로그램보조프로그램2 Shared Memory Main function or class Main function or class Static Library Dynamic Library Pipe 프로그램 3 RPC, RMI, SOAP, HTTP Machine 2 프로그램 4 프로그램 5-15 -
라이선스양립성 (Compatibility) 2. 공개 SW 개념및라이선스이해 서로다른라이선스의조합일경우 - 서로다른공개 SW SW 의라이선스의무조항이상충하는문제에따라이를해결할목적으로타라이선스의수용여부를명시하는조항 - 양립할수없는경우배포불가능 MPL(Mozilla public License) 다른소스코드와결합하여사용할경우 MPL 선언된소스코드만공개하고 MPL로선언함 + = GPL(General public License) 다른소스코드와결합하여사용할경우결합하는모든소스코드를공개해야하고 GPL로선언해야함 두라이선스의요구조건이서로달라서배포하는것이불가능 라이선스의양립성 (compatibility) 문제 타라이선스수용여부를먼저확인해야함 - 16 -
라이선스양립성 (Compatibility) 2. 공개 SW 개념및라이선스이해 개별라이선스들은서로다른라이선스와결합사용함에있어서제약조건을가지고있음 License Author Latest version Publication date Link from code with a different license Release changes under a different license Academic Free License Lawrence E. Rosen 3 2002 Yes Yes Apache License Apache Software Foundation 2.0 2004 Yes Yes Apple Public Source License Apple Computer 2.0 August 6, 2003 Yes No Artistic License Larry Wall 2.0 2000 Yes With restrictions Berkeley Database License Oracle Corporation? February 7, 2008 No No BSD license Regents of the University of California?? Yes Yes Boost Software License? 1.0 August 17, 2003 Yes Yes Common Development and Distribution License Sun Microsystems 1.0 December 1, 2004 Yes Yes Common Public License IBM 1.0 May 2001 Yes No Cryptix General License Cryptix Foundation? 1995 Yes Yes Eclipse Public License Eclipse Foundation 1.0? Yes No Educational Community License? 1.0? Yes Yes Eiffel Forum License NICE 2 2002 Yes Yes IBM Public License IBM 1.0 August 1999 Yes Yes - 17 -
라이선스양립성 (Compatibility) 2. 공개 SW 개념및라이선스이해 License Author Latest version Publication date Link from code with a different license Release changes under a different license Free Software Fou GNU General Public License 3.0 June 2007 No No ndation GNU Lesser General Public Licens Free Software Fou 3.0 June 2007 Yes No e ndation? November 26, 2002?? IBM Public License IBM 1.0 August 1999 Yes Yes Hacktivismo Enhanced-Source Sof Hacktivismo/Cult tware License Agreement of the Dead Cow 출처 : http://en.wikipedia.org/wiki/comparison_of_free_software_licenses#general_comparison - 18 -
라이선스공통의무사항 2. 공개 SW 개념및라이선스이해 전세계 2,000 여종의공개 SW 라이선스는공통적인의무사항의조합으로구성되어있음 라이선스의특징및의무사항 BSD Apache GPL2 GPL3 LGPL2 MPL CDDL CPL/ EPL 복제. 배포. 수정의권한허여 배포시라이선스사본첨부 저작권고지사항또는 Attribution 고지사항유지 배포시소스코드제공의무 (Reciprocity) 와범위 * * * file file Module 조합저작물 (Larger Work) 작성및타라이선스배포허용 수정시수정내용고지 명시적특허라이선스의허여 라이선시가특허소송제기시라이선스종료 이름, 상표, 상호에대한사용제한 보증의부인 책임의제한 *GPL : 수정및사용된파일, 라이브러리, Shared Memory 형태로결합된프로젝트 *LGPL : 수정및사용된파일형태로결합된프로젝트 - 19 -
이중 (Dual) 라이선스 2. 공개 SW 개념및라이선스이해 저작자에게주어지는권리로서, 저작권이적용되는대상 ( 여기서는공개 SW 소프트웨어 ) 에대해그사용자에게저작권의예외를제공할수있게하는권리임 제품명공급사비고 Asterisk PBX Digium, Inc Telephone Private Branch Exchange 를구현한공개 SW 소프트웨어 (GPL and Commercial) Berkeley DB Sleepycat Software 임베디드데이터베이스시스템 (Sleepycat License and Commercial) Internet Communications Engine Mono Mozilla Application Suite ZeroC, Inc. Novell Netscape Communicatio ns Corporation->Mozilla Foundation Remote Procedure Call and object middleware system(gpl and Commercial).NET 아키텍처플랫폼 (Mono's C# compiler and tools:gpl, Mono C# compiler source code :MIT X11 license, runtime libraries :GPL2.0, class libraries :MIT) 웹브라우저 (tri-license) MySQL Sun->Oracle 관계형데이터베이스시스템 ( 커뮤니티에디션, 엔터프라이즈에디션 ) Perl Larry Wall 웹프로그래밍을위한인터프리터언어 (Artistic License and the GPL) Qt Trolltech->NOKIA 다중플랫폼용그래픽어플리케이션개발 (LGPL and Commercial) Sendmail Sendmail, Inc 메일서버 (free software and Commercial) Cubrid Cubrid 데이터베이스관리시스템 (DBMS엔진 GPL, 기타 BSD) - 20 -
공개 SW 라이선스생태계 2. 공개 SW 개념및라이선스이해 - 21 -
공개 SW 라이선스위반모니터링 2. 공개 SW 개념및라이선스이해 협력 / 외주업체 GPL 공개 SW 기업수정및링크 저작권표시 무보증명시 GPL 라이선스선언 소스코드공개 4. 위반시라이선스사용료및코드공개, 재발방지시행방안요구 2. GPL 라이선스위반이의심된다는메일전송 라이선스관리및위반감시단체 FSF(www.fsf.org) gpl-violations.org (www.gpl-violations.org) SFLC (www.softwarefreedom.org) KOSS( 한국공개SWSW법센터 ) 한미 FTA ( 친고죄폐지 ) 한 EU FTA ( 법률시장개방 ) 납품 / 출시 고객 or 경쟁사 5. 해당기업에서거부 or 시정조치미흡시법원에제소 1. 구매및사용 3. 구매및 binary 역컴파일로소스코드분석 법원 - 22 -
공개 SW 라이선스위반 (License Conflict) 2. 공개 SW 개념및라이선스이해 해결방법위반피해위험심각도 소프트웨어공개, 합의 코드공개를통한대외비및지적재산누출, 때로는해당사업철수, 리콜, 손해배상등의불이익을당하게됨 매우심각 충돌부분삭제 기능상오류가발생하게되어품질테스트를통과하지못하거나재개발등으로인한출하시간저하 매우심각 실패비용 상용제품으로대체 현재까지투입된비용이낭비되며상용제품구입비용과 customization 비용이추가로발생함 매우심각 라이선스대체충돌이발생하지않는라이선스로대체양호 재개발 라이선스나특허에위반되지않도록다시프로그램을작성함 양호 예방비용 조직내공급망관리를포함하는거버넌스체계구축필요 - 23 -
공개 SW 라이선스위반시나리오 2. 공개 SW 개념및라이선스이해 산업위험패턴위험시나리오예상독소위험 임베디드 외주협력업체서드파티업체 GPL 임베디드된소프트웨어 Major 고객 GPL Embedded Application Middleware Device Driver Firmware DBMS OS 휴대폰 PDA PMP MP3 고객 Major 고객에게 GPL 소스 Major 고객이저작권위반에코드의공개없이공급따른법적비용과영업손실을 Major 고객은소스코드공개부담없이제품을불특정고객에게 코드공개혹은자체비용으로판매 GPL 코드제거를위한재개발 GPL 저작권자가소스코드공개수행요구또는판매중지요구 클라우드및네트웍서비스 외주협력업체서드파티업체 GPL 파생된혹은임베디드된소프트웨어 Major 고객 GPL Embedded Application Middleware Device Driver Firmware DBMS OS SaaS PaaS IaaS 고객 Major 고객에게 GPL 소스 Major 고객에게배포한코드의공개없이공급외주협력업체혹은 Major 고객은소스코드공개서드파티업체의코드공개의무없이고객에게서비스발생 GPL 저작권자가소스코드공개 저작권이슈발생시서비스요구또는서비스중지요구중지등의위험내포 외주협력업체서드파티업체 AGPL 파생된혹은임베디드된소프트웨어 Major 고객 AGPL Embedded Application Middleware. SaaS PaaS IaaS 고객 Major 고객에게 AGPL 소스코드의공개없이공급 Major 고객은소스코드공개없이제품을불특정고객에게서비스 AGPL 저작권자가소스코드공개요구또는서비스중지요구 Major 고객이저작권위반에따른법적비용과영업손실을부담 코드공개혹은자체비용으로 AGPL 코드제거를위한재개발수행 - 24 -
공개 SW 라이선스주요위반사례 2. 공개 SW 개념및라이선스이해 회사명 위반제품 BestBuy, Co., Inc Samsung Electronics America, Inc Westinghouse Digital Electronics, LLC JVC Americas Corporation Western Digital Technologies, Inc Robert Bosch LLC Insignia NS-WBRDVD Blu-ray Disc Player LN52A650, LA26A450 LCD HDTV TX-52F480S LCD HDTV LT-42P789 LCD HDTV VN-C20U IP Network Camera WDBABF0000NBK WD TV HD Media Player DVR4C Security System DVR Airlink101 AR670W Phoebe Micro, Inc. AR690W wireless routers Airlink101 AICAP650W IP Motion Wireless Camera Humax USA Inc. Comtrend Corporation Dobbs-Stanford Corporation Versa Technology Inc ZyXEL Communications Inc. Astak Inc GCI Technologies Corporation icord HD HDTV DVR CT-5621, NexusLink 5631/ 5631E ADSL2+ bonded modems Frame Jazz EyeZone B1080P-2 digital media player PS-730 ITS Gateway VX-BW2250 weatherproof dual radio outdoor wireless access point P-663H-51 ADSL 2+ Bonded 4 Port Router CM-818DVR4V security camera system with DVR, CM-04DE, CM-04DEV security system DVR devices Cortex HDC-3000 digital music controller - 25 -
공개 SW 라이선스검증목적 3. 공개 SW 라이선스검증서비스 독점개발환경 공개 SW 를활용한콤포넌트기반의개발확대 복합지적재산권환경 모든공개SW에는저작권과라이선스가있음 공개SW라이선스는다양한사용자의무사항을가지고있음 공개SW를활용한제품및서비스제공시반드시의무사항을준수해야함 사업위험감소 공개SW의체계적인관리와검증 공개 SW 적극적활용 기업이미지손실예방저작권위반으로인한법적책임예방시정조치로인한출시지연예방사업철수, 리콜, 판매금지가처분, 손해배상등으로인한금전적손실예방 개발비용및 TCO 절감신속하고유연한개발신뢰성과안정성확보풍부한개방형서비스제공및구축 - 26 -
공개 SW 라이선스검증개요 3. 공개 SW 라이선스검증서비스 2011 년부터정보통신산업진흥원공개 SW 역량프라자에서국내중소기업및개발자개인, 학교및비영리연구기관을대상으로무료공개 SW 라이선스검증서비스를지원 - www.oss.kr/ 공개 SW 라이선스검증서비스신청 - 프로젝트별소스코드 500MB이하단위로신청할수있으며총 3 회까지신청가능 - 27 -
공개 SW 라이선스검증절차 3. 공개 SW 라이선스검증서비스 사용자 NIPA 공개 SW 역량프라자 Protex Code Analysis Clients Protex Server 검증서비스신청 교육및 Protex 계정발급 Client SW 다운로드및설치 프로젝트등록및분석실행 Source Code Repository 검증결과보고서 검증현황및결과리뷰 Protex 서버접속및사용을위해방화벽등록 - 28 -
공개 SW 라이선스검증절차 3. 공개 SW 라이선스검증서비스 다음주소로접속합니다. www.protexip.codns.com Username 와 Password 입력후 Login 합니다. - 29 -
공개 SW 라이선스검증절차 3. 공개 SW 라이선스검증서비스 코드빌드후공개 SW 사용에따른지적재산권문제를최소화하기위해서는프로젝트기획단계에서프로젝트에적용할라이선스정책을수립하고정책에부합되는공개 SW 라이선스및코드들을선택사용해야함 검증전검토사항 정책수립 프로젝트에대한배포정책수립 핵심내용 공개되는개발프로젝트에적용할사용자의무사항정의 의무사항에부합되는라이선스생성및적용 (GPL, LGPL, Apache 등 ) 콤포넌트기획 프로젝트라이선스에적합한공개 SW 프로젝트식별 핵심내용 프로젝트에적용한라이선스의무사항에부합하여상호충돌없이활용할수있는공개 SW 라이선스파악 프로젝트라이선스에부합하여활용가능한공개 SW 프로젝트및결합방식검토 - 30 -
공개 SW 라이선스검증절차 3. 공개 SW 라이선스검증서비스 빌드대상이되는프로젝트를대상으로코드를분석하여프로젝트에사용된공개 SW 코드를식별하고프로젝트에적용한라이선스와충돌하는공개 SW 코드및라이선스, 콤포넌트를확인 / 시정조치 프로젝트등록 검증대상프로젝트라이선스적용및등록 핵심내용 검증서버에접속하여클라이언트 SW 설치 클라이언트 SW를통해검증서버에접속하여해당프로젝트등록 ( 프로젝트라이선스적용, 로컬코드디렉토리연결 ) 분석 확인 검증대상프로젝트분석 분석된공개 SW 코드의라이선스및결합형태확인 핵심내용 등록된프로젝트와연결된로컬코드를분석 분석완료후프로젝트에사용된공개 SW 코드확인 핵심내용 분석결과확인된공개 SW 코드의라이선스및출처확인 사용된공개 SW 코드의결합형태확인 ( 모듈, 라이브러리, 코드수정등 ) 시정조치 부적절한공개 SW 코드의수정 or 삭제 핵심내용 분석확인결과프로젝트라이선스와충돌하는공개 SW 코드의수정 or 삭제 - 31 -
공개 SW 라이선스검증절차 3. 공개 SW 라이선스검증서비스 라이선스충돌기록이없음 라이선스충돌발생 결합사용된공개 SW 라이선스로확장적용됨 GPL Postgre SQL BSD 2.0 느슨하게 Component 결합 gnupg GPL 2.0 Dynamic Library LGPL AcmeMail GPL 2.0 Separate Work JOnAS LGPL 2.0 Component 결합사용된공개 SW 라이선스로확장적용되지않음 BSD 강하게결합 libgcrypt LGPL 2.0 Dynamic Library 라이선스범위 결합 - 32 -
공개 SW 라이선스검증절차 3. 공개 SW 라이선스검증서비스 정책수립 콤포넌트기획 코드빌드 산출물일정에맞추어검증시행 라이선스검증프로세스 Project Analyze 프로젝트등록 프로젝트분석 공개 SW 확인 라이선스충돌 No 종료 Yes 시정조치 Identification, Review 신청기업, 개인 1. 충돌코드에대한결합형태및개발자의견요청 2. Feed Back 3. 검증결과송부 NIPA 공개 SW 역량프라자 - 33 -
공개 SW 라이선스검증대상우선순위 3. 공개 SW 라이선스검증서비스 1 순위 높음 개발유형 소유권 배포주최 ( 재배포포함 ) 배포물 배포유형 ( 재배포포함 ) 내부개발 자체소유 직접배포 SW, 임베디드 End Users (BtoC) 외주개발 비소유 관계사, 협력사, 파트너 네트웍서비스 End Users (BtoB) 구매 사용권 ITO 유지보수 ITO 유지보수 End Users(BtoB) 관계사, 협력사, 파트너 End Users(BtoC) 낮음 Ex) 내부개발, 자체소유, 직접배포, SW & 임베디드, End Users(BtoC) 에게배포가검증 1 순위대상내부개발, 자체소유, 직접배포, SW & 임베디드, End Users(BtoB) 에게배포가검증 2 순위대상구매, 자체소유, End Users(BtoC) 가배포, SW & 임베디드, 관계사, 협력사, 파트너에게배포가검증가장후순위대상 - 34 -
공개 SW 라이선스검증대상우선순위 3. 공개 SW 라이선스검증서비스 2 순위 높음 개발유형 소유권 배포주최 ( 재배포포함 ) 배포물 배포유형 ( 재배포포함 ) 내부개발 자체소유 직접배포 SW, 임베디드 End Users (BtoC) 외주개발 비소유 관계사, 협력사, 파트너 네트웍서비스 End Users (BtoB) 구매 사용권 ITO 유지보수 ITO 유지보수 End Users(BtoB) 관계사, 협력사, 파트너 End Users(BtoC) 낮음 내부개발비소유산출물은소유권이고객혹은제 3 자에게귀속되는산출물을의미. 외주개발및구매비소유산출물은바이너리형태로외주납품받는경우가일반적임, 이경우사용명세확인이필수사항 - 35 -
공개 SW 라이선스검증대상우선순위 3. 공개 SW 라이선스검증서비스 3 순위 높음 개발유형 소유권 배포주최 ( 재배포포함 ) 배포물 배포유형 ( 재배포포함 ) 내부개발 자체소유 직접배포 SW, 임베디드 End Users (BtoC) 외주개발 비소유 관계사, 협력사, 파트너 네트웍서비스 End Users (BtoB) 구매 사용권 ITO 유지보수 ITO 유지보수 End Users(BtoB) 관계사, 협력사, 파트너 End Users(BtoC) 낮음 * 사용권의경우, 사용범위및라이선스기간등에따라배포및배포기간확인필요 - 36 -
공개 SW 라이선스검증대상우선순위 3. 공개 SW 라이선스검증서비스 4 순위 높음 개발유형 소유권 배포주최 ( 재배포포함 ) 배포물 배포유형 ( 재배포포함 ) 내부개발 자체소유 직접배포 SW, 임베디드 End Users (BtoC) 외주개발 비소유 관계사, 협력사, 파트너 네트웍서비스 End Users (BtoB) 구매 사용권 ITO 유지보수 ITO 유지보수 End Users(BtoB) 관계사, 협력사, 파트너 End Users(BtoC) 낮음 Ex) 내부개발, 자체소유, 직접배포, 네트웍서비스, End Users(BtoC) 에게배포가검증 1 순위대상내부개발, 자체소유, 직접배포, 네트웍서비스, End Users(BtoB) 에게배포가검증 2 순위대상구매, 자체소유, End Users(BtoC) 가배포, 네트웍서비스, 관계사, 협력사, 파트너에게배포가검증가장후순위대상 - 37 -
공개 SW 라이선스검증대상우선순위 3. 공개 SW 라이선스검증서비스 5 순위 높음 개발유형 소유권 배포주최 ( 재배포포함 ) 배포물 배포유형 ( 재배포포함 ) 내부개발 자체소유 직접배포 SW, 임베디드 End Users (BtoC) 외주개발 비소유 관계사, 협력사, 파트너 네트웍서비스 End Users (BtoB) 구매 사용권 ITO 유지보수 ITO 유지보수 End Users(BtoB) 관계사, 협력사, 파트너 End Users(BtoC) 낮음 내부개발비소유산출물은소유권이고객혹은제 3 자에게귀속되는산출물을의미. 외주개발및구매비소유산출물은바이너리형태로외주납품받는경우가일반적임, 이경우사용명세확인이필수사항 - 38 -
공개 SW 라이선스검증대상우선순위 3. 공개 SW 라이선스검증서비스 6 순위 높음 개발유형 소유권 배포주최 ( 재배포포함 ) 배포물 배포유형 ( 재배포포함 ) 내부개발 자체소유 직접배포 SW, 임베디드 End Users (BtoC) 외주개발 비소유 관계사, 협력사, 파트너 네트웍서비스 End Users (BtoB) 구매 사용권 ITO 유지보수 ITO 유지보수 End Users(BtoB) 관계사, 협력사, 파트너 End Users(BtoC) 낮음 * 사용권의경우, 사용범위및라이선스기간등에따라배포및배포기간확인필요 - 39 -
공개 SW 라이선스검증보고서 3. 공개 SW 라이선스검증서비스 프로젝트개요 프로젝트라이선스 Basic Proprietary Commercial License( 상용라이선스 ) 분석파일수 분석된바이트수 100Files 100MB 공개 SW 사용파일수 500(50%) 프로젝트구성요소목록 (Bill of Materials) 준법성현황콤포넌트버전홈페이지라이선스결합형태해당파일 다른컴포넌트라이선스와충돌 Apache Lucene Java 1.4.3 http://jakarta.apache.org/luc ene/docs/index.html 충돌없음 db-charmer Unspecified http://github.com/kovyrin/d b-charmer/ 프로젝트에선언된라이와충돌 Apache License Version 2.0 Component 1 수 MIT License V2 File 25 GnuPG Unspecified http://www.gnupg.org/ GPL 3.0 File 6 N/A optical_catalyst Unspecified 프로젝트에선언된라이와충돌 충돌없음 petris Unspecified http://github.com/gitpan/pet ris/ PostgreSQL Databas e Server Basic Proprietary Commercial License Original Code 147 GPL 2.0 File 16 Unspecified http://www.postgresql.org/ PostgreSQL License File 23-40 -
공개 SW 라이선스검증보고서 3. 공개 SW 라이선스검증서비스 공개 SW 라이선스종합요약 라이선스 결합형태 해당파일수 % Apache License Version 2.0 Component 26 5.20% MIT License V2 File 25 5.00% GPL 3.0 File 116 23.20% GPL 2.0 File 24 4.80% Sun Code Sample License File 20 4.00% OpenSSL Combined License File 118 23.60% PostgreSQL License File 23 4.60% [template] Basic Proprietary Co mmercial License Original 148 29.60% 합계 500 100% - 41 -
공개 SW 라이선스검증보고서 3. 공개 SW 라이선스검증서비스 검증분석종합의견 검증분석종합의견 프로젝트라이선스 Basic Proprietary Commercial License 수정권리를부여하지않는다. 소스코드를배포하지않는다. 수정권리를부여하는것이필요하다. (per GPL). 소스코드배포가필요하다. (per GPL). 코드사용에대해수수료를부과한다. GPL 2.0 코드를사용함에있어관련된수수료를부가할자격이없다. 리버스엔지니어권리를부여하지않는다. 복제에대한권리를부여하지않는다. 수정권리를부여하지않는다. 소스코드를배포하지않는다. 리버스엔지니어권리를부여하는것이필요하다. (per GPL). 복제에대한권리를부여하는것이필요하다. (per GPL). 수정권리를부여하는것이필요하다. (per GPL). 소스코드배포 ( 네트웍서비스포함 ) 가필요하다. (per GPL). 코드사용에대해수수료를부과한다. 코드를사용함에있어관련된수수료를부가할자격이없다. 직접충돌라이선스리버스엔지니어권리를부여하지않는다. GPL 3.0 복제에대한권리를부여하지않는다. 리버스엔지니어권리를부여하는것이필요하다. (per GPL). 복제에대한권리를부여하는것이필요하다. (per GPL). 장비및컨텐츠를 DRM 으로보호한다. 장비및컨텐츠를 DRM 으로금지하지않는다. 경우에따라특허출현할수있다. 특허소송을제기하지않는다. 종합의견 ㅇ프로젝트라이선스인 Basic Proprietary Commercial License는일반적인상용독점라이선스로서코드공개를허용하지않고사용자들로하여금해당코드에대한수정및복제, 리버스엔지니어링을허용하지않는라이선스임ㅇ분석결과해당프로젝트에는 48.95% 의공개SW파일이전체혹은부분일치형태로결합사용되었으며, 프로젝트라이선스의무사항과직접충돌되는라이선스인 GPL 2.0(24개파일, 4.8%), GPL3.0(116개파일, 23.2%) 이결합되어있음ㅇ이는 GPL 계열에서요구하고있는코드배포 ( 공개 ) 및수정, 복제권리를사용자에게허가해야되는의무사항이발생됨ㅇ특히, GPL 3.0의경우에는장비혹은컨텐츠에대한접근권한을사용자들에게부여해야함. 따라서, 해당라이선스코드에대한수정및삭제가요구됨. ㅇ또한, 프로젝트라이선스와직접충돌은되지않고있으나 Apache License 2.0코드가포함되어있음에따라해당코드를수정및삭제하지않고결합사용시에는사용자들에대한고지의무가발생됨, 기타 Opne SSL Combined License와 Sun Code Sample License는코드를공개하지않는한별다른의무사항은발생되지않음. - 42 -
공개 SW 라이선스검증보고서 3. 공개 SW 라이선스검증서비스 식별확인된파일현황 License Conflict File/Folder Size File Line Total Lines Component Version License Usage % Matched File 다른콤포넌트라이선스와충돌 /lib/commons-col lections.jar 165119 Apache Jakarta Commons Colle ctions 2.1 Apache 1.1 Component 100% bin/commons-co llections-2.1.tar.g z/commons-colle ctions-2.1/comm ons-collections.ja r 프로젝트에선 /acmemail/acme 언된라이선스 mail.cgi 와충돌 프로젝트에선언된라이선스와충돌 /acmemail/acme mailconfabridged.pm 56824 Acmemail 7328 4 147 Acmemail Unspecifi ed Unspecifi ed GPL 2.0 File 100% GPL 2.0 Snippet 91% - 43 -
공개 SW 라이선스검증보고서 3. 공개 SW 라이선스검증서비스 1. Your Right to Distribute ( 배포에대한권한 ) 2. Distribution / Usage Level ( 배포 / 결합수준 ) 3. Your Right to Distribute Source Code / Enforced Sharing of Source ( 소스코드의배포 / 소스의강제적공유에대한권한 ) 4. Recipient's Right to Copy ( 사용자의복사에대한권한 ) 5. Recipient's Right to Modify( 사용자의수정에대한권한 ) 6. Recipient's Right to Reverse Engineer( 사용자의리버스엔지니어에대한권한 ) 7. Discriminatory Restrictions ( 차별적제한 ) 8. Fees ( 수수료 ) 9. Patent Retaliation ( 특허보복 ) 10. Express Patent License ( 특정특허라이선스 ) 11. Anti-DRM Provisions (DRM 반대조항 ) 12. Notice ( 고지 ) 13. Change Notice Required ( 필요한변경사항고지 ) 14. License Back 15. Warranty Disclaimer(s) Required ( 필요한보증거부 ) 16. Limitation of Liability Required ( 필요한책임의한계 ) 17. Indemnification Obligation ( 배상의무사항 ) 18. Include License ( 라이선스포함 ) 19. Promotion Restriction ( 프로모션제약 ) 20. Share-alike / Reciprocity ( 상호나눔 / 상호기여 ) 21. Integration Level for Licensed Application ( 허가된어플리케이션의통합수준 ) Black Duck Software가분류한라이선스의무사항 21 가지라이선스의무사항을조합하여프로젝트라이선스생성및적용 GPL 및 2,000여개의라이선스의무사항리뷰 - 44 -
공개SW라이선스 검증시스템 개요 4. 공개SW라이선스 검증시스템 Acquire Search Review & Approve Analyze & Catalog Validate Manage, Audit & Maintain Select Approve Monitor Build Partner Integration Validate - 45 -
공개 SW 라이선스검증시스템개요 4. 공개 SW 라이선스검증시스템 개발주기별로일체의라이선스관련사항을확인하여복합지적재산권환경에서의지적재산권분쟁위험을미연에방지하는공개 SW 관리및검증솔루션 공개 SW 라이선스준법성관리솔루션 Start Manage Identify Review Report 프로젝트등록 프로젝트정책설정및분석 콤포넌트및라이선스이슈확인및식별 콤포넌트및라이선스승인 기록및문서화 방대한데이터베이스를바탕으로소프트웨어의라이프사이클전반에걸쳐자동화된라이선스추적 빠른콤포넌트검증및라이선스의무사항확인 개발시간단축과지적재산권분쟁위험감소 - 46 -
공개 SW 라이선스검증방법 4. 공개 SW 라이선스검증시스템 분석중사용자의코드파일들에대한 Code Prints가생성되고검증도구서버에는암호화압축된 Code Print 정보가기록됨 사용자 Code Print 정보와검증도구에구축되어있는공개SW DB(KnowledgeBase) Code Print정보를비교하여라이선스검증이이루어짐 사용자코드가검증도구서버에업로드되지않음 로컬코드 Protex Server - 47 -
공개 SW 라이선스검증방법 4. 공개 SW 라이선스검증시스템 Knowledge Base 콤포넌트들은 Code Prints 로서저장됨 KB안에모든파일의요약된 Code Print가있음 소스파일들에서단편코드프린트들 (snippet Code Prints) 을추출 *.c, *.java, *.pl, etc 바이너리파일은파일당 1개의 Code Print 생성 - 48 -
공개 SW 라이선스검증방법 4. 공개 SW 라이선스검증시스템 종합적인공개 SW DB 광범위한메타데이터 수백억이상의코드라인 콤포넌트명, 상세설명, 버전, URL 등 550,000+ 공개SW 프로젝트들 라이선스, 프로그래밍언어, OS 5,100개이상의사이트에서수집 NVD(National Vulnerability Database) 2,000개이상의라이선스 암호문 40,000개이상의보안취약점 소스 / 바이너리코드프린트 15,000 개이상의암호화라이브러리및알고리즘 기타정보들 Open Source Software 지속적으로확장되고있음 ( 월 5 천개이상 ) 사용자코드콤포넌트구축 보안취약점경보 매월 2-3 회의업데이트 - 49 -
Thank you 블랙덕소프트웨어코리아 김병선이사 briankim@blackducksoftware.co.kr (02)538-9227 - 50 -