웹 암호화 API

Web Cryptography API

Web Cryptography APIWorld Wide Web Consortium(W3C)의 로우 레벨 인터페이스 권장 사항입니다.W3C는 원시 키 [1]입력 자료에 액세스하지 않고도 암호화 기능을 수행할 수 있도록 함으로써 웹 애플리케이션의 보안을 강화합니다.독립형 API는 해시, 시그니처 생성, 검증 및 암호화, 웹 애플리케이션 내에서의 [2]복호화 등의 기본적인 암호화 작업을 수행합니다.

묘사

2017년 1월 26일, W3C는 웹 애플리케이션에서 기본적인 암호화 작업을 수행할 수 있는 웹 암호화 API에[3] 대한 권장 사항을 발표했습니다.이 독립 API는 JavaScript를 사용하여 웹 애플리케이션 내의 데이터 교환 보안을 강화하는 작업을 수행합니다.API는 해시, 디지털 서명 생성, 검증, 암호화복호화위한 공개 키 및 개인 키를 작성 및/또는 관리하기 위한 낮은 수준의 인터페이스를 제공합니다.

Web Cryptography API는 다음과 같은 다양한 용도로 사용할 수 있습니다.

Web Cryptography API는 본질적으로 독립적이기 때문에 모든 플랫폼에서 사용할 수 있습니다.어플리케이션과 프로그레시브어플리케이션이 원시 키 입력 자료에 접근할 필요 없이 암호화 기능을 수행할 수 있도록 하는 공통 인터페이스 세트를 제공합니다.이것은, 상기의 암호화 조작을 실행하는 메서드 그룹을 정의하는 DiamentCrypto 인터페이스의 지원을 받아 행해집니다.Web Cryptography API 내의 추가 인터페이스를 통해 키 생성, 키 파생 및 키 Import 및 [1]내보내기가 가능합니다.

Web Cryptography API 사용에 대한 비전

W3C의 Web Cryptography API 사양에서는 플랫폼 고유의 API와 표준화된 암호화 API 사이에 현재 존재하는 공통 기능과 기능에 초점을 맞추고 있으며, 일부 구현에 국한된 것은 아닙니다.Web Cryptography API 사용에 대한 그룹의 권고는 필수 알고리즘 세트를 구현해야 한다는 것을 지시하지 않습니다.이는 정부 규제, 지역 정책, 보안 프랙티스 및 지적 재산에 관한 우려에 따라 적합한 사용자 에이전트 간에 암호화 구현이 다르다는 것을 인식하기 때문입니다.

Web Cryptography API에 [1]적합한 기존 웹 응용 프로그램에는 여러 종류가 있습니다.

멀티팩터 인증

오늘날 멀티팩터 인증은 온라인 뱅킹과 같은 웹 애플리케이션 사용자의 신원을 확인하는 가장 신뢰할 수 있는 방법 중 하나로 간주되고 있습니다.현재 많은 웹 응용 프로그램이 사용자와 사용자 에이전트를 모두 보호하기 위해 이 인증 방식을 사용합니다.Web Cryptography API를 사용하면 사용자 접근을 인증하기 위해 시크릿키 자료에 대한 트랜스포트 레이어 인증에 의존하지 않고 웹 어플리케이션 자체에서 인증을 제공할 수 있습니다.이 프로세스는 사용자에게 보다 풍부한 경험을 제공합니다.

Web Cryptography API를 사용하면 응용 프로그램은 사용자 에이전트에 의해 이전에 생성되었거나 웹 응용 프로그램에 의해 사전 프로비저닝된 적절한 클라이언트 키를 찾을 수 있습니다.사용자 계정에 키가 아직 연결되어 있지 않은 경우 응용 프로그램은 사용자 에이전트에 새 키를 생성하거나 기존 키를 재사용할 수 있는 기능을 제공할 수 있습니다.이 프로세스를 사용자가 인증하고 있는 트랜스포트층 보안에 바인드함으로써 [1][2]기본 트랜스포트에 기반한 키를 파생함으로써 멀티팩터 인증 프로세스를 더욱 강화할 수 있습니다.

보호된 문서 교환

