본문으로 건너뛰기

Security & Privacy

보안

Aiyori가 맡는 것은 아이의 배움의 기록입니다.

어떻게 지키고 있는지를 원칙과 구조의 요점으로 적습니다. 악용의 실마리가 될 수 있는 세부 설정은 일부러 적지 않았습니다. 되어 있지 않은 것을 되어 있다고 적지도 않습니다.

기본 생각

  • 모으는 정보를 적게 합니다. 학생은 이메일 주소 없이 사용할 수 있습니다. 생년월일은 “연도와 월”만 맡습니다.
  • 볼 수 있는 사람을 좁힙니다. 학생의 정보를 볼 수 있는 것은 본인·그 보호자·교실의 선생님뿐입니다.
  • 언제까지나 보관하지 않습니다. 사진·동영상·음성 등의 파일은 365일이 지나면 자동으로 삭제합니다.
  • 광고와 추적에 쓰지 않습니다. 분석이나 광고를 위한 부품은 앱에도 웹에도 넣지 않았습니다.

로그인

선생님·보호자
이메일 주소로 오는 6자리 코드로 로그인합니다. 패스워드를 두지 않으므로, 돌려쓰기나 유출로 인한 계정 탈취가 일어나지 않습니다.
코드는 짧은 시간 안에 무효가 되며, 새 코드를 발급하면 이전 코드는 쓸 수 없게 됩니다.
학생
교실 코드·ID·비밀번호 세 가지로 로그인합니다. 비밀번호는 원래대로 되돌릴 수 없는 형태로 바꾸어 저장합니다. 운영팀도 선생님도 비밀번호를 읽을 수 없습니다.
무차별 대입에 대한 대비
틀린 입력이 이어지면 일정 시간 동안 로그인을 막습니다. 코드의 발급 횟수에도 상한이 있습니다.
교실·ID·비밀번호 가운데 어느 것이 틀렸더라도 돌려주는 응답은 같게 하여 단서를 주지 않습니다.
등록 여부를 알리지 않음
이메일 주소가 등록되어 있는지에 따라 화면의 표시를 바꾸지 않습니다.
코드의 저장
확인 코드와 초대 코드는 원래대로 되돌릴 수 없게 변환한 값만 저장합니다. 데이터베이스를 보아도 원래의 코드는 알 수 없습니다.

로그인한 뒤의 상태

로그인의 기한
로그인 상태는 짧은 간격으로 다시 확인합니다. 오랫동안 쓰지 않으면 자동으로 끊깁니다.
부정 사용에 대한 대비
로그인 정보가 부정하게 쓰인 것으로 의심되면, 그 기기의 로그인을 모두 무효로 합니다.
화면 잠금
선생님·보호자 화면은 Face ID·Touch ID·기기 암호로 보호할 수 있습니다(처음부터 켜져 있음).
위장 전송 방지
쓰기 작업에서는 보낸 곳이 Aiyori 자신의 화면인지를 확인합니다(CSRF 대책).

교실별 분리

하나의 시스템을 많은 교실이 함께 쓰므로, 교실 사이의 데이터가 섞이지 않는 것을 가장 무겁게 여깁니다.

구조
교실별로 데이터를 나누는 구조를 프로그램의 바탕에 넣어 두었습니다. 화면이나 기능 하나하나의 구현에 기대지 않고, 다른 교실의 데이터에 닿지 않도록 하고 있습니다.
다른 교실에서 보이는 모습
다른 교실의 학생이나 과제를 지정해도 “존재하지 않음”과 같은 응답을 돌려줍니다. 있는지 없는지도 알 수 없습니다.
확인 방법
교실을 넘어서는 보이지 않는다는 것을 확인하는 자동 테스트를, 프로그램을 바꿀 때마다 실행하고 있습니다.

누가 무엇을 볼 수 있는가

