User:AalekhN/GSoC proposal 2014

`Multilingual, usable and effective Captchas

 * Public URL: https://www.mediawiki.org/wiki/User:AalekhN/GSoC_proposal_2014
 * Bugzilla report:
 * https://bugzilla.wikimedia.org/show_bug.cgi?id=32695
 * https://bugzilla.wikimedia.org/show_bug.cgi?id=5309


 * Announcement: https://www.mediawiki.org/wiki/Summer_of_Code_2014#Multilingual.2C_usable_and_effective_captchas.

Name and contact information
Name:Aalekh Nigam Email:aalekh1993@rediffmail.com IRC or IM networks/handle(s):aalekhN Location:New Delhi,India Timezone: Kolkata,INDIA, UTC+5:30 Typical working hours:12:00PM to 2:00AM until August,05:00PM to 2:00AM after August (Indian Standard Time)

Synopsis
Current CAPTCHAs implemented in many Wikimedia Projects are mostly broken, lacks localization and are many times vulnerable. This project aims to design an Multilingual, usable and effective Captcha, which will be much more secure (difficult for bots to solve) ,user friendly (easier for humans to solve) and Multilingual for Mediawiki Projects.

Scope of Work
The Project aims to implement approach 1 and 2 for the Project.There are also some alternative approaches mentioned.All these approaches are intended to be discussed during Community Bonding Period to identify the best possible approach to be followed for the project.

Captcha for identifying Odd one out
The following type of image will be shown as follow:



the answer to given Captcha is shown below:

other possible questions for the Captchas could be "Select the images in which man is wearing sunglasses?" as shown below:

If the captcha combination gets wrong, Captcha reloads itself and shows Captcha with different images. A demo representing raw working prototype of the given type of captcha is given here.

 Advantage Over Bots  : Logical questions of Selecting Odd One out provides hard for bots to verify also with the use of indexing

system(mentioned below) we can combine unrelated items as options for example combining human and cat would be better option rather than

combining Cat and Tiger's since the two resembles much alike.

Annotations Based Captcha
This type of captcha asks user to identify the objects in the image out of the given options.The question for the given type of captcha will be as shown below:



the correct option's to the given type of question's are 'Cat' and 'Mountain' respectively.A demo representing raw working Prototype of this type of captcha is given here.

 Advantage Over Bots  : Using image effects produced by ImageMagick Library we can make images non recognizable to the bots but on the

same hand recognizable to the humans,for example applying photo booth and pencil sketch effect on the images produces images recognizable

to the humans and non recognizable to bots,moreover number of option provided makes it an advantage over current captcha system (based

on probability of selecting the object).

Other Possible alternative to the Captcha
In addition to the above given captcha there are also other possible approaches to the captcha ,which could be discussed during community bonding period:

Ask User to click on the same image as provided
The Question for the given type of captcha looks like:

the answer to given question will be shown as follow: for better security issue I plan to provide 8 options for the Captcha rather than 4 options also we can provide multiple effects to an option for example:



the above given file is produced by providing pencil sketch+photo booth effect to the below given image and is not recognizable to large image databases like google images and tineye api.

A demo representing raw working prototype of this captcha is given here

Image Rotation Based Captcha
The following type of captcha has been proposed by Google Research in an article here. Question of the given type of captcha will be to orient the images in an upside down position as shown here:



we can rely selection made by the people overtime for the images which are uploaded in an improper orientation or are symmetric.

The effect used in the photographs can be used wisely in order to render human recognizable photographs also an an advantage images manipulated with different images can help us in prevention against the autonomous programs as mentioned here

Since, for any project of mass scale to be successful requires localization; so for this project,I propose the use of an indexing system which would sort out the unjustified and irrelevant images out of those retrieved from Wikidata.

A simple functioning of indexing system i propose is demonstrated here:

Deliverables
The Project aims to develop an Captcha plugin for ConfirmEdit Extension with the use of Wikidata API, which would make Wikidata act as a database for our Captcha images.
 * To Develop Plugin for current ConfirmEdit Extension.
 * Develop a proper indexing system for the images to be used for the Captcha which would sort out the images that are not friendly to the user.
 * Develop effects for Captcha with the use of PHP's ImageMagick library.
 * Use Wikidata API to retrieve images based on category of the images also translation to different words provided at wikidata can help us make the Captcha Multilingual.

If Time Permits:
 * Improve audio Captcha for Blind and Visually Impaired users by introducing various new virtual cursors to the screen reader.

Project schedule

 * Community bonding period.
 * Extensive User research to explore best possibilities out of those suggested to develop a secure Captcha.
 * Lay Down modular design for the project
 * Achieve the above by working with the mentor(s) and other community people interested in the project.


 * 3-4 weeks: Develop Captcha and integrate it with Wikidata API
 * Develop Captcha for "Selection of Odd One Out" and "Annotation based Captcha".
 * Integrate Wikidata Database with the Captcha using Wikidata API.

Milestone 1: Prototype for the extension ready.


 * 3 weeks:Develop Indexing System for the Captcha.
 * Develop an indexing System and integrate it with Prototype of the extension build.
 * Provide Localization Support to the Captcha.

Milestone 2: Indexing System build and Working.


 * 2 weeks: Develop User friendly effects using PHP's ImageMagick Library.
 * 1 weeks: Add unit test
 * 1 week: Ensuring proper integration and working with Mediawiki.
 * 2 weeks: Testing and documentation.

The above plan could go as expected or invariably re-distribute among the tasks.

Participation
As a regular follower to Mediawiki I regularly hangout at #mediawiki-i18n and #mediawiki and will continue to do so for period i am working .If face some doubts or needed advice i would head over to the mailing list.I will also post weekly update about the project on my blog here. I will use a local environment for running MediaWiki for development and will be committing to gerrit every feature i make on day to day basis. If needed i will host talk at https://www.mediawiki.org/wiki/Talk:CAPTCHA

About Me
I am Aalekh Nigam, a B.Tech, Electronics and Communication Engineering student, in JIIT, Noida, India. Since, the introduction to FOSS at a local Linux User Group Meetup I have been mostly involved Web Development and Android App Development. As an advantage to this project i have worked with various image API's including that of Flickr and Instagram. My first interaction with MediaWiki started about five months ago when I started building a extension for MediaWiki.This projects holds an special importance for me since it would bring life of thousands of editors and Users in ease along width making MediaWiki much more secure.

Past open source experience
Ever since the introduction to open source i have been an admirer to it and have worked with MediaWiki,WordPress,Flask frameworks.I'm an active contributor to Open Source Developers Club in my college and have helped in building website for open source conference organized by the club. Also, to Bug:4365 and Bug 56504 merged.
 * Developed an Mediawiki extension for importing VideoJsPlayer to MediaWiki and have contributed to few patches here and here for various projects with solution
 * Contributed to a patch to VideoJs
 * Contributed few patches to a website under development by codecademy user's.
 * Developed an Jquery Plugin for slideshow with fullsceen api support at JQuery Plugin Repository
 * Developed an WordPress plugin to port my JQuery Plugin to WordPress.
 * Other projects i have contributed to can be found here.

I've also frequently attended various open source meetups including Software Freedom Day, local meetups of Linux User Group, Firefox, etc.

Any other info
Apart from which i also have been looking for various inspiration for audio Captcha and have found this specifically helpful.Other Research Papers which were helpful in preparing effective captcha as per mentioned in the proposal are given here: Socially Adjusted CAPTCHAS, 2D Captchas from 3D Models, Usable Audio Captchas.