티스토리 뷰

P3P의 개념
  • Platform for Privacy Preferences
  • W3C에서 개발한 프라이버시 보호 관련 표준 기술.
  • web browser는 웹사이트의 개인보호정책을 쉽게 해석할 수 있을 것이다.
  • 다시 말해, 웹사이트에 제공되는 개인정보보호에 대한 장황한 약관의 내용들을 P3P에 의해서 표준형식으로 표현되고 web browser는 이를 웹사이트로부터 받아 자신이 설정한 개인보호정책과 상충되면 차단하고 일치하면 받아들임.
  • P3P를 적용한 사이트에서는 HTTP헤더 또는 링크된 XML파일을 통해 해당 사이트엫서 취급하는 개인정보의 레벨이나 성격 등을 웹브라우저에게 알려주고 있다.
  • MSIE 6.0에서부터 발생하는 쿠키 관련 문제 등의 상당 부분이 바로 이 P3P와 연관됨. 즉, 6.0에 와서 정책이 바꼈음.
  • MSIE 6.0부터는 쿠키를 보내려면 P3P 압축정책을 사용하라는 것임.
  • HTTP Response헤더에 P3P정보(압축정책)을 추가하지 않는다면 IE6(user agent)는 웹 서버에서 넘어오는 쿠키를 차단하여 세션정보를 잃어버리게 됨.
  • Resopnse Header에 cp(compact policy)를 추가하여 UA(브라우저)가 이를 받아들여 쿠기가 넘어갈 수 있음.
동 작
  • P3P를 구현한 user agent는 개인정보를 보호를 위해서 P3P 정책파일을 읽거나,  HTTP Response 헤더의 P3P헤더를 읽거나,  HTML에 내장된(embedded) P3P 정책파일의 link 태그를 읽어서 자신이 설정한 개인정보보호 정책과 비교하게 된다. 당연히 이런 정보들이 없다면 해당정보는 차단된다. 일반적으로 두번째 방법(CP:압축정책)을 많이들 사용하고 있다.  

MSIE 6에서 구현된 개인정보 보호기능 과 관련해 공식적으로 다음과 같이 밝히 고 있음

  • Internet Explorer 6의 개인 정보 기능에서 쿠키를 성공적으로 사용하려면 웹 서비스는 W3C(World Wide Web Consortium)에서 개발한 개인 정보 기본 설정용 플랫폼(P3P: Platform for Privacy Preferences) 프로젝트에 정의된 대로 압축 정책을 구축해야 합니다. Internet Explorer 6 개인 정보 기능은 이러한 압축 정책과 사용자의 개인 정보 설정에 기초하여 쿠키를 필터링합니다. 이 문서는 해당 사이트와 연관된 쿠키의 개인 정보 요구 사항 및 Internet Explorer 6에서 구현되는 쿠키 필터링에 대해 설명합니다. 일부 쿠키에는 압축 정책이 필요하지 않을 수도 있지만, 모든 쿠키에서 정책을 구현하는 것이 바람직합니다."
 
 
지속성 Cookie(영구쿠기) / 세션 Cookie(임시쿠키) 비교
  • 지속성 쿠키는 정의된 만료 시간에 도달한 경우 삭제됨.
  • 세션 쿠키는 브라우저를 닫을 때 삭제됨.
  • 지속성쿠키
    • 쿠키의 만료일자가 지정되어 임시파일 디렉토리에 텍스트 파일 형태로 남게되는 쿠키로서 브라우저가 닫혀도 삭제되지 않음.
    • 그러나, 만료일자가 되면 삭제되므로 엄밀히 따지면 영구히 존재하지는 않는다.. ㅡㅡ;
    • 용도 : 로그인시 이름 및 암호화 같은 정보를 저장하여 특정사이트로 이동할 때마다 로그인하는 번거로움 줄임.
  • 세션쿠키
    • 쿠키의 만료일자가 지정되 않아 브라우저가 닫히면 자동으로 PC에서 삭제되는 쿠키
    • 메모리상에만 존재함.
    • 용도 : 쇼핑몰에서 장바구니에 들어 있는 항목과 같은 임시 정보 저장함.
  
1사 쿠키, 3사 쿠키란 무엇인가?
  • 제 1사 쿠기
    • 현재 보고 있는 사이트에서 제공하는 쿠키.
    • 즉, 현재 tmax.co.kr을 보고 잇다면 tmax.co.kr에서 보내온 쿠키가 제 1사 쿠키.
  • 제 3사 쿠키 :
    • 현재 보고 있는 사이트가 아닌 다른 사이트에서 보내온 쿠키.
    • 이것은 img태그나 frame 또는 iframe등을 통해 다른 사이트의 컨텐츠를 링크해왔을 경우 해당 컨텐츠에서 쿠키를 보내오면 제3사 쿠키로 취급됨.
  • 제2사 쿠키가 없는 이유
    • 제3사라는 용어는 바로 third-party의 번역이기 때문
    • 쉽게말해, 1사쿠키는 내꺼, 3사쿠키는 딴놈꺼
  