입장볼 수 있는 것할 수 없는 것
학생자신이 받은 과제, 자신의 제출물과 점수, 선생님과의 대화다른 학생의 정보를 보는 것(선생님이 선택한 경우의 단어 카드 닉네임과 기록은 제외). 돈에 관한 화면은 없습니다.
보호자초대 코드로 연결된 자녀의 과제·제출물·점수·학습 기록·선생님과의 대화대화에 글을 쓰는 것. 다른 아이의 정보를 보는 것.
교실의 선생님자기 교실 학생의 과제·제출물·대화·수강료다른 교실의 정보를 보는 것.
추가된 선생님교실의 선생님과 같음교실 설정, 교실 닫기, 선생님 초대, 결제.

암호화

통신
기기와 Aiyori 사이는 모두 HTTPS(TLS)로 암호화합니다. 데이터베이스와의 통신, 파일 보관 장소와의 통신도 암호화하며, 암호화되지 않은 연결은 받지 않습니다.
보관
데이터베이스와 파일 보관 장소는 전체를 암호화해서 저장합니다. 널리 쓰이는 강한 암호화 방식입니다.
이름·이메일 주소
보관 장소 전체의 암호화에 더해, 이름과 이메일 주소 등은 앱 안에서 한 건씩 암호화한 뒤에 저장합니다. 데이터베이스만 보아서는 읽을 수 없습니다.

파일과 동영상

보내고 받는 방법
사진·PDF·음성·동영상을 주고받을 때는 그 사람만 쓸 수 있는 기한부 경로를 씁니다. 경로는 짧은 시간 안에 무효가 됩니다.
열 때마다 확인
파일을 열 때에는 매번, 그 사람이 지금 보아도 되는지를 확인합니다.
보관 장소
밖에서 직접 볼 수 없도록 설정했습니다. 공개 URL은 없습니다.
받는 파일
정해 둔 형식과 크기의 파일만 받습니다. 받은 뒤에도 서버에서 다시 확인합니다.
수업 동영상
재생할 때마다, 그 사람이 그 동영상을 보아도 되는지 확인합니다. 허가 없이는 동영상 본체를 가져올 수 없습니다.
수업 동영상은 Aiyori 안에서만
선생님이 올린 동영상은 외부 동영상 사이트를 쓰지 않고 전송합니다. 광고도, 추천 동영상도 나오지 않습니다. 선생님이 YouTube 동영상을 나눠 줄 때만, 쿠키를 쓰지 않는 설정으로 YouTube 재생 창을 넣습니다.

보존 기간과 삭제

365일 뒤 삭제
사진·동영상·음성·PDF 등의 파일은 올린 뒤 365일이 지나면 자동으로 삭제합니다. 기한이 지난 것은 삭제 처리 전이라도 열 수 없습니다.
남는 것
점수, 코멘트, 문제의 답, 글로 쓴 메시지. 선생님이 “교재로 남기기”로 한 수업 동영상.
탈퇴했을 때
30일 뒤에 제출물·대화·학습 기록·이름을 삭제합니다.
교실을 닫았을 때
학생은 모두 탈퇴 처리되고, 30일 뒤에 교실 전체를 삭제합니다.
직접 삭제
선생님과 보호자는 이메일로 오는 코드로 확인한 뒤 자신의 계정을 삭제할 수 있습니다.

아이를 지키는 장치

