귀하는 로그인되어 있지 않습니다. 이대로 편집하면 귀하의 IP 주소가 편집 기록에 남게 됩니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!== 프로토콜 == RSL은 단순한 메타데이터 형식을 넘어서 '''실제 라이선스 관리'''를 위한 프로토콜들을 정의한다. === Open License Protocol (OLP) === '''OAuth 2.0 확장'''을 통한 라이선스 획득 및 검증 프로토콜. ==== 엔드포인트 ==== 라이선스 서버는 다음 API를 제공해야 한다: '''POST /token''' - 라이선스 토큰 획득 * OAuth 2.0 <code><nowiki>client_credentials</nowiki></code> 그랜트 사용 * 요청 파라미터: * <code><nowiki>grant_type</nowiki></code>: <code><nowiki>client_credentials</nowiki></code> * <code><nowiki>license</nowiki></code>: RSL <code><nowiki><license></nowiki></code> XML (URL 인코딩) * <code><nowiki>resource</nowiki></code>: 자산 URL '''POST /introspect''' - 라이선스 토큰 검증 * OAuth 2.0 Token Introspection (RFC 7662) * 토큰 유효성, 범위, 권한 확인 '''POST /key''' - 암호화 키 획득 * 암호화된 콘텐츠 복호화 키 요청 * JSON Web Key (JWK) 형식 반환 ==== 인증 ==== 모든 OLP 엔드포인트는 '''HTTP Basic''' 인증을 사용한다. <syntaxhighlight lang="http"> Authorization: Basic base64(client_id:client_secret) </syntaxhighlight> ==== 라이선스 토큰 예시 ==== '''요청:''' <syntaxhighlight lang="http"> POST /token HTTP/1.1 Host: api.example.com Authorization: Basic base64(client_id:client_secret) Content-Type: application/x-www-form-urlencoded grant_type=client_credentials& license=%3Clicense%3E...%3C%2Flicense%3E& resource=https%3A%2F%2Fexample.com%2Farticle%2F123 </syntaxhighlight> '''응답:''' <syntaxhighlight lang="json"> { "access_token": "rsl_cnNsLWNsaWVudC0xMjM6czNjcjN0S0VZ", "token_type": "License", "expires_in": 0 } </syntaxhighlight> === Crawler Authorization Protocol (CAP) === HTTP 인증 프레임워크를 이용한 '''크롤러 권한 검증'''. ==== License 인증 스킴 ==== 새로운 HTTP 인증 스킴 '''License'''를 정의한다. '''클라이언트 요청:''' <syntaxhighlight lang="http"> GET /dataset.csv HTTP/1.1 Host: example.com Authorization: License rsl_cnNsLWNsaWVudC0xMjM6czNjcjN0S0VZ </syntaxhighlight> '''서버 거부 (401):''' <syntaxhighlight lang="http"> HTTP/1.1 401 Unauthorized WWW-Authenticate: License error="invalid_token" Link: <https://example.com/license.xml>; rel="license"; type="application/rsl+xml" </syntaxhighlight> ==== 봇 관리와의 통합 ==== CAP는 '''네트워크 레벨 봇 탐지'''와 결합하여 작동한다. 1. '''Cloudflare Bot Management''' / '''Akamai Bot Manager''' 등이 봇 식별 2. '''CAP'''가 라이선스 토큰 검증 3. 두 단계를 모두 통과해야 접근 허용 <s>봇: 나 좋은 봇이야! 서버: 증명해봐</s> === Encrypted Media Standard (EMS) === '''암호화된 콘텐츠'''에 대한 접근 제어. ==== 암호화 워크플로우 ==== '''1. 퍼블리셔가 콘텐츠 암호화:''' <syntaxhighlight lang="bash"> openssl enc -aes-256-gcm -in video.mp4 -out video.mp4.enc \ -K <symmetric_key> -iv <initialization_vector> </syntaxhighlight> '''2. RSL 라이선스에 암호화 표시:''' <syntaxhighlight lang="xml"> <content url="/video.mp4.enc" encrypted="true" server="https://api.example.com"> <license> <permits type="usage">ai-train</permits> <payment type="purchase"> <amount currency="USD">9.99</amount> </payment> </license> </content> </syntaxhighlight> '''3. 클라이언트가 라이선스 획득 후 키 요청:''' <syntaxhighlight lang="http"> POST /key HTTP/1.1 Host: api.example.com Authorization: Basic base64(client_id:client_secret) Content-Type: application/json { "token": "rsl_...", "resource": "https://example.com/video.mp4.enc" } </syntaxhighlight> '''4. 서버가 JWK 형식으로 키 반환:''' <syntaxhighlight lang="json"> { "key": { "kty": "oct", "kid": "sym-2025-12-10", "alg": "A256GCM", "k": "pPq7oHq3bqv3r5wW2y0mJ1m8lqP0d7yQmW3cR9Zf9gE" }, "iv": "Z3VJc0hYb0NQbWl2", "resource": "https://example.com/video.mp4.enc" } </syntaxhighlight> '''5. 클라이언트가 복호화:''' <syntaxhighlight lang="bash"> openssl enc -d -aes-256-gcm -in video.mp4.enc -out video.mp4 \ -K <key.k> -iv <iv> </syntaxhighlight> 편집 요약 가온 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 가온 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요! 취소 편집 도움말 (새 창에서 열림)