해결책
 
  • Source편
    • 소스상에 한줄만 추가시켜 주면 됨. 
    • Response.AddHeader("P3P", "CP=`ALL IND DSP COR ADM CONo CUR CUSo IVAo IVDo PSA PSD TAI TELo OUR SAMo CNT COM INT NAV ONL PHY PRE PUR UNI'");
    • 위와 같이 헤더값을 추가시켜 주면 문제는 해결되지만, 이상하게 헤더값이 브라우저로 날아가지 않는다고 함.
  • 환경설정 편
    • Apache
      • Apache의 경우


<IfModule mod_headers.c>

Header add P3P "CP='ALL IND DSP COR ADM CONo CUR CUSo IVAo IVDo PSA PSD TAI TELo OUR SAMo CNT COM INT NAV ONL PHY PRE PUR UNI'"
</IfModule>


      • 사전에 apache_root/mod_headers.so 파일이 존재하고  LoadModule과 AddModule을 통해 모듈이 정상적으로 로드되어 있어야 한다.
      • mod_header.so는 아파치 기본 컴파일 옵션으로는 설치되지 않는다
      • 현재, WebtoB에서는 지원되지 않음.
    • JEUS


<?xml version="1.0" encoding="UTF-8"?>

<web-container xmlns="http://www.tmaxsoft.com/xml/ns/jeus">
    <context-group>
        ...중략...
        <response-header>
            <custom-header>
                <header-field>
                    <field-name>P3P</field-name>
                    <field-value>CP='CAO PSA CONi OTR OUR DEM ONL'</field-value>
                </header-field>
            </custom-header>
        </response-header> 
        ...중략...
    </context-group>
</web-container>



P3P의 압축정책 스펙

개인 정보 태그 

압축 토큰 

<contact-and-other/> 

CAO 

<pseudo-analysis/> 

PSA 

<contact required="opt-in"/> 

CONi 

<other-recipient/> 

OTR 

<ours/> 

OUR 

<demographic/> 

DEM 

<online/> 

ONL 



범주 

압축 토큰 

설명 

<physicla/> 

PHY 

연락처 또는 위치정보 

<online/> 

ONL 

인터넷 상의 연락처 또는 위치 정보(예: 전자 메일 주소) 

<goverment/> 

GOV 

정부에서 발급한 ID(예: 사회 보장 번호) 

<financial/> 

FIN 

개별 재무 정보 


용도 

압축 토큰 

설명 

<customization/> 

CUS 

 사용자에 의해 명시적으로 요청된 사이트 수정 

<individual-analysis/> 

IVA 

개별 사용자와 관련될 수 있는 분석 

<individual-decision/> 

IVD 

사용자 기록에 기초한 동작 수행 

<contact/> 

CON 

개별 사용자에게 연락하는 데 사용할 수 있는 정보 

<telemarketing/> 

TEL 

전화 판촉에 사용할 수 있는 정보 

<other-purposes/> 

OTP 

다른 P3P 용도 이외의 기타 용도 



수신인 

압축 토큰 

설명 

<same/> 

SAM 

일관된 관례에 따라 고유한 목적에 데이터를 사용하는 정식 항목 

<delivery/> 

DEL 

주어진 용도 이외에 목적에 데이터를 사용할 수 있는 배달 서비스를 수행하는 정식 항목 

<other-recipient/> 

OTR 

공급자에게 책임이 있지만 알려지지 않는 방법으로 데이터를 사용할 수 있는 항목 

<unrelated/> 

UNR 

공급자에게 알려지지 않는 방법으로 데이터를 사용하는 항목 

<public/> 

PUB 

공개 포럼 



'Develop > Language' 카테고리의 다른 글

자바스크립트(Java Script)는 자바(Java)가 아니다  (0) 2010.04.30
HTTP Method  (0) 2010.03.06
[web.xml] Sample  (0) 2010.02.02
[web.xml] PackageSeparator 구분자 설정  (0) 2010.02.02
System.gc()  (0) 2010.02.02
HTTP 상태코드  (0) 2010.01.31
endorsed의 의미  (0) 2010.01.31
[Session] 브라우저에서 Cookie정보보기  (0) 2009.11.26
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함