보호자 동의
16세 미만 학생은 보호자가 동의할 때까지 사진·동영상·음성 제출과 선생님과의 1:1 대화를 할 수 없습니다. 동의는 기록하며, 나중에 웹에서 철회할 수 있습니다.
대화는 보호자에게 보임
보호자는 아이와 선생님의 대화를 모두 읽을 수 있습니다. 대화를 멈출 수도 있습니다.
학생끼리는 연결되지 않음
학생이 다른 학생에게 연락하는 기능은 없습니다.
밖으로 나갈 때
다른 사이트로 가는 링크는 열기 전에 어디로 가는지 보여 주고 확인합니다. 13세 미만에게는 “집에 있는 어른과 함께”라고 알립니다.
실시간 수업 링크
받는 것은 Zoom, Google Meet, Microsoft Teams, Whereby의 링크뿐입니다.
알리기
곤란한 일·싫었던 일은 화면에서 운영팀에 알릴 수 있습니다. 알린 내용은 선생님에게 전해지지 않습니다.
돈 이야기를 보이지 않음
학생 화면에는 청구나 납부가 나오지 않습니다.
알림 문구
알림에는 어느 아이의 무슨 알림인지 알 수 있도록 아이의 표시 이름과 과제 제목을 넣습니다. 메시지 본문, 점수, 선생님의 코멘트, 수강료 금액은 넣지 않습니다. 보호자와 선생님은 설정에서 이름과 제목이 나오지 않게 할 수 있습니다. 수강료 미납 안내 알림에는 이름을 넣지 않습니다.

광고와 추적

  • 광고를 표시하지 않습니다. 데이터를 팔지 않습니다. (선생님이 나눠 준 YouTube 동영상에는 YouTube가 광고를 넣을 수 있습니다)
  • 이용 분석이나 광고를 위한 외부 부품(SDK·태그)은 웹에도 iPhone·iPad 앱에도 들어 있지 않습니다. iPhone·iPad 앱은 Apple의 표준 기능만으로 만들고 있습니다.
  • 외부 회사에 보내는 정보는 이메일을 보내기 위한 이메일 주소(Amazon Web Services)와, 단어 카드의 읽어 주는 음성을 만들기 위한 단어의 글자(Google)뿐입니다. 단어의 글자에 학생의 정보는 포함되지 않습니다. 선생님이 Google 설문지를 가져올 때는 선생님의 브라우저가 Google에서 직접 설문지를 읽습니다. Aiyori에는 Google 계정 정보도, 설문지 응답도 전달되지 않습니다.

기록과 감시

작업 기록
채점, 반환, 학생의 등록·정지·탈퇴, 비밀번호 재발급, 보호자 동의, 입금 기록 등은 “누가·언제·무엇을 했는지”를 기록합니다. 기록은 추가만 하고, 고쳐 쓰지 않습니다.
운영팀의 작업
운영팀이 교실이나 데이터에 대해 하는 작업도 이유를 붙여 같은 기록에 남깁니다.
로그
동작 로그에는 본문·이메일 주소·코드를 적지 않습니다.
감시
시스템의 상태를 항상 감시하고, 이상이 있으면 운영팀에 알립니다.
백업
데이터베이스는 매일 자동으로 백업하고, 일정 기간 보관합니다. 실수로 지울 수 없도록 설정했습니다.

운영하는 곳

데이터의 위치
일본(Amazon Web Services 도쿄 리전).
데이터베이스
인터넷에서 직접 연결되지 않는 곳에 두며, Aiyori의 프로그램에서만 접속할 수 있습니다.
프로그램
필요한 권한만 주어 실행합니다. 관리자 권한으로는 실행하지 않습니다.
업데이트
새 버전에 문제가 있으면 자동으로 이전 버전으로 돌아갑니다.
변경할 때마다 하는 검사
프로그램을 바꿀 때마다 타입 검사와 자동 테스트(교실 분리, 동의, 삭제 포함)를 실행합니다.

결제 정보

  • Aiyori는 카드 번호를 저장하지 않습니다. 저장할 곳도 없습니다.
  • 카드 결제에서는 카드 정보는 결제 회사(Stripe)가 직접 맡고, 수강료는 선생님의 계좌로 직접 들어갑니다. 운영팀이 수강료를 맡아 두는 일은 없습니다.

만일의 경우

  • 정보가 유출되었거나 그럴 우려가 있을 때의 절차를 미리 정해 두었습니다.
  • 원인을 차단하고, 영향이 있는 교실의 선생님에게 24시간 이내에 알립니다.
  • 법률에 따라 일본 개인정보보호위원회에 보고하고, 본인과 보호자에게 통지합니다.