HTML <keygen> 태그란?
HTML <keygen> 태그는 인증서 관리 시스템과 연동하여 웹 폼을 처리하기 위해 사용되던 요소입니다. 폼이 제출되면 개인 키(private key)는 사용자의 로컬 환경에 저장되고, 공개 키(public key)만 서버로 전송됩니다.
참고: <keygen> 태그는 현재 HTML 표준에서 제거된(deprecated) 요소입니다. 최신 브라우저에서는 지원되지 않으므로, 실제 프로젝트에서는 Web Crypto API와 같은 현대적인 대안을 사용하는 것이 좋습니다.
<keygen> 태그의 주요 속성
| 속성 | 값 | 설명 |
|---|---|---|
| autofocus | autofocus | 페이지가 로드될 때 <keygen> 요소가 자동으로 포커스를 받도록 지정합니다. |
| challenge | challenge | 공개 키와 함께 PublicKeyAndChallenge에 포함되어 폼 제출을 검증하는 데 사용되는 챌린지 문자열을 지정합니다. 챌린지 문자열이 제공되지 않으면 길이가 0인 IA5STRING으로 인코딩됩니다. |
| disabled | disabled | <keygen> 요소를 비활성화 상태로 만듭니다. |
| form | form_id | <keygen> 요소가 속할 하나 이상의 폼을 지정합니다. |
| keytype | rsa dsa ec | 키 생성에 사용할 암호화 알고리즘을 지정합니다. |
| name | name | <keygen> 요소의 이름을 지정합니다. |
사용 예제
다음 코드를 실행하면 HTML에서 <keygen> 태그가 어떻게 동작하는지 직접 확인할 수 있습니다.
<!DOCTYPE html>
<html>
<head>
<title>HTML keygen 태그 예제</title>
</head>
<body>
<form>
<keygen name="random_key" challenge="0987655421">
<input name="sname" value="학생 이름">
</form>
</body>
</html>위 예제에서 <keygen> 요소는 이름이 "random_key"인 키 쌍을 생성하고, challenge 속성 값은 폼 제출 검증에 활용됩니다. 폼이 전송되면 생성된 공개 키가 다른 입력값들과 함께 서버로 전달됩니다.