단페스타
QR 보안 강화하기

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를 숨겼다.