API를 사용하면 이전에 안전하게 수신된 문서라도 웹 응용 프로그램 내에서 중요한 문서나 기밀 문서를 무단 보기로부터 보호할 수 있습니다.웹 응용프로그램은 Web Cryptography API를 사용하여 개인 키로 문서를 암호화한 다음 문서를 볼 수 있는 권한이 부여된 사용자와 연결된 공용 키로 문서를 래핑합니다.웹 응용 프로그램으로 이동하면 인증된 사용자는 암호화된 문서를 수신하고 개인 키를 사용하여 문서를 [2]해독하고 볼 수 있는 포장 해제 프로세스를 시작하라는 지시를 받습니다.

클라우드 스토리지

많은 기업과 개인이 클라우드 스토리지에 의존하고 있습니다.보호를 위해 원격 서비스 제공은 웹 응용 프로그램이 문서 또는 기타 데이터를 업로드하기 전에 기밀 문서를 보호할 수 있는 기능을 사용자에게 제공하기를 원할 수 있습니다.Web Cryptography API를 통해 사용자는 다음을 수행할 수 있습니다.

  • 개인 키 또는 개인 키 선택
  • 필요에 따라서, 키로부터 암호화 키를 취득합니다.
  • 문서/데이터 암호화
  • 서비스 프로바이더의 기존 API를[2] 사용하여 암호화된 문서/데이터 업로드

전자 문서 서명

전자서명을 통해 문서에 대한 시간을 절약하고 중요한 문서의 보안을 강화하며 사용자가 문서를 수락했다는 법적 증거가 될 수 있습니다.많은 웹 응용 프로그램이 서면 서명을 필요로 하지 않고 전자 서명을 받아들이도록 선택합니다.Web Cryptography API를 사용하면 사용자는 웹 애플리케이션 전용으로 생성 또는 사전 프로비저닝할 수 있는 키를 선택하도록 요구됩니다.그러면 서명 작업 중에 키를 사용할 수 있습니다.

데이터 무결성 보호

웹 애플리케이션은 종종 데이터를 로컬로 캐시하므로 오프라인 공격이 발생할 경우 데이터가 손상될 위험이 있습니다.Web Cryptography API를 사용하면 웹 응용 프로그램이 자체에서 배포된 공개 키를 사용하여 데이터 [2]캐시의 무결성을 확인할 수 있습니다.

안전한 메시징

Web Cryptography API는 키 어그리먼트를 사용하여 오프 더 레코드(OTR) 및 기타 유형의 메시지 서명 방식에서 사용하는 메시징의 보안을 강화할 수 있습니다.메시지 송신자와 수신자는 공유 암호화 및 메시지 인증 코드(MAC) 키를 네고시에이트하여 부정 액세스를 방지하기 위해 메시지를 암호화 및 [2]복호화합니다.

JSON 객체 서명 및 암호화(JOSE)

Web Cryptography API는 웹 응용 프로그램에서 JOSE Working [4]Group에서 정의된 메시지 형식 및 구조와 상호 작용하기 위해 사용할 수 있습니다.응용 프로그램은 JSON Web Signature(JWK) 키의 읽기 및 Import, 전자 서명 또는 MAC 키로 보호된 메시지 검증 및 JWE 메시지의 복호화를 수행할 수 있습니다.

웹 암호화 API에 대한 적합성

W3C에서는 벤더가 Web Cryptography API 사양에 벤더 고유 고유 확장 기능을 사용하지 않도록 권장합니다.이는 모든 사용자가 특정 콘텐츠에 액세스할 수 있는 것은 아니기 때문에 API의 상호운용성을 떨어뜨리고 사용자 기반을 해체할 수 있기 때문입니다.벤더 고유 확장을 피할 수 없는 경우에는 벤더 고유 문자열 앞에 벤더 고유 문자열을 추가하여 API 사양의 미래 세대와의 충돌을 방지할 것을 권장합니다.

레퍼런스

  1. ^ a b c d Turner, Dawn M. "W3C's Suggestion for a Web Cryptography API". Cryptomathic. Retrieved 9 May 2017.
  2. ^ a b c d e f Watson, Mark (ed.). "Web Cryptography API W3C Proposed Recommendation 15 December 2016". W3C. Retrieved 23 May 2017.
  3. ^ Watson, Mark (ed.). "Web Cryptography API W3C Recommendation 26 January 2017". W3C. Retrieved 3 July 2018.
  4. ^ JOSE Working Group. "Javascript Object Signing and Encryption (jose)". IETF. Retrieved 16 March 2017.

외부 링크