QR 보안 높이기
2024년 5월 3일 by이호연
2023년에는...
단국대학교는 2023년도 단페스타에서 최초로 QR 코드 입장권 시스템을 도입했다. 그러나 기존 시스템은 티켓 도용을 완전히 막지 못했다.
import QRCode from 'react-qr-code';
function QrCode({ ticketId }: { ticketId: number }) {
return (
<QrCodeComponents.Container>
<QRCode value={`${ticketId}`} />
</QrCodeComponents.Container>
);
}
기존에는 이렇게 ticketId를 QR 코드로 직접 변환하여 사용했다. 따라서 개발을 조금이라도 아는 사람이라면 ticketId를 알아낼 수 있었고, 역으로 QR 코드를 만들어낼 수 있었다. 또한, QR코드를 캡처하면 다른 사람에게 전달할 수 있었기 때문에 도용이 가능했다.
QR 코드 보안 높이기
JWT를 이용하기
JWT를 이용해서 QR 코드의 유효기간을 담았다.
서버를 이용하기
서버에서 jwt를 만들게 바꿔서 signature를 통해 jwt를 검증하도록 했다. 변조된 QR인지도 검증할 수 있게 되었다.
티켓 id 숨기기
jwt를 아는 사람이라면, jwt를 디코딩하여 ticketId를 알아낼 수 있기 때문에 ticketId를 숨겼다.