Computer >> 컴퓨터 >  >> 프로그래밍 >> HTML

HTML 태그란? 인증서 키 생성 태그 완벽 정리

HTML <keygen> 태그란?

HTML <keygen> 태그는 웹 폼(web form)을 인증서 관리 시스템(certificate management system)과 연동하여 처리하기 위해 사용되는 요소입니다. 이 태그는 보안 키를 생성하고, 생성된 키 중 공개 키(public key)를 서버로 전송하는 역할을 합니다.

동작 방식은 다음과 같습니다. 사용자가 폼을 제출하면 브라우저는 로컬 환경에서 키 쌍(key pair)을 생성하여 개인 키(private key)는 클라이언트에 저장하고, 공개 키만 서버에 전달합니다. 이를 통해 별도의 복잡한 설정 없이도 안전한 키 교환이 가능해집니다.

⚠️ 참고: <keygen> 태그는 HTML 5.2에서 공식적으로 폐기(deprecated)되었으며, 현재 대부분의 최신 브라우저에서는 더 이상 지원되지 않습니다. 신규 프로젝트에서는 Web Cryptography API와 같은 현대적인 대안을 사용하는 것이 좋습니다.

<keygen> 태그의 주요 속성

<keygen> 태그는 아래와 같은 추가 속성을 지원합니다.

속성설명
autofocusautofocus페이지가 로드될 때 <keygen> 요소가 자동으로 포커스를 받도록 지정합니다.
challengechallenge폼 제출을 검증하기 위한 챌린지 문자열을 지정합니다. 이 문자열은 공개 키와 함께 PublicKeyAndChallenge 형태로 패키징됩니다. 챌린지 문자열이 제공되지 않으면 길이가 0인 IA5STRING으로 인코딩됩니다.
disableddisabled<keygen> 요소를 비활성화 상태로 만듭니다.
formform_id해당 요소가 속한 하나 이상의 폼을 지정합니다.
keytypersa
dsa
ec
키 생성에 사용할 암호화 알고리즘을 지정합니다.
namersadsaec<keygen> 요소의 이름을 지정합니다.

예제 코드

아래 코드를 실행하면 HTML에서 <keygen> 태그가 어떻게 동작하는지 직접 확인할 수 있습니다.

<!DOCTYPE html>
<html>
   <head>
      <title>HTML keygen Tag</title>
   </head>
   <body>
      <form>
         <keygen name = "random_key" challenge = "0987654321">
         <input name = "subject" value = "subject">
      </form>
   </body>
</html>

위 예제에서 <keygen> 요소는 이름이 random_key인 키를 생성하고, 챌린지 값 0987654321을 공개 키와 함께 전송합니다. 폼에는 일반 입력 필드 하나가 함께 포함되어 있습니다.

마무리

<keygen> 태그는 과거 인증서 기반 폼 처리에 유용하게 사용되었지만, 현재는 표준에서 제외된 요소입니다. 레거시 코드를 분석하거나 오래된 문서를 다룰 때 이 태그의 구조와 속성을 이해해 두면 도움이 되며, 실제 개발에서는 Web Cryptography API 등 최신 기술을 활용하는 것을 권장합니다.